@gridsheet/functions 3.0.0-rc.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 (247) hide show
  1. package/dist/index.d.ts +5 -0
  2. package/dist/index.d.ts.map +1 -0
  3. package/dist/index.js +332 -0
  4. package/dist/information/index.d.ts +4 -0
  5. package/dist/information/index.d.ts.map +1 -0
  6. package/dist/information/isblank.d.ts +9 -0
  7. package/dist/information/isblank.d.ts.map +1 -0
  8. package/dist/information/isdate.d.ts +9 -0
  9. package/dist/information/isdate.d.ts.map +1 -0
  10. package/dist/information/isemail.d.ts +9 -0
  11. package/dist/information/isemail.d.ts.map +1 -0
  12. package/dist/information/iserr.d.ts +9 -0
  13. package/dist/information/iserr.d.ts.map +1 -0
  14. package/dist/information/iserror.d.ts +9 -0
  15. package/dist/information/iserror.d.ts.map +1 -0
  16. package/dist/information/isformula.d.ts +9 -0
  17. package/dist/information/isformula.d.ts.map +1 -0
  18. package/dist/information/islogical.d.ts +9 -0
  19. package/dist/information/islogical.d.ts.map +1 -0
  20. package/dist/information/isna.d.ts +9 -0
  21. package/dist/information/isna.d.ts.map +1 -0
  22. package/dist/information/isnontext.d.ts +9 -0
  23. package/dist/information/isnontext.d.ts.map +1 -0
  24. package/dist/information/isref.d.ts +9 -0
  25. package/dist/information/isref.d.ts.map +1 -0
  26. package/dist/information/istext.d.ts +9 -0
  27. package/dist/information/istext.d.ts.map +1 -0
  28. package/dist/information/n.d.ts +9 -0
  29. package/dist/information/n.d.ts.map +1 -0
  30. package/dist/information/na.d.ts +9 -0
  31. package/dist/information/na.d.ts.map +1 -0
  32. package/dist/information/sheets.d.ts +9 -0
  33. package/dist/information/sheets.d.ts.map +1 -0
  34. package/dist/logical/ifna.d.ts +10 -0
  35. package/dist/logical/ifna.d.ts.map +1 -0
  36. package/dist/logical/ifs.d.ts +11 -0
  37. package/dist/logical/ifs.d.ts.map +1 -0
  38. package/dist/logical/index.d.ts +4 -0
  39. package/dist/logical/index.d.ts.map +1 -0
  40. package/dist/logical/xor.d.ts +9 -0
  41. package/dist/logical/xor.d.ts.map +1 -0
  42. package/dist/lookup/column.d.ts +12 -0
  43. package/dist/lookup/column.d.ts.map +1 -0
  44. package/dist/lookup/columns.d.ts +9 -0
  45. package/dist/lookup/columns.d.ts.map +1 -0
  46. package/dist/lookup/hlookup.d.ts +10 -0
  47. package/dist/lookup/hlookup.d.ts.map +1 -0
  48. package/dist/lookup/index.d.ts +4 -0
  49. package/dist/lookup/index.d.ts.map +1 -0
  50. package/dist/lookup/index.js +377 -0
  51. package/dist/lookup/indexFn.d.ts +10 -0
  52. package/dist/lookup/indexFn.d.ts.map +1 -0
  53. package/dist/lookup/match.d.ts +10 -0
  54. package/dist/lookup/match.d.ts.map +1 -0
  55. package/dist/lookup/row.d.ts +12 -0
  56. package/dist/lookup/row.d.ts.map +1 -0
  57. package/dist/lookup/rows.d.ts +9 -0
  58. package/dist/lookup/rows.d.ts.map +1 -0
  59. package/dist/lookup/sheet.d.ts +9 -0
  60. package/dist/lookup/sheet.d.ts.map +1 -0
  61. package/dist/lookup/vlookup.d.ts +10 -0
  62. package/dist/lookup/vlookup.d.ts.map +1 -0
  63. package/dist/math/__matrix_base.d.ts +15 -0
  64. package/dist/math/__matrix_base.d.ts.map +1 -0
  65. package/dist/math/acos.d.ts +9 -0
  66. package/dist/math/acos.d.ts.map +1 -0
  67. package/dist/math/asin.d.ts +9 -0
  68. package/dist/math/asin.d.ts.map +1 -0
  69. package/dist/math/atan.d.ts +9 -0
  70. package/dist/math/atan.d.ts.map +1 -0
  71. package/dist/math/atan2.d.ts +9 -0
  72. package/dist/math/atan2.d.ts.map +1 -0
  73. package/dist/math/base.d.ts +10 -0
  74. package/dist/math/base.d.ts.map +1 -0
  75. package/dist/math/cos.d.ts +9 -0
  76. package/dist/math/cos.d.ts.map +1 -0
  77. package/dist/math/countif.d.ts +9 -0
  78. package/dist/math/countif.d.ts.map +1 -0
  79. package/dist/math/countifs.d.ts +10 -0
  80. package/dist/math/countifs.d.ts.map +1 -0
  81. package/dist/math/even.d.ts +9 -0
  82. package/dist/math/even.d.ts.map +1 -0
  83. package/dist/math/exp.d.ts +10 -0
  84. package/dist/math/exp.d.ts.map +1 -0
  85. package/dist/math/fact.d.ts +9 -0
  86. package/dist/math/fact.d.ts.map +1 -0
  87. package/dist/math/index.d.ts +4 -0
  88. package/dist/math/index.d.ts.map +1 -0
  89. package/dist/math/index.js +1019 -0
  90. package/dist/math/int.d.ts +9 -0
  91. package/dist/math/int.d.ts.map +1 -0
  92. package/dist/math/iseven.d.ts +9 -0
  93. package/dist/math/iseven.d.ts.map +1 -0
  94. package/dist/math/isodd.d.ts +9 -0
  95. package/dist/math/isodd.d.ts.map +1 -0
  96. package/dist/math/lcm.d.ts +10 -0
  97. package/dist/math/lcm.d.ts.map +1 -0
  98. package/dist/math/ln.d.ts +9 -0
  99. package/dist/math/ln.d.ts.map +1 -0
  100. package/dist/math/log.d.ts +9 -0
  101. package/dist/math/log.d.ts.map +1 -0
  102. package/dist/math/log10.d.ts +9 -0
  103. package/dist/math/log10.d.ts.map +1 -0
  104. package/dist/math/mdeterm.d.ts +11 -0
  105. package/dist/math/mdeterm.d.ts.map +1 -0
  106. package/dist/math/minverse.d.ts +12 -0
  107. package/dist/math/minverse.d.ts.map +1 -0
  108. package/dist/math/mmult.d.ts +11 -0
  109. package/dist/math/mmult.d.ts.map +1 -0
  110. package/dist/math/mod.d.ts +10 -0
  111. package/dist/math/mod.d.ts.map +1 -0
  112. package/dist/math/odd.d.ts +9 -0
  113. package/dist/math/odd.d.ts.map +1 -0
  114. package/dist/math/pi.d.ts +9 -0
  115. package/dist/math/pi.d.ts.map +1 -0
  116. package/dist/math/product.d.ts +10 -0
  117. package/dist/math/product.d.ts.map +1 -0
  118. package/dist/math/radians.d.ts +9 -0
  119. package/dist/math/radians.d.ts.map +1 -0
  120. package/dist/math/rand.d.ts +9 -0
  121. package/dist/math/rand.d.ts.map +1 -0
  122. package/dist/math/round.d.ts +9 -0
  123. package/dist/math/round.d.ts.map +1 -0
  124. package/dist/math/rounddown.d.ts +9 -0
  125. package/dist/math/rounddown.d.ts.map +1 -0
  126. package/dist/math/roundup.d.ts +9 -0
  127. package/dist/math/roundup.d.ts.map +1 -0
  128. package/dist/math/sequence.d.ts +11 -0
  129. package/dist/math/sequence.d.ts.map +1 -0
  130. package/dist/math/sign.d.ts +9 -0
  131. package/dist/math/sign.d.ts.map +1 -0
  132. package/dist/math/sin.d.ts +9 -0
  133. package/dist/math/sin.d.ts.map +1 -0
  134. package/dist/math/sqrt.d.ts +9 -0
  135. package/dist/math/sqrt.d.ts.map +1 -0
  136. package/dist/math/sumif.d.ts +9 -0
  137. package/dist/math/sumif.d.ts.map +1 -0
  138. package/dist/math/sumifs.d.ts +10 -0
  139. package/dist/math/sumifs.d.ts.map +1 -0
  140. package/dist/math/sumproduct.d.ts +10 -0
  141. package/dist/math/sumproduct.d.ts.map +1 -0
  142. package/dist/math/sumsq.d.ts +9 -0
  143. package/dist/math/sumsq.d.ts.map +1 -0
  144. package/dist/math/tan.d.ts +9 -0
  145. package/dist/math/tan.d.ts.map +1 -0
  146. package/dist/math/transpose.d.ts +11 -0
  147. package/dist/math/transpose.d.ts.map +1 -0
  148. package/dist/math/trunc.d.ts +9 -0
  149. package/dist/math/trunc.d.ts.map +1 -0
  150. package/dist/math/unaryPercent.d.ts +9 -0
  151. package/dist/math/unaryPercent.d.ts.map +1 -0
  152. package/dist/math/uplus.d.ts +9 -0
  153. package/dist/math/uplus.d.ts.map +1 -0
  154. package/dist/statistics/averageif.d.ts +9 -0
  155. package/dist/statistics/averageif.d.ts.map +1 -0
  156. package/dist/statistics/averageifs.d.ts +10 -0
  157. package/dist/statistics/averageifs.d.ts.map +1 -0
  158. package/dist/statistics/correl.d.ts +10 -0
  159. package/dist/statistics/correl.d.ts.map +1 -0
  160. package/dist/statistics/covariance_s.d.ts +10 -0
  161. package/dist/statistics/covariance_s.d.ts.map +1 -0
  162. package/dist/statistics/index.d.ts +4 -0
  163. package/dist/statistics/index.d.ts.map +1 -0
  164. package/dist/statistics/index.js +663 -0
  165. package/dist/statistics/median.d.ts +10 -0
  166. package/dist/statistics/median.d.ts.map +1 -0
  167. package/dist/statistics/mode_sngl.d.ts +10 -0
  168. package/dist/statistics/mode_sngl.d.ts.map +1 -0
  169. package/dist/statistics/percentile_inc.d.ts +10 -0
  170. package/dist/statistics/percentile_inc.d.ts.map +1 -0
  171. package/dist/statistics/quartile_inc.d.ts +10 -0
  172. package/dist/statistics/quartile_inc.d.ts.map +1 -0
  173. package/dist/statistics/rank_eq.d.ts +10 -0
  174. package/dist/statistics/rank_eq.d.ts.map +1 -0
  175. package/dist/statistics/rsq.d.ts +10 -0
  176. package/dist/statistics/rsq.d.ts.map +1 -0
  177. package/dist/statistics/stdev_p.d.ts +10 -0
  178. package/dist/statistics/stdev_p.d.ts.map +1 -0
  179. package/dist/statistics/stdev_s.d.ts +10 -0
  180. package/dist/statistics/stdev_s.d.ts.map +1 -0
  181. package/dist/statistics/t_test.d.ts +10 -0
  182. package/dist/statistics/t_test.d.ts.map +1 -0
  183. package/dist/statistics/var_p.d.ts +10 -0
  184. package/dist/statistics/var_p.d.ts.map +1 -0
  185. package/dist/statistics/var_s.d.ts +10 -0
  186. package/dist/statistics/var_s.d.ts.map +1 -0
  187. package/dist/text/char.d.ts +9 -0
  188. package/dist/text/char.d.ts.map +1 -0
  189. package/dist/text/clean.d.ts +9 -0
  190. package/dist/text/clean.d.ts.map +1 -0
  191. package/dist/text/concatenate.d.ts +9 -0
  192. package/dist/text/concatenate.d.ts.map +1 -0
  193. package/dist/text/exact.d.ts +9 -0
  194. package/dist/text/exact.d.ts.map +1 -0
  195. package/dist/text/index.d.ts +4 -0
  196. package/dist/text/index.d.ts.map +1 -0
  197. package/dist/text/index.js +261 -0
  198. package/dist/text/join.d.ts +10 -0
  199. package/dist/text/join.d.ts.map +1 -0
  200. package/dist/text/lenb.d.ts +9 -0
  201. package/dist/text/lenb.d.ts.map +1 -0
  202. package/dist/text/lower.d.ts +9 -0
  203. package/dist/text/lower.d.ts.map +1 -0
  204. package/dist/text/proper.d.ts +9 -0
  205. package/dist/text/proper.d.ts.map +1 -0
  206. package/dist/text/replace.d.ts +10 -0
  207. package/dist/text/replace.d.ts.map +1 -0
  208. package/dist/text/rept.d.ts +10 -0
  209. package/dist/text/rept.d.ts.map +1 -0
  210. package/dist/text/trim.d.ts +9 -0
  211. package/dist/text/trim.d.ts.map +1 -0
  212. package/dist/text/unichar.d.ts +9 -0
  213. package/dist/text/unichar.d.ts.map +1 -0
  214. package/dist/text/unicode.d.ts +9 -0
  215. package/dist/text/unicode.d.ts.map +1 -0
  216. package/dist/text/upper.d.ts +9 -0
  217. package/dist/text/upper.d.ts.map +1 -0
  218. package/dist/time/__utils.d.ts +6 -0
  219. package/dist/time/__utils.d.ts.map +1 -0
  220. package/dist/time/date.d.ts +9 -0
  221. package/dist/time/date.d.ts.map +1 -0
  222. package/dist/time/day.d.ts +9 -0
  223. package/dist/time/day.d.ts.map +1 -0
  224. package/dist/time/days.d.ts +9 -0
  225. package/dist/time/days.d.ts.map +1 -0
  226. package/dist/time/hour.d.ts +9 -0
  227. package/dist/time/hour.d.ts.map +1 -0
  228. package/dist/time/index.d.ts +4 -0
  229. package/dist/time/index.d.ts.map +1 -0
  230. package/dist/time/index.js +212 -0
  231. package/dist/time/minute.d.ts +9 -0
  232. package/dist/time/minute.d.ts.map +1 -0
  233. package/dist/time/month.d.ts +9 -0
  234. package/dist/time/month.d.ts.map +1 -0
  235. package/dist/time/second.d.ts +9 -0
  236. package/dist/time/second.d.ts.map +1 -0
  237. package/dist/time/time.d.ts +9 -0
  238. package/dist/time/time.d.ts.map +1 -0
  239. package/dist/time/today.d.ts +9 -0
  240. package/dist/time/today.d.ts.map +1 -0
  241. package/dist/time/workday.d.ts +9 -0
  242. package/dist/time/workday.d.ts.map +1 -0
  243. package/dist/time/year.d.ts +9 -0
  244. package/dist/time/year.d.ts.map +1 -0
  245. package/dist/types.d.ts +2 -0
  246. package/dist/types.d.ts.map +1 -0
  247. package/package.json +86 -0
@@ -0,0 +1,9 @@
1
+ import { BaseFunction, FunctionArgumentDefinition, FunctionCategory } from '@gridsheet/react-core';
2
+ export declare class DateFunction extends BaseFunction {
3
+ example: string;
4
+ description: string;
5
+ defs: FunctionArgumentDefinition[];
6
+ category: FunctionCategory;
7
+ protected main(year: number, month: number, day: number): Date;
8
+ }
9
+ //# sourceMappingURL=date.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date.d.ts","sourceRoot":"","sources":["../../src/time/date.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,KAAK,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAEtF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAI9D,qBAAa,YAAa,SAAQ,YAAY;IAC5C,OAAO,SAAuB;IAC9B,WAAW,SAAe;IAC1B,IAAI,EAAE,0BAA0B,EAAE,CAQhC;IACF,QAAQ,EAAE,gBAAgB,CAAU;IAEpC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;CAIxD"}
@@ -0,0 +1,9 @@
1
+ import { BaseFunction, FunctionArgumentDefinition, FunctionCategory } from '@gridsheet/react-core';
2
+ export declare class DayFunction extends BaseFunction {
3
+ example: string;
4
+ description: string;
5
+ defs: FunctionArgumentDefinition[];
6
+ category: FunctionCategory;
7
+ protected main(date: any): number;
8
+ }
9
+ //# sourceMappingURL=day.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"day.d.ts","sourceRoot":"","sources":["../../src/time/day.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,KAAK,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACtF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAK9D,qBAAa,WAAY,SAAQ,YAAY;IAC3C,OAAO,SAAa;IACpB,WAAW,SAAe;IAC1B,IAAI,EAAE,0BAA0B,EAAE,CAEhC;IACF,QAAQ,EAAE,gBAAgB,CAAU;IAEpC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG;CAGzB"}
@@ -0,0 +1,9 @@
1
+ import { BaseFunction, FunctionArgumentDefinition, FunctionCategory } from '@gridsheet/react-core';
2
+ export declare class DaysFunction extends BaseFunction {
3
+ example: string;
4
+ description: string;
5
+ defs: FunctionArgumentDefinition[];
6
+ category: FunctionCategory;
7
+ protected main(endDate: any, startDate: any): number;
8
+ }
9
+ //# sourceMappingURL=days.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"days.d.ts","sourceRoot":"","sources":["../../src/time/days.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,KAAK,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACtF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAO9D,qBAAa,YAAa,SAAQ,YAAY;IAC5C,OAAO,SAAkB;IACzB,WAAW,SAAe;IAC1B,IAAI,EAAE,0BAA0B,EAAE,CAGhC;IACF,QAAQ,EAAE,gBAAgB,CAAU;IAEpC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG;CAK5C"}
@@ -0,0 +1,9 @@
1
+ import { BaseFunction, FunctionArgumentDefinition, FunctionCategory } from '@gridsheet/react-core';
2
+ export declare class HourFunction extends BaseFunction {
3
+ example: string;
4
+ description: string;
5
+ defs: FunctionArgumentDefinition[];
6
+ category: FunctionCategory;
7
+ protected main(time: any): number;
8
+ }
9
+ //# sourceMappingURL=hour.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hour.d.ts","sourceRoot":"","sources":["../../src/time/hour.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,KAAK,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACtF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAK9D,qBAAa,YAAa,SAAQ,YAAY;IAC5C,OAAO,SAAc;IACrB,WAAW,SAAe;IAC1B,IAAI,EAAE,0BAA0B,EAAE,CAMhC;IACF,QAAQ,EAAE,gBAAgB,CAAU;IAEpC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG;CAGzB"}
@@ -0,0 +1,4 @@
1
+ import { FunctionMapping } from '@gridsheet/react-core';
2
+ export declare const timeFunctions: FunctionMapping;
3
+ export default timeFunctions;
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/time/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAa7D,eAAO,MAAM,aAAa,EAAE,eAY3B,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -0,0 +1,212 @@
1
+ import { BaseFunction as s, Time as h, FormulaError as p, Table as g, solveTable as y } from "@gridsheet/react-core";
2
+ const f = "Returns the current date as a Date value.";
3
+ class l extends s {
4
+ constructor() {
5
+ super(...arguments), this.example = "TODAY()", this.description = f, this.defs = [], this.category = "time";
6
+ }
7
+ main() {
8
+ const e = /* @__PURE__ */ new Date();
9
+ return new Date(e.getFullYear(), e.getMonth(), e.getDate());
10
+ }
11
+ }
12
+ const T = "Returns a Date value representing the specified year, month, and day.";
13
+ class x extends s {
14
+ constructor() {
15
+ super(...arguments), this.example = "DATE(2024, 3, 15)", this.description = T, this.defs = [
16
+ { name: "year", description: "The year component of the date.", acceptedTypes: ["number"] },
17
+ {
18
+ name: "month",
19
+ description: "The month component of the date (1=January, 12=December).",
20
+ acceptedTypes: ["number"]
21
+ },
22
+ { name: "day", description: "The day component of the date.", acceptedTypes: ["number"] }
23
+ ], this.category = "time";
24
+ }
25
+ main(e, n, a) {
26
+ return new Date(e, n - 1, a);
27
+ }
28
+ }
29
+ const D = "Returns a Date value representing the specified hour, minute, and second (on the base date 1899-12-30).";
30
+ class b extends s {
31
+ constructor() {
32
+ super(...arguments), this.example = "TIME(13, 30, 0)", this.description = D, this.defs = [
33
+ { name: "hour", description: "The hour component (0–23).", acceptedTypes: ["number"] },
34
+ { name: "minute", description: "The minute component (0–59).", acceptedTypes: ["number"] },
35
+ { name: "second", description: "The second component (0–59).", acceptedTypes: ["number"] }
36
+ ], this.category = "time";
37
+ }
38
+ main(e, n, a) {
39
+ return h.create(e, n, a);
40
+ }
41
+ }
42
+ function i(t) {
43
+ if (t instanceof Date)
44
+ return t;
45
+ if (typeof t == "number")
46
+ return new Date(t);
47
+ if (typeof t == "string") {
48
+ const e = new Date(t);
49
+ if (!isNaN(e.getTime()))
50
+ return e;
51
+ }
52
+ throw new p("#VALUE!", `${t} cannot be converted to a date`);
53
+ }
54
+ const w = 24 * 60 * 60 * 1e3, F = "Returns the number of days between two dates.";
55
+ class A extends s {
56
+ constructor() {
57
+ super(...arguments), this.example = "DAYS(A2, A1)", this.description = F, this.defs = [
58
+ { name: "end_date", description: "The end date.", acceptedTypes: ["date", "string"] },
59
+ { name: "start_date", description: "The start date.", acceptedTypes: ["date", "string"] }
60
+ ], this.category = "time";
61
+ }
62
+ main(e, n) {
63
+ const a = i(e), o = i(n);
64
+ return Math.trunc((a.getTime() - o.getTime()) / w);
65
+ }
66
+ }
67
+ const M = "Returns the day of the month for a given date (1–31).";
68
+ class R extends s {
69
+ constructor() {
70
+ super(...arguments), this.example = "DAY(A1)", this.description = M, this.defs = [
71
+ { name: "date", description: "The date from which to extract the day.", acceptedTypes: ["date", "string"] }
72
+ ], this.category = "time";
73
+ }
74
+ main(e) {
75
+ return i(e).getDate();
76
+ }
77
+ }
78
+ const $ = "Returns the month of a given date as a number (1=January, 12=December).";
79
+ class S extends s {
80
+ constructor() {
81
+ super(...arguments), this.example = "MONTH(A1)", this.description = $, this.defs = [
82
+ { name: "date", description: "The date from which to extract the month.", acceptedTypes: ["date", "string"] }
83
+ ], this.category = "time";
84
+ }
85
+ main(e) {
86
+ return i(e).getMonth() + 1;
87
+ }
88
+ }
89
+ const v = "Returns the year of a given date.";
90
+ class Y extends s {
91
+ constructor() {
92
+ super(...arguments), this.example = "YEAR(A1)", this.description = v, this.defs = [
93
+ { name: "date", description: "The date from which to extract the year.", acceptedTypes: ["date", "string"] }
94
+ ], this.category = "time";
95
+ }
96
+ main(e) {
97
+ return i(e).getFullYear();
98
+ }
99
+ }
100
+ const E = "Returns the hour component of a given time/date value (0–23).";
101
+ class k extends s {
102
+ constructor() {
103
+ super(...arguments), this.example = "HOUR(A1)", this.description = E, this.defs = [
104
+ {
105
+ name: "time",
106
+ description: "The time or date-time value from which to extract the hour.",
107
+ acceptedTypes: ["date", "string"]
108
+ }
109
+ ], this.category = "time";
110
+ }
111
+ main(e) {
112
+ return i(e).getHours();
113
+ }
114
+ }
115
+ const O = "Returns the minute component of a given time/date value (0–59).";
116
+ class H extends s {
117
+ constructor() {
118
+ super(...arguments), this.example = "MINUTE(A1)", this.description = O, this.defs = [
119
+ {
120
+ name: "time",
121
+ description: "The time or date-time value from which to extract the minute.",
122
+ acceptedTypes: ["date", "string"]
123
+ }
124
+ ], this.category = "time";
125
+ }
126
+ main(e) {
127
+ return i(e).getMinutes();
128
+ }
129
+ }
130
+ const N = "Returns the second component of a given time/date value (0–59).";
131
+ class _ extends s {
132
+ constructor() {
133
+ super(...arguments), this.example = "SECOND(A1)", this.description = N, this.defs = [
134
+ {
135
+ name: "time",
136
+ description: "The time or date-time value from which to extract the second.",
137
+ acceptedTypes: ["date", "string"]
138
+ }
139
+ ], this.category = "time";
140
+ }
141
+ main(e) {
142
+ return i(e).getSeconds();
143
+ }
144
+ }
145
+ function U(t) {
146
+ const e = /* @__PURE__ */ new Set();
147
+ if (!t)
148
+ return e;
149
+ let n;
150
+ t instanceof g ? n = y({ table: t }).flat() : n = [t];
151
+ for (const a of n)
152
+ if (a)
153
+ try {
154
+ const o = i(a);
155
+ e.add(d(o));
156
+ } catch {
157
+ }
158
+ return e;
159
+ }
160
+ function d(t) {
161
+ return `${t.getFullYear()}-${String(t.getMonth() + 1).padStart(2, "0")}-${String(t.getDate()).padStart(2, "0")}`;
162
+ }
163
+ function W(t) {
164
+ const e = t.getDay();
165
+ return e === 0 || e === 6;
166
+ }
167
+ const I = `Returns the date that is a given number of working days (Mon–Fri) before or after a start date.
168
+ Optionally excludes a list of holiday dates.`;
169
+ class J extends s {
170
+ constructor() {
171
+ super(...arguments), this.example = "WORKDAY(A1, 5)", this.description = I, this.defs = [
172
+ { name: "start_date", description: "The starting date.", acceptedTypes: ["date"] },
173
+ {
174
+ name: "days",
175
+ description: "The number of working days to add (positive) or subtract (negative).",
176
+ acceptedTypes: ["number", "string"]
177
+ },
178
+ {
179
+ name: "holidays",
180
+ description: "An optional list or range of dates to exclude as holidays.",
181
+ optional: !0,
182
+ takesMatrix: !0,
183
+ acceptedTypes: ["matrix", "date"]
184
+ }
185
+ ], this.category = "time";
186
+ }
187
+ main(e, n, a) {
188
+ const o = i(e), m = U(a), u = n >= 0 ? 1 : -1;
189
+ let c = Math.abs(Math.trunc(n));
190
+ const r = new Date(o.getTime());
191
+ for (; c > 0; )
192
+ r.setDate(r.getDate() + u), !W(r) && !m.has(d(r)) && c--;
193
+ return new Date(r.getFullYear(), r.getMonth(), r.getDate());
194
+ }
195
+ }
196
+ const B = {
197
+ today: l,
198
+ date: x,
199
+ time: b,
200
+ days: A,
201
+ day: R,
202
+ month: S,
203
+ year: Y,
204
+ hour: k,
205
+ minute: H,
206
+ second: _,
207
+ workday: J
208
+ };
209
+ export {
210
+ B as default,
211
+ B as timeFunctions
212
+ };
@@ -0,0 +1,9 @@
1
+ import { BaseFunction, FunctionArgumentDefinition, FunctionCategory } from '@gridsheet/react-core';
2
+ export declare class MinuteFunction extends BaseFunction {
3
+ example: string;
4
+ description: string;
5
+ defs: FunctionArgumentDefinition[];
6
+ category: FunctionCategory;
7
+ protected main(time: any): number;
8
+ }
9
+ //# sourceMappingURL=minute.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"minute.d.ts","sourceRoot":"","sources":["../../src/time/minute.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,KAAK,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACtF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAK9D,qBAAa,cAAe,SAAQ,YAAY;IAC9C,OAAO,SAAgB;IACvB,WAAW,SAAe;IAC1B,IAAI,EAAE,0BAA0B,EAAE,CAMhC;IACF,QAAQ,EAAE,gBAAgB,CAAU;IAEpC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG;CAGzB"}
@@ -0,0 +1,9 @@
1
+ import { BaseFunction, FunctionArgumentDefinition, FunctionCategory } from '@gridsheet/react-core';
2
+ export declare class MonthFunction extends BaseFunction {
3
+ example: string;
4
+ description: string;
5
+ defs: FunctionArgumentDefinition[];
6
+ category: FunctionCategory;
7
+ protected main(date: any): number;
8
+ }
9
+ //# sourceMappingURL=month.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"month.d.ts","sourceRoot":"","sources":["../../src/time/month.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,KAAK,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACtF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAK9D,qBAAa,aAAc,SAAQ,YAAY;IAC7C,OAAO,SAAe;IACtB,WAAW,SAAe;IAC1B,IAAI,EAAE,0BAA0B,EAAE,CAEhC;IACF,QAAQ,EAAE,gBAAgB,CAAU;IAEpC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG;CAGzB"}
@@ -0,0 +1,9 @@
1
+ import { BaseFunction, FunctionArgumentDefinition, FunctionCategory } from '@gridsheet/react-core';
2
+ export declare class SecondFunction extends BaseFunction {
3
+ example: string;
4
+ description: string;
5
+ defs: FunctionArgumentDefinition[];
6
+ category: FunctionCategory;
7
+ protected main(time: any): number;
8
+ }
9
+ //# sourceMappingURL=second.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"second.d.ts","sourceRoot":"","sources":["../../src/time/second.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,KAAK,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACtF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAK9D,qBAAa,cAAe,SAAQ,YAAY;IAC9C,OAAO,SAAgB;IACvB,WAAW,SAAe;IAC1B,IAAI,EAAE,0BAA0B,EAAE,CAMhC;IACF,QAAQ,EAAE,gBAAgB,CAAU;IAEpC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG;CAGzB"}
@@ -0,0 +1,9 @@
1
+ import { Time, BaseFunction, FunctionArgumentDefinition, FunctionCategory } from '@gridsheet/react-core';
2
+ export declare class TimeFunction extends BaseFunction {
3
+ example: string;
4
+ description: string;
5
+ defs: FunctionArgumentDefinition[];
6
+ category: FunctionCategory;
7
+ protected main(hour: number, minute: number, second: number): Time;
8
+ }
9
+ //# sourceMappingURL=time.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"time.d.ts","sourceRoot":"","sources":["../../src/time/time.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,KAAK,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAEtF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAI9D,qBAAa,YAAa,SAAQ,YAAY;IAC5C,OAAO,SAAqB;IAC5B,WAAW,SAAe;IAC1B,IAAI,EAAE,0BAA0B,EAAE,CAIhC;IACF,QAAQ,EAAE,gBAAgB,CAAU;IAEpC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAG5D"}
@@ -0,0 +1,9 @@
1
+ import { BaseFunction, FunctionArgumentDefinition, FunctionCategory } from '@gridsheet/react-core';
2
+ export declare class TodayFunction extends BaseFunction {
3
+ example: string;
4
+ description: string;
5
+ defs: FunctionArgumentDefinition[];
6
+ category: FunctionCategory;
7
+ protected main(): Date;
8
+ }
9
+ //# sourceMappingURL=today.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"today.d.ts","sourceRoot":"","sources":["../../src/time/today.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,KAAK,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACtF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAI9D,qBAAa,aAAc,SAAQ,YAAY;IAC7C,OAAO,SAAa;IACpB,WAAW,SAAe;IAC1B,IAAI,EAAE,0BAA0B,EAAE,CAAM;IACxC,QAAQ,EAAE,gBAAgB,CAAU;IAEpC,SAAS,CAAC,IAAI;CAIf"}
@@ -0,0 +1,9 @@
1
+ import { BaseFunction, FunctionArgumentDefinition, FunctionCategory } from '@gridsheet/react-core';
2
+ export declare class WorkdayFunction extends BaseFunction {
3
+ example: string;
4
+ description: string;
5
+ defs: FunctionArgumentDefinition[];
6
+ category: FunctionCategory;
7
+ protected main(startDate: any, days: number, holidays?: any): Date;
8
+ }
9
+ //# sourceMappingURL=workday.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workday.d.ts","sourceRoot":"","sources":["../../src/time/workday.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,KAAK,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAEtF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AA0C9D,qBAAa,eAAgB,SAAQ,YAAY;IAC/C,OAAO,SAAoB;IAC3B,WAAW,SAAe;IAC1B,IAAI,EAAE,0BAA0B,EAAE,CAchC;IACF,QAAQ,EAAE,gBAAgB,CAAU;IAEpC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,GAAG;CAgB5D"}
@@ -0,0 +1,9 @@
1
+ import { BaseFunction, FunctionArgumentDefinition, FunctionCategory } from '@gridsheet/react-core';
2
+ export declare class YearFunction extends BaseFunction {
3
+ example: string;
4
+ description: string;
5
+ defs: FunctionArgumentDefinition[];
6
+ category: FunctionCategory;
7
+ protected main(date: any): number;
8
+ }
9
+ //# sourceMappingURL=year.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"year.d.ts","sourceRoot":"","sources":["../../src/time/year.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,KAAK,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACtF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAK9D,qBAAa,YAAa,SAAQ,YAAY;IAC5C,OAAO,SAAc;IACrB,WAAW,SAAe;IAC1B,IAAI,EAAE,0BAA0B,EAAE,CAEhC;IACF,QAAQ,EAAE,gBAAgB,CAAU;IAEpC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG;CAGzB"}
@@ -0,0 +1,2 @@
1
+ export type FunctionCategory = 'math' | 'statistics' | 'text' | 'time' | 'lookup' | 'information' | 'finance' | 'engineering' | 'logical' | 'other';
2
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GACxB,MAAM,GACN,YAAY,GACZ,MAAM,GACN,MAAM,GACN,QAAQ,GACR,aAAa,GACb,SAAS,GACT,aAAa,GACb,SAAS,GACT,OAAO,CAAC"}
package/package.json ADDED
@@ -0,0 +1,86 @@
1
+ {
2
+ "name": "@gridsheet/functions",
3
+ "version": "3.0.0-rc.2",
4
+ "description": "Extended formula functions for @gridsheet/react-core",
5
+ "main": "./dist/index.js",
6
+ "module": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js",
12
+ "default": "./dist/index.js"
13
+ },
14
+ "./math": {
15
+ "types": "./dist/math/index.d.ts",
16
+ "import": "./dist/math/index.js",
17
+ "default": "./dist/math/index.js"
18
+ },
19
+ "./statistics": {
20
+ "types": "./dist/statistics/index.d.ts",
21
+ "import": "./dist/statistics/index.js",
22
+ "default": "./dist/statistics/index.js"
23
+ },
24
+ "./text": {
25
+ "types": "./dist/text/index.d.ts",
26
+ "import": "./dist/text/index.js",
27
+ "default": "./dist/text/index.js"
28
+ },
29
+ "./lookup": {
30
+ "types": "./dist/lookup/index.d.ts",
31
+ "import": "./dist/lookup/index.js",
32
+ "default": "./dist/lookup/index.js"
33
+ },
34
+ "./time": {
35
+ "types": "./dist/time/index.d.ts",
36
+ "import": "./dist/time/index.js",
37
+ "default": "./dist/time/index.js"
38
+ },
39
+ "./logical": {
40
+ "types": "./dist/logical/index.d.ts",
41
+ "import": "./dist/logical/index.js",
42
+ "default": "./dist/logical/index.js"
43
+ }
44
+ },
45
+ "scripts": {
46
+ "build": "rm -rf ./dist || true && vite build",
47
+ "typecheck": "tsc --noEmit",
48
+ "jest": "jest"
49
+ },
50
+ "repository": {
51
+ "type": "git",
52
+ "url": "git+https://github.com/walkframe/gridsheet.git"
53
+ },
54
+ "keywords": [
55
+ "spreadsheet",
56
+ "formula",
57
+ "functions"
58
+ ],
59
+ "author": "righ",
60
+ "license": "Apache-2.0",
61
+ "files": [
62
+ "dist/",
63
+ "package.json",
64
+ "README.md"
65
+ ],
66
+ "bugs": {
67
+ "url": "https://github.com/walkframe/gridsheet/issues"
68
+ },
69
+ "homepage": "https://gridsheet.walkframe.com/",
70
+ "packageManager": "pnpm@10.6.5",
71
+ "devDependencies": {
72
+ "typescript": "^5.8.2",
73
+ "vite": "^6.2.2",
74
+ "vite-plugin-dts": "^4.5.3",
75
+ "jest": "^29.4.3",
76
+ "@types/jest": "^29.4.0",
77
+ "@gridsheet/react-core": "workspace:*"
78
+ },
79
+ "peerDependencies": {
80
+ "@gridsheet/react-core": "^3.0.0-rc.2",
81
+ "dayjs": "^1.11.13"
82
+ },
83
+ "publishConfig": {
84
+ "access": "public"
85
+ }
86
+ }