@fileverse-dev/fortune-core 1.2.97 → 1.2.98

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.
@@ -539,127 +539,211 @@ export function cancelNormalSelected(ctx) {
539
539
  }
540
540
  export function updateCell(ctx, r, c, $input, value, canvas) {
541
541
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v;
542
- if (ctx.allowEdit === false || ctx.isFlvReadOnly) return;
543
- var inputText = $input === null || $input === void 0 ? void 0 : $input.innerText;
544
- if (inputText === null || inputText === void 0 ? void 0 : inputText.startsWith("=")) {
545
- inputText = inputText === null || inputText === void 0 ? void 0 : inputText.replace(/[\r\n]/g, "");
546
- }
547
- var inputHtml = $input === null || $input === void 0 ? void 0 : $input.innerHTML;
548
- var flowdata = getFlowdata(ctx);
549
- if (!flowdata) return;
550
- var index = getSheetIndex(ctx, ctx.currentSheetId);
551
- var dataVerification = ctx.luckysheetfile[index].dataVerification;
552
- var sheetFile = ctx.luckysheetfile[index];
553
- var getUrlFromText = function getUrlFromText(text) {
554
- var t = (text !== null && text !== void 0 ? text : "").trim();
555
- if (!t || /[\s\r\n]/.test(t)) return null;
556
- if (!/^(https?:\/\/|www\.)\S+$/i.test(t)) return null;
557
- return t.startsWith("http") ? t : "https://".concat(t);
558
- };
559
- if (!_.isNil(dataVerification)) {
560
- var dvItem = dataVerification["".concat(r, "_").concat(c)];
561
- if (!_.isNil(dvItem) && dvItem.prohibitInput && !validateCellData(ctx, dvItem, inputText)) {
562
- var failureText = getFailureText(ctx, dvItem);
563
- cancelNormalSelected(ctx);
564
- ctx.warnDialog = failureText;
565
- return;
566
- }
567
- }
568
- var curv = flowdata[r][c];
569
- var oldValue = _.cloneDeep(curv);
570
- var isPrevInline = isInlineStringCell(curv);
571
- var isCurInline = (inputText === null || inputText === void 0 ? void 0 : inputText.slice(0, 1)) !== "=" && (inputHtml === null || inputHtml === void 0 ? void 0 : inputHtml.substring(0, 5)) === "<span";
572
- var isCopyVal = false;
573
- if (!isCurInline && inputText && inputText.length > 0) {
574
- var splitArr = inputText.replace(/\r\n/g, "_x000D_").replace(/&#13;&#10;/g, "_x000D_").replace(/\r/g, "_x000D_").replace(/\n/g, "_x000D_").split("_x000D_");
575
- if (splitArr.length > 1 && inputHtml !== "<br>") {
576
- isCopyVal = true;
577
- isCurInline = true;
578
- inputText = splitArr.join("\r\n");
579
- }
580
- }
581
- if ((curv === null || curv === void 0 ? void 0 : curv.ct) && !value && !isCurInline && isPrevInline) {
582
- delete curv.ct.s;
583
- curv.ct.t = "g";
584
- curv.ct.fa = "General";
585
- curv.tb = "1";
586
- value = "";
587
- } else if (isCurInline) {
588
- if (!_.isPlainObject(curv)) {
589
- curv = {};
590
- }
591
- curv || (curv = {});
592
- var fontSize = curv.fs || 10;
593
- if (!curv.ct) {
594
- curv.ct = {};
595
- curv.ct.fa = "General";
596
- curv.tb = "1";
597
- }
598
- curv.ct.t = "inlineStr";
599
- curv.ct.s = convertSpanToShareString($input.querySelectorAll("span"), curv);
600
- delete curv.fs;
601
- delete curv.f;
602
- delete curv.v;
603
- delete curv.m;
604
- curv.fs = fontSize;
605
- if (isCopyVal) {
606
- curv.ct.s = [{
607
- v: inputText,
608
- fs: fontSize
609
- }];
542
+ try {
543
+ if (ctx.allowEdit === false || ctx.isFlvReadOnly) return;
544
+ var inputText = $input === null || $input === void 0 ? void 0 : $input.innerText;
545
+ if (inputText === null || inputText === void 0 ? void 0 : inputText.startsWith("=")) {
546
+ inputText = inputText === null || inputText === void 0 ? void 0 : inputText.replace(/[\r\n]/g, "");
610
547
  }
611
- }
612
- value = value || inputText;
613
- var shouldClearError = (oldValue === null || oldValue === void 0 ? void 0 : oldValue.f) ? oldValue.f !== value : (oldValue === null || oldValue === void 0 ? void 0 : oldValue.v) !== value;
614
- if (shouldClearError) {
615
- clearCellError(ctx, r, c);
616
- }
617
- if (((_b = (_a = ctx.hooks).beforeUpdateCell) === null || _b === void 0 ? void 0 : _b.call(_a, r, c, value)) === false) {
618
- cancelNormalSelected(ctx);
619
- return;
620
- }
621
- if (!isCurInline) {
622
- if (isRealNull(value) && !isPrevInline) {
623
- if (!curv || isRealNull(curv.v) && !curv.spl && !curv.f) {
624
- cancelNormalSelected(ctx);
625
- return;
626
- }
627
- } else if (curv && curv.qp !== 1) {
628
- if (_.isPlainObject(curv) && (value === curv.f || value === curv.v || value === curv.m)) {
548
+ var inputHtml = $input === null || $input === void 0 ? void 0 : $input.innerHTML;
549
+ var flowdata = getFlowdata(ctx);
550
+ if (!flowdata) return;
551
+ var index = getSheetIndex(ctx, ctx.currentSheetId);
552
+ var dataVerification = ctx.luckysheetfile[index].dataVerification;
553
+ var sheetFile = ctx.luckysheetfile[index];
554
+ var getUrlFromText = function getUrlFromText(text) {
555
+ var t = (text !== null && text !== void 0 ? text : "").trim();
556
+ if (!t || /[\s\r\n]/.test(t)) return null;
557
+ if (!/^(https?:\/\/|www\.)\S+$/i.test(t)) return null;
558
+ return t.startsWith("http") ? t : "https://".concat(t);
559
+ };
560
+ if (!_.isNil(dataVerification)) {
561
+ var dvItem = dataVerification["".concat(r, "_").concat(c)];
562
+ if (!_.isNil(dvItem) && dvItem.prohibitInput && !validateCellData(ctx, dvItem, inputText)) {
563
+ var failureText = getFailureText(ctx, dvItem);
629
564
  cancelNormalSelected(ctx);
565
+ ctx.warnDialog = failureText;
630
566
  return;
631
567
  }
632
- if (value === curv) {
633
- cancelNormalSelected(ctx);
634
- return;
568
+ }
569
+ var curv_1 = flowdata[r][c];
570
+ var oldValue_1 = _.cloneDeep(curv_1);
571
+ var isPrevInline = isInlineStringCell(curv_1);
572
+ var isCurInline = (inputText === null || inputText === void 0 ? void 0 : inputText.slice(0, 1)) !== "=" && (inputHtml === null || inputHtml === void 0 ? void 0 : inputHtml.substring(0, 5)) === "<span";
573
+ var isCopyVal = false;
574
+ if (!isCurInline && inputText && inputText.length > 0) {
575
+ var splitArr = inputText.replace(/\r\n/g, "_x000D_").replace(/&#13;&#10;/g, "_x000D_").replace(/\r/g, "_x000D_").replace(/\n/g, "_x000D_").split("_x000D_");
576
+ if (splitArr.length > 1 && inputHtml !== "<br>") {
577
+ isCopyVal = true;
578
+ isCurInline = true;
579
+ inputText = splitArr.join("\r\n");
635
580
  }
636
581
  }
637
- if (_.isString(value) && value.slice(0, 1) === "=" && value.length > 1) {} else if (_.isPlainObject(curv) && curv && curv.ct && curv.ct.fa && curv.ct.fa !== "@" && !isRealNull(value)) {
638
- delete curv.m;
639
- if (curv.f) {
640
- delete curv.f;
641
- delete curv.spl;
582
+ if ((curv_1 === null || curv_1 === void 0 ? void 0 : curv_1.ct) && !value && !isCurInline && isPrevInline) {
583
+ delete curv_1.ct.s;
584
+ curv_1.ct.t = "g";
585
+ curv_1.ct.fa = "General";
586
+ curv_1.tb = "1";
587
+ value = "";
588
+ } else if (isCurInline) {
589
+ if (!_.isPlainObject(curv_1)) {
590
+ curv_1 = {};
591
+ }
592
+ curv_1 || (curv_1 = {});
593
+ var fontSize = curv_1.fs || 10;
594
+ if (!curv_1.ct) {
595
+ curv_1.ct = {};
596
+ curv_1.ct.fa = "General";
597
+ curv_1.tb = "1";
598
+ }
599
+ curv_1.ct.t = "inlineStr";
600
+ curv_1.ct.s = convertSpanToShareString($input.querySelectorAll("span"), curv_1);
601
+ delete curv_1.fs;
602
+ delete curv_1.f;
603
+ delete curv_1.v;
604
+ delete curv_1.m;
605
+ curv_1.fs = fontSize;
606
+ if (isCopyVal) {
607
+ curv_1.ct.s = [{
608
+ v: inputText,
609
+ fs: fontSize
610
+ }];
642
611
  }
643
612
  }
644
- }
645
- var isRunExecFunction = true;
646
- var d = flowdata;
647
- var dynamicArrayItem = null;
648
- if (_.isPlainObject(curv)) {
613
+ value = value || inputText;
614
+ var shouldClearError = (oldValue_1 === null || oldValue_1 === void 0 ? void 0 : oldValue_1.f) ? oldValue_1.f !== value : (oldValue_1 === null || oldValue_1 === void 0 ? void 0 : oldValue_1.v) !== value;
615
+ if (shouldClearError) {
616
+ clearCellError(ctx, r, c);
617
+ }
618
+ if (((_b = (_a = ctx.hooks).beforeUpdateCell) === null || _b === void 0 ? void 0 : _b.call(_a, r, c, value)) === false) {
619
+ cancelNormalSelected(ctx);
620
+ return;
621
+ }
649
622
  if (!isCurInline) {
623
+ if (isRealNull(value) && !isPrevInline) {
624
+ if (!curv_1 || isRealNull(curv_1.v) && !curv_1.spl && !curv_1.f) {
625
+ cancelNormalSelected(ctx);
626
+ return;
627
+ }
628
+ } else if (curv_1 && curv_1.qp !== 1) {
629
+ if (_.isPlainObject(curv_1) && (value === curv_1.f || value === curv_1.v || value === curv_1.m)) {
630
+ cancelNormalSelected(ctx);
631
+ return;
632
+ }
633
+ if (value === curv_1) {
634
+ cancelNormalSelected(ctx);
635
+ return;
636
+ }
637
+ }
638
+ if (_.isString(value) && value.slice(0, 1) === "=" && value.length > 1) {} else if (_.isPlainObject(curv_1) && curv_1 && curv_1.ct && curv_1.ct.fa && curv_1.ct.fa !== "@" && !isRealNull(value)) {
639
+ delete curv_1.m;
640
+ if (curv_1.f) {
641
+ delete curv_1.f;
642
+ delete curv_1.spl;
643
+ }
644
+ }
645
+ }
646
+ var isRunExecFunction = true;
647
+ var d = flowdata;
648
+ var dynamicArrayItem = null;
649
+ if (_.isPlainObject(curv_1)) {
650
+ if (!isCurInline) {
651
+ if (_.isString(value) && value.slice(0, 1) === "=" && value.length > 1) {
652
+ var v = execfunction(ctx, value, r, c, undefined, undefined, true);
653
+ isRunExecFunction = false;
654
+ curv_1 = _.cloneDeep(((_c = d === null || d === void 0 ? void 0 : d[r]) === null || _c === void 0 ? void 0 : _c[c]) || {});
655
+ curv_1.v = v[1], curv_1.f = v[2];
656
+ if (v.length === 4 && v[3].type === "sparklines") {
657
+ delete curv_1.m;
658
+ delete curv_1.v;
659
+ var curCalv = v[3].data;
660
+ if (_.isArray(curCalv) && !_.isPlainObject(curCalv[0])) {
661
+ curv_1.v = curCalv[0];
662
+ } else {
663
+ curv_1.spl = v[3].data;
664
+ }
665
+ } else if (v.length === 4 && v[3].type === "dynamicArrayItem") {
666
+ dynamicArrayItem = v[3].data;
667
+ }
668
+ } else if (_.isPlainObject(value)) {
669
+ var valueFunction = value.f;
670
+ if (_.isString(valueFunction) && valueFunction.slice(0, 1) === "=" && valueFunction.length > 1) {
671
+ var v = execfunction(ctx, valueFunction, r, c, undefined, undefined, true);
672
+ isRunExecFunction = false;
673
+ curv_1 = _.cloneDeep(((_d = d === null || d === void 0 ? void 0 : d[r]) === null || _d === void 0 ? void 0 : _d[c]) || {});
674
+ curv_1.v = v[1], curv_1.f = v[2];
675
+ if (v.length === 4 && v[3].type === "sparklines") {
676
+ delete curv_1.m;
677
+ delete curv_1.v;
678
+ var curCalv = v[3].data;
679
+ if (_.isArray(curCalv) && !_.isPlainObject(curCalv[0])) {
680
+ curv_1.v = curCalv[0];
681
+ } else {
682
+ curv_1.spl = v[3].data;
683
+ }
684
+ } else if (v.length === 4 && v[3].type === "dynamicArrayItem") {
685
+ dynamicArrayItem = v[3].data;
686
+ }
687
+ } else {
688
+ Object.keys(value).forEach(function (attr) {
689
+ curv_1[attr] = value[attr];
690
+ });
691
+ clearCellError(ctx, r, c);
692
+ }
693
+ } else {
694
+ clearCellError(ctx, r, c);
695
+ delFunctionGroup(ctx, r, c);
696
+ curv_1 = _.cloneDeep(((_e = d === null || d === void 0 ? void 0 : d[r]) === null || _e === void 0 ? void 0 : _e[c]) || {});
697
+ curv_1.v = value;
698
+ delete curv_1.f;
699
+ delete curv_1.spl;
700
+ var decemialCount_1 = ((_f = oldValue_1 === null || oldValue_1 === void 0 ? void 0 : oldValue_1.m) === null || _f === void 0 ? void 0 : _f.toString().includes(".")) ? (_h = (_g = oldValue_1 === null || oldValue_1 === void 0 ? void 0 : oldValue_1.m) === null || _g === void 0 ? void 0 : _g.toString().split(" ")[0].split(".")[1]) === null || _h === void 0 ? void 0 : _h.length : 0;
701
+ var coin_1 = (_j = oldValue_1 === null || oldValue_1 === void 0 ? void 0 : oldValue_1.m) === null || _j === void 0 ? void 0 : _j.toString().split(" ")[1];
702
+ if (_typeof(curv_1) === "object" && (curv_1 === null || curv_1 === void 0 ? void 0 : curv_1.baseValue) && (oldValue_1 === null || oldValue_1 === void 0 ? void 0 : oldValue_1.baseCurrencyPrice)) {
703
+ curv_1.m = "".concat((parseFloat(value) / oldValue_1.baseCurrencyPrice).toFixed(decemialCount_1 || 2), " ").concat(coin_1);
704
+ curv_1.baseValue = value;
705
+ }
706
+ execFunctionGroup(ctx, r, c, curv_1);
707
+ isRunExecFunction = false;
708
+ if (curv_1.qp === 1 && "".concat(value).substring(0, 1) !== "'") {
709
+ curv_1.qp = 0;
710
+ if (curv_1.ct) {
711
+ curv_1.ct.fa = "General";
712
+ curv_1.ct.t = "n";
713
+ }
714
+ }
715
+ }
716
+ }
717
+ value = curv_1;
718
+ } else {
650
719
  if (_.isString(value) && value.slice(0, 1) === "=" && value.length > 1) {
651
720
  var v = execfunction(ctx, value, r, c, undefined, undefined, true);
652
721
  isRunExecFunction = false;
653
- curv = _.cloneDeep(((_c = d === null || d === void 0 ? void 0 : d[r]) === null || _c === void 0 ? void 0 : _c[c]) || {});
654
- curv.v = v[1], curv.f = v[2];
722
+ value = {
723
+ v: v[1],
724
+ f: v[2]
725
+ };
726
+ if (/^[\d.,]+$/.test(value.v)) {
727
+ var args = (_k = getContentInParentheses(value === null || value === void 0 ? void 0 : value.f)) === null || _k === void 0 ? void 0 : _k.split(",");
728
+ var cellRefs = args === null || args === void 0 ? void 0 : args.map(function (arg) {
729
+ return arg.trim().toUpperCase();
730
+ });
731
+ var formatted = processArray(cellRefs, d, flowdata);
732
+ if (formatted) {
733
+ value.m = update(formatted, value.v);
734
+ value.ct = {
735
+ fa: formatted,
736
+ t: "n"
737
+ };
738
+ }
739
+ value.ht = 2;
740
+ }
655
741
  if (v.length === 4 && v[3].type === "sparklines") {
656
- delete curv.m;
657
- delete curv.v;
658
742
  var curCalv = v[3].data;
659
743
  if (_.isArray(curCalv) && !_.isPlainObject(curCalv[0])) {
660
- curv.v = curCalv[0];
744
+ value.v = curCalv[0];
661
745
  } else {
662
- curv.spl = v[3].data;
746
+ value.spl = v[3].data;
663
747
  }
664
748
  } else if (v.length === 4 && v[3].type === "dynamicArrayItem") {
665
749
  dynamicArrayItem = v[3].data;
@@ -669,198 +753,119 @@ export function updateCell(ctx, r, c, $input, value, canvas) {
669
753
  if (_.isString(valueFunction) && valueFunction.slice(0, 1) === "=" && valueFunction.length > 1) {
670
754
  var v = execfunction(ctx, valueFunction, r, c, undefined, undefined, true);
671
755
  isRunExecFunction = false;
672
- curv = _.cloneDeep(((_d = d === null || d === void 0 ? void 0 : d[r]) === null || _d === void 0 ? void 0 : _d[c]) || {});
673
- curv.v = v[1], curv.f = v[2];
756
+ value.v = v[1], value.f = v[2];
674
757
  if (v.length === 4 && v[3].type === "sparklines") {
675
- delete curv.m;
676
- delete curv.v;
677
758
  var curCalv = v[3].data;
678
759
  if (_.isArray(curCalv) && !_.isPlainObject(curCalv[0])) {
679
- curv.v = curCalv[0];
760
+ value.v = curCalv[0];
680
761
  } else {
681
- curv.spl = v[3].data;
762
+ value.spl = v[3].data;
682
763
  }
683
764
  } else if (v.length === 4 && v[3].type === "dynamicArrayItem") {
684
765
  dynamicArrayItem = v[3].data;
685
766
  }
686
767
  } else {
687
- Object.keys(value).forEach(function (attr) {
688
- curv[attr] = value[attr];
689
- });
690
768
  clearCellError(ctx, r, c);
769
+ var v = curv_1;
770
+ if (_.isNil(value.v)) {
771
+ value.v = v;
772
+ }
691
773
  }
692
774
  } else {
693
775
  clearCellError(ctx, r, c);
694
776
  delFunctionGroup(ctx, r, c);
695
- curv = _.cloneDeep(((_e = d === null || d === void 0 ? void 0 : d[r]) === null || _e === void 0 ? void 0 : _e[c]) || {});
696
- curv.v = value;
697
- delete curv.f;
698
- delete curv.spl;
699
- var decemialCount_1 = ((_f = oldValue === null || oldValue === void 0 ? void 0 : oldValue.m) === null || _f === void 0 ? void 0 : _f.toString().includes(".")) ? (_h = (_g = oldValue === null || oldValue === void 0 ? void 0 : oldValue.m) === null || _g === void 0 ? void 0 : _g.toString().split(" ")[0].split(".")[1]) === null || _h === void 0 ? void 0 : _h.length : 0;
700
- var coin_1 = (_j = oldValue === null || oldValue === void 0 ? void 0 : oldValue.m) === null || _j === void 0 ? void 0 : _j.toString().split(" ")[1];
701
- if (_typeof(curv) === "object" && (curv === null || curv === void 0 ? void 0 : curv.baseValue)) {
702
- curv.m = "".concat((parseFloat(value) / (oldValue === null || oldValue === void 0 ? void 0 : oldValue.baseCurrencyPrice)).toFixed(decemialCount_1 || 2), " ").concat(coin_1);
703
- curv.baseValue = value;
704
- }
705
- execFunctionGroup(ctx, r, c, curv);
777
+ execFunctionGroup(ctx, r, c, value);
706
778
  isRunExecFunction = false;
707
- if (curv.qp === 1 && "".concat(value).substring(0, 1) !== "'") {
708
- curv.qp = 0;
709
- if (curv.ct) {
710
- curv.ct.fa = "General";
711
- curv.ct.t = "n";
712
- }
713
- }
714
779
  }
715
780
  }
716
- value = curv;
717
- } else {
718
- if (_.isString(value) && value.slice(0, 1) === "=" && value.length > 1) {
719
- var v = execfunction(ctx, value, r, c, undefined, undefined, true);
720
- isRunExecFunction = false;
781
+ var decemialCount = ((_l = oldValue_1 === null || oldValue_1 === void 0 ? void 0 : oldValue_1.m) === null || _l === void 0 ? void 0 : _l.toString().includes(".")) ? (_o = (_m = oldValue_1 === null || oldValue_1 === void 0 ? void 0 : oldValue_1.m) === null || _m === void 0 ? void 0 : _m.toString().split(" ")[0].split(".")[1]) === null || _o === void 0 ? void 0 : _o.length : 0;
782
+ var coin = (_p = oldValue_1 === null || oldValue_1 === void 0 ? void 0 : oldValue_1.m) === null || _p === void 0 ? void 0 : _p.toString().split(" ")[1];
783
+ if (_typeof(value) === "object" && value.baseValue && !(value === null || value === void 0 ? void 0 : value.m)) {
784
+ value.m = "".concat((parseFloat(value === null || value === void 0 ? void 0 : value.v) / (oldValue_1 === null || oldValue_1 === void 0 ? void 0 : oldValue_1.baseCurrencyPrice)).toFixed(decemialCount || 2), " ").concat(coin);
785
+ }
786
+ if (typeof value === "string") {
721
787
  value = {
722
- v: v[1],
723
- f: v[2]
788
+ ct: {
789
+ fa: "General",
790
+ t: "g"
791
+ },
792
+ v: value,
793
+ tb: "1"
724
794
  };
725
- if (/^[\d.,]+$/.test(value.v)) {
726
- var args = (_k = getContentInParentheses(value === null || value === void 0 ? void 0 : value.f)) === null || _k === void 0 ? void 0 : _k.split(",");
727
- var cellRefs = args === null || args === void 0 ? void 0 : args.map(function (arg) {
728
- return arg.trim().toUpperCase();
729
- });
730
- var formatted = processArray(cellRefs, d, flowdata);
731
- if (formatted) {
732
- value.m = update(formatted, value.v);
733
- value.ct = {
734
- fa: formatted,
735
- t: "n"
736
- };
795
+ } else if (_typeof(value) === "object" && !value.tb) {
796
+ value.tb = "1";
797
+ }
798
+ var isValueArray = Array.isArray((_q = value === null || value === void 0 ? void 0 : value.v) === null || _q === void 0 ? void 0 : _q[0]);
799
+ try {
800
+ if (isValueArray) {
801
+ if (spillSortResult(ctx, r, c, value, d)) {
802
+ cancelNormalSelected(ctx);
803
+ if (ctx.hooks.afterUpdateCell) {
804
+ var newValue_1 = _.cloneDeep(d[r][c]);
805
+ setTimeout(function () {
806
+ var _a, _b;
807
+ return (_b = (_a = ctx.hooks).afterUpdateCell) === null || _b === void 0 ? void 0 : _b.call(_a, r, c, null, newValue_1);
808
+ });
809
+ }
810
+ ctx.formulaCache.execFunctionGlobalData = null;
811
+ return;
737
812
  }
738
- value.ht = 2;
739
813
  }
740
- if (v.length === 4 && v[3].type === "sparklines") {
741
- var curCalv = v[3].data;
742
- if (_.isArray(curCalv) && !_.isPlainObject(curCalv[0])) {
743
- value.v = curCalv[0];
744
- } else {
745
- value.spl = v[3].data;
746
- }
747
- } else if (v.length === 4 && v[3].type === "dynamicArrayItem") {
748
- dynamicArrayItem = v[3].data;
814
+ } catch (e) {
815
+ console.log("[updateCell] spill failed; falling back", e);
816
+ }
817
+ var url = getUrlFromText($input === null || $input === void 0 ? void 0 : $input.innerText);
818
+ if (url && _typeof(value) === "object" && value) {
819
+ value.hl = 1;
820
+ if (!sheetFile.hyperlink) sheetFile.hyperlink = {};
821
+ sheetFile.hyperlink["".concat(r, "_").concat(c)] = {
822
+ linkType: "webpage",
823
+ linkAddress: url
824
+ };
825
+ if (typeof value.v !== "string") {
826
+ value.v = (_r = $input === null || $input === void 0 ? void 0 : $input.innerText) !== null && _r !== void 0 ? _r : url;
749
827
  }
750
- } else if (_.isPlainObject(value)) {
751
- var valueFunction = value.f;
752
- if (_.isString(valueFunction) && valueFunction.slice(0, 1) === "=" && valueFunction.length > 1) {
753
- var v = execfunction(ctx, valueFunction, r, c, undefined, undefined, true);
754
- isRunExecFunction = false;
755
- value.v = v[1], value.f = v[2];
756
- if (v.length === 4 && v[3].type === "sparklines") {
757
- var curCalv = v[3].data;
758
- if (_.isArray(curCalv) && !_.isPlainObject(curCalv[0])) {
759
- value.v = curCalv[0];
760
- } else {
761
- value.spl = v[3].data;
762
- }
763
- } else if (v.length === 4 && v[3].type === "dynamicArrayItem") {
764
- dynamicArrayItem = v[3].data;
765
- }
766
- } else {
767
- clearCellError(ctx, r, c);
768
- var v = curv;
769
- if (_.isNil(value.v)) {
770
- value.v = v;
771
- }
828
+ if (value.m == null) {
829
+ value.m = value.v;
772
830
  }
773
- } else {
774
- clearCellError(ctx, r, c);
775
- delFunctionGroup(ctx, r, c);
776
- execFunctionGroup(ctx, r, c, value);
777
- isRunExecFunction = false;
831
+ if (value.fc == null) value.fc = "rgb(0, 0, 255)";
832
+ if (value.un == null) value.un = 1;
778
833
  }
779
- }
780
- var decemialCount = ((_l = oldValue === null || oldValue === void 0 ? void 0 : oldValue.m) === null || _l === void 0 ? void 0 : _l.toString().includes(".")) ? (_o = (_m = oldValue === null || oldValue === void 0 ? void 0 : oldValue.m) === null || _m === void 0 ? void 0 : _m.toString().split(" ")[0].split(".")[1]) === null || _o === void 0 ? void 0 : _o.length : 0;
781
- var coin = (_p = oldValue === null || oldValue === void 0 ? void 0 : oldValue.m) === null || _p === void 0 ? void 0 : _p.toString().split(" ")[1];
782
- if (_typeof(value) === "object" && value.baseValue && !(value === null || value === void 0 ? void 0 : value.m)) {
783
- value.m = "".concat((parseFloat(value === null || value === void 0 ? void 0 : value.v) / (oldValue === null || oldValue === void 0 ? void 0 : oldValue.baseCurrencyPrice)).toFixed(decemialCount || 2), " ").concat(coin);
784
- }
785
- if (typeof value === "string") {
786
- value = {
787
- ct: {
788
- fa: "General",
789
- t: "g"
790
- },
791
- v: value,
792
- tb: "1"
793
- };
794
- } else if (_typeof(value) === "object" && !value.tb) {
795
- value.tb = "1";
796
- }
797
- var isValueArray = Array.isArray((_q = value === null || value === void 0 ? void 0 : value.v) === null || _q === void 0 ? void 0 : _q[0]);
798
- try {
799
- if (isValueArray) {
800
- if (spillSortResult(ctx, r, c, value, d)) {
801
- cancelNormalSelected(ctx);
802
- if (ctx.hooks.afterUpdateCell) {
803
- var newValue_1 = _.cloneDeep(d[r][c]);
804
- setTimeout(function () {
805
- var _a, _b;
806
- return (_b = (_a = ctx.hooks).afterUpdateCell) === null || _b === void 0 ? void 0 : _b.call(_a, r, c, null, newValue_1);
807
- });
834
+ setCellValue(ctx, r, c, d, value);
835
+ cancelNormalSelected(ctx);
836
+ if ((curv_1 === null || curv_1 === void 0 ? void 0 : curv_1.tb) === "2" && curv_1.v || isInlineStringCell(d[r][c])) {
837
+ var defaultrowlen = ctx.defaultrowlen;
838
+ var cfg = ctx.luckysheetfile[getSheetIndex(ctx, ctx.currentSheetId)].config || {};
839
+ if (!(((_s = cfg.columnlen) === null || _s === void 0 ? void 0 : _s[c]) && ((_t = cfg.rowlen) === null || _t === void 0 ? void 0 : _t[r]))) {
840
+ var cellWidth = ((_u = cfg.columnlen) === null || _u === void 0 ? void 0 : _u[c]) || ctx.defaultcollen;
841
+ var textInfo = canvas ? getCellTextInfo(d[r][c], canvas, ctx, {
842
+ r: r,
843
+ c: c,
844
+ cellWidth: cellWidth
845
+ }) : null;
846
+ var currentRowLen = defaultrowlen;
847
+ if (textInfo) {
848
+ currentRowLen = textInfo.textHeightAll + 2;
849
+ }
850
+ var previousRowHeight = getRowHeight(ctx, [r])[r];
851
+ if (currentRowLen > defaultrowlen && !((_v = cfg.customHeight) === null || _v === void 0 ? void 0 : _v[r]) && previousRowHeight < currentRowLen) {
852
+ if (_.isNil(cfg.rowlen)) cfg.rowlen = {};
853
+ cfg.rowlen[r] = currentRowLen;
808
854
  }
809
- ctx.formulaCache.execFunctionGlobalData = null;
810
- return;
811
855
  }
812
856
  }
813
- } catch (e) {
814
- console.log("[updateCell] spill failed; falling back", e);
815
- }
816
- var url = getUrlFromText($input === null || $input === void 0 ? void 0 : $input.innerText);
817
- if (url && _typeof(value) === "object" && value) {
818
- value.hl = 1;
819
- if (!sheetFile.hyperlink) sheetFile.hyperlink = {};
820
- sheetFile.hyperlink["".concat(r, "_").concat(c)] = {
821
- linkType: "webpage",
822
- linkAddress: url
823
- };
824
- if (typeof value.v !== "string") {
825
- value.v = (_r = $input === null || $input === void 0 ? void 0 : $input.innerText) !== null && _r !== void 0 ? _r : url;
826
- }
827
- if (value.m == null) {
828
- value.m = value.v;
829
- }
830
- if (value.fc == null) value.fc = "rgb(0, 0, 255)";
831
- if (value.un == null) value.un = 1;
832
- }
833
- setCellValue(ctx, r, c, d, value);
834
- cancelNormalSelected(ctx);
835
- if ((curv === null || curv === void 0 ? void 0 : curv.tb) === "2" && curv.v || isInlineStringCell(d[r][c])) {
836
- var defaultrowlen = ctx.defaultrowlen;
837
- var cfg = ctx.luckysheetfile[getSheetIndex(ctx, ctx.currentSheetId)].config || {};
838
- if (!(((_s = cfg.columnlen) === null || _s === void 0 ? void 0 : _s[c]) && ((_t = cfg.rowlen) === null || _t === void 0 ? void 0 : _t[r]))) {
839
- var cellWidth = ((_u = cfg.columnlen) === null || _u === void 0 ? void 0 : _u[c]) || ctx.defaultcollen;
840
- var textInfo = canvas ? getCellTextInfo(d[r][c], canvas, ctx, {
841
- r: r,
842
- c: c,
843
- cellWidth: cellWidth
844
- }) : null;
845
- var currentRowLen = defaultrowlen;
846
- if (textInfo) {
847
- currentRowLen = textInfo.textHeightAll + 2;
848
- }
849
- var previousRowHeight = getRowHeight(ctx, [r])[r];
850
- if (currentRowLen > defaultrowlen && !((_v = cfg.customHeight) === null || _v === void 0 ? void 0 : _v[r]) && previousRowHeight < currentRowLen) {
851
- if (_.isNil(cfg.rowlen)) cfg.rowlen = {};
852
- cfg.rowlen[r] = currentRowLen;
853
- }
857
+ if (ctx.hooks.afterUpdateCell) {
858
+ var newValue_2 = _.cloneDeep(flowdata[r][c]);
859
+ var afterUpdateCell_1 = ctx.hooks.afterUpdateCell;
860
+ setTimeout(function () {
861
+ afterUpdateCell_1 === null || afterUpdateCell_1 === void 0 ? void 0 : afterUpdateCell_1(r, c, oldValue_1, newValue_2);
862
+ });
854
863
  }
864
+ ctx.formulaCache.execFunctionGlobalData = null;
865
+ } catch (e) {
866
+ console.error(e);
867
+ cancelNormalSelected(ctx);
855
868
  }
856
- if (ctx.hooks.afterUpdateCell) {
857
- var newValue_2 = _.cloneDeep(flowdata[r][c]);
858
- var afterUpdateCell_1 = ctx.hooks.afterUpdateCell;
859
- setTimeout(function () {
860
- afterUpdateCell_1 === null || afterUpdateCell_1 === void 0 ? void 0 : afterUpdateCell_1(r, c, oldValue, newValue_2);
861
- });
862
- }
863
- ctx.formulaCache.execFunctionGlobalData = null;
864
869
  }
865
870
  export function getOrigincell(ctx, r, c, i) {
866
871
  var data = getFlowdata(ctx, i);
@@ -572,127 +572,211 @@ function cancelNormalSelected(ctx) {
572
572
  }
573
573
  function updateCell(ctx, r, c, $input, value, canvas) {
574
574
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v;
575
- if (ctx.allowEdit === false || ctx.isFlvReadOnly) return;
576
- var inputText = $input === null || $input === void 0 ? void 0 : $input.innerText;
577
- if (inputText === null || inputText === void 0 ? void 0 : inputText.startsWith("=")) {
578
- inputText = inputText === null || inputText === void 0 ? void 0 : inputText.replace(/[\r\n]/g, "");
579
- }
580
- var inputHtml = $input === null || $input === void 0 ? void 0 : $input.innerHTML;
581
- var flowdata = (0, _context.getFlowdata)(ctx);
582
- if (!flowdata) return;
583
- var index = (0, _utils.getSheetIndex)(ctx, ctx.currentSheetId);
584
- var dataVerification = ctx.luckysheetfile[index].dataVerification;
585
- var sheetFile = ctx.luckysheetfile[index];
586
- var getUrlFromText = function getUrlFromText(text) {
587
- var t = (text !== null && text !== void 0 ? text : "").trim();
588
- if (!t || /[\s\r\n]/.test(t)) return null;
589
- if (!/^(https?:\/\/|www\.)\S+$/i.test(t)) return null;
590
- return t.startsWith("http") ? t : "https://".concat(t);
591
- };
592
- if (!_lodash.default.isNil(dataVerification)) {
593
- var dvItem = dataVerification["".concat(r, "_").concat(c)];
594
- if (!_lodash.default.isNil(dvItem) && dvItem.prohibitInput && !(0, _dataVerification.validateCellData)(ctx, dvItem, inputText)) {
595
- var failureText = (0, _dataVerification.getFailureText)(ctx, dvItem);
596
- cancelNormalSelected(ctx);
597
- ctx.warnDialog = failureText;
598
- return;
599
- }
600
- }
601
- var curv = flowdata[r][c];
602
- var oldValue = _lodash.default.cloneDeep(curv);
603
- var isPrevInline = (0, _inlineString.isInlineStringCell)(curv);
604
- var isCurInline = (inputText === null || inputText === void 0 ? void 0 : inputText.slice(0, 1)) !== "=" && (inputHtml === null || inputHtml === void 0 ? void 0 : inputHtml.substring(0, 5)) === "<span";
605
- var isCopyVal = false;
606
- if (!isCurInline && inputText && inputText.length > 0) {
607
- var splitArr = inputText.replace(/\r\n/g, "_x000D_").replace(/&#13;&#10;/g, "_x000D_").replace(/\r/g, "_x000D_").replace(/\n/g, "_x000D_").split("_x000D_");
608
- if (splitArr.length > 1 && inputHtml !== "<br>") {
609
- isCopyVal = true;
610
- isCurInline = true;
611
- inputText = splitArr.join("\r\n");
612
- }
613
- }
614
- if ((curv === null || curv === void 0 ? void 0 : curv.ct) && !value && !isCurInline && isPrevInline) {
615
- delete curv.ct.s;
616
- curv.ct.t = "g";
617
- curv.ct.fa = "General";
618
- curv.tb = "1";
619
- value = "";
620
- } else if (isCurInline) {
621
- if (!_lodash.default.isPlainObject(curv)) {
622
- curv = {};
623
- }
624
- curv || (curv = {});
625
- var fontSize = curv.fs || 10;
626
- if (!curv.ct) {
627
- curv.ct = {};
628
- curv.ct.fa = "General";
629
- curv.tb = "1";
630
- }
631
- curv.ct.t = "inlineStr";
632
- curv.ct.s = (0, _inlineString.convertSpanToShareString)($input.querySelectorAll("span"), curv);
633
- delete curv.fs;
634
- delete curv.f;
635
- delete curv.v;
636
- delete curv.m;
637
- curv.fs = fontSize;
638
- if (isCopyVal) {
639
- curv.ct.s = [{
640
- v: inputText,
641
- fs: fontSize
642
- }];
575
+ try {
576
+ if (ctx.allowEdit === false || ctx.isFlvReadOnly) return;
577
+ var inputText = $input === null || $input === void 0 ? void 0 : $input.innerText;
578
+ if (inputText === null || inputText === void 0 ? void 0 : inputText.startsWith("=")) {
579
+ inputText = inputText === null || inputText === void 0 ? void 0 : inputText.replace(/[\r\n]/g, "");
643
580
  }
644
- }
645
- value = value || inputText;
646
- var shouldClearError = (oldValue === null || oldValue === void 0 ? void 0 : oldValue.f) ? oldValue.f !== value : (oldValue === null || oldValue === void 0 ? void 0 : oldValue.v) !== value;
647
- if (shouldClearError) {
648
- (0, _api.clearCellError)(ctx, r, c);
649
- }
650
- if (((_b = (_a = ctx.hooks).beforeUpdateCell) === null || _b === void 0 ? void 0 : _b.call(_a, r, c, value)) === false) {
651
- cancelNormalSelected(ctx);
652
- return;
653
- }
654
- if (!isCurInline) {
655
- if ((0, _validation.isRealNull)(value) && !isPrevInline) {
656
- if (!curv || (0, _validation.isRealNull)(curv.v) && !curv.spl && !curv.f) {
657
- cancelNormalSelected(ctx);
658
- return;
659
- }
660
- } else if (curv && curv.qp !== 1) {
661
- if (_lodash.default.isPlainObject(curv) && (value === curv.f || value === curv.v || value === curv.m)) {
581
+ var inputHtml = $input === null || $input === void 0 ? void 0 : $input.innerHTML;
582
+ var flowdata = (0, _context.getFlowdata)(ctx);
583
+ if (!flowdata) return;
584
+ var index = (0, _utils.getSheetIndex)(ctx, ctx.currentSheetId);
585
+ var dataVerification = ctx.luckysheetfile[index].dataVerification;
586
+ var sheetFile = ctx.luckysheetfile[index];
587
+ var getUrlFromText = function getUrlFromText(text) {
588
+ var t = (text !== null && text !== void 0 ? text : "").trim();
589
+ if (!t || /[\s\r\n]/.test(t)) return null;
590
+ if (!/^(https?:\/\/|www\.)\S+$/i.test(t)) return null;
591
+ return t.startsWith("http") ? t : "https://".concat(t);
592
+ };
593
+ if (!_lodash.default.isNil(dataVerification)) {
594
+ var dvItem = dataVerification["".concat(r, "_").concat(c)];
595
+ if (!_lodash.default.isNil(dvItem) && dvItem.prohibitInput && !(0, _dataVerification.validateCellData)(ctx, dvItem, inputText)) {
596
+ var failureText = (0, _dataVerification.getFailureText)(ctx, dvItem);
662
597
  cancelNormalSelected(ctx);
598
+ ctx.warnDialog = failureText;
663
599
  return;
664
600
  }
665
- if (value === curv) {
666
- cancelNormalSelected(ctx);
667
- return;
601
+ }
602
+ var curv_1 = flowdata[r][c];
603
+ var oldValue_1 = _lodash.default.cloneDeep(curv_1);
604
+ var isPrevInline = (0, _inlineString.isInlineStringCell)(curv_1);
605
+ var isCurInline = (inputText === null || inputText === void 0 ? void 0 : inputText.slice(0, 1)) !== "=" && (inputHtml === null || inputHtml === void 0 ? void 0 : inputHtml.substring(0, 5)) === "<span";
606
+ var isCopyVal = false;
607
+ if (!isCurInline && inputText && inputText.length > 0) {
608
+ var splitArr = inputText.replace(/\r\n/g, "_x000D_").replace(/&#13;&#10;/g, "_x000D_").replace(/\r/g, "_x000D_").replace(/\n/g, "_x000D_").split("_x000D_");
609
+ if (splitArr.length > 1 && inputHtml !== "<br>") {
610
+ isCopyVal = true;
611
+ isCurInline = true;
612
+ inputText = splitArr.join("\r\n");
668
613
  }
669
614
  }
670
- if (_lodash.default.isString(value) && value.slice(0, 1) === "=" && value.length > 1) {} else if (_lodash.default.isPlainObject(curv) && curv && curv.ct && curv.ct.fa && curv.ct.fa !== "@" && !(0, _validation.isRealNull)(value)) {
671
- delete curv.m;
672
- if (curv.f) {
673
- delete curv.f;
674
- delete curv.spl;
615
+ if ((curv_1 === null || curv_1 === void 0 ? void 0 : curv_1.ct) && !value && !isCurInline && isPrevInline) {
616
+ delete curv_1.ct.s;
617
+ curv_1.ct.t = "g";
618
+ curv_1.ct.fa = "General";
619
+ curv_1.tb = "1";
620
+ value = "";
621
+ } else if (isCurInline) {
622
+ if (!_lodash.default.isPlainObject(curv_1)) {
623
+ curv_1 = {};
624
+ }
625
+ curv_1 || (curv_1 = {});
626
+ var fontSize = curv_1.fs || 10;
627
+ if (!curv_1.ct) {
628
+ curv_1.ct = {};
629
+ curv_1.ct.fa = "General";
630
+ curv_1.tb = "1";
631
+ }
632
+ curv_1.ct.t = "inlineStr";
633
+ curv_1.ct.s = (0, _inlineString.convertSpanToShareString)($input.querySelectorAll("span"), curv_1);
634
+ delete curv_1.fs;
635
+ delete curv_1.f;
636
+ delete curv_1.v;
637
+ delete curv_1.m;
638
+ curv_1.fs = fontSize;
639
+ if (isCopyVal) {
640
+ curv_1.ct.s = [{
641
+ v: inputText,
642
+ fs: fontSize
643
+ }];
675
644
  }
676
645
  }
677
- }
678
- var isRunExecFunction = true;
679
- var d = flowdata;
680
- var dynamicArrayItem = null;
681
- if (_lodash.default.isPlainObject(curv)) {
646
+ value = value || inputText;
647
+ var shouldClearError = (oldValue_1 === null || oldValue_1 === void 0 ? void 0 : oldValue_1.f) ? oldValue_1.f !== value : (oldValue_1 === null || oldValue_1 === void 0 ? void 0 : oldValue_1.v) !== value;
648
+ if (shouldClearError) {
649
+ (0, _api.clearCellError)(ctx, r, c);
650
+ }
651
+ if (((_b = (_a = ctx.hooks).beforeUpdateCell) === null || _b === void 0 ? void 0 : _b.call(_a, r, c, value)) === false) {
652
+ cancelNormalSelected(ctx);
653
+ return;
654
+ }
682
655
  if (!isCurInline) {
656
+ if ((0, _validation.isRealNull)(value) && !isPrevInline) {
657
+ if (!curv_1 || (0, _validation.isRealNull)(curv_1.v) && !curv_1.spl && !curv_1.f) {
658
+ cancelNormalSelected(ctx);
659
+ return;
660
+ }
661
+ } else if (curv_1 && curv_1.qp !== 1) {
662
+ if (_lodash.default.isPlainObject(curv_1) && (value === curv_1.f || value === curv_1.v || value === curv_1.m)) {
663
+ cancelNormalSelected(ctx);
664
+ return;
665
+ }
666
+ if (value === curv_1) {
667
+ cancelNormalSelected(ctx);
668
+ return;
669
+ }
670
+ }
671
+ if (_lodash.default.isString(value) && value.slice(0, 1) === "=" && value.length > 1) {} else if (_lodash.default.isPlainObject(curv_1) && curv_1 && curv_1.ct && curv_1.ct.fa && curv_1.ct.fa !== "@" && !(0, _validation.isRealNull)(value)) {
672
+ delete curv_1.m;
673
+ if (curv_1.f) {
674
+ delete curv_1.f;
675
+ delete curv_1.spl;
676
+ }
677
+ }
678
+ }
679
+ var isRunExecFunction = true;
680
+ var d = flowdata;
681
+ var dynamicArrayItem = null;
682
+ if (_lodash.default.isPlainObject(curv_1)) {
683
+ if (!isCurInline) {
684
+ if (_lodash.default.isString(value) && value.slice(0, 1) === "=" && value.length > 1) {
685
+ var v = (0, _formula.execfunction)(ctx, value, r, c, undefined, undefined, true);
686
+ isRunExecFunction = false;
687
+ curv_1 = _lodash.default.cloneDeep(((_c = d === null || d === void 0 ? void 0 : d[r]) === null || _c === void 0 ? void 0 : _c[c]) || {});
688
+ curv_1.v = v[1], curv_1.f = v[2];
689
+ if (v.length === 4 && v[3].type === "sparklines") {
690
+ delete curv_1.m;
691
+ delete curv_1.v;
692
+ var curCalv = v[3].data;
693
+ if (_lodash.default.isArray(curCalv) && !_lodash.default.isPlainObject(curCalv[0])) {
694
+ curv_1.v = curCalv[0];
695
+ } else {
696
+ curv_1.spl = v[3].data;
697
+ }
698
+ } else if (v.length === 4 && v[3].type === "dynamicArrayItem") {
699
+ dynamicArrayItem = v[3].data;
700
+ }
701
+ } else if (_lodash.default.isPlainObject(value)) {
702
+ var valueFunction = value.f;
703
+ if (_lodash.default.isString(valueFunction) && valueFunction.slice(0, 1) === "=" && valueFunction.length > 1) {
704
+ var v = (0, _formula.execfunction)(ctx, valueFunction, r, c, undefined, undefined, true);
705
+ isRunExecFunction = false;
706
+ curv_1 = _lodash.default.cloneDeep(((_d = d === null || d === void 0 ? void 0 : d[r]) === null || _d === void 0 ? void 0 : _d[c]) || {});
707
+ curv_1.v = v[1], curv_1.f = v[2];
708
+ if (v.length === 4 && v[3].type === "sparklines") {
709
+ delete curv_1.m;
710
+ delete curv_1.v;
711
+ var curCalv = v[3].data;
712
+ if (_lodash.default.isArray(curCalv) && !_lodash.default.isPlainObject(curCalv[0])) {
713
+ curv_1.v = curCalv[0];
714
+ } else {
715
+ curv_1.spl = v[3].data;
716
+ }
717
+ } else if (v.length === 4 && v[3].type === "dynamicArrayItem") {
718
+ dynamicArrayItem = v[3].data;
719
+ }
720
+ } else {
721
+ Object.keys(value).forEach(function (attr) {
722
+ curv_1[attr] = value[attr];
723
+ });
724
+ (0, _api.clearCellError)(ctx, r, c);
725
+ }
726
+ } else {
727
+ (0, _api.clearCellError)(ctx, r, c);
728
+ (0, _formula.delFunctionGroup)(ctx, r, c);
729
+ curv_1 = _lodash.default.cloneDeep(((_e = d === null || d === void 0 ? void 0 : d[r]) === null || _e === void 0 ? void 0 : _e[c]) || {});
730
+ curv_1.v = value;
731
+ delete curv_1.f;
732
+ delete curv_1.spl;
733
+ var decemialCount_1 = ((_f = oldValue_1 === null || oldValue_1 === void 0 ? void 0 : oldValue_1.m) === null || _f === void 0 ? void 0 : _f.toString().includes(".")) ? (_h = (_g = oldValue_1 === null || oldValue_1 === void 0 ? void 0 : oldValue_1.m) === null || _g === void 0 ? void 0 : _g.toString().split(" ")[0].split(".")[1]) === null || _h === void 0 ? void 0 : _h.length : 0;
734
+ var coin_1 = (_j = oldValue_1 === null || oldValue_1 === void 0 ? void 0 : oldValue_1.m) === null || _j === void 0 ? void 0 : _j.toString().split(" ")[1];
735
+ if (_typeof(curv_1) === "object" && (curv_1 === null || curv_1 === void 0 ? void 0 : curv_1.baseValue) && (oldValue_1 === null || oldValue_1 === void 0 ? void 0 : oldValue_1.baseCurrencyPrice)) {
736
+ curv_1.m = "".concat((parseFloat(value) / oldValue_1.baseCurrencyPrice).toFixed(decemialCount_1 || 2), " ").concat(coin_1);
737
+ curv_1.baseValue = value;
738
+ }
739
+ (0, _formula.execFunctionGroup)(ctx, r, c, curv_1);
740
+ isRunExecFunction = false;
741
+ if (curv_1.qp === 1 && "".concat(value).substring(0, 1) !== "'") {
742
+ curv_1.qp = 0;
743
+ if (curv_1.ct) {
744
+ curv_1.ct.fa = "General";
745
+ curv_1.ct.t = "n";
746
+ }
747
+ }
748
+ }
749
+ }
750
+ value = curv_1;
751
+ } else {
683
752
  if (_lodash.default.isString(value) && value.slice(0, 1) === "=" && value.length > 1) {
684
753
  var v = (0, _formula.execfunction)(ctx, value, r, c, undefined, undefined, true);
685
754
  isRunExecFunction = false;
686
- curv = _lodash.default.cloneDeep(((_c = d === null || d === void 0 ? void 0 : d[r]) === null || _c === void 0 ? void 0 : _c[c]) || {});
687
- curv.v = v[1], curv.f = v[2];
755
+ value = {
756
+ v: v[1],
757
+ f: v[2]
758
+ };
759
+ if (/^[\d.,]+$/.test(value.v)) {
760
+ var args = (_k = (0, _utils.getContentInParentheses)(value === null || value === void 0 ? void 0 : value.f)) === null || _k === void 0 ? void 0 : _k.split(",");
761
+ var cellRefs = args === null || args === void 0 ? void 0 : args.map(function (arg) {
762
+ return arg.trim().toUpperCase();
763
+ });
764
+ var formatted = (0, _utils.processArray)(cellRefs, d, flowdata);
765
+ if (formatted) {
766
+ value.m = (0, _format.update)(formatted, value.v);
767
+ value.ct = {
768
+ fa: formatted,
769
+ t: "n"
770
+ };
771
+ }
772
+ value.ht = 2;
773
+ }
688
774
  if (v.length === 4 && v[3].type === "sparklines") {
689
- delete curv.m;
690
- delete curv.v;
691
775
  var curCalv = v[3].data;
692
776
  if (_lodash.default.isArray(curCalv) && !_lodash.default.isPlainObject(curCalv[0])) {
693
- curv.v = curCalv[0];
777
+ value.v = curCalv[0];
694
778
  } else {
695
- curv.spl = v[3].data;
779
+ value.spl = v[3].data;
696
780
  }
697
781
  } else if (v.length === 4 && v[3].type === "dynamicArrayItem") {
698
782
  dynamicArrayItem = v[3].data;
@@ -702,198 +786,119 @@ function updateCell(ctx, r, c, $input, value, canvas) {
702
786
  if (_lodash.default.isString(valueFunction) && valueFunction.slice(0, 1) === "=" && valueFunction.length > 1) {
703
787
  var v = (0, _formula.execfunction)(ctx, valueFunction, r, c, undefined, undefined, true);
704
788
  isRunExecFunction = false;
705
- curv = _lodash.default.cloneDeep(((_d = d === null || d === void 0 ? void 0 : d[r]) === null || _d === void 0 ? void 0 : _d[c]) || {});
706
- curv.v = v[1], curv.f = v[2];
789
+ value.v = v[1], value.f = v[2];
707
790
  if (v.length === 4 && v[3].type === "sparklines") {
708
- delete curv.m;
709
- delete curv.v;
710
791
  var curCalv = v[3].data;
711
792
  if (_lodash.default.isArray(curCalv) && !_lodash.default.isPlainObject(curCalv[0])) {
712
- curv.v = curCalv[0];
793
+ value.v = curCalv[0];
713
794
  } else {
714
- curv.spl = v[3].data;
795
+ value.spl = v[3].data;
715
796
  }
716
797
  } else if (v.length === 4 && v[3].type === "dynamicArrayItem") {
717
798
  dynamicArrayItem = v[3].data;
718
799
  }
719
800
  } else {
720
- Object.keys(value).forEach(function (attr) {
721
- curv[attr] = value[attr];
722
- });
723
801
  (0, _api.clearCellError)(ctx, r, c);
802
+ var v = curv_1;
803
+ if (_lodash.default.isNil(value.v)) {
804
+ value.v = v;
805
+ }
724
806
  }
725
807
  } else {
726
808
  (0, _api.clearCellError)(ctx, r, c);
727
809
  (0, _formula.delFunctionGroup)(ctx, r, c);
728
- curv = _lodash.default.cloneDeep(((_e = d === null || d === void 0 ? void 0 : d[r]) === null || _e === void 0 ? void 0 : _e[c]) || {});
729
- curv.v = value;
730
- delete curv.f;
731
- delete curv.spl;
732
- var decemialCount_1 = ((_f = oldValue === null || oldValue === void 0 ? void 0 : oldValue.m) === null || _f === void 0 ? void 0 : _f.toString().includes(".")) ? (_h = (_g = oldValue === null || oldValue === void 0 ? void 0 : oldValue.m) === null || _g === void 0 ? void 0 : _g.toString().split(" ")[0].split(".")[1]) === null || _h === void 0 ? void 0 : _h.length : 0;
733
- var coin_1 = (_j = oldValue === null || oldValue === void 0 ? void 0 : oldValue.m) === null || _j === void 0 ? void 0 : _j.toString().split(" ")[1];
734
- if (_typeof(curv) === "object" && (curv === null || curv === void 0 ? void 0 : curv.baseValue)) {
735
- curv.m = "".concat((parseFloat(value) / (oldValue === null || oldValue === void 0 ? void 0 : oldValue.baseCurrencyPrice)).toFixed(decemialCount_1 || 2), " ").concat(coin_1);
736
- curv.baseValue = value;
737
- }
738
- (0, _formula.execFunctionGroup)(ctx, r, c, curv);
810
+ (0, _formula.execFunctionGroup)(ctx, r, c, value);
739
811
  isRunExecFunction = false;
740
- if (curv.qp === 1 && "".concat(value).substring(0, 1) !== "'") {
741
- curv.qp = 0;
742
- if (curv.ct) {
743
- curv.ct.fa = "General";
744
- curv.ct.t = "n";
745
- }
746
- }
747
812
  }
748
813
  }
749
- value = curv;
750
- } else {
751
- if (_lodash.default.isString(value) && value.slice(0, 1) === "=" && value.length > 1) {
752
- var v = (0, _formula.execfunction)(ctx, value, r, c, undefined, undefined, true);
753
- isRunExecFunction = false;
814
+ var decemialCount = ((_l = oldValue_1 === null || oldValue_1 === void 0 ? void 0 : oldValue_1.m) === null || _l === void 0 ? void 0 : _l.toString().includes(".")) ? (_o = (_m = oldValue_1 === null || oldValue_1 === void 0 ? void 0 : oldValue_1.m) === null || _m === void 0 ? void 0 : _m.toString().split(" ")[0].split(".")[1]) === null || _o === void 0 ? void 0 : _o.length : 0;
815
+ var coin = (_p = oldValue_1 === null || oldValue_1 === void 0 ? void 0 : oldValue_1.m) === null || _p === void 0 ? void 0 : _p.toString().split(" ")[1];
816
+ if (_typeof(value) === "object" && value.baseValue && !(value === null || value === void 0 ? void 0 : value.m)) {
817
+ value.m = "".concat((parseFloat(value === null || value === void 0 ? void 0 : value.v) / (oldValue_1 === null || oldValue_1 === void 0 ? void 0 : oldValue_1.baseCurrencyPrice)).toFixed(decemialCount || 2), " ").concat(coin);
818
+ }
819
+ if (typeof value === "string") {
754
820
  value = {
755
- v: v[1],
756
- f: v[2]
821
+ ct: {
822
+ fa: "General",
823
+ t: "g"
824
+ },
825
+ v: value,
826
+ tb: "1"
757
827
  };
758
- if (/^[\d.,]+$/.test(value.v)) {
759
- var args = (_k = (0, _utils.getContentInParentheses)(value === null || value === void 0 ? void 0 : value.f)) === null || _k === void 0 ? void 0 : _k.split(",");
760
- var cellRefs = args === null || args === void 0 ? void 0 : args.map(function (arg) {
761
- return arg.trim().toUpperCase();
762
- });
763
- var formatted = (0, _utils.processArray)(cellRefs, d, flowdata);
764
- if (formatted) {
765
- value.m = (0, _format.update)(formatted, value.v);
766
- value.ct = {
767
- fa: formatted,
768
- t: "n"
769
- };
828
+ } else if (_typeof(value) === "object" && !value.tb) {
829
+ value.tb = "1";
830
+ }
831
+ var isValueArray = Array.isArray((_q = value === null || value === void 0 ? void 0 : value.v) === null || _q === void 0 ? void 0 : _q[0]);
832
+ try {
833
+ if (isValueArray) {
834
+ if ((0, _sort.spillSortResult)(ctx, r, c, value, d)) {
835
+ cancelNormalSelected(ctx);
836
+ if (ctx.hooks.afterUpdateCell) {
837
+ var newValue_1 = _lodash.default.cloneDeep(d[r][c]);
838
+ setTimeout(function () {
839
+ var _a, _b;
840
+ return (_b = (_a = ctx.hooks).afterUpdateCell) === null || _b === void 0 ? void 0 : _b.call(_a, r, c, null, newValue_1);
841
+ });
842
+ }
843
+ ctx.formulaCache.execFunctionGlobalData = null;
844
+ return;
770
845
  }
771
- value.ht = 2;
772
846
  }
773
- if (v.length === 4 && v[3].type === "sparklines") {
774
- var curCalv = v[3].data;
775
- if (_lodash.default.isArray(curCalv) && !_lodash.default.isPlainObject(curCalv[0])) {
776
- value.v = curCalv[0];
777
- } else {
778
- value.spl = v[3].data;
779
- }
780
- } else if (v.length === 4 && v[3].type === "dynamicArrayItem") {
781
- dynamicArrayItem = v[3].data;
847
+ } catch (e) {
848
+ console.log("[updateCell] spill failed; falling back", e);
849
+ }
850
+ var url = getUrlFromText($input === null || $input === void 0 ? void 0 : $input.innerText);
851
+ if (url && _typeof(value) === "object" && value) {
852
+ value.hl = 1;
853
+ if (!sheetFile.hyperlink) sheetFile.hyperlink = {};
854
+ sheetFile.hyperlink["".concat(r, "_").concat(c)] = {
855
+ linkType: "webpage",
856
+ linkAddress: url
857
+ };
858
+ if (typeof value.v !== "string") {
859
+ value.v = (_r = $input === null || $input === void 0 ? void 0 : $input.innerText) !== null && _r !== void 0 ? _r : url;
782
860
  }
783
- } else if (_lodash.default.isPlainObject(value)) {
784
- var valueFunction = value.f;
785
- if (_lodash.default.isString(valueFunction) && valueFunction.slice(0, 1) === "=" && valueFunction.length > 1) {
786
- var v = (0, _formula.execfunction)(ctx, valueFunction, r, c, undefined, undefined, true);
787
- isRunExecFunction = false;
788
- value.v = v[1], value.f = v[2];
789
- if (v.length === 4 && v[3].type === "sparklines") {
790
- var curCalv = v[3].data;
791
- if (_lodash.default.isArray(curCalv) && !_lodash.default.isPlainObject(curCalv[0])) {
792
- value.v = curCalv[0];
793
- } else {
794
- value.spl = v[3].data;
795
- }
796
- } else if (v.length === 4 && v[3].type === "dynamicArrayItem") {
797
- dynamicArrayItem = v[3].data;
798
- }
799
- } else {
800
- (0, _api.clearCellError)(ctx, r, c);
801
- var v = curv;
802
- if (_lodash.default.isNil(value.v)) {
803
- value.v = v;
804
- }
861
+ if (value.m == null) {
862
+ value.m = value.v;
805
863
  }
806
- } else {
807
- (0, _api.clearCellError)(ctx, r, c);
808
- (0, _formula.delFunctionGroup)(ctx, r, c);
809
- (0, _formula.execFunctionGroup)(ctx, r, c, value);
810
- isRunExecFunction = false;
864
+ if (value.fc == null) value.fc = "rgb(0, 0, 255)";
865
+ if (value.un == null) value.un = 1;
811
866
  }
812
- }
813
- var decemialCount = ((_l = oldValue === null || oldValue === void 0 ? void 0 : oldValue.m) === null || _l === void 0 ? void 0 : _l.toString().includes(".")) ? (_o = (_m = oldValue === null || oldValue === void 0 ? void 0 : oldValue.m) === null || _m === void 0 ? void 0 : _m.toString().split(" ")[0].split(".")[1]) === null || _o === void 0 ? void 0 : _o.length : 0;
814
- var coin = (_p = oldValue === null || oldValue === void 0 ? void 0 : oldValue.m) === null || _p === void 0 ? void 0 : _p.toString().split(" ")[1];
815
- if (_typeof(value) === "object" && value.baseValue && !(value === null || value === void 0 ? void 0 : value.m)) {
816
- value.m = "".concat((parseFloat(value === null || value === void 0 ? void 0 : value.v) / (oldValue === null || oldValue === void 0 ? void 0 : oldValue.baseCurrencyPrice)).toFixed(decemialCount || 2), " ").concat(coin);
817
- }
818
- if (typeof value === "string") {
819
- value = {
820
- ct: {
821
- fa: "General",
822
- t: "g"
823
- },
824
- v: value,
825
- tb: "1"
826
- };
827
- } else if (_typeof(value) === "object" && !value.tb) {
828
- value.tb = "1";
829
- }
830
- var isValueArray = Array.isArray((_q = value === null || value === void 0 ? void 0 : value.v) === null || _q === void 0 ? void 0 : _q[0]);
831
- try {
832
- if (isValueArray) {
833
- if ((0, _sort.spillSortResult)(ctx, r, c, value, d)) {
834
- cancelNormalSelected(ctx);
835
- if (ctx.hooks.afterUpdateCell) {
836
- var newValue_1 = _lodash.default.cloneDeep(d[r][c]);
837
- setTimeout(function () {
838
- var _a, _b;
839
- return (_b = (_a = ctx.hooks).afterUpdateCell) === null || _b === void 0 ? void 0 : _b.call(_a, r, c, null, newValue_1);
840
- });
867
+ setCellValue(ctx, r, c, d, value);
868
+ cancelNormalSelected(ctx);
869
+ if ((curv_1 === null || curv_1 === void 0 ? void 0 : curv_1.tb) === "2" && curv_1.v || (0, _inlineString.isInlineStringCell)(d[r][c])) {
870
+ var defaultrowlen = ctx.defaultrowlen;
871
+ var cfg = ctx.luckysheetfile[(0, _utils.getSheetIndex)(ctx, ctx.currentSheetId)].config || {};
872
+ if (!(((_s = cfg.columnlen) === null || _s === void 0 ? void 0 : _s[c]) && ((_t = cfg.rowlen) === null || _t === void 0 ? void 0 : _t[r]))) {
873
+ var cellWidth = ((_u = cfg.columnlen) === null || _u === void 0 ? void 0 : _u[c]) || ctx.defaultcollen;
874
+ var textInfo = canvas ? (0, _text.getCellTextInfo)(d[r][c], canvas, ctx, {
875
+ r: r,
876
+ c: c,
877
+ cellWidth: cellWidth
878
+ }) : null;
879
+ var currentRowLen = defaultrowlen;
880
+ if (textInfo) {
881
+ currentRowLen = textInfo.textHeightAll + 2;
882
+ }
883
+ var previousRowHeight = (0, _api.getRowHeight)(ctx, [r])[r];
884
+ if (currentRowLen > defaultrowlen && !((_v = cfg.customHeight) === null || _v === void 0 ? void 0 : _v[r]) && previousRowHeight < currentRowLen) {
885
+ if (_lodash.default.isNil(cfg.rowlen)) cfg.rowlen = {};
886
+ cfg.rowlen[r] = currentRowLen;
841
887
  }
842
- ctx.formulaCache.execFunctionGlobalData = null;
843
- return;
844
888
  }
845
889
  }
846
- } catch (e) {
847
- console.log("[updateCell] spill failed; falling back", e);
848
- }
849
- var url = getUrlFromText($input === null || $input === void 0 ? void 0 : $input.innerText);
850
- if (url && _typeof(value) === "object" && value) {
851
- value.hl = 1;
852
- if (!sheetFile.hyperlink) sheetFile.hyperlink = {};
853
- sheetFile.hyperlink["".concat(r, "_").concat(c)] = {
854
- linkType: "webpage",
855
- linkAddress: url
856
- };
857
- if (typeof value.v !== "string") {
858
- value.v = (_r = $input === null || $input === void 0 ? void 0 : $input.innerText) !== null && _r !== void 0 ? _r : url;
859
- }
860
- if (value.m == null) {
861
- value.m = value.v;
862
- }
863
- if (value.fc == null) value.fc = "rgb(0, 0, 255)";
864
- if (value.un == null) value.un = 1;
865
- }
866
- setCellValue(ctx, r, c, d, value);
867
- cancelNormalSelected(ctx);
868
- if ((curv === null || curv === void 0 ? void 0 : curv.tb) === "2" && curv.v || (0, _inlineString.isInlineStringCell)(d[r][c])) {
869
- var defaultrowlen = ctx.defaultrowlen;
870
- var cfg = ctx.luckysheetfile[(0, _utils.getSheetIndex)(ctx, ctx.currentSheetId)].config || {};
871
- if (!(((_s = cfg.columnlen) === null || _s === void 0 ? void 0 : _s[c]) && ((_t = cfg.rowlen) === null || _t === void 0 ? void 0 : _t[r]))) {
872
- var cellWidth = ((_u = cfg.columnlen) === null || _u === void 0 ? void 0 : _u[c]) || ctx.defaultcollen;
873
- var textInfo = canvas ? (0, _text.getCellTextInfo)(d[r][c], canvas, ctx, {
874
- r: r,
875
- c: c,
876
- cellWidth: cellWidth
877
- }) : null;
878
- var currentRowLen = defaultrowlen;
879
- if (textInfo) {
880
- currentRowLen = textInfo.textHeightAll + 2;
881
- }
882
- var previousRowHeight = (0, _api.getRowHeight)(ctx, [r])[r];
883
- if (currentRowLen > defaultrowlen && !((_v = cfg.customHeight) === null || _v === void 0 ? void 0 : _v[r]) && previousRowHeight < currentRowLen) {
884
- if (_lodash.default.isNil(cfg.rowlen)) cfg.rowlen = {};
885
- cfg.rowlen[r] = currentRowLen;
886
- }
890
+ if (ctx.hooks.afterUpdateCell) {
891
+ var newValue_2 = _lodash.default.cloneDeep(flowdata[r][c]);
892
+ var afterUpdateCell_1 = ctx.hooks.afterUpdateCell;
893
+ setTimeout(function () {
894
+ afterUpdateCell_1 === null || afterUpdateCell_1 === void 0 ? void 0 : afterUpdateCell_1(r, c, oldValue_1, newValue_2);
895
+ });
887
896
  }
897
+ ctx.formulaCache.execFunctionGlobalData = null;
898
+ } catch (e) {
899
+ console.error(e);
900
+ cancelNormalSelected(ctx);
888
901
  }
889
- if (ctx.hooks.afterUpdateCell) {
890
- var newValue_2 = _lodash.default.cloneDeep(flowdata[r][c]);
891
- var afterUpdateCell_1 = ctx.hooks.afterUpdateCell;
892
- setTimeout(function () {
893
- afterUpdateCell_1 === null || afterUpdateCell_1 === void 0 ? void 0 : afterUpdateCell_1(r, c, oldValue, newValue_2);
894
- });
895
- }
896
- ctx.formulaCache.execFunctionGlobalData = null;
897
902
  }
898
903
  function getOrigincell(ctx, r, c, i) {
899
904
  var data = (0, _context.getFlowdata)(ctx, i);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fileverse-dev/fortune-core",
3
- "version": "1.2.97",
3
+ "version": "1.2.98",
4
4
  "main": "lib/index.js",
5
5
  "module": "es/index.js",
6
6
  "typings": "lib/index.d.ts",