@omegagrid/grid-core 0.10.1 → 0.10.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 (201) hide show
  1. package/package.json +3 -3
  2. package/dist/__generated/functions.d.ts +0 -4
  3. package/dist/__generated/functions.d.ts.map +0 -1
  4. package/dist/__generated/functions.js +0 -45
  5. package/dist/__generated/functions.js.map +0 -1
  6. package/dist/calculations/autofill.d.ts +0 -7
  7. package/dist/calculations/autofill.d.ts.map +0 -1
  8. package/dist/calculations/autofill.js +0 -84
  9. package/dist/calculations/autofill.js.map +0 -1
  10. package/dist/calculations/conditions.d.ts +0 -4
  11. package/dist/calculations/conditions.d.ts.map +0 -1
  12. package/dist/calculations/conditions.js +0 -41
  13. package/dist/calculations/conditions.js.map +0 -1
  14. package/dist/calculations/context.d.ts +0 -53
  15. package/dist/calculations/context.d.ts.map +0 -1
  16. package/dist/calculations/context.js +0 -85
  17. package/dist/calculations/context.js.map +0 -1
  18. package/dist/calculations/formula.d.ts +0 -89
  19. package/dist/calculations/formula.d.ts.map +0 -1
  20. package/dist/calculations/formula.js +0 -443
  21. package/dist/calculations/formula.js.map +0 -1
  22. package/dist/calculations/functions/dates.d.ts +0 -13
  23. package/dist/calculations/functions/dates.d.ts.map +0 -1
  24. package/dist/calculations/functions/dates.js +0 -58
  25. package/dist/calculations/functions/dates.js.map +0 -1
  26. package/dist/calculations/functions/index.d.ts +0 -11
  27. package/dist/calculations/functions/index.d.ts.map +0 -1
  28. package/dist/calculations/functions/index.js +0 -21
  29. package/dist/calculations/functions/index.js.map +0 -1
  30. package/dist/calculations/functions/logical.d.ts +0 -11
  31. package/dist/calculations/functions/logical.d.ts.map +0 -1
  32. package/dist/calculations/functions/logical.js +0 -50
  33. package/dist/calculations/functions/logical.js.map +0 -1
  34. package/dist/calculations/functions/lookup.d.ts +0 -18
  35. package/dist/calculations/functions/lookup.d.ts.map +0 -1
  36. package/dist/calculations/functions/lookup.js +0 -169
  37. package/dist/calculations/functions/lookup.js.map +0 -1
  38. package/dist/calculations/functions/math.d.ts +0 -72
  39. package/dist/calculations/functions/math.d.ts.map +0 -1
  40. package/dist/calculations/functions/math.js +0 -182
  41. package/dist/calculations/functions/math.js.map +0 -1
  42. package/dist/calculations/functions/special.d.ts +0 -2
  43. package/dist/calculations/functions/special.d.ts.map +0 -1
  44. package/dist/calculations/functions/special.js +0 -51
  45. package/dist/calculations/functions/special.js.map +0 -1
  46. package/dist/calculations/functions/statistical.d.ts +0 -7
  47. package/dist/calculations/functions/statistical.d.ts.map +0 -1
  48. package/dist/calculations/functions/statistical.js +0 -47
  49. package/dist/calculations/functions/statistical.js.map +0 -1
  50. package/dist/calculations/functions/text.d.ts +0 -29
  51. package/dist/calculations/functions/text.d.ts.map +0 -1
  52. package/dist/calculations/functions/text.js +0 -58
  53. package/dist/calculations/functions/text.js.map +0 -1
  54. package/dist/calculations/helpers.d.ts +0 -13
  55. package/dist/calculations/helpers.d.ts.map +0 -1
  56. package/dist/calculations/helpers.js +0 -32
  57. package/dist/calculations/helpers.js.map +0 -1
  58. package/dist/calculations/index.d.ts +0 -7
  59. package/dist/calculations/index.d.ts.map +0 -1
  60. package/dist/calculations/index.js +0 -7
  61. package/dist/calculations/index.js.map +0 -1
  62. package/dist/calculations/operators.d.ts +0 -19
  63. package/dist/calculations/operators.d.ts.map +0 -1
  64. package/dist/calculations/operators.js +0 -58
  65. package/dist/calculations/operators.js.map +0 -1
  66. package/dist/calculations/tokenization.d.ts +0 -36
  67. package/dist/calculations/tokenization.d.ts.map +0 -1
  68. package/dist/calculations/tokenization.js +0 -203
  69. package/dist/calculations/tokenization.js.map +0 -1
  70. package/dist/common/index.d.ts +0 -2
  71. package/dist/common/index.d.ts.map +0 -1
  72. package/dist/common/index.js +0 -2
  73. package/dist/common/index.js.map +0 -1
  74. package/dist/common/range.d.ts +0 -66
  75. package/dist/common/range.d.ts.map +0 -1
  76. package/dist/common/range.js +0 -222
  77. package/dist/common/range.js.map +0 -1
  78. package/dist/constants.d.ts +0 -68
  79. package/dist/constants.d.ts.map +0 -1
  80. package/dist/constants.js +0 -127
  81. package/dist/constants.js.map +0 -1
  82. package/dist/index.d.ts +0 -8
  83. package/dist/index.d.ts.map +0 -1
  84. package/dist/index.js +0 -8
  85. package/dist/index.js.map +0 -1
  86. package/dist/model/calculationModel.d.ts +0 -30
  87. package/dist/model/calculationModel.d.ts.map +0 -1
  88. package/dist/model/calculationModel.js +0 -206
  89. package/dist/model/calculationModel.js.map +0 -1
  90. package/dist/model/cellModel.d.ts +0 -134
  91. package/dist/model/cellModel.d.ts.map +0 -1
  92. package/dist/model/cellModel.js +0 -371
  93. package/dist/model/cellModel.js.map +0 -1
  94. package/dist/model/columnModel.d.ts +0 -160
  95. package/dist/model/columnModel.d.ts.map +0 -1
  96. package/dist/model/columnModel.js +0 -159
  97. package/dist/model/columnModel.js.map +0 -1
  98. package/dist/model/commentModel.d.ts +0 -58
  99. package/dist/model/commentModel.d.ts.map +0 -1
  100. package/dist/model/commentModel.js +0 -81
  101. package/dist/model/commentModel.js.map +0 -1
  102. package/dist/model/conditionalFormats.d.ts +0 -104
  103. package/dist/model/conditionalFormats.d.ts.map +0 -1
  104. package/dist/model/conditionalFormats.js +0 -414
  105. package/dist/model/conditionalFormats.js.map +0 -1
  106. package/dist/model/cssStyle.d.ts +0 -20
  107. package/dist/model/cssStyle.d.ts.map +0 -1
  108. package/dist/model/cssStyle.js +0 -301
  109. package/dist/model/cssStyle.js.map +0 -1
  110. package/dist/model/dependencies.d.ts +0 -30
  111. package/dist/model/dependencies.d.ts.map +0 -1
  112. package/dist/model/dependencies.js +0 -139
  113. package/dist/model/dependencies.js.map +0 -1
  114. package/dist/model/dependencyModel.d.ts +0 -9
  115. package/dist/model/dependencyModel.d.ts.map +0 -1
  116. package/dist/model/dependencyModel.js +0 -9
  117. package/dist/model/dependencyModel.js.map +0 -1
  118. package/dist/model/elementModel.d.ts +0 -103
  119. package/dist/model/elementModel.d.ts.map +0 -1
  120. package/dist/model/elementModel.js +0 -181
  121. package/dist/model/elementModel.js.map +0 -1
  122. package/dist/model/filterModel.d.ts +0 -35
  123. package/dist/model/filterModel.d.ts.map +0 -1
  124. package/dist/model/filterModel.js +0 -153
  125. package/dist/model/filterModel.js.map +0 -1
  126. package/dist/model/gridModel.d.ts +0 -181
  127. package/dist/model/gridModel.d.ts.map +0 -1
  128. package/dist/model/gridModel.js +0 -797
  129. package/dist/model/gridModel.js.map +0 -1
  130. package/dist/model/groupModel.d.ts +0 -26
  131. package/dist/model/groupModel.d.ts.map +0 -1
  132. package/dist/model/groupModel.js +0 -112
  133. package/dist/model/groupModel.js.map +0 -1
  134. package/dist/model/history.d.ts +0 -24
  135. package/dist/model/history.d.ts.map +0 -1
  136. package/dist/model/history.js +0 -35
  137. package/dist/model/history.js.map +0 -1
  138. package/dist/model/index.d.ts +0 -23
  139. package/dist/model/index.d.ts.map +0 -1
  140. package/dist/model/index.js +0 -23
  141. package/dist/model/index.js.map +0 -1
  142. package/dist/model/iterableRange.d.ts +0 -49
  143. package/dist/model/iterableRange.d.ts.map +0 -1
  144. package/dist/model/iterableRange.js +0 -108
  145. package/dist/model/iterableRange.js.map +0 -1
  146. package/dist/model/merges.d.ts +0 -34
  147. package/dist/model/merges.d.ts.map +0 -1
  148. package/dist/model/merges.js +0 -123
  149. package/dist/model/merges.js.map +0 -1
  150. package/dist/model/namingModel.d.ts +0 -25
  151. package/dist/model/namingModel.d.ts.map +0 -1
  152. package/dist/model/namingModel.js +0 -77
  153. package/dist/model/namingModel.js.map +0 -1
  154. package/dist/model/options.d.ts +0 -257
  155. package/dist/model/options.d.ts.map +0 -1
  156. package/dist/model/options.js +0 -35
  157. package/dist/model/options.js.map +0 -1
  158. package/dist/model/rowModel.d.ts +0 -104
  159. package/dist/model/rowModel.d.ts.map +0 -1
  160. package/dist/model/rowModel.js +0 -155
  161. package/dist/model/rowModel.js.map +0 -1
  162. package/dist/model/selectionModel.d.ts +0 -19
  163. package/dist/model/selectionModel.d.ts.map +0 -1
  164. package/dist/model/selectionModel.js +0 -40
  165. package/dist/model/selectionModel.js.map +0 -1
  166. package/dist/model/sortingModel.d.ts +0 -46
  167. package/dist/model/sortingModel.d.ts.map +0 -1
  168. package/dist/model/sortingModel.js +0 -157
  169. package/dist/model/sortingModel.js.map +0 -1
  170. package/dist/model/style.d.ts +0 -90
  171. package/dist/model/style.d.ts.map +0 -1
  172. package/dist/model/style.js +0 -34
  173. package/dist/model/style.js.map +0 -1
  174. package/dist/model/styleModel.d.ts +0 -22
  175. package/dist/model/styleModel.d.ts.map +0 -1
  176. package/dist/model/styleModel.js +0 -91
  177. package/dist/model/styleModel.js.map +0 -1
  178. package/dist/model/tableTheme.d.ts +0 -46
  179. package/dist/model/tableTheme.d.ts.map +0 -1
  180. package/dist/model/tableTheme.js +0 -93
  181. package/dist/model/tableTheme.js.map +0 -1
  182. package/dist/model/validations.d.ts +0 -5
  183. package/dist/model/validations.d.ts.map +0 -1
  184. package/dist/model/validations.js +0 -24
  185. package/dist/model/validations.js.map +0 -1
  186. package/dist/sparklines/index.d.ts +0 -2
  187. package/dist/sparklines/index.d.ts.map +0 -1
  188. package/dist/sparklines/index.js +0 -2
  189. package/dist/sparklines/index.js.map +0 -1
  190. package/dist/sparklines/sparklines.d.ts +0 -59
  191. package/dist/sparklines/sparklines.d.ts.map +0 -1
  192. package/dist/sparklines/sparklines.js +0 -176
  193. package/dist/sparklines/sparklines.js.map +0 -1
  194. package/dist/types.d.ts +0 -103
  195. package/dist/types.d.ts.map +0 -1
  196. package/dist/types.js +0 -2
  197. package/dist/types.js.map +0 -1
  198. package/dist/utils.d.ts +0 -4
  199. package/dist/utils.d.ts.map +0 -1
  200. package/dist/utils.js +0 -11
  201. package/dist/utils.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/calculations/functions/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,QAAQ,CAAC;AACxC,OAAO,KAAK,aAAa,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,aAAa,MAAM,QAAQ,CAAC;AACxC,OAAO,KAAK,eAAe,MAAM,UAAU,CAAC;AAC5C,OAAO,KAAK,gBAAgB,MAAM,WAAW,CAAC;AAC9C,OAAO,KAAK,gBAAgB,MAAM,WAAW,CAAC;AAC9C,OAAO,KAAK,oBAAoB,MAAM,eAAe,CAAC;AAEtD,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAExC,SAAS,kBAAkB,CAAC,GAAiC,EAAE,MAAc;IAC5E,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAC1C,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,EACrD,MAA0C,CAAC,IAAI,CAAC,CAAC,CAClD,CAAC;AACH,CAAC;AAED,MAAM,IAAI,GAAG,IAAI,GAAG,EAA2B,CAAC;AAChD,kBAAkB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;AACxC,kBAAkB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;AACxC,kBAAkB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;AACxC,kBAAkB,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;AAC1C,kBAAkB,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;AAC3C,kBAAkB,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;AAC3C,kBAAkB,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;AAE/C,OAAO,EACN,IAAI,EACJ,aAAa,IAAI,IAAI,EACrB,aAAa,IAAI,IAAI,EACrB,aAAa,IAAI,IAAI,EACrB,eAAe,IAAI,MAAM,EACzB,gBAAgB,IAAI,OAAO,EAC3B,gBAAgB,IAAI,OAAO,EAC3B,oBAAoB,IAAI,WAAW,EACnC,CAAC","sourcesContent":["import * as textFunctions from './text';\nimport * as dateFunctions from './dates';\nimport * as mathFunctions from './math';\nimport * as lookupFunctions from './lookup';\nimport * as specialFunctions from './special';\nimport * as logicalFunctions from './logical';\nimport * as statisticalFunctions from './statistical';\nimport { FormulaFunction } from '../../types';\nimport { utils } from '@omegagrid/core';\n\nfunction addModuleFunctions(map: Map<string, FormulaFunction>, module: object) {\n\tObject.keys(module).forEach(name => map.set(\n\t\tutils.trim(name, '_').replace(/_/g, '.').toUpperCase(),\n\t\t(module as Record<string, FormulaFunction>)[name])\n\t);\n}\n\nconst _map = new Map<string, FormulaFunction>();\naddModuleFunctions(_map, textFunctions);\naddModuleFunctions(_map, dateFunctions);\naddModuleFunctions(_map, mathFunctions);\naddModuleFunctions(_map, lookupFunctions);\naddModuleFunctions(_map, logicalFunctions);\naddModuleFunctions(_map, specialFunctions);\naddModuleFunctions(_map, statisticalFunctions);\n\nexport {\n\t_map,\n\ttextFunctions as text,\n\tdateFunctions as date,\n\tmathFunctions as math,\n\tlookupFunctions as lookup,\n\tspecialFunctions as special,\n\tlogicalFunctions as logical,\n\tstatisticalFunctions as statistical\n};\n"]}
@@ -1,11 +0,0 @@
1
- import { ArrayArg } from "../helpers";
2
- export declare function and(...args: ArrayArg): boolean;
3
- export declare function or(...args: ArrayArg): boolean;
4
- export declare function xor(...args: ArrayArg): boolean;
5
- export declare function _switch(...args: unknown[]): unknown;
6
- export declare function _if(condition: unknown, ifTrue: unknown, ifFalse: unknown): unknown;
7
- export declare function not(value: unknown): boolean;
8
- export declare function _false(): boolean;
9
- export declare function _true(): boolean;
10
- export declare function iferror(value: unknown, valueIfError: unknown): unknown;
11
- //# sourceMappingURL=logical.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logical.d.ts","sourceRoot":"","sources":["../../../src/calculations/functions/logical.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAa,MAAM,YAAY,CAAC;AAEjD,wBAAgB,GAAG,CAAC,GAAG,IAAI,EAAE,QAAQ,WAIpC;AAED,wBAAgB,EAAE,CAAC,GAAG,IAAI,EAAE,QAAQ,WAInC;AAED,wBAAgB,GAAG,CAAC,GAAG,IAAI,EAAE,QAAQ,WAOpC;AAED,wBAAgB,OAAO,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,WAOzC;AAED,wBAAgB,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,WAAyC;AAClH,wBAAgB,GAAG,CAAC,KAAK,EAAE,OAAO,WAAmB;AACrD,wBAAgB,MAAM,YAAmB;AACzC,wBAAgB,KAAK,YAAkB;AAEvC,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,WAa5D"}
@@ -1,50 +0,0 @@
1
- import { eachValue } from "../helpers";
2
- export function and(...args) {
3
- let result = true;
4
- eachValue(args, v => { if (!v)
5
- return (result = false); });
6
- return result;
7
- }
8
- export function or(...args) {
9
- let result = false;
10
- eachValue(args, v => { if (v)
11
- return (result = true); });
12
- return result;
13
- }
14
- export function xor(...args) {
15
- let result = null;
16
- eachValue(args, v => {
17
- if (result === null)
18
- result = !!v;
19
- else
20
- result = (!!v != result);
21
- });
22
- return result;
23
- }
24
- export function _switch(...args) {
25
- const expression = args[0];
26
- for (let i = 1; i < args.length; i += 2) {
27
- if (i == args.length - 1)
28
- return args[i];
29
- else if (expression == args[i])
30
- return args[i + 1];
31
- }
32
- return null;
33
- }
34
- export function _if(condition, ifTrue, ifFalse) { return condition ? ifTrue : ifFalse; }
35
- export function not(value) { return !value; }
36
- export function _false() { return false; }
37
- export function _true() { return true; }
38
- export function iferror(value, valueIfError) {
39
- valueIfError = valueIfError === "" ? null : valueIfError;
40
- if (this.cell.hasError) {
41
- this.cell.error.handled = true;
42
- return valueIfError;
43
- }
44
- if (value === Infinity || value === -Infinity || Number.isNaN(value)) {
45
- return valueIfError;
46
- }
47
- // TODO: check for other error values
48
- return value;
49
- }
50
- //# sourceMappingURL=logical.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logical.js","sourceRoot":"","sources":["../../../src/calculations/functions/logical.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,SAAS,EAAE,MAAM,YAAY,CAAC;AAEjD,MAAM,UAAU,GAAG,CAAC,GAAG,IAAc;IACpC,IAAI,MAAM,GAAG,IAAI,CAAC;IAClB,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;QAAE,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC;IAC1D,OAAO,MAAM,CAAC;AACf,CAAC;AAED,MAAM,UAAU,EAAE,CAAC,GAAG,IAAc;IACnC,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC;QAAE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC;IACxD,OAAO,MAAM,CAAC;AACf,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,GAAG,IAAc;IACpC,IAAI,MAAM,GAAY,IAAI,CAAC;IAC3B,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE;QACnB,IAAI,MAAM,KAAK,IAAI;YAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;;YAC7B,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AACf,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,GAAG,IAAe;IACzC,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACzC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;aACpC,IAAI,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,SAAkB,EAAE,MAAe,EAAE,OAAgB,IAAI,OAAO,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAA,CAAC,CAAC;AAClH,MAAM,UAAU,GAAG,CAAC,KAAc,IAAI,OAAO,CAAC,KAAK,CAAA,CAAC,CAAC;AACrD,MAAM,UAAU,MAAM,KAAK,OAAO,KAAK,CAAA,CAAC,CAAC;AACzC,MAAM,UAAU,KAAK,KAAK,OAAO,IAAI,CAAA,CAAC,CAAC;AAEvC,MAAM,UAAU,OAAO,CAAC,KAAc,EAAE,YAAqB;IAC5D,YAAY,GAAG,YAAY,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC;IACzD,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;QAC/B,OAAO,YAAY,CAAC;IACrB,CAAC;IAED,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,CAAC,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACtE,OAAO,YAAY,CAAC;IACrB,CAAC;IAED,qCAAqC;IACrC,OAAO,KAAK,CAAC;AACd,CAAC","sourcesContent":["import { ArrayArg, eachValue } from \"../helpers\";\n\nexport function and(...args: ArrayArg) {\n\tlet result = true;\n\teachValue(args, v => { if (!v) return (result = false) });\n\treturn result;\n}\n\nexport function or(...args: ArrayArg) {\n\tlet result = false;\n\teachValue(args, v => { if (v) return (result = true) });\n\treturn result;\n}\n\nexport function xor(...args: ArrayArg) {\n\tlet result: boolean = null;\n\teachValue(args, v => { \n\t\tif (result === null) result = !!v;\n\t\telse result = (!!v != result);\n\t});\n\treturn result;\n}\n\nexport function _switch(...args: unknown[]) {\n\tconst expression = args[0];\n\tfor (let i = 1; i < args.length; i += 2) {\n\t\tif (i == args.length - 1) return args[i];\n\t\telse if (expression == args[i]) return args[i + 1];\n\t}\n\treturn null;\n}\n\nexport function _if(condition: unknown, ifTrue: unknown, ifFalse: unknown) { return condition ? ifTrue : ifFalse }\nexport function not(value: unknown) { return !value }\nexport function _false() { return false }\nexport function _true() { return true }\n\nexport function iferror(value: unknown, valueIfError: unknown) {\n\tvalueIfError = valueIfError === \"\" ? null : valueIfError;\n\tif (this.cell.hasError) {\n\t\tthis.cell.error.handled = true;\n\t\treturn valueIfError;\n\t}\n\n\tif (value === Infinity || value === -Infinity || Number.isNaN(value)) {\n\t\treturn valueIfError;\n\t}\n\t\n\t// TODO: check for other error values\n\treturn value;\n}"]}
@@ -1,18 +0,0 @@
1
- import { Matrix } from "@omegagrid/core";
2
- import { ArrayArg } from "../helpers";
3
- export declare function address(row: number, column: number, mode?: number): string;
4
- export declare function vlookup(lookupValue: string, lookupTable: Matrix<string>, colIndex: number, exactMatch?: boolean): string;
5
- export declare function hlookup(lookupValue: string, lookupTable: Matrix<string>, rowIndex: number, exactMatch?: boolean): string;
6
- export declare function lookup(lookupValue: unknown, lookupTable: Matrix<unknown>, resultTable?: Matrix<unknown>): unknown;
7
- export declare function choose(index: number, ...args: ArrayArg): unknown;
8
- export declare function column(address?: string): number;
9
- export declare function row(address?: string): number;
10
- export declare function columns(range: ArrayArg): number;
11
- export declare function rows(range: ArrayArg): number;
12
- export declare function formulatext(): string;
13
- export declare function index(range: ArrayArg, row: number, column: number): import("../helpers").Value | import("../helpers").Value[];
14
- export declare function indirect(ref: string): unknown;
15
- export declare function match(matchValue: unknown, range: Matrix<unknown>, matchType?: number): number;
16
- export declare function offset(_ref: unknown, rows: number, columns: number, height?: number, width?: number): unknown[];
17
- export declare function filter(range: Matrix, boolRange: Matrix): unknown[];
18
- //# sourceMappingURL=lookup.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lookup.d.ts","sourceRoot":"","sources":["../../../src/calculations/functions/lookup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAGzC,OAAO,EAAE,QAAQ,EAA8B,MAAM,YAAY,CAAC;AAYlE,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,SAAI,UAK5D;AAED,wBAAgB,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,UAAQ,UAW7G;AAED,wBAAgB,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,UAAQ,UAW7G;AAED,wBAAgB,MAAM,CAAC,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,WAYvG;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,QAAQ,WAUtD;AAED,wBAAgB,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,UAEtC;AAED,wBAAgB,GAAG,CAAC,OAAO,CAAC,EAAE,MAAM,UAEnC;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,QAAQ,UAEtC;AAED,wBAAgB,IAAI,CAAC,KAAK,EAAE,QAAQ,UAEnC;AAED,wBAAgB,WAAW,WAG1B;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,6DAMjE;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,WAwBnC;AAED,wBAAgB,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,SAAS,SAAI,UAU/E;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,aAcnG;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,aAiBtD"}
@@ -1,169 +0,0 @@
1
- import { prefixFormula } from "..";
2
- import { CellRange } from "../../common";
3
- import { eachValue, getFormulaCells } from "../helpers";
4
- function getStringMatcher(searchValue, exactMatch) {
5
- searchValue = searchValue == null ? '' : searchValue.toString();
6
- if (exactMatch) {
7
- return (value) => value == searchValue;
8
- }
9
- else {
10
- searchValue = searchValue.toLowerCase();
11
- return (value) => (value ?? '').toString().toLowerCase() == searchValue;
12
- }
13
- }
14
- export function address(row, column, mode = 1) {
15
- const range = new CellRange(Math.max((column || 0) - 1, 0), Math.max((row || 0) - 1, 0));
16
- if (mode == 1 || mode == 2)
17
- range.r1Anchor = true;
18
- if (mode == 1 || mode == 3)
19
- range.c1Anchor = true;
20
- return range.A1;
21
- }
22
- export function vlookup(lookupValue, lookupTable, colIndex, exactMatch = false) {
23
- let r, c;
24
- const match = getStringMatcher(lookupValue, exactMatch);
25
- for (r = 0; r < lookupTable.length; r++) {
26
- for (c = 0; c < lookupTable[r].length; c++) {
27
- if (match(lookupTable[r][c])) {
28
- return lookupTable[r][colIndex - 1];
29
- }
30
- }
31
- }
32
- return null;
33
- }
34
- export function hlookup(lookupValue, lookupTable, rowIndex, exactMatch = false) {
35
- let r, c;
36
- const match = getStringMatcher(lookupValue, exactMatch);
37
- for (r = 0; r < lookupTable.length; r++) {
38
- for (c = 0; c < lookupTable[r].length; c++) {
39
- if (match(lookupTable[r][c])) {
40
- return lookupTable[rowIndex - 1][c];
41
- }
42
- }
43
- }
44
- return null;
45
- }
46
- export function lookup(lookupValue, lookupTable, resultTable) {
47
- let r, c;
48
- exit_loops: for (r = 0; r < lookupTable.length; r++) {
49
- for (c = 0; c < lookupTable[r].length; c++) {
50
- if (lookupTable[r][c] == lookupValue)
51
- break exit_loops;
52
- }
53
- }
54
- if (resultTable)
55
- return resultTable[r] ? resultTable[r][c] : null;
56
- else
57
- return lookupTable[r][lookupTable[r].length - 1];
58
- }
59
- export function choose(index, ...args) {
60
- let result = null;
61
- let current = 0;
62
- eachValue(args, v => {
63
- if (index == ++current) {
64
- result = v;
65
- return false;
66
- }
67
- });
68
- return result;
69
- }
70
- export function column(address) {
71
- return (address ? CellRange.fromA1(address).c1 : this.cell.c) + 1;
72
- }
73
- export function row(address) {
74
- return (address ? CellRange.fromA1(address).r1 : this.cell.r) + 1;
75
- }
76
- export function columns(range) {
77
- return Array.isArray(range) ? range[0]?.length : 1;
78
- }
79
- export function rows(range) {
80
- return Array.isArray(range) ? range.length : 1;
81
- }
82
- export function formulatext() {
83
- const cell = getFormulaCells(this)[0];
84
- return cell && cell.hasFormula ? (' ' + prefixFormula(cell.formula)) : '';
85
- }
86
- export function index(range, row, column) {
87
- row = row || 1;
88
- column = column || 1;
89
- if (Array.isArray(range))
90
- return range[row - 1] ? range[row - 1][column - 1] : null;
91
- else if (row == 1 && column == 1)
92
- return range;
93
- else
94
- return null;
95
- }
96
- export function indirect(ref) {
97
- const currentCell = this.cell;
98
- const model = currentCell.model;
99
- const targetCell = model.getCellByA1(ref);
100
- // register string reference dependencies
101
- let map;
102
- if (model.calculations.dependencies.cellDependencies.has(currentCell.address)) {
103
- map = model.calculations.dependencies.cellDependencies.get(currentCell.address);
104
- }
105
- else {
106
- map = new Map();
107
- model.calculations.dependencies.cellDependencies.set(currentCell.address, map);
108
- }
109
- map.set(targetCell.address, [targetCell.range]);
110
- if (model.calculations.dependencies.cellDependants.has(targetCell.address)) {
111
- map = model.calculations.dependencies.cellDependants.get(targetCell.address);
112
- }
113
- else {
114
- map = new Map();
115
- model.calculations.dependencies.cellDependants.set(targetCell.address, map);
116
- }
117
- map.set(currentCell.address, [currentCell.range]);
118
- return targetCell.value;
119
- }
120
- export function match(matchValue, range, matchType = 0) {
121
- let r, c;
122
- for (r = 0; r < range.length; r++) {
123
- for (c = 0; c < range[r].length; c++) {
124
- if (matchType == 0 && range[r][c] == matchValue)
125
- return Math.max(r + 1, c + 1);
126
- if (matchType == 1 && range[r][c] > matchValue)
127
- return Math.max(r + 1, c + 1);
128
- if (matchType == -1 && range[r][c] < matchValue)
129
- return Math.max(r + 1, c + 1);
130
- }
131
- }
132
- return null;
133
- }
134
- export function offset(_ref, rows, columns, height, width) {
135
- const cell = getFormulaCells(this)[0];
136
- const result = [];
137
- height = height || 1;
138
- width = width || 1;
139
- for (let r = 0; r < height; r++) {
140
- const row = [];
141
- for (let c = 0; c < width; c++) {
142
- const cell2 = cell.model.rows[cell.r + r + rows].cell(cell.c + c + columns);
143
- row.push(cell2 ? cell.value : null);
144
- }
145
- result.push(row);
146
- }
147
- return result;
148
- }
149
- export function filter(range, boolRange) {
150
- const result = [];
151
- if (range.length == boolRange.length) {
152
- for (let r = 0; r < range.length; r++) {
153
- let match = true;
154
- for (let c = 0; c < boolRange[r].length; c++) {
155
- if (!boolRange[r][c]) {
156
- match = false;
157
- break;
158
- }
159
- }
160
- if (match)
161
- result.push(range[r]);
162
- }
163
- }
164
- else {
165
- // by columns
166
- }
167
- return result;
168
- }
169
- //# sourceMappingURL=lookup.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lookup.js","sourceRoot":"","sources":["../../../src/calculations/functions/lookup.ts"],"names":[],"mappings":"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","sourcesContent":["import { Matrix } from \"@omegagrid/core\";\nimport { FormulaContext, prefixFormula } from \"..\";\nimport { CellRange } from \"../../common\";\nimport { ArrayArg, eachValue, getFormulaCells } from \"../helpers\";\n\nfunction getStringMatcher(searchValue: string, exactMatch: boolean): ((value: string) => boolean) {\n\tsearchValue = searchValue == null ? '' : searchValue.toString();\n\tif (exactMatch) {\n\t\treturn (value: string) => value == searchValue;\t\n\t} else {\n\t\tsearchValue = searchValue.toLowerCase();\n\t\treturn (value: string) => (value ?? '').toString().toLowerCase() == searchValue;\n\t}\n}\n\nexport function address(row: number, column: number, mode = 1) {\n\tconst range = new CellRange(Math.max((column || 0) - 1, 0), Math.max((row || 0) - 1, 0));\n\tif (mode == 1 || mode == 2) range.r1Anchor = true;\n\tif (mode == 1 || mode == 3) range.c1Anchor = true;\n\treturn range.A1;\n}\n\nexport function vlookup(lookupValue: string, lookupTable: Matrix<string>, colIndex: number, exactMatch = false) {\n\tlet r: number, c: number;\n\tconst match = getStringMatcher(lookupValue, exactMatch);\n\tfor (r = 0; r < lookupTable.length; r++) {\n\t\tfor (c = 0; c < lookupTable[r].length; c++) {\n\t\t\tif (match(lookupTable[r][c])) {\n\t\t\t\treturn lookupTable[r][colIndex - 1];\n\t\t\t}\n\t\t}\n\t}\n\treturn null;\n}\n\nexport function hlookup(lookupValue: string, lookupTable: Matrix<string>, rowIndex: number, exactMatch = false) {\n\tlet r: number, c: number;\n\tconst match = getStringMatcher(lookupValue, exactMatch);\n\tfor (r = 0; r < lookupTable.length; r++) {\n\t\tfor (c = 0; c < lookupTable[r].length; c++) {\n\t\t\tif (match(lookupTable[r][c])) {\n\t\t\t\treturn lookupTable[rowIndex - 1][c];\n\t\t\t}\n\t\t}\n\t}\n\treturn null;\n}\n\nexport function lookup(lookupValue: unknown, lookupTable: Matrix<unknown>, resultTable?: Matrix<unknown>) {\n\tlet r: number, c: number;\n\n\texit_loops:\n\tfor (r = 0; r < lookupTable.length; r++) {\n\t\tfor (c = 0; c < lookupTable[r].length; c++) {\n\t\t\tif (lookupTable[r][c] == lookupValue) break exit_loops;\n\t\t}\n\t}\n\n\tif (resultTable) return resultTable[r] ? resultTable[r][c] : null;\n\telse return lookupTable[r][lookupTable[r].length - 1];\n}\n\nexport function choose(index: number, ...args: ArrayArg) {\n\tlet result: unknown = null;\n\tlet current = 0;\n\teachValue(args, v => { \n\t\tif (index == ++current) {\n\t\t\tresult = v;\n\t\t\treturn false;\n\t\t}\n\t});\n\treturn result;\n}\n\nexport function column(address?: string) {\n\treturn (address ? CellRange.fromA1(address).c1 : (this as FormulaContext).cell.c) + 1;\n}\n\nexport function row(address?: string) {\n\treturn (address ? CellRange.fromA1(address).r1 : (this as FormulaContext).cell.r) + 1;\n}\n\nexport function columns(range: ArrayArg) {\n\treturn Array.isArray(range) ? range[0]?.length : 1;\n}\n\nexport function rows(range: ArrayArg) {\n\treturn Array.isArray(range) ? range.length : 1;\n}\n\nexport function formulatext() {\n\tconst cell = getFormulaCells(this)[0];\n\treturn cell && cell.hasFormula ? (' ' + prefixFormula(cell.formula)) : '';\n}\n\nexport function index(range: ArrayArg, row: number, column: number) {\n\trow = row || 1;\n\tcolumn = column || 1;\n\tif (Array.isArray(range)) return range[row - 1] ? range[row - 1][column - 1] : null;\n\telse if (row == 1 && column == 1) return range;\n\telse return null;\n}\n\nexport function indirect(ref: string) {\n\tconst currentCell = (this as FormulaContext).cell;\n\tconst model = currentCell.model;\n\tconst targetCell = model.getCellByA1(ref);\n\n\t// register string reference dependencies\n\tlet map: Map<string, [CellRange, string?]>;\n\tif (model.calculations.dependencies.cellDependencies.has(currentCell.address)) {\n\t\tmap = model.calculations.dependencies.cellDependencies.get(currentCell.address);\n\t} else {\n\t\tmap = new Map();\n\t\tmodel.calculations.dependencies.cellDependencies.set(currentCell.address, map);\n\t}\n\tmap.set(targetCell.address, [targetCell.range]);\n\n\tif (model.calculations.dependencies.cellDependants.has(targetCell.address)) {\n\t\tmap = model.calculations.dependencies.cellDependants.get(targetCell.address);\n\t} else {\n\t\tmap = new Map();\n\t\tmodel.calculations.dependencies.cellDependants.set(targetCell.address, map);\n\t}\n\tmap.set(currentCell.address, [currentCell.range]);\n\n\treturn targetCell.value;\n}\n\nexport function match(matchValue: unknown, range: Matrix<unknown>, matchType = 0) {\n\tlet r: number, c: number;\n\tfor (r = 0; r < range.length; r++) {\n\t\tfor (c = 0; c < range[r].length; c++) {\n\t\t\tif (matchType == 0 && range[r][c] == matchValue) return Math.max(r + 1, c + 1);\n\t\t\tif (matchType == 1 && range[r][c] > matchValue) return Math.max(r + 1, c + 1);\n\t\t\tif (matchType == -1 && range[r][c] < matchValue) return Math.max(r + 1, c + 1);\n\t\t}\n\t}\n\treturn null;\n}\n\nexport function offset(_ref: unknown, rows: number, columns: number, height?: number, width?: number) {\n\tconst cell = getFormulaCells(this)[0];\n\tconst result: unknown[] = [];\n\theight = height || 1;\n\twidth = width || 1;\n\tfor (let r = 0; r < height; r++) {\n\t\tconst row: unknown[] = [];\n\t\tfor (let c = 0; c < width; c++) {\n\t\t\tconst cell2 = cell.model.rows[cell.r + r + rows].cell(cell.c + c + columns);\n\t\t\trow.push(cell2 ? cell.value : null)\n\t\t}\n\t\tresult.push(row);\n\t}\n\treturn result;\n}\n\nexport function filter(range: Matrix, boolRange: Matrix) {\n\tconst result: unknown[] = [];\n\tif (range.length == boolRange.length) {\n\t\tfor (let r = 0; r < range.length; r++) {\n\t\t\tlet match = true;\n\t\t\tfor (let c = 0; c < boolRange[r].length; c++) {\n\t\t\t\tif (!boolRange[r][c]) {\n\t\t\t\t\tmatch = false;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (match) result.push(range[r]);\n\t\t}\n\t} else {\n\t\t// by columns\n\t}\n\treturn result;\n}"]}
@@ -1,72 +0,0 @@
1
- import { Matrix } from "@omegagrid/core";
2
- import { Condition } from "../conditions";
3
- import { ArrayArg } from '../helpers';
4
- export declare function acos(x: number): number;
5
- export declare function acosh(x: number): number;
6
- export declare function acot(x: number): number;
7
- export declare function acoth(x: number): number;
8
- export declare function asin(x: number): number;
9
- export declare function asinh(x: number): number;
10
- export declare function atan(x: number): number;
11
- export declare function atanh(x: number): number;
12
- export declare function cos(x: number): number;
13
- export declare function cosh(x: number): number;
14
- export declare function cot(x: number): number;
15
- export declare function coth(x: number): number;
16
- export declare function csc(x: number): number;
17
- export declare function csch(x: number): number;
18
- export declare function degrees(x: number): number;
19
- export declare function PI(): number;
20
- export declare function sec(x: number): number;
21
- export declare function sech(x: number): number;
22
- export declare function sin(x: number): number;
23
- export declare function sinh(x: number): number;
24
- export declare function tan(x: number): number;
25
- export declare function tanh(x: number): number;
26
- /**
27
- * Returns the absolute value of a number.
28
- *
29
- * @link https://support.google.com/docs/answer/3093459
30
- * @link https://support.microsoft.com/en-us/office/abs-function-3420200f-5628-4e8c-99da-c99d7c87713c
31
- *
32
- * @param x number
33
- * @returns number
34
- */
35
- export declare function abs(x: number): number;
36
- export declare function ceiling(x: number): number;
37
- export declare function even(x: number): number;
38
- export declare function exp(x: number): number;
39
- export declare function fact(x: number): number;
40
- export declare function factdouble(x: number): number;
41
- export declare function floor(x: number): number;
42
- export declare function isdecimal(x: number): boolean;
43
- export declare function iseven(x: number): boolean;
44
- export declare function isodd(x: number): boolean;
45
- export declare function ln(x: number): number;
46
- export declare function log(x: number, base: number): number;
47
- export declare function log10(x: number): number;
48
- export declare function mod(divident: number, divisor: number): number;
49
- export declare function odd(x: number): number;
50
- export declare function power(base: number, exponent: number): number;
51
- export declare function product(...args: ArrayArg): number;
52
- export declare function quotient(divident: number, divisor: number): number;
53
- export declare function radians(angle: number): number;
54
- export declare function rand(): number;
55
- export declare function randarray(rows: number, columns: number): Matrix<number>;
56
- export declare function randbetween(min: number, max: number): number;
57
- export declare function round(value: number, places: number): string;
58
- export declare function rounddown(value: number, places: number): number;
59
- export declare function roundup(value: number, places: number): number;
60
- export declare function sequence(rows: number, columns: number, start?: number, step?: number): Matrix<number>;
61
- export declare function sign(value: number): 1 | -1 | 0;
62
- export declare function sqrt(x: number): number;
63
- export declare function sqrtpi(x: number): number;
64
- export declare function count(...args: ArrayArg): number;
65
- export declare function countblank(...args: ArrayArg): number;
66
- export declare function countif(v: ArrayArg, cond: Condition): number;
67
- export declare function countunique(...args: ArrayArg): number;
68
- export declare function sum(...args: ArrayArg<number>): number;
69
- export declare function sumif(v: ArrayArg<number>, cond: Condition, range?: ArrayArg<number>): number;
70
- export declare function sumsq(v: ArrayArg<number>, cond: Condition): number;
71
- export declare function sumproduct(...args: ArrayArg<number>): number;
72
- //# sourceMappingURL=math.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"math.d.ts","sourceRoot":"","sources":["../../../src/calculations/functions/math.ts"],"names":[],"mappings":"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"}
@@ -1,182 +0,0 @@
1
- import { evalCondition } from "../conditions";
2
- import { eachValue, matrix } from '../helpers';
3
- // trigonometry
4
- export function acos(x) { return Math.acos(x); }
5
- export function acosh(x) { return Math.acosh(x); }
6
- export function acot(x) { return Math.PI / 2 - Math.atan(x); }
7
- export function acoth(x) { return 0.5 * Math.log((x + 1) / (x - 1)); }
8
- export function asin(x) { return Math.asin(x); }
9
- export function asinh(x) { return Math.asinh(x); }
10
- export function atan(x) { return Math.atan(x); }
11
- export function atanh(x) { return Math.atanh(x); }
12
- export function cos(x) { return Math.cos(x); }
13
- export function cosh(x) { return Math.cosh(x); }
14
- export function cot(x) { return 1 / Math.tan(x); }
15
- export function coth(x) { return 1 / Math.tanh(x); }
16
- export function csc(x) { return 1 / Math.sin(x); }
17
- export function csch(x) { return 1 / Math.sinh(x); }
18
- export function degrees(x) { return x * 180 / Math.PI; }
19
- export function PI() { return Math.PI; }
20
- export function sec(x) { return 1 / Math.cos(x); }
21
- export function sech(x) { return 1 / Math.cosh(x); }
22
- export function sin(x) { return Math.sin(x); }
23
- export function sinh(x) { return Math.sinh(x); }
24
- export function tan(x) { return Math.tan(x); }
25
- export function tanh(x) { return Math.tanh(x); }
26
- /**
27
- * Returns the absolute value of a number.
28
- *
29
- * @link https://support.google.com/docs/answer/3093459
30
- * @link https://support.microsoft.com/en-us/office/abs-function-3420200f-5628-4e8c-99da-c99d7c87713c
31
- *
32
- * @param x number
33
- * @returns number
34
- */
35
- export function abs(x) { return Math.abs(x); }
36
- export function ceiling(x) {
37
- if (x < 0)
38
- throw new Error("#NUM");
39
- return Math.ceil(x);
40
- }
41
- export function even(x) {
42
- x = Math.ceil(x);
43
- return x % 2 == 0 ? x : x + 1;
44
- }
45
- export function exp(x) { return Math.pow(Math.E, x); }
46
- export function fact(x) {
47
- if (x < 0)
48
- return -1;
49
- else if (x == 0)
50
- return 1;
51
- else
52
- return (x * fact(x - 1));
53
- }
54
- export function factdouble(x) {
55
- if (x <= 0)
56
- return 1;
57
- else
58
- return (x * factdouble(x - 2));
59
- }
60
- export function floor(x) { return Math.floor(x); }
61
- export function isdecimal(x) { return x % 1 !== 0; }
62
- export function iseven(x) { return !isdecimal(x) && x % 2 == 0; }
63
- export function isodd(x) { return isdecimal(x) || x % 2 == 1; }
64
- export function ln(x) { return Math.log(x); }
65
- export function log(x, base) { return Math.log(x) / Math.log(base); }
66
- export function log10(x) { return Math.log10(x); }
67
- export function mod(divident, divisor) { return divident % divisor; }
68
- export function odd(x) {
69
- x = Math.ceil(x);
70
- return x % 2 == 0 ? x + 1 : x;
71
- }
72
- export function power(base, exponent) { return Math.pow(base, exponent); }
73
- export function product(...args) {
74
- let result = 1;
75
- eachValue(args, v => result *= v || 1);
76
- return result;
77
- }
78
- export function quotient(divident, divisor) { return Math.floor(divident / divisor); }
79
- export function radians(angle) { return angle * Math.PI / 180; }
80
- export function rand() { return Math.random(); }
81
- export function randarray(rows, columns) {
82
- const arr = Array(rows).fill(null).map(() => Array(columns));
83
- for (let r = 0; r < rows; r++) {
84
- for (let c = 0; c < columns; c++) {
85
- arr[r][c] = Math.random();
86
- }
87
- }
88
- return arr;
89
- }
90
- export function randbetween(min, max) {
91
- min = Math.ceil(min);
92
- max = Math.floor(max);
93
- return Math.floor(Math.random() * (max - min + 1)) + min;
94
- }
95
- export function round(value, places) { return value.toFixed(places); }
96
- export function rounddown(value, places) {
97
- places = places || 0;
98
- return Math.floor(value * Math.pow(10, places)) / Math.pow(10, places);
99
- }
100
- export function roundup(value, places) {
101
- places = places || 0;
102
- return Math.ceil(value * Math.pow(10, places)) / Math.pow(10, places);
103
- }
104
- export function sequence(rows, columns, start = 1, step = 1) {
105
- const arr = Array(rows).fill(null).map(() => Array(columns));
106
- let val = start;
107
- for (let r = 0; r < rows; r++) {
108
- for (let c = 0; c < columns; c++) {
109
- arr[r][c] = val;
110
- val += step;
111
- }
112
- }
113
- return arr;
114
- }
115
- export function sign(value) { return value < 0 ? -1 : (value > 0 ? 1 : 0); }
116
- export function sqrt(x) { return Math.sqrt(x); }
117
- export function sqrtpi(x) { return Math.sqrt(Math.PI * x); }
118
- // counting
119
- export function count(...args) {
120
- let cnt = 0;
121
- eachValue(args, v => cnt += v == null ? 0 : 1);
122
- return cnt;
123
- }
124
- export function countblank(...args) {
125
- let cnt = 0;
126
- eachValue(args, v => cnt += v == null ? 1 : 0);
127
- return cnt;
128
- }
129
- export function countif(v, cond) {
130
- let cnt = 0;
131
- eachValue(v, v => cnt += evalCondition(cond, v) ? 1 : 0);
132
- return cnt;
133
- }
134
- export function countunique(...args) {
135
- let cnt = 0;
136
- const map = new Map();
137
- eachValue(args, v => {
138
- if (!map.has(v)) {
139
- map.set(v, v);
140
- ++cnt;
141
- }
142
- });
143
- return cnt;
144
- }
145
- export function sum(...args) {
146
- let res = 0;
147
- eachValue(args, v => res += isNaN(v) || v == null || v === "" ? 0 : v);
148
- return res;
149
- }
150
- export function sumif(v, cond, range) {
151
- let sum = 0;
152
- if (range) {
153
- const rangeMatrix = matrix(range);
154
- eachValue(v, (val, r, c) => sum += evalCondition(cond, val)
155
- && rangeMatrix[r]
156
- && rangeMatrix[r][c]
157
- && !isNaN(rangeMatrix[r][c])
158
- ? (rangeMatrix[r][c]) : 0);
159
- }
160
- else {
161
- eachValue(v, val => sum += evalCondition(cond, val) && !isNaN(val) ? val : 0);
162
- }
163
- return sum;
164
- }
165
- export function sumsq(v, cond) {
166
- let sum = 0;
167
- eachValue(v, v => sum += evalCondition(cond, v) && !isNaN(v) ? (v * v) : 0);
168
- return sum;
169
- }
170
- export function sumproduct(...args) {
171
- let sum = 0;
172
- const r1 = args.shift();
173
- if (args.length === 0) {
174
- eachValue(r1, v => sum += isNaN(v) ? 0 : v);
175
- }
176
- else {
177
- const r2 = matrix(args[0]);
178
- eachValue(r1, (v, r, c) => sum += r2[r] && r2[r][c] && !isNaN(v) && !isNaN(r2[r][c]) ? (v * r2[r][c]) : 0);
179
- }
180
- return sum;
181
- }
182
- //# sourceMappingURL=math.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"math.js","sourceRoot":"","sources":["../../../src/calculations/functions/math.ts"],"names":[],"mappings":"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","sourcesContent":["import { Matrix } from \"@omegagrid/core\";\nimport { Condition, evalCondition } from \"../conditions\";\nimport { eachValue, ArrayArg, matrix } from '../helpers';\n\n// trigonometry\nexport function acos(x: number) { return Math.acos(x) }\nexport function acosh(x: number) { return Math.acosh(x) }\nexport function acot(x: number) { return Math.PI / 2 - Math.atan(x) }\nexport function acoth(x: number) { return 0.5 * Math.log((x + 1) / (x - 1)) }\nexport function asin(x: number) { return Math.asin(x) }\nexport function asinh(x: number) { return Math.asinh(x) }\nexport function atan(x: number) { return Math.atan(x) }\nexport function atanh(x: number) { return Math.atanh(x) }\nexport function cos(x: number) { return Math.cos(x) }\nexport function cosh(x: number) { return Math.cosh(x) }\nexport function cot(x: number) { return 1 / Math.tan(x) }\nexport function coth(x: number) { return 1 / Math.tanh(x) }\nexport function csc(x: number) { return 1 / Math.sin(x) }\nexport function csch(x: number) { return 1 / Math.sinh(x) }\nexport function degrees(x: number) { return x * 180 / Math.PI }\nexport function PI() { return Math.PI }\nexport function sec(x: number) { return 1 / Math.cos(x) }\nexport function sech(x: number) { return 1 / Math.cosh(x) }\nexport function sin(x: number) { return Math.sin(x) }\nexport function sinh(x: number) { return Math.sinh(x) }\nexport function tan(x: number) { return Math.tan(x) }\nexport function tanh(x: number) { return Math.tanh(x) }\n\n\n/**\n * Returns the absolute value of a number.\n *\n * @link https://support.google.com/docs/answer/3093459\n * @link https://support.microsoft.com/en-us/office/abs-function-3420200f-5628-4e8c-99da-c99d7c87713c\n * \n * @param x number\n * @returns number\n */\nexport function abs(x: number) { return Math.abs(x) }\n\nexport function ceiling(x: number) { \n\tif (x < 0) throw new Error(\"#NUM\");\n\treturn Math.ceil(x);\n}\nexport function even(x: number) {\n\tx = Math.ceil(x);\n\treturn x % 2 == 0 ? x : x + 1;\n}\nexport function exp(x: number) { return Math.pow(Math.E, x) }\nexport function fact(x: number): number { \n\tif (x < 0) return -1;\n\telse if (x == 0) return 1;\n\telse return (x * fact(x - 1));\n}\n\nexport function factdouble(x: number): number { \n\tif (x <= 0) return 1;\n\telse return (x * factdouble(x - 2));\n}\n\nexport function floor(x: number) { return Math.floor(x) }\n\nexport function isdecimal(x: number) { return x % 1 !== 0 }\nexport function iseven(x: number) { return !isdecimal(x) && x % 2 == 0 }\nexport function isodd(x: number) { return isdecimal(x) || x % 2 == 1 }\nexport function ln(x: number) { return Math.log(x) }\nexport function log(x: number, base: number) { return Math.log(x) / Math.log(base) }\nexport function log10(x: number) { return Math.log10(x) }\nexport function mod(divident: number, divisor: number) { return divident % divisor }\nexport function odd(x: number) {\n\tx = Math.ceil(x);\n\treturn x % 2 == 0 ? x + 1 : x;\n}\nexport function power(base: number, exponent: number) { return Math.pow(base, exponent) }\n\nexport function product(...args: ArrayArg) {\n\tlet result = 1;\n\teachValue(args, v => result *= (v as number) || 1);\n\treturn result;\n}\n\nexport function quotient(divident: number, divisor: number) { return Math.floor(divident / divisor) }\nexport function radians(angle: number) { return angle * Math.PI / 180 }\nexport function rand() { return Math.random() }\n\nexport function randarray(rows: number, columns: number) {\n\tconst arr: Matrix<number> = Array(rows).fill(null).map(() => Array(columns));\n\tfor (let r = 0; r < rows; r++) {\n\t\tfor (let c = 0; c < columns; c++) {\n\t\t\tarr[r][c] = Math.random();\n\t\t}\n\t}\n\treturn arr;\n}\n\nexport function randbetween(min: number, max: number) {\n\tmin = Math.ceil(min);\n\tmax = Math.floor(max);\n\treturn Math.floor(Math.random() * (max - min + 1)) + min;\n}\n\nexport function round(value: number, places: number) { return value.toFixed(places) }\n\nexport function rounddown(value: number, places: number) {\n\tplaces = places || 0;\n return Math.floor(value * Math.pow(10, places)) / Math.pow(10, places);\n}\n\nexport function roundup(value: number, places: number) {\n\tplaces = places || 0;\n return Math.ceil(value * Math.pow(10, places)) / Math.pow(10, places);\n}\n\nexport function sequence(rows: number, columns: number, start = 1, step = 1) {\n\tconst arr: Matrix<number> = Array(rows).fill(null).map(() => Array(columns));\n\tlet val = start;\n\tfor (let r = 0; r < rows; r++) {\n\t\tfor (let c = 0; c < columns; c++) {\n\t\t\tarr[r][c] = val;\n\t\t\tval += step;\n\t\t}\n\t}\n\treturn arr;\n}\n\nexport function sign(value: number) { return value < 0 ? -1 : (value > 0 ? 1 : 0) }\nexport function sqrt(x: number) { return Math.sqrt(x) }\nexport function sqrtpi(x: number) { return Math.sqrt(Math.PI * x) }\n\n// counting\n\nexport function count(...args: ArrayArg) {\n\tlet cnt = 0;\n\teachValue(args, v => cnt += v == null ? 0 : 1);\n\treturn cnt;\n}\n\nexport function countblank(...args: ArrayArg) {\n\tlet cnt = 0;\n\teachValue(args, v => cnt += v == null ? 1 : 0);\n\treturn cnt;\n}\n\nexport function countif(v: ArrayArg, cond: Condition) {\n\tlet cnt = 0;\n\teachValue(v, v => cnt += evalCondition(cond, v) ? 1 : 0);\n\treturn cnt;\n}\n\nexport function countunique(...args: ArrayArg) {\n\tlet cnt = 0;\n\tconst map = new Map();\n\teachValue(args, v => {\n\t\tif (!map.has(v)) {\n\t\t\tmap.set(v, v);\n\t\t\t++cnt;\n\t\t}\n\t});\n\treturn cnt;\n}\n\nexport function sum(...args: ArrayArg<number>) {\n\tlet res = 0;\n\teachValue<unknown>(args, v => res += isNaN(v as number) || v == null || v === \"\" ? 0 : (v as number));\n\treturn res;\n}\n\nexport function sumif(v: ArrayArg<number>, cond: Condition, range?: ArrayArg<number>) {\n\tlet sum = 0;\n\tif (range) {\n\t\tconst rangeMatrix = matrix(range);\n\t\teachValue(v, (val, r, c) => sum += evalCondition(cond, val) \n\t\t\t\t&& rangeMatrix[r] \n\t\t\t\t&& rangeMatrix[r][c] \n\t\t\t\t&& !isNaN(rangeMatrix[r][c])\n\t\t\t? (rangeMatrix[r][c]) : 0);\n\t} else {\n\t\teachValue(v, val => sum += evalCondition(cond, val) && !isNaN(val) ? val : 0);\n\t}\n\treturn sum;\n}\n\nexport function sumsq(v: ArrayArg<number>, cond: Condition) {\n\tlet sum = 0;\n\teachValue(v, v => sum += evalCondition(cond, v) && !isNaN(v) ? (v * v) : 0);\n\treturn sum;\n}\n\nexport function sumproduct(...args: ArrayArg<number>) {\n\tlet sum = 0;\n\tconst r1 = args.shift();\n\tif (args.length === 0) {\n\t\teachValue(r1 as Matrix<number>, v => sum += isNaN(v) ? 0 : v);\n\t} else {\n\t\tconst r2 = matrix<number>(args[0] as ArrayArg<number>);\n\t\teachValue(r1 as Matrix<number>, (v, r, c) => sum += r2[r] && r2[r][c] && !isNaN(v) && !isNaN(r2[r][c]) ? (v * r2[r][c]) : 0);\n\t}\n\treturn sum;\n}"]}
@@ -1,2 +0,0 @@
1
- export declare function erfc(y: number): number;
2
- //# sourceMappingURL=special.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"special.d.ts","sourceRoot":"","sources":["../../../src/calculations/functions/special.ts"],"names":[],"mappings":"AA0CA,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,UAW7B"}