@leankylin-sheet/react 2.0.6 → 2.0.7

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.css CHANGED
@@ -578,6 +578,9 @@ html::-webkit-scrollbar-button {
578
578
  cursor: grab;
579
579
  z-index: 20;
580
580
  }
581
+ .leankylin-cols-freeze-handle-disabled{
582
+ cursor: no-drop;
583
+ }
581
584
 
582
585
  .leankylin-rows-freeze-handle {
583
586
  position: absolute;
@@ -588,6 +591,9 @@ html::-webkit-scrollbar-button {
588
591
  cursor: grab;
589
592
  z-index: 20;
590
593
  }
594
+ .leankylin-rows-freeze-handle-disabled{
595
+ cursor: no-drop;
596
+ }
591
597
 
592
598
  .leankylin-freeze-drag-line {
593
599
  border-color: #ccc;
@@ -578,6 +578,9 @@ html::-webkit-scrollbar-button {
578
578
  cursor: grab;
579
579
  z-index: 20;
580
580
  }
581
+ .leankylin-cols-freeze-handle-disabled{
582
+ cursor: no-drop;
583
+ }
581
584
 
582
585
  .leankylin-rows-freeze-handle {
583
586
  position: absolute;
@@ -588,6 +591,9 @@ html::-webkit-scrollbar-button {
588
591
  cursor: grab;
589
592
  z-index: 20;
590
593
  }
594
+ .leankylin-rows-freeze-handle-disabled{
595
+ cursor: no-drop;
596
+ }
591
597
 
592
598
  .leankylin-freeze-drag-line {
593
599
  border-color: #ccc;
package/dist/index.esm.js CHANGED
@@ -189,7 +189,7 @@ var SVGIcon = function SVGIcon(_ref) {
189
189
  };
190
190
 
191
191
  var ColumnHeader = function ColumnHeader() {
192
- var _settings$renderFreez, _refs$globalCache$fre2;
192
+ var _refs$globalCache$fre2, _settings$renderFreez;
193
193
  var _useContext = useContext(WorkbookContext),
194
194
  context = _useContext.context,
195
195
  setContext = _useContext.setContext,
@@ -220,10 +220,10 @@ var ColumnHeader = function ColumnHeader() {
220
220
  var _sheet$frozen, _sheet$frozen2, _sheet$frozen3, _sheet$frozen4;
221
221
  if ((sheet === null || sheet === void 0 ? void 0 : (_sheet$frozen = sheet.frozen) === null || _sheet$frozen === void 0 ? void 0 : _sheet$frozen.type) === "column" || (sheet === null || sheet === void 0 ? void 0 : (_sheet$frozen2 = sheet.frozen) === null || _sheet$frozen2 === void 0 ? void 0 : _sheet$frozen2.type) === "rangeColumn" || (sheet === null || sheet === void 0 ? void 0 : (_sheet$frozen3 = sheet.frozen) === null || _sheet$frozen3 === void 0 ? void 0 : _sheet$frozen3.type) === "rangeBoth" || (sheet === null || sheet === void 0 ? void 0 : (_sheet$frozen4 = sheet.frozen) === null || _sheet$frozen4 === void 0 ? void 0 : _sheet$frozen4.type) === "both") {
222
222
  var _sheet$frozen5, _sheet$frozen5$range;
223
- return colLocationByIndex((sheet === null || sheet === void 0 ? void 0 : (_sheet$frozen5 = sheet.frozen) === null || _sheet$frozen5 === void 0 ? void 0 : (_sheet$frozen5$range = _sheet$frozen5.range) === null || _sheet$frozen5$range === void 0 ? void 0 : _sheet$frozen5$range.column_focus) || 0, context.visibledatacolumn)[1] - 2 + context.scrollLeft;
223
+ return colLocationByIndex((sheet === null || sheet === void 0 ? void 0 : (_sheet$frozen5 = sheet.frozen) === null || _sheet$frozen5 === void 0 ? void 0 : (_sheet$frozen5$range = _sheet$frozen5.range) === null || _sheet$frozen5$range === void 0 ? void 0 : _sheet$frozen5$range.column_focus) || 0, context.visibledatacolumn)[1];
224
224
  }
225
- return context.scrollLeft;
226
- }, [context.visibledatacolumn, sheet === null || sheet === void 0 ? void 0 : sheet.frozen, context.scrollLeft]);
225
+ return 0;
226
+ }, [context.visibledatacolumn, sheet === null || sheet === void 0 ? void 0 : sheet.frozen]);
227
227
  var onMouseMove = useCallback(function (e) {
228
228
  var _refs$globalCache$fre;
229
229
  if (context.luckysheet_cols_change_size) {
@@ -277,13 +277,19 @@ var ColumnHeader = function ColumnHeader() {
277
277
  });
278
278
  e.stopPropagation();
279
279
  }, [refs.cellArea, refs.globalCache, refs.workbookContainer, setContext]);
280
+ var freezeCanDrag = useMemo(function () {
281
+ return context.scrollLeft <= 10;
282
+ }, [context.scrollLeft]);
280
283
  var onColFreezeHandleMouseDown = useCallback(function (e) {
284
+ if (!freezeCanDrag) {
285
+ return;
286
+ }
281
287
  var nativeEvent = e.nativeEvent;
282
288
  setContext(function (draftCtx) {
283
289
  handleColFreezeHandleMouseDown(draftCtx, refs.globalCache, nativeEvent, containerRef.current, refs.workbookContainer.current, refs.cellArea.current);
284
290
  });
285
291
  e.stopPropagation();
286
- }, [refs.cellArea, refs.globalCache, refs.workbookContainer, setContext]);
292
+ }, [refs.cellArea, refs.globalCache, refs.workbookContainer, setContext, freezeCanDrag]);
287
293
  var onContextMenu = useCallback(function (e) {
288
294
  var nativeEvent = e.nativeEvent;
289
295
  setContext(function (draftCtx) {
@@ -320,7 +326,7 @@ var ColumnHeader = function ColumnHeader() {
320
326
  useEffect(function () {
321
327
  containerRef.current.scrollLeft = context.scrollLeft;
322
328
  }, [context.scrollLeft]);
323
- return /*#__PURE__*/React.createElement("div", {
329
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
324
330
  ref: containerRef,
325
331
  className: "leankylin-col-header",
326
332
  style: {
@@ -331,12 +337,6 @@ var ColumnHeader = function ColumnHeader() {
331
337
  onMouseLeave: onMouseLeave,
332
338
  onContextMenu: onContextMenu
333
339
  }, /*#__PURE__*/React.createElement("div", {
334
- className: "leankylin-cols-freeze-handle",
335
- onMouseDown: onColFreezeHandleMouseDown,
336
- style: {
337
- left: freezeHandleLeft
338
- }
339
- }, settings === null || settings === void 0 ? void 0 : (_settings$renderFreez = settings.renderFreezeCol) === null || _settings$renderFreez === void 0 ? void 0 : _settings$renderFreez.call(settings)), /*#__PURE__*/React.createElement("div", {
340
340
  className: "leankylin-cols-change-size",
341
341
  ref: colChangeSizeRef,
342
342
  id: "leankylin-cols-change-size",
@@ -393,11 +393,25 @@ var ColumnHeader = function ColumnHeader() {
393
393
  className: "luckysheet-cols-h-cells-c"
394
394
  }, /*#__PURE__*/React.createElement("div", {
395
395
  className: "luckysheet-grdblkpush"
396
- }))));
396
+ })))), /*#__PURE__*/React.createElement("div", {
397
+ style: {
398
+ left: 46,
399
+ position: "absolute",
400
+ pointerEvents: "none",
401
+ height: 20
402
+ }
403
+ }, /*#__PURE__*/React.createElement("div", {
404
+ className: "leankylin-cols-freeze-handle ".concat(freezeCanDrag ? "" : "leankylin-cols-freeze-handle-disabled"),
405
+ onMouseDown: onColFreezeHandleMouseDown,
406
+ style: {
407
+ left: freezeHandleLeft,
408
+ pointerEvents: "all"
409
+ }
410
+ }, settings === null || settings === void 0 ? void 0 : (_settings$renderFreez = settings.renderFreezeCol) === null || _settings$renderFreez === void 0 ? void 0 : _settings$renderFreez.call(settings, freezeCanDrag))));
397
411
  };
398
412
 
399
413
  var RowHeader = function RowHeader() {
400
- var _settings$renderFreez, _refs$globalCache$fre2;
414
+ var _refs$globalCache$fre2, _settings$renderFreez;
401
415
  var _useContext = useContext(WorkbookContext),
402
416
  context = _useContext.context,
403
417
  setContext = _useContext.setContext,
@@ -427,10 +441,10 @@ var RowHeader = function RowHeader() {
427
441
  var _sheet$frozen, _sheet$frozen2, _sheet$frozen3, _sheet$frozen4;
428
442
  if ((sheet === null || sheet === void 0 ? void 0 : (_sheet$frozen = sheet.frozen) === null || _sheet$frozen === void 0 ? void 0 : _sheet$frozen.type) === "row" || (sheet === null || sheet === void 0 ? void 0 : (_sheet$frozen2 = sheet.frozen) === null || _sheet$frozen2 === void 0 ? void 0 : _sheet$frozen2.type) === "rangeRow" || (sheet === null || sheet === void 0 ? void 0 : (_sheet$frozen3 = sheet.frozen) === null || _sheet$frozen3 === void 0 ? void 0 : _sheet$frozen3.type) === "rangeBoth" || (sheet === null || sheet === void 0 ? void 0 : (_sheet$frozen4 = sheet.frozen) === null || _sheet$frozen4 === void 0 ? void 0 : _sheet$frozen4.type) === "both") {
429
443
  var _sheet$frozen5, _sheet$frozen5$range;
430
- return rowLocationByIndex((sheet === null || sheet === void 0 ? void 0 : (_sheet$frozen5 = sheet.frozen) === null || _sheet$frozen5 === void 0 ? void 0 : (_sheet$frozen5$range = _sheet$frozen5.range) === null || _sheet$frozen5$range === void 0 ? void 0 : _sheet$frozen5$range.row_focus) || 0, context.visibledatarow)[1] + context.scrollTop;
444
+ return rowLocationByIndex((sheet === null || sheet === void 0 ? void 0 : (_sheet$frozen5 = sheet.frozen) === null || _sheet$frozen5 === void 0 ? void 0 : (_sheet$frozen5$range = _sheet$frozen5.range) === null || _sheet$frozen5$range === void 0 ? void 0 : _sheet$frozen5$range.row_focus) || 0, context.visibledatarow)[1];
431
445
  }
432
- return context.scrollTop;
433
- }, [context.visibledatarow, sheet === null || sheet === void 0 ? void 0 : sheet.frozen, context.scrollTop]);
446
+ return 0;
447
+ }, [context.visibledatarow, sheet === null || sheet === void 0 ? void 0 : sheet.frozen]);
434
448
  var onMouseMove = useCallback(function (e) {
435
449
  var _refs$globalCache$fre;
436
450
  if (context.luckysheet_rows_change_size) {
@@ -479,13 +493,19 @@ var RowHeader = function RowHeader() {
479
493
  });
480
494
  e.stopPropagation();
481
495
  }, [refs.cellArea, refs.globalCache, refs.workbookContainer, setContext]);
496
+ var freezeCanDrag = useMemo(function () {
497
+ return context.scrollTop <= 10;
498
+ }, [context.scrollTop]);
482
499
  var onRowFreezeHandleMouseDown = useCallback(function (e) {
500
+ if (!freezeCanDrag) {
501
+ return;
502
+ }
483
503
  var nativeEvent = e.nativeEvent;
484
504
  setContext(function (draftCtx) {
485
505
  handleRowFreezeHandleMouseDown(draftCtx, refs.globalCache, nativeEvent, containerRef.current, refs.workbookContainer.current, refs.cellArea.current);
486
506
  });
487
507
  e.stopPropagation();
488
- }, [refs.cellArea, refs.globalCache, refs.workbookContainer, setContext]);
508
+ }, [refs.cellArea, refs.globalCache, refs.workbookContainer, setContext, freezeCanDrag]);
489
509
  var onContextMenu = useCallback(function (e) {
490
510
  var nativeEvent = e.nativeEvent;
491
511
  setContext(function (draftCtx) {
@@ -521,7 +541,7 @@ var RowHeader = function RowHeader() {
521
541
  useEffect(function () {
522
542
  containerRef.current.scrollTop = context.scrollTop;
523
543
  }, [context.scrollTop]);
524
- return /*#__PURE__*/React.createElement("div", {
544
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
525
545
  ref: containerRef,
526
546
  className: "leankylin-row-header",
527
547
  style: {
@@ -533,12 +553,6 @@ var RowHeader = function RowHeader() {
533
553
  onMouseLeave: onMouseLeave,
534
554
  onContextMenu: onContextMenu
535
555
  }, /*#__PURE__*/React.createElement("div", {
536
- className: "leankylin-rows-freeze-handle",
537
- onMouseDown: onRowFreezeHandleMouseDown,
538
- style: {
539
- top: freezeHandleTop
540
- }
541
- }, settings === null || settings === void 0 ? void 0 : (_settings$renderFreez = settings.renderFreezeRow) === null || _settings$renderFreez === void 0 ? void 0 : _settings$renderFreez.call(settings)), /*#__PURE__*/React.createElement("div", {
542
556
  className: "leankylin-rows-change-size",
543
557
  ref: rowChangeSizeRef,
544
558
  onMouseDown: onRowSizeHandleMouseDown,
@@ -576,7 +590,21 @@ var RowHeader = function RowHeader() {
576
590
  },
577
591
  id: "luckysheetrowHeader_0",
578
592
  className: "luckysheetsheetchange"
579
- }));
593
+ })), /*#__PURE__*/React.createElement("div", {
594
+ style: {
595
+ top: 20,
596
+ position: "absolute",
597
+ pointerEvents: "none",
598
+ width: 46
599
+ }
600
+ }, /*#__PURE__*/React.createElement("div", {
601
+ className: "leankylin-rows-freeze-handle ".concat(freezeCanDrag ? "" : "leankylin-rows-freeze-handle-disabled"),
602
+ onMouseDown: onRowFreezeHandleMouseDown,
603
+ style: {
604
+ top: freezeHandleTop,
605
+ pointerEvents: "all"
606
+ }
607
+ }, settings === null || settings === void 0 ? void 0 : (_settings$renderFreez = settings.renderFreezeRow) === null || _settings$renderFreez === void 0 ? void 0 : _settings$renderFreez.call(settings, freezeCanDrag))));
580
608
  };
581
609
 
582
610
  var ContentEditable = function ContentEditable(_ref) {
package/dist/index.js CHANGED
@@ -199,7 +199,7 @@ var SVGIcon = function SVGIcon(_ref) {
199
199
  };
200
200
 
201
201
  var ColumnHeader = function ColumnHeader() {
202
- var _settings$renderFreez, _refs$globalCache$fre2;
202
+ var _refs$globalCache$fre2, _settings$renderFreez;
203
203
  var _useContext = React.useContext(WorkbookContext),
204
204
  context = _useContext.context,
205
205
  setContext = _useContext.setContext,
@@ -230,10 +230,10 @@ var ColumnHeader = function ColumnHeader() {
230
230
  var _sheet$frozen, _sheet$frozen2, _sheet$frozen3, _sheet$frozen4;
231
231
  if ((sheet === null || sheet === void 0 ? void 0 : (_sheet$frozen = sheet.frozen) === null || _sheet$frozen === void 0 ? void 0 : _sheet$frozen.type) === "column" || (sheet === null || sheet === void 0 ? void 0 : (_sheet$frozen2 = sheet.frozen) === null || _sheet$frozen2 === void 0 ? void 0 : _sheet$frozen2.type) === "rangeColumn" || (sheet === null || sheet === void 0 ? void 0 : (_sheet$frozen3 = sheet.frozen) === null || _sheet$frozen3 === void 0 ? void 0 : _sheet$frozen3.type) === "rangeBoth" || (sheet === null || sheet === void 0 ? void 0 : (_sheet$frozen4 = sheet.frozen) === null || _sheet$frozen4 === void 0 ? void 0 : _sheet$frozen4.type) === "both") {
232
232
  var _sheet$frozen5, _sheet$frozen5$range;
233
- return core.colLocationByIndex((sheet === null || sheet === void 0 ? void 0 : (_sheet$frozen5 = sheet.frozen) === null || _sheet$frozen5 === void 0 ? void 0 : (_sheet$frozen5$range = _sheet$frozen5.range) === null || _sheet$frozen5$range === void 0 ? void 0 : _sheet$frozen5$range.column_focus) || 0, context.visibledatacolumn)[1] - 2 + context.scrollLeft;
233
+ return core.colLocationByIndex((sheet === null || sheet === void 0 ? void 0 : (_sheet$frozen5 = sheet.frozen) === null || _sheet$frozen5 === void 0 ? void 0 : (_sheet$frozen5$range = _sheet$frozen5.range) === null || _sheet$frozen5$range === void 0 ? void 0 : _sheet$frozen5$range.column_focus) || 0, context.visibledatacolumn)[1];
234
234
  }
235
- return context.scrollLeft;
236
- }, [context.visibledatacolumn, sheet === null || sheet === void 0 ? void 0 : sheet.frozen, context.scrollLeft]);
235
+ return 0;
236
+ }, [context.visibledatacolumn, sheet === null || sheet === void 0 ? void 0 : sheet.frozen]);
237
237
  var onMouseMove = React.useCallback(function (e) {
238
238
  var _refs$globalCache$fre;
239
239
  if (context.luckysheet_cols_change_size) {
@@ -287,13 +287,19 @@ var ColumnHeader = function ColumnHeader() {
287
287
  });
288
288
  e.stopPropagation();
289
289
  }, [refs.cellArea, refs.globalCache, refs.workbookContainer, setContext]);
290
+ var freezeCanDrag = React.useMemo(function () {
291
+ return context.scrollLeft <= 10;
292
+ }, [context.scrollLeft]);
290
293
  var onColFreezeHandleMouseDown = React.useCallback(function (e) {
294
+ if (!freezeCanDrag) {
295
+ return;
296
+ }
291
297
  var nativeEvent = e.nativeEvent;
292
298
  setContext(function (draftCtx) {
293
299
  core.handleColFreezeHandleMouseDown(draftCtx, refs.globalCache, nativeEvent, containerRef.current, refs.workbookContainer.current, refs.cellArea.current);
294
300
  });
295
301
  e.stopPropagation();
296
- }, [refs.cellArea, refs.globalCache, refs.workbookContainer, setContext]);
302
+ }, [refs.cellArea, refs.globalCache, refs.workbookContainer, setContext, freezeCanDrag]);
297
303
  var onContextMenu = React.useCallback(function (e) {
298
304
  var nativeEvent = e.nativeEvent;
299
305
  setContext(function (draftCtx) {
@@ -330,7 +336,7 @@ var ColumnHeader = function ColumnHeader() {
330
336
  React.useEffect(function () {
331
337
  containerRef.current.scrollLeft = context.scrollLeft;
332
338
  }, [context.scrollLeft]);
333
- return /*#__PURE__*/React__default['default'].createElement("div", {
339
+ return /*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, null, /*#__PURE__*/React__default['default'].createElement("div", {
334
340
  ref: containerRef,
335
341
  className: "leankylin-col-header",
336
342
  style: {
@@ -341,12 +347,6 @@ var ColumnHeader = function ColumnHeader() {
341
347
  onMouseLeave: onMouseLeave,
342
348
  onContextMenu: onContextMenu
343
349
  }, /*#__PURE__*/React__default['default'].createElement("div", {
344
- className: "leankylin-cols-freeze-handle",
345
- onMouseDown: onColFreezeHandleMouseDown,
346
- style: {
347
- left: freezeHandleLeft
348
- }
349
- }, settings === null || settings === void 0 ? void 0 : (_settings$renderFreez = settings.renderFreezeCol) === null || _settings$renderFreez === void 0 ? void 0 : _settings$renderFreez.call(settings)), /*#__PURE__*/React__default['default'].createElement("div", {
350
350
  className: "leankylin-cols-change-size",
351
351
  ref: colChangeSizeRef,
352
352
  id: "leankylin-cols-change-size",
@@ -403,11 +403,25 @@ var ColumnHeader = function ColumnHeader() {
403
403
  className: "luckysheet-cols-h-cells-c"
404
404
  }, /*#__PURE__*/React__default['default'].createElement("div", {
405
405
  className: "luckysheet-grdblkpush"
406
- }))));
406
+ })))), /*#__PURE__*/React__default['default'].createElement("div", {
407
+ style: {
408
+ left: 46,
409
+ position: "absolute",
410
+ pointerEvents: "none",
411
+ height: 20
412
+ }
413
+ }, /*#__PURE__*/React__default['default'].createElement("div", {
414
+ className: "leankylin-cols-freeze-handle ".concat(freezeCanDrag ? "" : "leankylin-cols-freeze-handle-disabled"),
415
+ onMouseDown: onColFreezeHandleMouseDown,
416
+ style: {
417
+ left: freezeHandleLeft,
418
+ pointerEvents: "all"
419
+ }
420
+ }, settings === null || settings === void 0 ? void 0 : (_settings$renderFreez = settings.renderFreezeCol) === null || _settings$renderFreez === void 0 ? void 0 : _settings$renderFreez.call(settings, freezeCanDrag))));
407
421
  };
408
422
 
409
423
  var RowHeader = function RowHeader() {
410
- var _settings$renderFreez, _refs$globalCache$fre2;
424
+ var _refs$globalCache$fre2, _settings$renderFreez;
411
425
  var _useContext = React.useContext(WorkbookContext),
412
426
  context = _useContext.context,
413
427
  setContext = _useContext.setContext,
@@ -437,10 +451,10 @@ var RowHeader = function RowHeader() {
437
451
  var _sheet$frozen, _sheet$frozen2, _sheet$frozen3, _sheet$frozen4;
438
452
  if ((sheet === null || sheet === void 0 ? void 0 : (_sheet$frozen = sheet.frozen) === null || _sheet$frozen === void 0 ? void 0 : _sheet$frozen.type) === "row" || (sheet === null || sheet === void 0 ? void 0 : (_sheet$frozen2 = sheet.frozen) === null || _sheet$frozen2 === void 0 ? void 0 : _sheet$frozen2.type) === "rangeRow" || (sheet === null || sheet === void 0 ? void 0 : (_sheet$frozen3 = sheet.frozen) === null || _sheet$frozen3 === void 0 ? void 0 : _sheet$frozen3.type) === "rangeBoth" || (sheet === null || sheet === void 0 ? void 0 : (_sheet$frozen4 = sheet.frozen) === null || _sheet$frozen4 === void 0 ? void 0 : _sheet$frozen4.type) === "both") {
439
453
  var _sheet$frozen5, _sheet$frozen5$range;
440
- return core.rowLocationByIndex((sheet === null || sheet === void 0 ? void 0 : (_sheet$frozen5 = sheet.frozen) === null || _sheet$frozen5 === void 0 ? void 0 : (_sheet$frozen5$range = _sheet$frozen5.range) === null || _sheet$frozen5$range === void 0 ? void 0 : _sheet$frozen5$range.row_focus) || 0, context.visibledatarow)[1] + context.scrollTop;
454
+ return core.rowLocationByIndex((sheet === null || sheet === void 0 ? void 0 : (_sheet$frozen5 = sheet.frozen) === null || _sheet$frozen5 === void 0 ? void 0 : (_sheet$frozen5$range = _sheet$frozen5.range) === null || _sheet$frozen5$range === void 0 ? void 0 : _sheet$frozen5$range.row_focus) || 0, context.visibledatarow)[1];
441
455
  }
442
- return context.scrollTop;
443
- }, [context.visibledatarow, sheet === null || sheet === void 0 ? void 0 : sheet.frozen, context.scrollTop]);
456
+ return 0;
457
+ }, [context.visibledatarow, sheet === null || sheet === void 0 ? void 0 : sheet.frozen]);
444
458
  var onMouseMove = React.useCallback(function (e) {
445
459
  var _refs$globalCache$fre;
446
460
  if (context.luckysheet_rows_change_size) {
@@ -489,13 +503,19 @@ var RowHeader = function RowHeader() {
489
503
  });
490
504
  e.stopPropagation();
491
505
  }, [refs.cellArea, refs.globalCache, refs.workbookContainer, setContext]);
506
+ var freezeCanDrag = React.useMemo(function () {
507
+ return context.scrollTop <= 10;
508
+ }, [context.scrollTop]);
492
509
  var onRowFreezeHandleMouseDown = React.useCallback(function (e) {
510
+ if (!freezeCanDrag) {
511
+ return;
512
+ }
493
513
  var nativeEvent = e.nativeEvent;
494
514
  setContext(function (draftCtx) {
495
515
  core.handleRowFreezeHandleMouseDown(draftCtx, refs.globalCache, nativeEvent, containerRef.current, refs.workbookContainer.current, refs.cellArea.current);
496
516
  });
497
517
  e.stopPropagation();
498
- }, [refs.cellArea, refs.globalCache, refs.workbookContainer, setContext]);
518
+ }, [refs.cellArea, refs.globalCache, refs.workbookContainer, setContext, freezeCanDrag]);
499
519
  var onContextMenu = React.useCallback(function (e) {
500
520
  var nativeEvent = e.nativeEvent;
501
521
  setContext(function (draftCtx) {
@@ -531,7 +551,7 @@ var RowHeader = function RowHeader() {
531
551
  React.useEffect(function () {
532
552
  containerRef.current.scrollTop = context.scrollTop;
533
553
  }, [context.scrollTop]);
534
- return /*#__PURE__*/React__default['default'].createElement("div", {
554
+ return /*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, null, /*#__PURE__*/React__default['default'].createElement("div", {
535
555
  ref: containerRef,
536
556
  className: "leankylin-row-header",
537
557
  style: {
@@ -543,12 +563,6 @@ var RowHeader = function RowHeader() {
543
563
  onMouseLeave: onMouseLeave,
544
564
  onContextMenu: onContextMenu
545
565
  }, /*#__PURE__*/React__default['default'].createElement("div", {
546
- className: "leankylin-rows-freeze-handle",
547
- onMouseDown: onRowFreezeHandleMouseDown,
548
- style: {
549
- top: freezeHandleTop
550
- }
551
- }, settings === null || settings === void 0 ? void 0 : (_settings$renderFreez = settings.renderFreezeRow) === null || _settings$renderFreez === void 0 ? void 0 : _settings$renderFreez.call(settings)), /*#__PURE__*/React__default['default'].createElement("div", {
552
566
  className: "leankylin-rows-change-size",
553
567
  ref: rowChangeSizeRef,
554
568
  onMouseDown: onRowSizeHandleMouseDown,
@@ -586,7 +600,21 @@ var RowHeader = function RowHeader() {
586
600
  },
587
601
  id: "luckysheetrowHeader_0",
588
602
  className: "luckysheetsheetchange"
589
- }));
603
+ })), /*#__PURE__*/React__default['default'].createElement("div", {
604
+ style: {
605
+ top: 20,
606
+ position: "absolute",
607
+ pointerEvents: "none",
608
+ width: 46
609
+ }
610
+ }, /*#__PURE__*/React__default['default'].createElement("div", {
611
+ className: "leankylin-rows-freeze-handle ".concat(freezeCanDrag ? "" : "leankylin-rows-freeze-handle-disabled"),
612
+ onMouseDown: onRowFreezeHandleMouseDown,
613
+ style: {
614
+ top: freezeHandleTop,
615
+ pointerEvents: "all"
616
+ }
617
+ }, settings === null || settings === void 0 ? void 0 : (_settings$renderFreez = settings.renderFreezeRow) === null || _settings$renderFreez === void 0 ? void 0 : _settings$renderFreez.call(settings, freezeCanDrag))));
590
618
  };
591
619
 
592
620
  var ContentEditable = function ContentEditable(_ref) {
@@ -578,6 +578,9 @@ html::-webkit-scrollbar-button {
578
578
  cursor: grab;
579
579
  z-index: 20;
580
580
  }
581
+ .leankylin-cols-freeze-handle-disabled{
582
+ cursor: no-drop;
583
+ }
581
584
 
582
585
  .leankylin-rows-freeze-handle {
583
586
  position: absolute;
@@ -588,6 +591,9 @@ html::-webkit-scrollbar-button {
588
591
  cursor: grab;
589
592
  z-index: 20;
590
593
  }
594
+ .leankylin-rows-freeze-handle-disabled{
595
+ cursor: no-drop;
596
+ }
591
597
 
592
598
  .leankylin-freeze-drag-line {
593
599
  border-color: #ccc;
package/dist/index.umd.js CHANGED
@@ -102473,7 +102473,7 @@
102473
102473
  };
102474
102474
 
102475
102475
  var ColumnHeader = function ColumnHeader() {
102476
- var _settings$renderFreez, _refs$globalCache$fre2;
102476
+ var _refs$globalCache$fre2, _settings$renderFreez;
102477
102477
  var _useContext = React.useContext(WorkbookContext),
102478
102478
  context = _useContext.context,
102479
102479
  setContext = _useContext.setContext,
@@ -102504,10 +102504,10 @@
102504
102504
  var _sheet$frozen, _sheet$frozen2, _sheet$frozen3, _sheet$frozen4;
102505
102505
  if ((sheet === null || sheet === void 0 ? void 0 : (_sheet$frozen = sheet.frozen) === null || _sheet$frozen === void 0 ? void 0 : _sheet$frozen.type) === "column" || (sheet === null || sheet === void 0 ? void 0 : (_sheet$frozen2 = sheet.frozen) === null || _sheet$frozen2 === void 0 ? void 0 : _sheet$frozen2.type) === "rangeColumn" || (sheet === null || sheet === void 0 ? void 0 : (_sheet$frozen3 = sheet.frozen) === null || _sheet$frozen3 === void 0 ? void 0 : _sheet$frozen3.type) === "rangeBoth" || (sheet === null || sheet === void 0 ? void 0 : (_sheet$frozen4 = sheet.frozen) === null || _sheet$frozen4 === void 0 ? void 0 : _sheet$frozen4.type) === "both") {
102506
102506
  var _sheet$frozen5, _sheet$frozen5$range;
102507
- return colLocationByIndex((sheet === null || sheet === void 0 ? void 0 : (_sheet$frozen5 = sheet.frozen) === null || _sheet$frozen5 === void 0 ? void 0 : (_sheet$frozen5$range = _sheet$frozen5.range) === null || _sheet$frozen5$range === void 0 ? void 0 : _sheet$frozen5$range.column_focus) || 0, context.visibledatacolumn)[1] - 2 + context.scrollLeft;
102507
+ return colLocationByIndex((sheet === null || sheet === void 0 ? void 0 : (_sheet$frozen5 = sheet.frozen) === null || _sheet$frozen5 === void 0 ? void 0 : (_sheet$frozen5$range = _sheet$frozen5.range) === null || _sheet$frozen5$range === void 0 ? void 0 : _sheet$frozen5$range.column_focus) || 0, context.visibledatacolumn)[1];
102508
102508
  }
102509
- return context.scrollLeft;
102510
- }, [context.visibledatacolumn, sheet === null || sheet === void 0 ? void 0 : sheet.frozen, context.scrollLeft]);
102509
+ return 0;
102510
+ }, [context.visibledatacolumn, sheet === null || sheet === void 0 ? void 0 : sheet.frozen]);
102511
102511
  var onMouseMove = React.useCallback(function (e) {
102512
102512
  var _refs$globalCache$fre;
102513
102513
  if (context.luckysheet_cols_change_size) {
@@ -102561,13 +102561,19 @@
102561
102561
  });
102562
102562
  e.stopPropagation();
102563
102563
  }, [refs.cellArea, refs.globalCache, refs.workbookContainer, setContext]);
102564
+ var freezeCanDrag = React.useMemo(function () {
102565
+ return context.scrollLeft <= 10;
102566
+ }, [context.scrollLeft]);
102564
102567
  var onColFreezeHandleMouseDown = React.useCallback(function (e) {
102568
+ if (!freezeCanDrag) {
102569
+ return;
102570
+ }
102565
102571
  var nativeEvent = e.nativeEvent;
102566
102572
  setContext(function (draftCtx) {
102567
102573
  handleColFreezeHandleMouseDown(draftCtx, refs.globalCache, nativeEvent, containerRef.current, refs.workbookContainer.current, refs.cellArea.current);
102568
102574
  });
102569
102575
  e.stopPropagation();
102570
- }, [refs.cellArea, refs.globalCache, refs.workbookContainer, setContext]);
102576
+ }, [refs.cellArea, refs.globalCache, refs.workbookContainer, setContext, freezeCanDrag]);
102571
102577
  var onContextMenu = React.useCallback(function (e) {
102572
102578
  var nativeEvent = e.nativeEvent;
102573
102579
  setContext(function (draftCtx) {
@@ -102604,7 +102610,7 @@
102604
102610
  React.useEffect(function () {
102605
102611
  containerRef.current.scrollLeft = context.scrollLeft;
102606
102612
  }, [context.scrollLeft]);
102607
- return /*#__PURE__*/React__default['default'].createElement("div", {
102613
+ return /*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, null, /*#__PURE__*/React__default['default'].createElement("div", {
102608
102614
  ref: containerRef,
102609
102615
  className: "leankylin-col-header",
102610
102616
  style: {
@@ -102615,12 +102621,6 @@
102615
102621
  onMouseLeave: onMouseLeave,
102616
102622
  onContextMenu: onContextMenu
102617
102623
  }, /*#__PURE__*/React__default['default'].createElement("div", {
102618
- className: "leankylin-cols-freeze-handle",
102619
- onMouseDown: onColFreezeHandleMouseDown,
102620
- style: {
102621
- left: freezeHandleLeft
102622
- }
102623
- }, settings === null || settings === void 0 ? void 0 : (_settings$renderFreez = settings.renderFreezeCol) === null || _settings$renderFreez === void 0 ? void 0 : _settings$renderFreez.call(settings)), /*#__PURE__*/React__default['default'].createElement("div", {
102624
102624
  className: "leankylin-cols-change-size",
102625
102625
  ref: colChangeSizeRef,
102626
102626
  id: "leankylin-cols-change-size",
@@ -102677,11 +102677,25 @@
102677
102677
  className: "luckysheet-cols-h-cells-c"
102678
102678
  }, /*#__PURE__*/React__default['default'].createElement("div", {
102679
102679
  className: "luckysheet-grdblkpush"
102680
- }))));
102680
+ })))), /*#__PURE__*/React__default['default'].createElement("div", {
102681
+ style: {
102682
+ left: 46,
102683
+ position: "absolute",
102684
+ pointerEvents: "none",
102685
+ height: 20
102686
+ }
102687
+ }, /*#__PURE__*/React__default['default'].createElement("div", {
102688
+ className: "leankylin-cols-freeze-handle ".concat(freezeCanDrag ? "" : "leankylin-cols-freeze-handle-disabled"),
102689
+ onMouseDown: onColFreezeHandleMouseDown,
102690
+ style: {
102691
+ left: freezeHandleLeft,
102692
+ pointerEvents: "all"
102693
+ }
102694
+ }, settings === null || settings === void 0 ? void 0 : (_settings$renderFreez = settings.renderFreezeCol) === null || _settings$renderFreez === void 0 ? void 0 : _settings$renderFreez.call(settings, freezeCanDrag))));
102681
102695
  };
102682
102696
 
102683
102697
  var RowHeader = function RowHeader() {
102684
- var _settings$renderFreez, _refs$globalCache$fre2;
102698
+ var _refs$globalCache$fre2, _settings$renderFreez;
102685
102699
  var _useContext = React.useContext(WorkbookContext),
102686
102700
  context = _useContext.context,
102687
102701
  setContext = _useContext.setContext,
@@ -102711,10 +102725,10 @@
102711
102725
  var _sheet$frozen, _sheet$frozen2, _sheet$frozen3, _sheet$frozen4;
102712
102726
  if ((sheet === null || sheet === void 0 ? void 0 : (_sheet$frozen = sheet.frozen) === null || _sheet$frozen === void 0 ? void 0 : _sheet$frozen.type) === "row" || (sheet === null || sheet === void 0 ? void 0 : (_sheet$frozen2 = sheet.frozen) === null || _sheet$frozen2 === void 0 ? void 0 : _sheet$frozen2.type) === "rangeRow" || (sheet === null || sheet === void 0 ? void 0 : (_sheet$frozen3 = sheet.frozen) === null || _sheet$frozen3 === void 0 ? void 0 : _sheet$frozen3.type) === "rangeBoth" || (sheet === null || sheet === void 0 ? void 0 : (_sheet$frozen4 = sheet.frozen) === null || _sheet$frozen4 === void 0 ? void 0 : _sheet$frozen4.type) === "both") {
102713
102727
  var _sheet$frozen5, _sheet$frozen5$range;
102714
- return rowLocationByIndex((sheet === null || sheet === void 0 ? void 0 : (_sheet$frozen5 = sheet.frozen) === null || _sheet$frozen5 === void 0 ? void 0 : (_sheet$frozen5$range = _sheet$frozen5.range) === null || _sheet$frozen5$range === void 0 ? void 0 : _sheet$frozen5$range.row_focus) || 0, context.visibledatarow)[1] + context.scrollTop;
102728
+ return rowLocationByIndex((sheet === null || sheet === void 0 ? void 0 : (_sheet$frozen5 = sheet.frozen) === null || _sheet$frozen5 === void 0 ? void 0 : (_sheet$frozen5$range = _sheet$frozen5.range) === null || _sheet$frozen5$range === void 0 ? void 0 : _sheet$frozen5$range.row_focus) || 0, context.visibledatarow)[1];
102715
102729
  }
102716
- return context.scrollTop;
102717
- }, [context.visibledatarow, sheet === null || sheet === void 0 ? void 0 : sheet.frozen, context.scrollTop]);
102730
+ return 0;
102731
+ }, [context.visibledatarow, sheet === null || sheet === void 0 ? void 0 : sheet.frozen]);
102718
102732
  var onMouseMove = React.useCallback(function (e) {
102719
102733
  var _refs$globalCache$fre;
102720
102734
  if (context.luckysheet_rows_change_size) {
@@ -102763,13 +102777,19 @@
102763
102777
  });
102764
102778
  e.stopPropagation();
102765
102779
  }, [refs.cellArea, refs.globalCache, refs.workbookContainer, setContext]);
102780
+ var freezeCanDrag = React.useMemo(function () {
102781
+ return context.scrollTop <= 10;
102782
+ }, [context.scrollTop]);
102766
102783
  var onRowFreezeHandleMouseDown = React.useCallback(function (e) {
102784
+ if (!freezeCanDrag) {
102785
+ return;
102786
+ }
102767
102787
  var nativeEvent = e.nativeEvent;
102768
102788
  setContext(function (draftCtx) {
102769
102789
  handleRowFreezeHandleMouseDown(draftCtx, refs.globalCache, nativeEvent, containerRef.current, refs.workbookContainer.current, refs.cellArea.current);
102770
102790
  });
102771
102791
  e.stopPropagation();
102772
- }, [refs.cellArea, refs.globalCache, refs.workbookContainer, setContext]);
102792
+ }, [refs.cellArea, refs.globalCache, refs.workbookContainer, setContext, freezeCanDrag]);
102773
102793
  var onContextMenu = React.useCallback(function (e) {
102774
102794
  var nativeEvent = e.nativeEvent;
102775
102795
  setContext(function (draftCtx) {
@@ -102805,7 +102825,7 @@
102805
102825
  React.useEffect(function () {
102806
102826
  containerRef.current.scrollTop = context.scrollTop;
102807
102827
  }, [context.scrollTop]);
102808
- return /*#__PURE__*/React__default['default'].createElement("div", {
102828
+ return /*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, null, /*#__PURE__*/React__default['default'].createElement("div", {
102809
102829
  ref: containerRef,
102810
102830
  className: "leankylin-row-header",
102811
102831
  style: {
@@ -102817,12 +102837,6 @@
102817
102837
  onMouseLeave: onMouseLeave,
102818
102838
  onContextMenu: onContextMenu
102819
102839
  }, /*#__PURE__*/React__default['default'].createElement("div", {
102820
- className: "leankylin-rows-freeze-handle",
102821
- onMouseDown: onRowFreezeHandleMouseDown,
102822
- style: {
102823
- top: freezeHandleTop
102824
- }
102825
- }, settings === null || settings === void 0 ? void 0 : (_settings$renderFreez = settings.renderFreezeRow) === null || _settings$renderFreez === void 0 ? void 0 : _settings$renderFreez.call(settings)), /*#__PURE__*/React__default['default'].createElement("div", {
102826
102840
  className: "leankylin-rows-change-size",
102827
102841
  ref: rowChangeSizeRef,
102828
102842
  onMouseDown: onRowSizeHandleMouseDown,
@@ -102860,7 +102874,21 @@
102860
102874
  },
102861
102875
  id: "luckysheetrowHeader_0",
102862
102876
  className: "luckysheetsheetchange"
102863
- }));
102877
+ })), /*#__PURE__*/React__default['default'].createElement("div", {
102878
+ style: {
102879
+ top: 20,
102880
+ position: "absolute",
102881
+ pointerEvents: "none",
102882
+ width: 46
102883
+ }
102884
+ }, /*#__PURE__*/React__default['default'].createElement("div", {
102885
+ className: "leankylin-rows-freeze-handle ".concat(freezeCanDrag ? "" : "leankylin-rows-freeze-handle-disabled"),
102886
+ onMouseDown: onRowFreezeHandleMouseDown,
102887
+ style: {
102888
+ top: freezeHandleTop,
102889
+ pointerEvents: "all"
102890
+ }
102891
+ }, settings === null || settings === void 0 ? void 0 : (_settings$renderFreez = settings.renderFreezeRow) === null || _settings$renderFreez === void 0 ? void 0 : _settings$renderFreez.call(settings, freezeCanDrag))));
102864
102892
  };
102865
102893
 
102866
102894
  var ContentEditable = function ContentEditable(_ref) {