@univerjs/engine-formula 0.2.9 → 0.2.11

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.
Files changed (164) hide show
  1. package/lib/cjs/index.js +7 -1
  2. package/lib/es/index.js +4798 -1189
  3. package/lib/types/basics/__tests__/engineering.spec.d.ts +16 -0
  4. package/lib/types/basics/complex.d.ts +57 -0
  5. package/lib/types/basics/date.d.ts +15 -6
  6. package/lib/types/basics/engineering.d.ts +2 -2
  7. package/lib/types/basics/error-type.d.ts +1 -0
  8. package/lib/types/basics/financial.d.ts +19 -15
  9. package/lib/types/basics/format.d.ts +1 -1
  10. package/lib/types/engine/analysis/lexer-tree-builder.d.ts +8 -0
  11. package/lib/types/engine/utils/check-variant-error.d.ts +9 -0
  12. package/lib/types/engine/utils/math-kit.d.ts +0 -5
  13. package/lib/types/engine/value-object/primitive-object.d.ts +4 -0
  14. package/lib/types/functions/engineering/besseli/index.d.ts +2 -3
  15. package/lib/types/functions/engineering/besselj/index.d.ts +2 -3
  16. package/lib/types/functions/engineering/besselk/index.d.ts +2 -3
  17. package/lib/types/functions/engineering/bessely/index.d.ts +2 -3
  18. package/lib/types/functions/engineering/bin2dec/index.d.ts +2 -3
  19. package/lib/types/functions/engineering/bin2hex/index.d.ts +2 -3
  20. package/lib/types/functions/engineering/bin2oct/index.d.ts +2 -3
  21. package/lib/types/functions/engineering/complex/index.d.ts +2 -3
  22. package/lib/types/functions/engineering/convert/index.d.ts +2 -3
  23. package/lib/types/functions/engineering/dec2bin/index.d.ts +2 -3
  24. package/lib/types/functions/engineering/dec2hex/index.d.ts +2 -3
  25. package/lib/types/functions/engineering/dec2oct/index.d.ts +2 -3
  26. package/lib/types/functions/engineering/delta/index.d.ts +2 -3
  27. package/lib/types/functions/engineering/erf/index.d.ts +2 -3
  28. package/lib/types/functions/engineering/erf-precise/index.d.ts +2 -3
  29. package/lib/types/functions/engineering/erfc/index.d.ts +2 -3
  30. package/lib/types/functions/engineering/erfc-precise/index.d.ts +2 -3
  31. package/lib/types/functions/engineering/function-map.d.ts +3 -2
  32. package/lib/types/functions/engineering/gestep/__tests__/index.spec.d.ts +16 -0
  33. package/lib/types/functions/engineering/gestep/index.d.ts +7 -0
  34. package/lib/types/functions/engineering/hex2bin/index.d.ts +2 -3
  35. package/lib/types/functions/engineering/hex2dec/index.d.ts +2 -3
  36. package/lib/types/functions/engineering/hex2oct/index.d.ts +2 -3
  37. package/lib/types/functions/engineering/imabs/__tests__/index.spec.d.ts +16 -0
  38. package/lib/types/functions/engineering/imabs/index.d.ts +7 -0
  39. package/lib/types/functions/engineering/imaginary/__tests__/index.spec.d.ts +16 -0
  40. package/lib/types/functions/engineering/imaginary/index.d.ts +7 -0
  41. package/lib/types/functions/engineering/imargument/__tests__/index.spec.d.ts +16 -0
  42. package/lib/types/functions/engineering/imargument/index.d.ts +7 -0
  43. package/lib/types/functions/engineering/imconjugate/__tests__/index.spec.d.ts +16 -0
  44. package/lib/types/functions/engineering/imconjugate/index.d.ts +7 -0
  45. package/lib/types/functions/engineering/imcos/__tests__/index.spec.d.ts +16 -0
  46. package/lib/types/functions/engineering/imcos/index.d.ts +7 -0
  47. package/lib/types/functions/engineering/imcosh/__tests__/index.spec.d.ts +16 -0
  48. package/lib/types/functions/engineering/imcosh/index.d.ts +7 -0
  49. package/lib/types/functions/engineering/imcot/__tests__/index.spec.d.ts +16 -0
  50. package/lib/types/functions/engineering/imcot/index.d.ts +7 -0
  51. package/lib/types/functions/engineering/imcsc/__tests__/index.spec.d.ts +16 -0
  52. package/lib/types/functions/engineering/imcsc/index.d.ts +7 -0
  53. package/lib/types/functions/engineering/imcsch/__tests__/index.spec.d.ts +16 -0
  54. package/lib/types/functions/engineering/imcsch/index.d.ts +7 -0
  55. package/lib/types/functions/engineering/imdiv/__tests__/index.spec.d.ts +16 -0
  56. package/lib/types/functions/engineering/imdiv/index.d.ts +7 -0
  57. package/lib/types/functions/engineering/imexp/__tests__/index.spec.d.ts +16 -0
  58. package/lib/types/functions/engineering/imexp/index.d.ts +7 -0
  59. package/lib/types/functions/engineering/imln/__tests__/index.spec.d.ts +16 -0
  60. package/lib/types/functions/engineering/imln/index.d.ts +7 -0
  61. package/lib/types/functions/engineering/imlog10/__tests__/index.spec.d.ts +16 -0
  62. package/lib/types/functions/engineering/imlog10/index.d.ts +7 -0
  63. package/lib/types/functions/engineering/imlog2/__tests__/index.spec.d.ts +16 -0
  64. package/lib/types/functions/engineering/imlog2/index.d.ts +7 -0
  65. package/lib/types/functions/engineering/impower/__tests__/index.spec.d.ts +16 -0
  66. package/lib/types/functions/engineering/impower/index.d.ts +7 -0
  67. package/lib/types/functions/engineering/improduct/__tests__/index.spec.d.ts +16 -0
  68. package/lib/types/functions/engineering/improduct/index.d.ts +8 -0
  69. package/lib/types/functions/engineering/imreal/__tests__/index.spec.d.ts +16 -0
  70. package/lib/types/functions/engineering/imreal/index.d.ts +7 -0
  71. package/lib/types/functions/engineering/imsec/__tests__/index.spec.d.ts +16 -0
  72. package/lib/types/functions/engineering/imsec/index.d.ts +7 -0
  73. package/lib/types/functions/engineering/imsech/__tests__/index.spec.d.ts +16 -0
  74. package/lib/types/functions/engineering/imsech/index.d.ts +7 -0
  75. package/lib/types/functions/engineering/imsin/__tests__/index.spec.d.ts +16 -0
  76. package/lib/types/functions/engineering/imsin/index.d.ts +7 -0
  77. package/lib/types/functions/engineering/imsinh/__tests__/index.spec.d.ts +16 -0
  78. package/lib/types/functions/engineering/imsinh/index.d.ts +7 -0
  79. package/lib/types/functions/engineering/imsqrt/__tests__/index.spec.d.ts +16 -0
  80. package/lib/types/functions/engineering/imsqrt/index.d.ts +7 -0
  81. package/lib/types/functions/engineering/imsub/__tests__/index.spec.d.ts +16 -0
  82. package/lib/types/functions/engineering/imsub/index.d.ts +7 -0
  83. package/lib/types/functions/engineering/imsum/__tests__/index.spec.d.ts +16 -0
  84. package/lib/types/functions/engineering/imsum/index.d.ts +8 -0
  85. package/lib/types/functions/engineering/imtan/__tests__/index.spec.d.ts +16 -0
  86. package/lib/types/functions/engineering/imtan/index.d.ts +7 -0
  87. package/lib/types/functions/engineering/oct2bin/index.d.ts +2 -3
  88. package/lib/types/functions/engineering/oct2dec/index.d.ts +2 -3
  89. package/lib/types/functions/engineering/oct2hex/index.d.ts +2 -3
  90. package/lib/types/functions/financial/accrint/index.d.ts +2 -3
  91. package/lib/types/functions/financial/accrintm/index.d.ts +2 -3
  92. package/lib/types/functions/financial/amorlinc/index.d.ts +2 -3
  93. package/lib/types/functions/financial/coupdaybs/index.d.ts +2 -3
  94. package/lib/types/functions/financial/coupdays/index.d.ts +2 -3
  95. package/lib/types/functions/financial/coupdaysnc/index.d.ts +2 -3
  96. package/lib/types/functions/financial/coupncd/index.d.ts +2 -3
  97. package/lib/types/functions/financial/coupnum/index.d.ts +2 -3
  98. package/lib/types/functions/financial/couppcd/index.d.ts +2 -3
  99. package/lib/types/functions/financial/cumipmt/index.d.ts +2 -3
  100. package/lib/types/functions/financial/cumprinc/index.d.ts +2 -3
  101. package/lib/types/functions/financial/ddb/index.d.ts +0 -1
  102. package/lib/types/functions/financial/disc/index.d.ts +2 -3
  103. package/lib/types/functions/financial/dollarde/index.d.ts +2 -3
  104. package/lib/types/functions/financial/dollarfr/index.d.ts +2 -3
  105. package/lib/types/functions/financial/duration/__tests__/index.spec.d.ts +16 -0
  106. package/lib/types/functions/financial/duration/index.d.ts +7 -0
  107. package/lib/types/functions/financial/effect/index.d.ts +2 -3
  108. package/lib/types/functions/financial/function-map.d.ts +7 -3
  109. package/lib/types/functions/financial/fvschedule/index.d.ts +2 -3
  110. package/lib/types/functions/financial/intrate/index.d.ts +2 -3
  111. package/lib/types/functions/financial/irr/__tests__/index.spec.d.ts +16 -0
  112. package/lib/types/functions/financial/irr/index.d.ts +10 -0
  113. package/lib/types/functions/financial/mduration/__tests__/index.spec.d.ts +16 -0
  114. package/lib/types/functions/financial/mduration/index.d.ts +7 -0
  115. package/lib/types/functions/financial/mirr/__tests__/index.spec.d.ts +16 -0
  116. package/lib/types/functions/financial/mirr/index.d.ts +11 -0
  117. package/lib/types/functions/financial/nominal/index.d.ts +2 -3
  118. package/lib/types/functions/financial/npv/__tests__/index.spec.d.ts +16 -0
  119. package/lib/types/functions/financial/npv/index.d.ts +9 -0
  120. package/lib/types/functions/financial/oddfprice/__tests__/index.spec.d.ts +16 -0
  121. package/lib/types/functions/financial/oddfprice/index.d.ts +9 -0
  122. package/lib/types/functions/financial/oddfyield/__tests__/index.spec.d.ts +16 -0
  123. package/lib/types/functions/financial/oddfyield/index.d.ts +10 -0
  124. package/lib/types/functions/financial/oddlprice/__tests__/index.spec.d.ts +16 -0
  125. package/lib/types/functions/financial/oddlprice/index.d.ts +11 -0
  126. package/lib/types/functions/financial/oddlyield/__tests__/index.spec.d.ts +16 -0
  127. package/lib/types/functions/financial/oddlyield/index.d.ts +11 -0
  128. package/lib/types/functions/financial/pduration/__tests__/index.spec.d.ts +16 -0
  129. package/lib/types/functions/financial/pduration/index.d.ts +7 -0
  130. package/lib/types/functions/financial/price/__tests__/index.spec.d.ts +16 -0
  131. package/lib/types/functions/financial/price/index.d.ts +7 -0
  132. package/lib/types/functions/financial/pricedisc/__tests__/index.spec.d.ts +16 -0
  133. package/lib/types/functions/financial/pricedisc/index.d.ts +7 -0
  134. package/lib/types/functions/financial/pricemat/__tests__/index.spec.d.ts +16 -0
  135. package/lib/types/functions/financial/pricemat/index.d.ts +8 -0
  136. package/lib/types/functions/financial/received/__tests__/index.spec.d.ts +16 -0
  137. package/lib/types/functions/financial/received/index.d.ts +7 -0
  138. package/lib/types/functions/financial/rri/__tests__/index.spec.d.ts +16 -0
  139. package/lib/types/functions/financial/rri/index.d.ts +7 -0
  140. package/lib/types/functions/financial/sln/__tests__/index.spec.d.ts +16 -0
  141. package/lib/types/functions/financial/sln/index.d.ts +7 -0
  142. package/lib/types/functions/financial/syd/__tests__/index.spec.d.ts +16 -0
  143. package/lib/types/functions/financial/syd/index.d.ts +7 -0
  144. package/lib/types/functions/financial/tbilleq/__tests__/index.spec.d.ts +16 -0
  145. package/lib/types/functions/financial/tbilleq/index.d.ts +7 -0
  146. package/lib/types/functions/financial/tbillprice/__tests__/index.spec.d.ts +16 -0
  147. package/lib/types/functions/financial/tbillprice/index.d.ts +7 -0
  148. package/lib/types/functions/financial/tbillyield/__tests__/index.spec.d.ts +16 -0
  149. package/lib/types/functions/financial/tbillyield/index.d.ts +7 -0
  150. package/lib/types/functions/financial/vdb/__tests__/index.spec.d.ts +16 -0
  151. package/lib/types/functions/financial/vdb/index.d.ts +10 -0
  152. package/lib/types/functions/financial/xirr/__tests__/index.spec.d.ts +16 -0
  153. package/lib/types/functions/financial/xirr/index.d.ts +12 -0
  154. package/lib/types/functions/financial/xnpv/__tests__/index.spec.d.ts +16 -0
  155. package/lib/types/functions/financial/xnpv/index.d.ts +10 -0
  156. package/lib/types/functions/financial/yield/__tests__/index.spec.d.ts +16 -0
  157. package/lib/types/functions/financial/yield/index.d.ts +8 -0
  158. package/lib/types/functions/financial/yielddisc/__tests__/index.spec.d.ts +16 -0
  159. package/lib/types/functions/financial/yielddisc/index.d.ts +7 -0
  160. package/lib/types/functions/financial/yieldmat/__tests__/index.spec.d.ts +16 -0
  161. package/lib/types/functions/financial/yieldmat/index.d.ts +8 -0
  162. package/lib/types/services/function.service.d.ts +1 -1
  163. package/lib/umd/index.js +7 -1
  164. package/package.json +8 -7
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Copyright 2023-present DreamNum Inc.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ export {};
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Copyright 2023-present DreamNum Inc.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ export declare class Complex {
17
+ static getComplex(realNum: number, iNum: number, suffix: string): number | string;
18
+ static createByComplexStr(realNum: number, iNum: number, suffix: string): Complex;
19
+ private _inumber;
20
+ private _realNum;
21
+ private _iNum;
22
+ private _suffix;
23
+ private _isError;
24
+ constructor(inumber: number | string);
25
+ private _getImReal;
26
+ private _getImAginary;
27
+ private _getImSuffix;
28
+ getRealNum(): number;
29
+ getINum(): number;
30
+ getSuffix(): string;
31
+ isError(): boolean;
32
+ toString(): number | string;
33
+ isDifferentSuffixes(complex2: Complex): boolean;
34
+ Abs(): number;
35
+ Argument(): number;
36
+ Conjugate(): number | string;
37
+ Cos(): number | string;
38
+ Cosh(): number | string;
39
+ Cot(): number | string;
40
+ Csc(): number | string;
41
+ Csch(): number | string;
42
+ Div(complex2: Complex): number | string;
43
+ Exp(): number | string;
44
+ Ln(): number | string;
45
+ Log10(): number | string;
46
+ Log2(): number | string;
47
+ Power(number: number): number | string;
48
+ Product(complex2: Complex): number | string;
49
+ Sec(): number | string;
50
+ Sech(): number | string;
51
+ Sin(): number | string;
52
+ Sinh(): number | string;
53
+ Sqrt(): number | string;
54
+ Sub(complex2: Complex): number | string;
55
+ Sum(complex2: Complex): number | string;
56
+ Tan(): number | string;
57
+ }
@@ -31,17 +31,26 @@ export declare function formatDateDefault(date: Date): string;
31
31
  * @returns
32
32
  */
33
33
  export declare function isValidDateStr(dateStr: string): boolean;
34
- export declare function parseFormattedDate(value: string): any;
35
- export declare function parseFormattedValue(value: string): any;
36
- export declare function parseFormattedTime(value: string): any;
37
- export declare function isDate(format: string): any;
34
+ export declare function parseFormattedDate(value: string): import('@univerjs/core/shared/types/numfmt.type.js').ParsedReturnType;
35
+ export declare function parseFormattedValue(value: string): import('@univerjs/core/shared/types/numfmt.type.js').ParsedReturnType;
36
+ export declare function parseFormattedTime(value: string): import('@univerjs/core/shared/types/numfmt.type.js').ParsedReturnType;
37
+ export declare function isDate(format: string): boolean;
38
38
  export declare function isValidWeekend(weekend: number | string): boolean;
39
39
  export declare function getWeekendArray(weekend: number | string): number[];
40
40
  export declare function countWorkingDays(startDateSerialNumber: number, endDateSerialNumber: number, weekend?: number | string, holidays?: number[]): number;
41
41
  export declare function getDateSerialNumberByWorkingDays(startDateSerialNumber: number, workingDays: number, weekend?: number | string, holidays?: number[]): (number | ErrorValueObject);
42
42
  export declare function getDateSerialNumberByObject(serialNumberObject: BaseValueObject): (ErrorValueObject | number);
43
43
  export declare function getWeekDayByDateSerialNumber(dateSerialNumber: number): number;
44
- export declare function getTwoDateDaysByBasis(startDateSerialNumber: number, endDateSerialNumber: number, basis: number): {
44
+ interface ITwoDateDaysType {
45
45
  days: number;
46
46
  yearDays: number;
47
- };
47
+ }
48
+ export declare function getTwoDateDaysByBasis(startDateSerialNumber: number, endDateSerialNumber: number, basis: number): ITwoDateDaysType;
49
+ export declare function isLeapYear(year: number): boolean;
50
+ export declare function isLeapYear1900(year: number): boolean;
51
+ export declare function getDaysInMonth(year: number, month: number): number;
52
+ export declare function getDaysInYear(year: number): number;
53
+ export declare function getNormalYearDaysByBasis(dateSerialNumber: number, basis: number): number;
54
+ export declare function lastDayOfMonth(year: number, month: number, day: number): boolean;
55
+ export declare function dateAddMonths(date: Date, months: number): Date;
56
+ export {};
@@ -15,9 +15,9 @@
15
15
  */
16
16
  export declare namespace BESSEL {
17
17
  const besselj: (x: number, n: number) => number;
18
- const bessely: (x: number, n: number) => any;
18
+ const bessely: (x: number, n: number) => number;
19
19
  const besseli: (x: number, n: number) => number;
20
- const besselk: (x: number, n: number) => any;
20
+ const besselk: (x: number, n: number) => number;
21
21
  }
22
22
  export declare function isValidBinaryNumber(number: string): boolean;
23
23
  export declare function isValidOctalNumber(number: string): boolean;
@@ -37,3 +37,4 @@ export declare enum ErrorType {
37
37
  NULL = "#NULL!"
38
38
  }
39
39
  export declare const ERROR_TYPE_SET: Set<ErrorType>;
40
+ export declare const ERROR_TYPE_COUNT_ARRAY: number[];
@@ -1,18 +1,22 @@
1
- /**
2
- * Copyright 2023-present DreamNum Inc.
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * http://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
1
+ import { ErrorValueObject } from '../engine/value-object/base-value-object';
2
+ export declare function calculateCoupdaybs(settlementSerialNumber: number, maturitySerialNumber: number, frequency: number, basis: number): number;
3
+ export declare function calculateCoupdays(settlementSerialNumber: number, maturitySerialNumber: number, frequency: number, basis: number): number;
4
+ export declare function calculateCoupncd(settlementSerialNumber: number, maturitySerialNumber: number, frequency: number): number;
5
+ export declare function calculateCoupnum(settlementSerialNumber: number, maturitySerialNumber: number, frequency: number): number;
6
+ export declare function calculateCouppcd(settlementSerialNumber: number, maturitySerialNumber: number, frequency: number): number;
7
+ export declare function calculateDuration(settlementSerialNumber: number, maturitySerialNumber: number, coupon: number, yld: number, frequency: number, basis: number): number;
16
8
  export declare function calculatePMT(rate: number, nper: number, pv: number, fv: number, type: number): number;
17
9
  export declare function calculateFV(rate: number, nper: number, pmt: number, pv: number, type: number): number;
18
10
  export declare function calculateIPMT(rate: number, per: number, nper: number, pv: number, fv: number, type: number): number;
11
+ export declare function calculateNpv(rate: number, values: number[]): number;
12
+ export declare function calculateOddFPrice(settlementSerialNumber: number, maturitySerialNumber: number, issueSerialNumber: number, firstCouponSerialNumber: number, rate: number, yld: number, redemption: number, frequency: number, basis: number): number;
13
+ export declare function validDaysBetweenIsWholeFrequencyByTwoDate(date1SerialNumber: number, date2SerialNumber: number, frequency: number): boolean;
14
+ export declare function validCouppcdIsGte0ByTwoDate(date1SerialNumber: number, date2SerialNumber: number, frequency: number): boolean;
15
+ export declare function getDateSerialNumberByMonths(serialNumber: number, months: number, returnLastDay: boolean): number;
16
+ interface IIterFFunctionType {
17
+ (x: number): number;
18
+ }
19
+ export declare function getResultByGuessIterF(guess: number, iterF: IIterFFunctionType): number | ErrorValueObject;
20
+ export declare function calculatePrice(settlementSerialNumber: number, maturitySerialNumber: number, rate: number, yld: number, redemption: number, frequency: number, basis: number): number;
21
+ export declare function calculateDDB(cost: number, salvage: number, life: number, period: number, factor: number): number;
22
+ export {};
@@ -21,4 +21,4 @@
21
21
  * @param value
22
22
  * @returns
23
23
  */
24
- export declare const getFormatPreview: (pattern: string, value: number) => any;
24
+ export declare const getFormatPreview: (pattern: string, value: number) => string;
@@ -41,6 +41,11 @@ export declare class LexerTreeBuilder extends Disposable {
41
41
  sequenceNodesBuilder(formulaString: string): (string | ISequenceNode)[] | undefined;
42
42
  convertRefersToAbsolute(formulaString: string, startAbsoluteRefType: AbsoluteRefType, endAbsoluteRefType: AbsoluteRefType): string;
43
43
  moveFormulaRefOffset(formulaString: string, refOffsetX: number, refOffsetY: number, ignoreAbsolute?: boolean): string;
44
+ /**
45
+ * univer-pro/issues/1684
46
+ * =sum({}{})
47
+ */
48
+ private _formulaSpellCheck;
44
49
  getSequenceNode(sequenceArray: ISequenceArray[]): (string | ISequenceNode)[];
45
50
  private _processPushSequenceNode;
46
51
  private _getCurrentParamIndex;
@@ -101,7 +106,10 @@ export declare class LexerTreeBuilder extends Disposable {
101
106
  private _negativeCondition;
102
107
  private _getSequenceArray;
103
108
  private _resetTemp;
109
+ private _checkErrorState;
104
110
  private _checkSimilarErrorToken;
111
+ private _checkIfErrorObject;
112
+ private _findErrorObject;
105
113
  private _nodeMaker;
106
114
  private _isScientificNotation;
107
115
  private _addSequenceArray;
@@ -9,6 +9,15 @@ export declare function checkVariantsErrorIsArrayOrBoolean(...variants: BaseValu
9
9
  variants: BaseValueObject[];
10
10
  errorObject?: undefined;
11
11
  };
12
+ export declare function checkVariantsErrorIsNullorArrayOrBoolean(...variants: BaseValueObject[]): {
13
+ isError: boolean;
14
+ errorObject: BaseValueObject;
15
+ variants?: undefined;
16
+ } | {
17
+ isError: boolean;
18
+ variants: BaseValueObject[];
19
+ errorObject?: undefined;
20
+ };
12
21
  export declare function checkVariantsErrorIsStringToNumber(...variants: BaseValueObject[]): {
13
22
  isError: boolean;
14
23
  errorObject: BaseValueObject;
@@ -13,11 +13,6 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- /**
17
- * Since Excel follows the IEEE 754 specification, it only handles precision issues when displaying cells. For example, =0.1+0.2, the stored value in XML is 0.30000000000000004, and the displayed value is 0.3. The accuracy of the calculation process does not need to be considered. We only focus on the accuracy of the calculation results. Any result is processed within 15 digits.
18
-
19
- Reference https://en.wikipedia.org/wiki/Numeric_precision_in_Microsoft_Excel
20
- */
21
16
  export declare function plus(a: number, b: number): number;
22
17
  export declare function minus(a: number, b: number): number;
23
18
  export declare function multiply(a: number, b: number): number;
@@ -156,6 +156,10 @@ export declare class StringValueObject extends BaseValueObject {
156
156
  isString(): boolean;
157
157
  concatenateFront(valueObject: BaseValueObject): BaseValueObject;
158
158
  concatenateBack(valueObject: BaseValueObject): BaseValueObject;
159
+ plus(valueObject: BaseValueObject): BaseValueObject;
160
+ minus(valueObject: BaseValueObject): BaseValueObject;
161
+ multiply(valueObject: BaseValueObject): BaseValueObject;
162
+ divided(valueObject: BaseValueObject): BaseValueObject;
159
163
  compare(valueObject: BaseValueObject, operator: compareToken, isCaseSensitive?: boolean): BaseValueObject;
160
164
  compareBy(value: string | number | boolean, operator: compareToken, isCaseSensitive?: boolean): BaseValueObject;
161
165
  private _compareString;
@@ -1,8 +1,7 @@
1
- import { BaseValueObject, ErrorValueObject } from '../../../engine/value-object/base-value-object';
1
+ import { BaseValueObject } from '../../../engine/value-object/base-value-object';
2
2
  import { BaseFunction } from '../../base-function';
3
- import { NumberValueObject } from '../../../engine/value-object/primitive-object';
4
3
  export declare class Besseli extends BaseFunction {
5
4
  minParams: number;
6
5
  maxParams: number;
7
- calculate(x: BaseValueObject, n: BaseValueObject): ErrorValueObject | NumberValueObject;
6
+ calculate(x: BaseValueObject, n: BaseValueObject): BaseValueObject;
8
7
  }
@@ -1,8 +1,7 @@
1
- import { BaseValueObject, ErrorValueObject } from '../../../engine/value-object/base-value-object';
1
+ import { BaseValueObject } from '../../../engine/value-object/base-value-object';
2
2
  import { BaseFunction } from '../../base-function';
3
- import { NumberValueObject } from '../../../engine/value-object/primitive-object';
4
3
  export declare class Besselj extends BaseFunction {
5
4
  minParams: number;
6
5
  maxParams: number;
7
- calculate(x: BaseValueObject, n: BaseValueObject): ErrorValueObject | NumberValueObject;
6
+ calculate(x: BaseValueObject, n: BaseValueObject): BaseValueObject;
8
7
  }
@@ -1,8 +1,7 @@
1
- import { BaseValueObject, ErrorValueObject } from '../../../engine/value-object/base-value-object';
1
+ import { BaseValueObject } from '../../../engine/value-object/base-value-object';
2
2
  import { BaseFunction } from '../../base-function';
3
- import { NumberValueObject } from '../../../engine/value-object/primitive-object';
4
3
  export declare class Besselk extends BaseFunction {
5
4
  minParams: number;
6
5
  maxParams: number;
7
- calculate(x: BaseValueObject, n: BaseValueObject): ErrorValueObject | NumberValueObject;
6
+ calculate(x: BaseValueObject, n: BaseValueObject): BaseValueObject;
8
7
  }
@@ -1,8 +1,7 @@
1
- import { BaseValueObject, ErrorValueObject } from '../../../engine/value-object/base-value-object';
1
+ import { BaseValueObject } from '../../../engine/value-object/base-value-object';
2
2
  import { BaseFunction } from '../../base-function';
3
- import { NumberValueObject } from '../../../engine/value-object/primitive-object';
4
3
  export declare class Bessely extends BaseFunction {
5
4
  minParams: number;
6
5
  maxParams: number;
7
- calculate(x: BaseValueObject, n: BaseValueObject): ErrorValueObject | NumberValueObject;
6
+ calculate(x: BaseValueObject, n: BaseValueObject): BaseValueObject;
8
7
  }
@@ -1,8 +1,7 @@
1
- import { BaseValueObject, ErrorValueObject } from '../../../engine/value-object/base-value-object';
1
+ import { BaseValueObject } from '../../../engine/value-object/base-value-object';
2
2
  import { BaseFunction } from '../../base-function';
3
- import { NumberValueObject } from '../../../engine/value-object/primitive-object';
4
3
  export declare class Bin2dec extends BaseFunction {
5
4
  minParams: number;
6
5
  maxParams: number;
7
- calculate(number: BaseValueObject): ErrorValueObject | NumberValueObject;
6
+ calculate(number: BaseValueObject): BaseValueObject;
8
7
  }
@@ -1,8 +1,7 @@
1
- import { BaseValueObject, ErrorValueObject } from '../../../engine/value-object/base-value-object';
1
+ import { BaseValueObject } from '../../../engine/value-object/base-value-object';
2
2
  import { BaseFunction } from '../../base-function';
3
- import { StringValueObject } from '../../../engine/value-object/primitive-object';
4
3
  export declare class Bin2hex extends BaseFunction {
5
4
  minParams: number;
6
5
  maxParams: number;
7
- calculate(number: BaseValueObject, places?: BaseValueObject): ErrorValueObject | StringValueObject;
6
+ calculate(number: BaseValueObject, places?: BaseValueObject): BaseValueObject;
8
7
  }
@@ -1,8 +1,7 @@
1
- import { BaseValueObject, ErrorValueObject } from '../../../engine/value-object/base-value-object';
1
+ import { BaseValueObject } from '../../../engine/value-object/base-value-object';
2
2
  import { BaseFunction } from '../../base-function';
3
- import { StringValueObject } from '../../../engine/value-object/primitive-object';
4
3
  export declare class Bin2oct extends BaseFunction {
5
4
  minParams: number;
6
5
  maxParams: number;
7
- calculate(number: BaseValueObject, places?: BaseValueObject): ErrorValueObject | StringValueObject;
6
+ calculate(number: BaseValueObject, places?: BaseValueObject): BaseValueObject;
8
7
  }
@@ -1,8 +1,7 @@
1
- import { BaseValueObject, ErrorValueObject } from '../../../engine/value-object/base-value-object';
1
+ import { BaseValueObject } from '../../../engine/value-object/base-value-object';
2
2
  import { BaseFunction } from '../../base-function';
3
- import { NumberValueObject, StringValueObject } from '../../../engine/value-object/primitive-object';
4
3
  export declare class Complex extends BaseFunction {
5
4
  minParams: number;
6
5
  maxParams: number;
7
- calculate(realNum: BaseValueObject, iNum: BaseValueObject, suffix?: BaseValueObject): ErrorValueObject | NumberValueObject | StringValueObject;
6
+ calculate(realNum: BaseValueObject, iNum: BaseValueObject, suffix?: BaseValueObject): BaseValueObject;
8
7
  }
@@ -1,10 +1,9 @@
1
- import { BaseValueObject, ErrorValueObject } from '../../../engine/value-object/base-value-object';
1
+ import { BaseValueObject } from '../../../engine/value-object/base-value-object';
2
2
  import { BaseFunction } from '../../base-function';
3
- import { NumberValueObject } from '../../../engine/value-object/primitive-object';
4
3
  export declare class Convert extends BaseFunction {
5
4
  minParams: number;
6
5
  maxParams: number;
7
- calculate(number: BaseValueObject, fromUnit: BaseValueObject, toUnit: BaseValueObject): ErrorValueObject | NumberValueObject;
6
+ calculate(number: BaseValueObject, fromUnit: BaseValueObject, toUnit: BaseValueObject): BaseValueObject;
8
7
  private _lookupFromAndToUnits;
9
8
  private _lookupFromPrefix;
10
9
  private _lookupToPrefix;
@@ -1,8 +1,7 @@
1
- import { BaseValueObject, ErrorValueObject } from '../../../engine/value-object/base-value-object';
1
+ import { BaseValueObject } from '../../../engine/value-object/base-value-object';
2
2
  import { BaseFunction } from '../../base-function';
3
- import { StringValueObject } from '../../../engine/value-object/primitive-object';
4
3
  export declare class Dec2bin extends BaseFunction {
5
4
  minParams: number;
6
5
  maxParams: number;
7
- calculate(number: BaseValueObject, places?: BaseValueObject): ErrorValueObject | StringValueObject;
6
+ calculate(number: BaseValueObject, places?: BaseValueObject): BaseValueObject;
8
7
  }
@@ -1,8 +1,7 @@
1
- import { BaseValueObject, ErrorValueObject } from '../../../engine/value-object/base-value-object';
1
+ import { BaseValueObject } from '../../../engine/value-object/base-value-object';
2
2
  import { BaseFunction } from '../../base-function';
3
- import { StringValueObject } from '../../../engine/value-object/primitive-object';
4
3
  export declare class Dec2hex extends BaseFunction {
5
4
  minParams: number;
6
5
  maxParams: number;
7
- calculate(number: BaseValueObject, places?: BaseValueObject): ErrorValueObject | StringValueObject;
6
+ calculate(number: BaseValueObject, places?: BaseValueObject): BaseValueObject;
8
7
  }
@@ -1,8 +1,7 @@
1
- import { BaseValueObject, ErrorValueObject } from '../../../engine/value-object/base-value-object';
1
+ import { BaseValueObject } from '../../../engine/value-object/base-value-object';
2
2
  import { BaseFunction } from '../../base-function';
3
- import { StringValueObject } from '../../../engine/value-object/primitive-object';
4
3
  export declare class Dec2oct extends BaseFunction {
5
4
  minParams: number;
6
5
  maxParams: number;
7
- calculate(number: BaseValueObject, places?: BaseValueObject): ErrorValueObject | StringValueObject;
6
+ calculate(number: BaseValueObject, places?: BaseValueObject): BaseValueObject;
8
7
  }
@@ -1,8 +1,7 @@
1
- import { BaseValueObject, ErrorValueObject } from '../../../engine/value-object/base-value-object';
1
+ import { BaseValueObject } from '../../../engine/value-object/base-value-object';
2
2
  import { BaseFunction } from '../../base-function';
3
- import { NumberValueObject } from '../../../engine/value-object/primitive-object';
4
3
  export declare class Delta extends BaseFunction {
5
4
  minParams: number;
6
5
  maxParams: number;
7
- calculate(number1: BaseValueObject, number2?: BaseValueObject): ErrorValueObject | NumberValueObject;
6
+ calculate(number1: BaseValueObject, number2?: BaseValueObject): BaseValueObject;
8
7
  }
@@ -1,8 +1,7 @@
1
- import { BaseValueObject, ErrorValueObject } from '../../../engine/value-object/base-value-object';
1
+ import { BaseValueObject } from '../../../engine/value-object/base-value-object';
2
2
  import { BaseFunction } from '../../base-function';
3
- import { NumberValueObject } from '../../../engine/value-object/primitive-object';
4
3
  export declare class Erf extends BaseFunction {
5
4
  minParams: number;
6
5
  maxParams: number;
7
- calculate(lowerLimit: BaseValueObject, upperLimit?: BaseValueObject): ErrorValueObject | NumberValueObject;
6
+ calculate(lowerLimit: BaseValueObject, upperLimit?: BaseValueObject): BaseValueObject;
8
7
  }
@@ -1,8 +1,7 @@
1
- import { BaseValueObject, ErrorValueObject } from '../../../engine/value-object/base-value-object';
1
+ import { BaseValueObject } from '../../../engine/value-object/base-value-object';
2
2
  import { BaseFunction } from '../../base-function';
3
- import { NumberValueObject } from '../../../engine/value-object/primitive-object';
4
3
  export declare class ErfPrecise extends BaseFunction {
5
4
  minParams: number;
6
5
  maxParams: number;
7
- calculate(x: BaseValueObject): ErrorValueObject | NumberValueObject;
6
+ calculate(x: BaseValueObject): BaseValueObject;
8
7
  }
@@ -1,8 +1,7 @@
1
- import { BaseValueObject, ErrorValueObject } from '../../../engine/value-object/base-value-object';
1
+ import { BaseValueObject } from '../../../engine/value-object/base-value-object';
2
2
  import { BaseFunction } from '../../base-function';
3
- import { NumberValueObject } from '../../../engine/value-object/primitive-object';
4
3
  export declare class Erfc extends BaseFunction {
5
4
  minParams: number;
6
5
  maxParams: number;
7
- calculate(x: BaseValueObject): ErrorValueObject | NumberValueObject;
6
+ calculate(x: BaseValueObject): BaseValueObject;
8
7
  }
@@ -1,8 +1,7 @@
1
- import { BaseValueObject, ErrorValueObject } from '../../../engine/value-object/base-value-object';
1
+ import { BaseValueObject } from '../../../engine/value-object/base-value-object';
2
2
  import { BaseFunction } from '../../base-function';
3
- import { NumberValueObject } from '../../../engine/value-object/primitive-object';
4
3
  export declare class ErfcPrecise extends BaseFunction {
5
4
  minParams: number;
6
5
  maxParams: number;
7
- calculate(x: BaseValueObject): ErrorValueObject | NumberValueObject;
6
+ calculate(x: BaseValueObject): BaseValueObject;
8
7
  }
@@ -1,4 +1,5 @@
1
1
  import { FUNCTION_NAMES_ENGINEERING } from './function-names';
2
- import { Bitand } from './bitand';
3
2
  import { Complex } from './complex';
4
- export declare const functionEngineering: ((FUNCTION_NAMES_ENGINEERING | typeof Bitand)[] | (FUNCTION_NAMES_ENGINEERING | typeof Complex)[])[];
3
+ import { Improduct } from './improduct';
4
+ import { Imsum } from './imsum';
5
+ export declare const functionEngineering: ((FUNCTION_NAMES_ENGINEERING | typeof Complex)[] | (FUNCTION_NAMES_ENGINEERING | typeof Improduct)[] | (FUNCTION_NAMES_ENGINEERING | typeof Imsum)[])[];
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Copyright 2023-present DreamNum Inc.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ export {};
@@ -0,0 +1,7 @@
1
+ import { BaseValueObject } from '../../../engine/value-object/base-value-object';
2
+ import { BaseFunction } from '../../base-function';
3
+ export declare class Gestep extends BaseFunction {
4
+ minParams: number;
5
+ maxParams: number;
6
+ calculate(number: BaseValueObject, step?: BaseValueObject): BaseValueObject;
7
+ }
@@ -1,8 +1,7 @@
1
- import { BaseValueObject, ErrorValueObject } from '../../../engine/value-object/base-value-object';
1
+ import { BaseValueObject } from '../../../engine/value-object/base-value-object';
2
2
  import { BaseFunction } from '../../base-function';
3
- import { StringValueObject } from '../../../engine/value-object/primitive-object';
4
3
  export declare class Hex2bin extends BaseFunction {
5
4
  minParams: number;
6
5
  maxParams: number;
7
- calculate(number: BaseValueObject, places?: BaseValueObject): ErrorValueObject | StringValueObject;
6
+ calculate(number: BaseValueObject, places?: BaseValueObject): BaseValueObject;
8
7
  }
@@ -1,8 +1,7 @@
1
- import { BaseValueObject, ErrorValueObject } from '../../../engine/value-object/base-value-object';
1
+ import { BaseValueObject } from '../../../engine/value-object/base-value-object';
2
2
  import { BaseFunction } from '../../base-function';
3
- import { NumberValueObject } from '../../../engine/value-object/primitive-object';
4
3
  export declare class Hex2dec extends BaseFunction {
5
4
  minParams: number;
6
5
  maxParams: number;
7
- calculate(number: BaseValueObject): ErrorValueObject | NumberValueObject;
6
+ calculate(number: BaseValueObject): BaseValueObject;
8
7
  }
@@ -1,8 +1,7 @@
1
- import { BaseValueObject, ErrorValueObject } from '../../../engine/value-object/base-value-object';
1
+ import { BaseValueObject } from '../../../engine/value-object/base-value-object';
2
2
  import { BaseFunction } from '../../base-function';
3
- import { StringValueObject } from '../../../engine/value-object/primitive-object';
4
3
  export declare class Hex2oct extends BaseFunction {
5
4
  minParams: number;
6
5
  maxParams: number;
7
- calculate(number: BaseValueObject, places?: BaseValueObject): ErrorValueObject | StringValueObject;
6
+ calculate(number: BaseValueObject, places?: BaseValueObject): BaseValueObject;
8
7
  }
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Copyright 2023-present DreamNum Inc.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ export {};
@@ -0,0 +1,7 @@
1
+ import { BaseValueObject } from '../../../engine/value-object/base-value-object';
2
+ import { BaseFunction } from '../../base-function';
3
+ export declare class Imabs extends BaseFunction {
4
+ minParams: number;
5
+ maxParams: number;
6
+ calculate(inumber: BaseValueObject): BaseValueObject;
7
+ }
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Copyright 2023-present DreamNum Inc.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ export {};
@@ -0,0 +1,7 @@
1
+ import { BaseValueObject } from '../../../engine/value-object/base-value-object';
2
+ import { BaseFunction } from '../../base-function';
3
+ export declare class Imaginary extends BaseFunction {
4
+ minParams: number;
5
+ maxParams: number;
6
+ calculate(inumber: BaseValueObject): BaseValueObject;
7
+ }
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Copyright 2023-present DreamNum Inc.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ export {};
@@ -0,0 +1,7 @@
1
+ import { BaseValueObject } from '../../../engine/value-object/base-value-object';
2
+ import { BaseFunction } from '../../base-function';
3
+ export declare class Imargument extends BaseFunction {
4
+ minParams: number;
5
+ maxParams: number;
6
+ calculate(inumber: BaseValueObject): BaseValueObject;
7
+ }
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Copyright 2023-present DreamNum Inc.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ export {};