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

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
@@ -4465,205 +4465,6 @@ var Option = function Option(_ref2) {
4465
4465
  }, children));
4466
4466
  };
4467
4467
 
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
4468
  var SplitColumn = function SplitColumn() {
4668
4469
  var _useContext = React.useContext(WorkbookContext),
4669
4470
  context = _useContext.context,
@@ -6467,9 +6268,10 @@ var Toolbar = function Toolbar(_ref) {
6467
6268
  }), /*#__PURE__*/React__default['default'].createElement(MenuDivider, null), /*#__PURE__*/React__default['default'].createElement(Option, {
6468
6269
  key: "formula",
6469
6270
  onClick: function onClick() {
6470
- showDialog(/*#__PURE__*/React__default['default'].createElement(FormulaSearch$1, {
6471
- onCancel: hideDialog
6472
- }));
6271
+ var button = document.getElementById("function-button");
6272
+ if (button) {
6273
+ button.click();
6274
+ }
6473
6275
  setOpen(false);
6474
6276
  }
6475
6277
  }, "".concat(formula.find, "...")));
@@ -10298,7 +10100,7 @@ var MoreItemsContaier = function MoreItemsContaier(_ref) {
10298
10100
  }, children);
10299
10101
  };
10300
10102
 
10301
- function generateAPIs(context, setContext, handleUndo, handleRedo, settings, cellInput, scrollbarX, scrollbarY) {
10103
+ function generateAPIs(context, setContext, handleUndo, handleRedo, settings, cellInput, scrollbarX, scrollbarY, globalCache) {
10302
10104
  return {
10303
10105
  applyOp: function applyOp(ops) {
10304
10106
  setContext(function (ctx_) {
@@ -10599,6 +10401,50 @@ function generateAPIs(context, setContext, handleUndo, handleRedo, settings, cel
10599
10401
  },
10600
10402
  celldataToData: function celldataToData(celldata, rowCount, colCount) {
10601
10403
  return fortuneCore.api.celldataToData(celldata, rowCount, colCount);
10404
+ },
10405
+ insertFunction: function insertFunction(selectedFuncIndex, filteredFunctionList, callback) {
10406
+ var _context$luckysheet_s2;
10407
+ 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];
10408
+ var row_index = last === null || last === void 0 ? void 0 : last.row_focus;
10409
+ var col_index = last === null || last === void 0 ? void 0 : last.column_focus;
10410
+ if (!last) {
10411
+ row_index = 0;
10412
+ col_index = 0;
10413
+ } else {
10414
+ if (row_index == null) {
10415
+ var _last$row2 = _slicedToArray(last.row, 1);
10416
+ row_index = _last$row2[0];
10417
+ }
10418
+ if (col_index == null) {
10419
+ var _last$column2 = _slicedToArray(last.column, 1);
10420
+ col_index = _last$column2[0];
10421
+ }
10422
+ }
10423
+ 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>");
10424
+ var _locale2 = fortuneCore.locale(context),
10425
+ functionlist = _locale2.functionlist;
10426
+ setContext(function (ctx) {
10427
+ if (cellInput != null && globalCache != null) {
10428
+ ctx.luckysheetCellUpdate = [row_index, col_index];
10429
+ globalCache.doNotUpdateCell = true;
10430
+ cellInput.innerHTML = formulaTxt;
10431
+ var spans = cellInput.childNodes;
10432
+ if (!___default['default'].isEmpty(spans)) {
10433
+ fortuneCore.setCaretPosition(ctx, spans[spans.length - 1], 0, 1);
10434
+ }
10435
+ ctx.functionHint = filteredFunctionList[selectedFuncIndex].n.toUpperCase();
10436
+ ctx.functionCandidates = [];
10437
+ if (___default['default'].isEmpty(ctx.formulaCache.functionlistMap)) {
10438
+ for (var i = 0; i < functionlist.length; i += 1) {
10439
+ ctx.formulaCache.functionlistMap[functionlist[i].n] = functionlist[i];
10440
+ }
10441
+ }
10442
+ callback === null || callback === void 0 ? void 0 : callback();
10443
+ }
10444
+ });
10445
+ },
10446
+ getLocaleContext: function getLocaleContext() {
10447
+ return fortuneCore.locale(context);
10602
10448
  }
10603
10449
  };
10604
10450
  }
@@ -11806,8 +11652,8 @@ var Workbook = /*#__PURE__*/React__default['default'].forwardRef(function (_ref,
11806
11652
  };
11807
11653
  }, [onPaste]);
11808
11654
  React.useImperativeHandle(ref, function () {
11809
- return generateAPIs(context, setContextWithProduce, handleUndo, handleRedo, mergedSettings, cellInput.current, scrollbarX.current, scrollbarY.current);
11810
- }, [context, setContextWithProduce, handleUndo, handleRedo, mergedSettings]);
11655
+ return generateAPIs(context, setContextWithProduce, handleUndo, handleRedo, mergedSettings, cellInput.current, scrollbarX.current, scrollbarY.current, globalCache.current);
11656
+ }, [context, setContextWithProduce, handleUndo, handleRedo, mergedSettings, globalCache]);
11811
11657
  var i = fortuneCore.getSheetIndex(context, context.currentSheetId);
11812
11658
  if (i == null) {
11813
11659
  return null;
@@ -2463,72 +2463,6 @@ input[type="number"].condition-rules-project-input {
2463
2463
  cursor: pointer;
2464
2464
  }
2465
2465
 
2466
- /*函数公式查找样式*/
2467
- #luckysheet-search-formula {
2468
- font-size: 12px;
2469
- }
2470
-
2471
- #luckysheet-search-formula .inpbox {
2472
- margin-bottom: 5px;
2473
- }
2474
-
2475
- #luckysheet-search-formula .inpbox div {
2476
- display: block;
2477
- margin-bottom: 5px;
2478
- }
2479
-
2480
- #luckysheet-search-formula .inpbox input {
2481
- width: 100%;
2482
- height: 24px;
2483
- line-height: 24px;
2484
- border: 1px solid #d4d4d4;
2485
- padding: 0 10px;
2486
- box-sizing: border-box;
2487
- font-size: 12px;
2488
- }
2489
-
2490
- #luckysheet-search-formula .selbox {
2491
- margin-bottom: 5px;
2492
- }
2493
-
2494
- #luckysheet-search-formula .selbox select {
2495
- width: 50%;
2496
- height: 24px;
2497
- line-height: 24px;
2498
- border: 1px solid #d4d4d4;
2499
- box-sizing: border-box;
2500
- font-size: 12px;
2501
- }
2502
-
2503
- #luckysheet-search-formula .listbox label {
2504
- display: block;
2505
- margin-bottom: 5px;
2506
- }
2507
-
2508
- #formulaTypeList {
2509
- width: 300px;
2510
- height: 170px;
2511
- border: 1px solid #d4d4d4;
2512
- overflow-y: scroll;
2513
- }
2514
-
2515
- .formulaList {
2516
- width: 300px;
2517
- height: 170px;
2518
- border: 1px solid #d4d4d4;
2519
- overflow-y: scroll;
2520
- }
2521
-
2522
- .listBox {
2523
- padding: 5px;
2524
- border-bottom: 1px solid #d4d4d4;
2525
- }
2526
-
2527
- .listBox.on {
2528
- background-color: #8c89fe;
2529
- color: #fff;
2530
- }
2531
-
2532
2466
  #fortune-split-column {
2533
2467
  /* position: absolute;
2534
2468
  padding: 30px 42px;