@rowsncolumns/ui 15.0.38 → 15.0.40
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/dist/cjs/editor-pm/helpers.d.ts +15 -0
- package/dist/cjs/editor-pm/helpers.d.ts.map +1 -1
- package/dist/cjs/editor-pm/helpers.js +24 -0
- package/dist/cjs/editor-pm/use-editor-change-pm.d.ts.map +1 -1
- package/dist/cjs/editor-pm/use-editor-change-pm.js +5 -1
- package/dist/esm/editor-pm/helpers.d.ts +15 -0
- package/dist/esm/editor-pm/helpers.d.ts.map +1 -1
- package/dist/esm/editor-pm/helpers.js +21 -0
- package/dist/esm/editor-pm/use-editor-change-pm.d.ts.map +1 -1
- package/dist/esm/editor-pm/use-editor-change-pm.js +5 -1
- package/package.json +13 -13
|
@@ -101,6 +101,14 @@ export declare const enableCellSelection: (position: number, cursorPos: number,
|
|
|
101
101
|
* @returns
|
|
102
102
|
*/
|
|
103
103
|
export declare const getSurroundingTokens: (position: number, tokens: ParsedToken[]) => (ParsedToken | undefined)[];
|
|
104
|
+
/**
|
|
105
|
+
* Get the token immediately before the caret: the active token when the
|
|
106
|
+
* caret is inside it or at its trailing edge, otherwise the previous token.
|
|
107
|
+
* @param position
|
|
108
|
+
* @param tokens
|
|
109
|
+
* @returns
|
|
110
|
+
*/
|
|
111
|
+
export declare const getTokenBeforeCaret: (position: number, tokens: ParsedToken[]) => ParsedToken | undefined;
|
|
104
112
|
/**
|
|
105
113
|
* Get the previous token from the current position
|
|
106
114
|
* @param position
|
|
@@ -125,6 +133,13 @@ export declare const isTableColumnToken: (token: ParsedToken) => boolean;
|
|
|
125
133
|
export declare const isTableNameToken: (token: ParsedToken) => boolean;
|
|
126
134
|
export declare const isNamedRangeToken: (token: ParsedToken) => boolean;
|
|
127
135
|
export declare const isStringToken: (token: ParsedToken) => boolean;
|
|
136
|
+
/**
|
|
137
|
+
* Is the token a character the formula grammar has no token for (e.g. a bare
|
|
138
|
+
* `\`). Excel does not enter point mode after such a character.
|
|
139
|
+
* @param token
|
|
140
|
+
* @returns
|
|
141
|
+
*/
|
|
142
|
+
export declare const isUnknownToken: (token?: ParsedToken) => boolean;
|
|
128
143
|
export declare const isNumberToken: (token: ParsedToken) => boolean;
|
|
129
144
|
/**
|
|
130
145
|
* Check if token is a cell reference with property (e.g., A1.title or A1.)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../editor-pm/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAG5D,OAAO,EAAQ,IAAI,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAW,aAAa,EAAE,MAAM,SAAS,CAAC;AAOjD,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAAI,KAAK,MAAM,EAAE,QAAQ,GAAG,QA8BzD,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,KAAK,GAAG,QAQxC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,GAAI,KAAK,IAAI,WAqB7C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,GAChC,MAAM,IAAI,KACT,aAAa,EAAE,GAAG,SAAS,GAAG,IAuHhC,CAAC;AAEF;;;;;;GAMG;AACH;;;;;;;GAOG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,GAAG,SAAS,CAAC;AAEtE,eAAO,MAAM,mBAAmB,GAC9B,MAAM,MAAM,EACZ,YAAY,aAAa,EAAE,GAAG,SAAS,GAAG,IAAI,EAC9C,QAAQ,MAAM,EACd,eAAe,gBAAgB,KAC9B,IAsKF,CAAC;AAEF,iEAAiE;AACjE,KAAK,aAAa,GAAG,OAAO,CAC1B,OAAO,CAAC,aAAa,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,QAAQ,CAAC,CACvD,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,0BAA0B,GACrC,OAAO,WAAW,EAClB,UAAU,CAAC,CAAC,EAAE,EAAE,WAAW,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG,SAAS,EACvD,QAAQ,aAAa,EACrB,QAAQ,MAAM,EACd,eAAe,gBAAgB,KAC9B,OA2EF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,GAAI,OAAO,WAAW,KAAG,MAAM,GAAG,IAkBlE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAI,OAAO,WAAW,uBAqBnD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,UAAU,MAAM,EAAE,QAAQ,WAAW,EAAE,4BAErE,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,UAAU,MAAM,EAChB,WAAW,MAAM,EACjB,QAAQ,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../editor-pm/helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -503,6 +503,9 @@ export var enableCellSelection = function (position, cursorPos, tokens) {
|
|
|
503
503
|
return false;
|
|
504
504
|
}
|
|
505
505
|
var _q = __read(getSurroundingTokens(position, tokens), 3), prev = _q[0], active = _q[1], next = _q[2];
|
|
506
|
+
if (isUnknownToken(getTokenBeforeCaret(position, tokens))) {
|
|
507
|
+
return false;
|
|
508
|
+
}
|
|
506
509
|
var isStringLike = function (token) {
|
|
507
510
|
return !!token &&
|
|
508
511
|
(token.tokenType.name === tokenVocabulary.String.name ||
|
|
@@ -603,6 +606,18 @@ export var getSurroundingTokens = function (position, tokens) {
|
|
|
603
606
|
getNextToken(position, tokens, activeToken),
|
|
604
607
|
];
|
|
605
608
|
};
|
|
609
|
+
/**
|
|
610
|
+
* Get the token immediately before the caret: the active token when the
|
|
611
|
+
* caret is inside it or at its trailing edge, otherwise the previous token.
|
|
612
|
+
* @param position
|
|
613
|
+
* @param tokens
|
|
614
|
+
* @returns
|
|
615
|
+
*/
|
|
616
|
+
export var getTokenBeforeCaret = function (position, tokens) {
|
|
617
|
+
var _a;
|
|
618
|
+
var _b = __read(getSurroundingTokens(position, tokens), 2), prev = _b[0], active = _b[1];
|
|
619
|
+
return active && position >= ((_a = active.startColumn) !== null && _a !== void 0 ? _a : Infinity) ? active : prev;
|
|
620
|
+
};
|
|
606
621
|
/**
|
|
607
622
|
* Get the previous token from the current position
|
|
608
623
|
* @param position
|
|
@@ -673,6 +688,15 @@ export var isNamedRangeToken = function (token) {
|
|
|
673
688
|
export var isStringToken = function (token) {
|
|
674
689
|
return token.tokenType.name === tokenVocabulary.String.name;
|
|
675
690
|
};
|
|
691
|
+
/**
|
|
692
|
+
* Is the token a character the formula grammar has no token for (e.g. a bare
|
|
693
|
+
* `\`). Excel does not enter point mode after such a character.
|
|
694
|
+
* @param token
|
|
695
|
+
* @returns
|
|
696
|
+
*/
|
|
697
|
+
export var isUnknownToken = function (token) {
|
|
698
|
+
return (token === null || token === void 0 ? void 0 : token.tokenType.name) === tokenVocabulary.UnknownChar.name;
|
|
699
|
+
};
|
|
676
700
|
export var isNumberToken = function (token) {
|
|
677
701
|
return token.tokenType.name === tokenVocabulary.Number.name;
|
|
678
702
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-editor-change-pm.d.ts","sourceRoot":"","sources":["../../../editor-pm/use-editor-change-pm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAG7E,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"use-editor-change-pm.d.ts","sourceRoot":"","sources":["../../../editor-pm/use-editor-change-pm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAG7E,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAyBnE,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAGxC,KAAK,wBAAwB,GAAG;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,aAAa,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;IACvE,OAAO,IAAI,UAAU,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IACnD,mBAAmB,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,GAAG,IAAI,CAAC;IAC1D,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,EAAE,CAAC;IACxC,oBAAoB,EAAE,sBAAsB,CAAC,sBAAsB,CAAC,CAAC;IACrE,uBAAuB,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,GAAG,IAAI,CAAC;IAC9D,kBAAkB,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,GAAG,IAAI,CAAC;IACzD,qBAAqB,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,GAAG,IAAI,CAAC;IAC5D,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5C,oBAAoB,CAAC,YAAY,EAAE,OAAO,GAAG,IAAI,CAAC;IAClD,yBAAyB,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,GAAG,IAAI,CAAC;IAChE,0BAA0B,CAAC,CACzB,MAAM,EAAE,MAAM,EAAE,EAChB,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,GACvC,IAAI,CAAC;IACR,qBAAqB,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,GAAG,IAAI,CAAC;CAC7D,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,mUAiBjC,wBAAwB,gBAWV,WAAW,SAoN3B,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { tokenVocabulary } from "@rowsncolumns/calculator";
|
|
2
2
|
import { isAFormula } from "@rowsncolumns/utils";
|
|
3
3
|
import { useCallback, useEffect, useRef } from "react";
|
|
4
|
-
import { enableCellSelection, extractTextFormatRuns, getActiveFunctionToken, getActiveSelectionIndex, getActiveSuggestionToken, getActiveTableToken, getActiveToken, getCursorPosition, getFunctionParameters, getParameterIndex, getTokenizationContent, getPreviousToken, hasPropertyReference, isCellToken, isNamedRangeToken, isTableColumnToken, isTableNameToken, resolveCellPropertyToken, serializeEditorValue, } from "./helpers";
|
|
4
|
+
import { enableCellSelection, extractTextFormatRuns, getActiveFunctionToken, getActiveSelectionIndex, getActiveSuggestionToken, getActiveTableToken, getActiveToken, getCursorPosition, getFunctionParameters, getParameterIndex, getTokenizationContent, getPreviousToken, hasPropertyReference, isCellToken, isNamedRangeToken, isTableColumnToken, isTableNameToken, resolveCellPropertyToken, serializeEditorValue, getTokenBeforeCaret, isUnknownToken, } from "./helpers";
|
|
5
5
|
import { useCallbackRef } from "@rowsncolumns/grid";
|
|
6
6
|
import { CELL_SUGGESTION_PREFIX } from "../editor/constants";
|
|
7
7
|
export var useEditorOnChangePM = function (_a) {
|
|
@@ -74,6 +74,10 @@ export var useEditorOnChangePM = function (_a) {
|
|
|
74
74
|
if (isSpaceTerminator) {
|
|
75
75
|
lastSeenCursorTokenRef.current = undefined;
|
|
76
76
|
}
|
|
77
|
+
var isUnknownTerminator = isUnknownToken(getTokenBeforeCaret(offsetInLine, tokens));
|
|
78
|
+
if (isUnknownTerminator) {
|
|
79
|
+
lastSeenCursorTokenRef.current = undefined;
|
|
80
|
+
}
|
|
77
81
|
var lastSeenCursorPos = lastSeenCursorTokenRef.current;
|
|
78
82
|
var isLiteralToken = ((_c = activeToken === null || activeToken === void 0 ? void 0 : activeToken.tokenType) === null || _c === void 0 ? void 0 : _c.name) === tokenVocabulary.String.name ||
|
|
79
83
|
((_d = activeToken === null || activeToken === void 0 ? void 0 : activeToken.tokenType) === null || _d === void 0 ? void 0 : _d.name) ===
|
|
@@ -101,6 +101,14 @@ export declare const enableCellSelection: (position: number, cursorPos: number,
|
|
|
101
101
|
* @returns
|
|
102
102
|
*/
|
|
103
103
|
export declare const getSurroundingTokens: (position: number, tokens: ParsedToken[]) => (ParsedToken | undefined)[];
|
|
104
|
+
/**
|
|
105
|
+
* Get the token immediately before the caret: the active token when the
|
|
106
|
+
* caret is inside it or at its trailing edge, otherwise the previous token.
|
|
107
|
+
* @param position
|
|
108
|
+
* @param tokens
|
|
109
|
+
* @returns
|
|
110
|
+
*/
|
|
111
|
+
export declare const getTokenBeforeCaret: (position: number, tokens: ParsedToken[]) => ParsedToken | undefined;
|
|
104
112
|
/**
|
|
105
113
|
* Get the previous token from the current position
|
|
106
114
|
* @param position
|
|
@@ -125,6 +133,13 @@ export declare const isTableColumnToken: (token: ParsedToken) => boolean;
|
|
|
125
133
|
export declare const isTableNameToken: (token: ParsedToken) => boolean;
|
|
126
134
|
export declare const isNamedRangeToken: (token: ParsedToken) => boolean;
|
|
127
135
|
export declare const isStringToken: (token: ParsedToken) => boolean;
|
|
136
|
+
/**
|
|
137
|
+
* Is the token a character the formula grammar has no token for (e.g. a bare
|
|
138
|
+
* `\`). Excel does not enter point mode after such a character.
|
|
139
|
+
* @param token
|
|
140
|
+
* @returns
|
|
141
|
+
*/
|
|
142
|
+
export declare const isUnknownToken: (token?: ParsedToken) => boolean;
|
|
128
143
|
export declare const isNumberToken: (token: ParsedToken) => boolean;
|
|
129
144
|
/**
|
|
130
145
|
* Check if token is a cell reference with property (e.g., A1.title or A1.)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../editor-pm/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAG5D,OAAO,EAAQ,IAAI,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAW,aAAa,EAAE,MAAM,SAAS,CAAC;AAOjD,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAAI,KAAK,MAAM,EAAE,QAAQ,GAAG,QA8BzD,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,KAAK,GAAG,QAQxC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,GAAI,KAAK,IAAI,WAqB7C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,GAChC,MAAM,IAAI,KACT,aAAa,EAAE,GAAG,SAAS,GAAG,IAuHhC,CAAC;AAEF;;;;;;GAMG;AACH;;;;;;;GAOG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,GAAG,SAAS,CAAC;AAEtE,eAAO,MAAM,mBAAmB,GAC9B,MAAM,MAAM,EACZ,YAAY,aAAa,EAAE,GAAG,SAAS,GAAG,IAAI,EAC9C,QAAQ,MAAM,EACd,eAAe,gBAAgB,KAC9B,IAsKF,CAAC;AAEF,iEAAiE;AACjE,KAAK,aAAa,GAAG,OAAO,CAC1B,OAAO,CAAC,aAAa,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,QAAQ,CAAC,CACvD,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,0BAA0B,GACrC,OAAO,WAAW,EAClB,UAAU,CAAC,CAAC,EAAE,EAAE,WAAW,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG,SAAS,EACvD,QAAQ,aAAa,EACrB,QAAQ,MAAM,EACd,eAAe,gBAAgB,KAC9B,OA2EF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,GAAI,OAAO,WAAW,KAAG,MAAM,GAAG,IAkBlE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAI,OAAO,WAAW,uBAqBnD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,UAAU,MAAM,EAAE,QAAQ,WAAW,EAAE,4BAErE,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,UAAU,MAAM,EAChB,WAAW,MAAM,EACjB,QAAQ,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../editor-pm/helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -467,6 +467,9 @@ export const enableCellSelection = (position, cursorPos, tokens) => {
|
|
|
467
467
|
return false;
|
|
468
468
|
}
|
|
469
469
|
const [prev, active, next] = getSurroundingTokens(position, tokens);
|
|
470
|
+
if (isUnknownToken(getTokenBeforeCaret(position, tokens))) {
|
|
471
|
+
return false;
|
|
472
|
+
}
|
|
470
473
|
const isStringLike = (token) => !!token &&
|
|
471
474
|
(token.tokenType.name === tokenVocabulary.String.name ||
|
|
472
475
|
token.tokenType.name === tokenVocabulary.UnterminatedStringStart.name ||
|
|
@@ -562,6 +565,17 @@ export const getSurroundingTokens = (position, tokens) => {
|
|
|
562
565
|
getNextToken(position, tokens, activeToken),
|
|
563
566
|
];
|
|
564
567
|
};
|
|
568
|
+
/**
|
|
569
|
+
* Get the token immediately before the caret: the active token when the
|
|
570
|
+
* caret is inside it or at its trailing edge, otherwise the previous token.
|
|
571
|
+
* @param position
|
|
572
|
+
* @param tokens
|
|
573
|
+
* @returns
|
|
574
|
+
*/
|
|
575
|
+
export const getTokenBeforeCaret = (position, tokens) => {
|
|
576
|
+
const [prev, active] = getSurroundingTokens(position, tokens);
|
|
577
|
+
return active && position >= (active.startColumn ?? Infinity) ? active : prev;
|
|
578
|
+
};
|
|
565
579
|
/**
|
|
566
580
|
* Get the previous token from the current position
|
|
567
581
|
* @param position
|
|
@@ -611,6 +625,13 @@ export const isTableColumnToken = (token) => token.tokenType.name === tokenVocab
|
|
|
611
625
|
export const isTableNameToken = (token) => token.tokenType.name === tokenVocabulary.TableName.name;
|
|
612
626
|
export const isNamedRangeToken = (token) => token.tokenType.name === tokenVocabulary.Name.name;
|
|
613
627
|
export const isStringToken = (token) => token.tokenType.name === tokenVocabulary.String.name;
|
|
628
|
+
/**
|
|
629
|
+
* Is the token a character the formula grammar has no token for (e.g. a bare
|
|
630
|
+
* `\`). Excel does not enter point mode after such a character.
|
|
631
|
+
* @param token
|
|
632
|
+
* @returns
|
|
633
|
+
*/
|
|
634
|
+
export const isUnknownToken = (token) => token?.tokenType.name === tokenVocabulary.UnknownChar.name;
|
|
614
635
|
export const isNumberToken = (token) => token.tokenType.name === tokenVocabulary.Number.name;
|
|
615
636
|
const isReferenceToken = (token) => {
|
|
616
637
|
if (!token)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-editor-change-pm.d.ts","sourceRoot":"","sources":["../../../editor-pm/use-editor-change-pm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAG7E,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"use-editor-change-pm.d.ts","sourceRoot":"","sources":["../../../editor-pm/use-editor-change-pm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAG7E,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAyBnE,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAGxC,KAAK,wBAAwB,GAAG;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,aAAa,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;IACvE,OAAO,IAAI,UAAU,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IACnD,mBAAmB,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,GAAG,IAAI,CAAC;IAC1D,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,EAAE,CAAC;IACxC,oBAAoB,EAAE,sBAAsB,CAAC,sBAAsB,CAAC,CAAC;IACrE,uBAAuB,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,GAAG,IAAI,CAAC;IAC9D,kBAAkB,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,GAAG,IAAI,CAAC;IACzD,qBAAqB,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,GAAG,IAAI,CAAC;IAC5D,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5C,oBAAoB,CAAC,YAAY,EAAE,OAAO,GAAG,IAAI,CAAC;IAClD,yBAAyB,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,GAAG,IAAI,CAAC;IAChE,0BAA0B,CAAC,CACzB,MAAM,EAAE,MAAM,EAAE,EAChB,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,GACvC,IAAI,CAAC;IACR,qBAAqB,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,GAAG,IAAI,CAAC;CAC7D,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,mUAiBjC,wBAAwB,gBAWV,WAAW,SAoN3B,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { tokenVocabulary } from "@rowsncolumns/calculator";
|
|
2
2
|
import { isAFormula } from "@rowsncolumns/utils";
|
|
3
3
|
import { useCallback, useEffect, useRef } from "react";
|
|
4
|
-
import { enableCellSelection, extractTextFormatRuns, getActiveFunctionToken, getActiveSelectionIndex, getActiveSuggestionToken, getActiveTableToken, getActiveToken, getCursorPosition, getFunctionParameters, getParameterIndex, getTokenizationContent, getPreviousToken, hasPropertyReference, isCellToken, isNamedRangeToken, isTableColumnToken, isTableNameToken, resolveCellPropertyToken, serializeEditorValue, } from "./helpers";
|
|
4
|
+
import { enableCellSelection, extractTextFormatRuns, getActiveFunctionToken, getActiveSelectionIndex, getActiveSuggestionToken, getActiveTableToken, getActiveToken, getCursorPosition, getFunctionParameters, getParameterIndex, getTokenizationContent, getPreviousToken, hasPropertyReference, isCellToken, isNamedRangeToken, isTableColumnToken, isTableNameToken, resolveCellPropertyToken, serializeEditorValue, getTokenBeforeCaret, isUnknownToken, } from "./helpers";
|
|
5
5
|
import { useCallbackRef } from "@rowsncolumns/grid";
|
|
6
6
|
import { CELL_SUGGESTION_PREFIX } from "../editor/constants";
|
|
7
7
|
export const useEditorOnChangePM = ({ onChange, getView, isActive, enableContinuousSelection, tokenizer, onChangeCursor, onChangeActiveToken, onFormulaStateChange, onSuggestionTokenChange, onTableTokenChange, onChangeFunctionToken, onChangeParameterIndex, onCellPropertyTokenChange, onChangeFunctionParameters, onChangeIsEdgeOfCell, onChangePreviousToken, }) => {
|
|
@@ -72,6 +72,10 @@ export const useEditorOnChangePM = ({ onChange, getView, isActive, enableContinu
|
|
|
72
72
|
if (isSpaceTerminator) {
|
|
73
73
|
lastSeenCursorTokenRef.current = undefined;
|
|
74
74
|
}
|
|
75
|
+
const isUnknownTerminator = isUnknownToken(getTokenBeforeCaret(offsetInLine, tokens));
|
|
76
|
+
if (isUnknownTerminator) {
|
|
77
|
+
lastSeenCursorTokenRef.current = undefined;
|
|
78
|
+
}
|
|
75
79
|
const lastSeenCursorPos = lastSeenCursorTokenRef.current;
|
|
76
80
|
const isLiteralToken = activeToken?.tokenType?.name === tokenVocabulary.String.name ||
|
|
77
81
|
activeToken?.tokenType?.name ===
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rowsncolumns/ui",
|
|
3
|
-
"version": "15.0.
|
|
3
|
+
"version": "15.0.40",
|
|
4
4
|
"author": "Vinay M",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
6
6
|
"main": "./dist/cjs/index.js",
|
|
@@ -55,23 +55,23 @@
|
|
|
55
55
|
"tailwind-merge": "^3.3.0"
|
|
56
56
|
},
|
|
57
57
|
"devDependencies": {
|
|
58
|
-
"@rowsncolumns/calculator": ">=7.2.
|
|
59
|
-
"@rowsncolumns/common-types": ">=5.2.
|
|
60
|
-
"@rowsncolumns/fast-formula-parser": ">=6.2.
|
|
61
|
-
"@rowsncolumns/functions": ">=14.0.
|
|
62
|
-
"@rowsncolumns/icons": ">=7.2.
|
|
63
|
-
"@rowsncolumns/utils": ">=9.2.
|
|
58
|
+
"@rowsncolumns/calculator": ">=7.2.30",
|
|
59
|
+
"@rowsncolumns/common-types": ">=5.2.30",
|
|
60
|
+
"@rowsncolumns/fast-formula-parser": ">=6.2.34",
|
|
61
|
+
"@rowsncolumns/functions": ">=14.0.30",
|
|
62
|
+
"@rowsncolumns/icons": ">=7.2.31",
|
|
63
|
+
"@rowsncolumns/utils": ">=9.2.37",
|
|
64
64
|
"@types/lodash": "^4.17.17",
|
|
65
65
|
"react": "^19.1.0",
|
|
66
66
|
"react-dom": "^19.1.0"
|
|
67
67
|
},
|
|
68
68
|
"peerDependencies": {
|
|
69
|
-
"@rowsncolumns/calculator": ">=7.2.
|
|
70
|
-
"@rowsncolumns/common-types": ">=5.2.
|
|
71
|
-
"@rowsncolumns/fast-formula-parser": ">=6.2.
|
|
72
|
-
"@rowsncolumns/functions": ">=14.0.
|
|
73
|
-
"@rowsncolumns/icons": ">=7.2.
|
|
74
|
-
"@rowsncolumns/utils": ">=9.2.
|
|
69
|
+
"@rowsncolumns/calculator": ">=7.2.30",
|
|
70
|
+
"@rowsncolumns/common-types": ">=5.2.30",
|
|
71
|
+
"@rowsncolumns/fast-formula-parser": ">=6.2.34",
|
|
72
|
+
"@rowsncolumns/functions": ">=14.0.30",
|
|
73
|
+
"@rowsncolumns/icons": ">=7.2.31",
|
|
74
|
+
"@rowsncolumns/utils": ">=9.2.37",
|
|
75
75
|
"react": ">=18.0.0",
|
|
76
76
|
"react-dom": ">=18.0.0"
|
|
77
77
|
}
|