blixify-ui-web 1.2.58 → 1.2.60
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/components/data/dataTemplate/dataStateModel.d.ts +1 -0
- package/lib/components/data/dataTemplate/dataStateModel.d.ts.map +1 -1
- package/lib/components/data/dataTemplate/dataStateModel.js.map +1 -1
- package/lib/components/data/dataTemplate/index.d.ts.map +1 -1
- package/lib/components/data/dataTemplate/index.js +368 -226
- package/lib/components/data/dataTemplate/index.js.map +1 -1
- package/lib/components/data/dataTemplate/viewStatePersistence.d.ts +1 -0
- package/lib/components/data/dataTemplate/viewStatePersistence.d.ts.map +1 -1
- package/lib/components/data/dataTemplate/viewStatePersistence.js.map +1 -1
- package/lib/components/data/dataWrapper/dataWrapper.fixtures.d.ts +9 -0
- package/lib/components/data/dataWrapper/dataWrapper.fixtures.d.ts.map +1 -0
- package/lib/components/data/dataWrapper/dataWrapper.fixtures.js +33 -0
- package/lib/components/data/dataWrapper/dataWrapper.fixtures.js.map +1 -0
- package/lib/components/data/dataWrapper/index.d.ts +36 -1
- package/lib/components/data/dataWrapper/index.d.ts.map +1 -1
- package/lib/components/data/dataWrapper/index.js +206 -61
- package/lib/components/data/dataWrapper/index.js.map +1 -1
- package/lib/components/data/flexFilter/index.d.ts.map +1 -1
- package/lib/components/data/flexFilter/index.js +1 -2
- package/lib/components/data/flexFilter/index.js.map +1 -1
- package/lib/components/data/listModule.d.ts +3 -1
- package/lib/components/data/listModule.d.ts.map +1 -1
- package/lib/components/data/listModule.js +6 -4
- package/lib/components/data/listModule.js.map +1 -1
- package/lib/components/data/updateModule.d.ts.map +1 -1
- package/lib/components/data/updateModule.js +18 -11
- package/lib/components/data/updateModule.js.map +1 -1
- package/lib/components/data/utils.d.ts +9 -1
- package/lib/components/data/utils.d.ts.map +1 -1
- package/lib/components/data/utils.js +74 -1
- package/lib/components/data/utils.js.map +1 -1
- package/lib/components/display/drawer/index.d.ts +22 -6
- package/lib/components/display/drawer/index.d.ts.map +1 -1
- package/lib/components/display/drawer/index.js +138 -17
- package/lib/components/display/drawer/index.js.map +1 -1
- package/lib/components/display/flexTable/newMobileItemCard.d.ts.map +1 -1
- package/lib/components/display/flexTable/newMobileItemCard.js +1 -2
- package/lib/components/display/flexTable/newMobileItemCard.js.map +1 -1
- package/lib/components/display/newTable/index.d.ts +4 -0
- package/lib/components/display/newTable/index.d.ts.map +1 -1
- package/lib/components/display/newTable/index.js +207 -29
- package/lib/components/display/newTable/index.js.map +1 -1
- package/lib/components/display/table/index.d.ts +22 -4
- package/lib/components/display/table/index.d.ts.map +1 -1
- package/lib/components/display/table/index.js +221 -40
- package/lib/components/display/table/index.js.map +1 -1
- package/lib/components/input/textArea/index.d.ts +5 -0
- package/lib/components/input/textArea/index.d.ts.map +1 -1
- package/lib/components/input/textArea/index.js +10 -3
- package/lib/components/input/textArea/index.js.map +1 -1
- package/lib/tail.css +2 -2
- package/package.json +1 -1
|
@@ -100,6 +100,7 @@ var tag_1 = require("../tag");
|
|
|
100
100
|
var textButton_1 = require("../../action/textButton");
|
|
101
101
|
var iconButton_1 = require("../../action/iconButton");
|
|
102
102
|
var link_1 = require("../../structure/link");
|
|
103
|
+
var button_1 = require("../../action/button");
|
|
103
104
|
var modal_1 = require("../modal");
|
|
104
105
|
// INFO: resolve dotted key paths (e.g. "group.subKey") against a row object.
|
|
105
106
|
// Required because flatColumns uses "parent.child" keys for groupData sub-columns.
|
|
@@ -140,8 +141,24 @@ var resolveValueToString = function (key, source, row) {
|
|
|
140
141
|
}
|
|
141
142
|
return "";
|
|
142
143
|
};
|
|
144
|
+
var handleCheckModalEditEmpty = function (value) {
|
|
145
|
+
if (value === undefined || value === null)
|
|
146
|
+
return true;
|
|
147
|
+
if (typeof value === "string") {
|
|
148
|
+
var trimmed = value.trim();
|
|
149
|
+
return trimmed === "" || trimmed === "-";
|
|
150
|
+
}
|
|
151
|
+
if (Array.isArray(value))
|
|
152
|
+
return value.length === 0;
|
|
153
|
+
if (typeof value === "object") {
|
|
154
|
+
if (Array.isArray(value.data))
|
|
155
|
+
return value.data.length === 0;
|
|
156
|
+
return Object.values(value).every(function (each) { return each === undefined || each === null || each === ""; });
|
|
157
|
+
}
|
|
158
|
+
return false;
|
|
159
|
+
};
|
|
143
160
|
var NewTable = function (props) {
|
|
144
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
|
|
161
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u;
|
|
145
162
|
var columns = (_b = (_a = props.columns) !== null && _a !== void 0 ? _a : props.header) !== null && _b !== void 0 ? _b : [];
|
|
146
163
|
var defaultLimit = 10;
|
|
147
164
|
var defaultPageSize = 5;
|
|
@@ -190,26 +207,30 @@ var NewTable = function (props) {
|
|
|
190
207
|
flatColumns.length = 0;
|
|
191
208
|
flatColumns.push.apply(flatColumns, __spreadArray(__spreadArray(__spreadArray([], leftCols, false), middleCols, false), rightCols, false));
|
|
192
209
|
}
|
|
193
|
-
var
|
|
210
|
+
var _v = (0, react_2.useState)(props.fixedPagination ? true : false), isFixed = _v[0], setIsFixed = _v[1];
|
|
194
211
|
//=====================================================================================
|
|
195
212
|
// SECTION: Advanced Settings
|
|
196
213
|
//=====================================================================================
|
|
197
|
-
var
|
|
198
|
-
var
|
|
214
|
+
var _w = (0, react_2.useState)(""), filterModal = _w[0], setFilterModal = _w[1];
|
|
215
|
+
var _x = (0, react_2.useState)(""), addColumnModal = _x[0], setAddColumnModal = _x[1];
|
|
199
216
|
//=====================================================================================
|
|
200
217
|
// SECTION: Editable & Addable cells
|
|
201
218
|
//=====================================================================================
|
|
202
|
-
var
|
|
203
|
-
var
|
|
204
|
-
var
|
|
205
|
-
var
|
|
206
|
-
var
|
|
207
|
-
var
|
|
208
|
-
var
|
|
209
|
-
var
|
|
210
|
-
|
|
219
|
+
var _y = (0, react_2.useState)(""), editDataRowId = _y[0], setEditDataRowId = _y[1];
|
|
220
|
+
var _z = (0, react_2.useState)(""), editDataHeaderKey = _z[0], setEditDataHeaderKey = _z[1];
|
|
221
|
+
var _0 = (0, react_2.useState)(false), modalEditVisible = _0[0], setModalEditVisible = _0[1];
|
|
222
|
+
var _1 = (0, react_2.useState)({}), editDataValue = _1[0], setEditDataValue = _1[1];
|
|
223
|
+
var _2 = (0, react_2.useState)(false), editDataIsLoading = _2[0], setEditDataIsLoading = _2[1];
|
|
224
|
+
var _3 = (0, react_2.useState)(false), addData = _3[0], setAddData = _3[1];
|
|
225
|
+
var _4 = (0, react_2.useState)({}), addDataValue = _4[0], setAddDataValue = _4[1];
|
|
226
|
+
var _5 = (0, react_2.useState)({}), referencesOptions = _5[0], setReferencesOptions = _5[1];
|
|
227
|
+
// INFO: seeded options sit under the local map so a cell's own search
|
|
228
|
+
// results still win per key
|
|
229
|
+
var mergedReferencesOptions = __assign(__assign({}, ((_g = props.referencesOptions) !== null && _g !== void 0 ? _g : {})), referencesOptions);
|
|
230
|
+
var _6 = (0, react_2.useState)({}), referencesDetails = _6[0], setReferencesDetails = _6[1];
|
|
231
|
+
var _7 = (0, react_2.useState)(false), referenceLoading = _7[0], setReferenceLoading = _7[1];
|
|
211
232
|
// INFO: measured pixel widths for pinned columns without an explicit width.
|
|
212
|
-
var
|
|
233
|
+
var _8 = (0, react_2.useState)({}), measuredPinWidths = _8[0], setMeasuredPinWidths = _8[1];
|
|
213
234
|
var editDataValueRef = (0, react_2.useRef)({});
|
|
214
235
|
var editDataRowIdRef = (0, react_2.useRef)("");
|
|
215
236
|
var editDataInputRefs = (0, react_2.useRef)([]);
|
|
@@ -397,6 +418,99 @@ var NewTable = function (props) {
|
|
|
397
418
|
setEditDataValue(data);
|
|
398
419
|
}
|
|
399
420
|
};
|
|
421
|
+
var handleOnChangeFile = function (e) {
|
|
422
|
+
var cloned = handleGenerateClonedData();
|
|
423
|
+
cloned[e.target.id] =
|
|
424
|
+
e.target.files.length > 0 ? e.target.files[0] : undefined;
|
|
425
|
+
handleUpdateChangeData(cloned);
|
|
426
|
+
};
|
|
427
|
+
var handleOnChangeFiles = function (id, value, action) {
|
|
428
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
429
|
+
var cloned = handleGenerateClonedData();
|
|
430
|
+
var previousData = (_b = (_a = cloned[id]) === null || _a === void 0 ? void 0 : _a["data"]) !== null && _b !== void 0 ? _b : [];
|
|
431
|
+
var previousUpload = (_d = (_c = cloned[id]) === null || _c === void 0 ? void 0 : _c["upload"]) !== null && _d !== void 0 ? _d : [];
|
|
432
|
+
var previousRemove = (_f = (_e = cloned[id]) === null || _e === void 0 ? void 0 : _e["remove"]) !== null && _f !== void 0 ? _f : [];
|
|
433
|
+
if (action === "tagEdit") {
|
|
434
|
+
var applyTags = function (target, source) {
|
|
435
|
+
return target.map(function (item) {
|
|
436
|
+
var match = source.find(function (each) { return each.token === item.token; });
|
|
437
|
+
return match
|
|
438
|
+
? __assign(__assign({}, item), { tags: match.tags, description: match.description, hidden: match.hidden }) : item;
|
|
439
|
+
});
|
|
440
|
+
};
|
|
441
|
+
cloned[id] = __assign(__assign({}, cloned[id]), { data: applyTags(previousData, (_g = value.data) !== null && _g !== void 0 ? _g : []), upload: applyTags(previousUpload, (_h = value.upload) !== null && _h !== void 0 ? _h : []) });
|
|
442
|
+
}
|
|
443
|
+
else if (action === "upload") {
|
|
444
|
+
cloned[id] = __assign(__assign({}, cloned[id]), { upload: __spreadArray(__spreadArray([], value, true), previousUpload, true) });
|
|
445
|
+
}
|
|
446
|
+
else if (previousData.some(function (file) { return file.token === value.token; })) {
|
|
447
|
+
cloned[id] = __assign(__assign({}, cloned[id]), { data: previousData.filter(function (file) { return file.token !== value.token; }), remove: __spreadArray(__spreadArray([], previousRemove, true), [value], false) });
|
|
448
|
+
}
|
|
449
|
+
else {
|
|
450
|
+
cloned[id] = __assign(__assign({}, cloned[id]), { upload: previousUpload.filter(function (file) { return file.token !== value.token; }) });
|
|
451
|
+
}
|
|
452
|
+
handleUpdateChangeData(cloned);
|
|
453
|
+
};
|
|
454
|
+
var handleNormalizeEditValue = function (headerKey, data) {
|
|
455
|
+
var _a;
|
|
456
|
+
var selectedHeader = flatColumns.find(function (eachHeader) { return eachHeader.key === headerKey; });
|
|
457
|
+
if (!selectedHeader)
|
|
458
|
+
return data;
|
|
459
|
+
if (selectedHeader.type === "multipleImage" ||
|
|
460
|
+
selectedHeader.type === "multipleFile") {
|
|
461
|
+
var value = data[headerKey];
|
|
462
|
+
if (Array.isArray(value) || value === undefined || value === null) {
|
|
463
|
+
return __assign(__assign({}, data), (_a = {}, _a[headerKey] = { data: value !== null && value !== void 0 ? value : [], upload: [], remove: [] }, _a));
|
|
464
|
+
}
|
|
465
|
+
}
|
|
466
|
+
return data;
|
|
467
|
+
};
|
|
468
|
+
var handleModalEditOnClick = function (rowId, headerKey, data) {
|
|
469
|
+
var normalised = handleNormalizeEditValue(headerKey, data);
|
|
470
|
+
originalDataRef.current = data;
|
|
471
|
+
editDataRowIdRef.current = rowId;
|
|
472
|
+
editDataValueRef.current = normalised;
|
|
473
|
+
setEditDataRowId(rowId);
|
|
474
|
+
setEditDataValue(normalised);
|
|
475
|
+
setEditDataHeaderKey(headerKey);
|
|
476
|
+
setModalEditVisible(true);
|
|
477
|
+
handleCreateFormInputRefs("edit");
|
|
478
|
+
};
|
|
479
|
+
var handleModalEditClose = function () {
|
|
480
|
+
setModalEditVisible(false);
|
|
481
|
+
editDataRowIdRef.current = "";
|
|
482
|
+
editDataValueRef.current = {};
|
|
483
|
+
setEditDataRowId("");
|
|
484
|
+
setEditDataValue({});
|
|
485
|
+
setEditDataHeaderKey("");
|
|
486
|
+
};
|
|
487
|
+
var handleModalEditSave = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
488
|
+
var columnId, value, isUntouchedFilesObj;
|
|
489
|
+
var _a, _b, _c, _d, _e, _f;
|
|
490
|
+
return __generator(this, function (_g) {
|
|
491
|
+
switch (_g.label) {
|
|
492
|
+
case 0:
|
|
493
|
+
columnId = editDataHeaderKey;
|
|
494
|
+
value = editDataValueRef.current[columnId];
|
|
495
|
+
isUntouchedFilesObj = value &&
|
|
496
|
+
typeof value === "object" &&
|
|
497
|
+
!Array.isArray(value) &&
|
|
498
|
+
Array.isArray(value.data) &&
|
|
499
|
+
((_b = (_a = value.upload) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) === 0 &&
|
|
500
|
+
((_d = (_c = value.remove) === null || _c === void 0 ? void 0 : _c.length) !== null && _d !== void 0 ? _d : 0) === 0 &&
|
|
501
|
+
JSON.stringify(value.data) ===
|
|
502
|
+
JSON.stringify((_f = (_e = originalDataRef.current) === null || _e === void 0 ? void 0 : _e[columnId]) !== null && _f !== void 0 ? _f : []);
|
|
503
|
+
if (!!isUntouchedFilesObj) return [3 /*break*/, 2];
|
|
504
|
+
return [4 /*yield*/, handleEditDataOnBlur(columnId, editDataValueRef.current)];
|
|
505
|
+
case 1:
|
|
506
|
+
_g.sent();
|
|
507
|
+
_g.label = 2;
|
|
508
|
+
case 2:
|
|
509
|
+
handleModalEditClose();
|
|
510
|
+
return [2 /*return*/];
|
|
511
|
+
}
|
|
512
|
+
});
|
|
513
|
+
}); };
|
|
400
514
|
var handleOnChangeText = function (e) {
|
|
401
515
|
var cloned = handleGenerateClonedData();
|
|
402
516
|
cloned[e.target.id] = e.target.value;
|
|
@@ -705,7 +819,7 @@ var NewTable = function (props) {
|
|
|
705
819
|
}, false, cellInput, undefined, {
|
|
706
820
|
dbModule: axios_1.default,
|
|
707
821
|
devSettings: props.devSettings,
|
|
708
|
-
referencesOptions:
|
|
822
|
+
referencesOptions: mergedReferencesOptions,
|
|
709
823
|
referencesDetails: referencesDetails,
|
|
710
824
|
referenceLoading: referenceLoading,
|
|
711
825
|
setReferenceLoading: setReferenceLoading,
|
|
@@ -833,7 +947,7 @@ var NewTable = function (props) {
|
|
|
833
947
|
};
|
|
834
948
|
// INFO: true when maxSelectedCount is set and the current selection has reached the limit
|
|
835
949
|
var isMaxReached = !!props.maxSelectedCount &&
|
|
836
|
-
((
|
|
950
|
+
((_j = (_h = props.selectedIds) === null || _h === void 0 ? void 0 : _h.length) !== null && _j !== void 0 ? _j : 0) >= props.maxSelectedCount;
|
|
837
951
|
var renderFloatingActionBar = function () {
|
|
838
952
|
var _a, _b, _c, _d, _e;
|
|
839
953
|
if (!((_a = props.multiActionFloatingBtns) === null || _a === void 0 ? void 0 : _a.length))
|
|
@@ -1058,7 +1172,7 @@ var NewTable = function (props) {
|
|
|
1058
1172
|
var isIdLike_1 = function (c) {
|
|
1059
1173
|
return /^id$/i.test(c.key) || /^_id$/i.test(c.key);
|
|
1060
1174
|
};
|
|
1061
|
-
var titleCol_1 = (
|
|
1175
|
+
var titleCol_1 = (_k = flatColumns.find(function (c) { return !isIdLike_1(c); })) !== null && _k !== void 0 ? _k : flatColumns[0];
|
|
1062
1176
|
var expandHeaderBg_1 = props.darkMode ? "bg-gray-700" : "bg-gray-100";
|
|
1063
1177
|
var expandHeaderFontColor_1 = props.darkMode ? "text-white" : "";
|
|
1064
1178
|
var headerBgColor_1 = props.darkMode ? "bg-gray-900" : "";
|
|
@@ -1130,14 +1244,14 @@ var NewTable = function (props) {
|
|
|
1130
1244
|
})))));
|
|
1131
1245
|
};
|
|
1132
1246
|
return (react_2.default.createElement("div", null,
|
|
1133
|
-
react_2.default.createElement("div", { className: "w-full ".concat(((
|
|
1247
|
+
react_2.default.createElement("div", { className: "w-full ".concat(((_l = props.mobileTooltip) === null || _l === void 0 ? void 0 : _l.tooltip) ? "overflow-visible" : "overflow-hidden", " border ").concat(borderRadius, " ").concat(borderColor, " ").concat(bgColor, " shadow-sm divide-y ").concat(dividerColor, " ").concat((_m = props.className) !== null && _m !== void 0 ? _m : "") },
|
|
1134
1248
|
react_2.default.createElement("div", { className: "p-3 flex justify-between" },
|
|
1135
1249
|
renderSelectAll(),
|
|
1136
1250
|
renderSelectedCount()),
|
|
1137
1251
|
props.loading &&
|
|
1138
1252
|
Array.from({ length: 3 }).map(function (_, i) { return (react_2.default.createElement("div", { key: "skeleton-".concat(i), className: "p-4" },
|
|
1139
1253
|
react_2.default.createElement("div", { className: "h-5 w-3/4 rounded-md animate-pulse ".concat(props.darkMode ? "bg-gray-700" : "bg-gray-200") }))); }),
|
|
1140
|
-
!props.loading && props.data.length === 0 && (react_2.default.createElement("p", { className: "p-4 text-center text-sm ".concat(cellFontColor) }, (
|
|
1254
|
+
!props.loading && props.data.length === 0 && (react_2.default.createElement("p", { className: "p-4 text-center text-sm ".concat(cellFontColor) }, (_o = props.emptyTitle) !== null && _o !== void 0 ? _o : "No items")),
|
|
1141
1255
|
!props.loading &&
|
|
1142
1256
|
props.data.map(function (row, index) {
|
|
1143
1257
|
var _a, _b, _c, _d, _e, _f, _g;
|
|
@@ -1192,18 +1306,54 @@ var NewTable = function (props) {
|
|
|
1192
1306
|
renderPagination())),
|
|
1193
1307
|
renderFloatingActionBar()));
|
|
1194
1308
|
}
|
|
1195
|
-
return (react_2.default.createElement("div", { className: "w-full ".concat((
|
|
1309
|
+
return (react_2.default.createElement("div", { className: "w-full ".concat((_p = props.className) !== null && _p !== void 0 ? _p : "") },
|
|
1196
1310
|
react_2.default.createElement(modal_1.Modal, { open: filterModal ? true : false, title: "Filter Options", renderContent: function () {
|
|
1197
1311
|
var _a, _b;
|
|
1198
1312
|
return (react_2.default.createElement("div", { className: "pb-44" },
|
|
1199
1313
|
react_2.default.createElement("div", { className: "pb-48" }, (_b = (_a = props.advSettings) === null || _a === void 0 ? void 0 : _a.renderFilterElements) === null || _b === void 0 ? void 0 : _b.call(_a, filterModal))));
|
|
1200
1314
|
}, onClose: function () { return setFilterModal(""); } }),
|
|
1315
|
+
react_2.default.createElement(modal_1.Modal, { open: modalEditVisible, title: (_r = (_q = flatColumns.find(function (eachCol) { return eachCol.key === editDataHeaderKey; })) === null || _q === void 0 ? void 0 : _q.title) !== null && _r !== void 0 ? _r : "Edit", onClose: handleModalEditClose, renderContent: function () {
|
|
1316
|
+
var _a, _b, _c, _d;
|
|
1317
|
+
var selectedCol = flatColumns.find(function (eachCol) { return eachCol.key === editDataHeaderKey; });
|
|
1318
|
+
if (!selectedCol)
|
|
1319
|
+
return react_2.default.createElement("div", null);
|
|
1320
|
+
var tempDS = handleConvertColumnToDataStructure([selectedCol])[0];
|
|
1321
|
+
return (react_2.default.createElement("div", { className: "flex flex-col gap-4" },
|
|
1322
|
+
(0, updateModule_1.renderDataTemplateForm)(editDataValue, [tempDS], editDataInputRefs.current, {
|
|
1323
|
+
handleOnChangeAddress: handleOnChangeAddress,
|
|
1324
|
+
handleOnChangeText: handleOnChangeText,
|
|
1325
|
+
handleOnChangeSelect: handleOnChangeSelect,
|
|
1326
|
+
handleOnChangeDate: handleOnChangeDate,
|
|
1327
|
+
handleOnChangeFile: handleOnChangeFile,
|
|
1328
|
+
handleOnChangeFiles: handleOnChangeFiles,
|
|
1329
|
+
}, true, undefined, {
|
|
1330
|
+
id: editDataRowId,
|
|
1331
|
+
type: "list",
|
|
1332
|
+
showId: props.showId,
|
|
1333
|
+
}, {
|
|
1334
|
+
dbModule: axios_1.default,
|
|
1335
|
+
devSettings: props.devSettings,
|
|
1336
|
+
referencesOptions: mergedReferencesOptions,
|
|
1337
|
+
referencesDetails: referencesDetails,
|
|
1338
|
+
referenceLoading: referenceLoading,
|
|
1339
|
+
setReferenceLoading: setReferenceLoading,
|
|
1340
|
+
setReferencesOptions: setReferencesOptions,
|
|
1341
|
+
setReferencesDetails: setReferencesDetails,
|
|
1342
|
+
}, {
|
|
1343
|
+
imageEndpoint: (_b = (_a = props.devSettings) === null || _a === void 0 ? void 0 : _a.imageEndpoint) !== null && _b !== void 0 ? _b : "",
|
|
1344
|
+
imageBucketName: (_c = props.devSettings) === null || _c === void 0 ? void 0 : _c.bucketName,
|
|
1345
|
+
maxFileSize: (_d = props.devSettings) === null || _d === void 0 ? void 0 : _d.maxFileSize,
|
|
1346
|
+
}),
|
|
1347
|
+
react_2.default.createElement("div", { className: "flex justify-end gap-3", "data-testid": "table-modal-editor-actions" },
|
|
1348
|
+
react_2.default.createElement(button_1.Button, { text: "Cancel", type: "light", onClick: handleModalEditClose }),
|
|
1349
|
+
react_2.default.createElement(button_1.Button, { text: editDataIsLoading ? "Saving" : "Save", type: "normal", disable: editDataIsLoading, onClick: handleModalEditSave }))));
|
|
1350
|
+
} }),
|
|
1201
1351
|
react_2.default.createElement(modal_1.Modal, { open: addColumnModal ? true : false, title: "Add Columns", renderContent: function () {
|
|
1202
1352
|
var _a, _b;
|
|
1203
1353
|
return (react_2.default.createElement("div", null, (_b = (_a = props.advSettings) === null || _a === void 0 ? void 0 : _a.renderAddColumnElements) === null || _b === void 0 ? void 0 : _b.call(_a, addColumnModal, function (id) { return handleAddColumnModal(id); })));
|
|
1204
1354
|
}, onClose: function () { return handleAddColumnModal(""); } }),
|
|
1205
1355
|
react_2.default.createElement("div", { className: "w-full overflow-x-auto ".concat(borderRadius, " border ").concat(borderColor, " ").concat(bgColor, " shadow-sm") },
|
|
1206
|
-
(props.selectAll || ((
|
|
1356
|
+
(props.selectAll || ((_t = (_s = props.selectedIds) === null || _s === void 0 ? void 0 : _s.length) !== null && _t !== void 0 ? _t : 0) > 0) &&
|
|
1207
1357
|
(!props.multiActionFloatingBtns ||
|
|
1208
1358
|
(props.multiActionFloatingBtns &&
|
|
1209
1359
|
props.multiActionFloatingBtns.length <= 0)) && (react_2.default.createElement("div", { className: "sticky left-0 flex flex-row items-center px-4 py-3 gap-x-2" },
|
|
@@ -1249,19 +1399,47 @@ var NewTable = function (props) {
|
|
|
1249
1399
|
? "opacity-50 cursor-not-allowed"
|
|
1250
1400
|
: ""))),
|
|
1251
1401
|
flatColumns.map(function (col, colIndex) {
|
|
1252
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
1402
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
1253
1403
|
var cellValue = spaceRow
|
|
1254
1404
|
? spaceRow[col.key]
|
|
1255
1405
|
: resolveValue(row, col.key);
|
|
1256
1406
|
// INFO: first col with type "string" is never made editable
|
|
1257
1407
|
var resolvedColType = (_a = col.type) !== null && _a !== void 0 ? _a : "string";
|
|
1258
|
-
var
|
|
1259
|
-
|
|
1408
|
+
var isActionColumn = col.key === "update" && !col.type;
|
|
1409
|
+
var isModalEdit = ((_b = props.editable) === null || _b === void 0 ? void 0 : _b.active) &&
|
|
1410
|
+
!isActionColumn &&
|
|
1411
|
+
utils_1.supportedModalEditList.includes(resolvedColType);
|
|
1412
|
+
var isObjectEdit = ((_c = props.editable) === null || _c === void 0 ? void 0 : _c.active) &&
|
|
1413
|
+
!isActionColumn &&
|
|
1414
|
+
resolvedColType === "object" &&
|
|
1415
|
+
!!props.onObjectEdit;
|
|
1416
|
+
var isEditable = ((_d = props.editable) === null || _d === void 0 ? void 0 : _d.active) &&
|
|
1417
|
+
!isActionColumn &&
|
|
1418
|
+
!(((_f = (_e = props.selectedIds) === null || _e === void 0 ? void 0 : _e.length) !== null && _f !== void 0 ? _f : 0) > 0 ||
|
|
1260
1419
|
props.selectAll) &&
|
|
1261
|
-
utils_1.
|
|
1420
|
+
utils_1.supportedInlineEditList.includes(resolvedColType);
|
|
1262
1421
|
var rowData = editDataRowId === row.id ? editDataValue : row;
|
|
1422
|
+
if (isObjectEdit) {
|
|
1423
|
+
return (react_2.default.createElement("td", { key: col.key, className: "".concat(cellPadding, " text-sm ").concat(cellFontColor, " whitespace-nowrap") },
|
|
1424
|
+
react_2.default.createElement("div", { className: "cursor-pointer group/modaledit flex items-center gap-x-2 min-h-6", "data-testid": "table-object-edit-".concat(col.key), onClick: function (e) {
|
|
1425
|
+
var _a;
|
|
1426
|
+
e.stopPropagation();
|
|
1427
|
+
(_a = props.onObjectEdit) === null || _a === void 0 ? void 0 : _a.call(props, row.id, col.key, row);
|
|
1428
|
+
} },
|
|
1429
|
+
handleCheckModalEditEmpty(cellValue) ? (react_2.default.createElement("span", { className: "text-gray-400 italic" }, "Add")) : ((0, readModule_1.renderEachRowDataBasedOnDataType)(col.key, cellValue, props.bareSettings, true, props.disableEllipsisOnLongWord)),
|
|
1430
|
+
react_2.default.createElement(outline_1.PencilIcon, { className: "w-3.5 h-3.5 text-gray-400 opacity-0 group-hover/modaledit:opacity-100 flex-shrink-0" }))));
|
|
1431
|
+
}
|
|
1432
|
+
if (isModalEdit) {
|
|
1433
|
+
return (react_2.default.createElement("td", { key: col.key, className: "".concat(cellPadding, " text-sm ").concat(cellFontColor, " whitespace-nowrap") },
|
|
1434
|
+
react_2.default.createElement("div", { className: "cursor-pointer group/modaledit flex items-center gap-x-2 min-h-6", "data-testid": "table-modal-edit-".concat(col.key), onClick: function (e) {
|
|
1435
|
+
e.stopPropagation();
|
|
1436
|
+
handleModalEditOnClick(row.id, col.key, row);
|
|
1437
|
+
} },
|
|
1438
|
+
handleCheckModalEditEmpty(cellValue) ? (react_2.default.createElement("span", { className: "text-gray-400 italic" }, "Add")) : ((0, readModule_1.renderEachRowDataBasedOnDataType)(col.key, cellValue, props.bareSettings, true, props.disableEllipsisOnLongWord)),
|
|
1439
|
+
react_2.default.createElement(outline_1.PencilIcon, { className: "w-3.5 h-3.5 text-gray-400 opacity-0 group-hover/modaledit:opacity-100 flex-shrink-0" }))));
|
|
1440
|
+
}
|
|
1263
1441
|
if (isEditable) {
|
|
1264
|
-
var bareOverride = (
|
|
1442
|
+
var bareOverride = (_h = (_g = props.bareSettings) === null || _g === void 0 ? void 0 : _g.bareListDescription) === null || _h === void 0 ? void 0 : _h.call(_g, col.key, cellValue);
|
|
1265
1443
|
if (!bareOverride)
|
|
1266
1444
|
return renderEditDataInputs(colIndex, col, rowData, row.id, rowBgClass, isRowHoverable);
|
|
1267
1445
|
}
|
|
@@ -1270,14 +1448,14 @@ var NewTable = function (props) {
|
|
|
1270
1448
|
react_2.default.createElement("td", { key: col.key, "data-pin-key": leftPinned.includes(col.key) ||
|
|
1271
1449
|
rightPinned.includes(col.key)
|
|
1272
1450
|
? col.key
|
|
1273
|
-
: undefined, className: "".concat(cellPadding, " text-sm ").concat(colIndex === 0 && props.onClickRow ? titleFontColor : cellFontColor, " ").concat(col.width ? "".concat(col.width, " flex-shrink-0") : getPinProps(col.key, false) ? "" : "whitespace-nowrap", " ").concat((
|
|
1451
|
+
: undefined, className: "".concat(cellPadding, " text-sm ").concat(colIndex === 0 && props.onClickRow ? titleFontColor : cellFontColor, " ").concat(col.width ? "".concat(col.width, " flex-shrink-0") : getPinProps(col.key, false) ? "" : "whitespace-nowrap", " ").concat((_k = (_j = getPinProps(col.key, false, rowBgClass, isRowHoverable)) === null || _j === void 0 ? void 0 : _j.className) !== null && _k !== void 0 ? _k : ""), style: (_l = getPinProps(col.key, false, rowBgClass, isRowHoverable)) === null || _l === void 0 ? void 0 : _l.style }, props.newTabUrl && props.onClickRow ? (react_2.default.createElement(link_1.Link, { href: props.newTabUrl +
|
|
1274
1452
|
row.id +
|
|
1275
|
-
((
|
|
1453
|
+
((_m = props.addNewTabUrl) !== null && _m !== void 0 ? _m : ""), className: "w-full block", linkType: props.linkType, custom: props.custom }, (0, readModule_1.renderEachRowDataBasedOnDataType)(col.key, cellValue, props.bareSettings, true, props.disableEllipsisOnLongWord))) : ((0, readModule_1.renderEachRowDataBasedOnDataType)(col.key, cellValue, props.bareSettings, true, props.disableEllipsisOnLongWord))));
|
|
1276
1454
|
}),
|
|
1277
1455
|
renderActionColumnCell(row.id)));
|
|
1278
1456
|
}),
|
|
1279
1457
|
!props.loading && addData && renderAddDataRow())),
|
|
1280
|
-
!props.loading && props.data.length === 0 && (react_2.default.createElement("div", { className: "p-4 text-sm ".concat(cellFontColor, " text-center sticky left-0") }, (
|
|
1458
|
+
!props.loading && props.data.length === 0 && (react_2.default.createElement("div", { className: "p-4 text-sm ".concat(cellFontColor, " text-center sticky left-0") }, (_u = props.emptyTitle) !== null && _u !== void 0 ? _u : "No items")),
|
|
1281
1459
|
renderAddableSection()),
|
|
1282
1460
|
!props.hidePagination && props.paginationType && (react_2.default.createElement("div", { className: "mt-2 flex items-center justify-between ".concat(props.fixedPagination
|
|
1283
1461
|
? "pagination-container w-full ".concat(borderColor, " ").concat(isFixed ? "fixed bottom-0 left-0 z-10" : "sticky top-0 left-0")
|