@fileverse-dev/fortune-react 1.0.2-mod-27 → 1.0.2-mod-29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1804,8 +1804,7 @@ var LinkEditCard = function LinkEditCard(_ref) {
1804
1804
  originType = _ref.originType,
1805
1805
  originAddress = _ref.originAddress,
1806
1806
  isEditing = _ref.isEditing,
1807
- position = _ref.position,
1808
- selectingCellRange = _ref.selectingCellRange;
1807
+ position = _ref.position;
1809
1808
  var _useContext = React.useContext(WorkbookContext),
1810
1809
  context = _useContext.context,
1811
1810
  setContext = _useContext.setContext,
@@ -1824,29 +1823,24 @@ var LinkEditCard = function LinkEditCard(_ref) {
1824
1823
  setLinkType = _useState6[1];
1825
1824
  var _locale = fortuneCore.locale(context),
1826
1825
  insertLink = _locale.insertLink,
1827
- linkTypeList = _locale.linkTypeList,
1828
- button = _locale.button;
1829
- var lastCell = React.useRef(fortuneCore.normalizeSelection(context, [{
1830
- row: [r, r],
1831
- column: [c, c]
1832
- }]));
1833
- var skipCellRangeSet = React.useRef(true);
1826
+ linkTypeList = _locale.linkTypeList;
1834
1827
  var isLinkAddressValid = fortuneCore.isLinkValid(context, linkType, linkAddress);
1835
- var tooltip = /*#__PURE__*/React__default['default'].createElement("div", {
1836
- className: "validation-input-tip"
1837
- }, isLinkAddressValid.tooltip);
1828
+ var isButtonDisabled = React.useMemo(function () {
1829
+ if (!linkText.trim()) return true;
1830
+ if (linkType === "webpage") {
1831
+ return !linkAddress.trim() || !isLinkAddressValid.isValid;
1832
+ }
1833
+ if (linkType === "sheet") {
1834
+ return !linkAddress.trim();
1835
+ }
1836
+ return false;
1837
+ }, [linkText, linkAddress, linkType, isLinkAddressValid.isValid]);
1838
1838
  var hideLinkCard = React.useCallback(function () {
1839
1839
  ___default['default'].set(refs.globalCache, "linkCard.mouseEnter", false);
1840
1840
  setContext(function (draftCtx) {
1841
1841
  draftCtx.linkCard = undefined;
1842
1842
  });
1843
1843
  }, [refs.globalCache, setContext]);
1844
- var setRangeModalVisible = React.useCallback(function (visible) {
1845
- return setContext(function (draftCtx) {
1846
- draftCtx.luckysheet_select_save = lastCell.current;
1847
- if (draftCtx.linkCard != null) draftCtx.linkCard.selectingCellRange = visible;
1848
- });
1849
- }, [setContext]);
1850
1844
  var containerEvent = React.useMemo(function () {
1851
1845
  return {
1852
1846
  onMouseEnter: function onMouseEnter() {
@@ -1872,19 +1866,6 @@ var LinkEditCard = function LinkEditCard(_ref) {
1872
1866
  }
1873
1867
  };
1874
1868
  }, [refs.globalCache]);
1875
- var renderBottomButton = React.useCallback(function (onOk, onCancel) {
1876
- return /*#__PURE__*/React__default['default'].createElement("div", {
1877
- className: "button-group"
1878
- }, /*#__PURE__*/React__default['default'].createElement("div", {
1879
- className: "button-basic button-default",
1880
- onClick: onCancel,
1881
- tabIndex: 0
1882
- }, button.cancel), /*#__PURE__*/React__default['default'].createElement("div", {
1883
- className: "button-basic button-primary",
1884
- onClick: onOk,
1885
- tabIndex: 0
1886
- }, button.confirm));
1887
- }, [button]);
1888
1869
  var renderToolbarButton = React.useCallback(function (iconId, onClick) {
1889
1870
  return /*#__PURE__*/React__default['default'].createElement("div", {
1890
1871
  className: "fortune-toolbar-button",
@@ -1903,23 +1884,6 @@ var LinkEditCard = function LinkEditCard(_ref) {
1903
1884
  setLinkText(originText);
1904
1885
  setLinkType(originType);
1905
1886
  }, [rc, originAddress, originText, originType]);
1906
- React.useLayoutEffect(function () {
1907
- if (selectingCellRange) {
1908
- skipCellRangeSet.current = true;
1909
- }
1910
- }, [selectingCellRange]);
1911
- React.useLayoutEffect(function () {
1912
- if (skipCellRangeSet.current) {
1913
- skipCellRangeSet.current = false;
1914
- return;
1915
- }
1916
- if (selectingCellRange) {
1917
- var len = ___default['default'].size(context.luckysheet_select_save);
1918
- if (len > 0) {
1919
- setLinkAddress(fortuneCore.getRangetxt(context, context.currentSheetId, context.luckysheet_select_save[len - 1], ""));
1920
- }
1921
- }
1922
- }, [context, selectingCellRange]);
1923
1887
  if (!isEditing) {
1924
1888
  return /*#__PURE__*/React__default['default'].createElement("div", _objectSpread2(_objectSpread2({}, containerEvent), {}, {
1925
1889
  onKeyDown: function onKeyDown(e) {
@@ -1960,69 +1924,16 @@ var LinkEditCard = function LinkEditCard(_ref) {
1960
1924
  });
1961
1925
  }));
1962
1926
  }
1963
- return selectingCellRange ? (/*#__PURE__*/React__default['default'].createElement("div", _objectSpread2(_objectSpread2({
1964
- className: "fortune-link-modify-modal range-selection-modal",
1965
- style: {
1966
- left: position.cellLeft,
1967
- top: position.cellBottom + 5
1968
- }
1969
- }, ___default['default'].omit(containerEvent, ["onMouseDown", "onMouseMove", "onMouseUp"])), {}, {
1970
- onMouseDown: function onMouseDown(e) {
1971
- var nativeEvent = e.nativeEvent;
1972
- fortuneCore.onRangeSelectionModalMoveStart(context, refs.globalCache, nativeEvent);
1973
- e.stopPropagation();
1974
- }
1975
- }), /*#__PURE__*/React__default['default'].createElement("div", {
1976
- className: "modal-icon-close",
1977
- onClick: function onClick() {
1978
- return setRangeModalVisible(false);
1979
- },
1980
- tabIndex: 0
1981
- }, /*#__PURE__*/React__default['default'].createElement(SVGIcon, {
1982
- name: "close"
1983
- })), /*#__PURE__*/React__default['default'].createElement("div", {
1984
- className: "modal-title"
1985
- }, insertLink.selectCellRange), /*#__PURE__*/React__default['default'].createElement("input", _objectSpread2(_objectSpread2({}, containerEvent), {}, {
1986
- className: "range-selection-input ".concat(!linkAddress || isLinkAddressValid.isValid ? "" : "error-input"),
1987
- placeholder: insertLink.cellRangePlaceholder,
1988
- onChange: function onChange(e) {
1989
- return setLinkAddress(e.target.value);
1990
- },
1991
- value: linkAddress
1992
- })), tooltip, /*#__PURE__*/React__default['default'].createElement("div", {
1993
- className: "modal-footer"
1994
- }, renderBottomButton(function () {
1995
- if (isLinkAddressValid.isValid) setRangeModalVisible(false);
1996
- }, function () {
1997
- setLinkAddress(originAddress);
1998
- setRangeModalVisible(false);
1999
- })))) : (/*#__PURE__*/React__default['default'].createElement("div", _objectSpread2({
2000
- className: "fortune-link-modify-modal",
1927
+ return /*#__PURE__*/React__default['default'].createElement("div", _objectSpread2({
1928
+ className: "fortune-link-card",
2001
1929
  style: {
2002
1930
  left: position.cellLeft + 20,
2003
1931
  top: position.cellBottom
2004
1932
  }
2005
- }, containerEvent), /*#__PURE__*/React__default['default'].createElement("div", {
2006
- className: "fortune-link-modify-line"
2007
- }, /*#__PURE__*/React__default['default'].createElement("div", {
2008
- className: "fortune-link-modify-title"
2009
- }, insertLink.linkText), /*#__PURE__*/React__default['default'].createElement("input", {
2010
- className: "fortune-link-modify-input",
2011
- spellCheck: "false",
2012
- autoFocus: true,
2013
- value: linkText,
2014
- onChange: function onChange(e) {
2015
- return setLinkText(e.target.value);
2016
- }
2017
- })), /*#__PURE__*/React__default['default'].createElement("div", {
2018
- className: "fortune-link-modify-line"
2019
- }, /*#__PURE__*/React__default['default'].createElement("div", {
2020
- className: "fortune-link-modify-title"
2021
- }, insertLink.linkType), /*#__PURE__*/React__default['default'].createElement("select", {
2022
- className: "fortune-link-modify-select",
1933
+ }, containerEvent), /*#__PURE__*/React__default['default'].createElement(ui.Select, {
2023
1934
  value: linkType,
2024
- onChange: function onChange(e) {
2025
- if (e.target.value === "sheet") {
1935
+ onValueChange: function onValueChange(value) {
1936
+ if (value === "sheet") {
2026
1937
  if (!linkText) {
2027
1938
  setLinkText(context.luckysheetfile[0].name);
2028
1939
  }
@@ -2030,65 +1941,79 @@ var LinkEditCard = function LinkEditCard(_ref) {
2030
1941
  } else {
2031
1942
  setLinkAddress("");
2032
1943
  }
2033
- if (e.target.value === "cellrange") setRangeModalVisible(true);
2034
- setLinkType(e.target.value);
2035
- }
2036
- }, linkTypeList.map(function (type) {
2037
- return /*#__PURE__*/React__default['default'].createElement("option", {
1944
+ setLinkType(value);
1945
+ }
1946
+ }, /*#__PURE__*/React__default['default'].createElement(ui.SelectTrigger, {
1947
+ className: "fortune-link-type-select"
1948
+ }, /*#__PURE__*/React__default['default'].createElement(ui.SelectValue, null)), /*#__PURE__*/React__default['default'].createElement(ui.SelectContent, {
1949
+ className: "fortune-link-type-dropdown"
1950
+ }, linkTypeList.filter(function (type) {
1951
+ return type.value !== "cellrange";
1952
+ }).map(function (type) {
1953
+ return /*#__PURE__*/React__default['default'].createElement(ui.SelectItem, {
2038
1954
  key: type.value,
2039
1955
  value: type.value
2040
1956
  }, type.text);
2041
1957
  }))), /*#__PURE__*/React__default['default'].createElement("div", {
2042
- className: "fortune-link-modify-line"
2043
- }, linkType === "webpage" && (/*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, null, /*#__PURE__*/React__default['default'].createElement("div", {
2044
- className: "fortune-link-modify-title"
2045
- }, insertLink.linkAddress), /*#__PURE__*/React__default['default'].createElement("input", {
2046
- className: "fortune-link-modify-input ".concat(!linkAddress || isLinkAddressValid.isValid ? "" : "error-input"),
2047
- spellCheck: "false",
2048
- value: linkAddress,
1958
+ className: "fortune-input-with-icon"
1959
+ }, /*#__PURE__*/React__default['default'].createElement("div", {
1960
+ className: "input-icon"
1961
+ }, /*#__PURE__*/React__default['default'].createElement(ui.LucideIcon, {
1962
+ name: "ALargeSmall"
1963
+ })), /*#__PURE__*/React__default['default'].createElement(ui.TextField, {
1964
+ placeholder: "Display text",
1965
+ value: linkText,
2049
1966
  onChange: function onChange(e) {
2050
- return setLinkAddress(e.target.value);
2051
- }
2052
- }), tooltip)), linkType === "cellrange" && (/*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, null, /*#__PURE__*/React__default['default'].createElement("div", {
2053
- className: "fortune-link-modify-title"
2054
- }, insertLink.linkCell), /*#__PURE__*/React__default['default'].createElement("input", {
2055
- className: "fortune-link-modify-input ".concat(!linkAddress || isLinkAddressValid.isValid ? "" : "error-input"),
2056
- spellCheck: "false",
1967
+ return setLinkText(e.target.value);
1968
+ },
1969
+ className: "fortune-link-input"
1970
+ })), linkType === "webpage" && (/*#__PURE__*/React__default['default'].createElement("div", {
1971
+ className: "fortune-input-with-icon"
1972
+ }, /*#__PURE__*/React__default['default'].createElement("div", {
1973
+ className: "input-icon"
1974
+ }, /*#__PURE__*/React__default['default'].createElement(SVGIcon, {
1975
+ name: "link"
1976
+ })), /*#__PURE__*/React__default['default'].createElement(ui.TextField, {
1977
+ placeholder: "Paste URL",
2057
1978
  value: linkAddress,
2058
1979
  onChange: function onChange(e) {
2059
1980
  return setLinkAddress(e.target.value);
2060
- }
2061
- }), /*#__PURE__*/React__default['default'].createElement("div", {
2062
- className: "fortune-link-modify-cell-selector",
2063
- onClick: function onClick() {
2064
- return setRangeModalVisible(true);
2065
1981
  },
2066
- tabIndex: 0
1982
+ className: "fortune-link-input ".concat(!linkAddress || isLinkAddressValid.isValid ? "" : "error-input")
1983
+ }))), linkType === "sheet" && (/*#__PURE__*/React__default['default'].createElement("div", {
1984
+ className: "fortune-input-with-icon"
1985
+ }, /*#__PURE__*/React__default['default'].createElement("div", {
1986
+ className: "input-icon"
2067
1987
  }, /*#__PURE__*/React__default['default'].createElement(SVGIcon, {
2068
- name: "border-all"
2069
- })), tooltip)), linkType === "sheet" && (/*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, null, /*#__PURE__*/React__default['default'].createElement("div", {
2070
- className: "fortune-link-modify-title"
2071
- }, insertLink.linkSheet), /*#__PURE__*/React__default['default'].createElement("select", {
2072
- className: "fortune-link-modify-select",
2073
- onChange: function onChange(e) {
2074
- if (!linkText) setLinkText(e.target.value);
2075
- setLinkAddress(e.target.value);
1988
+ name: "link"
1989
+ })), /*#__PURE__*/React__default['default'].createElement(ui.Select, {
1990
+ onValueChange: function onValueChange(value) {
1991
+ if (!linkText) setLinkText(value);
1992
+ setLinkAddress(value);
2076
1993
  },
2077
1994
  value: linkAddress
1995
+ }, /*#__PURE__*/React__default['default'].createElement(ui.SelectTrigger, {
1996
+ className: "fortune-sheet-select"
1997
+ }, /*#__PURE__*/React__default['default'].createElement(ui.SelectValue, {
1998
+ placeholder: "[Sheet name]"
1999
+ })), /*#__PURE__*/React__default['default'].createElement(ui.SelectContent, {
2000
+ className: "fortune-sheet-dropdown"
2078
2001
  }, context.luckysheetfile.map(function (sheet) {
2079
- return /*#__PURE__*/React__default['default'].createElement("option", {
2002
+ return /*#__PURE__*/React__default['default'].createElement(ui.SelectItem, {
2080
2003
  key: sheet.id,
2081
2004
  value: sheet.name
2082
2005
  }, sheet.name);
2083
- })), tooltip))), /*#__PURE__*/React__default['default'].createElement("div", {
2084
- className: "modal-footer"
2085
- }, renderBottomButton(function () {
2086
- if (!isLinkAddressValid.isValid) return;
2087
- ___default['default'].set(refs.globalCache, "linkCard.mouseEnter", false);
2088
- setContext(function (draftCtx) {
2089
- return fortuneCore.saveHyperlink(draftCtx, r, c, linkText, linkType, linkAddress);
2090
- });
2091
- }, hideLinkCard))));
2006
+ }))))), /*#__PURE__*/React__default['default'].createElement(ui.Button, {
2007
+ className: "fortune-insert-button",
2008
+ disabled: isButtonDisabled,
2009
+ onClick: function onClick() {
2010
+ if (isButtonDisabled) return;
2011
+ ___default['default'].set(refs.globalCache, "linkCard.mouseEnter", false);
2012
+ setContext(function (draftCtx) {
2013
+ return fortuneCore.saveHyperlink(draftCtx, r, c, linkText, linkType, linkAddress);
2014
+ });
2015
+ }
2016
+ }, "Insert link"));
2092
2017
  };
2093
2018
 
2094
2019
  var FilterOptions = function FilterOptions(_ref) {
@@ -4465,205 +4390,6 @@ var Option = function Option(_ref2) {
4465
4390
  }, children));
4466
4391
  };
4467
4392
 
4468
- var FormulaSearch$1 = function FormulaSearch(_ref) {
4469
- var _onCancel = _ref.onCancel;
4470
- var _useContext = React.useContext(WorkbookContext),
4471
- context = _useContext.context,
4472
- setContext = _useContext.setContext,
4473
- _useContext$refs = _useContext.refs,
4474
- cellInput = _useContext$refs.cellInput,
4475
- globalCache = _useContext$refs.globalCache;
4476
- var _useState = React.useState(20),
4477
- _useState2 = _slicedToArray(_useState, 2),
4478
- selectedType = _useState2[0],
4479
- setSelectedType = _useState2[1];
4480
- var _useState3 = React.useState(0),
4481
- _useState4 = _slicedToArray(_useState3, 2),
4482
- selectedFuncIndex = _useState4[0],
4483
- setSelectedFuncIndex = _useState4[1];
4484
- var _useState5 = React.useState(""),
4485
- _useState6 = _slicedToArray(_useState5, 2),
4486
- searchText = _useState6[0],
4487
- setSearchText = _useState6[1];
4488
- var _locale = fortuneCore.locale(context),
4489
- formulaMore = _locale.formulaMore,
4490
- functionlist = _locale.functionlist,
4491
- button = _locale.button;
4492
- var typeList = React.useMemo(function () {
4493
- return [{
4494
- t: 20,
4495
- n: formulaMore.Crypto
4496
- }, {
4497
- t: 0,
4498
- n: formulaMore.Math
4499
- }, {
4500
- t: 1,
4501
- n: formulaMore.Statistical
4502
- }, {
4503
- t: 2,
4504
- n: formulaMore.Lookup
4505
- }, {
4506
- t: 3,
4507
- n: formulaMore.luckysheet
4508
- }, {
4509
- t: 4,
4510
- n: formulaMore.dataMining
4511
- }, {
4512
- t: 5,
4513
- n: formulaMore.Database
4514
- }, {
4515
- t: 6,
4516
- n: formulaMore.Date
4517
- }, {
4518
- t: 7,
4519
- n: formulaMore.Filter
4520
- }, {
4521
- t: 8,
4522
- n: formulaMore.Financial
4523
- }, {
4524
- t: 9,
4525
- n: formulaMore.Engineering
4526
- }, {
4527
- t: 10,
4528
- n: formulaMore.Logical
4529
- }, {
4530
- t: 11,
4531
- n: formulaMore.Operator
4532
- }, {
4533
- t: 12,
4534
- n: formulaMore.Text
4535
- }, {
4536
- t: 13,
4537
- n: formulaMore.Parser
4538
- }, {
4539
- t: 14,
4540
- n: formulaMore.Array
4541
- }, {
4542
- t: -1,
4543
- n: formulaMore.other
4544
- }];
4545
- }, [formulaMore]);
4546
- var filteredFunctionList = React.useMemo(function () {
4547
- if (searchText) {
4548
- var list = [];
4549
- var text = ___default['default'].cloneDeep(searchText.toUpperCase());
4550
- for (var i = 0; i < functionlist.length; i += 1) {
4551
- if (/^[a-zA-Z]+$/.test(text)) {
4552
- if (functionlist[i].n.indexOf(text) !== -1) {
4553
- list.push(functionlist[i]);
4554
- }
4555
- } else if (functionlist[i].a.indexOf(text) !== -1) {
4556
- list.push(functionlist[i]);
4557
- }
4558
- }
4559
- return list;
4560
- }
4561
- return ___default['default'].filter(functionlist, function (v) {
4562
- return v.t === selectedType;
4563
- });
4564
- }, [functionlist, selectedType, searchText]);
4565
- var onConfirm = React.useCallback(function () {
4566
- var _context$luckysheet_s;
4567
- var last = (_context$luckysheet_s = context.luckysheet_select_save) === null || _context$luckysheet_s === void 0 ? void 0 : _context$luckysheet_s[context.luckysheet_select_save.length - 1];
4568
- var row_index = last === null || last === void 0 ? void 0 : last.row_focus;
4569
- var col_index = last === null || last === void 0 ? void 0 : last.column_focus;
4570
- if (!last) {
4571
- row_index = 0;
4572
- col_index = 0;
4573
- } else {
4574
- if (row_index == null) {
4575
- var _last$row = _slicedToArray(last.row, 1);
4576
- row_index = _last$row[0];
4577
- }
4578
- if (col_index == null) {
4579
- var _last$column = _slicedToArray(last.column, 1);
4580
- col_index = _last$column[0];
4581
- }
4582
- }
4583
- var formulaTxt = "<span dir=\"auto\" class=\"luckysheet-formula-text-color\">=</span><span dir=\"auto\" class=\"luckysheet-formula-text-color\">".concat(filteredFunctionList[selectedFuncIndex].n.toUpperCase(), "</span><span dir=\"auto\" class=\"luckysheet-formula-text-color\">(</span>");
4584
- setContext(function (ctx) {
4585
- if (cellInput.current != null) {
4586
- ctx.luckysheetCellUpdate = [row_index, col_index];
4587
- globalCache.doNotUpdateCell = true;
4588
- cellInput.current.innerHTML = formulaTxt;
4589
- var spans = cellInput.current.childNodes;
4590
- if (!___default['default'].isEmpty(spans)) {
4591
- fortuneCore.setCaretPosition(ctx, spans[spans.length - 1], 0, 1);
4592
- }
4593
- ctx.functionHint = filteredFunctionList[selectedFuncIndex].n.toUpperCase();
4594
- ctx.functionCandidates = [];
4595
- if (___default['default'].isEmpty(ctx.formulaCache.functionlistMap)) {
4596
- for (var i = 0; i < functionlist.length; i += 1) {
4597
- ctx.formulaCache.functionlistMap[functionlist[i].n] = functionlist[i];
4598
- }
4599
- }
4600
- _onCancel();
4601
- }
4602
- });
4603
- }, [cellInput, context.luckysheet_select_save, filteredFunctionList, globalCache, selectedFuncIndex, setContext, _onCancel, functionlist]);
4604
- var onCancel = React.useCallback(function () {
4605
- setContext(function (ctx) {
4606
- fortuneCore.cancelNormalSelected(ctx);
4607
- if (cellInput.current) {
4608
- cellInput.current.innerHTML = "";
4609
- }
4610
- });
4611
- _onCancel();
4612
- }, [_onCancel, cellInput, setContext]);
4613
- return /*#__PURE__*/React__default['default'].createElement("div", {
4614
- id: "luckysheet-search-formula"
4615
- }, /*#__PURE__*/React__default['default'].createElement("div", {
4616
- className: "inpbox"
4617
- }, /*#__PURE__*/React__default['default'].createElement("div", null, formulaMore.findFunctionTitle, "\uFF1A"), /*#__PURE__*/React__default['default'].createElement("input", {
4618
- className: "formulaInputFocus",
4619
- id: "searchFormulaListInput",
4620
- placeholder: formulaMore.tipInputFunctionName,
4621
- spellCheck: "false",
4622
- onChange: function onChange(e) {
4623
- return setSearchText(e.target.value);
4624
- }
4625
- })), /*#__PURE__*/React__default['default'].createElement("div", {
4626
- className: "selbox"
4627
- }, /*#__PURE__*/React__default['default'].createElement("span", null, formulaMore.selectCategory, "\uFF1A"), /*#__PURE__*/React__default['default'].createElement("select", {
4628
- id: "formulaTypeSelect",
4629
- onChange: function onChange(e) {
4630
- setSelectedType(parseInt(e.target.value, 10));
4631
- setSelectedFuncIndex(0);
4632
- }
4633
- }, typeList.map(function (v) {
4634
- return /*#__PURE__*/React__default['default'].createElement("option", {
4635
- key: v.t,
4636
- value: v.t
4637
- }, v.n);
4638
- }))), /*#__PURE__*/React__default['default'].createElement("div", {
4639
- className: "listbox",
4640
- style: {
4641
- height: 200
4642
- }
4643
- }, /*#__PURE__*/React__default['default'].createElement("div", null, formulaMore.selectFunctionTitle, "\uFF1A"), /*#__PURE__*/React__default['default'].createElement("div", {
4644
- className: "formulaList"
4645
- }, filteredFunctionList.map(function (v, index) {
4646
- return /*#__PURE__*/React__default['default'].createElement("div", {
4647
- className: "listBox".concat(index === selectedFuncIndex ? " on" : ""),
4648
- key: v.n,
4649
- onClick: function onClick() {
4650
- return setSelectedFuncIndex(index);
4651
- },
4652
- tabIndex: 0
4653
- }, /*#__PURE__*/React__default['default'].createElement("div", null, v.n), /*#__PURE__*/React__default['default'].createElement("div", null, v.a));
4654
- }))), /*#__PURE__*/React__default['default'].createElement("div", {
4655
- className: "fortune-dialog-box-button-container"
4656
- }, /*#__PURE__*/React__default['default'].createElement("div", {
4657
- className: "fortune-message-box-button button-primary",
4658
- onClick: onConfirm,
4659
- tabIndex: 0
4660
- }, button.confirm), /*#__PURE__*/React__default['default'].createElement("div", {
4661
- className: "fortune-message-box-button button-default",
4662
- onClick: onCancel,
4663
- tabIndex: 0
4664
- }, button.cancel)));
4665
- };
4666
-
4667
4393
  var SplitColumn = function SplitColumn() {
4668
4394
  var _useContext = React.useContext(WorkbookContext),
4669
4395
  context = _useContext.context,
@@ -6467,9 +6193,10 @@ var Toolbar = function Toolbar(_ref) {
6467
6193
  }), /*#__PURE__*/React__default['default'].createElement(MenuDivider, null), /*#__PURE__*/React__default['default'].createElement(Option, {
6468
6194
  key: "formula",
6469
6195
  onClick: function onClick() {
6470
- showDialog(/*#__PURE__*/React__default['default'].createElement(FormulaSearch$1, {
6471
- onCancel: hideDialog
6472
- }));
6196
+ var button = document.getElementById("function-button");
6197
+ if (button) {
6198
+ button.click();
6199
+ }
6473
6200
  setOpen(false);
6474
6201
  }
6475
6202
  }, "".concat(formula.find, "...")));
@@ -10298,7 +10025,7 @@ var MoreItemsContaier = function MoreItemsContaier(_ref) {
10298
10025
  }, children);
10299
10026
  };
10300
10027
 
10301
- function generateAPIs(context, setContext, handleUndo, handleRedo, settings, cellInput, scrollbarX, scrollbarY) {
10028
+ function generateAPIs(context, setContext, handleUndo, handleRedo, settings, cellInput, scrollbarX, scrollbarY, globalCache) {
10302
10029
  return {
10303
10030
  applyOp: function applyOp(ops) {
10304
10031
  setContext(function (ctx_) {
@@ -10599,6 +10326,50 @@ function generateAPIs(context, setContext, handleUndo, handleRedo, settings, cel
10599
10326
  },
10600
10327
  celldataToData: function celldataToData(celldata, rowCount, colCount) {
10601
10328
  return fortuneCore.api.celldataToData(celldata, rowCount, colCount);
10329
+ },
10330
+ insertFunction: function insertFunction(selectedFuncIndex, filteredFunctionList, callback) {
10331
+ var _context$luckysheet_s2;
10332
+ var last = (_context$luckysheet_s2 = context.luckysheet_select_save) === null || _context$luckysheet_s2 === void 0 ? void 0 : _context$luckysheet_s2[context.luckysheet_select_save.length - 1];
10333
+ var row_index = last === null || last === void 0 ? void 0 : last.row_focus;
10334
+ var col_index = last === null || last === void 0 ? void 0 : last.column_focus;
10335
+ if (!last) {
10336
+ row_index = 0;
10337
+ col_index = 0;
10338
+ } else {
10339
+ if (row_index == null) {
10340
+ var _last$row2 = _slicedToArray(last.row, 1);
10341
+ row_index = _last$row2[0];
10342
+ }
10343
+ if (col_index == null) {
10344
+ var _last$column2 = _slicedToArray(last.column, 1);
10345
+ col_index = _last$column2[0];
10346
+ }
10347
+ }
10348
+ var formulaTxt = "<span dir=\"auto\" class=\"luckysheet-formula-text-color\">=</span><span dir=\"auto\" class=\"luckysheet-formula-text-color\">".concat(filteredFunctionList[selectedFuncIndex].n.toUpperCase(), "</span><span dir=\"auto\" class=\"luckysheet-formula-text-color\">(</span>");
10349
+ var _locale2 = fortuneCore.locale(context),
10350
+ functionlist = _locale2.functionlist;
10351
+ setContext(function (ctx) {
10352
+ if (cellInput != null && globalCache != null) {
10353
+ ctx.luckysheetCellUpdate = [row_index, col_index];
10354
+ globalCache.doNotUpdateCell = true;
10355
+ cellInput.innerHTML = formulaTxt;
10356
+ var spans = cellInput.childNodes;
10357
+ if (!___default['default'].isEmpty(spans)) {
10358
+ fortuneCore.setCaretPosition(ctx, spans[spans.length - 1], 0, 1);
10359
+ }
10360
+ ctx.functionHint = filteredFunctionList[selectedFuncIndex].n.toUpperCase();
10361
+ ctx.functionCandidates = [];
10362
+ if (___default['default'].isEmpty(ctx.formulaCache.functionlistMap)) {
10363
+ for (var i = 0; i < functionlist.length; i += 1) {
10364
+ ctx.formulaCache.functionlistMap[functionlist[i].n] = functionlist[i];
10365
+ }
10366
+ }
10367
+ callback === null || callback === void 0 ? void 0 : callback();
10368
+ }
10369
+ });
10370
+ },
10371
+ getLocaleContext: function getLocaleContext() {
10372
+ return fortuneCore.locale(context);
10602
10373
  }
10603
10374
  };
10604
10375
  }
@@ -11806,8 +11577,8 @@ var Workbook = /*#__PURE__*/React__default['default'].forwardRef(function (_ref,
11806
11577
  };
11807
11578
  }, [onPaste]);
11808
11579
  React.useImperativeHandle(ref, function () {
11809
- return generateAPIs(context, setContextWithProduce, handleUndo, handleRedo, mergedSettings, cellInput.current, scrollbarX.current, scrollbarY.current);
11810
- }, [context, setContextWithProduce, handleUndo, handleRedo, mergedSettings]);
11580
+ return generateAPIs(context, setContextWithProduce, handleUndo, handleRedo, mergedSettings, cellInput.current, scrollbarX.current, scrollbarY.current, globalCache.current);
11581
+ }, [context, setContextWithProduce, handleUndo, handleRedo, mergedSettings, globalCache]);
11811
11582
  var i = fortuneCore.getSheetIndex(context, context.currentSheetId);
11812
11583
  if (i == null) {
11813
11584
  return null;