@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.
@@ -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,YAkHtB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,GAC/B,UAAU,MAAM,EAChB,QAAQ,WAAW,EAAE,gCAQtB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAC3B,UAAU,MAAM,EAChB,QAAQ,WAAW,EAAE,KACpB,WAAW,GAAG,SAehB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GACvB,UAAU,MAAM,EAChB,QAAQ,WAAW,EAAE,EACrB,cAAc,WAAW,KACxB,WAAW,GAAG,SAWhB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,WAAW,GAAI,OAAO,WAAW,wBACyB,CAAC;AAExE,eAAO,MAAM,kBAAkB,GAAI,OAAO,WAAW,YACU,CAAC;AAEhE,eAAO,MAAM,gBAAgB,GAAI,OAAO,WAAW,YACM,CAAC;AAE1D,eAAO,MAAM,iBAAiB,GAAI,OAAO,WAAW,YACA,CAAC;AAErD,eAAO,MAAM,aAAa,GAAI,OAAO,WAAW,YACM,CAAC;AAEvD,eAAO,MAAM,aAAa,GAAI,OAAO,WAAW,YACM,CAAC;AAavD;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,GAChC,OAAO,WAAW,GAAG,SAAS,KAC7B,MAsBF,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,OAAO,WAAW,GAAG,SAAS,KAC7B,OAGF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,GACjC,UAAU,WAAW,GAAG,SAAS,EACjC,QAAQ,WAAW,EAAE,4BAsBtB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,GAClC,aAAa,WAAW,GAAG,SAAS,WAOrC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,GACnC,UAAU,MAAM,EAChB,aAAa,WAAW,GAAG,SAAS,EACpC,MAAM,UAAU,4BAwFjB,CAAC;AAEF,eAAO,MAAM,wBAAwB,GACnC,aAAa,WAAW,GAAG,SAAS,EACpC,QAAQ,WAAW,EAAE,4BAyBtB,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,GAC9B,UAAU,MAAM,EAChB,aAAa,WAAW,GAAG,SAAS,EACpC,QAAQ,WAAW,EAAE,EACrB,MAAM,UAAU,EAChB,QAAQ,OAAO,4BA2FhB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAC5B,UAAU,WAAW,GAAG,SAAS,EACjC,eAAe,WAAW,GAAG,SAAS,EACtC,QAAQ,WAAW,EAAE,WAwCtB,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAChC,OAAO,MAAM,EACb,eAAe,WAAW,GAAG,SAAS,KACrC;IAAE,UAAU,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAyFlE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,GACjC,OAAO,WAAW,EAClB,WAAW,MAAM;;;CA6ElB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAAI,MAAM,MAAM,WAE9C,CAAC"}
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,YAsHtB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,GAC/B,UAAU,MAAM,EAChB,QAAQ,WAAW,EAAE,gCAQtB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,GAC9B,UAAU,MAAM,EAChB,QAAQ,WAAW,EAAE,KACpB,WAAW,GAAG,SAGhB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAC3B,UAAU,MAAM,EAChB,QAAQ,WAAW,EAAE,KACpB,WAAW,GAAG,SAehB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GACvB,UAAU,MAAM,EAChB,QAAQ,WAAW,EAAE,EACrB,cAAc,WAAW,KACxB,WAAW,GAAG,SAWhB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,WAAW,GAAI,OAAO,WAAW,wBACyB,CAAC;AAExE,eAAO,MAAM,kBAAkB,GAAI,OAAO,WAAW,YACU,CAAC;AAEhE,eAAO,MAAM,gBAAgB,GAAI,OAAO,WAAW,YACM,CAAC;AAE1D,eAAO,MAAM,iBAAiB,GAAI,OAAO,WAAW,YACA,CAAC;AAErD,eAAO,MAAM,aAAa,GAAI,OAAO,WAAW,YACM,CAAC;AAEvD;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,QAAQ,WAAW,YACU,CAAC;AAE7D,eAAO,MAAM,aAAa,GAAI,OAAO,WAAW,YACM,CAAC;AAavD;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,GAChC,OAAO,WAAW,GAAG,SAAS,KAC7B,MAsBF,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,OAAO,WAAW,GAAG,SAAS,KAC7B,OAGF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,GACjC,UAAU,WAAW,GAAG,SAAS,EACjC,QAAQ,WAAW,EAAE,4BAsBtB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,GAClC,aAAa,WAAW,GAAG,SAAS,WAOrC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,GACnC,UAAU,MAAM,EAChB,aAAa,WAAW,GAAG,SAAS,EACpC,MAAM,UAAU,4BAwFjB,CAAC;AAEF,eAAO,MAAM,wBAAwB,GACnC,aAAa,WAAW,GAAG,SAAS,EACpC,QAAQ,WAAW,EAAE,4BAyBtB,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,GAC9B,UAAU,MAAM,EAChB,aAAa,WAAW,GAAG,SAAS,EACpC,QAAQ,WAAW,EAAE,EACrB,MAAM,UAAU,EAChB,QAAQ,OAAO,4BA2FhB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAC5B,UAAU,WAAW,GAAG,SAAS,EACjC,eAAe,WAAW,GAAG,SAAS,EACtC,QAAQ,WAAW,EAAE,WAwCtB,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAChC,OAAO,MAAM,EACb,eAAe,WAAW,GAAG,SAAS,KACrC;IAAE,UAAU,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAyFlE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,GACjC,OAAO,WAAW,EAClB,WAAW,MAAM;;;CA6ElB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAAI,MAAM,MAAM,WAE9C,CAAC"}
@@ -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;AAuBnE,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,SA6M3B,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":"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"}
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;AAuBnE,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,SA6M3B,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.38",
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.29",
59
- "@rowsncolumns/common-types": ">=5.2.29",
60
- "@rowsncolumns/fast-formula-parser": ">=6.2.32",
61
- "@rowsncolumns/functions": ">=14.0.29",
62
- "@rowsncolumns/icons": ">=7.2.30",
63
- "@rowsncolumns/utils": ">=9.2.35",
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.29",
70
- "@rowsncolumns/common-types": ">=5.2.29",
71
- "@rowsncolumns/fast-formula-parser": ">=6.2.32",
72
- "@rowsncolumns/functions": ">=14.0.29",
73
- "@rowsncolumns/icons": ">=7.2.30",
74
- "@rowsncolumns/utils": ">=9.2.35",
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
  }