@rowsncolumns/ui 15.0.43 → 16.0.1

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.
Files changed (53) hide show
  1. package/dist/cjs/editor/suggestions-dropdown.d.ts +7 -1
  2. package/dist/cjs/editor/suggestions-dropdown.d.ts.map +1 -1
  3. package/dist/cjs/editor/suggestions-dropdown.js +9 -8
  4. package/dist/cjs/editor-pm/helpers.d.ts +3 -1
  5. package/dist/cjs/editor-pm/helpers.d.ts.map +1 -1
  6. package/dist/cjs/editor-pm/helpers.js +5 -2
  7. package/dist/cjs/editor-pm/prosemirror-editor.d.ts +25 -0
  8. package/dist/cjs/editor-pm/prosemirror-editor.d.ts.map +1 -1
  9. package/dist/cjs/editor-pm/prosemirror-editor.js +28 -2
  10. package/dist/cjs/editor-pm/schema.d.ts.map +1 -1
  11. package/dist/cjs/editor-pm/schema.js +8 -1
  12. package/dist/cjs/editor-pm/use-dropdown-change-pm.d.ts.map +1 -1
  13. package/dist/cjs/editor-pm/use-dropdown-change-pm.js +15 -1
  14. package/dist/cjs/editor-pm/use-editor-change-pm.d.ts +3 -1
  15. package/dist/cjs/editor-pm/use-editor-change-pm.d.ts.map +1 -1
  16. package/dist/cjs/editor-pm/use-editor-change-pm.js +3 -2
  17. package/dist/cjs/function-info/helpers.d.ts +3 -2
  18. package/dist/cjs/function-info/helpers.d.ts.map +1 -1
  19. package/dist/cjs/function-info/helpers.js +9 -4
  20. package/dist/cjs/function-info/index.d.ts +2 -0
  21. package/dist/cjs/function-info/index.d.ts.map +1 -1
  22. package/dist/cjs/function-info/index.js +8 -8
  23. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  24. package/dist/esm/editor/suggestions-dropdown.d.ts +7 -1
  25. package/dist/esm/editor/suggestions-dropdown.d.ts.map +1 -1
  26. package/dist/esm/editor/suggestions-dropdown.js +8 -5
  27. package/dist/esm/editor-pm/helpers.d.ts +3 -1
  28. package/dist/esm/editor-pm/helpers.d.ts.map +1 -1
  29. package/dist/esm/editor-pm/helpers.js +4 -2
  30. package/dist/esm/editor-pm/prosemirror-editor.d.ts +25 -0
  31. package/dist/esm/editor-pm/prosemirror-editor.d.ts.map +1 -1
  32. package/dist/esm/editor-pm/prosemirror-editor.js +20 -2
  33. package/dist/esm/editor-pm/schema.d.ts.map +1 -1
  34. package/dist/esm/editor-pm/schema.js +8 -1
  35. package/dist/esm/editor-pm/use-dropdown-change-pm.d.ts.map +1 -1
  36. package/dist/esm/editor-pm/use-dropdown-change-pm.js +15 -1
  37. package/dist/esm/editor-pm/use-editor-change-pm.d.ts +3 -1
  38. package/dist/esm/editor-pm/use-editor-change-pm.d.ts.map +1 -1
  39. package/dist/esm/editor-pm/use-editor-change-pm.js +3 -2
  40. package/dist/esm/function-info/helpers.d.ts +3 -2
  41. package/dist/esm/function-info/helpers.d.ts.map +1 -1
  42. package/dist/esm/function-info/helpers.js +6 -4
  43. package/dist/esm/function-info/index.d.ts +2 -0
  44. package/dist/esm/function-info/index.d.ts.map +1 -1
  45. package/dist/esm/function-info/index.js +7 -7
  46. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  47. package/package.json +13 -10
  48. package/dist/cjs/editor-pm/use-parameter-suggestions.test.d.ts +0 -2
  49. package/dist/cjs/editor-pm/use-parameter-suggestions.test.d.ts.map +0 -1
  50. package/dist/cjs/editor-pm/use-parameter-suggestions.test.js +0 -122
  51. package/dist/esm/editor-pm/use-parameter-suggestions.test.d.ts +0 -2
  52. package/dist/esm/editor-pm/use-parameter-suggestions.test.d.ts.map +0 -1
  53. package/dist/esm/editor-pm/use-parameter-suggestions.test.js +0 -66
@@ -1,5 +1,6 @@
1
1
  import type { ParsedToken } from "@rowsncolumns/calculator";
2
2
  import type { CalculatorFunction } from "@rowsncolumns/common-types";
3
+ import type { FormulaLocale } from "@rowsncolumns/utils";
3
4
  import React from "react";
4
5
  import { OptionItem } from "../editor-pm/types";
5
6
  export type SuggestionsDropdownProps = {
@@ -20,6 +21,11 @@ export type SuggestionsDropdownProps = {
20
21
  onSelect(value: OptionItem | CalculatorFunction): void;
21
22
  onChangeHighlightedIndex(index: number): void;
22
23
  functionDescriptions?: CalculatorFunction[] | null;
24
+ /**
25
+ * The formula locale the editor text (and `functionDescriptions`) are written in — supplies the
26
+ * argument separator the function hint is rendered with. Canonical (`,`) when omitted.
27
+ */
28
+ formulaLocale?: FormulaLocale;
23
29
  };
24
- export declare const SuggestionsDropdown: React.MemoExoticComponent<({ formulaMode, dropdownStyles, items, functionToken, parameterIndex, highlightedIndex, showFormulaHelp, onHideFormulaHelp, onSelect, onChangeHighlightedIndex, functionDescriptions, }: SuggestionsDropdownProps) => React.JSX.Element>;
30
+ export declare const SuggestionsDropdown: React.MemoExoticComponent<({ formulaMode, dropdownStyles, items, functionToken, parameterIndex, highlightedIndex, showFormulaHelp, onHideFormulaHelp, onSelect, onChangeHighlightedIndex, functionDescriptions, formulaLocale, }: SuggestionsDropdownProps) => React.JSX.Element>;
25
31
  //# sourceMappingURL=suggestions-dropdown.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"suggestions-dropdown.d.ts","sourceRoot":"","sources":["../../../editor/suggestions-dropdown.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAErE,OAAO,KAA2C,MAAM,OAAO,CAAC;AAShE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAkBhD,MAAM,MAAM,wBAAwB,GAAG;IACrC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACrC,aAAa,EAAE,WAAW,GAAG,SAAS,CAAC;IACvC,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,CAAC,UAAU,GAAG,kBAAkB,CAAC,EAAE,CAAC;IAC3C,gBAAgB,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;OAEG;IACH,iBAAiB,CAAC,IAAI,IAAI,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,kBAAkB,GAAG,IAAI,CAAC;IACvD,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9C,oBAAoB,CAAC,EAAE,kBAAkB,EAAE,GAAG,IAAI,CAAC;CACpD,CAAC;AAEF,eAAO,MAAM,mBAAmB,qNAa3B,wBAAwB,uBAwK5B,CAAC"}
1
+ {"version":3,"file":"suggestions-dropdown.d.ts","sourceRoot":"","sources":["../../../editor/suggestions-dropdown.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAErE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAA2C,MAAM,OAAO,CAAC;AAShE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAkBhD,MAAM,MAAM,wBAAwB,GAAG;IACrC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACrC,aAAa,EAAE,WAAW,GAAG,SAAS,CAAC;IACvC,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,CAAC,UAAU,GAAG,kBAAkB,CAAC,EAAE,CAAC;IAC3C,gBAAgB,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;OAEG;IACH,iBAAiB,CAAC,IAAI,IAAI,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,kBAAkB,GAAG,IAAI,CAAC;IACvD,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9C,oBAAoB,CAAC,EAAE,kBAAkB,EAAE,GAAG,IAAI,CAAC;IACnD;;;OAGG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B,CAAC;AAKF,eAAO,MAAM,mBAAmB,oOAc3B,wBAAwB,uBAkK5B,CAAC"}
@@ -4,8 +4,10 @@ import { FunctionInfo } from "../function-info";
4
4
  import { cn } from "../utils";
5
5
  import { StyledCategoryHeader, StyledDropdownItem, StyledDropdownWrapper, } from "./style";
6
6
  import { cleanFunctionToken } from "../editor-pm/helpers";
7
+ /** Case fold matching `@rowsncolumns/utils`' dictionaries (Turkish dotted İ folds like I). */
8
+ var foldName = function (name) { return name.toUpperCase().replace(/İ/g, "I"); };
7
9
  export var SuggestionsDropdown = memo(function (_a) {
8
- var formulaMode = _a.formulaMode, dropdownStyles = _a.dropdownStyles, items = _a.items, functionToken = _a.functionToken, parameterIndex = _a.parameterIndex, highlightedIndex = _a.highlightedIndex, _b = _a.showFormulaHelp, showFormulaHelp = _b === void 0 ? true : _b, onHideFormulaHelp = _a.onHideFormulaHelp, onSelect = _a.onSelect, onChangeHighlightedIndex = _a.onChangeHighlightedIndex, functionDescriptions = _a.functionDescriptions;
10
+ var formulaMode = _a.formulaMode, dropdownStyles = _a.dropdownStyles, items = _a.items, functionToken = _a.functionToken, parameterIndex = _a.parameterIndex, highlightedIndex = _a.highlightedIndex, _b = _a.showFormulaHelp, showFormulaHelp = _b === void 0 ? true : _b, onHideFormulaHelp = _a.onHideFormulaHelp, onSelect = _a.onSelect, onChangeHighlightedIndex = _a.onChangeHighlightedIndex, functionDescriptions = _a.functionDescriptions, formulaLocale = _a.formulaLocale;
9
11
  var containerRef = useRef(null);
10
12
  var itemRefs = useRef(new Map());
11
13
  var categorizedItems = useMemo(function () {
@@ -75,16 +77,15 @@ export var SuggestionsDropdown = memo(function (_a) {
75
77
  }, [highlightedIndex]);
76
78
  // Get active function
77
79
  var activeFunction = useMemo(function () {
78
- return functionToken
79
- ? functionDescriptions === null || functionDescriptions === void 0 ? void 0 : functionDescriptions.find(function (fn) {
80
- var _a;
81
- return fn.title.match(new RegExp("^" + cleanFunctionToken((_a = functionToken === null || functionToken === void 0 ? void 0 : functionToken.image) !== null && _a !== void 0 ? _a : "") + "$", "gi"));
82
- })
83
- : void 0;
80
+ var _a;
81
+ if (!functionToken)
82
+ return void 0;
83
+ var name = foldName(cleanFunctionToken((_a = functionToken.image) !== null && _a !== void 0 ? _a : ""));
84
+ return functionDescriptions === null || functionDescriptions === void 0 ? void 0 : functionDescriptions.find(function (fn) { return foldName(fn.title) === name; });
84
85
  }, [functionDescriptions, functionToken]);
85
86
  var showFunctionInfo = functionToken && !categorizedItems.length && activeFunction;
86
87
  return (React.createElement(StyledDropdownWrapper, { ref: containerRef, style: dropdownStyles, role: "listbox", className: cn("relative", showFunctionInfo && !showFormulaHelp ? "p-0" : undefined, formulaMode ? "w-[340px]" : undefined) },
87
- Boolean(showFormulaHelp && showFunctionInfo) && (React.createElement(FunctionInfo, { activeFunction: activeFunction, parameterIndex: parameterIndex, onHideFormulaHelp: onHideFormulaHelp })),
88
+ Boolean(showFormulaHelp && showFunctionInfo) && (React.createElement(FunctionInfo, { activeFunction: activeFunction, parameterIndex: parameterIndex, onHideFormulaHelp: onHideFormulaHelp, argumentSeparator: formulaLocale === null || formulaLocale === void 0 ? void 0 : formulaLocale.argumentSeparator })),
88
89
  categorizedItems.map(function (_a) {
89
90
  var item = _a.item, index = _a.index, header = _a.header, category = _a.category;
90
91
  var isNamedRange = category === "namedrange";
@@ -186,7 +186,9 @@ export declare const getActiveTableToken: (position: number, activeToken: Parsed
186
186
  * @param tokens
187
187
  */
188
188
  export declare const getParameterIndex: (curToken: ParsedToken | undefined, functionToken: ParsedToken | undefined, tokens: ParsedToken[]) => number;
189
- export declare const getFunctionParameters: (input: string, functionToken: ParsedToken | undefined) => {
189
+ export declare const getFunctionParameters: (input: string, functionToken: ParsedToken | undefined,
190
+ /** The formula locale's argument separator the input was typed with (`,` canonical). */
191
+ argumentSeparator?: string) => {
190
192
  parameters: string[];
191
193
  ranges: {
192
194
  start: number;
@@ -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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"}
@@ -990,8 +990,11 @@ export var getParameterIndex = function (curToken, functionToken, tokens) {
990
990
  }
991
991
  return count;
992
992
  };
993
- export var getFunctionParameters = function (input, functionToken) {
993
+ export var getFunctionParameters = function (input, functionToken,
994
+ /** The formula locale's argument separator the input was typed with (`,` canonical). */
995
+ argumentSeparator) {
994
996
  var _a;
997
+ if (argumentSeparator === void 0) { argumentSeparator = ","; }
995
998
  if (!functionToken) {
996
999
  return { parameters: [], ranges: [] };
997
1000
  }
@@ -1042,7 +1045,7 @@ export var getFunctionParameters = function (input, functionToken) {
1042
1045
  for (var i = 0; i <= argsSlice.length; i++) {
1043
1046
  var ch = argsSlice[i];
1044
1047
  if (i === argsSlice.length ||
1045
- (ch === "," &&
1048
+ (ch === argumentSeparator &&
1046
1049
  paren === 0 &&
1047
1050
  brace === 0 &&
1048
1051
  bracket === 0 &&
@@ -1,5 +1,6 @@
1
1
  import type { ParsedToken } from "@rowsncolumns/calculator";
2
2
  import type { CalculatorFunction, Mention } from "@rowsncolumns/common-types";
3
+ import { type FormulaLocale } from "@rowsncolumns/utils";
3
4
  import React from "react";
4
5
  import { Command } from "prosemirror-state";
5
6
  import { type RunColorResolver } from "./helpers";
@@ -44,6 +45,14 @@ export type ProseMirrorEditorProps<M extends Mention = Mention> = RichTextEditor
44
45
  formulaMode?: boolean;
45
46
  isActive?: boolean;
46
47
  tokenizer(value: string): ParsedToken[];
48
+ /**
49
+ * The formula locale the editor text is written in (rowsncolumns/spreadsheet#655): the locale's
50
+ * argument separator splits the argument hints, and the function names the host callbacks
51
+ * (`getFunctionParameterSuggestions`, `shouldFetchFunctionParameters`) receive are canonical
52
+ * (English) whatever the user typed. `tokenizer` and `functionDescriptions` are expected to be
53
+ * in the same locale. Canonical syntax when omitted.
54
+ */
55
+ formulaLocale?: FormulaLocale;
47
56
  showDropdown?: boolean;
48
57
  dropdownStyles?: React.CSSProperties;
49
58
  stickyEditor?: boolean;
@@ -232,6 +241,14 @@ export declare const ProseMirrorEditorThatMayError: React.NamedExoticComponent<R
232
241
  * @param value
233
242
  */
234
243
  tokenizer(value: string): ParsedToken[];
244
+ /**
245
+ * The formula locale the editor text is written in (rowsncolumns/spreadsheet#655): the locale's
246
+ * argument separator splits the argument hints, and the function names the host callbacks
247
+ * (`getFunctionParameterSuggestions`, `shouldFetchFunctionParameters`) receive are canonical
248
+ * (English) whatever the user typed. `tokenizer` and `functionDescriptions` are expected to be
249
+ * in the same locale. Canonical syntax when omitted.
250
+ */
251
+ formulaLocale?: FormulaLocale;
235
252
  showDropdown?: boolean;
236
253
  dropdownStyles?: React.CSSProperties;
237
254
  stickyEditor?: boolean;
@@ -372,6 +389,14 @@ export declare const ProseMirrorEditor: React.ForwardRefExoticComponent<Omit<Ric
372
389
  * @param value
373
390
  */
374
391
  tokenizer(value: string): ParsedToken[];
392
+ /**
393
+ * The formula locale the editor text is written in (rowsncolumns/spreadsheet#655): the locale's
394
+ * argument separator splits the argument hints, and the function names the host callbacks
395
+ * (`getFunctionParameterSuggestions`, `shouldFetchFunctionParameters`) receive are canonical
396
+ * (English) whatever the user typed. `tokenizer` and `functionDescriptions` are expected to be
397
+ * in the same locale. Canonical syntax when omitted.
398
+ */
399
+ formulaLocale?: FormulaLocale;
375
400
  showDropdown?: boolean;
376
401
  dropdownStyles?: React.CSSProperties;
377
402
  stickyEditor?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"prosemirror-editor.d.ts","sourceRoot":"","sources":["../../../editor-pm/prosemirror-editor.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prosemirror-editor.d.ts","sourceRoot":"","sources":["../../../editor-pm/prosemirror-editor.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { __assign, __awaiter, __generator, __read, __rest, __spreadArray, __values } from "tslib";
2
2
  import { LoadingIcon, QuestionMarkIcon } from "@rowsncolumns/icons";
3
+ import { canonicalizeFunctionName } from "@rowsncolumns/utils";
3
4
  import { addressToCell, getHotkeyKey, isAFormula, isNil, log, } from "@rowsncolumns/utils";
4
5
  import React, { forwardRef, memo, useCallback, useImperativeHandle, useMemo, useRef, useState, } from "react";
5
6
  import { history, undo, redo } from "prosemirror-history";
@@ -61,10 +62,34 @@ export var deleteAll = function (state, dispatch) {
61
62
  */
62
63
  export var ProseMirrorEditorThatMayError = memo(forwardRef(function (_a, forwardedRef) {
63
64
  var _b;
64
- var _c = _a.value, value = _c === void 0 ? "" : _c, isNewValue = _a.isNewValue, formulaMode = _a.formulaMode, onChange = _a.onChange, autoFocus = _a.autoFocus, className = _a.className, onKeyDown = _a.onKeyDown, disabled = _a.disabled, _d = _a.showDropdown, showDropdown = _d === void 0 ? true : _d, _e = _a.persistFocus, persistFocus = _e === void 0 ? true : _e, editorZeroOutline = _a.editorZeroOutline, showFormulaHelp = _a.showFormulaHelp, onHideFormulaHelp = _a.onHideFormulaHelp, onShowFormulaHelp = _a.onShowFormulaHelp, tokenizer = _a.tokenizer, onCancel = _a.onCancel, onSubmit = _a.onSubmit, onFormulaStateChange = _a.onFormulaStateChange, dropdownStyles = _a.dropdownStyles, options = _a.options, isOptionSelected = _a.isOptionSelected, functionDescriptions = _a.functionDescriptions, shouldFetchFunctionParameters = _a.shouldFetchFunctionParameters, getFunctionParameterSuggestions = _a.getFunctionParameterSuggestions, getMentions = _a.getMentions, getNamedRanges = _a.getNamedRanges, getTableNames = _a.getTableNames, getTableColumnNames = _a.getTableColumnNames, getStructuredProperties = _a.getStructuredProperties, onTeardown = _a.onTeardown, _f = _a.SuggestionsDropdown, SuggestionsDropdown = _f === void 0 ? DefaultSuggestionsDropdown : _f, MentionTagComponent = _a.MentionTagComponent, MentionDropdownItemComponent = _a.MentionDropdownItemComponent, isActive = _a.isActive, _g = _a.stickyEditor, stickyEditor = _g === void 0 ? true : _g, onFocus = _a.onFocus, onBlur = _a.onBlur, onCopy = _a.onCopy, onCut = _a.onCut, onPaste = _a.onPaste, placeholder = _a.placeholder, textFormatRuns = _a.textFormatRuns, resolveRunColor = _a.resolveRunColor, navigationMode = _a.navigationMode, enableContinuousSelection = _a.enableContinuousSelection, cellFontFamily = _a.cellFontFamily, props = __rest(_a, ["value", "isNewValue", "formulaMode", "onChange", "autoFocus", "className", "onKeyDown", "disabled", "showDropdown", "persistFocus", "editorZeroOutline", "showFormulaHelp", "onHideFormulaHelp", "onShowFormulaHelp", "tokenizer", "onCancel", "onSubmit", "onFormulaStateChange", "dropdownStyles", "options", "isOptionSelected", "functionDescriptions", "shouldFetchFunctionParameters", "getFunctionParameterSuggestions", "getMentions", "getNamedRanges", "getTableNames", "getTableColumnNames", "getStructuredProperties", "onTeardown", "SuggestionsDropdown", "MentionTagComponent", "MentionDropdownItemComponent", "isActive", "stickyEditor", "onFocus", "onBlur", "onCopy", "onCut", "onPaste", "placeholder", "textFormatRuns", "resolveRunColor", "navigationMode", "enableContinuousSelection", "cellFontFamily"]);
65
+ var _c = _a.value, value = _c === void 0 ? "" : _c, isNewValue = _a.isNewValue, formulaMode = _a.formulaMode, onChange = _a.onChange, autoFocus = _a.autoFocus, className = _a.className, onKeyDown = _a.onKeyDown, disabled = _a.disabled, _d = _a.showDropdown, showDropdown = _d === void 0 ? true : _d, _e = _a.persistFocus, persistFocus = _e === void 0 ? true : _e, editorZeroOutline = _a.editorZeroOutline, showFormulaHelp = _a.showFormulaHelp, onHideFormulaHelp = _a.onHideFormulaHelp, onShowFormulaHelp = _a.onShowFormulaHelp, tokenizer = _a.tokenizer, onCancel = _a.onCancel, onSubmit = _a.onSubmit, onFormulaStateChange = _a.onFormulaStateChange, dropdownStyles = _a.dropdownStyles, options = _a.options, isOptionSelected = _a.isOptionSelected, functionDescriptions = _a.functionDescriptions, shouldFetchFunctionParametersProp = _a.shouldFetchFunctionParameters, getFunctionParameterSuggestionsProp = _a.getFunctionParameterSuggestions, formulaLocale = _a.formulaLocale, getMentions = _a.getMentions, getNamedRanges = _a.getNamedRanges, getTableNames = _a.getTableNames, getTableColumnNames = _a.getTableColumnNames, getStructuredProperties = _a.getStructuredProperties, onTeardown = _a.onTeardown, _f = _a.SuggestionsDropdown, SuggestionsDropdown = _f === void 0 ? DefaultSuggestionsDropdown : _f, MentionTagComponent = _a.MentionTagComponent, MentionDropdownItemComponent = _a.MentionDropdownItemComponent, isActive = _a.isActive, _g = _a.stickyEditor, stickyEditor = _g === void 0 ? true : _g, onFocus = _a.onFocus, onBlur = _a.onBlur, onCopy = _a.onCopy, onCut = _a.onCut, onPaste = _a.onPaste, placeholder = _a.placeholder, textFormatRuns = _a.textFormatRuns, resolveRunColor = _a.resolveRunColor, navigationMode = _a.navigationMode, enableContinuousSelection = _a.enableContinuousSelection, cellFontFamily = _a.cellFontFamily, props = __rest(_a, ["value", "isNewValue", "formulaMode", "onChange", "autoFocus", "className", "onKeyDown", "disabled", "showDropdown", "persistFocus", "editorZeroOutline", "showFormulaHelp", "onHideFormulaHelp", "onShowFormulaHelp", "tokenizer", "onCancel", "onSubmit", "onFormulaStateChange", "dropdownStyles", "options", "isOptionSelected", "functionDescriptions", "shouldFetchFunctionParameters", "getFunctionParameterSuggestions", "formulaLocale", "getMentions", "getNamedRanges", "getTableNames", "getTableColumnNames", "getStructuredProperties", "onTeardown", "SuggestionsDropdown", "MentionTagComponent", "MentionDropdownItemComponent", "isActive", "stickyEditor", "onFocus", "onBlur", "onCopy", "onCut", "onPaste", "placeholder", "textFormatRuns", "resolveRunColor", "navigationMode", "enableContinuousSelection", "cellFontFamily"]);
65
66
  var editorRef = useRef(null);
66
67
  var viewRef = useRef(null);
67
68
  var cellFontFamilyRef = useRef(cellFontFamily);
69
+ // The function token is in the editor's locale (`СУММ(`); hosts are asked about the canonical
70
+ // name (`SUM(`) so parameter providers keyed on English names work in every locale.
71
+ var canonicalFunctionImage = useCallback(function (image) {
72
+ if (!formulaLocale || formulaLocale.isCanonical)
73
+ return image;
74
+ var hasParen = image.endsWith("(");
75
+ var name = hasParen ? image.slice(0, -1) : image;
76
+ return canonicalizeFunctionName(name, formulaLocale) + (hasParen ? "(" : "");
77
+ }, [formulaLocale]);
78
+ var needsCanonicalNames = Boolean(formulaLocale && !formulaLocale.isCanonical);
79
+ var shouldFetchFunctionParameters = useMemo(function () {
80
+ return needsCanonicalNames && shouldFetchFunctionParametersProp
81
+ ? function (functionName, parameterIndex, parameters) {
82
+ return shouldFetchFunctionParametersProp(canonicalFunctionImage(functionName), parameterIndex, parameters);
83
+ }
84
+ : shouldFetchFunctionParametersProp;
85
+ }, [needsCanonicalNames, shouldFetchFunctionParametersProp, canonicalFunctionImage]);
86
+ var getFunctionParameterSuggestions = useMemo(function () {
87
+ return needsCanonicalNames && getFunctionParameterSuggestionsProp
88
+ ? function (functionName, parameterIndex, parameters) {
89
+ return getFunctionParameterSuggestionsProp(canonicalFunctionImage(functionName), parameterIndex, parameters);
90
+ }
91
+ : getFunctionParameterSuggestionsProp;
92
+ }, [needsCanonicalNames, getFunctionParameterSuggestionsProp, canonicalFunctionImage]);
68
93
  var _h = __read(useState(), 2), cursorPosition = _h[0], setCursorPosition = _h[1];
69
94
  var _j = __read(useState(), 2), tableToken = _j[0], setTableToken = _j[1];
70
95
  var _k = __read(useState(), 2), functionToken = _k[0], setFunctionToken = _k[1];
@@ -281,6 +306,7 @@ export var ProseMirrorEditorThatMayError = memo(forwardRef(function (_a, forward
281
306
  },
282
307
  onChangePreviousToken: setPreviousToken,
283
308
  enableContinuousSelection: enableContinuousSelection !== null && enableContinuousSelection !== void 0 ? enableContinuousSelection : isNil(navigationMode),
309
+ argumentSeparator: formulaLocale === null || formulaLocale === void 0 ? void 0 : formulaLocale.argumentSeparator,
284
310
  });
285
311
  // Initialize editor
286
312
  useIsomorphicLayoutEffect(function () {
@@ -1134,7 +1160,7 @@ export var ProseMirrorEditorThatMayError = memo(forwardRef(function (_a, forward
1134
1160
  } })),
1135
1161
  showDropdownEffective && isDropdownOpen && (React.createElement(ConditionalWrapper, { condition: stickyEditor, wrapper: function (children) { return React.createElement(Portal, { asChild: true }, children); } },
1136
1162
  React.createElement(Popper.Content, { side: "bottom", align: "start", className: "z-50", sideOffset: 2 },
1137
- React.createElement(SuggestionsDropdown, { functionDescriptions: functionDescriptions, formulaMode: formulaMode, dropdownStyles: dropdownStyles, functionToken: functionToken, parameterIndex: parameterIndex, items: items, highlightedIndex: highlightedIndex, onSelect: onSelect, onChangeHighlightedIndex: onChangeHighlightedIndex, showFormulaHelp: showFormulaHelp, onHideFormulaHelp: onHideFormulaHelp })))),
1163
+ React.createElement(SuggestionsDropdown, { functionDescriptions: functionDescriptions, formulaMode: formulaMode, dropdownStyles: dropdownStyles, functionToken: functionToken, parameterIndex: parameterIndex, items: items, highlightedIndex: highlightedIndex, onSelect: onSelect, onChangeHighlightedIndex: onChangeHighlightedIndex, showFormulaHelp: showFormulaHelp, onHideFormulaHelp: onHideFormulaHelp, formulaLocale: formulaLocale })))),
1138
1164
  showDropdownEffective && showMentionDropdownEffective && (React.createElement(ConditionalWrapper, { condition: stickyEditor, wrapper: function (children) { return React.createElement(Portal, { asChild: true }, children); } },
1139
1165
  React.createElement(Popper.Content, { side: "bottom", align: "start", className: "z-50", sideOffset: 2 },
1140
1166
  React.createElement(MentionsDropdown, { mentions: mentions, onSelect: handleInsertMention, highlightedIndex: mentionHighlightedIndex, isFetchingMentions: isFetchingMentions, MentionDropdownItemComponent: MentionDropdownItemComponent }))))));
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../editor-pm/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,eAAO,MAAM,MAAM,oKAmLjB,CAAC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../editor-pm/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,eAAO,MAAM,MAAM,oKA0LjB,CAAC"}
@@ -129,10 +129,17 @@ export var schema = new Schema({
129
129
  },
130
130
  parseDOM: [{ tag: "sub" }, { style: "vertical-align=sub" }],
131
131
  },
132
+ // Per-run text color (`TextFormat.color`). The `data-run-color` attribute lets a host
133
+ // (the formula bar) suppress run colors without touching the formula-syntax highlighting,
134
+ // which ProseMirror also paints as `<span style="color: …">` inline decorations.
132
135
  color: {
133
136
  attrs: { color: {} },
134
137
  toDOM: function (mark) {
135
- return ["span", { style: "color: ".concat(mark.attrs.color) }, 0];
138
+ return [
139
+ "span",
140
+ { style: "color: ".concat(mark.attrs.color), "data-run-color": "" },
141
+ 0,
142
+ ];
136
143
  },
137
144
  parseDOM: [
138
145
  {
@@ -1 +1 @@
1
- {"version":3,"file":"use-dropdown-change-pm.d.ts","sourceRoot":"","sources":["../../../editor-pm/use-dropdown-change-pm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAG5D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAGpD,KAAK,UAAU,GAAG;IAChB,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAAC;IACxC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,IAAI,UAAU,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,aAAa,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;IACxE,eAAe,EAAE,WAAW,GAAG,SAAS,CAAC;IACzC,WAAW,EAAE,WAAW,GAAG,SAAS,CAAC;IACrC,aAAa,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IACxC,cAAc,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;IAC5D,aAAa,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;CACzC,CAAC;AAEF,eAAO,MAAM,0BAA0B,GACrC,OAAO,WAAW,GAAG,SAAS,EAC9B,SAAS,MAAM,EACf,aAAa,MAAM;;;QAkBpB,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,+HAUjC,UAAU,YAEF,UAAU,SAsJpB,CAAC"}
1
+ {"version":3,"file":"use-dropdown-change-pm.d.ts","sourceRoot":"","sources":["../../../editor-pm/use-dropdown-change-pm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAG5D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAGpD,KAAK,UAAU,GAAG;IAChB,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAAC;IACxC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,IAAI,UAAU,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,aAAa,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;IACxE,eAAe,EAAE,WAAW,GAAG,SAAS,CAAC;IACzC,WAAW,EAAE,WAAW,GAAG,SAAS,CAAC;IACrC,aAAa,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IACxC,cAAc,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;IAC5D,aAAa,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;CACzC,CAAC;AAEF,eAAO,MAAM,0BAA0B,GACrC,OAAO,WAAW,GAAG,SAAS,EAC9B,SAAS,MAAM,EACf,aAAa,MAAM;;;QAkBpB,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,+HAUjC,UAAU,YAEF,UAAU,SAsKpB,CAAC"}
@@ -102,8 +102,22 @@ export var useDropdownChangePM = function (_a) {
102
102
  case "thisrow":
103
103
  textToInsert = "@";
104
104
  break;
105
+ case "specialitem": {
106
+ var prevChar = insertPos_1 > 0
107
+ ? state_1.doc.textBetween(insertPos_1 - 1, insertPos_1)
108
+ : "";
109
+ // Excel's autocomplete inserts a special item in its two-part form: at `Table[` the
110
+ // pick becomes `Table[[#Headers],` and the column list follows; inside an open
111
+ // two-part form (`Table[[#Headers],`) it is bracketed like a column.
112
+ textToInsert =
113
+ prevChar === "["
114
+ ? "[".concat(value, "],")
115
+ : prevChar === ","
116
+ ? "[".concat(value, "]")
117
+ : value;
118
+ break;
119
+ }
105
120
  case "namedrange":
106
- case "specialitem":
107
121
  case "parameter":
108
122
  textToInsert = value;
109
123
  break;
@@ -23,7 +23,9 @@ type UseEditorOnChangePMProps = {
23
23
  end: number;
24
24
  }[]): void;
25
25
  onChangePreviousToken(token: ParsedToken | undefined): void;
26
+ /** Argument separator of the formula locale the editor text is written in (`,` canonical). */
27
+ argumentSeparator?: string;
26
28
  };
27
- export declare const useEditorOnChangePM: ({ onChange, getView, isActive, enableContinuousSelection, tokenizer, onChangeCursor, onChangeActiveToken, onFormulaStateChange, onSuggestionTokenChange, onTableTokenChange, onChangeFunctionToken, onChangeParameterIndex, onCellPropertyTokenChange, onChangeFunctionParameters, onChangeIsEdgeOfCell, onChangePreviousToken, }: UseEditorOnChangePMProps) => (newState: EditorState) => void;
29
+ export declare const useEditorOnChangePM: ({ onChange, getView, isActive, enableContinuousSelection, tokenizer, onChangeCursor, onChangeActiveToken, onFormulaStateChange, onSuggestionTokenChange, onTableTokenChange, onChangeFunctionToken, onChangeParameterIndex, onCellPropertyTokenChange, onChangeFunctionParameters, onChangeIsEdgeOfCell, onChangePreviousToken, argumentSeparator, }: UseEditorOnChangePMProps) => (newState: EditorState) => void;
28
30
  export {};
29
31
  //# sourceMappingURL=use-editor-change-pm.d.ts.map
@@ -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;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
+ {"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;IAC5D,8FAA8F;IAC9F,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,sVAkBjC,wBAAwB,gBAWV,WAAW,SAsN3B,CAAC"}
@@ -5,7 +5,7 @@ import { enableCellSelection, extractTextFormatRuns, getActiveFunctionToken, get
5
5
  import { useCallbackRef } from "@rowsncolumns/grid";
6
6
  import { CELL_SUGGESTION_PREFIX } from "../editor/constants";
7
7
  export var useEditorOnChangePM = function (_a) {
8
- var onChange = _a.onChange, getView = _a.getView, isActive = _a.isActive, enableContinuousSelection = _a.enableContinuousSelection, tokenizer = _a.tokenizer, onChangeCursor = _a.onChangeCursor, onChangeActiveToken = _a.onChangeActiveToken, onFormulaStateChange = _a.onFormulaStateChange, onSuggestionTokenChange = _a.onSuggestionTokenChange, onTableTokenChange = _a.onTableTokenChange, onChangeFunctionToken = _a.onChangeFunctionToken, onChangeParameterIndex = _a.onChangeParameterIndex, onCellPropertyTokenChange = _a.onCellPropertyTokenChange, onChangeFunctionParameters = _a.onChangeFunctionParameters, onChangeIsEdgeOfCell = _a.onChangeIsEdgeOfCell, onChangePreviousToken = _a.onChangePreviousToken;
8
+ var onChange = _a.onChange, getView = _a.getView, isActive = _a.isActive, enableContinuousSelection = _a.enableContinuousSelection, tokenizer = _a.tokenizer, onChangeCursor = _a.onChangeCursor, onChangeActiveToken = _a.onChangeActiveToken, onFormulaStateChange = _a.onFormulaStateChange, onSuggestionTokenChange = _a.onSuggestionTokenChange, onTableTokenChange = _a.onTableTokenChange, onChangeFunctionToken = _a.onChangeFunctionToken, onChangeParameterIndex = _a.onChangeParameterIndex, onCellPropertyTokenChange = _a.onCellPropertyTokenChange, onChangeFunctionParameters = _a.onChangeFunctionParameters, onChangeIsEdgeOfCell = _a.onChangeIsEdgeOfCell, onChangePreviousToken = _a.onChangePreviousToken, argumentSeparator = _a.argumentSeparator;
9
9
  var lastSeenCursorTokenRef = useRef(undefined);
10
10
  useEffect(function () {
11
11
  if (!isActive) {
@@ -95,7 +95,7 @@ export var useEditorOnChangePM = function (_a) {
95
95
  }
96
96
  // Get function parameters
97
97
  var parameterIndex = getParameterIndex(tokenForFunction, functionToken, tokens);
98
- var _h = getFunctionParameters(line, functionToken), parameters = _h.parameters, ranges = _h.ranges;
98
+ var _h = getFunctionParameters(line, functionToken, argumentSeparator), parameters = _h.parameters, ranges = _h.ranges;
99
99
  // Cursor position to show cell suggestion
100
100
  onChangeCursor(canSelectCells ? cursorPos : undefined);
101
101
  // Active token
@@ -154,5 +154,6 @@ export var useEditorOnChangePM = function (_a) {
154
154
  onChangeParameterIndex,
155
155
  onCellPropertyTokenChange,
156
156
  onChangeFunctionParameters,
157
+ argumentSeparator,
157
158
  ]));
158
159
  };
@@ -1,8 +1,9 @@
1
1
  /**
2
- * Tokenizes function syntax
2
+ * Tokenizes function syntax. `argumentSeparator` is the locale's argument separator the syntax
3
+ * was written with (`,` for the canonical catalog, `;` for a `localizeFunctionSyntax` result).
3
4
  * @param syntax
4
5
  */
5
- export declare const tokenizeFunctionSyntax: (syntax: string) => {
6
+ export declare const tokenizeFunctionSyntax: (syntax: string, argumentSeparator?: string) => {
6
7
  functionOpen: string;
7
8
  parameters: string[];
8
9
  functionClose: string;
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../function-info/helpers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,sBAAsB,GAAI,QAAQ,MAAM;;;;CAepD,CAAC"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../function-info/helpers.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,GAAI,QAAQ,MAAM,EAAE,0BAAuB;;;;CAoB7E,CAAC"}
@@ -1,16 +1,21 @@
1
+ var escapeForRegExp = function (value) {
2
+ return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
3
+ };
1
4
  /**
2
- * Tokenizes function syntax
5
+ * Tokenizes function syntax. `argumentSeparator` is the locale's argument separator the syntax
6
+ * was written with (`,` for the canonical catalog, `;` for a `localizeFunctionSyntax` result).
3
7
  * @param syntax
4
8
  */
5
- export var tokenizeFunctionSyntax = function (syntax) {
9
+ export var tokenizeFunctionSyntax = function (syntax, argumentSeparator) {
10
+ if (argumentSeparator === void 0) { argumentSeparator = ","; }
6
11
  var openParen = "(";
7
12
  var closeParen = ")";
8
13
  var index = syntax.indexOf(openParen) + 1;
9
14
  var functionOpen = syntax.substr(0, index);
10
15
  var parameters = syntax
11
16
  .substr(index, syntax.length - index - 1)
12
- // https://regex101.com/r/ymosUf/1 : Exclude comma inside square braces
13
- .split(/,\s*(?=[^)^\]^}]*(?:\(|\[|\{|$))/gi)
17
+ // https://regex101.com/r/ymosUf/1 : Exclude the separator inside square braces
18
+ .split(new RegExp("".concat(escapeForRegExp(argumentSeparator), "\\s*(?=[^)^\\]^}]*(?:\\(|\\[|\\{|$))"), "gi"))
14
19
  .map(function (a) { return a.trim(); });
15
20
  return {
16
21
  functionOpen: functionOpen,
@@ -5,6 +5,8 @@ type FunctionInfoProps = {
5
5
  parameterIndex?: number;
6
6
  showFormulaHelp?: boolean;
7
7
  onHideFormulaHelp?(): void;
8
+ /** Argument separator of the syntax being shown (the formula locale's; `,` by default). */
9
+ argumentSeparator?: string;
8
10
  };
9
11
  export declare const FunctionInfo: React.FC<FunctionInfoProps>;
10
12
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../function-info/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAErE,OAAO,KAAkB,MAAM,OAAO,CAAC;AAOvC,KAAK,iBAAiB,GAAG;IACvB,cAAc,CAAC,EAAE,kBAAkB,CAAC;IACpC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,iBAAiB,CAAC,IAAI,IAAI,CAAC;CAC5B,CAAC;AASF,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAoEpD,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../function-info/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAErE,OAAO,KAAkB,MAAM,OAAO,CAAC;AAOvC,KAAK,iBAAiB,GAAG;IACvB,cAAc,CAAC,EAAE,kBAAkB,CAAC;IACpC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,iBAAiB,CAAC,IAAI,IAAI,CAAC;IAC3B,2FAA2F;IAC3F,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAUF,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAyEpD,CAAC"}
@@ -6,16 +6,16 @@ import { tokenizeFunctionSyntax } from "./helpers";
6
6
  import { StyledFunctionParameterTitle, StyledFunctionSubtitle } from "./style";
7
7
  var ACTIVE_COLOR = "#008000";
8
8
  export var FunctionInfo = function (_a) {
9
- var activeFunction = _a.activeFunction, _b = _a.parameterIndex, parameterIndex = _b === void 0 ? 0 : _b, onHideFormulaHelp = _a.onHideFormulaHelp;
10
- var _c = activeFunction !== null && activeFunction !== void 0 ? activeFunction : {}, syntax = _c.syntax, example = _c.example, description = _c.description, parameters = _c.parameters;
9
+ var activeFunction = _a.activeFunction, _b = _a.parameterIndex, parameterIndex = _b === void 0 ? 0 : _b, onHideFormulaHelp = _a.onHideFormulaHelp, _c = _a.argumentSeparator, argumentSeparator = _c === void 0 ? "," : _c;
10
+ var _d = activeFunction !== null && activeFunction !== void 0 ? activeFunction : {}, syntax = _d.syntax, example = _d.example, description = _d.description, parameters = _d.parameters;
11
11
  /**
12
12
  * It can happen that formula list does not contain
13
13
  * parameters, but syntax has
14
14
  * Use syntax
15
15
  */
16
16
  var paramLen = useMemo(function () {
17
- return tokenizeFunctionSyntax(syntax !== null && syntax !== void 0 ? syntax : "").parameters.length;
18
- }, [syntax]);
17
+ return tokenizeFunctionSyntax(syntax !== null && syntax !== void 0 ? syntax : "", argumentSeparator).parameters.length;
18
+ }, [syntax, argumentSeparator]);
19
19
  var paramIndex = Math.min(parameterIndex, paramLen - 1);
20
20
  /**
21
21
  * If Function is not documented,
@@ -26,7 +26,7 @@ export var FunctionInfo = function (_a) {
26
26
  return (React.createElement("div", { className: "break-words text-rnc-foreground" },
27
27
  React.createElement("div", { className: "py-1 px-2 text-sm rounded-t-sm place-items-center flex bg-rnc-accent -mt-1 font-formula" },
28
28
  React.createElement("div", { className: "flex-1" },
29
- React.createElement(TokenizedFunction, { syntax: syntax, parameterIndex: paramIndex })),
29
+ React.createElement(TokenizedFunction, { syntax: syntax, parameterIndex: paramIndex, argumentSeparator: argumentSeparator })),
30
30
  React.createElement(IconButton, { onClick: onHideFormulaHelp, title: "Hide formula suggestions for this cell" },
31
31
  React.createElement(CrossCircledIcon, null))),
32
32
  React.createElement(Separator, { orientation: "horizontal", color: "$gray7" }),
@@ -50,16 +50,16 @@ export var FunctionInfo = function (_a) {
50
50
  * @param param0
51
51
  */
52
52
  var TokenizedFunction = function (_a) {
53
- var syntax = _a.syntax, parameterIndex = _a.parameterIndex;
53
+ var syntax = _a.syntax, parameterIndex = _a.parameterIndex, argumentSeparator = _a.argumentSeparator;
54
54
  if (!syntax) {
55
55
  return null;
56
56
  }
57
- var _b = tokenizeFunctionSyntax(syntax), functionOpen = _b.functionOpen, parameters = _b.parameters, functionClose = _b.functionClose;
57
+ var _b = tokenizeFunctionSyntax(syntax, argumentSeparator), functionOpen = _b.functionOpen, parameters = _b.parameters, functionClose = _b.functionClose;
58
58
  var paramLen = parameters.length;
59
59
  return (React.createElement(React.Fragment, null,
60
60
  React.createElement("span", null, functionOpen),
61
61
  parameters.map(function (param, i) {
62
- var sep = i < paramLen - 1 ? ", " : "";
62
+ var sep = i < paramLen - 1 ? "".concat(argumentSeparator, " ") : "";
63
63
  return (React.createElement(React.Fragment, { key: i },
64
64
  React.createElement("span", { style: {
65
65
  color: parameterIndex === i ? ACTIVE_COLOR : void 0,
@@ -1 +1 @@
1
- {"root":["../../index.ts","../../utils.ts","../../vitest.config.ts","../../arrow/index.tsx","../../button/index.tsx","../../calendar/index.tsx","../../card/index.tsx","../../cell-tooltip/index.tsx","../../circular-loader/index.tsx","../../color-picker/index.tsx","../../color-picker/style.tsx","../../command/index.tsx","../../conditional-wrapper/index.tsx","../../dialog/index.tsx","../../dropdown/index.tsx","../../editor/constants.ts","../../editor/editor-error-boundary.tsx","../../editor/style.tsx","../../editor/suggestions-dropdown.tsx","../../editor-pm/constants.ts","../../editor-pm/decoration-plugin.ts","../../editor-pm/helpers.ts","../../editor-pm/index.tsx","../../editor-pm/mention-nodeview.tsx","../../editor-pm/mentions-dropdown.tsx","../../editor-pm/mentions-plugin.ts","../../editor-pm/placeholder-plugin.ts","../../editor-pm/prosemirror-editor.tsx","../../editor-pm/schema.ts","../../editor-pm/types.ts","../../editor-pm/unfocused-selection-plugin.ts","../../editor-pm/use-dropdown-change-pm.ts","../../editor-pm/use-editor-change-pm.ts","../../editor-pm/use-editor-decorator-pm.ts","../../editor-pm/use-editor-keydown-pm.ts","../../editor-pm/use-mention-keydown.ts","../../editor-pm/use-parameter-suggestions.test.tsx","../../editor-pm/use-parameter-suggestions.ts","../../eye-dropper/index.tsx","../../function-info/helpers.ts","../../function-info/index.tsx","../../function-info/style.tsx","../../hex-color-picker/index.tsx","../../hooks/use-cycle-reference.ts","../../hooks/use-dropdown-categories.ts","../../hooks/use-dropdown.ts","../../hooks/use-isomorphic-layout-effect.ts.ts","../../hooks/use-modal.tsx","../../hooks/use-visibility.ts","../../icon-button/index.tsx","../../input/index.tsx","../../popover/index.tsx","../../progress/index.tsx","../../select/index.tsx","../../separator/index.tsx","../../skeleton/index.tsx","../../stack/index.tsx","../../tabs/index.tsx","../../tooltip/index.tsx"],"version":"5.8.3"}
1
+ {"root":["../../index.ts","../../utils.ts","../../vitest.config.ts","../../arrow/index.tsx","../../button/index.tsx","../../calendar/index.tsx","../../card/index.tsx","../../cell-tooltip/index.tsx","../../circular-loader/index.tsx","../../color-picker/index.tsx","../../color-picker/style.tsx","../../command/index.tsx","../../conditional-wrapper/index.tsx","../../dialog/index.tsx","../../dropdown/index.tsx","../../editor/constants.ts","../../editor/editor-error-boundary.tsx","../../editor/style.tsx","../../editor/suggestions-dropdown.tsx","../../editor-pm/constants.ts","../../editor-pm/decoration-plugin.ts","../../editor-pm/helpers.ts","../../editor-pm/index.tsx","../../editor-pm/mention-nodeview.tsx","../../editor-pm/mentions-dropdown.tsx","../../editor-pm/mentions-plugin.ts","../../editor-pm/placeholder-plugin.ts","../../editor-pm/prosemirror-editor.tsx","../../editor-pm/schema.ts","../../editor-pm/types.ts","../../editor-pm/unfocused-selection-plugin.ts","../../editor-pm/use-dropdown-change-pm.ts","../../editor-pm/use-editor-change-pm.ts","../../editor-pm/use-editor-decorator-pm.ts","../../editor-pm/use-editor-keydown-pm.ts","../../editor-pm/use-mention-keydown.ts","../../editor-pm/use-parameter-suggestions.ts","../../eye-dropper/index.tsx","../../function-info/helpers.ts","../../function-info/index.tsx","../../function-info/style.tsx","../../hex-color-picker/index.tsx","../../hooks/use-cycle-reference.ts","../../hooks/use-dropdown-categories.ts","../../hooks/use-dropdown.ts","../../hooks/use-isomorphic-layout-effect.ts.ts","../../hooks/use-modal.tsx","../../hooks/use-visibility.ts","../../icon-button/index.tsx","../../input/index.tsx","../../popover/index.tsx","../../progress/index.tsx","../../select/index.tsx","../../separator/index.tsx","../../skeleton/index.tsx","../../stack/index.tsx","../../tabs/index.tsx","../../tooltip/index.tsx"],"version":"5.8.3"}
@@ -1,5 +1,6 @@
1
1
  import type { ParsedToken } from "@rowsncolumns/calculator";
2
2
  import type { CalculatorFunction } from "@rowsncolumns/common-types";
3
+ import type { FormulaLocale } from "@rowsncolumns/utils";
3
4
  import React from "react";
4
5
  import { OptionItem } from "../editor-pm/types";
5
6
  export type SuggestionsDropdownProps = {
@@ -20,6 +21,11 @@ export type SuggestionsDropdownProps = {
20
21
  onSelect(value: OptionItem | CalculatorFunction): void;
21
22
  onChangeHighlightedIndex(index: number): void;
22
23
  functionDescriptions?: CalculatorFunction[] | null;
24
+ /**
25
+ * The formula locale the editor text (and `functionDescriptions`) are written in — supplies the
26
+ * argument separator the function hint is rendered with. Canonical (`,`) when omitted.
27
+ */
28
+ formulaLocale?: FormulaLocale;
23
29
  };
24
- export declare const SuggestionsDropdown: React.MemoExoticComponent<({ formulaMode, dropdownStyles, items, functionToken, parameterIndex, highlightedIndex, showFormulaHelp, onHideFormulaHelp, onSelect, onChangeHighlightedIndex, functionDescriptions, }: SuggestionsDropdownProps) => React.JSX.Element>;
30
+ export declare const SuggestionsDropdown: React.MemoExoticComponent<({ formulaMode, dropdownStyles, items, functionToken, parameterIndex, highlightedIndex, showFormulaHelp, onHideFormulaHelp, onSelect, onChangeHighlightedIndex, functionDescriptions, formulaLocale, }: SuggestionsDropdownProps) => React.JSX.Element>;
25
31
  //# sourceMappingURL=suggestions-dropdown.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"suggestions-dropdown.d.ts","sourceRoot":"","sources":["../../../editor/suggestions-dropdown.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAErE,OAAO,KAA2C,MAAM,OAAO,CAAC;AAShE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAkBhD,MAAM,MAAM,wBAAwB,GAAG;IACrC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACrC,aAAa,EAAE,WAAW,GAAG,SAAS,CAAC;IACvC,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,CAAC,UAAU,GAAG,kBAAkB,CAAC,EAAE,CAAC;IAC3C,gBAAgB,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;OAEG;IACH,iBAAiB,CAAC,IAAI,IAAI,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,kBAAkB,GAAG,IAAI,CAAC;IACvD,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9C,oBAAoB,CAAC,EAAE,kBAAkB,EAAE,GAAG,IAAI,CAAC;CACpD,CAAC;AAEF,eAAO,MAAM,mBAAmB,qNAa3B,wBAAwB,uBAwK5B,CAAC"}
1
+ {"version":3,"file":"suggestions-dropdown.d.ts","sourceRoot":"","sources":["../../../editor/suggestions-dropdown.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAErE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAA2C,MAAM,OAAO,CAAC;AAShE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAkBhD,MAAM,MAAM,wBAAwB,GAAG;IACrC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACrC,aAAa,EAAE,WAAW,GAAG,SAAS,CAAC;IACvC,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,CAAC,UAAU,GAAG,kBAAkB,CAAC,EAAE,CAAC;IAC3C,gBAAgB,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;OAEG;IACH,iBAAiB,CAAC,IAAI,IAAI,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,kBAAkB,GAAG,IAAI,CAAC;IACvD,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9C,oBAAoB,CAAC,EAAE,kBAAkB,EAAE,GAAG,IAAI,CAAC;IACnD;;;OAGG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B,CAAC;AAKF,eAAO,MAAM,mBAAmB,oOAc3B,wBAAwB,uBAkK5B,CAAC"}
@@ -4,7 +4,9 @@ import { FunctionInfo } from "../function-info";
4
4
  import { cn } from "../utils";
5
5
  import { StyledCategoryHeader, StyledDropdownItem, StyledDropdownWrapper, } from "./style";
6
6
  import { cleanFunctionToken } from "../editor-pm/helpers";
7
- export const SuggestionsDropdown = memo(({ formulaMode, dropdownStyles, items, functionToken, parameterIndex, highlightedIndex, showFormulaHelp = true, onHideFormulaHelp, onSelect, onChangeHighlightedIndex, functionDescriptions, }) => {
7
+ /** Case fold matching `@rowsncolumns/utils`' dictionaries (Turkish dotted İ folds like I). */
8
+ const foldName = (name) => name.toUpperCase().replace(/İ/g, "I");
9
+ export const SuggestionsDropdown = memo(({ formulaMode, dropdownStyles, items, functionToken, parameterIndex, highlightedIndex, showFormulaHelp = true, onHideFormulaHelp, onSelect, onChangeHighlightedIndex, functionDescriptions, formulaLocale, }) => {
8
10
  const containerRef = useRef(null);
9
11
  const itemRefs = useRef(new Map());
10
12
  const categorizedItems = useMemo(() => {
@@ -74,13 +76,14 @@ export const SuggestionsDropdown = memo(({ formulaMode, dropdownStyles, items, f
74
76
  }, [highlightedIndex]);
75
77
  // Get active function
76
78
  const activeFunction = useMemo(() => {
77
- return functionToken
78
- ? functionDescriptions?.find((fn) => fn.title.match(new RegExp("^" + cleanFunctionToken(functionToken?.image ?? "") + "$", "gi")))
79
- : void 0;
79
+ if (!functionToken)
80
+ return void 0;
81
+ const name = foldName(cleanFunctionToken(functionToken.image ?? ""));
82
+ return functionDescriptions?.find((fn) => foldName(fn.title) === name);
80
83
  }, [functionDescriptions, functionToken]);
81
84
  const showFunctionInfo = functionToken && !categorizedItems.length && activeFunction;
82
85
  return (React.createElement(StyledDropdownWrapper, { ref: containerRef, style: dropdownStyles, role: "listbox", className: cn("relative", showFunctionInfo && !showFormulaHelp ? "p-0" : undefined, formulaMode ? "w-[340px]" : undefined) },
83
- Boolean(showFormulaHelp && showFunctionInfo) && (React.createElement(FunctionInfo, { activeFunction: activeFunction, parameterIndex: parameterIndex, onHideFormulaHelp: onHideFormulaHelp })),
86
+ Boolean(showFormulaHelp && showFunctionInfo) && (React.createElement(FunctionInfo, { activeFunction: activeFunction, parameterIndex: parameterIndex, onHideFormulaHelp: onHideFormulaHelp, argumentSeparator: formulaLocale?.argumentSeparator })),
84
87
  categorizedItems.map(({ item, index, header, category }) => {
85
88
  const isNamedRange = category === "namedrange";
86
89
  const isFunction = category === "function";
@@ -186,7 +186,9 @@ export declare const getActiveTableToken: (position: number, activeToken: Parsed
186
186
  * @param tokens
187
187
  */
188
188
  export declare const getParameterIndex: (curToken: ParsedToken | undefined, functionToken: ParsedToken | undefined, tokens: ParsedToken[]) => number;
189
- export declare const getFunctionParameters: (input: string, functionToken: ParsedToken | undefined) => {
189
+ export declare const getFunctionParameters: (input: string, functionToken: ParsedToken | undefined,
190
+ /** The formula locale's argument separator the input was typed with (`,` canonical). */
191
+ argumentSeparator?: string) => {
190
192
  parameters: string[];
191
193
  ranges: {
192
194
  start: number;