@borgar/fx 4.8.0 → 4.10.0

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.
@@ -199,3 +199,16 @@ test('translate works with xlsx mode references', t => {
199
199
  ]);
200
200
  t.end();
201
201
  });
202
+
203
+ test('translate works with trimmed ranges', t => {
204
+ const testExpr = (expr, anchor, expected) => {
205
+ const opts = { mergeRefs: true, xlsx: true, r1c1: true };
206
+ t.deepEqual(translateToA1(tokenize(expr, opts), anchor, opts), expected, expr);
207
+ };
208
+ testExpr('Sheet!R[-1]C[-1].:.RC*Sheet2!C[50].:.C[700]', 'B2', [
209
+ { type: 'range', value: 'Sheet!A1.:.B2' },
210
+ { type: 'operator', value: '*' },
211
+ { type: 'range_beam', value: 'Sheet2!AZ.:.ZZ' }
212
+ ]);
213
+ t.end();
214
+ });
@@ -182,3 +182,16 @@ test('translate works with xlsx mode', t => {
182
182
  ]);
183
183
  t.end();
184
184
  });
185
+
186
+ test('translate works with trimmed ranges', t => {
187
+ const testExpr = (expr, anchor, expected) => {
188
+ const opts = { mergeRefs: true, xlsx: true, r1c1: false };
189
+ t.deepEqual(translateToR1C1(tokenize(expr, opts), anchor, opts), expected, expr);
190
+ };
191
+ testExpr('Sheet!A1.:.B2*Sheet2!AZ.:.ZZ', 'B2', [
192
+ { type: 'range', value: 'Sheet!R[-1]C[-1].:.RC' },
193
+ { type: 'operator', value: '*' },
194
+ { type: 'range_beam', value: 'Sheet2!C[50].:.C[700]' }
195
+ ]);
196
+ t.end();
197
+ });
package/lib/translate.js CHANGED
@@ -61,6 +61,9 @@ export function translateToR1C1 (formula, anchorCell, { xlsx = false, allowTerna
61
61
  range.$r1 = d.$bottom;
62
62
  range.$c0 = d.$left;
63
63
  range.$c1 = d.$right;
64
+ if (d.trim) {
65
+ range.trim = d.trim;
66
+ }
64
67
  ref.range = range;
65
68
  token.value = stringifyR1C1Ref(ref, refOpts);
66
69
  // if token includes offsets, those offsets are now likely wrong!
@@ -204,6 +207,9 @@ export function translateToA1 (formula, anchorCell, options = defaultOptions) {
204
207
  range.right = c1;
205
208
  range.$right = d.$c1;
206
209
  }
210
+ if (d.trim) {
211
+ range.trim = d.trim;
212
+ }
207
213
  if (isNaN(r0) || isNaN(r1) || isNaN(c0) || isNaN(c1)) {
208
214
  // convert to ref error
209
215
  token.type = ERROR;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@borgar/fx",
3
- "version": "4.8.0",
3
+ "version": "4.10.0",
4
4
  "description": "Utilities for working with Excel formulas",
5
5
  "main": "dist/fx.js",
6
6
  "types": "dist/fx.d.ts",