@leankylin-sheet/react 5.2.53 → 5.2.54

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 CHANGED
@@ -1408,17 +1408,24 @@ var Dialog = function Dialog(_ref) {
1408
1408
  onCancel = _ref.onCancel,
1409
1409
  children = _ref.children,
1410
1410
  containerStyle = _ref.containerStyle,
1411
- contentStyle = _ref.contentStyle;
1411
+ contentStyle = _ref.contentStyle,
1412
+ title = _ref.title,
1413
+ iconType = _ref.iconType,
1414
+ confirmText = _ref.confirmText,
1415
+ danger = _ref.danger;
1412
1416
  var _useContext = React.useContext(WorkbookContext),
1413
1417
  context = _useContext.context;
1414
1418
  var _locale = core.locale(context),
1415
1419
  button = _locale.button;
1420
+ var confirmBtnClass = ["leankylin-message-box-button", danger ? "button-danger" : type === "ok" ? "button-default" : "button-primary"].filter(Boolean).join(" ");
1416
1421
  return /*#__PURE__*/React__default['default'].createElement("div", {
1417
1422
  className: "leankylin-dialog",
1418
1423
  style: containerStyle
1419
1424
  }, /*#__PURE__*/React__default['default'].createElement("div", {
1420
1425
  className: "leankylin-modal-dialog-header"
1421
- }, /*#__PURE__*/React__default['default'].createElement("div", {
1426
+ }, title && /*#__PURE__*/React__default['default'].createElement("div", {
1427
+ className: "leankylin-modal-dialog-title"
1428
+ }, title), /*#__PURE__*/React__default['default'].createElement("div", {
1422
1429
  className: "leankylin-modal-dialog-icon-close",
1423
1430
  onClick: onCancel
1424
1431
  }, /*#__PURE__*/React__default['default'].createElement(SVGIcon, {
@@ -1430,18 +1437,63 @@ var Dialog = function Dialog(_ref) {
1430
1437
  }))), /*#__PURE__*/React__default['default'].createElement("div", {
1431
1438
  className: "leankylin-dialog-box-content",
1432
1439
  style: contentStyle
1433
- }, children), type != null && ( /*#__PURE__*/React__default['default'].createElement("div", {
1440
+ }, iconType === "warning" && ( /*#__PURE__*/React__default['default'].createElement("div", {
1441
+ className: "leankylin-dialog-icon"
1442
+ }, /*#__PURE__*/React__default['default'].createElement("div", {
1443
+ className: "leankylin-dialog-icon-warning"
1444
+ }, /*#__PURE__*/React__default['default'].createElement("svg", {
1445
+ width: "22",
1446
+ height: "22",
1447
+ viewBox: "0 0 24 24",
1448
+ fill: "none",
1449
+ xmlns: "http://www.w3.org/2000/svg"
1450
+ }, /*#__PURE__*/React__default['default'].createElement("path", {
1451
+ d: "M12 2.5 22.5 21H1.5L12 2.5Z",
1452
+ fill: "currentColor"
1453
+ }), /*#__PURE__*/React__default['default'].createElement("path", {
1454
+ d: "M12 9.5v5",
1455
+ stroke: "white",
1456
+ strokeWidth: "2",
1457
+ strokeLinecap: "round"
1458
+ }), /*#__PURE__*/React__default['default'].createElement("circle", {
1459
+ cx: "12",
1460
+ cy: "17.6",
1461
+ r: "1.3",
1462
+ fill: "white"
1463
+ }))))), iconType === "info" && ( /*#__PURE__*/React__default['default'].createElement("div", {
1464
+ className: "leankylin-dialog-icon"
1465
+ }, /*#__PURE__*/React__default['default'].createElement("div", {
1466
+ className: "leankylin-dialog-icon-info"
1467
+ }, /*#__PURE__*/React__default['default'].createElement("svg", {
1468
+ width: "22",
1469
+ height: "22",
1470
+ viewBox: "0 0 24 24",
1471
+ fill: "none",
1472
+ xmlns: "http://www.w3.org/2000/svg"
1473
+ }, /*#__PURE__*/React__default['default'].createElement("circle", {
1474
+ cx: "12",
1475
+ cy: "12",
1476
+ r: "9.5",
1477
+ fill: "currentColor"
1478
+ }), /*#__PURE__*/React__default['default'].createElement("path", {
1479
+ d: "M12 11v5.5",
1480
+ stroke: "white",
1481
+ strokeWidth: "2",
1482
+ strokeLinecap: "round"
1483
+ }), /*#__PURE__*/React__default['default'].createElement("circle", {
1484
+ cx: "12",
1485
+ cy: "7.4",
1486
+ r: "1.3",
1487
+ fill: "white"
1488
+ }))))), children), type != null && ( /*#__PURE__*/React__default['default'].createElement("div", {
1434
1489
  className: "leankylin-dialog-box-button-container"
1435
- }, type === "ok" ? ( /*#__PURE__*/React__default['default'].createElement("div", {
1436
- className: "leankylin-message-box-button button-default",
1437
- onClick: onOk
1438
- }, button.confirm)) : ( /*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, null, /*#__PURE__*/React__default['default'].createElement("div", {
1439
- className: "leankylin-message-box-button button-primary",
1490
+ }, /*#__PURE__*/React__default['default'].createElement("div", {
1491
+ className: confirmBtnClass,
1440
1492
  onClick: onOk
1441
- }, button.confirm), /*#__PURE__*/React__default['default'].createElement("div", {
1493
+ }, confirmText || button.confirm), type === "yesno" && ( /*#__PURE__*/React__default['default'].createElement("div", {
1442
1494
  className: "leankylin-message-box-button button-default",
1443
1495
  onClick: onCancel
1444
- }, button.cancel))))));
1496
+ }, button.cancel)))));
1445
1497
  };
1446
1498
 
1447
1499
  var MessageBox = function MessageBox(_ref) {
@@ -1449,18 +1501,28 @@ var MessageBox = function MessageBox(_ref) {
1449
1501
  type = _ref$type === void 0 ? "yesno" : _ref$type,
1450
1502
  onOk = _ref.onOk,
1451
1503
  onCancel = _ref.onCancel,
1504
+ title = _ref.title,
1505
+ iconType = _ref.iconType,
1506
+ confirmText = _ref.confirmText,
1507
+ danger = _ref.danger,
1452
1508
  children = _ref.children;
1453
1509
  return /*#__PURE__*/React__default['default'].createElement(Dialog, {
1454
1510
  type: type,
1455
1511
  onOk: onOk,
1456
1512
  onCancel: onCancel,
1513
+ title: title,
1514
+ iconType: iconType,
1515
+ confirmText: confirmText,
1516
+ danger: danger,
1457
1517
  contentStyle: {
1458
- width: 300,
1459
- paddingTop: 20,
1460
- paddingBottom: 30,
1518
+ width: 280,
1519
+ paddingTop: 12,
1520
+ paddingBottom: 20,
1461
1521
  display: "flex",
1522
+ flexDirection: "column",
1462
1523
  justifyContent: "center",
1463
- alignItems: "center"
1524
+ alignItems: "center",
1525
+ gap: 4
1464
1526
  }
1465
1527
  }, children);
1466
1528
  };
@@ -1516,10 +1578,15 @@ function useAlert() {
1516
1578
  var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "ok";
1517
1579
  var onOk = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : hideModal;
1518
1580
  var onCancel = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : hideModal;
1581
+ var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};
1519
1582
  showModal( /*#__PURE__*/React__default['default'].createElement(MessageBox, {
1520
1583
  type: type,
1521
1584
  onOk: onOk,
1522
- onCancel: onCancel
1585
+ onCancel: onCancel,
1586
+ title: options.title,
1587
+ iconType: options.icon,
1588
+ confirmText: options.confirmText,
1589
+ danger: options.danger
1523
1590
  }, message));
1524
1591
  }, [hideModal, showModal]);
1525
1592
  return {
@@ -7797,9 +7864,9 @@ var SheetTab = function SheetTab() {
7797
7864
  id: "luckysheet-sheet-area"
7798
7865
  }, /*#__PURE__*/React__default['default'].createElement("div", {
7799
7866
  id: "luckysheet-sheet-content"
7800
- }, context.allowEdit && ( /*#__PURE__*/React__default['default'].createElement("div", {
7867
+ }, context.allowEdit && context.showAddSheetButton && ( /*#__PURE__*/React__default['default'].createElement("div", {
7801
7868
  className: "leankylin-sheettab-button",
7802
- onClick: onAddSheetClick
7869
+ onClick: context.onAddSheetClick || onAddSheetClick
7803
7870
  }, /*#__PURE__*/React__default['default'].createElement(SVGIcon, {
7804
7871
  name: "plus",
7805
7872
  width: 16,
@@ -10164,7 +10231,7 @@ var SheetTabContextMenu = function SheetTabContextMenu() {
10164
10231
  return ___default['default'].isUndefined(singleSheet.hide) || singleSheet.hide !== 1;
10165
10232
  });
10166
10233
  if (context.luckysheetfile.length > 1 && shownSheets.length > 1) {
10167
- showAlert(sheetconfig.confirmDelete, "yesno", function () {
10234
+ showAlert("".concat(sheetconfig.confirmDelete, "\"").concat(sheet.name, "\"\uFF1F"), "yesno", function () {
10168
10235
  setContext(function (ctx) {
10169
10236
  core.deleteSheet(ctx, sheet.id);
10170
10237
  }, {
@@ -10173,6 +10240,9 @@ var SheetTabContextMenu = function SheetTabContextMenu() {
10173
10240
  }
10174
10241
  });
10175
10242
  hideAlert();
10243
+ }, undefined, {
10244
+ confirmText: sheetconfig.delete,
10245
+ danger: true
10176
10246
  });
10177
10247
  } else {
10178
10248
  showAlert(sheetconfig.noMoreSheet, "ok");
@@ -11648,6 +11718,10 @@ var Workbook = /*#__PURE__*/React__default['default'].forwardRef(function (_ref,
11648
11718
  }
11649
11719
  draftCtx.lang = mergedSettings.lang;
11650
11720
  draftCtx.allowEdit = mergedSettings.allowEdit;
11721
+ draftCtx.showAddSheetButton = mergedSettings.showAddSheetButton;
11722
+ draftCtx.onAddSheetClick = mergedSettings.onAddSheetClick;
11723
+ draftCtx.onSheetRename = mergedSettings.onSheetRename;
11724
+ draftCtx.onSheetDelete = mergedSettings.onSheetDelete;
11651
11725
  draftCtx.hooks = mergedSettings.hooks;
11652
11726
  if (___default['default'].isEmpty(draftCtx.currentSheetId)) {
11653
11727
  core.initSheetIndex(draftCtx);
@@ -11725,7 +11799,7 @@ var Workbook = /*#__PURE__*/React__default['default'].forwardRef(function (_ref,
11725
11799
  }, {
11726
11800
  noHistory: true
11727
11801
  });
11728
- }, [context.currentSheetId, context.luckysheetfile.length, originalData, mergedSettings.defaultRowHeight, mergedSettings.defaultColWidth, mergedSettings.column, mergedSettings.row, mergedSettings.defaultFontSize, mergedSettings.devicePixelRatio, mergedSettings.lang, mergedSettings.allowEdit, mergedSettings.hooks, mergedSettings.generateSheetId, setContextWithProduce, initSheetData, mergedSettings.rowHeaderWidth, mergedSettings.columnHeaderHeight, mergedSettings.addRows]);
11802
+ }, [context.currentSheetId, context.luckysheetfile.length, originalData, mergedSettings.defaultRowHeight, mergedSettings.defaultColWidth, mergedSettings.column, mergedSettings.row, mergedSettings.defaultFontSize, mergedSettings.devicePixelRatio, mergedSettings.lang, mergedSettings.allowEdit, mergedSettings.showAddSheetButton, mergedSettings.onAddSheetClick, mergedSettings.onSheetRename, mergedSettings.onSheetDelete, mergedSettings.hooks, mergedSettings.generateSheetId, setContextWithProduce, initSheetData, mergedSettings.rowHeaderWidth, mergedSettings.columnHeaderHeight, mergedSettings.addRows]);
11729
11803
  var onKeyDown = React.useCallback(function (e) {
11730
11804
  var nativeEvent = e.nativeEvent;
11731
11805
  if ((e.ctrlKey || e.metaKey) && mergedSettings.disabledKeyboardCodes.includes(e.code)) {
@@ -1205,10 +1205,9 @@ html::-webkit-scrollbar-button {
1205
1205
  .leankylin-dialog {
1206
1206
  max-width: 90%;
1207
1207
  max-height: 90%;
1208
- overflow: scroll;
1209
- border-radius: 6px;
1208
+ border-radius: 8px;
1210
1209
  background: white;
1211
- box-shadow: rgb(0 0 0 / 10%) 5px 5px 30px;
1210
+ box-shadow: 0 2px 12px rgb(0 0 0 / 15%);
1212
1211
  box-sizing: border-box;
1213
1212
  overflow: auto;
1214
1213
  }
@@ -1217,55 +1216,127 @@ html::-webkit-scrollbar-button {
1217
1216
  display: flex;
1218
1217
  align-items: center;
1219
1218
  justify-content: center;
1219
+ padding-top: 12px;
1220
+ padding-bottom: 20px;
1220
1221
  }
1221
1222
 
1222
1223
  .leankylin-dialog-box-content {
1223
1224
  padding: 0px 25px;
1224
1225
  }
1225
1226
 
1226
- .leankylin-dialog-box-button-container {
1227
- padding-top: 10px;
1228
- padding-bottom: 20px;
1229
- }
1230
-
1231
1227
  .leankylin-message-box-button {
1232
1228
  display: inline-flex;
1233
1229
  align-items: center;
1234
- padding: 6px 12px;
1235
- margin: 0 8px;
1230
+ padding: 6px 14px;
1231
+ margin: 0 6px;
1236
1232
  border: none;
1237
1233
  border-radius: 4px;
1238
1234
  font-size: 14px;
1239
1235
  line-height: 20px;
1240
1236
  outline: none;
1241
1237
  cursor: pointer;
1238
+ -webkit-user-select: none;
1239
+ -moz-user-select: none;
1240
+ user-select: none;
1242
1241
  }
1243
1242
 
1244
1243
  .leankylin-message-box-button.button-default {
1245
- color: rgb(38, 42, 51);
1246
- background-color: rgb(255, 255, 255);
1247
- border: 1px solid rgb(235, 235, 235);
1244
+ color: #333333;
1245
+ background-color: #ffffff;
1246
+ border: 1px solid #dddddd;
1247
+ }
1248
+
1249
+ .leankylin-message-box-button.button-default:hover {
1250
+ background-color: #f5f5f5;
1248
1251
  }
1249
1252
 
1250
1253
  .leankylin-message-box-button.button-primary {
1251
1254
  color: white;
1252
- background-color: #0188FB;
1255
+ background-color: #0188fb;
1256
+ }
1257
+
1258
+ .leankylin-message-box-button.button-primary:hover {
1259
+ background-color: #1677ff;
1260
+ }
1261
+
1262
+ .leankylin-message-box-button.button-danger {
1263
+ color: white;
1264
+ border: none;
1265
+ outline: none;
1266
+ background-color: #fa541c;
1267
+ }
1268
+
1269
+ .leankylin-message-box-button.button-danger:hover {
1270
+ background-color: #ff7a45;
1271
+ }
1272
+
1273
+ .leankylin-message-box-button.button-danger:focus-visible {
1274
+ outline: none;
1253
1275
  }
1254
1276
 
1255
1277
  .leankylin-modal-dialog-header {
1278
+ position: relative;
1256
1279
  outline: 0;
1257
1280
  display: flex;
1258
1281
  justify-content: flex-end;
1282
+ padding: 4px 4px 0;
1283
+ }
1284
+
1285
+ .leankylin-modal-dialog-title {
1286
+ position: absolute;
1287
+ left: 50%;
1288
+ top: 50%;
1289
+ transform: translate(-50%, -50%);
1290
+ font-size: 15px;
1291
+ font-weight: 600;
1292
+ color: #1f2329;
1293
+ white-space: nowrap;
1259
1294
  }
1260
1295
 
1261
1296
  .leankylin-modal-dialog-icon-close {
1262
- color: #d4d4d4;
1263
- opacity: 0.3;
1297
+ color: #999999;
1298
+ opacity: 0.5;
1299
+ display: flex;
1300
+ align-items: center;
1264
1301
  }
1265
1302
 
1266
1303
  .leankylin-modal-dialog-icon-close:hover {
1267
- opacity: 0.7;
1304
+ opacity: 1;
1305
+ }
1306
+
1307
+ .leankylin-dialog-icon {
1308
+ display: flex;
1309
+ align-items: center;
1310
+ justify-content: center;
1311
+ margin-bottom: 8px;
1268
1312
  }
1313
+
1314
+ .leankylin-dialog-icon-warning,
1315
+ .leankylin-dialog-icon-info {
1316
+ display: flex;
1317
+ align-items: center;
1318
+ justify-content: center;
1319
+ width: 40px;
1320
+ height: 40px;
1321
+ border-radius: 50%;
1322
+ }
1323
+
1324
+ .leankylin-dialog-icon-warning {
1325
+ background: #fff1e8;
1326
+ color: #fa541c;
1327
+ }
1328
+
1329
+ .leankylin-dialog-icon-info {
1330
+ background: #e6f4ff;
1331
+ color: #0188fb;
1332
+ }
1333
+
1334
+ .leankylin-dialog-tip {
1335
+ font-size: 12px;
1336
+ color: #8f959e;
1337
+ line-height: 18px;
1338
+ }
1339
+
1269
1340
  /* 查找替换弹出框样式 */
1270
1341
  #leankylin-search-replace {
1271
1342
  position: absolute;
package/dist/index.umd.js CHANGED
@@ -20482,17 +20482,24 @@
20482
20482
  onCancel = _ref.onCancel,
20483
20483
  children = _ref.children,
20484
20484
  containerStyle = _ref.containerStyle,
20485
- contentStyle = _ref.contentStyle;
20485
+ contentStyle = _ref.contentStyle,
20486
+ title = _ref.title,
20487
+ iconType = _ref.iconType,
20488
+ confirmText = _ref.confirmText,
20489
+ danger = _ref.danger;
20486
20490
  var _useContext = React.useContext(WorkbookContext),
20487
20491
  context = _useContext.context;
20488
20492
  var _locale = core.locale(context),
20489
20493
  button = _locale.button;
20494
+ var confirmBtnClass = ["leankylin-message-box-button", danger ? "button-danger" : type === "ok" ? "button-default" : "button-primary"].filter(Boolean).join(" ");
20490
20495
  return /*#__PURE__*/React__default['default'].createElement("div", {
20491
20496
  className: "leankylin-dialog",
20492
20497
  style: containerStyle
20493
20498
  }, /*#__PURE__*/React__default['default'].createElement("div", {
20494
20499
  className: "leankylin-modal-dialog-header"
20495
- }, /*#__PURE__*/React__default['default'].createElement("div", {
20500
+ }, title && /*#__PURE__*/React__default['default'].createElement("div", {
20501
+ className: "leankylin-modal-dialog-title"
20502
+ }, title), /*#__PURE__*/React__default['default'].createElement("div", {
20496
20503
  className: "leankylin-modal-dialog-icon-close",
20497
20504
  onClick: onCancel
20498
20505
  }, /*#__PURE__*/React__default['default'].createElement(SVGIcon, {
@@ -20504,18 +20511,63 @@
20504
20511
  }))), /*#__PURE__*/React__default['default'].createElement("div", {
20505
20512
  className: "leankylin-dialog-box-content",
20506
20513
  style: contentStyle
20507
- }, children), type != null && ( /*#__PURE__*/React__default['default'].createElement("div", {
20514
+ }, iconType === "warning" && ( /*#__PURE__*/React__default['default'].createElement("div", {
20515
+ className: "leankylin-dialog-icon"
20516
+ }, /*#__PURE__*/React__default['default'].createElement("div", {
20517
+ className: "leankylin-dialog-icon-warning"
20518
+ }, /*#__PURE__*/React__default['default'].createElement("svg", {
20519
+ width: "22",
20520
+ height: "22",
20521
+ viewBox: "0 0 24 24",
20522
+ fill: "none",
20523
+ xmlns: "http://www.w3.org/2000/svg"
20524
+ }, /*#__PURE__*/React__default['default'].createElement("path", {
20525
+ d: "M12 2.5 22.5 21H1.5L12 2.5Z",
20526
+ fill: "currentColor"
20527
+ }), /*#__PURE__*/React__default['default'].createElement("path", {
20528
+ d: "M12 9.5v5",
20529
+ stroke: "white",
20530
+ strokeWidth: "2",
20531
+ strokeLinecap: "round"
20532
+ }), /*#__PURE__*/React__default['default'].createElement("circle", {
20533
+ cx: "12",
20534
+ cy: "17.6",
20535
+ r: "1.3",
20536
+ fill: "white"
20537
+ }))))), iconType === "info" && ( /*#__PURE__*/React__default['default'].createElement("div", {
20538
+ className: "leankylin-dialog-icon"
20539
+ }, /*#__PURE__*/React__default['default'].createElement("div", {
20540
+ className: "leankylin-dialog-icon-info"
20541
+ }, /*#__PURE__*/React__default['default'].createElement("svg", {
20542
+ width: "22",
20543
+ height: "22",
20544
+ viewBox: "0 0 24 24",
20545
+ fill: "none",
20546
+ xmlns: "http://www.w3.org/2000/svg"
20547
+ }, /*#__PURE__*/React__default['default'].createElement("circle", {
20548
+ cx: "12",
20549
+ cy: "12",
20550
+ r: "9.5",
20551
+ fill: "currentColor"
20552
+ }), /*#__PURE__*/React__default['default'].createElement("path", {
20553
+ d: "M12 11v5.5",
20554
+ stroke: "white",
20555
+ strokeWidth: "2",
20556
+ strokeLinecap: "round"
20557
+ }), /*#__PURE__*/React__default['default'].createElement("circle", {
20558
+ cx: "12",
20559
+ cy: "7.4",
20560
+ r: "1.3",
20561
+ fill: "white"
20562
+ }))))), children), type != null && ( /*#__PURE__*/React__default['default'].createElement("div", {
20508
20563
  className: "leankylin-dialog-box-button-container"
20509
- }, type === "ok" ? ( /*#__PURE__*/React__default['default'].createElement("div", {
20510
- className: "leankylin-message-box-button button-default",
20511
- onClick: onOk
20512
- }, button.confirm)) : ( /*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, null, /*#__PURE__*/React__default['default'].createElement("div", {
20513
- className: "leankylin-message-box-button button-primary",
20564
+ }, /*#__PURE__*/React__default['default'].createElement("div", {
20565
+ className: confirmBtnClass,
20514
20566
  onClick: onOk
20515
- }, button.confirm), /*#__PURE__*/React__default['default'].createElement("div", {
20567
+ }, confirmText || button.confirm), type === "yesno" && ( /*#__PURE__*/React__default['default'].createElement("div", {
20516
20568
  className: "leankylin-message-box-button button-default",
20517
20569
  onClick: onCancel
20518
- }, button.cancel))))));
20570
+ }, button.cancel)))));
20519
20571
  };
20520
20572
 
20521
20573
  var MessageBox = function MessageBox(_ref) {
@@ -20523,18 +20575,28 @@
20523
20575
  type = _ref$type === void 0 ? "yesno" : _ref$type,
20524
20576
  onOk = _ref.onOk,
20525
20577
  onCancel = _ref.onCancel,
20578
+ title = _ref.title,
20579
+ iconType = _ref.iconType,
20580
+ confirmText = _ref.confirmText,
20581
+ danger = _ref.danger,
20526
20582
  children = _ref.children;
20527
20583
  return /*#__PURE__*/React__default['default'].createElement(Dialog, {
20528
20584
  type: type,
20529
20585
  onOk: onOk,
20530
20586
  onCancel: onCancel,
20587
+ title: title,
20588
+ iconType: iconType,
20589
+ confirmText: confirmText,
20590
+ danger: danger,
20531
20591
  contentStyle: {
20532
- width: 300,
20533
- paddingTop: 20,
20534
- paddingBottom: 30,
20592
+ width: 280,
20593
+ paddingTop: 12,
20594
+ paddingBottom: 20,
20535
20595
  display: "flex",
20596
+ flexDirection: "column",
20536
20597
  justifyContent: "center",
20537
- alignItems: "center"
20598
+ alignItems: "center",
20599
+ gap: 4
20538
20600
  }
20539
20601
  }, children);
20540
20602
  };
@@ -20590,10 +20652,15 @@
20590
20652
  var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "ok";
20591
20653
  var onOk = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : hideModal;
20592
20654
  var onCancel = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : hideModal;
20655
+ var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};
20593
20656
  showModal( /*#__PURE__*/React__default['default'].createElement(MessageBox, {
20594
20657
  type: type,
20595
20658
  onOk: onOk,
20596
- onCancel: onCancel
20659
+ onCancel: onCancel,
20660
+ title: options.title,
20661
+ iconType: options.icon,
20662
+ confirmText: options.confirmText,
20663
+ danger: options.danger
20597
20664
  }, message));
20598
20665
  }, [hideModal, showModal]);
20599
20666
  return {
@@ -26871,9 +26938,9 @@
26871
26938
  id: "luckysheet-sheet-area"
26872
26939
  }, /*#__PURE__*/React__default['default'].createElement("div", {
26873
26940
  id: "luckysheet-sheet-content"
26874
- }, context.allowEdit && ( /*#__PURE__*/React__default['default'].createElement("div", {
26941
+ }, context.allowEdit && context.showAddSheetButton && ( /*#__PURE__*/React__default['default'].createElement("div", {
26875
26942
  className: "leankylin-sheettab-button",
26876
- onClick: onAddSheetClick
26943
+ onClick: context.onAddSheetClick || onAddSheetClick
26877
26944
  }, /*#__PURE__*/React__default['default'].createElement(SVGIcon, {
26878
26945
  name: "plus",
26879
26946
  width: 16,
@@ -29238,7 +29305,7 @@
29238
29305
  return lodash.isUndefined(singleSheet.hide) || singleSheet.hide !== 1;
29239
29306
  });
29240
29307
  if (context.luckysheetfile.length > 1 && shownSheets.length > 1) {
29241
- showAlert(sheetconfig.confirmDelete, "yesno", function () {
29308
+ showAlert("".concat(sheetconfig.confirmDelete, "\"").concat(sheet.name, "\"\uFF1F"), "yesno", function () {
29242
29309
  setContext(function (ctx) {
29243
29310
  core.deleteSheet(ctx, sheet.id);
29244
29311
  }, {
@@ -29247,6 +29314,9 @@
29247
29314
  }
29248
29315
  });
29249
29316
  hideAlert();
29317
+ }, undefined, {
29318
+ confirmText: sheetconfig.delete,
29319
+ danger: true
29250
29320
  });
29251
29321
  } else {
29252
29322
  showAlert(sheetconfig.noMoreSheet, "ok");
@@ -30722,6 +30792,10 @@
30722
30792
  }
30723
30793
  draftCtx.lang = mergedSettings.lang;
30724
30794
  draftCtx.allowEdit = mergedSettings.allowEdit;
30795
+ draftCtx.showAddSheetButton = mergedSettings.showAddSheetButton;
30796
+ draftCtx.onAddSheetClick = mergedSettings.onAddSheetClick;
30797
+ draftCtx.onSheetRename = mergedSettings.onSheetRename;
30798
+ draftCtx.onSheetDelete = mergedSettings.onSheetDelete;
30725
30799
  draftCtx.hooks = mergedSettings.hooks;
30726
30800
  if (lodash.isEmpty(draftCtx.currentSheetId)) {
30727
30801
  core.initSheetIndex(draftCtx);
@@ -30799,7 +30873,7 @@
30799
30873
  }, {
30800
30874
  noHistory: true
30801
30875
  });
30802
- }, [context.currentSheetId, context.luckysheetfile.length, originalData, mergedSettings.defaultRowHeight, mergedSettings.defaultColWidth, mergedSettings.column, mergedSettings.row, mergedSettings.defaultFontSize, mergedSettings.devicePixelRatio, mergedSettings.lang, mergedSettings.allowEdit, mergedSettings.hooks, mergedSettings.generateSheetId, setContextWithProduce, initSheetData, mergedSettings.rowHeaderWidth, mergedSettings.columnHeaderHeight, mergedSettings.addRows]);
30876
+ }, [context.currentSheetId, context.luckysheetfile.length, originalData, mergedSettings.defaultRowHeight, mergedSettings.defaultColWidth, mergedSettings.column, mergedSettings.row, mergedSettings.defaultFontSize, mergedSettings.devicePixelRatio, mergedSettings.lang, mergedSettings.allowEdit, mergedSettings.showAddSheetButton, mergedSettings.onAddSheetClick, mergedSettings.onSheetRename, mergedSettings.onSheetDelete, mergedSettings.hooks, mergedSettings.generateSheetId, setContextWithProduce, initSheetData, mergedSettings.rowHeaderWidth, mergedSettings.columnHeaderHeight, mergedSettings.addRows]);
30803
30877
  var onKeyDown = React.useCallback(function (e) {
30804
30878
  var nativeEvent = e.nativeEvent;
30805
30879
  if ((e.ctrlKey || e.metaKey) && mergedSettings.disabledKeyboardCodes.includes(e.code)) {