UNPKG

@leankylin-sheet/react

Version:

LeankylinSheet is a drop-in javascript spreadsheet library that provides rich features like Excel and Google Sheets

1,143 lines (1,129 loc) 465 kB
import { defaultContext, defaultSettings, getSheetIndex, colLocationByIndex, fixPositionOnFrozenCells, colLocation, getFlowdata, isAllowEdit, handleColumnHeaderMouseDown, handleColSizeHandleMouseDown, handleColFreezeHandleMouseDown, handleContextMenu, selectTitlesMap, selectTitlesRange, fixColumnStyleOverflowInFreeze, rowLocationByIndex, rowLocation, handleRowHeaderMouseDown, handleRowSizeHandleMouseDown, handleRowFreezeHandleMouseDown, fixRowStyleOverflowInFreeze, functionHTMLGenerate, locale, getStyleByCell, getCellValue, createRangeHightlight, isInlineStringCell, getInlineStringHTML, valueShowEs, escapeHTMLTag, escapeScriptTag, moveToEnd, isShowHidenCR, cancelNormalSelected, moveHighlightCell, updateCell, israngeseleciton, handleFormulaInput, onSearchDialogMoveStart, replaceAll, replace, searchAll, searchNext, normalizeSelection, scrollToHighlightCell, isLinkValid, getRangetxt, goToLink, replaceHtml, removeHyperlink, onRangeSelectionModalMoveStart, saveHyperlink, createFilterOptions, onImageMoveStart, onImageResizeStart, showComments, setEditingComment, onCommentBoxMoveStart, onCommentBoxResizeStart, confirmMessage, getRangeByTxt, getDropdownList, setCellValue, setConditionRules, mergeBorder, setDropcownValue, handleCellAreaMouseDown, handleCellAreaMouseMove, handleCellAreaDoubleClick, selectAll, showLinkCard, getCellRowColumn, getCellHyperlink, handleOverlayMouseMove, handleOverlayMouseUp, handleKeydownForZoom, handleOverlayTouchStart, handleOverlayTouchMove, handleOverlayTouchEnd, drawArrow, onCellsMoveStart, createDropCellRange, updateContextWithSheetData, updateContextWithCanvas, initFreeze, Canvas, handleGlobalWheel, setCaretPosition, getDataArr, updateMoreCell, getRegStr, getOptionValue, getSelectRange, applyLocation, updateItem, update, normalizedCellAttr, updateFormat, handleTextSize, handleHorizontalAlign, handleVerticalAlign, handleScreenShot, showImgChooser, insertImage, editComment, deleteComment, showHideComment, showHideAllComments, newComment, handleSum, autoSelectionFormula, handleMerge, handleBorder, handleFreeze, handleSort, createFilter, clearFilter, toolbarItemSelectedFunc, toolbarItemClickHandler, handleTextColor, handleTextBackground, getDataBySelectionNoCopy, getInlineStringNoStyle, rangeHightlightselected, editSheetName, cancelActiveImgItem, MAX_ZOOM_RATIO, MIN_ZOOM_RATIO, addSheet, indexToColumnChar, sortSelection, handleCopy, insertRowCol, deleteRowCol, hideSelected, showSelected, api, removeActiveImage, deleteSelectedCellText, jfrefreshgrid, handleLink, deleteSheet, opToPatch, orderbydatafiler, getFilterColumnValues, getFilterColumnColors, saveFilter, patchToOp, filterPatch, inverseRowColOptions, ensureSheetIndex, initSheetIndex, handleGlobalKeyDown, handlePasteByLeanklin, groupValuesRefresh } from '@leankylin-sheet/core'; import React, { useContext, useRef, useState, useMemo, useCallback, useEffect, useLayoutEffect, useImperativeHandle } from 'react'; import produce, { applyPatches, enablePatches, produceWithPatches } from 'immer'; import _ from 'lodash'; import { useMemoizedFn, useThrottleFn } from 'ahooks'; import { createPortal } from 'react-dom'; function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } } function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } function _objectDestructuringEmpty(obj) { if (obj == null) throw new TypeError("Cannot destructure " + obj); } function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var defaultRefs = { globalCache: { undoList: [], redoList: [] }, cellInput: /*#__PURE__*/React.createRef(), fxInput: /*#__PURE__*/React.createRef(), canvas: /*#__PURE__*/React.createRef(), cellArea: /*#__PURE__*/React.createRef(), workbookContainer: /*#__PURE__*/React.createRef() }; var WorkbookContext = /*#__PURE__*/React.createContext({ context: defaultContext(defaultRefs), setContext: function setContext() {}, settings: defaultSettings, handleUndo: function handleUndo() {}, handleRedo: function handleRedo() {}, refs: { globalCache: { undoList: [], redoList: [] }, cellInput: /*#__PURE__*/React.createRef(), fxInput: /*#__PURE__*/React.createRef(), canvas: /*#__PURE__*/React.createRef(), scrollbarX: /*#__PURE__*/React.createRef(), scrollbarY: /*#__PURE__*/React.createRef(), cellArea: /*#__PURE__*/React.createRef(), workbookContainer: /*#__PURE__*/React.createRef() } }); var SVGIcon = function SVGIcon(_ref) { var _ref$width = _ref.width, width = _ref$width === void 0 ? 24 : _ref$width, _ref$height = _ref.height, height = _ref$height === void 0 ? 24 : _ref$height, name = _ref.name, style = _ref.style; return /*#__PURE__*/React.createElement("svg", { width: width, height: height, style: style }, /*#__PURE__*/React.createElement("use", { xlinkHref: "#".concat(name) })); }; var ColumnHeader = function ColumnHeader() { var _refs$globalCache$fre2, _settings$renderFreez; var _useContext = useContext(WorkbookContext), context = _useContext.context, setContext = _useContext.setContext, settings = _useContext.settings, refs = _useContext.refs; var containerRef = useRef(null); var colChangeSizeRef = useRef(null); var _useState = useState({ col: -1, col_pre: -1, col_index: -1 }), _useState2 = _slicedToArray(_useState, 2), hoverLocation = _useState2[0], setHoverLocation = _useState2[1]; var _useState3 = useState(false), _useState4 = _slicedToArray(_useState3, 2), hoverInFreeze = _useState4[0], setHoverInFreeze = _useState4[1]; var _useState5 = useState([]), _useState6 = _slicedToArray(_useState5, 2), selectedLocation = _useState6[0], setSelectedLocation = _useState6[1]; var allowEditRef = useRef(true); var sheetIndex = getSheetIndex(context, context.currentSheetId); var sheet = sheetIndex == null ? null : context.luckysheetfile[sheetIndex]; var freezeHandleLeft = useMemo(function () { var _sheet$frozen, _sheet$frozen2, _sheet$frozen3, _sheet$frozen4; 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") { var _sheet$frozen5, _sheet$frozen5$range; 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]; } return 0; }, [context.visibledatacolumn, sheet === null || sheet === void 0 ? void 0 : sheet.frozen]); var onMouseMove = useCallback(function (e) { var _refs$globalCache$fre; if (context.luckysheet_cols_change_size) { return; } var mouseX = e.pageX - containerRef.current.getBoundingClientRect().left - window.scrollX; var _x = mouseX + containerRef.current.scrollLeft; var freeze = (_refs$globalCache$fre = refs.globalCache.freezen) === null || _refs$globalCache$fre === void 0 ? void 0 : _refs$globalCache$fre[context.currentSheetId]; var _fixPositionOnFrozenC = fixPositionOnFrozenCells(freeze, _x, 0, mouseX, 0), x = _fixPositionOnFrozenC.x, inVerticalFreeze = _fixPositionOnFrozenC.inVerticalFreeze; var col_location = colLocation(x, context.visibledatacolumn); var _col_location = _slicedToArray(col_location, 3), col_pre = _col_location[0], col = _col_location[1], col_index = _col_location[2]; if (col_index !== hoverLocation.col_index) { setHoverLocation({ col_pre: col_pre, col: col, col_index: col_index }); setHoverInFreeze(inVerticalFreeze); } var flowdata = getFlowdata(context); if (!_.isNil(flowdata)) allowEditRef.current = isAllowEdit(context) && isAllowEdit(context, [{ row: [0, flowdata.length - 1], column: col_location }]); }, [context, hoverLocation.col_index, refs.globalCache.freezen]); var onMouseDown = useCallback(function (e) { var nativeEvent = e.nativeEvent; setContext(function (draftCtx) { handleColumnHeaderMouseDown(draftCtx, refs.globalCache, nativeEvent, containerRef.current, refs.cellInput.current, refs.fxInput.current); }); }, [refs.globalCache, refs.cellInput, refs.fxInput, setContext]); var onMouseLeave = useCallback(function () { if (context.luckysheet_cols_change_size) { return; } setHoverLocation({ col: -1, col_pre: -1, col_index: -1 }); }, [context.luckysheet_cols_change_size]); var onColSizeHandleMouseDown = useCallback(function (e) { var nativeEvent = e.nativeEvent; setContext(function (draftCtx) { handleColSizeHandleMouseDown(draftCtx, refs.globalCache, nativeEvent, containerRef.current, refs.workbookContainer.current, refs.cellArea.current); }); e.stopPropagation(); }, [refs.cellArea, refs.globalCache, refs.workbookContainer, setContext]); var freezeCanDrag = useMemo(function () { return context.scrollLeft <= 10; }, [context.scrollLeft]); var onColFreezeHandleMouseDown = useCallback(function (e) { if (!freezeCanDrag) { return; } var nativeEvent = e.nativeEvent; setContext(function (draftCtx) { handleColFreezeHandleMouseDown(draftCtx, refs.globalCache, nativeEvent, containerRef.current, refs.workbookContainer.current, refs.cellArea.current); }); e.stopPropagation(); }, [refs.cellArea, refs.globalCache, refs.workbookContainer, setContext, freezeCanDrag]); var onContextMenu = useCallback(function (e) { var nativeEvent = e.nativeEvent; setContext(function (draftCtx) { handleContextMenu(draftCtx, settings, nativeEvent, refs.workbookContainer.current, refs.cellArea.current, "columnHeader"); }); }, [refs.workbookContainer, setContext, settings, refs.cellArea]); useEffect(function () { var s = context.luckysheet_select_save; if (_.isNil(s)) return; var columnTitleMap = {}; for (var i = 0; i < s.length; i += 1) { var c1 = s[i].column[0]; var c2 = s[i].column[1]; columnTitleMap = selectTitlesMap(columnTitleMap, c1, c2); } var columnTitleRange = selectTitlesRange(columnTitleMap); var selects = []; for (var j = 0; j < columnTitleRange.length; j += 1) { var _c = columnTitleRange[j][0]; var _c2 = columnTitleRange[j][columnTitleRange[j].length - 1]; var col = colLocationByIndex(_c2, context.visibledatacolumn)[1]; var col_pre = colLocationByIndex(_c, context.visibledatacolumn)[0]; if (_.isNumber(col) && _.isNumber(col_pre)) { selects.push({ col: col, col_pre: col_pre, c1: _c, c2: _c2 }); } } setSelectedLocation(selects); }, [context.luckysheet_select_save, context.visibledatacolumn]); useEffect(function () { containerRef.current.scrollLeft = context.scrollLeft; }, [context.scrollLeft]); return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", { ref: containerRef, className: "leankylin-col-header", style: { height: context.columnHeaderHeight - 1.5 }, onMouseMove: onMouseMove, onMouseDown: onMouseDown, onMouseLeave: onMouseLeave, onContextMenu: onContextMenu }, /*#__PURE__*/React.createElement("div", { className: "leankylin-cols-change-size", ref: colChangeSizeRef, id: "leankylin-cols-change-size", onMouseDown: onColSizeHandleMouseDown, style: { left: hoverLocation.col - 5 + (hoverInFreeze ? context.scrollLeft : 0), opacity: context.luckysheet_cols_change_size ? 1 : 0 } }), !context.luckysheet_cols_change_size && hoverLocation.col_index >= 0 ? ( /*#__PURE__*/React.createElement("div", { className: "leankylin-col-header-hover", style: _.assign({ left: hoverLocation.col_pre, width: hoverLocation.col - hoverLocation.col_pre - 1, display: "block" }, fixColumnStyleOverflowInFreeze(context, hoverLocation.col_index, hoverLocation.col_index, (_refs$globalCache$fre2 = refs.globalCache.freezen) === null || _refs$globalCache$fre2 === void 0 ? void 0 : _refs$globalCache$fre2[context.currentSheetId])) }, allowEditRef.current && ( /*#__PURE__*/React.createElement("span", { className: "header-arrow", onClick: function onClick(e) { setContext(function (ctx) { ctx.contextMenu = { x: e.pageX, y: 90, headerMenu: true }; }); } }, /*#__PURE__*/React.createElement(SVGIcon, { name: "headDownArrow", width: 12 }))))) : null, selectedLocation.map(function (_ref, i) { var _refs$globalCache$fre3; var col = _ref.col, col_pre = _ref.col_pre, c1 = _ref.c1, c2 = _ref.c2; return /*#__PURE__*/React.createElement("div", { className: "leankylin-col-header-selected", key: i, style: _.assign({ left: col_pre, width: col - col_pre - 1, display: "block", backgroundColor: "rgba(76, 76, 76, 0.1)" }, fixColumnStyleOverflowInFreeze(context, c1, c2, (_refs$globalCache$fre3 = refs.globalCache.freezen) === null || _refs$globalCache$fre3 === void 0 ? void 0 : _refs$globalCache$fre3[context.currentSheetId])) }); }), /*#__PURE__*/React.createElement("div", { className: "luckysheet-cols-h-cells luckysheetsheetchange", id: "luckysheet-cols-h-cells_0", style: { width: context.ch_width, height: 1 } }, /*#__PURE__*/React.createElement("div", { className: "luckysheet-cols-h-cells-c" }, /*#__PURE__*/React.createElement("div", { className: "luckysheet-grdblkpush" })))), /*#__PURE__*/React.createElement("div", { style: { left: 46, position: "absolute", pointerEvents: "none", height: 20 } }, /*#__PURE__*/React.createElement("div", { className: "leankylin-cols-freeze-handle ".concat(freezeCanDrag ? "" : "leankylin-cols-freeze-handle-disabled"), onMouseDown: onColFreezeHandleMouseDown, style: { left: freezeHandleLeft, pointerEvents: "all" } }, settings === null || settings === void 0 ? void 0 : (_settings$renderFreez = settings.renderFreezeCol) === null || _settings$renderFreez === void 0 ? void 0 : _settings$renderFreez.call(settings, freezeCanDrag)))); }; var RowHeader = function RowHeader() { var _refs$globalCache$fre2, _settings$renderFreez; var _useContext = useContext(WorkbookContext), context = _useContext.context, setContext = _useContext.setContext, settings = _useContext.settings, refs = _useContext.refs; var rowChangeSizeRef = useRef(null); var containerRef = useRef(null); var _useState = useState({ row: -1, row_pre: -1, row_index: -1 }), _useState2 = _slicedToArray(_useState, 2), hoverLocation = _useState2[0], setHoverLocation = _useState2[1]; var _useState3 = useState(false), _useState4 = _slicedToArray(_useState3, 2), hoverInFreeze = _useState4[0], setHoverInFreeze = _useState4[1]; var _useState5 = useState([]), _useState6 = _slicedToArray(_useState5, 2), selectedLocation = _useState6[0], setSelectedLocation = _useState6[1]; var sheetIndex = getSheetIndex(context, context.currentSheetId); var sheet = sheetIndex == null ? null : context.luckysheetfile[sheetIndex]; var freezeHandleTop = useMemo(function () { var _sheet$frozen, _sheet$frozen2, _sheet$frozen3, _sheet$frozen4; 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") { var _sheet$frozen5, _sheet$frozen5$range; 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]; } return 0; }, [context.visibledatarow, sheet === null || sheet === void 0 ? void 0 : sheet.frozen]); var onMouseMove = useCallback(function (e) { var _refs$globalCache$fre; if (context.luckysheet_rows_change_size) { return; } var mouseY = e.pageY - containerRef.current.getBoundingClientRect().top - window.scrollY; var _y = mouseY + containerRef.current.scrollTop; var freeze = (_refs$globalCache$fre = refs.globalCache.freezen) === null || _refs$globalCache$fre === void 0 ? void 0 : _refs$globalCache$fre[context.currentSheetId]; var _fixPositionOnFrozenC = fixPositionOnFrozenCells(freeze, 0, _y, 0, mouseY), y = _fixPositionOnFrozenC.y, inHorizontalFreeze = _fixPositionOnFrozenC.inHorizontalFreeze; var row_location = rowLocation(y, context.visibledatarow); var _row_location = _slicedToArray(row_location, 3), row_pre = _row_location[0], row = _row_location[1], row_index = _row_location[2]; if (row_pre !== hoverLocation.row_pre || row !== hoverLocation.row) { setHoverLocation({ row_pre: row_pre, row: row, row_index: row_index }); setHoverInFreeze(inHorizontalFreeze); } }, [context.luckysheet_rows_change_size, context.visibledatarow, hoverLocation.row, hoverLocation.row_pre, refs.globalCache.freezen, context.currentSheetId]); var onMouseDown = useCallback(function (e) { var nativeEvent = e.nativeEvent; setContext(function (draftCtx) { handleRowHeaderMouseDown(draftCtx, refs.globalCache, nativeEvent, containerRef.current, refs.cellInput.current, refs.fxInput.current); }); }, [refs.globalCache, refs.cellInput, refs.fxInput, setContext]); var onMouseLeave = useCallback(function () { if (context.luckysheet_rows_change_size) { return; } setHoverLocation({ row: -1, row_pre: -1, row_index: -1 }); }, [context.luckysheet_rows_change_size]); var onRowSizeHandleMouseDown = useCallback(function (e) { var nativeEvent = e.nativeEvent; setContext(function (draftCtx) { handleRowSizeHandleMouseDown(draftCtx, refs.globalCache, nativeEvent, containerRef.current, refs.workbookContainer.current, refs.cellArea.current); }); e.stopPropagation(); }, [refs.cellArea, refs.globalCache, refs.workbookContainer, setContext]); var freezeCanDrag = useMemo(function () { return context.scrollTop <= 10; }, [context.scrollTop]); var onRowFreezeHandleMouseDown = useCallback(function (e) { if (!freezeCanDrag) { return; } var nativeEvent = e.nativeEvent; setContext(function (draftCtx) { handleRowFreezeHandleMouseDown(draftCtx, refs.globalCache, nativeEvent, containerRef.current, refs.workbookContainer.current, refs.cellArea.current); }); e.stopPropagation(); }, [refs.cellArea, refs.globalCache, refs.workbookContainer, setContext, freezeCanDrag]); var onContextMenu = useCallback(function (e) { var nativeEvent = e.nativeEvent; setContext(function (draftCtx) { handleContextMenu(draftCtx, settings, nativeEvent, refs.workbookContainer.current, refs.cellArea.current, "rowHeader"); }); }, [refs.workbookContainer, setContext, settings, refs.cellArea]); useEffect(function () { var s = context.luckysheet_select_save || []; var rowTitleMap = {}; for (var i = 0; i < s.length; i += 1) { var r1 = s[i].row[0]; var r2 = s[i].row[1]; rowTitleMap = selectTitlesMap(rowTitleMap, r1, r2); } var rowTitleRange = selectTitlesRange(rowTitleMap); var selects = []; for (var _i = 0; _i < rowTitleRange.length; _i += 1) { var _r = rowTitleRange[_i][0]; var _r2 = rowTitleRange[_i][rowTitleRange[_i].length - 1]; var row = rowLocationByIndex(_r2, context.visibledatarow)[1]; var row_pre = rowLocationByIndex(_r, context.visibledatarow)[0]; if (_.isNumber(row_pre) && _.isNumber(row)) { selects.push({ row: row, row_pre: row_pre, r1: _r, r2: _r2 }); } } setSelectedLocation(selects); }, [context.luckysheet_select_save, context.visibledatarow]); useEffect(function () { containerRef.current.scrollTop = context.scrollTop; }, [context.scrollTop]); return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", { ref: containerRef, className: "leankylin-row-header", style: { width: context.rowHeaderWidth - 1.5, height: context.cellmainHeight }, onMouseMove: onMouseMove, onMouseDown: onMouseDown, onMouseLeave: onMouseLeave, onContextMenu: onContextMenu }, /*#__PURE__*/React.createElement("div", { className: "leankylin-rows-change-size", ref: rowChangeSizeRef, onMouseDown: onRowSizeHandleMouseDown, style: { top: hoverLocation.row - 3 + (hoverInFreeze ? context.scrollTop : 0), opacity: context.luckysheet_rows_change_size ? 1 : 0 } }), !context.luckysheet_rows_change_size && hoverLocation.row_index >= 0 ? ( /*#__PURE__*/React.createElement("div", { className: "leankylin-row-header-hover", style: _.assign({ top: hoverLocation.row_pre, height: hoverLocation.row - hoverLocation.row_pre - 1, display: "block" }, fixRowStyleOverflowInFreeze(context, hoverLocation.row_index, hoverLocation.row_index, (_refs$globalCache$fre2 = refs.globalCache.freezen) === null || _refs$globalCache$fre2 === void 0 ? void 0 : _refs$globalCache$fre2[context.currentSheetId])) })) : null, selectedLocation.map(function (_ref, i) { var _refs$globalCache$fre3; var row = _ref.row, row_pre = _ref.row_pre, r1 = _ref.r1, r2 = _ref.r2; return /*#__PURE__*/React.createElement("div", { className: "leankylin-row-header-selected", key: i, style: _.assign({ top: row_pre, height: row - row_pre - 1, display: "block", backgroundColor: "rgba(76, 76, 76, 0.1)" }, fixRowStyleOverflowInFreeze(context, r1, r2, (_refs$globalCache$fre3 = refs.globalCache.freezen) === null || _refs$globalCache$fre3 === void 0 ? void 0 : _refs$globalCache$fre3[context.currentSheetId])) }); }), /*#__PURE__*/React.createElement("div", { style: { height: context.rh_height, width: 1 }, id: "luckysheetrowHeader_0", className: "luckysheetsheetchange" })), /*#__PURE__*/React.createElement("div", { style: { top: 20, position: "absolute", pointerEvents: "none", width: 46 } }, /*#__PURE__*/React.createElement("div", { className: "leankylin-rows-freeze-handle ".concat(freezeCanDrag ? "" : "leankylin-rows-freeze-handle-disabled"), onMouseDown: onRowFreezeHandleMouseDown, style: { top: freezeHandleTop, pointerEvents: "all" } }, settings === null || settings === void 0 ? void 0 : (_settings$renderFreez = settings.renderFreezeRow) === null || _settings$renderFreez === void 0 ? void 0 : _settings$renderFreez.call(settings, freezeCanDrag)))); }; var ContentEditable = function ContentEditable(_ref) { var props = _extends({}, (_objectDestructuringEmpty(_ref), _ref)); var lastHtml = useRef(""); var root = useRef(null); var autoFocus = props.autoFocus, initialContent = props.initialContent, onChange = props.onChange; useEffect(function () { if (autoFocus) { var _root$current; (_root$current = root.current) === null || _root$current === void 0 ? void 0 : _root$current.focus(); } }, [autoFocus]); useEffect(function () { if (initialContent && root.current != null) { root.current.innerHTML = initialContent; } }, [initialContent]); var fnEmitChange = useCallback(function (__, isBlur) { var html; if (root.current != null) { html = root.current.innerHTML; } if (onChange && html !== lastHtml.current) { onChange(html || "", isBlur); } lastHtml.current = html || ""; }, [root, onChange]); var innerRef = props.innerRef, _onBlur = props.onBlur; var allowEdit = props.allowEdit; if (_.isNil(allowEdit)) allowEdit = true; return /*#__PURE__*/React.createElement("div", _objectSpread2(_objectSpread2({ onDoubleClick: function onDoubleClick(e) { return e.stopPropagation(); }, onClick: function onClick(e) { return e.stopPropagation(); } }, _.omit(props, "innerRef", "onChange", "html", "onBlur", "autoFocus", "allowEdit", "initialContent")), {}, { ref: function ref(e) { root.current = e; innerRef === null || innerRef === void 0 ? void 0 : innerRef(e); }, tabIndex: 0, onInput: fnEmitChange, onBlur: function onBlur(e) { fnEmitChange(null, true); _onBlur === null || _onBlur === void 0 ? void 0 : _onBlur(e); }, contentEditable: allowEdit })); }; var FormulaSearch = function FormulaSearch(props) { var _useContext = useContext(WorkbookContext), context = _useContext.context, refs = _useContext.refs, settings = _useContext.settings; if (_.isEmpty(context.functionCandidates)) return null; function moveCursorToEnd(editor) { var leftParen = editor.querySelector(".luckysheet-formula-text-lpar"); var rightParen = editor.querySelector(".luckysheet-formula-text-rpar"); var range = document.createRange(); var selection = window.getSelection(); range.setStartAfter(leftParen); range.setEndBefore(rightParen); selection.removeAllRanges(); selection.addRange(range); } if (settings.renderFormulaSearch) { return settings.renderFormulaSearch(context.functionCandidates, functionHTMLGenerate, refs.cellInput.current); } return /*#__PURE__*/React.createElement("div", _objectSpread2(_objectSpread2({}, props), {}, { id: "luckysheet-formula-search-c", className: "luckysheet-formula-search-c" }), context.functionCandidates.map(function (v) { return /*#__PURE__*/React.createElement("div", { onClick: function onClick() { var _refs$cellInput$curre; refs.cellInput.current.innerHTML = functionHTMLGenerate("=".concat(v.n, "()")); (_refs$cellInput$curre = refs.cellInput.current) === null || _refs$cellInput$curre === void 0 ? void 0 : _refs$cellInput$curre.focus(); moveCursorToEnd(refs.cellInput.current); }, key: v.n, "data-func": v.n, className: "luckysheet-formula-search-item" }, /*#__PURE__*/React.createElement("div", { className: "luckysheet-formula-search-func" }, v.n), /*#__PURE__*/React.createElement("div", { className: "luckysheet-formula-search-detail" }, v.d)); })); }; var FormulaHint = function FormulaHint(props) { var _useContext = useContext(WorkbookContext), context = _useContext.context, settings = _useContext.settings; var _locale = locale(context), formulaMore = _locale.formulaMore; if (!context.functionHint) return null; var fn = context.formulaCache.functionlistMap[context.functionHint]; if (!fn) return null; if (settings.renderFormulaHint) { return settings.renderFormulaHint(fn); } return /*#__PURE__*/React.createElement("div", _objectSpread2(_objectSpread2({}, props), {}, { id: "luckysheet-formula-help-c", className: "luckysheet-formula-help-c" }), /*#__PURE__*/React.createElement("div", { className: "luckysheet-formula-help-close", title: "\u5173\u95ED" }, /*#__PURE__*/React.createElement("i", { className: "fa fa-times", "aria-hidden": "true" })), /*#__PURE__*/React.createElement("div", { className: "luckysheet-formula-help-collapse", title: "\u6536\u8D77" }, /*#__PURE__*/React.createElement("i", { className: "fa fa-angle-up", "aria-hidden": "true" })), /*#__PURE__*/React.createElement("div", { className: "luckysheet-formula-help-title" }, /*#__PURE__*/React.createElement("div", { className: "luckysheet-formula-help-title-formula" }, /*#__PURE__*/React.createElement("span", { className: "luckysheet-arguments-help-function-name" }, fn.n), /*#__PURE__*/React.createElement("span", { className: "luckysheet-arguments-paren" }, "("), /*#__PURE__*/React.createElement("span", { className: "luckysheet-arguments-parameter-holder" }, fn.p.map(function (param, i) { var name = param.name; if (param.repeat === "y") { name += ", ..."; } if (param.require === "o") { name = "[".concat(name, "]"); } return /*#__PURE__*/React.createElement("span", { className: "luckysheet-arguments-help-parameter", dir: "auto", key: name }, name, i !== fn.p.length - 1 && ", "); })), /*#__PURE__*/React.createElement("span", { className: "luckysheet-arguments-paren" }, ")"))), /*#__PURE__*/React.createElement("div", { className: "luckysheet-formula-help-content" }, /*#__PURE__*/React.createElement("div", { className: "luckysheet-formula-help-content-example" }, /*#__PURE__*/React.createElement("div", { className: "luckysheet-arguments-help-section-title" }, formulaMore.helpExample), /*#__PURE__*/React.createElement("div", { className: "luckysheet-arguments-help-formula" }, /*#__PURE__*/React.createElement("span", { className: "luckysheet-arguments-help-function-name" }, fn.n), /*#__PURE__*/React.createElement("span", { className: "luckysheet-arguments-paren" }, "("), /*#__PURE__*/React.createElement("span", { className: "luckysheet-arguments-parameter-holder" }, fn.p.map(function (param, i) { return /*#__PURE__*/React.createElement("span", { key: param.name, className: "luckysheet-arguments-help-parameter", dir: "auto" }, param.example, i !== fn.p.length - 1 && ", "); })), /*#__PURE__*/React.createElement("span", { className: "luckysheet-arguments-paren" }, ")"))), /*#__PURE__*/React.createElement("div", { className: "luckysheet-formula-help-content-detail" }, /*#__PURE__*/React.createElement("div", { className: "luckysheet-arguments-help-section" }, /*#__PURE__*/React.createElement("div", { className: "luckysheet-arguments-help-section-title luckysheet-arguments-help-parameter-name" }, formulaMore.helpAbstract), /*#__PURE__*/React.createElement("span", { className: "luckysheet-arguments-help-parameter-content" }, fn.d))), /*#__PURE__*/React.createElement("div", { className: "luckysheet-formula-help-content-param" }, fn.p.map(function (param) { return /*#__PURE__*/React.createElement("div", { className: "luckysheet-arguments-help-section", key: param.name }, /*#__PURE__*/React.createElement("div", { className: "luckysheet-arguments-help-section-title" }, param.name, param.repeat === "y" && ( /*#__PURE__*/React.createElement("span", { className: "luckysheet-arguments-help-argument-info" }, "...-", formulaMore.allowRepeatText)), param.require === "o" && ( /*#__PURE__*/React.createElement("span", { className: "luckysheet-arguments-help-argument-info" }, "-[", formulaMore.allowOptionText, "]"))), /*#__PURE__*/React.createElement("span", { className: "luckysheet-arguments-help-parameter-content" }, param.detail)); }))), /*#__PURE__*/React.createElement("div", { className: "luckysheet-formula-help-foot" })); }; function usePrevious(value) { var ref = useRef(); useEffect(function () { ref.current = value; }, [value]); return ref.current; } var InputBox = function InputBox() { var _context$luckysheet_s, _context$rangeDialog; var _useContext = useContext(WorkbookContext), context = _useContext.context, setContext = _useContext.setContext, refs = _useContext.refs; var inputRef = useRef(null); var lastKeyDownEventRef = useRef(); var prevCellUpdate = usePrevious(context.luckysheetCellUpdate); var prevSheetId = usePrevious(context.currentSheetId); var _useState = useState(false), _useState2 = _slicedToArray(_useState, 2), isHidenRC = _useState2[0], setIsHidenRC = _useState2[1]; var firstSelection = (_context$luckysheet_s = context.luckysheet_select_save) === null || _context$luckysheet_s === void 0 ? void 0 : _context$luckysheet_s[0]; var row_index = firstSelection === null || firstSelection === void 0 ? void 0 : firstSelection.row_focus; var col_index = firstSelection === null || firstSelection === void 0 ? void 0 : firstSelection.column_focus; var preText = useRef(""); var inputBoxStyle = useMemo(function () { if (firstSelection && context.luckysheetCellUpdate.length > 0) { var flowdata = getFlowdata(context); if (!flowdata) return {}; return getStyleByCell(context, flowdata, firstSelection.row_focus, firstSelection.column_focus); } return {}; }, [context.luckysheetfile, context.currentSheetId, context.luckysheetCellUpdate, firstSelection]); useLayoutEffect(function () { if (!context.allowEdit) { setContext(function (ctx) { var flowdata = getFlowdata(ctx); if (!_.isNil(flowdata) && ctx.forceFormulaRef) { var value = getCellValue(row_index, col_index, flowdata, "f"); createRangeHightlight(ctx, value); } }); } if (firstSelection && context.luckysheetCellUpdate.length > 0) { var _flowdata$row_index; if (refs.globalCache.doNotUpdateCell) { delete refs.globalCache.doNotUpdateCell; return; } if (_.isEqual(prevCellUpdate, context.luckysheetCellUpdate) && prevSheetId === context.currentSheetId) { return; } var flowdata = getFlowdata(context); var cell = flowdata === null || flowdata === void 0 ? void 0 : (_flowdata$row_index = flowdata[row_index]) === null || _flowdata$row_index === void 0 ? void 0 : _flowdata$row_index[col_index]; var value = ""; if (cell && !refs.globalCache.overwriteCell) { if (isInlineStringCell(cell)) { value = getInlineStringHTML(row_index, col_index, flowdata); } else if (cell.f) { value = getCellValue(row_index, col_index, flowdata, "f"); setContext(function (ctx) { createRangeHightlight(ctx, value); }); } else { value = valueShowEs(row_index, col_index, flowdata); if (Number(cell.qp) === 1) { value = value ? "".concat(value) : value; } } } refs.globalCache.overwriteCell = false; if (!refs.globalCache.ignoreWriteCell) inputRef.current.innerHTML = escapeHTMLTag(escapeScriptTag(value)); refs.globalCache.ignoreWriteCell = false; if (!refs.globalCache.doNotFocus) { setTimeout(function () { moveToEnd(inputRef.current); }); } delete refs.globalCache.doNotFocus; } }, [context.luckysheetCellUpdate, context.luckysheetfile, context.currentSheetId, firstSelection]); useEffect(function () { if (_.isEmpty(context.luckysheetCellUpdate)) { if (inputRef.current) { inputRef.current.innerHTML = ""; } } }, [context.luckysheetCellUpdate]); useEffect(function () { setIsHidenRC(isShowHidenCR(context)); }, [context.luckysheet_select_save]); var onKeyDown = useCallback(function (e) { lastKeyDownEventRef.current = new KeyboardEvent(e.type, e.nativeEvent); preText.current = inputRef.current.innerText; if (e.key === "Escape" && context.luckysheetCellUpdate.length > 0) { setContext(function (draftCtx) { cancelNormalSelected(draftCtx); moveHighlightCell(draftCtx, "down", 0, "rangeOfSelect"); }); e.preventDefault(); } else if (e.key === "Enter" && context.luckysheetCellUpdate.length > 0) { if (e.altKey || e.metaKey) { document.execCommand("insertHTML", false, "\n "); document.execCommand("delete", false); e.stopPropagation(); } } else if (e.key === "Tab" && context.luckysheetCellUpdate.length > 0) { setContext(function (draftCtx) { updateCell(draftCtx, draftCtx.luckysheetCellUpdate[0], draftCtx.luckysheetCellUpdate[1], refs.cellInput.current); moveHighlightCell(draftCtx, "right", 1, "rangeOfSelect"); }); e.preventDefault(); e.stopPropagation(); } else if (e.key === "F4" && context.luckysheetCellUpdate.length > 0) { e.preventDefault(); } }, [context.luckysheetCellUpdate.length, refs.cellInput, setContext]); var onChange = useCallback(function (__, isBlur) { var e = lastKeyDownEventRef.current; if (!e) return; var kcode = e.keyCode; if (!kcode) return; if (!(kcode >= 112 && kcode <= 123 || kcode <= 46 || kcode === 144 || kcode === 108 || e.ctrlKey || e.altKey || e.shiftKey && (kcode === 37 || kcode === 38 || kcode === 39 || kcode === 40)) || kcode === 8 || kcode === 32 || kcode === 46 || e.ctrlKey && kcode === 86) { setContext(function (draftCtx) { if ((draftCtx.formulaCache.rangestart || draftCtx.formulaCache.rangedrag_column_start || draftCtx.formulaCache.rangedrag_row_start || israngeseleciton(draftCtx)) && isBlur) return; if (!isAllowEdit(draftCtx, draftCtx.luckysheet_select_save)) ; handleFormulaInput(draftCtx, refs.fxInput.current, refs.cellInput.current, kcode, preText.current); }); } }, [refs.cellInput, refs.fxInput, setContext]); var onPaste = useCallback(function (e) { if (_.isEmpty(context.luckysheetCellUpdate)) { e.preventDefault(); } }, [context.luckysheetCellUpdate]); var cfg = context.config || {}; var rowReadOnly = cfg.rowReadOnly || {}; var colReadOnly = cfg.colReadOnly || {}; var edit = !((colReadOnly[col_index] || rowReadOnly[row_index]) && context.allowEdit === true); return /*#__PURE__*/React.createElement("div", { className: "luckysheet-input-box", style: firstSelection && !((_context$rangeDialog = context.rangeDialog) === null || _context$rangeDialog === void 0 ? void 0 : _context$rangeDialog.show) ? { left: firstSelection.left, top: firstSelection.top, zIndex: _.isEmpty(context.luckysheetCellUpdate) ? -1 : 19, display: "block" } : { left: -10000, top: -10000, display: "block" }, onMouseDown: function onMouseDown(e) { return e.stopPropagation(); }, onMouseUp: function onMouseUp(e) { return e.stopPropagation(); } }, /*#__PURE__*/React.createElement("div", { className: "luckysheet-input-box-inner", style: firstSelection ? _objectSpread2({ minWidth: firstSelection.width, minHeight: firstSelection.height }, inputBoxStyle) : {} }, /*#__PURE__*/React.createElement(ContentEditable, { innerRef: function innerRef(e) { inputRef.current = e; refs.cellInput.current = e; }, className: "luckysheet-cell-input", id: "luckysheet-rich-text-editor", style: { transform: "scale(".concat(context.zoomRatio, ")"), transformOrigin: "left top", width: "".concat(100 / context.zoomRatio, "%"), height: "".concat(100 / context.zoomRatio, "%") }, "aria-autocomplete": "list", onChange: onChange, onKeyDown: onKeyDown, onPaste: onPaste, allowEdit: edit ? !isHidenRC : edit })), document.activeElement === inputRef.current && ( /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FormulaSearch, { style: { top: ((firstSelection === null || firstSelection === void 0 ? void 0 : firstSelection.height_move) || 0) + 4 } }), /*#__PURE__*/React.createElement(FormulaHint, { style: { top: ((firstSelection === null || firstSelection === void 0 ? void 0 : firstSelection.height_move) || 0) + 4 } })))); }; var ScrollBar = function ScrollBar(_ref) { var axis = _ref.axis; var _useContext = useContext(WorkbookContext), context = _useContext.context, refs = _useContext.refs, setContext = _useContext.setContext; useEffect(function () { if (axis === "x") { refs.scrollbarX.current.scrollLeft = context.scrollLeft; } else { refs.scrollbarY.current.scrollTop = context.scrollTop; } }, [axis === "x" ? context.scrollLeft : context.scrollTop]); var getHidden = function getHidden() { var _refs$scrollbarY$curr; if (axis === "x") { return refs.scrollbarX.current ? refs.scrollbarX.current.offsetWidth >= context.ch_width : false; } return refs.scrollbarY.current ? ((_refs$scrollbarY$curr = refs.scrollbarY.current) === null || _refs$scrollbarY$curr === void 0 ? void 0 : _refs$scrollbarY$curr.offsetHeight) >= context.rh_height : false; }; var hidden = getHidden(); return /*#__PURE__*/React.createElement("div", { ref: axis === "x" ? refs.scrollbarX : refs.scrollbarY, style: axis === "x" ? { left: context.rowHeaderWidth, width: "calc(100% - ".concat(context.rowHeaderWidth, "px)"), pointerEvents: hidden ? "none" : "auto" } : { height: "100%", pointerEvents: hidden ? "none" : "auto" }, className: "luckysheet-scrollbars luckysheet-scrollbar-ltr luckysheet-scrollbar-".concat(axis), onScroll: function onScroll() { if (axis === "x") { setContext(function (draftCtx) { draftCtx.scrollLeft = refs.scrollbarX.current.scrollLeft; }); } else { setContext(function (draftCtx) { draftCtx.scrollTop = refs.scrollbarY.current.scrollTop; }); } } }, /*#__PURE__*/React.createElement("div", { style: axis === "x" ? { width: context.ch_width, height: 10 } : { width: 10, height: context.rh_height } })); }; var Dialog = function Dialog(_ref) { var type = _ref.type, onOk = _ref.onOk, onCancel = _ref.onCancel, children = _ref.children, containerStyle = _ref.containerStyle, contentStyle = _ref.contentStyle; var _useContext = useContext(WorkbookContext), context = _useContext.context; var _locale = locale(context), button = _locale.button; return /*#__PURE__*/React.createElement("div", { className: "leankylin-dialog", style: containerStyle }, /*#__PURE__*/React.createElement("div", { className: "leankylin-modal-dialog-header" }, /*#__PURE__*/React.createElement("div", { className: "leankylin-modal-dialog-icon-close", onClick: onCancel }, /*#__PURE__*/React.createElement(SVGIcon, { name: "close", style: { padding: 7, cursor: "pointer" } }))), /*#__PURE__*/React.createElement("div", { className: "leankylin-dialog-box-content", style: contentStyle }, children), type != null && ( /*#__PURE__*/React.createElement("div", { className: "leankylin-dialog-box-button-container" }, type === "ok" ? ( /*#__PURE__*/React.createElement("div", { className: "leankylin-message-box-button button-default", onClick: onOk }, button.confirm)) : ( /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", { className: "leankylin-message-box-button button-primary", onClick: onOk }, button.confirm), /*#__PURE__*/React.createElement("div", { className: "leankylin-message-box-button button-default", onClick: onCancel }, button.cancel)))))); }; var MessageBox = function MessageBox(_ref) { var _ref$type = _ref.type, type = _ref$type === void 0 ? "yesno" : _ref$type, onOk = _ref.onOk, onCancel = _ref.onCancel, children = _ref.children; return /*#__PURE__*/React.createElement(Dialog, { type: type, onOk: onOk, onCancel: onCancel, contentStyle: { width: 300, paddingTop: 20, paddingBottom: 30, display: "flex", justifyContent: "center", alignItems: "center" } }, children); }; var ModalContext = /*#__PURE__*/React.createContext({ component: null, showModal: function showModal() {}, hideModal: function hideModal() {} }); var ModalProvider = function ModalProvider(_ref) { var children =