@servicetitan/dte-pdf-editor 1.27.0 → 1.29.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.
@@ -1 +1 @@
1
- {"version":3,"file":"formula-modal.d.ts","sourceRoot":"","sources":["../../../src/components/field-config-panel/formula-modal.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,EAAE,EAAkC,MAAM,OAAO,CAAC;AAG3D,OAAO,EACH,qBAAqB,EACrB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACpB,MAAM,uBAAuB,CAAC;AAyC/B,MAAM,WAAW,iBAAiB;IAC9B,cAAc,EAAE,iBAAiB,GAAG,SAAS,CAAC;IAC9C,aAAa,CAAC,EAAE,qBAAqB,CAAC;IACtC,eAAe,EAAE,mBAAmB,EAAE,CAAC;IACvC,0BAA0B,CAAC,EAAE,eAAe,EAAE,CAAC;IAC/C,OAAO,IAAI,IAAI,CAAC;IAChB,MAAM,CAAC,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,qBAAqB,GAAG,IAAI,CAAC;CAC3E;AAED,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC,iBAAiB,CA6J9C,CAAC"}
1
+ {"version":3,"file":"formula-modal.d.ts","sourceRoot":"","sources":["../../../src/components/field-config-panel/formula-modal.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,EAAE,EAAkC,MAAM,OAAO,CAAC;AAG3D,OAAO,EACH,qBAAqB,EACrB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACpB,MAAM,uBAAuB,CAAC;AAyC/B,MAAM,WAAW,iBAAiB;IAC9B,cAAc,EAAE,iBAAiB,GAAG,SAAS,CAAC;IAC9C,aAAa,CAAC,EAAE,qBAAqB,CAAC;IACtC,eAAe,EAAE,mBAAmB,EAAE,CAAC;IACvC,0BAA0B,CAAC,EAAE,eAAe,EAAE,CAAC;IAC/C,OAAO,IAAI,IAAI,CAAC;IAChB,MAAM,CAAC,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,qBAAqB,GAAG,IAAI,CAAC;CAC3E;AAED,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC,iBAAiB,CA0J9C,CAAC"}
@@ -84,19 +84,16 @@ export const FormulaModal = ({ dataModelGroups, fillableFieldsFromDocument = [],
84
84
  }
85
85
  return errors;
86
86
  }, [formulaEditor.draftExpression, validPaths]);
87
- const validationError = (_b = (_a = unknownFieldErrors[0]) !== null && _a !== void 0 ? _a : formulaValidation.errors[0]) !== null && _b !== void 0 ? _b : '';
88
- const isInvalid = !formulaValidation.valid || unknownFieldErrors.length > 0;
89
- const canSave = formulaValidation.valid && unknownFieldErrors.length === 0 && parsedTokens.length > 0;
90
87
  const handleClose = useCallback(() => {
91
88
  onClose();
92
89
  }, [onClose]);
93
90
  const handleSave = useCallback(() => {
94
- if (!canSave) {
95
- return;
96
- }
97
91
  onSave({ tokens: parsedTokens }, format);
98
92
  onClose();
99
- }, [canSave, format, onClose, onSave, parsedTokens]);
93
+ }, [format, onClose, onSave, parsedTokens]);
94
+ const validationError = (_b = (_a = unknownFieldErrors[0]) !== null && _a !== void 0 ? _a : formulaValidation.errors[0]) !== null && _b !== void 0 ? _b : '';
95
+ const isInvalid = !formulaValidation.valid || unknownFieldErrors.length > 0;
96
+ const canSave = formulaValidation.valid && unknownFieldErrors.length === 0 && parsedTokens.length > 0;
100
97
  return (_jsxs(Dialog, { open: true, onClose: handleClose, size: "xlarge", children: [_jsx(Dialog.Header, { children: "Formula Builder" }), _jsx(Divider, {}), _jsx(Dialog.Content, { children: _jsxs(Flex, { flex: 1, alignItems: "stretch", gap: 2, style: {
101
98
  height: MODAL_CONTENT_MAX_HEIGHT,
102
99
  overflowY: 'auto',
@@ -1 +1 @@
1
- {"version":3,"file":"formula-modal.js","sourceRoot":"","sources":["../../../src/components/field-config-panel/formula-modal.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"formula-modal.js","sourceRoot":"","sources":["../../../src/components/field-config-panel/formula-modal.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useFormulaEditor.d.ts","sourceRoot":"","sources":["../../src/hooks/useFormulaEditor.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,aAAa,IAAI,kBAAkB,EAMtC,MAAM,OAAO,CAAC;AAUf,eAAO,MAAM,gBAAgB,GAAI,QAAQ;IACrC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC;;;;;;;;;uBAoLyC,kBAAkB,CAAC,cAAc,CAAC;wBAiE7D,MAAM;wBA9IN,MAAM;yBAoBR,MAAM;qCAiBE,MAAM;;CAiL1B,CAAC"}
1
+ {"version":3,"file":"useFormulaEditor.d.ts","sourceRoot":"","sources":["../../src/hooks/useFormulaEditor.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,aAAa,IAAI,kBAAkB,EAMtC,MAAM,OAAO,CAAC;AAWf,eAAO,MAAM,gBAAgB,GAAI,QAAQ;IACrC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC;;;;;;;;;uBAqLW,kBAAkB,CAAC,cAAc,CAAC;wBAiF/B,MAAM;wBA/JN,MAAM;yBAoBR,MAAM;qCAiBE,MAAM;;CAkM1B,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { useCallback, useEffect, useMemo, useRef, useState, } from 'react';
2
- import { getCaretExpressionIndex, placeCaretAtEnd, readExpressionFromEditor, renderFormulaHtml, setCaretByExpressionIndex, tokenizeExpression, } from '../utils';
2
+ import { backspaceBetweenTwoFields, getCaretExpressionIndex, placeCaretAtEnd, readExpressionFromEditor, renderFormulaHtml, setCaretByExpressionIndex, tokenizeExpression, } from '../utils';
3
3
  export const useFormulaEditor = (params) => {
4
4
  const { currentExpression, opened, pathToLabel } = params;
5
5
  const [draftExpression, setDraftExpression] = useState(currentExpression);
@@ -191,6 +191,20 @@ export const useFormulaEditor = (params) => {
191
191
  return;
192
192
  }
193
193
  }
194
+ if (e.key === 'Backspace') {
195
+ const editor = editorRef.current;
196
+ if (editor) {
197
+ const currentExpression = readExpressionFromEditor(editor);
198
+ const caretIndex = getCaretExpressionIndex(editor);
199
+ const result = backspaceBetweenTwoFields(currentExpression, caretIndex);
200
+ if (result) {
201
+ e.preventDefault();
202
+ updateSourceRef.current = 'state';
203
+ pushHistory(result.newExpression, result.newCaret);
204
+ return;
205
+ }
206
+ }
207
+ }
194
208
  const allowed = new Set([
195
209
  '+',
196
210
  '-',
@@ -223,7 +237,7 @@ export const useFormulaEditor = (params) => {
223
237
  if (!allowed.has(e.key)) {
224
238
  e.preventDefault();
225
239
  }
226
- }, []);
240
+ }, [pushHistory]);
227
241
  const handlePaste = useCallback((text) => {
228
242
  if (!(text === null || text === void 0 ? void 0 : text.trim())) {
229
243
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"useFormulaEditor.js","sourceRoot":"","sources":["../../src/hooks/useFormulaEditor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useFormulaEditor.js","sourceRoot":"","sources":["../../src/hooks/useFormulaEditor.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { FormulaToken, StructuredFormula } from '../../interface/types';
2
2
  /**
3
3
  * Convert StructuredFormula tokens to an editable expression string.
4
- * Uses field path as the identifier so parsing is unambiguous.
4
+ * Uses a field path as the identifier, so parsing is unambiguous.
5
5
  */
6
6
  export declare function tokensToExpression(formula: StructuredFormula | undefined): string;
7
7
  /** Token from tokenizing an expression string (before resolving to FormulaToken) */
@@ -15,4 +15,16 @@ export declare function tokenizeExpression(expression: string): ExpressionPart[]
15
15
  * Invalid or unknown identifiers are skipped (or could be left as placeholder); only known paths become field tokens.
16
16
  */
17
17
  export declare function parseExpression(expression: string, validPaths: Set<string>, pathToLabel: Map<string, string>): FormulaToken[];
18
+ export interface BackspaceBetweenFieldsResult {
19
+ newExpression: string;
20
+ newCaret: number;
21
+ }
22
+ /**
23
+ * If Backspace at caret deletes a space (or whitespace) that is between two field tokens,
24
+ * returns the new expression and caret:
25
+ * - If there is more than one space between the two fields: delete only one space.
26
+ * - If there is exactly one space: remove the left field and the space.
27
+ * Otherwise, returns null.
28
+ */
29
+ export declare function backspaceBetweenTwoFields(expression: string, caretIndex: number): BackspaceBetweenFieldsResult | null;
18
30
  //# sourceMappingURL=expression.utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"expression.utils.d.ts","sourceRoot":"","sources":["../../../src/utils/formula/expression.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAExE;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,GAAG,SAAS,GAAG,MAAM,CAcjF;AAED,oFAAoF;AACpF,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,GAAG,MAAM,CAAC;IACzD,KAAK,EAAE,MAAM,CAAC;CACjB;AAKD,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,EAAE,CAgBvE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC3B,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,EACvB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACjC,YAAY,EAAE,CAyChB"}
1
+ {"version":3,"file":"expression.utils.d.ts","sourceRoot":"","sources":["../../../src/utils/formula/expression.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAExE;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,GAAG,SAAS,GAAG,MAAM,CAcjF;AAED,oFAAoF;AACpF,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,GAAG,MAAM,CAAC;IACzD,KAAK,EAAE,MAAM,CAAC;CACjB;AAKD,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,EAAE,CAgBvE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC3B,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,EACvB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACjC,YAAY,EAAE,CAyChB;AAED,MAAM,WAAW,4BAA4B;IACzC,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACrC,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACnB,4BAA4B,GAAG,IAAI,CAsCrC"}
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Convert StructuredFormula tokens to an editable expression string.
3
- * Uses field path as the identifier so parsing is unambiguous.
3
+ * Uses a field path as the identifier, so parsing is unambiguous.
4
4
  */
5
5
  export function tokensToExpression(formula) {
6
6
  var _a;
@@ -81,4 +81,49 @@ export function parseExpression(expression, validPaths, pathToLabel) {
81
81
  }
82
82
  return tokens;
83
83
  }
84
+ /**
85
+ * If Backspace at caret deletes a space (or whitespace) that is between two field tokens,
86
+ * returns the new expression and caret:
87
+ * - If there is more than one space between the two fields: delete only one space.
88
+ * - If there is exactly one space: remove the left field and the space.
89
+ * Otherwise, returns null.
90
+ */
91
+ export function backspaceBetweenTwoFields(expression, caretIndex) {
92
+ if (caretIndex <= 0) {
93
+ return null;
94
+ }
95
+ const parts = tokenizeExpression(expression);
96
+ let pos = 0;
97
+ const withPos = [];
98
+ for (const part of parts) {
99
+ withPos.push({ part, start: pos, end: pos + part.value.length });
100
+ pos += part.value.length;
101
+ }
102
+ const deleteIdx = caretIndex - 1;
103
+ const spacePartIdx = withPos.findIndex(p => p.start <= deleteIdx && deleteIdx < p.end);
104
+ if (spacePartIdx < 0) {
105
+ return null;
106
+ }
107
+ const spacePart = withPos[spacePartIdx];
108
+ if (spacePart.part.type !== 'text' || !/^\s+$/.test(spacePart.part.value)) {
109
+ return null;
110
+ }
111
+ const prevIdx = spacePartIdx - 1;
112
+ const nextIdx = spacePartIdx + 1;
113
+ if (prevIdx < 0 || nextIdx >= withPos.length) {
114
+ return null;
115
+ }
116
+ if (withPos[prevIdx].part.type !== 'field' || withPos[nextIdx].part.type !== 'field') {
117
+ return null;
118
+ }
119
+ const spacePartLength = spacePart.part.value.length;
120
+ if (spacePartLength > 1) {
121
+ const newExpression = expression.slice(0, deleteIdx) + expression.slice(deleteIdx + 1);
122
+ const newCaret = deleteIdx;
123
+ return { newExpression, newCaret };
124
+ }
125
+ const newExpression = expression.slice(0, withPos[prevIdx].start) + expression.slice(withPos[nextIdx].start);
126
+ const newCaret = withPos[prevIdx].start;
127
+ return { newExpression, newCaret };
128
+ }
84
129
  //# sourceMappingURL=expression.utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"expression.utils.js","sourceRoot":"","sources":["../../../src/utils/formula/expression.utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"expression.utils.js","sourceRoot":"","sources":["../../../src/utils/formula/expression.utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@servicetitan/dte-pdf-editor",
3
- "version": "1.27.0",
3
+ "version": "1.29.0",
4
4
  "description": "",
5
5
  "main": "./dist/index.js",
6
6
  "typings": "./dist/index.d.ts",
@@ -127,22 +127,19 @@ export const FormulaModal: FC<FormulaModalProps> = ({
127
127
  return errors;
128
128
  }, [formulaEditor.draftExpression, validPaths]);
129
129
 
130
- const validationError = unknownFieldErrors[0] ?? formulaValidation.errors[0] ?? '';
131
- const isInvalid = !formulaValidation.valid || unknownFieldErrors.length > 0;
132
- const canSave =
133
- formulaValidation.valid && unknownFieldErrors.length === 0 && parsedTokens.length > 0;
134
-
135
130
  const handleClose = useCallback(() => {
136
131
  onClose();
137
132
  }, [onClose]);
138
133
 
139
134
  const handleSave = useCallback(() => {
140
- if (!canSave) {
141
- return;
142
- }
143
135
  onSave({ tokens: parsedTokens }, format);
144
136
  onClose();
145
- }, [canSave, format, onClose, onSave, parsedTokens]);
137
+ }, [format, onClose, onSave, parsedTokens]);
138
+
139
+ const validationError = unknownFieldErrors[0] ?? formulaValidation.errors[0] ?? '';
140
+ const isInvalid = !formulaValidation.valid || unknownFieldErrors.length > 0;
141
+ const canSave =
142
+ formulaValidation.valid && unknownFieldErrors.length === 0 && parsedTokens.length > 0;
146
143
 
147
144
  return (
148
145
  <Dialog open onClose={handleClose} size="xlarge">
@@ -7,6 +7,7 @@ import {
7
7
  useState,
8
8
  } from 'react';
9
9
  import {
10
+ backspaceBetweenTwoFields,
10
11
  getCaretExpressionIndex,
11
12
  placeCaretAtEnd,
12
13
  readExpressionFromEditor,
@@ -199,69 +200,86 @@ export const useFormulaEditor = (params: {
199
200
  [draftExpression],
200
201
  );
201
202
 
202
- const handleKeyDown = useCallback((e: ReactKeyboardEvent<HTMLDivElement>) => {
203
- if (e.ctrlKey || e.metaKey) {
204
- const key = e.key.toLowerCase();
205
- if (key === 'z') {
206
- e.preventDefault();
207
- if (historyIndexRef.current > 0) {
208
- const next = historyRef.current[historyIndexRef.current - 1];
209
- updateSourceRef.current = 'state';
210
- pendingCaretRef.current = next.length;
211
- setDraftExpression(next);
212
- setHistoryIndex(historyIndexRef.current - 1);
213
- setIsDirty(true);
203
+ const handleKeyDown = useCallback(
204
+ (e: ReactKeyboardEvent<HTMLDivElement>) => {
205
+ if (e.ctrlKey || e.metaKey) {
206
+ const key = e.key.toLowerCase();
207
+ if (key === 'z') {
208
+ e.preventDefault();
209
+ if (historyIndexRef.current > 0) {
210
+ const next = historyRef.current[historyIndexRef.current - 1];
211
+ updateSourceRef.current = 'state';
212
+ pendingCaretRef.current = next.length;
213
+ setDraftExpression(next);
214
+ setHistoryIndex(historyIndexRef.current - 1);
215
+ setIsDirty(true);
216
+ }
217
+ return;
218
+ }
219
+ if (key === 'y' || (e.shiftKey && key === 'z')) {
220
+ e.preventDefault();
221
+ const cur = historyIndexRef.current;
222
+ const hist = historyRef.current;
223
+ if (cur < hist.length - 1) {
224
+ const next = hist[cur + 1];
225
+ updateSourceRef.current = 'state';
226
+ pendingCaretRef.current = next.length;
227
+ setDraftExpression(next);
228
+ setHistoryIndex(cur + 1);
229
+ setIsDirty(true);
230
+ }
231
+ return;
214
232
  }
215
- return;
216
233
  }
217
- if (key === 'y' || (e.shiftKey && key === 'z')) {
218
- e.preventDefault();
219
- const cur = historyIndexRef.current;
220
- const hist = historyRef.current;
221
- if (cur < hist.length - 1) {
222
- const next = hist[cur + 1];
223
- updateSourceRef.current = 'state';
224
- pendingCaretRef.current = next.length;
225
- setDraftExpression(next);
226
- setHistoryIndex(cur + 1);
227
- setIsDirty(true);
234
+ if (e.key === 'Backspace') {
235
+ const editor = editorRef.current;
236
+ if (editor) {
237
+ const currentExpression = readExpressionFromEditor(editor);
238
+ const caretIndex = getCaretExpressionIndex(editor);
239
+ const result = backspaceBetweenTwoFields(currentExpression, caretIndex);
240
+ if (result) {
241
+ e.preventDefault();
242
+ updateSourceRef.current = 'state';
243
+ pushHistory(result.newExpression, result.newCaret);
244
+ return;
245
+ }
228
246
  }
229
- return;
230
247
  }
231
- }
232
- const allowed = new Set([
233
- '+',
234
- '-',
235
- '*',
236
- '/',
237
- '(',
238
- ')',
239
- '0',
240
- '1',
241
- '2',
242
- '3',
243
- '4',
244
- '5',
245
- '6',
246
- '7',
247
- '8',
248
- '9',
249
- '.',
250
- 'Backspace',
251
- 'Delete',
252
- 'ArrowLeft',
253
- 'ArrowRight',
254
- 'ArrowUp',
255
- 'ArrowDown',
256
- 'Home',
257
- 'End',
258
- 'Tab',
259
- ' ',
260
- ]);
261
- if (!allowed.has(e.key)) {
262
- e.preventDefault();
263
- }
264
- }, []);
248
+ const allowed = new Set([
249
+ '+',
250
+ '-',
251
+ '*',
252
+ '/',
253
+ '(',
254
+ ')',
255
+ '0',
256
+ '1',
257
+ '2',
258
+ '3',
259
+ '4',
260
+ '5',
261
+ '6',
262
+ '7',
263
+ '8',
264
+ '9',
265
+ '.',
266
+ 'Backspace',
267
+ 'Delete',
268
+ 'ArrowLeft',
269
+ 'ArrowRight',
270
+ 'ArrowUp',
271
+ 'ArrowDown',
272
+ 'Home',
273
+ 'End',
274
+ 'Tab',
275
+ ' ',
276
+ ]);
277
+ if (!allowed.has(e.key)) {
278
+ e.preventDefault();
279
+ }
280
+ },
281
+ [pushHistory],
282
+ );
265
283
 
266
284
  const handlePaste = useCallback(
267
285
  (text: string) => {
@@ -2,7 +2,7 @@ import { FormulaToken, StructuredFormula } from '../../interface/types';
2
2
 
3
3
  /**
4
4
  * Convert StructuredFormula tokens to an editable expression string.
5
- * Uses field path as the identifier so parsing is unambiguous.
5
+ * Uses a field path as the identifier, so parsing is unambiguous.
6
6
  */
7
7
  export function tokensToExpression(formula: StructuredFormula | undefined): string {
8
8
  if (!formula?.tokens?.length) {
@@ -97,3 +97,58 @@ export function parseExpression(
97
97
 
98
98
  return tokens;
99
99
  }
100
+
101
+ export interface BackspaceBetweenFieldsResult {
102
+ newExpression: string;
103
+ newCaret: number;
104
+ }
105
+
106
+ /**
107
+ * If Backspace at caret deletes a space (or whitespace) that is between two field tokens,
108
+ * returns the new expression and caret:
109
+ * - If there is more than one space between the two fields: delete only one space.
110
+ * - If there is exactly one space: remove the left field and the space.
111
+ * Otherwise, returns null.
112
+ */
113
+ export function backspaceBetweenTwoFields(
114
+ expression: string,
115
+ caretIndex: number,
116
+ ): BackspaceBetweenFieldsResult | null {
117
+ if (caretIndex <= 0) {
118
+ return null;
119
+ }
120
+ const parts = tokenizeExpression(expression);
121
+ let pos = 0;
122
+ const withPos: { part: ExpressionPart; start: number; end: number }[] = [];
123
+ for (const part of parts) {
124
+ withPos.push({ part, start: pos, end: pos + part.value.length });
125
+ pos += part.value.length;
126
+ }
127
+ const deleteIdx = caretIndex - 1;
128
+ const spacePartIdx = withPos.findIndex(p => p.start <= deleteIdx && deleteIdx < p.end);
129
+ if (spacePartIdx < 0) {
130
+ return null;
131
+ }
132
+ const spacePart = withPos[spacePartIdx];
133
+ if (spacePart.part.type !== 'text' || !/^\s+$/.test(spacePart.part.value)) {
134
+ return null;
135
+ }
136
+ const prevIdx = spacePartIdx - 1;
137
+ const nextIdx = spacePartIdx + 1;
138
+ if (prevIdx < 0 || nextIdx >= withPos.length) {
139
+ return null;
140
+ }
141
+ if (withPos[prevIdx].part.type !== 'field' || withPos[nextIdx].part.type !== 'field') {
142
+ return null;
143
+ }
144
+ const spacePartLength = spacePart.part.value.length;
145
+ if (spacePartLength > 1) {
146
+ const newExpression = expression.slice(0, deleteIdx) + expression.slice(deleteIdx + 1);
147
+ const newCaret = deleteIdx;
148
+ return { newExpression, newCaret };
149
+ }
150
+ const newExpression =
151
+ expression.slice(0, withPos[prevIdx].start) + expression.slice(withPos[nextIdx].start);
152
+ const newCaret = withPos[prevIdx].start;
153
+ return { newExpression, newCaret };
154
+ }