@leankylin-sheet/react 1.2.9 → 1.2.11

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.
@@ -1,6 +1,4 @@
1
1
  import React from "react";
2
2
  import "./index.css";
3
- declare const SearchReplace: React.FC<{
4
- getContainer: () => HTMLDivElement;
5
- }>;
3
+ declare const SearchReplace: React.FC<{}>;
6
4
  export default SearchReplace;
package/dist/index.esm.js CHANGED
@@ -2,6 +2,7 @@ import { defaultContext, defaultSettings, getSheetIndex, colLocationByIndex, fix
2
2
  import React, { useContext, useRef, useState, useMemo, useCallback, useEffect, useLayoutEffect, useImperativeHandle } from 'react';
3
3
  import produce, { applyPatches, enablePatches, produceWithPatches } from 'immer';
4
4
  import _ from 'lodash';
5
+ import { createPortal } from 'react-dom';
5
6
 
6
7
  function _iterableToArrayLimit(r, l) {
7
8
  var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
@@ -1144,8 +1145,7 @@ function useAlert() {
1144
1145
  };
1145
1146
  }
1146
1147
 
1147
- var SearchReplace = function SearchReplace(_ref) {
1148
- var getContainer = _ref.getContainer;
1148
+ var SearchReplace = function SearchReplace() {
1149
1149
  var _useContext = useContext(WorkbookContext),
1150
1150
  context = _useContext.context,
1151
1151
  setContext = _useContext.setContext,
@@ -1202,10 +1202,11 @@ var SearchReplace = function SearchReplace(_ref) {
1202
1202
  top: (rect.height - 200) / 3
1203
1203
  };
1204
1204
  }, []);
1205
- return /*#__PURE__*/React.createElement("div", {
1205
+ var body = document.body;
1206
+ return /*#__PURE__*/createPortal( /*#__PURE__*/React.createElement("div", {
1206
1207
  id: "leankylin-search-replace",
1207
1208
  className: "leankylin-search-replace leankylin-dialog",
1208
- style: getInitialPosition(getContainer()),
1209
+ style: getInitialPosition(body),
1209
1210
  onMouseEnter: function onMouseEnter() {
1210
1211
  _.set(refs.globalCache, "searchDialog.mouseEnter", true);
1211
1212
  },
@@ -1214,7 +1215,7 @@ var SearchReplace = function SearchReplace(_ref) {
1214
1215
  },
1215
1216
  onMouseDown: function onMouseDown(e) {
1216
1217
  var nativeEvent = e.nativeEvent;
1217
- onSearchDialogMoveStart(refs.globalCache, nativeEvent, getContainer());
1218
+ onSearchDialogMoveStart(refs.globalCache, nativeEvent, body);
1218
1219
  e.stopPropagation();
1219
1220
  }
1220
1221
  }, /*#__PURE__*/React.createElement("div", {
@@ -1351,7 +1352,10 @@ var SearchReplace = function SearchReplace(_ref) {
1351
1352
  className: "close-button leankylin-message-box-button button-default",
1352
1353
  onClick: closeDialog
1353
1354
  }, button.close), searchResult.length > 0 && ( /*#__PURE__*/React.createElement("div", {
1354
- id: "searchAllbox"
1355
+ id: "searchAllbox",
1356
+ onScroll: function onScroll(e) {
1357
+ return e.stopPropagation();
1358
+ }
1355
1359
  }, /*#__PURE__*/React.createElement("div", {
1356
1360
  className: "boxTitle"
1357
1361
  }, /*#__PURE__*/React.createElement("span", null, findAndReplace.searchTargetSheet), /*#__PURE__*/React.createElement("span", null, findAndReplace.searchTargetCell), /*#__PURE__*/React.createElement("span", null, findAndReplace.searchTargetValue)), /*#__PURE__*/React.createElement("div", {
@@ -1377,7 +1381,7 @@ var SearchReplace = function SearchReplace(_ref) {
1377
1381
  });
1378
1382
  }
1379
1383
  }, /*#__PURE__*/React.createElement("span", null, v.sheetName), /*#__PURE__*/React.createElement("span", null, v.cellPosition), /*#__PURE__*/React.createElement("span", null, v.value));
1380
- }))))));
1384
+ })))))), body);
1381
1385
  };
1382
1386
 
1383
1387
  var LinkEditCard = function LinkEditCard(_ref) {
@@ -3311,11 +3315,7 @@ var SheetOverlay = function SheetOverlay() {
3311
3315
  width: context.rowHeaderWidth - 1.5,
3312
3316
  height: context.columnHeaderHeight - 1.5
3313
3317
  }
3314
- }), /*#__PURE__*/React.createElement(ColumnHeader, null)), (context.showSearch || context.showReplace) && ( /*#__PURE__*/React.createElement(SearchReplace, {
3315
- getContainer: function getContainer() {
3316
- return containerRef.current;
3317
- }
3318
- })), /*#__PURE__*/React.createElement("div", {
3318
+ }), /*#__PURE__*/React.createElement(ColumnHeader, null)), (context.showSearch || context.showReplace) && /*#__PURE__*/React.createElement(SearchReplace, null), /*#__PURE__*/React.createElement("div", {
3319
3319
  className: "leankylin-row-body"
3320
3320
  }, /*#__PURE__*/React.createElement(RowHeader, null), /*#__PURE__*/React.createElement(ScrollBar, {
3321
3321
  axis: "x"
@@ -10683,6 +10683,9 @@ var Workbook = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
10683
10683
  }, [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]);
10684
10684
  var onKeyDown = useCallback(function (e) {
10685
10685
  var nativeEvent = e.nativeEvent;
10686
+ if ((e.ctrlKey || e.metaKey) && mergedSettings.disabledKeyboardCodes.includes(e.code)) {
10687
+ return;
10688
+ }
10686
10689
  if ((e.ctrlKey || e.metaKey) && e.code === "KeyZ") {
10687
10690
  if (e.shiftKey) {
10688
10691
  handleRedo();
@@ -10701,7 +10704,7 @@ var Workbook = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
10701
10704
  setContextWithProduce(function (draftCtx) {
10702
10705
  handleGlobalKeyDown(draftCtx, cellInput.current, fxInput.current, nativeEvent, globalCache.current, handleUndo, handleRedo, canvas.current.getContext("2d"));
10703
10706
  });
10704
- }, [handleRedo, handleUndo, setContextWithProduce]);
10707
+ }, [handleRedo, handleUndo, setContextWithProduce, mergedSettings.disabledKeyboardCodes]);
10705
10708
  var onPaste = useCallback(function (e) {
10706
10709
  var _document$activeEleme;
10707
10710
  if (cellInput.current === document.activeElement || ((_document$activeEleme = document.activeElement) === null || _document$activeEleme === void 0 ? void 0 : _document$activeEleme.className) === "leankylin-sheet-overlay") {
@@ -10712,25 +10715,6 @@ var Workbook = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
10712
10715
  var txtdata = clipboardData.getData("text/html") || clipboardData.getData("text/plain");
10713
10716
  var ele = document.createElement("div");
10714
10717
  ele.innerHTML = txtdata;
10715
- var trList = ele.querySelectorAll("table tr");
10716
- var maxRow = trList.length + context.luckysheet_select_save[0].row[0];
10717
- var rowToBeAdded = maxRow - context.luckysheetfile[getSheetIndex(context, context.currentSheetId)].data.length;
10718
- var range = context.luckysheet_select_save;
10719
- if (rowToBeAdded > 0) {
10720
- var insertRowColOp = {
10721
- type: "row",
10722
- index: context.luckysheetfile[getSheetIndex(context, context.currentSheetId)].data.length - 1,
10723
- count: rowToBeAdded,
10724
- direction: "rightbottom",
10725
- id: context.currentSheetId
10726
- };
10727
- setContextWithProduce(function (draftCtx) {
10728
- insertRowCol(draftCtx, insertRowColOp);
10729
- draftCtx.luckysheet_select_save = range;
10730
- }, {
10731
- insertRowColOp: insertRowColOp
10732
- });
10733
- }
10734
10718
  setContextWithProduce(function (draftCtx) {
10735
10719
  try {
10736
10720
  handlePaste(draftCtx, e);
package/dist/index.js CHANGED
@@ -6,6 +6,7 @@ var core = require('@leankylin-sheet/core');
6
6
  var React = require('react');
7
7
  var produce = require('immer');
8
8
  var _ = require('lodash');
9
+ var reactDom = require('react-dom');
9
10
 
10
11
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
11
12
 
@@ -1154,8 +1155,7 @@ function useAlert() {
1154
1155
  };
1155
1156
  }
1156
1157
 
1157
- var SearchReplace = function SearchReplace(_ref) {
1158
- var getContainer = _ref.getContainer;
1158
+ var SearchReplace = function SearchReplace() {
1159
1159
  var _useContext = React.useContext(WorkbookContext),
1160
1160
  context = _useContext.context,
1161
1161
  setContext = _useContext.setContext,
@@ -1212,10 +1212,11 @@ var SearchReplace = function SearchReplace(_ref) {
1212
1212
  top: (rect.height - 200) / 3
1213
1213
  };
1214
1214
  }, []);
1215
- return /*#__PURE__*/React__default['default'].createElement("div", {
1215
+ var body = document.body;
1216
+ return /*#__PURE__*/reactDom.createPortal( /*#__PURE__*/React__default['default'].createElement("div", {
1216
1217
  id: "leankylin-search-replace",
1217
1218
  className: "leankylin-search-replace leankylin-dialog",
1218
- style: getInitialPosition(getContainer()),
1219
+ style: getInitialPosition(body),
1219
1220
  onMouseEnter: function onMouseEnter() {
1220
1221
  ___default['default'].set(refs.globalCache, "searchDialog.mouseEnter", true);
1221
1222
  },
@@ -1224,7 +1225,7 @@ var SearchReplace = function SearchReplace(_ref) {
1224
1225
  },
1225
1226
  onMouseDown: function onMouseDown(e) {
1226
1227
  var nativeEvent = e.nativeEvent;
1227
- core.onSearchDialogMoveStart(refs.globalCache, nativeEvent, getContainer());
1228
+ core.onSearchDialogMoveStart(refs.globalCache, nativeEvent, body);
1228
1229
  e.stopPropagation();
1229
1230
  }
1230
1231
  }, /*#__PURE__*/React__default['default'].createElement("div", {
@@ -1361,7 +1362,10 @@ var SearchReplace = function SearchReplace(_ref) {
1361
1362
  className: "close-button leankylin-message-box-button button-default",
1362
1363
  onClick: closeDialog
1363
1364
  }, button.close), searchResult.length > 0 && ( /*#__PURE__*/React__default['default'].createElement("div", {
1364
- id: "searchAllbox"
1365
+ id: "searchAllbox",
1366
+ onScroll: function onScroll(e) {
1367
+ return e.stopPropagation();
1368
+ }
1365
1369
  }, /*#__PURE__*/React__default['default'].createElement("div", {
1366
1370
  className: "boxTitle"
1367
1371
  }, /*#__PURE__*/React__default['default'].createElement("span", null, findAndReplace.searchTargetSheet), /*#__PURE__*/React__default['default'].createElement("span", null, findAndReplace.searchTargetCell), /*#__PURE__*/React__default['default'].createElement("span", null, findAndReplace.searchTargetValue)), /*#__PURE__*/React__default['default'].createElement("div", {
@@ -1387,7 +1391,7 @@ var SearchReplace = function SearchReplace(_ref) {
1387
1391
  });
1388
1392
  }
1389
1393
  }, /*#__PURE__*/React__default['default'].createElement("span", null, v.sheetName), /*#__PURE__*/React__default['default'].createElement("span", null, v.cellPosition), /*#__PURE__*/React__default['default'].createElement("span", null, v.value));
1390
- }))))));
1394
+ })))))), body);
1391
1395
  };
1392
1396
 
1393
1397
  var LinkEditCard = function LinkEditCard(_ref) {
@@ -3321,11 +3325,7 @@ var SheetOverlay = function SheetOverlay() {
3321
3325
  width: context.rowHeaderWidth - 1.5,
3322
3326
  height: context.columnHeaderHeight - 1.5
3323
3327
  }
3324
- }), /*#__PURE__*/React__default['default'].createElement(ColumnHeader, null)), (context.showSearch || context.showReplace) && ( /*#__PURE__*/React__default['default'].createElement(SearchReplace, {
3325
- getContainer: function getContainer() {
3326
- return containerRef.current;
3327
- }
3328
- })), /*#__PURE__*/React__default['default'].createElement("div", {
3328
+ }), /*#__PURE__*/React__default['default'].createElement(ColumnHeader, null)), (context.showSearch || context.showReplace) && /*#__PURE__*/React__default['default'].createElement(SearchReplace, null), /*#__PURE__*/React__default['default'].createElement("div", {
3329
3329
  className: "leankylin-row-body"
3330
3330
  }, /*#__PURE__*/React__default['default'].createElement(RowHeader, null), /*#__PURE__*/React__default['default'].createElement(ScrollBar, {
3331
3331
  axis: "x"
@@ -10693,6 +10693,9 @@ var Workbook = /*#__PURE__*/React__default['default'].forwardRef(function (_ref,
10693
10693
  }, [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]);
10694
10694
  var onKeyDown = React.useCallback(function (e) {
10695
10695
  var nativeEvent = e.nativeEvent;
10696
+ if ((e.ctrlKey || e.metaKey) && mergedSettings.disabledKeyboardCodes.includes(e.code)) {
10697
+ return;
10698
+ }
10696
10699
  if ((e.ctrlKey || e.metaKey) && e.code === "KeyZ") {
10697
10700
  if (e.shiftKey) {
10698
10701
  handleRedo();
@@ -10711,7 +10714,7 @@ var Workbook = /*#__PURE__*/React__default['default'].forwardRef(function (_ref,
10711
10714
  setContextWithProduce(function (draftCtx) {
10712
10715
  core.handleGlobalKeyDown(draftCtx, cellInput.current, fxInput.current, nativeEvent, globalCache.current, handleUndo, handleRedo, canvas.current.getContext("2d"));
10713
10716
  });
10714
- }, [handleRedo, handleUndo, setContextWithProduce]);
10717
+ }, [handleRedo, handleUndo, setContextWithProduce, mergedSettings.disabledKeyboardCodes]);
10715
10718
  var onPaste = React.useCallback(function (e) {
10716
10719
  var _document$activeEleme;
10717
10720
  if (cellInput.current === document.activeElement || ((_document$activeEleme = document.activeElement) === null || _document$activeEleme === void 0 ? void 0 : _document$activeEleme.className) === "leankylin-sheet-overlay") {
@@ -10722,25 +10725,6 @@ var Workbook = /*#__PURE__*/React__default['default'].forwardRef(function (_ref,
10722
10725
  var txtdata = clipboardData.getData("text/html") || clipboardData.getData("text/plain");
10723
10726
  var ele = document.createElement("div");
10724
10727
  ele.innerHTML = txtdata;
10725
- var trList = ele.querySelectorAll("table tr");
10726
- var maxRow = trList.length + context.luckysheet_select_save[0].row[0];
10727
- var rowToBeAdded = maxRow - context.luckysheetfile[core.getSheetIndex(context, context.currentSheetId)].data.length;
10728
- var range = context.luckysheet_select_save;
10729
- if (rowToBeAdded > 0) {
10730
- var insertRowColOp = {
10731
- type: "row",
10732
- index: context.luckysheetfile[core.getSheetIndex(context, context.currentSheetId)].data.length - 1,
10733
- count: rowToBeAdded,
10734
- direction: "rightbottom",
10735
- id: context.currentSheetId
10736
- };
10737
- setContextWithProduce(function (draftCtx) {
10738
- core.insertRowCol(draftCtx, insertRowColOp);
10739
- draftCtx.luckysheet_select_save = range;
10740
- }, {
10741
- insertRowColOp: insertRowColOp
10742
- });
10743
- }
10744
10728
  setContextWithProduce(function (draftCtx) {
10745
10729
  try {
10746
10730
  core.handlePaste(draftCtx, e);