@univerjs/engine-formula 0.1.1 → 0.1.2

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 (88) hide show
  1. package/README.md +6 -2
  2. package/lib/cjs/index.js +1 -1
  3. package/lib/es/index.js +4630 -3883
  4. package/lib/types/basics/__tests__/regex.spec.d.ts +16 -0
  5. package/lib/types/basics/common.d.ts +3 -1
  6. package/lib/types/basics/date.d.ts +8 -0
  7. package/lib/types/basics/regex.d.ts +8 -6
  8. package/lib/types/engine/reference-object/base-reference-object.d.ts +2 -0
  9. package/lib/types/engine/utils/__tests__/math-kit.spec.d.ts +16 -0
  10. package/lib/types/engine/utils/__tests__/object-covert.spec.d.ts +16 -0
  11. package/lib/types/engine/utils/math-kit.d.ts +7 -0
  12. package/lib/types/engine/utils/object-covert.d.ts +18 -0
  13. package/lib/types/engine/utils/reference.d.ts +0 -3
  14. package/lib/types/engine/value-object/array-value-object.d.ts +26 -5
  15. package/lib/types/engine/value-object/base-value-object.d.ts +12 -0
  16. package/lib/types/engine/value-object/primitive-object.d.ts +3 -0
  17. package/lib/types/functions/base-function.d.ts +11 -1
  18. package/lib/types/functions/compatibility/function-map.d.ts +3 -1
  19. package/lib/types/functions/date/day/index.d.ts +1 -0
  20. package/lib/types/functions/date/month/index.d.ts +1 -0
  21. package/lib/types/functions/date/year/index.d.ts +1 -0
  22. package/lib/types/functions/information/iserr/__tests__/index.spec.d.ts +16 -0
  23. package/lib/types/functions/information/iserr/index.d.ts +20 -0
  24. package/lib/types/functions/information/iserror/__tests__/index.spec.d.ts +16 -0
  25. package/lib/types/functions/information/iserror/index.d.ts +20 -0
  26. package/lib/types/functions/information/islogical/__tests__/index.spec.d.ts +16 -0
  27. package/lib/types/functions/information/islogical/index.d.ts +20 -0
  28. package/lib/types/functions/information/isna/__tests__/index.spec.d.ts +16 -0
  29. package/lib/types/functions/information/isna/index.d.ts +20 -0
  30. package/lib/types/functions/information/isnontext/__tests__/index.spec.d.ts +16 -0
  31. package/lib/types/functions/information/isnontext/index.d.ts +20 -0
  32. package/lib/types/functions/information/isnumber/__tests__/index.spec.d.ts +16 -0
  33. package/lib/types/functions/information/isnumber/index.d.ts +20 -0
  34. package/lib/types/functions/information/isref/__tests__/index.spec.d.ts +16 -0
  35. package/lib/types/functions/information/isref/index.d.ts +22 -0
  36. package/lib/types/functions/information/istext/__tests__/index.spec.d.ts +16 -0
  37. package/lib/types/functions/information/istext/index.d.ts +20 -0
  38. package/lib/types/functions/logical/function-map.d.ts +2 -1
  39. package/lib/types/functions/logical/iferror/index.d.ts +2 -1
  40. package/lib/types/functions/lookup/column/__tests__/index.spec.d.ts +16 -0
  41. package/lib/types/functions/lookup/column/index.d.ts +21 -0
  42. package/lib/types/functions/lookup/columns/__tests__/index.spec.d.ts +16 -0
  43. package/lib/types/functions/lookup/columns/index.d.ts +20 -0
  44. package/lib/types/functions/lookup/function-map.d.ts +6 -1
  45. package/lib/types/functions/lookup/index/__test__/index.spec.d.ts +16 -0
  46. package/lib/types/functions/lookup/index/index.d.ts +24 -0
  47. package/lib/types/functions/lookup/lookup/index.d.ts +1 -0
  48. package/lib/types/functions/lookup/row/__tests__/index.spec.d.ts +16 -0
  49. package/lib/types/functions/lookup/row/index.d.ts +21 -0
  50. package/lib/types/functions/lookup/rows/__tests__/index.spec.d.ts +16 -0
  51. package/lib/types/functions/lookup/rows/index.d.ts +20 -0
  52. package/lib/types/functions/lookup/xlookup/index.d.ts +1 -1
  53. package/lib/types/functions/math/function-map.d.ts +3 -1
  54. package/lib/types/functions/math/mod/__tests__/index.spec.d.ts +16 -0
  55. package/lib/types/functions/math/mod/index.d.ts +20 -0
  56. package/lib/types/functions/math/power/__tests__/index.spec.d.ts +16 -0
  57. package/lib/types/functions/math/power/index.d.ts +2 -3
  58. package/lib/types/functions/math/product/__tests__/index.spec.d.ts +16 -0
  59. package/lib/types/functions/math/product/index.d.ts +21 -0
  60. package/lib/types/functions/math/subtotal/__tests__/index.spec.d.ts +16 -0
  61. package/lib/types/functions/math/subtotal/index.d.ts +38 -0
  62. package/lib/types/functions/math/sum/__tests__/index.spec.d.ts +16 -0
  63. package/lib/types/functions/statistical/average/__tests__/index.spec.d.ts +16 -0
  64. package/lib/types/functions/statistical/count/__tests__/index.spec.d.ts +16 -0
  65. package/lib/types/functions/statistical/counta/__tests__/index.spec.d.ts +16 -0
  66. package/lib/types/functions/statistical/counta/index.d.ts +1 -1
  67. package/lib/types/functions/statistical/function-map.d.ts +2 -2
  68. package/lib/types/functions/statistical/max/__tests__/index.spec.d.ts +16 -0
  69. package/lib/types/functions/statistical/min/__tests__/index.spec.d.ts +16 -0
  70. package/lib/types/functions/statistical/stdev-p/__tests__/index.spec.d.ts +16 -0
  71. package/lib/types/functions/statistical/stdev-p/index.d.ts +20 -0
  72. package/lib/types/functions/statistical/stdev-s/__tests__/index.spec.d.ts +16 -0
  73. package/lib/types/functions/statistical/stdev-s/index.d.ts +20 -0
  74. package/lib/types/functions/statistical/stdeva/__tests__/index.spec.d.ts +16 -0
  75. package/lib/types/functions/statistical/stdeva/index.d.ts +20 -0
  76. package/lib/types/functions/statistical/stdevpa/__tests__/index.spec.d.ts +16 -0
  77. package/lib/types/functions/statistical/stdevpa/index.d.ts +20 -0
  78. package/lib/types/functions/statistical/var-p/__tests__/index.spec.d.ts +16 -0
  79. package/lib/types/functions/statistical/var-p/index.d.ts +20 -0
  80. package/lib/types/functions/statistical/var-s/__tests__/index.spec.d.ts +16 -0
  81. package/lib/types/functions/statistical/var-s/index.d.ts +20 -0
  82. package/lib/types/functions/statistical/vara/__tests__/index.spec.d.ts +16 -0
  83. package/lib/types/functions/statistical/vara/index.d.ts +20 -0
  84. package/lib/types/functions/statistical/varpa/__tests__/index.spec.d.ts +16 -0
  85. package/lib/types/functions/statistical/varpa/index.d.ts +20 -0
  86. package/lib/types/index.d.ts +3 -3
  87. package/lib/umd/index.js +1 -1
  88. package/package.json +4 -4
@@ -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 {};
@@ -13,7 +13,7 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import type { BooleanNumber, ICellData, IObjectMatrixPrimitiveType, IRange, IUnitRange, Nullable, ObjectMatrix } from '@univerjs/core';
16
+ import type { BooleanNumber, ICellData, IColumnData, IObjectArrayPrimitiveType, IObjectMatrixPrimitiveType, IRange, IRowData, IUnitRange, Nullable, ObjectMatrix } from '@univerjs/core';
17
17
  export declare const ERROR_VALUE_OBJECT_CLASS_TYPE = "errorValueObject";
18
18
  export declare const ASYNC_OBJECT_CLASS_TYPE = "asyncObject";
19
19
  export declare const REFERENCE_OBJECT_CLASS_TYPE = "referenceObject";
@@ -30,6 +30,8 @@ export interface ISheetItem {
30
30
  cellData: ObjectMatrix<ICellData>;
31
31
  rowCount: number;
32
32
  columnCount: number;
33
+ rowData: IObjectArrayPrimitiveType<Partial<IRowData>>;
34
+ columnData: IObjectArrayPrimitiveType<Partial<IColumnData>>;
33
35
  }
34
36
  export interface ISheetData {
35
37
  [sheetId: string]: ISheetItem;
@@ -28,3 +28,11 @@ export declare const DEFFAULT_DATE_FORMAT = "yyyy-mm-dd;@";
28
28
  export declare function excelDateSerial(date: Date): number;
29
29
  export declare function excelSerialToDate(serial: number): Date;
30
30
  export declare function formatDateDefault(date: Date): string;
31
+ /**
32
+ * Validate date string
33
+ *
34
+ * TODO @Dushusir: Internationalization and more format support, can be reused when editing and saving cells, like "2020年1月1日"
35
+ * @param dateStr
36
+ * @returns
37
+ */
38
+ export declare function isValidDateStr(dateStr: string): boolean;
@@ -13,16 +13,18 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
+ export declare const UNIT_NAME_REGEX = "\\[([^\\[\\]\\/?:\"<>|*\\\\]+)\\]";
16
17
  export declare const SHEET_NAME_REGEX = "((?![\\[\\]\\/?*\\\\]).)*!";
17
18
  export declare const ABSOLUTE_SYMBOL = "$";
18
19
  export declare const RANGE_SYMBOL = "\\s*?:\\s*?";
20
+ export declare const UNIT_NAME_SHEET_NAME_REGEX = "'?(\\[([^\\[\\]\\/?:\"<>|*\\\\]+)\\])?(((?![\\[\\]\\/?*\\\\]).)*!)?'?";
19
21
  export declare const SIMPLE_SINGLE_RANGE_REGEX = "\\$?[A-Za-z]+\\$?[0-9]+";
20
- export declare const REFERENCE_MULTIPLE_RANGE_REGEX = "^(@)?(\\[([^\\[\\]\\/?:\"<>|*\\\\]+)\\])?(((?![\\[\\]\\/?*\\\\]).)*!)?\\$?[A-Za-z]+\\$?[0-9]+\\s*?:\\s*?\\$?[A-Za-z]+\\$?[0-9]+$";
21
- export declare const REFERENCE_SINGLE_RANGE_REGEX = "^(\\[([^\\[\\]\\/?:\"<>|*\\\\]+)\\])?(((?![\\[\\]\\/?*\\\\]).)*!)?\\s*?\\$?[A-Za-z]+\\$?[0-9]+(#)?$";
22
- export declare const REFERENCE_REGEX_ROW = "^(\\[([^\\[\\]\\/?:\"<>|*\\\\]+)\\])?(((?![\\[\\]\\/?*\\\\]).)*!)?\\$?[0-9]+\\s*?:\\s*?\\$?[0-9]+$";
23
- export declare const REFERENCE_REGEX_COLUMN = "^(\\[([^\\[\\]\\/?:\"<>|*\\\\]+)\\])?(((?![\\[\\]\\/?*\\\\]).)*!)?\\$?[A-Za-z]+\\s*?:\\s*?\\$?[A-Za-z]+$";
24
- export declare const REFERENCE_REGEX_SINGLE_ROW = "^(\\[([^\\[\\]\\/?:\"<>|*\\\\]+)\\])?(((?![\\[\\]\\/?*\\\\]).)*!)?\\s*?\\$?[0-9]+$";
25
- export declare const REFERENCE_REGEX_SINGLE_COLUMN = "^(\\[([^\\[\\]\\/?:\"<>|*\\\\]+)\\])?(((?![\\[\\]\\/?*\\\\]).)*!)?\\s*?\\$?[A-Za-z]+$";
22
+ export declare const REFERENCE_MULTIPLE_RANGE_REGEX = "^(@)?'?(\\[([^\\[\\]\\/?:\"<>|*\\\\]+)\\])?(((?![\\[\\]\\/?*\\\\]).)*!)?'?\\$?[A-Za-z]+\\$?[0-9]+\\s*?:\\s*?\\$?[A-Za-z]+\\$?[0-9]+$";
23
+ export declare const REFERENCE_SINGLE_RANGE_REGEX = "^'?(\\[([^\\[\\]\\/?:\"<>|*\\\\]+)\\])?(((?![\\[\\]\\/?*\\\\]).)*!)?'?\\s*?\\$?[A-Za-z]+\\$?[0-9]+(#)?$";
24
+ export declare const REFERENCE_REGEX_ROW = "^'?(\\[([^\\[\\]\\/?:\"<>|*\\\\]+)\\])?(((?![\\[\\]\\/?*\\\\]).)*!)?'?\\$?[0-9]+\\s*?:\\s*?\\$?[0-9]+$";
25
+ export declare const REFERENCE_REGEX_COLUMN = "^'?(\\[([^\\[\\]\\/?:\"<>|*\\\\]+)\\])?(((?![\\[\\]\\/?*\\\\]).)*!)?'?\\$?[A-Za-z]+\\s*?:\\s*?\\$?[A-Za-z]+$";
26
+ export declare const REFERENCE_REGEX_SINGLE_ROW = "^'?(\\[([^\\[\\]\\/?:\"<>|*\\\\]+)\\])?(((?![\\[\\]\\/?*\\\\]).)*!)?'?\\s*?\\$?[0-9]+$";
27
+ export declare const REFERENCE_REGEX_SINGLE_COLUMN = "^'?(\\[([^\\[\\]\\/?:\"<>|*\\\\]+)\\])?(((?![\\[\\]\\/?*\\\\]).)*!)?'?\\s*?\\$?[A-Za-z]+$";
26
28
  export declare const REFERENCE_TABLE_ALL_COLUMN_REGEX = "^(\\[([^\\[\\]\\/?:\"<>|*\\\\]+)\\])?((?![~!@#$%^&*()_+<>?:,./;\u2019\uFF0C\u3002\u3001\u2018\uFF1A\u201C\u300A\u300B\uFF1F~\uFF01@#\uFFE5%\u2026\u2026\uFF08\uFF09\u3010\u3011\\[\\]\\/\\\\]).)+$";
27
29
  export declare const REFERENCE_TABLE_SINGLE_COLUMN_REGEX = "^(\\[([^\\[\\]\\/?:\"<>|*\\\\]+)\\])?((?![~!@#$%^&*()_+<>?:,./;\u2019\uFF0C\u3002\u3001\u2018\uFF1A\u201C\u300A\u300B\uFF1F~\uFF01@#\uFFE5%\u2026\u2026\uFF08\uFF09\u3010\u3011\\[\\]\\/\\\\]).)+(\\[((?<!#).)*\\]|\\[\\[#.+\\]\\s*?,\\s*?\\[((?<!#).)*\\]\\])+$";
28
30
  export declare const REFERENCE_TABLE_MULTIPLE_COLUMN_REGEX = "^(\\[([^\\[\\]\\/?:\"<>|*\\\\]+)\\])?((?![~!@#$%^&*()_+<>?:,./;\u2019\uFF0C\u3002\u3001\u2018\uFF1A\u201C\u300A\u300B\uFF1F~\uFF01@#\uFFE5%\u2026\u2026\uFF08\uFF09\u3010\u3011\\[\\]\\/\\\\]).)+(\\[\\[((?<!#).)*\\]\\s*?:\\s*?\\[((?<!#).)*\\]\\])?$|^((?![~!@#$%^&*()_+<>?:,./;\u2019\uFF0C\u3002\u3001\u2018\uFF1A\u201C\u300A\u300B\uFF1F~\uFF01@#\uFFE5%\u2026\u2026\uFF08\uFF09\u3010\u3011\\[\\]\\/\\\\]).)+(\\[\\[#.+\\]\\s*?,\\s*?\\[((?<!#).)*\\]\\s*?:\\s*?\\[((?<!#).)*\\]\\])?$";
@@ -89,6 +89,8 @@ export declare class BaseReferenceObject extends ObjectClassType {
89
89
  setNumfmtItemData(numfmtItemData: INumfmtItemMap): void;
90
90
  getRowCount(): number;
91
91
  getColumnCount(): number;
92
+ getRowData(): import("@univerjs/core").IObjectArrayPrimitiveType<Partial<import("@univerjs/core").IRowData>>;
93
+ getColumnData(): import("@univerjs/core").IObjectArrayPrimitiveType<Partial<import("@univerjs/core").IColumnData>>;
92
94
  isCell(): boolean;
93
95
  isColumn(): boolean;
94
96
  isRow(): boolean;
@@ -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,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 {};
@@ -27,4 +27,11 @@ export declare function multiply(a: number, b: number): number;
27
27
  export declare function round(base: number, precision: number): number;
28
28
  export declare function floor(base: number, precision: number): number;
29
29
  export declare function ceil(base: number, precision: number): number;
30
+ export declare function mod(base: number, divisor: number): number;
30
31
  export declare function pow(base: number, exponent: number): number;
32
+ /**
33
+ * Excel can display numbers with up to about 15 digits of precision. This includes the sum of the integer part and the decimal part
34
+ * @param input
35
+ * @returns
36
+ */
37
+ export declare function truncateNumber(input: number | string): number;
@@ -0,0 +1,18 @@
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
+ import type { BaseValueObject } from '../value-object/base-value-object';
17
+ import { NumberValueObject } from '../value-object/primitive-object';
18
+ export declare function convertTonNumber(valueObject: BaseValueObject): NumberValueObject;
@@ -15,7 +15,6 @@
15
15
  */
16
16
  import type { IRange } from '@univerjs/core';
17
17
  import { AbsoluteRefType } from '@univerjs/core';
18
- export declare const UNIT_NAME_REGEX = "\\[([^\\[\\]\\/?:\"<>|*\\\\]+)\\]";
19
18
  export interface IGridRangeName {
20
19
  unitId: string;
21
20
  sheetName: string;
@@ -44,7 +43,6 @@ export declare function serializeRange(range: IRange): string;
44
43
  * Serialize an `IRange` and a sheetID into a string.
45
44
  * @param sheetName
46
45
  * @param range
47
- * @returns
48
46
  */
49
47
  export declare function serializeRangeWithSheet(sheetName: string, range: IRange): string;
50
48
  /**
@@ -52,7 +50,6 @@ export declare function serializeRangeWithSheet(sheetName: string, range: IRange
52
50
  * @param unit unitId or unitName
53
51
  * @param sheetName
54
52
  * @param range
55
- * @returns
56
53
  */
57
54
  export declare function serializeRangeWithSpreadsheet(unit: string, sheetName: string, range: IRange): string;
58
55
  export declare function serializeRangeToRefString(gridRangeName: IGridRangeName): string;
@@ -128,6 +128,8 @@ export declare class ArrayValueObject extends BaseValueObject {
128
128
  minus(valueObject: BaseValueObject): BaseValueObject;
129
129
  multiply(valueObject: BaseValueObject): BaseValueObject;
130
130
  divided(valueObject: BaseValueObject): BaseValueObject;
131
+ mod(valueObject: BaseValueObject): BaseValueObject;
132
+ modInverse(valueObject: BaseValueObject): BaseValueObject;
131
133
  compare(valueObject: BaseValueObject, operator: compareToken): BaseValueObject;
132
134
  concatenateFront(valueObject: BaseValueObject): BaseValueObject;
133
135
  concatenateBack(valueObject: BaseValueObject): BaseValueObject;
@@ -155,18 +157,37 @@ export declare class ArrayValueObject extends BaseValueObject {
155
157
  atanh(): BaseValueObject;
156
158
  atan2(valueObject: BaseValueObject): BaseValueObject;
157
159
  atan2Inverse(valueObject: BaseValueObject): BaseValueObject;
158
- mean(): BaseValueObject;
160
+ mean(ddof?: number): BaseValueObject;
159
161
  median(): BaseValueObject;
160
- var(): BaseValueObject;
161
162
  /**
162
- * STDEV.P: ddof=0, ignore strings and booleans
163
- * STDEV.S: ddof=1, ignore strings and booleans
163
+ * ┌──────────────┬────────────────────────────────┬───────────────────┐
164
+ * Function │ Ignore logical values and text │ Type │
165
+ * ├──────────────┼────────────────────────────────┼───────────────────┤
166
+ * │ VAR.S (VAR) │ TRUE │ sample │
167
+ * │ VAR.P (VARP) │ TRUE │ entire population │
168
+ * │ VARA │ FALSE │ sample │
169
+ * │ VARPA │ FALSE │ entire population │
170
+ * └──────────────┴────────────────────────────────┴───────────────────┘
171
+ *
172
+ * for VARPA and VARA, strings and FALSE are counted as 0, TRUE is counted as 1
173
+ * for VAR.S/VAR, or VAR.P/VARP, strings,TRUE and FALSE are ignored
174
+ * Since sum ignores strings and booleans, they are ignored here too, and VAR.S and VAR.P are used more
175
+ *
176
+ * VAR.S assumes that its arguments are a sample of the population, like numpy.var(data, ddof=1)
177
+ * VAR.P assumes that its arguments are the entire population, like numpy.var(data, ddof=0)
178
+ * numpy.var uses ddof=0 (Delta Degrees of Freedom) by default, so we use ddof=0 here
179
+ *
180
+ */
181
+ var(ddof?: number): BaseValueObject;
182
+ /**
183
+ * STDEV.P (STDEVP): ddof=0, ignore strings and booleans
184
+ * STDEV.S (STDEV): ddof=1, ignore strings and booleans
164
185
  *
165
186
  * STDEVPA: ddof=0,
166
187
  * STDEVA: ddof=1,
167
188
  * @returns
168
189
  */
169
- std(): BaseValueObject;
190
+ std(ddof?: number): BaseValueObject;
170
191
  log(): BaseValueObject;
171
192
  log10(): BaseValueObject;
172
193
  exp(): BaseValueObject;
@@ -65,7 +65,18 @@ export declare class BaseValueObject extends ObjectClassType {
65
65
  minus(valueObject: BaseValueObject): BaseValueObject;
66
66
  multiply(valueObject: BaseValueObject): BaseValueObject;
67
67
  divided(valueObject: BaseValueObject): BaseValueObject;
68
+ mod(valueObject: BaseValueObject): BaseValueObject;
69
+ /**
70
+ * return every value in the array after the callback function, excluding the error value
71
+ * @param callbackFn
72
+ * @returns
73
+ */
68
74
  map(callbackFn: callbackMapFnType): BaseValueObject;
75
+ /**
76
+ * return every value in the array after the callback function
77
+ * @param callbackFn
78
+ * @returns
79
+ */
69
80
  mapValue(callbackFn: callbackMapFnType): BaseValueObject;
70
81
  product(valueObject: BaseValueObject, callbackFn: callbackProductFnType): BaseValueObject;
71
82
  compare(valueObject: BaseValueObject, operator: compareToken): BaseValueObject;
@@ -81,6 +92,7 @@ export declare class BaseValueObject extends ObjectClassType {
81
92
  minusBy(value: string | number | boolean): BaseValueObject;
82
93
  multiplyBy(value: string | number | boolean): BaseValueObject;
83
94
  dividedBy(value: string | number | boolean): BaseValueObject;
95
+ modInverse(valueObject: BaseValueObject): BaseValueObject;
84
96
  compareBy(value: string | number | boolean, operator: compareToken): BaseValueObject;
85
97
  concatenate(value: string | number | boolean, concatenateType?: ConcatenateType): string;
86
98
  pow(valueObject: BaseValueObject): BaseValueObject;
@@ -22,6 +22,7 @@ export declare class NullValueObject extends BaseValueObject {
22
22
  minus(valueObject: BaseValueObject): BaseValueObject;
23
23
  multiply(valueObject: BaseValueObject): BaseValueObject;
24
24
  divided(valueObject: BaseValueObject): BaseValueObject;
25
+ mod(valueObject: BaseValueObject): BaseValueObject;
25
26
  compare(valueObject: BaseValueObject, operator: compareToken): BaseValueObject;
26
27
  concatenateFront(valueObject: BaseValueObject): BaseValueObject;
27
28
  concatenateBack(valueObject: BaseValueObject): BaseValueObject;
@@ -63,6 +64,7 @@ export declare class BooleanValueObject extends BaseValueObject {
63
64
  minus(valueObject: BaseValueObject): BaseValueObject;
64
65
  multiply(valueObject: BaseValueObject): BaseValueObject;
65
66
  divided(valueObject: BaseValueObject): BaseValueObject;
67
+ mod(valueObject: BaseValueObject): BaseValueObject;
66
68
  compare(valueObject: BaseValueObject, operator: compareToken): BaseValueObject;
67
69
  concatenateFront(valueObject: BaseValueObject): BaseValueObject;
68
70
  concatenateBack(valueObject: BaseValueObject): BaseValueObject;
@@ -102,6 +104,7 @@ export declare class NumberValueObject extends BaseValueObject {
102
104
  minus(valueObject: BaseValueObject): BaseValueObject;
103
105
  multiply(valueObject: BaseValueObject): BaseValueObject;
104
106
  divided(valueObject: BaseValueObject): BaseValueObject;
107
+ mod(valueObject: BaseValueObject): BaseValueObject;
105
108
  concatenateFront(valueObject: BaseValueObject): BaseValueObject;
106
109
  concatenateBack(valueObject: BaseValueObject): BaseValueObject;
107
110
  compare(valueObject: BaseValueObject, operator: compareToken): BaseValueObject;
@@ -21,13 +21,21 @@ import type { ArrayBinarySearchType } from '../engine/utils/compare';
21
21
  import { ArrayOrderSearchType } from '../engine/utils/compare';
22
22
  import type { ArrayValueObject } from '../engine/value-object/array-value-object';
23
23
  import { type BaseValueObject, ErrorValueObject } from '../engine/value-object/base-value-object';
24
- import type { PrimitiveValueType } from '../engine/value-object/primitive-object';
24
+ import { type PrimitiveValueType } from '../engine/value-object/primitive-object';
25
25
  export declare class BaseFunction extends Disposable {
26
26
  private _name;
27
27
  private _unitId;
28
28
  private _subUnitId;
29
29
  private _row;
30
30
  private _column;
31
+ /**
32
+ * Whether the function needs to expand the parameters
33
+ */
34
+ needsExpandParams: boolean;
35
+ /**
36
+ * Whether the function needs to pass in reference object
37
+ */
38
+ needsReferenceObject: boolean;
31
39
  constructor(_name: IFunctionNames);
32
40
  get name(): IFunctionNames;
33
41
  get unitId(): Nullable<string>;
@@ -82,4 +90,6 @@ export declare class BaseFunction extends Disposable {
82
90
  equalSearchExpand(value: BaseValueObject, searchArray: ArrayValueObject, resultArray: ArrayValueObject, isFirst?: boolean, axis?: number): ErrorValueObject | ArrayValueObject | undefined;
83
91
  fuzzySearchExpand(value: BaseValueObject, searchArray: ArrayValueObject, resultArray: ArrayValueObject, isFirst?: boolean, axis?: number): ErrorValueObject | ArrayValueObject | undefined;
84
92
  orderSearchExpand(value: BaseValueObject, searchArray: ArrayValueObject, resultArray: ArrayValueObject, searchType?: ArrayOrderSearchType, isDesc?: boolean, axis?: number): ErrorValueObject | ArrayValueObject | undefined;
93
+ flattenArray(variants: BaseValueObject[], ignoreLogicalValuesAndText?: boolean): ArrayValueObject | BaseValueObject;
94
+ private _includingLogicalValuesAndText;
85
95
  }
@@ -13,4 +13,6 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- export declare const functionCompatibility: never[];
16
+ import { StdevS } from '../statistical/stdev-s';
17
+ import { FUNCTION_NAMES_COMPATIBILITY } from './function-names';
18
+ export declare const functionCompatibility: (FUNCTION_NAMES_COMPATIBILITY | typeof StdevS)[][];
@@ -17,4 +17,5 @@ import type { BaseValueObject } from '../../../engine/value-object/base-value-ob
17
17
  import { BaseFunction } from '../../base-function';
18
18
  export declare class Day extends BaseFunction {
19
19
  calculate(serialNumber: BaseValueObject): BaseValueObject;
20
+ private _handleSingleObject;
20
21
  }
@@ -17,4 +17,5 @@ import type { BaseValueObject } from '../../../engine/value-object/base-value-ob
17
17
  import { BaseFunction } from '../../base-function';
18
18
  export declare class Month extends BaseFunction {
19
19
  calculate(serialNumber: BaseValueObject): BaseValueObject;
20
+ private _handleSingleObject;
20
21
  }
@@ -17,4 +17,5 @@ import type { BaseValueObject } from '../../../engine/value-object/base-value-ob
17
17
  import { BaseFunction } from '../../base-function';
18
18
  export declare class Year extends BaseFunction {
19
19
  calculate(serialNumber: BaseValueObject): BaseValueObject;
20
+ private _handleSingleObject;
20
21
  }
@@ -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,20 @@
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
+ import { type BaseValueObject } from '../../../engine/value-object/base-value-object';
17
+ import { BaseFunction } from '../../base-function';
18
+ export declare class Iserr extends BaseFunction {
19
+ calculate(value: BaseValueObject): BaseValueObject;
20
+ }
@@ -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,20 @@
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
+ import { type BaseValueObject } from '../../../engine/value-object/base-value-object';
17
+ import { BaseFunction } from '../../base-function';
18
+ export declare class Iserror extends BaseFunction {
19
+ calculate(value: BaseValueObject): BaseValueObject;
20
+ }
@@ -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,20 @@
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
+ import { type BaseValueObject } from '../../../engine/value-object/base-value-object';
17
+ import { BaseFunction } from '../../base-function';
18
+ export declare class Islogical extends BaseFunction {
19
+ calculate(value: BaseValueObject): BaseValueObject;
20
+ }
@@ -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,20 @@
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
+ import { type BaseValueObject } from '../../../engine/value-object/base-value-object';
17
+ import { BaseFunction } from '../../base-function';
18
+ export declare class Isna extends BaseFunction {
19
+ calculate(value: BaseValueObject): BaseValueObject;
20
+ }
@@ -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,20 @@
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
+ import { type BaseValueObject } from '../../../engine/value-object/base-value-object';
17
+ import { BaseFunction } from '../../base-function';
18
+ export declare class Isnontext extends BaseFunction {
19
+ calculate(value: BaseValueObject): BaseValueObject;
20
+ }
@@ -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,20 @@
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
+ import { type BaseValueObject } from '../../../engine/value-object/base-value-object';
17
+ import { BaseFunction } from '../../base-function';
18
+ export declare class Isnumber extends BaseFunction {
19
+ calculate(value: BaseValueObject): BaseValueObject;
20
+ }
@@ -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,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
+ */
16
+ import { BooleanValueObject } from '../../..';
17
+ import { type BaseValueObject, ErrorValueObject } from '../../../engine/value-object/base-value-object';
18
+ import { BaseFunction } from '../../base-function';
19
+ export declare class Isref extends BaseFunction {
20
+ needsReferenceObject: boolean;
21
+ calculate(value: BaseValueObject): ErrorValueObject | BooleanValueObject;
22
+ }
@@ -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 {};