UNPKG

@light-sheet/react

Version:

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

177 lines (175 loc) 7.89 kB
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } 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."); } 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 _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 _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } /* eslint-disable jsx-a11y/control-has-associated-label */ import { getDataArr, getFlowdata, getRegStr, locale, updateMoreCell } from "@light-sheet/core"; import _ from "lodash"; import React, { useContext, useEffect, useState, useCallback, useRef } from "react"; import WorkbookContext from "../../context"; import { useDialog } from "../../hooks/useDialog"; import "./index.css"; export var SplitColumn = function SplitColumn() { var _useContext = useContext(WorkbookContext), context = _useContext.context, setContext = _useContext.setContext; var _locale = locale(context), splitText = _locale.splitText, button = _locale.button; var _useState = useState(""), _useState2 = _slicedToArray(_useState, 2), splitOperate = _useState2[0], setSplitOperate = _useState2[1]; var _useState3 = useState(false), _useState4 = _slicedToArray(_useState3, 2), otherFlag = _useState4[0], setOtherFlag = _useState4[1]; var _useState5 = useState([]), _useState6 = _slicedToArray(_useState5, 2), tableData = _useState6[0], setTableData = _useState6[1]; var splitSymbols = useRef(null); var _useDialog = useDialog(), showDialog = _useDialog.showDialog, hideDialog = _useDialog.hideDialog; // 确定按钮 var certainBtn = useCallback(function () { hideDialog(); var dataArr = getDataArr(splitOperate, context); var r = context.luckysheet_select_save[0].row[0]; var c = context.luckysheet_select_save[0].column[0]; if (dataArr[0].length === 1) { return; } var dataCover = false; var data = getFlowdata(context); for (var i = 0; i < dataArr.length; i += 1) { for (var j = 1; j < dataArr[0].length; j += 1) { var cell = data[r + i][c + j]; if (!_.isNull(cell) && !_.isNull(cell.v)) { dataCover = true; break; } } } if (dataCover) { showDialog(splitText.splitConfirmToExe, "yesno", function () { hideDialog(); setContext(function (ctx) { updateMoreCell(r, c, dataArr, ctx); }); }); } else { setContext(function (ctx) { updateMoreCell(r, c, dataArr, ctx); }); } }, [context, hideDialog, setContext, showDialog, splitOperate, splitText.splitConfirmToExe]); // 数据预览 useEffect(function () { setTableData(function (table) { table = getDataArr(splitOperate, context); return table; }); }, [context, splitOperate]); return /*#__PURE__*/React.createElement("div", { id: "fortune-split-column" }, /*#__PURE__*/React.createElement("div", { className: "title" }, splitText.splitTextTitle), /*#__PURE__*/React.createElement("div", { className: "splitDelimiters" }, splitText.splitDelimiters), /*#__PURE__*/React.createElement("div", { className: "splitSymbols", ref: splitSymbols }, splitText.splitSymbols.map(function (o) { return /*#__PURE__*/React.createElement("div", { key: o.value, className: "splitSymbol" }, /*#__PURE__*/React.createElement("input", { id: o.value, name: o.value, type: "checkbox", onClick: function onClick() { return setSplitOperate(function (regStr) { var _splitSymbols$current; return getRegStr(regStr, (_splitSymbols$current = splitSymbols.current) === null || _splitSymbols$current === void 0 ? void 0 : _splitSymbols$current.childNodes); }); }, tabIndex: 0 }), /*#__PURE__*/React.createElement("label", { htmlFor: o.value }, o.name)); }), /*#__PURE__*/React.createElement("div", { className: "splitSymbol" }, /*#__PURE__*/React.createElement("input", { id: "other", name: "other", type: "checkbox", onClick: function onClick() { setOtherFlag(!otherFlag); setSplitOperate(function (regStr) { var _splitSymbols$current2; return getRegStr(regStr, (_splitSymbols$current2 = splitSymbols.current) === null || _splitSymbols$current2 === void 0 ? void 0 : _splitSymbols$current2.childNodes); }); }, tabIndex: 0 }), /*#__PURE__*/React.createElement("label", { htmlFor: "other" }, splitText.splitOther), /*#__PURE__*/React.createElement("input", { id: "otherValue", name: "otherValue", type: "text", onBlur: function onBlur() { if (otherFlag) { setSplitOperate(function (regStr) { var _splitSymbols$current3; return getRegStr(regStr, (_splitSymbols$current3 = splitSymbols.current) === null || _splitSymbols$current3 === void 0 ? void 0 : _splitSymbols$current3.childNodes); }); } } })), /*#__PURE__*/React.createElement("div", { className: "splitSymbol splitSimple" }, /*#__PURE__*/React.createElement("input", { id: "splitsimple", name: "splitsimple", type: "checkbox", onClick: function onClick() { setSplitOperate(function (regStr) { var _splitSymbols$current4; return getRegStr(regStr, (_splitSymbols$current4 = splitSymbols.current) === null || _splitSymbols$current4 === void 0 ? void 0 : _splitSymbols$current4.childNodes); }); }, tabIndex: 0 }), /*#__PURE__*/React.createElement("label", { htmlFor: "splitsimple" }, splitText.splitContinueSymbol))), /*#__PURE__*/React.createElement("div", { className: "splitDataPreview" }, splitText.splitDataPreview), /*#__PURE__*/React.createElement("div", { className: "splitColumnData" }, /*#__PURE__*/React.createElement("table", null, /*#__PURE__*/React.createElement("tbody", null, tableData.map(function (o, index) { if (o.length >= 1) { return /*#__PURE__*/React.createElement("tr", { key: index }, o.map(function (o1) { return /*#__PURE__*/React.createElement("td", { key: o + o1 }, o1); })); } return /*#__PURE__*/React.createElement("tr", null, /*#__PURE__*/React.createElement("td", null)); })))), /*#__PURE__*/React.createElement("div", { className: "button-basic button-primary", onClick: function onClick() { certainBtn(); }, tabIndex: 0 }, button.confirm), /*#__PURE__*/React.createElement("div", { className: "button-basic button-close", onClick: function onClick() { hideDialog(); }, tabIndex: 0 }, button.cancel)); };