arengibook 2.0.14-table → 2.0.16-table
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +436 -103
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -47558,7 +47558,7 @@ var DocumentEditorCell = function DocumentEditorCell(_ref7) {
|
|
|
47558
47558
|
var docs = (_options$value = options.value) !== null && _options$value !== void 0 ? _options$value : [];
|
|
47559
47559
|
var handleFileChange = /*#__PURE__*/function () {
|
|
47560
47560
|
var _ref8 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(e) {
|
|
47561
|
-
var file, formData, res, data;
|
|
47561
|
+
var file, formData, res, data, _t, _t2;
|
|
47562
47562
|
return _regenerator().w(function (_context) {
|
|
47563
47563
|
while (1) switch (_context.n) {
|
|
47564
47564
|
case 0:
|
|
@@ -47572,7 +47572,8 @@ var DocumentEditorCell = function DocumentEditorCell(_ref7) {
|
|
|
47572
47572
|
setUploading(true);
|
|
47573
47573
|
_context.p = 2;
|
|
47574
47574
|
formData = new FormData();
|
|
47575
|
-
formData.append('
|
|
47575
|
+
formData.append('Filedata', file);
|
|
47576
|
+
if (col.csrfToken) formData.append('token', col.csrfToken);
|
|
47576
47577
|
_context.n = 3;
|
|
47577
47578
|
return fetch(col.uploadUrl, {
|
|
47578
47579
|
method: 'POST',
|
|
@@ -47580,20 +47581,35 @@ var DocumentEditorCell = function DocumentEditorCell(_ref7) {
|
|
|
47580
47581
|
});
|
|
47581
47582
|
case 3:
|
|
47582
47583
|
res = _context.v;
|
|
47584
|
+
if (res.ok) {
|
|
47585
|
+
_context.n = 5;
|
|
47586
|
+
break;
|
|
47587
|
+
}
|
|
47588
|
+
_t = Error;
|
|
47583
47589
|
_context.n = 4;
|
|
47584
|
-
return res.
|
|
47590
|
+
return res.text();
|
|
47585
47591
|
case 4:
|
|
47586
|
-
|
|
47587
|
-
|
|
47592
|
+
_t2 = _context.v;
|
|
47593
|
+
throw new _t(_t2);
|
|
47588
47594
|
case 5:
|
|
47589
|
-
_context.
|
|
47595
|
+
_context.n = 6;
|
|
47596
|
+
return res.json();
|
|
47597
|
+
case 6:
|
|
47598
|
+
data = _context.v;
|
|
47599
|
+
options.editorCallback([].concat(_toConsumableArray$a(docs), [{
|
|
47600
|
+
id: data.id,
|
|
47601
|
+
name: data.name,
|
|
47602
|
+
url: data.path
|
|
47603
|
+
}]));
|
|
47604
|
+
case 7:
|
|
47605
|
+
_context.p = 7;
|
|
47590
47606
|
setUploading(false);
|
|
47591
47607
|
e.target.value = '';
|
|
47592
|
-
return _context.f(
|
|
47593
|
-
case
|
|
47608
|
+
return _context.f(7);
|
|
47609
|
+
case 8:
|
|
47594
47610
|
return _context.a(2);
|
|
47595
47611
|
}
|
|
47596
|
-
}, _callee, null, [[2,,
|
|
47612
|
+
}, _callee, null, [[2,, 7, 8]]);
|
|
47597
47613
|
}));
|
|
47598
47614
|
return function handleFileChange(_x) {
|
|
47599
47615
|
return _ref8.apply(this, arguments);
|
|
@@ -47645,34 +47661,278 @@ var DocumentEditorCell = function DocumentEditorCell(_ref7) {
|
|
|
47645
47661
|
onChange: handleFileChange
|
|
47646
47662
|
}));
|
|
47647
47663
|
};
|
|
47648
|
-
var
|
|
47649
|
-
var
|
|
47650
|
-
|
|
47651
|
-
|
|
47652
|
-
|
|
47653
|
-
|
|
47654
|
-
|
|
47655
|
-
|
|
47656
|
-
rows = _ref9$rows === void 0 ? 25 : _ref9$rows,
|
|
47657
|
-
_ref9$loading = _ref9.loading,
|
|
47658
|
-
loading = _ref9$loading === void 0 ? false : _ref9$loading,
|
|
47659
|
-
_ref9$stripedRows = _ref9.stripedRows,
|
|
47660
|
-
stripedRows = _ref9$stripedRows === void 0 ? false : _ref9$stripedRows,
|
|
47661
|
-
_ref9$selectionMode = _ref9.selectionMode,
|
|
47662
|
-
selectionMode = _ref9$selectionMode === void 0 ? null : _ref9$selectionMode,
|
|
47663
|
-
selection = _ref9.selection,
|
|
47664
|
-
onSelectionChange = _ref9.onSelectionChange,
|
|
47665
|
-
_ref9$editable = _ref9.editable,
|
|
47666
|
-
editable = _ref9$editable === void 0 ? false : _ref9$editable,
|
|
47667
|
-
_ref9$rowEdit = _ref9.rowEdit,
|
|
47668
|
-
rowEdit = _ref9$rowEdit === void 0 ? true : _ref9$rowEdit,
|
|
47669
|
-
onChange = _ref9.onChange,
|
|
47670
|
-
onCellChange = _ref9.onCellChange,
|
|
47671
|
-
carto = _ref9.carto;
|
|
47672
|
-
var _useState15 = useState(value),
|
|
47664
|
+
var SelfEditableCell = function SelfEditableCell(_ref9) {
|
|
47665
|
+
var rowData = _ref9.rowData,
|
|
47666
|
+
col = _ref9.col,
|
|
47667
|
+
editable = _ref9.editable,
|
|
47668
|
+
isRowEditing = _ref9.isRowEditing,
|
|
47669
|
+
onSave = _ref9.onSave,
|
|
47670
|
+
renderDisplay = _ref9.renderDisplay;
|
|
47671
|
+
var _useState15 = useState(false),
|
|
47673
47672
|
_useState16 = _slicedToArray$c(_useState15, 2),
|
|
47674
|
-
|
|
47675
|
-
|
|
47673
|
+
editing = _useState16[0],
|
|
47674
|
+
setEditing = _useState16[1];
|
|
47675
|
+
var _useState17 = useState(rowData[col.field]),
|
|
47676
|
+
_useState18 = _slicedToArray$c(_useState17, 2),
|
|
47677
|
+
localValue = _useState18[0],
|
|
47678
|
+
setLocalValue = _useState18[1];
|
|
47679
|
+
var containerRef = useRef(null);
|
|
47680
|
+
var localValueRef = useRef(localValue);
|
|
47681
|
+
useEffect(function () {
|
|
47682
|
+
localValueRef.current = localValue;
|
|
47683
|
+
}, [localValue]);
|
|
47684
|
+
useEffect(function () {
|
|
47685
|
+
if (isRowEditing && !editing) {
|
|
47686
|
+
setLocalValue(rowData[col.field]);
|
|
47687
|
+
setEditing(true);
|
|
47688
|
+
} else if (!isRowEditing && editing) {
|
|
47689
|
+
setEditing(false);
|
|
47690
|
+
}
|
|
47691
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
47692
|
+
}, [isRowEditing]);
|
|
47693
|
+
var commit = useCallback(function (val) {
|
|
47694
|
+
onSave(val);
|
|
47695
|
+
setLocalValue(val);
|
|
47696
|
+
if (!isRowEditing) setEditing(false);
|
|
47697
|
+
}, [isRowEditing, onSave]);
|
|
47698
|
+
useEffect(function () {
|
|
47699
|
+
if (!editing || isRowEditing) return;
|
|
47700
|
+
var handler = function handler(e) {
|
|
47701
|
+
if (containerRef.current && !containerRef.current.contains(e.target)) {
|
|
47702
|
+
if (e.target.closest('.p-dropdown-panel, .p-datepicker, .p-multiselect-panel')) return;
|
|
47703
|
+
commit(localValueRef.current);
|
|
47704
|
+
}
|
|
47705
|
+
};
|
|
47706
|
+
document.addEventListener('mousedown', handler);
|
|
47707
|
+
return function () {
|
|
47708
|
+
return document.removeEventListener('mousedown', handler);
|
|
47709
|
+
};
|
|
47710
|
+
}, [editing, isRowEditing, commit]);
|
|
47711
|
+
if (!editing) {
|
|
47712
|
+
var _rowData$col$field;
|
|
47713
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
|
47714
|
+
onClick: function onClick() {
|
|
47715
|
+
return editable && setEditing(true);
|
|
47716
|
+
},
|
|
47717
|
+
style: {
|
|
47718
|
+
cursor: editable ? 'pointer' : 'default',
|
|
47719
|
+
minHeight: '1.5rem'
|
|
47720
|
+
}
|
|
47721
|
+
}, renderDisplay ? renderDisplay(rowData) : (_rowData$col$field = rowData[col.field]) !== null && _rowData$col$field !== void 0 ? _rowData$col$field : '');
|
|
47722
|
+
}
|
|
47723
|
+
switch (col.type) {
|
|
47724
|
+
case 'select':
|
|
47725
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
|
47726
|
+
ref: containerRef
|
|
47727
|
+
}, /*#__PURE__*/React__default.createElement(Dropdown, _extends$I({}, DropdownPresets.Base, {
|
|
47728
|
+
value: localValue,
|
|
47729
|
+
options: col.options,
|
|
47730
|
+
onChange: function onChange(e) {
|
|
47731
|
+
return commit(e.value);
|
|
47732
|
+
},
|
|
47733
|
+
autoFocus: true
|
|
47734
|
+
})));
|
|
47735
|
+
case 'selectMultiple':
|
|
47736
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
|
47737
|
+
ref: containerRef
|
|
47738
|
+
}, /*#__PURE__*/React__default.createElement(MultiSelect, _extends$I({}, MultiSelectPresets.Base, {
|
|
47739
|
+
value: localValue !== null && localValue !== void 0 ? localValue : [],
|
|
47740
|
+
options: col.options,
|
|
47741
|
+
onChange: function onChange(ids) {
|
|
47742
|
+
return commit(ids);
|
|
47743
|
+
}
|
|
47744
|
+
})));
|
|
47745
|
+
case 'date':
|
|
47746
|
+
{
|
|
47747
|
+
var dateObj = null;
|
|
47748
|
+
var str = localValue ? String(localValue) : null;
|
|
47749
|
+
if (str && str !== 'N/A') {
|
|
47750
|
+
if (str.includes('/')) {
|
|
47751
|
+
var _str$split = str.split('/'),
|
|
47752
|
+
_str$split2 = _slicedToArray$c(_str$split, 3),
|
|
47753
|
+
d = _str$split2[0],
|
|
47754
|
+
m = _str$split2[1],
|
|
47755
|
+
y = _str$split2[2];
|
|
47756
|
+
dateObj = new Date(y, m - 1, d);
|
|
47757
|
+
} else if (str.includes('-')) {
|
|
47758
|
+
var _str$split3 = str.split('-'),
|
|
47759
|
+
_str$split4 = _slicedToArray$c(_str$split3, 3),
|
|
47760
|
+
_y = _str$split4[0],
|
|
47761
|
+
_m = _str$split4[1],
|
|
47762
|
+
_d = _str$split4[2];
|
|
47763
|
+
dateObj = new Date(_y, _m - 1, _d);
|
|
47764
|
+
}
|
|
47765
|
+
}
|
|
47766
|
+
if (!dateObj || isNaN(dateObj.getTime())) dateObj = new Date();
|
|
47767
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
|
47768
|
+
ref: containerRef
|
|
47769
|
+
}, /*#__PURE__*/React__default.createElement(DatePicker, {
|
|
47770
|
+
value: dateObj,
|
|
47771
|
+
onChange: function onChange(e) {
|
|
47772
|
+
return commit(e.value ? [e.value.getFullYear(), String(e.value.getMonth() + 1).padStart(2, '0'), String(e.value.getDate()).padStart(2, '0')].join('-') : null);
|
|
47773
|
+
}
|
|
47774
|
+
}));
|
|
47775
|
+
}
|
|
47776
|
+
case 'numeric':
|
|
47777
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
|
47778
|
+
ref: containerRef
|
|
47779
|
+
}, /*#__PURE__*/React__default.createElement(InputText, {
|
|
47780
|
+
type: "number",
|
|
47781
|
+
value: localValue !== null && localValue !== void 0 ? localValue : '',
|
|
47782
|
+
min: col.min,
|
|
47783
|
+
max: col.max,
|
|
47784
|
+
step: col.step,
|
|
47785
|
+
onChange: function onChange(e) {
|
|
47786
|
+
var v = e.target.value === '' ? '' : parseFloat(e.target.value);
|
|
47787
|
+
if (col.min != null && v !== '' && v < col.min) v = col.min;
|
|
47788
|
+
if (col.max != null && v !== '' && v > col.max) v = col.max;
|
|
47789
|
+
setLocalValue(v);
|
|
47790
|
+
},
|
|
47791
|
+
onKeyDown: function onKeyDown(e) {
|
|
47792
|
+
if (e.key === 'Enter') {
|
|
47793
|
+
e.stopPropagation();
|
|
47794
|
+
commit(localValueRef.current);
|
|
47795
|
+
}
|
|
47796
|
+
},
|
|
47797
|
+
autoFocus: true
|
|
47798
|
+
}));
|
|
47799
|
+
default:
|
|
47800
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
|
47801
|
+
ref: containerRef
|
|
47802
|
+
}, /*#__PURE__*/React__default.createElement(InputText, {
|
|
47803
|
+
value: localValue !== null && localValue !== void 0 ? localValue : '',
|
|
47804
|
+
onChange: function onChange(e) {
|
|
47805
|
+
return setLocalValue(e.target.value);
|
|
47806
|
+
},
|
|
47807
|
+
onKeyDown: function onKeyDown(e) {
|
|
47808
|
+
if (e.key === 'Enter') {
|
|
47809
|
+
e.stopPropagation();
|
|
47810
|
+
commit(localValueRef.current);
|
|
47811
|
+
}
|
|
47812
|
+
},
|
|
47813
|
+
autoFocus: true
|
|
47814
|
+
}));
|
|
47815
|
+
}
|
|
47816
|
+
};
|
|
47817
|
+
var DocumentBodyCell = function DocumentBodyCell(_ref0) {
|
|
47818
|
+
var _rowData$col$field2;
|
|
47819
|
+
var rowData = _ref0.rowData,
|
|
47820
|
+
col = _ref0.col,
|
|
47821
|
+
editable = _ref0.editable,
|
|
47822
|
+
isRowEditing = _ref0.isRowEditing,
|
|
47823
|
+
onSave = _ref0.onSave;
|
|
47824
|
+
var _useState19 = useState(false),
|
|
47825
|
+
_useState20 = _slicedToArray$c(_useState19, 2),
|
|
47826
|
+
editing = _useState20[0],
|
|
47827
|
+
setEditing = _useState20[1];
|
|
47828
|
+
var _useState21 = useState((_rowData$col$field2 = rowData[col.field]) !== null && _rowData$col$field2 !== void 0 ? _rowData$col$field2 : []),
|
|
47829
|
+
_useState22 = _slicedToArray$c(_useState21, 2),
|
|
47830
|
+
docs = _useState22[0],
|
|
47831
|
+
setDocs = _useState22[1];
|
|
47832
|
+
var containerRef = useRef(null);
|
|
47833
|
+
useEffect(function () {
|
|
47834
|
+
if (isRowEditing && !editing) {
|
|
47835
|
+
var _rowData$col$field3;
|
|
47836
|
+
setDocs((_rowData$col$field3 = rowData[col.field]) !== null && _rowData$col$field3 !== void 0 ? _rowData$col$field3 : []);
|
|
47837
|
+
setEditing(true);
|
|
47838
|
+
} else if (!isRowEditing && editing) {
|
|
47839
|
+
setEditing(false);
|
|
47840
|
+
}
|
|
47841
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
47842
|
+
}, [isRowEditing]);
|
|
47843
|
+
useEffect(function () {
|
|
47844
|
+
if (!editing || isRowEditing) return;
|
|
47845
|
+
var handler = function handler(e) {
|
|
47846
|
+
if (containerRef.current && !containerRef.current.contains(e.target)) {
|
|
47847
|
+
setEditing(false);
|
|
47848
|
+
}
|
|
47849
|
+
};
|
|
47850
|
+
document.addEventListener('mousedown', handler);
|
|
47851
|
+
return function () {
|
|
47852
|
+
return document.removeEventListener('mousedown', handler);
|
|
47853
|
+
};
|
|
47854
|
+
}, [editing, isRowEditing]);
|
|
47855
|
+
var handleCallback = useCallback(function (newDocs) {
|
|
47856
|
+
setDocs(newDocs);
|
|
47857
|
+
onSave(newDocs);
|
|
47858
|
+
}, [onSave]);
|
|
47859
|
+
if (editing) {
|
|
47860
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
|
47861
|
+
ref: containerRef
|
|
47862
|
+
}, /*#__PURE__*/React__default.createElement(DocumentEditorCell, {
|
|
47863
|
+
options: {
|
|
47864
|
+
value: docs,
|
|
47865
|
+
editorCallback: handleCallback
|
|
47866
|
+
},
|
|
47867
|
+
col: col
|
|
47868
|
+
}));
|
|
47869
|
+
}
|
|
47870
|
+
if (!docs.length) {
|
|
47871
|
+
return /*#__PURE__*/React__default.createElement("span", {
|
|
47872
|
+
className: "doc-cell-empty",
|
|
47873
|
+
onClick: function onClick() {
|
|
47874
|
+
return editable && setEditing(true);
|
|
47875
|
+
},
|
|
47876
|
+
style: {
|
|
47877
|
+
cursor: editable ? 'pointer' : 'default'
|
|
47878
|
+
}
|
|
47879
|
+
}, /*#__PURE__*/React__default.createElement("i", {
|
|
47880
|
+
className: "pi pi-paperclip"
|
|
47881
|
+
}), " \u2014");
|
|
47882
|
+
}
|
|
47883
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
|
47884
|
+
className: "doc-cell",
|
|
47885
|
+
onClick: function onClick() {
|
|
47886
|
+
return editable && setEditing(true);
|
|
47887
|
+
},
|
|
47888
|
+
style: {
|
|
47889
|
+
cursor: editable ? 'pointer' : 'default'
|
|
47890
|
+
}
|
|
47891
|
+
}, /*#__PURE__*/React__default.createElement("div", {
|
|
47892
|
+
className: "doc-cell-summary"
|
|
47893
|
+
}, /*#__PURE__*/React__default.createElement("i", {
|
|
47894
|
+
className: "pi pi-paperclip"
|
|
47895
|
+
}), /*#__PURE__*/React__default.createElement("span", null, docs.length === 1 ? docs[0].name : "".concat(docs.length, " documents"))), docs.length > 1 && /*#__PURE__*/React__default.createElement("div", {
|
|
47896
|
+
className: "doc-cell-list"
|
|
47897
|
+
}, docs.map(function (doc, i) {
|
|
47898
|
+
var _doc$id2;
|
|
47899
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
|
47900
|
+
key: (_doc$id2 = doc.id) !== null && _doc$id2 !== void 0 ? _doc$id2 : i
|
|
47901
|
+
}, /*#__PURE__*/React__default.createElement("a", {
|
|
47902
|
+
href: doc.url,
|
|
47903
|
+
target: "_blank",
|
|
47904
|
+
rel: "noreferrer"
|
|
47905
|
+
}, doc.name));
|
|
47906
|
+
})));
|
|
47907
|
+
};
|
|
47908
|
+
var Table = function Table(_ref1) {
|
|
47909
|
+
var _ref1$value = _ref1.value,
|
|
47910
|
+
value = _ref1$value === void 0 ? [] : _ref1$value,
|
|
47911
|
+
_ref1$columns = _ref1.columns,
|
|
47912
|
+
columns = _ref1$columns === void 0 ? [] : _ref1$columns,
|
|
47913
|
+
_ref1$paginator = _ref1.paginator,
|
|
47914
|
+
paginator = _ref1$paginator === void 0 ? true : _ref1$paginator,
|
|
47915
|
+
_ref1$rows = _ref1.rows,
|
|
47916
|
+
rows = _ref1$rows === void 0 ? 25 : _ref1$rows,
|
|
47917
|
+
_ref1$loading = _ref1.loading,
|
|
47918
|
+
loading = _ref1$loading === void 0 ? false : _ref1$loading,
|
|
47919
|
+
_ref1$stripedRows = _ref1.stripedRows,
|
|
47920
|
+
stripedRows = _ref1$stripedRows === void 0 ? false : _ref1$stripedRows,
|
|
47921
|
+
_ref1$selectionMode = _ref1.selectionMode,
|
|
47922
|
+
selectionMode = _ref1$selectionMode === void 0 ? null : _ref1$selectionMode,
|
|
47923
|
+
selection = _ref1.selection,
|
|
47924
|
+
onSelectionChange = _ref1.onSelectionChange,
|
|
47925
|
+
_ref1$editable = _ref1.editable,
|
|
47926
|
+
editable = _ref1$editable === void 0 ? false : _ref1$editable,
|
|
47927
|
+
_ref1$rowEdit = _ref1.rowEdit,
|
|
47928
|
+
rowEdit = _ref1$rowEdit === void 0 ? true : _ref1$rowEdit,
|
|
47929
|
+
onChange = _ref1.onChange,
|
|
47930
|
+
onCellChange = _ref1.onCellChange,
|
|
47931
|
+
carto = _ref1.carto;
|
|
47932
|
+
var _useState23 = useState(value),
|
|
47933
|
+
_useState24 = _slicedToArray$c(_useState23, 2),
|
|
47934
|
+
data = _useState24[0],
|
|
47935
|
+
setData = _useState24[1];
|
|
47676
47936
|
var updateRow = useCallback(function (rowId, field, newVal) {
|
|
47677
47937
|
setData(function (prev) {
|
|
47678
47938
|
var updated = prev.map(function (row) {
|
|
@@ -47682,41 +47942,53 @@ var Table = function Table(_ref9) {
|
|
|
47682
47942
|
return updated;
|
|
47683
47943
|
});
|
|
47684
47944
|
}, [onChange]);
|
|
47685
|
-
var
|
|
47686
|
-
|
|
47687
|
-
editingRows =
|
|
47688
|
-
setEditingRows =
|
|
47945
|
+
var _useState25 = useState({}),
|
|
47946
|
+
_useState26 = _slicedToArray$c(_useState25, 2),
|
|
47947
|
+
editingRows = _useState26[0],
|
|
47948
|
+
setEditingRows = _useState26[1];
|
|
47689
47949
|
var onRowEditChange = useCallback(function (e) {
|
|
47690
47950
|
setEditingRows(e.data);
|
|
47691
47951
|
}, []);
|
|
47692
47952
|
var onRowEditComplete = useCallback(function (e) {
|
|
47953
|
+
var _data$index;
|
|
47693
47954
|
var newData = e.newData,
|
|
47694
47955
|
index = e.index;
|
|
47956
|
+
// All editable columns are self-managed (SelfEditableCell / DocumentBodyCell / DeviseBodyCell / TreeSelectBodyCell)
|
|
47957
|
+
// and already applied their changes via updateRow — data[index] is the source of truth.
|
|
47958
|
+
// Merge: keep self-managed field values from data, keep non-editable fields from newData.
|
|
47959
|
+
var currentRow = (_data$index = data[index]) !== null && _data$index !== void 0 ? _data$index : newData;
|
|
47960
|
+
var mergedData = _objectSpread2({}, newData);
|
|
47961
|
+
columns.forEach(function (col) {
|
|
47962
|
+
var colEditable = editable ? col.editable !== false : col.editable === true;
|
|
47963
|
+
if (colEditable) {
|
|
47964
|
+
mergedData[col.field] = currentRow[col.field];
|
|
47965
|
+
}
|
|
47966
|
+
});
|
|
47695
47967
|
var updated = data.map(function (row, i) {
|
|
47696
|
-
return i === index ?
|
|
47968
|
+
return i === index ? mergedData : row;
|
|
47697
47969
|
});
|
|
47698
47970
|
setData(updated);
|
|
47699
47971
|
onChange === null || onChange === void 0 || onChange(updated);
|
|
47700
47972
|
onCellChange === null || onCellChange === void 0 || onCellChange({
|
|
47701
47973
|
rowData: data[index],
|
|
47702
|
-
newRowData:
|
|
47974
|
+
newRowData: mergedData
|
|
47703
47975
|
});
|
|
47704
|
-
}, [data, onChange, onCellChange]);
|
|
47976
|
+
}, [data, onChange, onCellChange, columns, editable]);
|
|
47705
47977
|
var STORAGE_KEY = useMemo(function () {
|
|
47706
47978
|
return carto ? "Table:visibleColumns:".concat(carto) : "Table:visibleColumns";
|
|
47707
47979
|
}, [carto]);
|
|
47708
|
-
var
|
|
47709
|
-
|
|
47710
|
-
visibleColumns =
|
|
47711
|
-
setVisibleColumns =
|
|
47712
|
-
var
|
|
47713
|
-
|
|
47714
|
-
showColumnPicker =
|
|
47715
|
-
setShowColumnPicker =
|
|
47716
|
-
var
|
|
47717
|
-
|
|
47718
|
-
globalFilter =
|
|
47719
|
-
setGlobalFilter =
|
|
47980
|
+
var _useState27 = useState(columns),
|
|
47981
|
+
_useState28 = _slicedToArray$c(_useState27, 2),
|
|
47982
|
+
visibleColumns = _useState28[0],
|
|
47983
|
+
setVisibleColumns = _useState28[1];
|
|
47984
|
+
var _useState29 = useState(false),
|
|
47985
|
+
_useState30 = _slicedToArray$c(_useState29, 2),
|
|
47986
|
+
showColumnPicker = _useState30[0],
|
|
47987
|
+
setShowColumnPicker = _useState30[1];
|
|
47988
|
+
var _useState31 = useState(''),
|
|
47989
|
+
_useState32 = _slicedToArray$c(_useState31, 2),
|
|
47990
|
+
globalFilter = _useState32[0],
|
|
47991
|
+
setGlobalFilter = _useState32[1];
|
|
47720
47992
|
useEffect(function () {
|
|
47721
47993
|
var nextVisible = columns;
|
|
47722
47994
|
var defaultVisible = columns.filter(function (c) {
|
|
@@ -47739,9 +48011,9 @@ var Table = function Table(_ref9) {
|
|
|
47739
48011
|
|
|
47740
48012
|
var linkTemplate = useCallback(function (col) {
|
|
47741
48013
|
return function (rowData) {
|
|
47742
|
-
var
|
|
48014
|
+
var _ref10, _col$href;
|
|
47743
48015
|
var label = rowData[col.field];
|
|
47744
|
-
var href = typeof col.href === 'function' ? col.href(rowData) : (
|
|
48016
|
+
var href = typeof col.href === 'function' ? col.href(rowData) : (_ref10 = (_col$href = col.href) !== null && _col$href !== void 0 ? _col$href : rowData[col.field + 'Url']) !== null && _ref10 !== void 0 ? _ref10 : '#';
|
|
47745
48017
|
return /*#__PURE__*/React__default.createElement("div", {
|
|
47746
48018
|
className: "arengi-table-grey-title-box"
|
|
47747
48019
|
}, /*#__PURE__*/React__default.createElement("a", {
|
|
@@ -47758,17 +48030,17 @@ var Table = function Table(_ref9) {
|
|
|
47758
48030
|
var str = String(val);
|
|
47759
48031
|
var y, m, d;
|
|
47760
48032
|
if (str.includes('/')) {
|
|
47761
|
-
var _str$
|
|
47762
|
-
var _str$
|
|
47763
|
-
d = _str$
|
|
47764
|
-
m = _str$
|
|
47765
|
-
y = _str$
|
|
48033
|
+
var _str$split5 = str.split('/');
|
|
48034
|
+
var _str$split6 = _slicedToArray$c(_str$split5, 3);
|
|
48035
|
+
d = _str$split6[0];
|
|
48036
|
+
m = _str$split6[1];
|
|
48037
|
+
y = _str$split6[2];
|
|
47766
48038
|
} else {
|
|
47767
|
-
var _str$
|
|
47768
|
-
var _str$
|
|
47769
|
-
y = _str$
|
|
47770
|
-
m = _str$
|
|
47771
|
-
d = _str$
|
|
48039
|
+
var _str$split7 = str.split('-');
|
|
48040
|
+
var _str$split8 = _slicedToArray$c(_str$split7, 3);
|
|
48041
|
+
y = _str$split8[0];
|
|
48042
|
+
m = _str$split8[1];
|
|
48043
|
+
d = _str$split8[2];
|
|
47772
48044
|
}
|
|
47773
48045
|
var date = new Date(y, m - 1, d);
|
|
47774
48046
|
if (isNaN(date.getTime())) return 'N/A';
|
|
@@ -47798,9 +48070,9 @@ var Table = function Table(_ref9) {
|
|
|
47798
48070
|
}, []);
|
|
47799
48071
|
var textTemplate = useCallback(function (col) {
|
|
47800
48072
|
return function (rowData) {
|
|
47801
|
-
var _rowData$col$
|
|
48073
|
+
var _rowData$col$field4;
|
|
47802
48074
|
if (typeof col.textTemplate === 'function') return col.textTemplate(rowData);
|
|
47803
|
-
return (_rowData$col$
|
|
48075
|
+
return (_rowData$col$field4 = rowData[col.field]) !== null && _rowData$col$field4 !== void 0 ? _rowData$col$field4 : '';
|
|
47804
48076
|
};
|
|
47805
48077
|
}, []);
|
|
47806
48078
|
var colorTextTemplate = useCallback(function (col) {
|
|
@@ -47859,8 +48131,8 @@ var Table = function Table(_ref9) {
|
|
|
47859
48131
|
}, []);
|
|
47860
48132
|
var documentTemplate = useCallback(function (col) {
|
|
47861
48133
|
return function (rowData) {
|
|
47862
|
-
var _rowData$col$
|
|
47863
|
-
var docs = (_rowData$col$
|
|
48134
|
+
var _rowData$col$field5;
|
|
48135
|
+
var docs = (_rowData$col$field5 = rowData[col.field]) !== null && _rowData$col$field5 !== void 0 ? _rowData$col$field5 : [];
|
|
47864
48136
|
if (!docs.length) return /*#__PURE__*/React__default.createElement("span", {
|
|
47865
48137
|
className: "doc-cell-empty"
|
|
47866
48138
|
}, /*#__PURE__*/React__default.createElement("i", {
|
|
@@ -47875,9 +48147,9 @@ var Table = function Table(_ref9) {
|
|
|
47875
48147
|
}), /*#__PURE__*/React__default.createElement("span", null, docs.length === 1 ? docs[0].name : "".concat(docs.length, " documents"))), docs.length > 1 && /*#__PURE__*/React__default.createElement("div", {
|
|
47876
48148
|
className: "doc-cell-list"
|
|
47877
48149
|
}, docs.map(function (doc, i) {
|
|
47878
|
-
var _doc$
|
|
48150
|
+
var _doc$id3;
|
|
47879
48151
|
return /*#__PURE__*/React__default.createElement("div", {
|
|
47880
|
-
key: (_doc$
|
|
48152
|
+
key: (_doc$id3 = doc.id) !== null && _doc$id3 !== void 0 ? _doc$id3 : i
|
|
47881
48153
|
}, /*#__PURE__*/React__default.createElement("a", {
|
|
47882
48154
|
href: doc.url,
|
|
47883
48155
|
target: "_blank",
|
|
@@ -47960,19 +48232,19 @@ var Table = function Table(_ref9) {
|
|
|
47960
48232
|
var str = options.value ? String(options.value) : null;
|
|
47961
48233
|
if (str && str !== 'N/A') {
|
|
47962
48234
|
if (str.includes('/')) {
|
|
47963
|
-
var _str$
|
|
47964
|
-
_str$
|
|
47965
|
-
d = _str$
|
|
47966
|
-
m = _str$
|
|
47967
|
-
y = _str$
|
|
48235
|
+
var _str$split9 = str.split('/'),
|
|
48236
|
+
_str$split0 = _slicedToArray$c(_str$split9, 3),
|
|
48237
|
+
d = _str$split0[0],
|
|
48238
|
+
m = _str$split0[1],
|
|
48239
|
+
y = _str$split0[2];
|
|
47968
48240
|
dateObj = new Date(y, m - 1, d);
|
|
47969
48241
|
} else if (str.includes('-')) {
|
|
47970
|
-
var _str$
|
|
47971
|
-
_str$
|
|
47972
|
-
|
|
47973
|
-
|
|
47974
|
-
|
|
47975
|
-
dateObj = new Date(
|
|
48242
|
+
var _str$split1 = str.split('-'),
|
|
48243
|
+
_str$split10 = _slicedToArray$c(_str$split1, 3),
|
|
48244
|
+
_y2 = _str$split10[0],
|
|
48245
|
+
_m2 = _str$split10[1],
|
|
48246
|
+
_d2 = _str$split10[2];
|
|
48247
|
+
dateObj = new Date(_y2, _m2 - 1, _d2);
|
|
47976
48248
|
}
|
|
47977
48249
|
}
|
|
47978
48250
|
if (!dateObj || isNaN(dateObj.getTime())) dateObj = new Date();
|
|
@@ -48044,6 +48316,13 @@ var Table = function Table(_ref9) {
|
|
|
48044
48316
|
var getEditorTemplate = useCallback(function (col) {
|
|
48045
48317
|
var colEditable = editable ? col.editable !== false : col.editable === true;
|
|
48046
48318
|
if (!colEditable) return undefined;
|
|
48319
|
+
// In rowEdit mode, all columns except devise/treeSelect use SelfEditableCell or DocumentBodyCell
|
|
48320
|
+
// which manage their own editing state — no PrimeReact editor needed.
|
|
48321
|
+
if (rowEdit) {
|
|
48322
|
+
if (col.type === 'devise') return deviseEditor(col);
|
|
48323
|
+
if (col.type === 'treeSelect') return treeSelectEditor(col);
|
|
48324
|
+
return undefined;
|
|
48325
|
+
}
|
|
48047
48326
|
switch (col.type) {
|
|
48048
48327
|
case 'date':
|
|
48049
48328
|
return dateEditor;
|
|
@@ -48064,7 +48343,7 @@ var Table = function Table(_ref9) {
|
|
|
48064
48343
|
default:
|
|
48065
48344
|
return textEditor;
|
|
48066
48345
|
}
|
|
48067
|
-
}, [editable, textEditor, dateEditor, selectEditor, selectMultipleEditor, numericEditor, documentEditor, deviseEditor, treeSelectEditor]);
|
|
48346
|
+
}, [editable, rowEdit, textEditor, dateEditor, selectEditor, selectMultipleEditor, numericEditor, documentEditor, deviseEditor, treeSelectEditor]);
|
|
48068
48347
|
var onCellEditComplete = useCallback(function (e) {
|
|
48069
48348
|
if (rowEdit) return;
|
|
48070
48349
|
var rowData = e.rowData,
|
|
@@ -48089,34 +48368,88 @@ var Table = function Table(_ref9) {
|
|
|
48089
48368
|
|
|
48090
48369
|
/** Get the body renderer for a column based on its type */
|
|
48091
48370
|
var getBodyTemplate = useCallback(function (col) {
|
|
48371
|
+
var colEditable = editable ? col.editable !== false : col.editable === true;
|
|
48372
|
+
|
|
48373
|
+
// These types always manage their own editing state regardless of mode
|
|
48374
|
+
if (col.type === 'devise') return deviseTemplate(col);
|
|
48375
|
+
if (col.type === 'treeSelect') return treeSelectTemplate(col);
|
|
48376
|
+
if (col.type === 'picto') return pictoTemplate(col);
|
|
48377
|
+
if (col.type === 'calcul') return calculTemplate(col);
|
|
48378
|
+
|
|
48379
|
+
// Documents: self-managed click-to-edit in rowEdit mode
|
|
48380
|
+
if (col.type === 'documents') {
|
|
48381
|
+
if (rowEdit && colEditable) {
|
|
48382
|
+
return function (rowData) {
|
|
48383
|
+
return /*#__PURE__*/React__default.createElement(DocumentBodyCell, {
|
|
48384
|
+
rowData: rowData,
|
|
48385
|
+
col: col,
|
|
48386
|
+
editable: colEditable,
|
|
48387
|
+
isRowEditing: !!editingRows[rowData.id],
|
|
48388
|
+
onSave: function onSave(v) {
|
|
48389
|
+
updateRow(rowData.id, col.field, v);
|
|
48390
|
+
onCellChange === null || onCellChange === void 0 || onCellChange({
|
|
48391
|
+
rowData: rowData,
|
|
48392
|
+
field: col.field,
|
|
48393
|
+
newValue: v
|
|
48394
|
+
});
|
|
48395
|
+
}
|
|
48396
|
+
});
|
|
48397
|
+
};
|
|
48398
|
+
}
|
|
48399
|
+
return documentTemplate(col);
|
|
48400
|
+
}
|
|
48401
|
+
|
|
48402
|
+
// Pure display renderer
|
|
48403
|
+
var displayFn;
|
|
48092
48404
|
switch (col.type) {
|
|
48093
48405
|
case 'link':
|
|
48094
|
-
|
|
48406
|
+
displayFn = linkTemplate(col);
|
|
48407
|
+
break;
|
|
48095
48408
|
case 'date':
|
|
48096
|
-
|
|
48409
|
+
displayFn = function displayFn(rd) {
|
|
48410
|
+
return dateTemplate(rd, {
|
|
48411
|
+
field: col.field
|
|
48412
|
+
});
|
|
48413
|
+
};
|
|
48414
|
+
break;
|
|
48097
48415
|
case 'select':
|
|
48098
|
-
|
|
48416
|
+
displayFn = selectTemplate(col);
|
|
48417
|
+
break;
|
|
48099
48418
|
case 'selectMultiple':
|
|
48100
|
-
|
|
48419
|
+
displayFn = selectMultipleTemplate(col);
|
|
48420
|
+
break;
|
|
48101
48421
|
case 'colorText':
|
|
48102
|
-
|
|
48103
|
-
|
|
48104
|
-
return pictoTemplate(col);
|
|
48422
|
+
displayFn = colorTextTemplate(col);
|
|
48423
|
+
break;
|
|
48105
48424
|
case 'numeric':
|
|
48106
|
-
|
|
48107
|
-
|
|
48108
|
-
return calculTemplate(col);
|
|
48109
|
-
case 'documents':
|
|
48110
|
-
return documentTemplate(col);
|
|
48111
|
-
case 'devise':
|
|
48112
|
-
return deviseTemplate(col);
|
|
48113
|
-
case 'treeSelect':
|
|
48114
|
-
return treeSelectTemplate(col);
|
|
48425
|
+
displayFn = numericTemplate(col);
|
|
48426
|
+
break;
|
|
48115
48427
|
case 'text':
|
|
48116
48428
|
default:
|
|
48117
|
-
|
|
48429
|
+
displayFn = col.textTemplate ? textTemplate(col) : undefined;
|
|
48430
|
+
break;
|
|
48431
|
+
}
|
|
48432
|
+
|
|
48433
|
+
// In rowEdit mode, wrap editable columns with SelfEditableCell for click-to-edit
|
|
48434
|
+
if (rowEdit && colEditable) {
|
|
48435
|
+
return function (rowData) {
|
|
48436
|
+
return /*#__PURE__*/React__default.createElement(SelfEditableCell, {
|
|
48437
|
+
rowData: rowData,
|
|
48438
|
+
col: col,
|
|
48439
|
+
editable: colEditable,
|
|
48440
|
+
isRowEditing: !!editingRows[rowData.id],
|
|
48441
|
+
onSave: function onSave(v) {
|
|
48442
|
+
return updateRow(rowData.id, col.field, v);
|
|
48443
|
+
},
|
|
48444
|
+
renderDisplay: displayFn !== null && displayFn !== void 0 ? displayFn : function (rd) {
|
|
48445
|
+
var _rd$col$field;
|
|
48446
|
+
return (_rd$col$field = rd[col.field]) !== null && _rd$col$field !== void 0 ? _rd$col$field : '';
|
|
48447
|
+
}
|
|
48448
|
+
});
|
|
48449
|
+
};
|
|
48118
48450
|
}
|
|
48119
|
-
|
|
48451
|
+
return displayFn;
|
|
48452
|
+
}, [rowEdit, editable, editingRows, updateRow, onCellChange, linkTemplate, dateTemplate, selectTemplate, selectMultipleTemplate, colorTextTemplate, pictoTemplate, textTemplate, numericTemplate, calculTemplate, documentTemplate, deviseTemplate, treeSelectTemplate]);
|
|
48120
48453
|
var getSortField = useCallback(function (col) {
|
|
48121
48454
|
return col.field;
|
|
48122
48455
|
}, []);
|