@gridsheet/functions 3.0.0-rc.10
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.
- package/LICENSE +190 -0
- package/README.md +75 -0
- package/dist/functions/src/index.d.ts +7 -0
- package/dist/functions/src/index.d.ts.map +1 -0
- package/dist/functions/src/information/index.d.ts +4 -0
- package/dist/functions/src/information/index.d.ts.map +1 -0
- package/dist/functions/src/information/isblank.d.ts +9 -0
- package/dist/functions/src/information/isblank.d.ts.map +1 -0
- package/dist/functions/src/information/isblank.spec.d.ts +2 -0
- package/dist/functions/src/information/isblank.spec.d.ts.map +1 -0
- package/dist/functions/src/information/isdate.d.ts +9 -0
- package/dist/functions/src/information/isdate.d.ts.map +1 -0
- package/dist/functions/src/information/isdate.spec.d.ts +2 -0
- package/dist/functions/src/information/isdate.spec.d.ts.map +1 -0
- package/dist/functions/src/information/isemail.d.ts +9 -0
- package/dist/functions/src/information/isemail.d.ts.map +1 -0
- package/dist/functions/src/information/isemail.spec.d.ts +2 -0
- package/dist/functions/src/information/isemail.spec.d.ts.map +1 -0
- package/dist/functions/src/information/iserr.d.ts +9 -0
- package/dist/functions/src/information/iserr.d.ts.map +1 -0
- package/dist/functions/src/information/iserr.spec.d.ts +2 -0
- package/dist/functions/src/information/iserr.spec.d.ts.map +1 -0
- package/dist/functions/src/information/iserror.d.ts +9 -0
- package/dist/functions/src/information/iserror.d.ts.map +1 -0
- package/dist/functions/src/information/iserror.spec.d.ts +2 -0
- package/dist/functions/src/information/iserror.spec.d.ts.map +1 -0
- package/dist/functions/src/information/isformula.d.ts +9 -0
- package/dist/functions/src/information/isformula.d.ts.map +1 -0
- package/dist/functions/src/information/isformula.spec.d.ts +2 -0
- package/dist/functions/src/information/isformula.spec.d.ts.map +1 -0
- package/dist/functions/src/information/islogical.d.ts +9 -0
- package/dist/functions/src/information/islogical.d.ts.map +1 -0
- package/dist/functions/src/information/islogical.spec.d.ts +2 -0
- package/dist/functions/src/information/islogical.spec.d.ts.map +1 -0
- package/dist/functions/src/information/isna.d.ts +9 -0
- package/dist/functions/src/information/isna.d.ts.map +1 -0
- package/dist/functions/src/information/isna.spec.d.ts +2 -0
- package/dist/functions/src/information/isna.spec.d.ts.map +1 -0
- package/dist/functions/src/information/isnontext.d.ts +9 -0
- package/dist/functions/src/information/isnontext.d.ts.map +1 -0
- package/dist/functions/src/information/isnontext.spec.d.ts +2 -0
- package/dist/functions/src/information/isnontext.spec.d.ts.map +1 -0
- package/dist/functions/src/information/isref.d.ts +9 -0
- package/dist/functions/src/information/isref.d.ts.map +1 -0
- package/dist/functions/src/information/isref.spec.d.ts +2 -0
- package/dist/functions/src/information/isref.spec.d.ts.map +1 -0
- package/dist/functions/src/information/istext.d.ts +9 -0
- package/dist/functions/src/information/istext.d.ts.map +1 -0
- package/dist/functions/src/information/istext.spec.d.ts +2 -0
- package/dist/functions/src/information/istext.spec.d.ts.map +1 -0
- package/dist/functions/src/information/n.d.ts +9 -0
- package/dist/functions/src/information/n.d.ts.map +1 -0
- package/dist/functions/src/information/n.spec.d.ts +2 -0
- package/dist/functions/src/information/n.spec.d.ts.map +1 -0
- package/dist/functions/src/information/na.d.ts +9 -0
- package/dist/functions/src/information/na.d.ts.map +1 -0
- package/dist/functions/src/information/na.spec.d.ts +2 -0
- package/dist/functions/src/information/na.spec.d.ts.map +1 -0
- package/dist/functions/src/information/sheets.d.ts +9 -0
- package/dist/functions/src/information/sheets.d.ts.map +1 -0
- package/dist/functions/src/information/sheets.spec.d.ts +2 -0
- package/dist/functions/src/information/sheets.spec.d.ts.map +1 -0
- package/dist/functions/src/logical/ifna.d.ts +10 -0
- package/dist/functions/src/logical/ifna.d.ts.map +1 -0
- package/dist/functions/src/logical/ifs.d.ts +10 -0
- package/dist/functions/src/logical/ifs.d.ts.map +1 -0
- package/dist/functions/src/logical/index.d.ts +4 -0
- package/dist/functions/src/logical/index.d.ts.map +1 -0
- package/dist/functions/src/logical/xor.d.ts +9 -0
- package/dist/functions/src/logical/xor.d.ts.map +1 -0
- package/dist/functions/src/lookup/column.d.ts +12 -0
- package/dist/functions/src/lookup/column.d.ts.map +1 -0
- package/dist/functions/src/lookup/column.spec.d.ts +2 -0
- package/dist/functions/src/lookup/column.spec.d.ts.map +1 -0
- package/dist/functions/src/lookup/columns.d.ts +9 -0
- package/dist/functions/src/lookup/columns.d.ts.map +1 -0
- package/dist/functions/src/lookup/columns.spec.d.ts +2 -0
- package/dist/functions/src/lookup/columns.spec.d.ts.map +1 -0
- package/dist/functions/src/lookup/hlookup.d.ts +9 -0
- package/dist/functions/src/lookup/hlookup.d.ts.map +1 -0
- package/dist/functions/src/lookup/hlookup.spec.d.ts +2 -0
- package/dist/functions/src/lookup/hlookup.spec.d.ts.map +1 -0
- package/dist/functions/src/lookup/index.d.ts +4 -0
- package/dist/functions/src/lookup/index.d.ts.map +1 -0
- package/dist/functions/src/lookup/indexFn.d.ts +10 -0
- package/dist/functions/src/lookup/indexFn.d.ts.map +1 -0
- package/dist/functions/src/lookup/indexFn.spec.d.ts +2 -0
- package/dist/functions/src/lookup/indexFn.spec.d.ts.map +1 -0
- package/dist/functions/src/lookup/match.d.ts +10 -0
- package/dist/functions/src/lookup/match.d.ts.map +1 -0
- package/dist/functions/src/lookup/match.spec.d.ts +2 -0
- package/dist/functions/src/lookup/match.spec.d.ts.map +1 -0
- package/dist/functions/src/lookup/row.d.ts +12 -0
- package/dist/functions/src/lookup/row.d.ts.map +1 -0
- package/dist/functions/src/lookup/row.spec.d.ts +2 -0
- package/dist/functions/src/lookup/row.spec.d.ts.map +1 -0
- package/dist/functions/src/lookup/rows.d.ts +9 -0
- package/dist/functions/src/lookup/rows.d.ts.map +1 -0
- package/dist/functions/src/lookup/rows.spec.d.ts +2 -0
- package/dist/functions/src/lookup/rows.spec.d.ts.map +1 -0
- package/dist/functions/src/lookup/sheet.d.ts +9 -0
- package/dist/functions/src/lookup/sheet.d.ts.map +1 -0
- package/dist/functions/src/lookup/sheet.spec.d.ts +2 -0
- package/dist/functions/src/lookup/sheet.spec.d.ts.map +1 -0
- package/dist/functions/src/lookup/vlookup.d.ts +9 -0
- package/dist/functions/src/lookup/vlookup.d.ts.map +1 -0
- package/dist/functions/src/lookup/vlookup.spec.d.ts +2 -0
- package/dist/functions/src/lookup/vlookup.spec.d.ts.map +1 -0
- package/dist/functions/src/math/__matrix_base.d.ts +15 -0
- package/dist/functions/src/math/__matrix_base.d.ts.map +1 -0
- package/dist/functions/src/math/acos.d.ts +9 -0
- package/dist/functions/src/math/acos.d.ts.map +1 -0
- package/dist/functions/src/math/acos.spec.d.ts +2 -0
- package/dist/functions/src/math/acos.spec.d.ts.map +1 -0
- package/dist/functions/src/math/asin.d.ts +9 -0
- package/dist/functions/src/math/asin.d.ts.map +1 -0
- package/dist/functions/src/math/asin.spec.d.ts +2 -0
- package/dist/functions/src/math/asin.spec.d.ts.map +1 -0
- package/dist/functions/src/math/atan.d.ts +9 -0
- package/dist/functions/src/math/atan.d.ts.map +1 -0
- package/dist/functions/src/math/atan.spec.d.ts +2 -0
- package/dist/functions/src/math/atan.spec.d.ts.map +1 -0
- package/dist/functions/src/math/atan2.d.ts +9 -0
- package/dist/functions/src/math/atan2.d.ts.map +1 -0
- package/dist/functions/src/math/atan2.spec.d.ts +2 -0
- package/dist/functions/src/math/atan2.spec.d.ts.map +1 -0
- package/dist/functions/src/math/base.d.ts +10 -0
- package/dist/functions/src/math/base.d.ts.map +1 -0
- package/dist/functions/src/math/base.spec.d.ts +2 -0
- package/dist/functions/src/math/base.spec.d.ts.map +1 -0
- package/dist/functions/src/math/cos.d.ts +9 -0
- package/dist/functions/src/math/cos.d.ts.map +1 -0
- package/dist/functions/src/math/cos.spec.d.ts +2 -0
- package/dist/functions/src/math/cos.spec.d.ts.map +1 -0
- package/dist/functions/src/math/countif.d.ts +9 -0
- package/dist/functions/src/math/countif.d.ts.map +1 -0
- package/dist/functions/src/math/countif.spec.d.ts +2 -0
- package/dist/functions/src/math/countif.spec.d.ts.map +1 -0
- package/dist/functions/src/math/countifs.d.ts +10 -0
- package/dist/functions/src/math/countifs.d.ts.map +1 -0
- package/dist/functions/src/math/countifs.spec.d.ts +2 -0
- package/dist/functions/src/math/countifs.spec.d.ts.map +1 -0
- package/dist/functions/src/math/even.d.ts +9 -0
- package/dist/functions/src/math/even.d.ts.map +1 -0
- package/dist/functions/src/math/even.spec.d.ts +2 -0
- package/dist/functions/src/math/even.spec.d.ts.map +1 -0
- package/dist/functions/src/math/exp.d.ts +10 -0
- package/dist/functions/src/math/exp.d.ts.map +1 -0
- package/dist/functions/src/math/exp.spec.d.ts +2 -0
- package/dist/functions/src/math/exp.spec.d.ts.map +1 -0
- package/dist/functions/src/math/fact.d.ts +9 -0
- package/dist/functions/src/math/fact.d.ts.map +1 -0
- package/dist/functions/src/math/fact.spec.d.ts +2 -0
- package/dist/functions/src/math/fact.spec.d.ts.map +1 -0
- package/dist/functions/src/math/index.d.ts +4 -0
- package/dist/functions/src/math/index.d.ts.map +1 -0
- package/dist/functions/src/math/int.d.ts +9 -0
- package/dist/functions/src/math/int.d.ts.map +1 -0
- package/dist/functions/src/math/int.spec.d.ts +2 -0
- package/dist/functions/src/math/int.spec.d.ts.map +1 -0
- package/dist/functions/src/math/iseven.d.ts +9 -0
- package/dist/functions/src/math/iseven.d.ts.map +1 -0
- package/dist/functions/src/math/iseven.spec.d.ts +2 -0
- package/dist/functions/src/math/iseven.spec.d.ts.map +1 -0
- package/dist/functions/src/math/isodd.d.ts +9 -0
- package/dist/functions/src/math/isodd.d.ts.map +1 -0
- package/dist/functions/src/math/isodd.spec.d.ts +2 -0
- package/dist/functions/src/math/isodd.spec.d.ts.map +1 -0
- package/dist/functions/src/math/lcm.d.ts +10 -0
- package/dist/functions/src/math/lcm.d.ts.map +1 -0
- package/dist/functions/src/math/lcm.spec.d.ts +2 -0
- package/dist/functions/src/math/lcm.spec.d.ts.map +1 -0
- package/dist/functions/src/math/ln.d.ts +9 -0
- package/dist/functions/src/math/ln.d.ts.map +1 -0
- package/dist/functions/src/math/ln.spec.d.ts +2 -0
- package/dist/functions/src/math/ln.spec.d.ts.map +1 -0
- package/dist/functions/src/math/log.d.ts +10 -0
- package/dist/functions/src/math/log.d.ts.map +1 -0
- package/dist/functions/src/math/log.spec.d.ts +2 -0
- package/dist/functions/src/math/log.spec.d.ts.map +1 -0
- package/dist/functions/src/math/log10.d.ts +9 -0
- package/dist/functions/src/math/log10.d.ts.map +1 -0
- package/dist/functions/src/math/log10.spec.d.ts +2 -0
- package/dist/functions/src/math/log10.spec.d.ts.map +1 -0
- package/dist/functions/src/math/mdeterm.d.ts +11 -0
- package/dist/functions/src/math/mdeterm.d.ts.map +1 -0
- package/dist/functions/src/math/minverse.d.ts +12 -0
- package/dist/functions/src/math/minverse.d.ts.map +1 -0
- package/dist/functions/src/math/mmult.d.ts +11 -0
- package/dist/functions/src/math/mmult.d.ts.map +1 -0
- package/dist/functions/src/math/mod.d.ts +10 -0
- package/dist/functions/src/math/mod.d.ts.map +1 -0
- package/dist/functions/src/math/mod.spec.d.ts +2 -0
- package/dist/functions/src/math/mod.spec.d.ts.map +1 -0
- package/dist/functions/src/math/odd.d.ts +9 -0
- package/dist/functions/src/math/odd.d.ts.map +1 -0
- package/dist/functions/src/math/odd.spec.d.ts +2 -0
- package/dist/functions/src/math/odd.spec.d.ts.map +1 -0
- package/dist/functions/src/math/pi.d.ts +9 -0
- package/dist/functions/src/math/pi.d.ts.map +1 -0
- package/dist/functions/src/math/pi.spec.d.ts +2 -0
- package/dist/functions/src/math/pi.spec.d.ts.map +1 -0
- package/dist/functions/src/math/product.d.ts +9 -0
- package/dist/functions/src/math/product.d.ts.map +1 -0
- package/dist/functions/src/math/product.spec.d.ts +2 -0
- package/dist/functions/src/math/product.spec.d.ts.map +1 -0
- package/dist/functions/src/math/radians.d.ts +9 -0
- package/dist/functions/src/math/radians.d.ts.map +1 -0
- package/dist/functions/src/math/radians.spec.d.ts +2 -0
- package/dist/functions/src/math/radians.spec.d.ts.map +1 -0
- package/dist/functions/src/math/rand.d.ts +9 -0
- package/dist/functions/src/math/rand.d.ts.map +1 -0
- package/dist/functions/src/math/rand.spec.d.ts +2 -0
- package/dist/functions/src/math/rand.spec.d.ts.map +1 -0
- package/dist/functions/src/math/round.d.ts +9 -0
- package/dist/functions/src/math/round.d.ts.map +1 -0
- package/dist/functions/src/math/round.spec.d.ts +2 -0
- package/dist/functions/src/math/round.spec.d.ts.map +1 -0
- package/dist/functions/src/math/rounddown.d.ts +9 -0
- package/dist/functions/src/math/rounddown.d.ts.map +1 -0
- package/dist/functions/src/math/rounddown.spec.d.ts +2 -0
- package/dist/functions/src/math/rounddown.spec.d.ts.map +1 -0
- package/dist/functions/src/math/roundup.d.ts +9 -0
- package/dist/functions/src/math/roundup.d.ts.map +1 -0
- package/dist/functions/src/math/roundup.spec.d.ts +2 -0
- package/dist/functions/src/math/roundup.spec.d.ts.map +1 -0
- package/dist/functions/src/math/sequence.d.ts +11 -0
- package/dist/functions/src/math/sequence.d.ts.map +1 -0
- package/dist/functions/src/math/sequence.spec.d.ts +2 -0
- package/dist/functions/src/math/sequence.spec.d.ts.map +1 -0
- package/dist/functions/src/math/sign.d.ts +9 -0
- package/dist/functions/src/math/sign.d.ts.map +1 -0
- package/dist/functions/src/math/sign.spec.d.ts +2 -0
- package/dist/functions/src/math/sign.spec.d.ts.map +1 -0
- package/dist/functions/src/math/sin.d.ts +9 -0
- package/dist/functions/src/math/sin.d.ts.map +1 -0
- package/dist/functions/src/math/sin.spec.d.ts +2 -0
- package/dist/functions/src/math/sin.spec.d.ts.map +1 -0
- package/dist/functions/src/math/sqrt.d.ts +9 -0
- package/dist/functions/src/math/sqrt.d.ts.map +1 -0
- package/dist/functions/src/math/sqrt.spec.d.ts +2 -0
- package/dist/functions/src/math/sqrt.spec.d.ts.map +1 -0
- package/dist/functions/src/math/sumif.d.ts +9 -0
- package/dist/functions/src/math/sumif.d.ts.map +1 -0
- package/dist/functions/src/math/sumifs.d.ts +10 -0
- package/dist/functions/src/math/sumifs.d.ts.map +1 -0
- package/dist/functions/src/math/sumifs.spec.d.ts +2 -0
- package/dist/functions/src/math/sumifs.spec.d.ts.map +1 -0
- package/dist/functions/src/math/sumproduct.d.ts +10 -0
- package/dist/functions/src/math/sumproduct.d.ts.map +1 -0
- package/dist/functions/src/math/sumsq.d.ts +9 -0
- package/dist/functions/src/math/sumsq.d.ts.map +1 -0
- package/dist/functions/src/math/sumsq.spec.d.ts +2 -0
- package/dist/functions/src/math/sumsq.spec.d.ts.map +1 -0
- package/dist/functions/src/math/tan.d.ts +9 -0
- package/dist/functions/src/math/tan.d.ts.map +1 -0
- package/dist/functions/src/math/tan.spec.d.ts +2 -0
- package/dist/functions/src/math/tan.spec.d.ts.map +1 -0
- package/dist/functions/src/math/transpose.d.ts +11 -0
- package/dist/functions/src/math/transpose.d.ts.map +1 -0
- package/dist/functions/src/math/trunc.d.ts +9 -0
- package/dist/functions/src/math/trunc.d.ts.map +1 -0
- package/dist/functions/src/math/trunc.spec.d.ts +2 -0
- package/dist/functions/src/math/trunc.spec.d.ts.map +1 -0
- package/dist/functions/src/math/unaryPercent.d.ts +9 -0
- package/dist/functions/src/math/unaryPercent.d.ts.map +1 -0
- package/dist/functions/src/math/unaryPercent.spec.d.ts +2 -0
- package/dist/functions/src/math/unaryPercent.spec.d.ts.map +1 -0
- package/dist/functions/src/math/uplus.d.ts +9 -0
- package/dist/functions/src/math/uplus.d.ts.map +1 -0
- package/dist/functions/src/math/uplus.spec.d.ts +2 -0
- package/dist/functions/src/math/uplus.spec.d.ts.map +1 -0
- package/dist/functions/src/statistics/averageif.d.ts +9 -0
- package/dist/functions/src/statistics/averageif.d.ts.map +1 -0
- package/dist/functions/src/statistics/averageifs.d.ts +10 -0
- package/dist/functions/src/statistics/averageifs.d.ts.map +1 -0
- package/dist/functions/src/statistics/averageifs.spec.d.ts +2 -0
- package/dist/functions/src/statistics/averageifs.spec.d.ts.map +1 -0
- package/dist/functions/src/statistics/correl.d.ts +10 -0
- package/dist/functions/src/statistics/correl.d.ts.map +1 -0
- package/dist/functions/src/statistics/correl.spec.d.ts +2 -0
- package/dist/functions/src/statistics/correl.spec.d.ts.map +1 -0
- package/dist/functions/src/statistics/covariance_p.d.ts +10 -0
- package/dist/functions/src/statistics/covariance_p.d.ts.map +1 -0
- package/dist/functions/src/statistics/covariance_p.spec.d.ts +2 -0
- package/dist/functions/src/statistics/covariance_p.spec.d.ts.map +1 -0
- package/dist/functions/src/statistics/covariance_s.d.ts +10 -0
- package/dist/functions/src/statistics/covariance_s.d.ts.map +1 -0
- package/dist/functions/src/statistics/covariance_s.spec.d.ts +2 -0
- package/dist/functions/src/statistics/covariance_s.spec.d.ts.map +1 -0
- package/dist/functions/src/statistics/index.d.ts +4 -0
- package/dist/functions/src/statistics/index.d.ts.map +1 -0
- package/dist/functions/src/statistics/median.d.ts +10 -0
- package/dist/functions/src/statistics/median.d.ts.map +1 -0
- package/dist/functions/src/statistics/median.spec.d.ts +2 -0
- package/dist/functions/src/statistics/median.spec.d.ts.map +1 -0
- package/dist/functions/src/statistics/mode_sngl.d.ts +10 -0
- package/dist/functions/src/statistics/mode_sngl.d.ts.map +1 -0
- package/dist/functions/src/statistics/mode_sngl.spec.d.ts +2 -0
- package/dist/functions/src/statistics/mode_sngl.spec.d.ts.map +1 -0
- package/dist/functions/src/statistics/percentile_inc.d.ts +10 -0
- package/dist/functions/src/statistics/percentile_inc.d.ts.map +1 -0
- package/dist/functions/src/statistics/percentile_inc.spec.d.ts +2 -0
- package/dist/functions/src/statistics/percentile_inc.spec.d.ts.map +1 -0
- package/dist/functions/src/statistics/quartile_inc.d.ts +10 -0
- package/dist/functions/src/statistics/quartile_inc.d.ts.map +1 -0
- package/dist/functions/src/statistics/quartile_inc.spec.d.ts +2 -0
- package/dist/functions/src/statistics/quartile_inc.spec.d.ts.map +1 -0
- package/dist/functions/src/statistics/rank_eq.d.ts +10 -0
- package/dist/functions/src/statistics/rank_eq.d.ts.map +1 -0
- package/dist/functions/src/statistics/rank_eq.spec.d.ts +2 -0
- package/dist/functions/src/statistics/rank_eq.spec.d.ts.map +1 -0
- package/dist/functions/src/statistics/rsq.d.ts +10 -0
- package/dist/functions/src/statistics/rsq.d.ts.map +1 -0
- package/dist/functions/src/statistics/rsq.spec.d.ts +2 -0
- package/dist/functions/src/statistics/rsq.spec.d.ts.map +1 -0
- package/dist/functions/src/statistics/stdev_p.d.ts +10 -0
- package/dist/functions/src/statistics/stdev_p.d.ts.map +1 -0
- package/dist/functions/src/statistics/stdev_p.spec.d.ts +2 -0
- package/dist/functions/src/statistics/stdev_p.spec.d.ts.map +1 -0
- package/dist/functions/src/statistics/stdev_s.d.ts +10 -0
- package/dist/functions/src/statistics/stdev_s.d.ts.map +1 -0
- package/dist/functions/src/statistics/stdev_s.spec.d.ts +2 -0
- package/dist/functions/src/statistics/stdev_s.spec.d.ts.map +1 -0
- package/dist/functions/src/statistics/t_test.d.ts +10 -0
- package/dist/functions/src/statistics/t_test.d.ts.map +1 -0
- package/dist/functions/src/statistics/t_test.spec.d.ts +2 -0
- package/dist/functions/src/statistics/t_test.spec.d.ts.map +1 -0
- package/dist/functions/src/statistics/var_p.d.ts +10 -0
- package/dist/functions/src/statistics/var_p.d.ts.map +1 -0
- package/dist/functions/src/statistics/var_p.spec.d.ts +2 -0
- package/dist/functions/src/statistics/var_p.spec.d.ts.map +1 -0
- package/dist/functions/src/statistics/var_s.d.ts +10 -0
- package/dist/functions/src/statistics/var_s.d.ts.map +1 -0
- package/dist/functions/src/statistics/var_s.spec.d.ts +2 -0
- package/dist/functions/src/statistics/var_s.spec.d.ts.map +1 -0
- package/dist/functions/src/text/char.d.ts +9 -0
- package/dist/functions/src/text/char.d.ts.map +1 -0
- package/dist/functions/src/text/char.spec.d.ts +2 -0
- package/dist/functions/src/text/char.spec.d.ts.map +1 -0
- package/dist/functions/src/text/clean.d.ts +9 -0
- package/dist/functions/src/text/clean.d.ts.map +1 -0
- package/dist/functions/src/text/clean.spec.d.ts +2 -0
- package/dist/functions/src/text/clean.spec.d.ts.map +1 -0
- package/dist/functions/src/text/concatenate.d.ts +9 -0
- package/dist/functions/src/text/concatenate.d.ts.map +1 -0
- package/dist/functions/src/text/concatenate.spec.d.ts +2 -0
- package/dist/functions/src/text/concatenate.spec.d.ts.map +1 -0
- package/dist/functions/src/text/exact.d.ts +9 -0
- package/dist/functions/src/text/exact.d.ts.map +1 -0
- package/dist/functions/src/text/exact.spec.d.ts +2 -0
- package/dist/functions/src/text/exact.spec.d.ts.map +1 -0
- package/dist/functions/src/text/index.d.ts +4 -0
- package/dist/functions/src/text/index.d.ts.map +1 -0
- package/dist/functions/src/text/join.d.ts +10 -0
- package/dist/functions/src/text/join.d.ts.map +1 -0
- package/dist/functions/src/text/join.spec.d.ts +2 -0
- package/dist/functions/src/text/join.spec.d.ts.map +1 -0
- package/dist/functions/src/text/lenb.d.ts +9 -0
- package/dist/functions/src/text/lenb.d.ts.map +1 -0
- package/dist/functions/src/text/lenb.spec.d.ts +2 -0
- package/dist/functions/src/text/lenb.spec.d.ts.map +1 -0
- package/dist/functions/src/text/lower.d.ts +9 -0
- package/dist/functions/src/text/lower.d.ts.map +1 -0
- package/dist/functions/src/text/lower.spec.d.ts +2 -0
- package/dist/functions/src/text/lower.spec.d.ts.map +1 -0
- package/dist/functions/src/text/proper.d.ts +9 -0
- package/dist/functions/src/text/proper.d.ts.map +1 -0
- package/dist/functions/src/text/proper.spec.d.ts +2 -0
- package/dist/functions/src/text/proper.spec.d.ts.map +1 -0
- package/dist/functions/src/text/replace.d.ts +10 -0
- package/dist/functions/src/text/replace.d.ts.map +1 -0
- package/dist/functions/src/text/replace.spec.d.ts +2 -0
- package/dist/functions/src/text/replace.spec.d.ts.map +1 -0
- package/dist/functions/src/text/rept.d.ts +10 -0
- package/dist/functions/src/text/rept.d.ts.map +1 -0
- package/dist/functions/src/text/rept.spec.d.ts +2 -0
- package/dist/functions/src/text/rept.spec.d.ts.map +1 -0
- package/dist/functions/src/text/trim.d.ts +9 -0
- package/dist/functions/src/text/trim.d.ts.map +1 -0
- package/dist/functions/src/text/trim.spec.d.ts +2 -0
- package/dist/functions/src/text/trim.spec.d.ts.map +1 -0
- package/dist/functions/src/text/unichar.d.ts +9 -0
- package/dist/functions/src/text/unichar.d.ts.map +1 -0
- package/dist/functions/src/text/unichar.spec.d.ts +2 -0
- package/dist/functions/src/text/unichar.spec.d.ts.map +1 -0
- package/dist/functions/src/text/unicode.d.ts +9 -0
- package/dist/functions/src/text/unicode.d.ts.map +1 -0
- package/dist/functions/src/text/unicode.spec.d.ts +2 -0
- package/dist/functions/src/text/unicode.spec.d.ts.map +1 -0
- package/dist/functions/src/text/upper.d.ts +9 -0
- package/dist/functions/src/text/upper.d.ts.map +1 -0
- package/dist/functions/src/text/upper.spec.d.ts +2 -0
- package/dist/functions/src/text/upper.spec.d.ts.map +1 -0
- package/dist/functions/src/time/date.d.ts +9 -0
- package/dist/functions/src/time/date.d.ts.map +1 -0
- package/dist/functions/src/time/day.d.ts +9 -0
- package/dist/functions/src/time/day.d.ts.map +1 -0
- package/dist/functions/src/time/days.d.ts +9 -0
- package/dist/functions/src/time/days.d.ts.map +1 -0
- package/dist/functions/src/time/hour.d.ts +9 -0
- package/dist/functions/src/time/hour.d.ts.map +1 -0
- package/dist/functions/src/time/index.d.ts +4 -0
- package/dist/functions/src/time/index.d.ts.map +1 -0
- package/dist/functions/src/time/minute.d.ts +9 -0
- package/dist/functions/src/time/minute.d.ts.map +1 -0
- package/dist/functions/src/time/month.d.ts +9 -0
- package/dist/functions/src/time/month.d.ts.map +1 -0
- package/dist/functions/src/time/second.d.ts +9 -0
- package/dist/functions/src/time/second.d.ts.map +1 -0
- package/dist/functions/src/time/time.d.ts +9 -0
- package/dist/functions/src/time/time.d.ts.map +1 -0
- package/dist/functions/src/time/today.d.ts +9 -0
- package/dist/functions/src/time/today.d.ts.map +1 -0
- package/dist/functions/src/time/workday.d.ts +9 -0
- package/dist/functions/src/time/workday.d.ts.map +1 -0
- package/dist/functions/src/time/year.d.ts +9 -0
- package/dist/functions/src/time/year.d.ts.map +1 -0
- package/dist/functions/src/types.d.ts +2 -0
- package/dist/functions/src/types.d.ts.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +321 -0
- package/dist/index.js.map +1 -0
- package/dist/lookup/index.d.ts +6 -0
- package/dist/lookup/index.js +360 -0
- package/dist/lookup/index.js.map +1 -0
- package/dist/math/index.d.ts +6 -0
- package/dist/math/index.js +1021 -0
- package/dist/math/index.js.map +1 -0
- package/dist/statistics/index.d.ts +6 -0
- package/dist/statistics/index.js +706 -0
- package/dist/statistics/index.js.map +1 -0
- package/dist/text/index.d.ts +6 -0
- package/dist/text/index.js +258 -0
- package/dist/text/index.js.map +1 -0
- package/dist/time/index.d.ts +6 -0
- package/dist/time/index.js +194 -0
- package/dist/time/index.js.map +1 -0
- package/package.json +85 -0
package/dist/index.js
ADDED
|
@@ -0,0 +1,321 @@
|
|
|
1
|
+
import { BaseFunction as r, FormulaError as s, ensureBoolean as c, Sheet as u, ensureNumber as l, createBook as d } from "@gridsheet/core";
|
|
2
|
+
import { mathFunctions as p } from "./math/index.js";
|
|
3
|
+
import { statisticsFunctions as h } from "./statistics/index.js";
|
|
4
|
+
import { textFunctions as m } from "./text/index.js";
|
|
5
|
+
import { lookupFunctions as f } from "./lookup/index.js";
|
|
6
|
+
import { timeFunctions as g } from "./time/index.js";
|
|
7
|
+
const T = `Returns TRUE if an odd number of the arguments are logically true.
|
|
8
|
+
Returns FALSE if an even number of the arguments are logically true.`;
|
|
9
|
+
class y extends r {
|
|
10
|
+
constructor() {
|
|
11
|
+
super(...arguments), this.example = "XOR(A1=1, A2=2)", this.description = T, this.defs = [
|
|
12
|
+
{ name: "expression", description: "Logical expressions to evaluate.", acceptedTypes: ["boolean"], variadic: !0 }
|
|
13
|
+
], this.category = "logical";
|
|
14
|
+
}
|
|
15
|
+
main(...e) {
|
|
16
|
+
return e.reduce((n, i) => n !== i, !1);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
const x = "Returns the first argument if it is not a #N/A error, otherwise returns the second argument.", a = class a extends r {
|
|
20
|
+
constructor() {
|
|
21
|
+
super(...arguments), this.example = 'IFNA(A1, "N/A error occurred")', this.description = x, this.defs = [
|
|
22
|
+
{
|
|
23
|
+
name: "value",
|
|
24
|
+
description: "The value to return if it is not a #N/A error.",
|
|
25
|
+
acceptedTypes: ["any"],
|
|
26
|
+
errorTolerant: !0
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
name: "value_if_na",
|
|
30
|
+
description: "The value to return if the first argument is a #N/A error.",
|
|
31
|
+
optional: !0,
|
|
32
|
+
acceptedTypes: ["any"]
|
|
33
|
+
}
|
|
34
|
+
], this.category = "logical";
|
|
35
|
+
}
|
|
36
|
+
main(e, n) {
|
|
37
|
+
return s.is(e) && e.code === "#N/A" ? n : e;
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
a.__name = "IFNA";
|
|
41
|
+
let o = a;
|
|
42
|
+
const A = `Evaluates multiple conditions and returns the value corresponding to the first TRUE condition.
|
|
43
|
+
Arguments must be supplied in (condition, value) pairs.`;
|
|
44
|
+
class v extends r {
|
|
45
|
+
constructor() {
|
|
46
|
+
super(...arguments), this.example = 'IFS(A1>90, "A", A1>70, "B", A1>50, "C")', this.description = A, this.defs = [
|
|
47
|
+
{ name: "condition", description: "Condition to evaluate.", acceptedTypes: ["boolean"], variadic: !0 },
|
|
48
|
+
{ name: "value", description: "Value to return if condition is TRUE.", acceptedTypes: ["any"], variadic: !0 }
|
|
49
|
+
], this.category = "logical";
|
|
50
|
+
}
|
|
51
|
+
validate(e) {
|
|
52
|
+
if (e.length < 2)
|
|
53
|
+
throw new s("#N/A", "IFS requires at least one condition-value pair.");
|
|
54
|
+
if (e.length % 2 !== 0)
|
|
55
|
+
throw new s("#N/A", "IFS requires an even number of arguments (condition, value) pairs.");
|
|
56
|
+
for (let n = 0; n < e.length; n += 2)
|
|
57
|
+
if (c(e[n]))
|
|
58
|
+
return [e[n + 1]];
|
|
59
|
+
throw new s("#N/A", "No condition in IFS was met.");
|
|
60
|
+
}
|
|
61
|
+
main(e) {
|
|
62
|
+
return e;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
const R = {
|
|
66
|
+
xor: y,
|
|
67
|
+
ifna: o,
|
|
68
|
+
ifs: v
|
|
69
|
+
}, E = "Returns TRUE if the referenced cell contains a formula.";
|
|
70
|
+
class F extends r {
|
|
71
|
+
constructor() {
|
|
72
|
+
super(...arguments), this.example = "ISFORMULA(A1)", this.description = E, this.defs = [
|
|
73
|
+
{
|
|
74
|
+
name: "reference",
|
|
75
|
+
description: "The cell reference to check for a formula.",
|
|
76
|
+
acceptedTypes: ["reference"],
|
|
77
|
+
takesMatrix: !0,
|
|
78
|
+
errorTolerant: !0
|
|
79
|
+
}
|
|
80
|
+
], this.category = "information";
|
|
81
|
+
}
|
|
82
|
+
main(e) {
|
|
83
|
+
const n = e.getCell({ y: e.top, x: e.left }, { resolution: "SYSTEM" }), i = n == null ? void 0 : n.value;
|
|
84
|
+
return typeof i == "string" && i.startsWith("=");
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
const N = "Returns TRUE if the referenced cell is empty.";
|
|
88
|
+
class I extends r {
|
|
89
|
+
constructor() {
|
|
90
|
+
super(...arguments), this.example = "ISBLANK(A1)", this.description = N, this.defs = [
|
|
91
|
+
{
|
|
92
|
+
name: "value",
|
|
93
|
+
description: "A reference to a cell to check for emptiness.",
|
|
94
|
+
acceptedTypes: ["any"],
|
|
95
|
+
errorTolerant: !0
|
|
96
|
+
}
|
|
97
|
+
], this.category = "information";
|
|
98
|
+
}
|
|
99
|
+
main(e) {
|
|
100
|
+
return e == null || e === "";
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
const S = "Returns TRUE if the value is any error other than #N/A.";
|
|
104
|
+
class b extends r {
|
|
105
|
+
constructor() {
|
|
106
|
+
super(...arguments), this.example = "ISERR(A1)", this.description = S, this.defs = [
|
|
107
|
+
{
|
|
108
|
+
name: "value",
|
|
109
|
+
description: "The value to check for a non-#N/A error.",
|
|
110
|
+
acceptedTypes: ["any"],
|
|
111
|
+
errorTolerant: !0
|
|
112
|
+
}
|
|
113
|
+
], this.category = "information";
|
|
114
|
+
}
|
|
115
|
+
main(e) {
|
|
116
|
+
return e instanceof Error ? !0 : s.is(e) && e.code !== "#N/A";
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
const k = "Returns TRUE if the value is any error value.";
|
|
120
|
+
class U extends r {
|
|
121
|
+
constructor() {
|
|
122
|
+
super(...arguments), this.example = "ISERROR(A1)", this.description = k, this.defs = [
|
|
123
|
+
{
|
|
124
|
+
name: "value",
|
|
125
|
+
description: "The value to check for an error.",
|
|
126
|
+
acceptedTypes: ["any"],
|
|
127
|
+
errorTolerant: !0
|
|
128
|
+
}
|
|
129
|
+
], this.category = "information";
|
|
130
|
+
}
|
|
131
|
+
main(e) {
|
|
132
|
+
return s.is(e) || e instanceof Error;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
const $ = "Returns TRUE if the value is TRUE or FALSE.";
|
|
136
|
+
class w extends r {
|
|
137
|
+
constructor() {
|
|
138
|
+
super(...arguments), this.example = "ISLOGICAL(TRUE)", this.description = $, this.defs = [
|
|
139
|
+
{
|
|
140
|
+
name: "value",
|
|
141
|
+
description: "The value to check for being logical (TRUE or FALSE).",
|
|
142
|
+
acceptedTypes: ["any"],
|
|
143
|
+
errorTolerant: !0
|
|
144
|
+
}
|
|
145
|
+
], this.category = "information";
|
|
146
|
+
}
|
|
147
|
+
main(e) {
|
|
148
|
+
return typeof e == "boolean";
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
const L = "Returns TRUE if the value is the #N/A error value.";
|
|
152
|
+
class B extends r {
|
|
153
|
+
constructor() {
|
|
154
|
+
super(...arguments), this.example = "ISNA(A1)", this.description = L, this.defs = [
|
|
155
|
+
{
|
|
156
|
+
name: "value",
|
|
157
|
+
description: "The value to check for the #N/A error.",
|
|
158
|
+
acceptedTypes: ["any"],
|
|
159
|
+
errorTolerant: !0
|
|
160
|
+
}
|
|
161
|
+
], this.category = "information";
|
|
162
|
+
}
|
|
163
|
+
main(e) {
|
|
164
|
+
return s.is(e) && e.code === "#N/A";
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
const M = "Returns TRUE if the value is not a text string.";
|
|
168
|
+
class O extends r {
|
|
169
|
+
constructor() {
|
|
170
|
+
super(...arguments), this.example = "ISNONTEXT(A1)", this.description = M, this.defs = [
|
|
171
|
+
{
|
|
172
|
+
name: "value",
|
|
173
|
+
description: "The value to check for being non-text.",
|
|
174
|
+
acceptedTypes: ["any"],
|
|
175
|
+
errorTolerant: !0
|
|
176
|
+
}
|
|
177
|
+
], this.category = "information";
|
|
178
|
+
}
|
|
179
|
+
main(e) {
|
|
180
|
+
return typeof e != "string";
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
const X = "Returns TRUE if the value is a text string.";
|
|
184
|
+
class C extends r {
|
|
185
|
+
constructor() {
|
|
186
|
+
super(...arguments), this.example = "ISTEXT(A1)", this.description = X, this.defs = [
|
|
187
|
+
{
|
|
188
|
+
name: "value",
|
|
189
|
+
description: "The value to check for being text.",
|
|
190
|
+
acceptedTypes: ["any"],
|
|
191
|
+
errorTolerant: !0
|
|
192
|
+
}
|
|
193
|
+
], this.category = "information";
|
|
194
|
+
}
|
|
195
|
+
main(e) {
|
|
196
|
+
return typeof e == "string";
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
const _ = "Returns TRUE if the value is a valid cell reference.";
|
|
200
|
+
class D extends r {
|
|
201
|
+
constructor() {
|
|
202
|
+
super(...arguments), this.example = "ISREF(A1)", this.description = _, this.defs = [
|
|
203
|
+
{
|
|
204
|
+
name: "value",
|
|
205
|
+
description: "The value to check for being a cell reference.",
|
|
206
|
+
acceptedTypes: ["any"],
|
|
207
|
+
takesMatrix: !0,
|
|
208
|
+
errorTolerant: !0
|
|
209
|
+
}
|
|
210
|
+
], this.category = "information";
|
|
211
|
+
}
|
|
212
|
+
main(e) {
|
|
213
|
+
return u.is(e);
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
const q = "Returns the argument provided as a number.";
|
|
217
|
+
class G extends r {
|
|
218
|
+
constructor() {
|
|
219
|
+
super(...arguments), this.example = "N(A1)", this.description = q, this.defs = [
|
|
220
|
+
{
|
|
221
|
+
name: "value",
|
|
222
|
+
description: "The value to convert to a number.",
|
|
223
|
+
acceptedTypes: ["any"]
|
|
224
|
+
}
|
|
225
|
+
], this.category = "information";
|
|
226
|
+
}
|
|
227
|
+
main(e) {
|
|
228
|
+
if (typeof e == "boolean")
|
|
229
|
+
return e ? 1 : 0;
|
|
230
|
+
if (e instanceof Date)
|
|
231
|
+
return e.getTime();
|
|
232
|
+
if (e == null || e === "")
|
|
233
|
+
return 0;
|
|
234
|
+
try {
|
|
235
|
+
return l(e);
|
|
236
|
+
} catch {
|
|
237
|
+
return 0;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
const j = 'Returns the error value #N/A, meaning "value not available".';
|
|
242
|
+
class H extends r {
|
|
243
|
+
constructor() {
|
|
244
|
+
super(...arguments), this.example = "NA()", this.description = j, this.defs = [], this.category = "information";
|
|
245
|
+
}
|
|
246
|
+
main() {
|
|
247
|
+
throw new s("#N/A", "N/A");
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
const K = "Returns TRUE if the value is a date.";
|
|
251
|
+
class V extends r {
|
|
252
|
+
constructor() {
|
|
253
|
+
super(...arguments), this.example = "ISDATE(A1)", this.description = K, this.defs = [
|
|
254
|
+
{
|
|
255
|
+
name: "value",
|
|
256
|
+
description: "The value to check for being a date.",
|
|
257
|
+
acceptedTypes: ["any"],
|
|
258
|
+
errorTolerant: !0
|
|
259
|
+
}
|
|
260
|
+
], this.category = "information";
|
|
261
|
+
}
|
|
262
|
+
main(e) {
|
|
263
|
+
return e instanceof Date && !isNaN(e.getTime());
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
const W = /^[^\s@]+@[^\s@]+\.[^\s@]+$/, Y = "Returns TRUE if the value is a valid email address.";
|
|
267
|
+
class z extends r {
|
|
268
|
+
constructor() {
|
|
269
|
+
super(...arguments), this.example = "ISEMAIL(A1)", this.description = Y, this.defs = [
|
|
270
|
+
{
|
|
271
|
+
name: "value",
|
|
272
|
+
description: "The value to check for being a valid email address.",
|
|
273
|
+
acceptedTypes: ["any"],
|
|
274
|
+
errorTolerant: !0
|
|
275
|
+
}
|
|
276
|
+
], this.category = "information";
|
|
277
|
+
}
|
|
278
|
+
main(e) {
|
|
279
|
+
return typeof e != "string" ? !1 : W.test(e);
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
const J = "Returns the total number of sheets in the spreadsheet.";
|
|
283
|
+
class P extends r {
|
|
284
|
+
constructor() {
|
|
285
|
+
super(...arguments), this.example = "SHEETS()", this.description = J, this.defs = [], this.category = "information";
|
|
286
|
+
}
|
|
287
|
+
main() {
|
|
288
|
+
const e = this.sheet.registry.sheetIdsByName, n = Object.keys(e).length;
|
|
289
|
+
return n === 0 ? 1 : n;
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
const Q = {
|
|
293
|
+
isformula: F,
|
|
294
|
+
isblank: I,
|
|
295
|
+
iserr: b,
|
|
296
|
+
iserror: U,
|
|
297
|
+
islogical: w,
|
|
298
|
+
isna: B,
|
|
299
|
+
isnontext: O,
|
|
300
|
+
istext: C,
|
|
301
|
+
isref: D,
|
|
302
|
+
n: G,
|
|
303
|
+
na: H,
|
|
304
|
+
isdate: V,
|
|
305
|
+
isemail: z,
|
|
306
|
+
sheets: P
|
|
307
|
+
}, Z = {
|
|
308
|
+
...p,
|
|
309
|
+
...h,
|
|
310
|
+
...m,
|
|
311
|
+
...f,
|
|
312
|
+
...g,
|
|
313
|
+
...R,
|
|
314
|
+
...Q
|
|
315
|
+
}, oe = ({ additionalFunctions: t, ...e } = {}) => d({ ...e, additionalFunctions: { ...Z, ...t } });
|
|
316
|
+
export {
|
|
317
|
+
Z as allFunctions,
|
|
318
|
+
oe as createSpellbook,
|
|
319
|
+
Z as default
|
|
320
|
+
};
|
|
321
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/logical/xor.ts","../src/logical/ifna.ts","../src/logical/ifs.ts","../src/logical/index.ts","../src/information/isformula.ts","../src/information/isblank.ts","../src/information/iserr.ts","../src/information/iserror.ts","../src/information/islogical.ts","../src/information/isna.ts","../src/information/isnontext.ts","../src/information/istext.ts","../src/information/isref.ts","../src/information/n.ts","../src/information/na.ts","../src/information/isdate.ts","../src/information/isemail.ts","../src/information/sheets.ts","../src/information/index.ts","../src/index.ts"],"sourcesContent":["import { FormulaError } from '@gridsheet/core';\nimport { BaseFunction, type FunctionArgumentDefinition } from '@gridsheet/core';\nimport { ensureBoolean } from '@gridsheet/core';\nimport type { FunctionCategory } from '@gridsheet/core';\n\nconst description = `Returns TRUE if an odd number of the arguments are logically true.\nReturns FALSE if an even number of the arguments are logically true.`;\n\nexport class XorFunction extends BaseFunction {\n example = 'XOR(A1=1, A2=2)';\n description = description;\n defs: FunctionArgumentDefinition[] = [\n { name: 'expression', description: 'Logical expressions to evaluate.', acceptedTypes: ['boolean'], variadic: true },\n ];\n category: FunctionCategory = 'logical';\n\n protected main(...values: boolean[]) {\n // XOR is true when an odd number of arguments are true\n return values.reduce((acc, val) => acc !== val, false as boolean);\n }\n}\n","import { BaseFunction, FormulaError } from '@gridsheet/core';\nimport { type FunctionArgumentDefinition } from '@gridsheet/core';\n\nconst description = `Returns the first argument if it is not a #N/A error, otherwise returns the second argument.`;\n\nexport class IfnaFunction extends BaseFunction {\n static __name = 'IFNA';\n example = 'IFNA(A1, \"N/A error occurred\")';\n description = description;\n defs: FunctionArgumentDefinition[] = [\n {\n name: 'value',\n description: 'The value to return if it is not a #N/A error.',\n acceptedTypes: ['any'],\n errorTolerant: true,\n },\n {\n name: 'value_if_na',\n description: 'The value to return if the first argument is a #N/A error.',\n optional: true,\n acceptedTypes: ['any'],\n },\n ];\n\n category = 'logical' as const;\n\n protected main(value: any, valueIfNa?: any) {\n if (FormulaError.is(value) && value.code === '#N/A') {\n return valueIfNa;\n }\n return value;\n }\n}\n","import { BaseFunction, FormulaError } from '@gridsheet/core';\nimport { type FunctionArgumentDefinition } from '@gridsheet/core';\nimport { ensureBoolean } from '@gridsheet/core';\n\nconst description = `Evaluates multiple conditions and returns the value corresponding to the first TRUE condition.\nArguments must be supplied in (condition, value) pairs.`;\n\nexport class IfsFunction extends BaseFunction {\n example = 'IFS(A1>90, \"A\", A1>70, \"B\", A1>50, \"C\")';\n description = description;\n defs: FunctionArgumentDefinition[] = [\n { name: 'condition', description: 'Condition to evaluate.', acceptedTypes: ['boolean'], variadic: true },\n { name: 'value', description: 'Value to return if condition is TRUE.', acceptedTypes: ['any'], variadic: true },\n ];\n category = 'logical' as const;\n\n protected validate(args: any[]): any[] {\n if (args.length < 2) {\n throw new FormulaError('#N/A', 'IFS requires at least one condition-value pair.');\n }\n if (args.length % 2 !== 0) {\n throw new FormulaError('#N/A', 'IFS requires an even number of arguments (condition, value) pairs.');\n }\n for (let i = 0; i < args.length; i += 2) {\n if (ensureBoolean(args[i])) {\n return [args[i + 1]];\n }\n }\n throw new FormulaError('#N/A', 'No condition in IFS was met.');\n }\n\n protected main(result: any) {\n return result;\n }\n}\n","import type { FunctionMapping } from '@gridsheet/core';\nimport { XorFunction } from './xor';\nimport { IfnaFunction } from './ifna';\nimport { IfsFunction } from './ifs';\n\nexport const logicalFunctions: FunctionMapping = {\n xor: XorFunction,\n ifna: IfnaFunction,\n ifs: IfsFunction,\n};\n\nexport default logicalFunctions;\n","import { BaseFunction, type FunctionArgumentDefinition } from '@gridsheet/core';\nimport { Sheet } from '@gridsheet/core';\nimport type { FunctionCategory } from '@gridsheet/core';\n\nconst description = `Returns TRUE if the referenced cell contains a formula.`;\n\nexport class IsformulaFunction extends BaseFunction {\n example = 'ISFORMULA(A1)';\n description = description;\n defs: FunctionArgumentDefinition[] = [\n {\n name: 'reference',\n description: 'The cell reference to check for a formula.',\n acceptedTypes: ['reference'],\n takesMatrix: true,\n errorTolerant: true,\n },\n ];\n category: FunctionCategory = 'information';\n\n protected main(ref: Sheet) {\n const cell = ref.getCell({ y: ref.top, x: ref.left }, { resolution: 'SYSTEM' });\n const raw = cell?.value;\n return typeof raw === 'string' && raw.startsWith('=');\n }\n}\n","import { BaseFunction, type FunctionArgumentDefinition } from '@gridsheet/core';\nimport type { FunctionCategory } from '@gridsheet/core';\n\nconst description = `Returns TRUE if the referenced cell is empty.`;\n\nexport class IsblankFunction extends BaseFunction {\n example = 'ISBLANK(A1)';\n description = description;\n defs: FunctionArgumentDefinition[] = [\n {\n name: 'value',\n description: 'A reference to a cell to check for emptiness.',\n acceptedTypes: ['any'],\n errorTolerant: true,\n },\n ];\n category: FunctionCategory = 'information';\n\n protected main(value: any) {\n return value === null || value === undefined || value === '';\n }\n}\n","import { BaseFunction, FormulaError } from '@gridsheet/core';\nimport type { FunctionArgumentDefinition, FunctionProps } from '@gridsheet/core';\nimport type { FunctionCategory } from '@gridsheet/core';\nimport { Sheet } from '@gridsheet/core';\n\nconst description = `Returns TRUE if the value is any error other than #N/A.`;\n\nexport class IserrFunction extends BaseFunction {\n example = 'ISERR(A1)';\n description = description;\n defs: FunctionArgumentDefinition[] = [\n {\n name: 'value',\n description: 'The value to check for a non-#N/A error.',\n acceptedTypes: ['any'],\n errorTolerant: true,\n },\n ];\n category: FunctionCategory = 'information';\n\n protected main(value: any) {\n if (value instanceof Error) {\n return true;\n }\n return FormulaError.is(value) && value.code !== '#N/A';\n }\n}\n","import { BaseFunction, FormulaError } from '@gridsheet/core';\nimport type { FunctionArgumentDefinition, FunctionProps } from '@gridsheet/core';\nimport type { FunctionCategory } from '@gridsheet/core';\n\nconst description = `Returns TRUE if the value is any error value.`;\n\nexport class IserrorFunction extends BaseFunction {\n example = 'ISERROR(A1)';\n description = description;\n defs: FunctionArgumentDefinition[] = [\n {\n name: 'value',\n description: 'The value to check for an error.',\n acceptedTypes: ['any'],\n errorTolerant: true,\n },\n ];\n category: FunctionCategory = 'information';\n\n protected main(value: any) {\n return FormulaError.is(value) || value instanceof Error;\n }\n}\n","import { FormulaError } from '@gridsheet/core';\nimport { BaseFunction, type FunctionArgumentDefinition } from '@gridsheet/core';\nimport type { FunctionCategory } from '@gridsheet/core';\n\nconst description = `Returns TRUE if the value is TRUE or FALSE.`;\n\nexport class IslogicalFunction extends BaseFunction {\n example = 'ISLOGICAL(TRUE)';\n description = description;\n defs: FunctionArgumentDefinition[] = [\n {\n name: 'value',\n description: 'The value to check for being logical (TRUE or FALSE).',\n acceptedTypes: ['any'],\n errorTolerant: true,\n },\n ];\n category: FunctionCategory = 'information';\n\n protected main(value: any) {\n return typeof value === 'boolean';\n }\n}\n","import { BaseFunction, FormulaError } from '@gridsheet/core';\nimport type { FunctionArgumentDefinition, FunctionProps } from '@gridsheet/core';\nimport type { FunctionCategory } from '@gridsheet/core';\nimport { Sheet } from '@gridsheet/core';\n\nconst description = `Returns TRUE if the value is the #N/A error value.`;\n\nexport class IsnaFunction extends BaseFunction {\n example = 'ISNA(A1)';\n description = description;\n defs: FunctionArgumentDefinition[] = [\n {\n name: 'value',\n description: 'The value to check for the #N/A error.',\n acceptedTypes: ['any'],\n errorTolerant: true,\n },\n ];\n category: FunctionCategory = 'information';\n\n protected main(value: any) {\n return FormulaError.is(value) && value.code === '#N/A';\n }\n}\n","import { FormulaError } from '@gridsheet/core';\nimport { BaseFunction, type FunctionArgumentDefinition } from '@gridsheet/core';\nimport type { FunctionCategory } from '@gridsheet/core';\n\nconst description = `Returns TRUE if the value is not a text string.`;\n\nexport class IsnontextFunction extends BaseFunction {\n example = 'ISNONTEXT(A1)';\n description = description;\n defs: FunctionArgumentDefinition[] = [\n {\n name: 'value',\n description: 'The value to check for being non-text.',\n acceptedTypes: ['any'],\n errorTolerant: true,\n },\n ];\n category: FunctionCategory = 'information';\n\n protected main(value: any) {\n return typeof value !== 'string';\n }\n}\n","import { FormulaError } from '@gridsheet/core';\nimport { BaseFunction, type FunctionArgumentDefinition } from '@gridsheet/core';\nimport type { FunctionCategory } from '@gridsheet/core';\n\nconst description = `Returns TRUE if the value is a text string.`;\n\nexport class IstextFunction extends BaseFunction {\n example = 'ISTEXT(A1)';\n description = description;\n defs: FunctionArgumentDefinition[] = [\n {\n name: 'value',\n description: 'The value to check for being text.',\n acceptedTypes: ['any'],\n errorTolerant: true,\n },\n ];\n category: FunctionCategory = 'information';\n\n protected main(value: any) {\n return typeof value === 'string';\n }\n}\n","import { BaseFunction, type FunctionArgumentDefinition } from '@gridsheet/core';\nimport { Sheet } from '@gridsheet/core';\nimport type { FunctionCategory } from '@gridsheet/core';\n\nconst description = `Returns TRUE if the value is a valid cell reference.`;\n\nexport class IsrefFunction extends BaseFunction {\n example = 'ISREF(A1)';\n description = description;\n defs: FunctionArgumentDefinition[] = [\n {\n name: 'value',\n description: 'The value to check for being a cell reference.',\n acceptedTypes: ['any'],\n takesMatrix: true,\n errorTolerant: true,\n },\n ];\n category: FunctionCategory = 'information';\n\n protected main(value: any) {\n return Sheet.is(value);\n }\n}\n","import { BaseFunction, type FunctionArgumentDefinition } from '@gridsheet/core';\nimport { ensureNumber } from '@gridsheet/core';\nimport type { FunctionCategory } from '@gridsheet/core';\n\nconst description = `Returns the argument provided as a number.`;\n\nexport class NFunction extends BaseFunction {\n example = 'N(A1)';\n description = description;\n defs: FunctionArgumentDefinition[] = [\n {\n name: 'value',\n description: 'The value to convert to a number.',\n acceptedTypes: ['any'],\n },\n ];\n category: FunctionCategory = 'information';\n\n protected main(value: any) {\n if (typeof value === 'boolean') {\n return value ? 1 : 0;\n }\n if (value instanceof Date) {\n return value.getTime();\n }\n if (value === null || value === undefined || value === '') {\n return 0;\n }\n try {\n return ensureNumber(value);\n } catch {\n return 0;\n }\n }\n}\n","import { FormulaError } from '@gridsheet/core';\nimport { BaseFunction, type FunctionArgumentDefinition } from '@gridsheet/core';\nimport type { FunctionCategory } from '@gridsheet/core';\n\nconst description = `Returns the error value #N/A, meaning \"value not available\".`;\n\nexport class NaFunction extends BaseFunction {\n example = 'NA()';\n description = description;\n defs: FunctionArgumentDefinition[] = [];\n category: FunctionCategory = 'information';\n\n protected main() {\n throw new FormulaError('#N/A', 'N/A');\n }\n}\n","import { FormulaError } from '@gridsheet/core';\nimport { BaseFunction, type FunctionArgumentDefinition } from '@gridsheet/core';\nimport type { FunctionCategory } from '@gridsheet/core';\n\nconst description = `Returns TRUE if the value is a date.`;\n\nexport class IsdateFunction extends BaseFunction {\n example = 'ISDATE(A1)';\n description = description;\n defs: FunctionArgumentDefinition[] = [\n {\n name: 'value',\n description: 'The value to check for being a date.',\n acceptedTypes: ['any'],\n errorTolerant: true,\n },\n ];\n category: FunctionCategory = 'information';\n\n protected main(value: any) {\n return value instanceof Date && !isNaN(value.getTime());\n }\n}\n","import { FormulaError } from '@gridsheet/core';\nimport { BaseFunction, type FunctionArgumentDefinition } from '@gridsheet/core';\nimport type { FunctionCategory } from '@gridsheet/core';\n\nconst EMAIL_REGEX = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n\nconst description = `Returns TRUE if the value is a valid email address.`;\n\nexport class IsemailFunction extends BaseFunction {\n example = 'ISEMAIL(A1)';\n description = description;\n defs: FunctionArgumentDefinition[] = [\n {\n name: 'value',\n description: 'The value to check for being a valid email address.',\n acceptedTypes: ['any'],\n errorTolerant: true,\n },\n ];\n category: FunctionCategory = 'information';\n\n protected main(value: any) {\n if (typeof value !== 'string') {\n return false;\n }\n return EMAIL_REGEX.test(value);\n }\n}\n","import { FormulaError } from '@gridsheet/core';\nimport { BaseFunction, type FunctionArgumentDefinition } from '@gridsheet/core';\nimport type { FunctionCategory } from '@gridsheet/core';\n\nconst description = `Returns the total number of sheets in the spreadsheet.`;\n\nexport class SheetsFunction extends BaseFunction {\n example = 'SHEETS()';\n description = description;\n defs: FunctionArgumentDefinition[] = [];\n category: FunctionCategory = 'information';\n\n protected main() {\n const sheetIdsByName = this.sheet.registry.sheetIdsByName;\n const count = Object.keys(sheetIdsByName).length;\n // If wire has no registered sheets (e.g. standalone sheet), return 1\n return count === 0 ? 1 : count;\n }\n}\n","import type { FunctionMapping } from '@gridsheet/core';\nimport { IsformulaFunction } from './isformula';\nimport { IsblankFunction } from './isblank';\nimport { IserrFunction } from './iserr';\nimport { IserrorFunction } from './iserror';\nimport { IslogicalFunction } from './islogical';\nimport { IsnaFunction } from './isna';\nimport { IsnontextFunction } from './isnontext';\nimport { IstextFunction } from './istext';\nimport { IsrefFunction } from './isref';\nimport { NFunction } from './n';\nimport { NaFunction } from './na';\nimport { IsdateFunction } from './isdate';\nimport { IsemailFunction } from './isemail';\nimport { SheetsFunction } from './sheets';\n\nexport const informationFunctions: FunctionMapping = {\n isformula: IsformulaFunction,\n isblank: IsblankFunction,\n iserr: IserrFunction,\n iserror: IserrorFunction,\n islogical: IslogicalFunction,\n isna: IsnaFunction,\n isnontext: IsnontextFunction,\n istext: IstextFunction,\n isref: IsrefFunction,\n n: NFunction,\n na: NaFunction,\n isdate: IsdateFunction,\n isemail: IsemailFunction,\n sheets: SheetsFunction,\n};\n\nexport default informationFunctions;\n","import type { FunctionMapping, RegistryProps } from '@gridsheet/core';\nimport { createBook } from '@gridsheet/core';\nimport { mathFunctions } from './math';\nimport { statisticsFunctions } from './statistics';\nimport { textFunctions } from './text';\nimport { lookupFunctions } from './lookup';\nimport { timeFunctions } from './time';\nimport { logicalFunctions } from './logical';\nimport { informationFunctions } from './information';\n\n/** All extended functions combined into a single FunctionMapping. */\nexport const allFunctions: FunctionMapping = {\n ...mathFunctions,\n ...statisticsFunctions,\n ...textFunctions,\n ...lookupFunctions,\n ...timeFunctions,\n ...logicalFunctions,\n ...informationFunctions,\n};\n\n/** createBook with all extended functions pre-loaded. User-supplied additionalFunctions are merged on top. */\nexport const createSpellbook = ({ additionalFunctions, ...rest }: RegistryProps = {}) =>\n createBook({ ...rest, additionalFunctions: { ...allFunctions, ...additionalFunctions } });\n\nexport default allFunctions;\n"],"names":["description","XorFunction","BaseFunction","values","acc","val","_IfnaFunction","value","valueIfNa","FormulaError","IfnaFunction","IfsFunction","args","i","ensureBoolean","result","logicalFunctions","IsformulaFunction","ref","cell","raw","IsblankFunction","IserrFunction","IserrorFunction","IslogicalFunction","IsnaFunction","IsnontextFunction","IstextFunction","IsrefFunction","Sheet","NFunction","ensureNumber","NaFunction","IsdateFunction","EMAIL_REGEX","IsemailFunction","SheetsFunction","sheetIdsByName","count","informationFunctions","allFunctions","mathFunctions","statisticsFunctions","textFunctions","lookupFunctions","timeFunctions","createSpellbook","additionalFunctions","rest","createBook"],"mappings":"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"}
|