@gooddata/sdk-ui-kit 10.27.0-alpha.43 → 10.27.0-alpha.44

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,15 @@
1
1
  import React from "react";
2
2
  import { WrappedComponentProps } from "react-intl";
3
3
  import { ISeparators } from "@gooddata/sdk-ui";
4
+ import { StreamLanguage } from "@codemirror/language";
4
5
  import { IFormatTemplate } from "../typings.js";
6
+ type LanguageState = {
7
+ isInColor: boolean;
8
+ isInCustomColor: boolean;
9
+ isInCondition: boolean;
10
+ isInArithmeticExpression: boolean;
11
+ };
12
+ export declare const formattingLanguage: StreamLanguage<LanguageState>;
5
13
  interface IFormatInputOwnProps {
6
14
  format: string;
7
15
  onFormatChange: (format: string) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"FormatInput.d.ts","sourceRoot":"","sources":["../../../src/measureNumberFormat/customFormatDialog/FormatInput.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAc,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAI/C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAkChD,UAAU,oBAAoB;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB,SAAS,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;CAC9C;AAED,KAAK,iBAAiB,GAAG,oBAAoB,GAAG,qBAAqB,CAAC;AAgCtE,QAAA,MAAM,mBAAmB;;CAA0B,CAAC;AAEpD,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"FormatInput.d.ts","sourceRoot":"","sources":["../../../src/measureNumberFormat/customFormatDialog/FormatInput.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAc,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAItD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,KAAK,aAAa,GAAG;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,EAAE,OAAO,CAAC;IACzB,aAAa,EAAE,OAAO,CAAC;IACvB,wBAAwB,EAAE,OAAO,CAAC;CACrC,CAAC;AAEF,eAAO,MAAM,kBAAkB,+BAwG7B,CAAC;AAIH,UAAU,oBAAoB;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB,SAAS,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;CAC9C;AAED,KAAK,iBAAiB,GAAG,oBAAoB,GAAG,qBAAqB,CAAC;AAgCtE,QAAA,MAAM,mBAAmB;;CAA0B,CAAC;AAEpD,eAAe,mBAAmB,CAAC"}
@@ -1,39 +1,101 @@
1
- // (C) 2020-2022 GoodData Corporation
1
+ // (C) 2020-2025 GoodData Corporation
2
2
  import React from "react";
3
3
  import { injectIntl } from "react-intl";
4
+ import { StreamLanguage } from "@codemirror/language";
4
5
  import { FormatTemplatesDropdown } from "./formatTemplatesDropdown/FormatTemplatesDropdown.js";
5
6
  import { SyntaxHighlightingInput } from "../../syntaxHighlightingInput/SyntaxHighlightingInput.js";
6
- const formattingRules = {
7
- start: [
8
- { regex: /"(?:[^\\]|\\.)*?"/, token: "string" },
9
- { regex: /(?:black|blue|cyan|green|magenta|red|yellow|white)\b/i, token: "keyword" },
10
- {
11
- regex: /(backgroundColor|color)(=)([a-f0-9]{6}|[a-f0-9]{3})/i,
12
- token: ["variable-4", null, "keyword"],
13
- },
14
- {
15
- // disabling for legibility
16
- // eslint-disable-next-line regexp/prefer-character-class
17
- regex: /(<|>|=|>=|<=)(-?)(\d*(\.|,)?\d+|Null)/i,
18
- token: ["variable-5", "variable-5", "variable-5"],
19
- },
20
- { regex: /\/\/.*/, token: "comment" },
21
- { regex: /\/(?:[^\\]|\\.)*?\//, token: "variable-3" },
22
- { regex: /\/\*/, token: "comment", next: "comment" },
23
- { regex: /[{[(]/, indent: true, token: "variable-brackets" },
24
- { regex: /[}\])]/, dedent: true, token: "variable-brackets" },
25
- { regex: /[a-z$][\w$]*/, token: "variable" },
26
- { regex: /<</, token: "meta", mode: { spec: "xml", end: />>/ } },
27
- ],
28
- comment: [
29
- { regex: /.*?\*\//, token: "comment", next: "start" },
30
- { regex: /.*/, token: "comment" },
31
- ],
32
- meta: {
33
- dontIndentStates: ["comment"],
34
- lineComment: "//",
7
+ export const formattingLanguage = StreamLanguage.define({
8
+ startState() {
9
+ return {
10
+ isInColor: false,
11
+ isInCustomColor: false,
12
+ isInCondition: false,
13
+ isInArithmeticExpression: false,
14
+ };
35
15
  },
36
- };
16
+ token(stream, state) {
17
+ // Arithmetic expressions
18
+ if (state.isInArithmeticExpression ||
19
+ stream.match(/^\{\{\{(?:\d+(?:\.\d+)?)?\|(?:\d+\.?)?\|[^}]+\}\}\}/, false)) {
20
+ if (stream.match("{{{")) {
21
+ state.isInArithmeticExpression = true;
22
+ return "bracket";
23
+ }
24
+ if (stream.match("}}}")) {
25
+ state.isInArithmeticExpression = false;
26
+ return "bracket";
27
+ }
28
+ if (stream.match(/^(?:\d+(?:\.\d+)?)?\|(?:\d+\.?)?\|/)) {
29
+ return "variableName";
30
+ }
31
+ // For the last section, fall through, as arithmetic expression can contain other tokens
32
+ }
33
+ // Colors
34
+ if (state.isInColor ||
35
+ stream.match(/^\[(?:black|blue|cyan|green|magenta|red|white|yellow|none)\]/i, false)) {
36
+ if (stream.match("[")) {
37
+ state.isInColor = true;
38
+ return "bracket";
39
+ }
40
+ if (stream.match(/^[^\]]+/)) {
41
+ return "keyword";
42
+ }
43
+ if (stream.match("]")) {
44
+ state.isInColor = false;
45
+ return "bracket";
46
+ }
47
+ }
48
+ // Custom colors
49
+ if (state.isInCustomColor ||
50
+ stream.match(/^\[(?:backgroundColor|color)=#?(?:[a-f0-9]{6}|[a-f0-9]{3})\]/i, false)) {
51
+ if (stream.match("[")) {
52
+ state.isInCustomColor = true;
53
+ return "bracket";
54
+ }
55
+ if (stream.match("]")) {
56
+ state.isInCustomColor = false;
57
+ return "bracket";
58
+ }
59
+ if (stream.match(/^(?:backgroundColor|color)/i)) {
60
+ return "variableName.special";
61
+ }
62
+ if (stream.match(/=/)) {
63
+ return "bracket";
64
+ }
65
+ if (stream.match(/^#?(?:[a-f0-9]{6}|[a-f0-9]{3})/i)) {
66
+ return "keyword";
67
+ }
68
+ }
69
+ // Condition separator
70
+ if (stream.match(";")) {
71
+ return "bracket";
72
+ }
73
+ // Explicit conditions
74
+ if (state.isInCondition || stream.match(/^\[(?:>=|<=|[<>=])-?(?:\d+(?:[.,]\d+)?|Null)\]/i, false)) {
75
+ if (stream.match("[")) {
76
+ state.isInCondition = true;
77
+ return "bracket";
78
+ }
79
+ if (stream.match("]")) {
80
+ state.isInCondition = false;
81
+ return "bracket";
82
+ }
83
+ stream.eat(/^[^\]]/);
84
+ return "variableName.standard";
85
+ }
86
+ // Escaping special characters
87
+ if (stream.match(/^\\[0#?,.\\[\];]/)) {
88
+ return "variableName";
89
+ }
90
+ // Number formatting
91
+ if (stream.match(/^[0#?,]+(?:\.[0#?,]*)?/)) {
92
+ return "string";
93
+ }
94
+ stream.next(); // Move the stream forward
95
+ return "variableName";
96
+ },
97
+ });
98
+ const codeMirrorExtensions = [formattingLanguage];
37
99
  class FormatInput extends React.PureComponent {
38
100
  render() {
39
101
  const { format, onFormatChange, separators, templates, intl } = this.props;
@@ -41,7 +103,7 @@ class FormatInput extends React.PureComponent {
41
103
  React.createElement("div", { className: "gd-measure-custom-format-dialog-section-title" },
42
104
  React.createElement("span", null, intl.formatMessage({ id: "measureNumberCustomFormatDialog.definition" })),
43
105
  templates ? (React.createElement(FormatTemplatesDropdown, { onChange: onFormatChange, separators: separators, templates: templates })) : null),
44
- React.createElement(SyntaxHighlightingInput, { value: format, formatting: formattingRules, onChange: this.handleInputChange, className: "s-custom-format-input" })));
106
+ React.createElement(SyntaxHighlightingInput, { value: format, extensions: codeMirrorExtensions, onChange: this.handleInputChange, className: "s-custom-format-input" })));
45
107
  }
46
108
  handleInputChange = (value) => {
47
109
  this.props.onFormatChange(value);
@@ -1 +1 @@
1
- {"version":3,"file":"FormatInput.js","sourceRoot":"","sources":["../../../src/measureNumberFormat/customFormatDialog/FormatInput.tsx"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAyB,MAAM,YAAY,CAAC;AAG/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,sDAAsD,CAAC;AAC/F,OAAO,EAAE,uBAAuB,EAAE,MAAM,0DAA0D,CAAC;AAGnG,MAAM,eAAe,GAAG;IACpB,KAAK,EAAE;QACH,EAAE,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,QAAQ,EAAE;QAC/C,EAAE,KAAK,EAAE,uDAAuD,EAAE,KAAK,EAAE,SAAS,EAAE;QACpF;YACI,KAAK,EAAE,sDAAsD;YAC7D,KAAK,EAAE,CAAC,YAAY,EAAE,IAAI,EAAE,SAAS,CAAC;SACzC;QACD;YACI,2BAA2B;YAC3B,yDAAyD;YACzD,KAAK,EAAE,wCAAwC;YAC/C,KAAK,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,CAAC;SACpD;QACD,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE;QACrC,EAAE,KAAK,EAAE,qBAAqB,EAAE,KAAK,EAAE,YAAY,EAAE;QACrD,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;QACpD,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,mBAAmB,EAAE;QAC5D,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,mBAAmB,EAAE;QAC7D,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,UAAU,EAAE;QAC5C,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;KACnE;IACD,OAAO,EAAE;QACL,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE;QACrD,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE;KACpC;IACD,IAAI,EAAE;QACF,gBAAgB,EAAE,CAAC,SAAS,CAAC;QAC7B,WAAW,EAAE,IAAI;KACpB;CACJ,CAAC;AAWF,MAAM,WAAY,SAAQ,KAAK,CAAC,aAAgC;IACrD,MAAM;QACT,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAC3E,OAAO,CACH,6BAAK,SAAS,EAAE,yCAAyC;YACrD,6BAAK,SAAS,EAAE,+CAA+C;gBAC3D,kCAAO,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,4CAA4C,EAAE,CAAC,CAAQ;gBACtF,SAAS,CAAC,CAAC,CAAC,CACT,oBAAC,uBAAuB,IACpB,QAAQ,EAAE,cAAc,EACxB,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,SAAS,GACtB,CACL,CAAC,CAAC,CAAC,IAAI,CACN;YACN,oBAAC,uBAAuB,IACpB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,eAAe,EAC3B,QAAQ,EAAE,IAAI,CAAC,iBAAiB,EAChC,SAAS,EAAE,uBAAuB,GACpC,CACA,CACT,CAAC;IACN,CAAC;IAEO,iBAAiB,GAAG,CAAC,KAAa,EAAE,EAAE;QAC1C,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC,CAAC;CACL;AAED,MAAM,mBAAmB,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;AAEpD,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"FormatInput.js","sourceRoot":"","sources":["../../../src/measureNumberFormat/customFormatDialog/FormatInput.tsx"],"names":[],"mappings":"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"}
@@ -16,6 +16,7 @@ import { ColorFormats } from 'tinycolor2';
16
16
  import { Component } from 'react';
17
17
  import { CSSProperties } from 'react';
18
18
  import { DebouncedFunc } from 'lodash';
19
+ import { Extension } from '@codemirror/state';
19
20
  import { GoodDataSdkError } from '@gooddata/sdk-ui';
20
21
  import { IAccessControlAware } from '@gooddata/sdk-model';
21
22
  import { IAccessGrantee } from '@gooddata/sdk-model';
@@ -4296,8 +4297,8 @@ export declare interface ISyntaxHighlightingInputProps {
4296
4297
  value: string;
4297
4298
  onChange: (value: string) => void;
4298
4299
  onCursor?: (from: number, to: number) => void;
4299
- formatting?: any;
4300
- customOptions?: any;
4300
+ placeholder?: string;
4301
+ extensions?: Extension[];
4301
4302
  className?: string;
4302
4303
  }
4303
4304
 
@@ -1,7 +1,5 @@
1
1
  import React from "react";
2
- import "codemirror/addon/mode/simple.js";
3
- import "codemirror/addon/edit/matchbrackets.js";
4
- import "codemirror/addon/display/placeholder.js";
2
+ import { Extension } from "@codemirror/state";
5
3
  /**
6
4
  * @internal
7
5
  */
@@ -9,8 +7,8 @@ export interface ISyntaxHighlightingInputProps {
9
7
  value: string;
10
8
  onChange: (value: string) => void;
11
9
  onCursor?: (from: number, to: number) => void;
12
- formatting?: any;
13
- customOptions?: any;
10
+ placeholder?: string;
11
+ extensions?: Extension[];
14
12
  className?: string;
15
13
  }
16
14
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"SyntaxHighlightingInput.d.ts","sourceRoot":"","sources":["../../src/syntaxHighlightingInput/SyntaxHighlightingInput.tsx"],"names":[],"mappings":"AACA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAIjD,OAAO,iCAAiC,CAAC;AAEzC,OAAO,wCAAwC,CAAC;AAEhD,OAAO,yCAAyC,CAAC;AAUjD;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAmBD;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAAC,6BAA6B,CAkD3E,CAAC"}
1
+ {"version":3,"file":"SyntaxHighlightingInput.d.ts","sourceRoot":"","sources":["../../src/syntaxHighlightingInput/SyntaxHighlightingInput.tsx"],"names":[],"mappings":"AACA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAGjD,OAAO,EAAe,SAAS,EAAgC,MAAM,mBAAmB,CAAC;AAmBzF;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAAC,6BAA6B,CAkF3E,CAAC"}
@@ -1,70 +1,93 @@
1
- // (C) 2020-2023 GoodData Corporation
1
+ // (C) 2020-2025 GoodData Corporation
2
2
  import React, { useRef, useEffect } from "react";
3
3
  import cx from "classnames";
4
- import CodeMirror from "codemirror";
5
- // eslint-disable-next-line import/no-unassigned-import
6
- import "codemirror/addon/mode/simple.js";
7
- // eslint-disable-next-line import/no-unassigned-import
8
- import "codemirror/addon/edit/matchbrackets.js";
9
- // eslint-disable-next-line import/no-unassigned-import
10
- import "codemirror/addon/display/placeholder.js";
11
- const CODE_MIRROR_EOL = "\n";
12
- const defaultOptions = {
13
- autofocus: false,
14
- lineWrapping: true,
15
- matchBrackets: true,
16
- };
17
- const findCursorIndexAcrossMultipleLines = (text, cursorLineIndex, cursorLineCharacterIndex) => {
18
- const getLineLengthToCursor = (line, lineIndex) => {
19
- if (lineIndex > cursorLineIndex) {
20
- return 0;
21
- }
22
- return lineIndex < cursorLineIndex ? line.length + CODE_MIRROR_EOL.length : cursorLineCharacterIndex;
23
- };
24
- return text
25
- .split(CODE_MIRROR_EOL)
26
- .map(getLineLengthToCursor)
27
- .reduce((sum, lineLength) => sum + lineLength, 0);
28
- };
4
+ import { EditorView, keymap, placeholder } from "@codemirror/view";
5
+ import { EditorState, Transaction, EditorSelection } from "@codemirror/state";
6
+ import { bracketMatching, syntaxHighlighting, HighlightStyle } from "@codemirror/language";
7
+ import { tags as t } from "@lezer/highlight";
8
+ import { defaultKeymap, historyKeymap } from "@codemirror/commands";
9
+ // Disable autofocus
10
+ const disableAutofocus = EditorView.contentAttributes.of({ autofocus: "false" });
11
+ // Custom syntax highlighting
12
+ const customHighlightStyle = HighlightStyle.define([
13
+ { tag: t.punctuation, color: "#94a1ad" },
14
+ { tag: t.bracket, color: "#94a1ad" },
15
+ { tag: t.variableName, color: "#464e56" },
16
+ { tag: t.string, color: "#a11" },
17
+ { tag: t.special(t.variableName), color: "#13b1e2", fontWeight: "bold" },
18
+ { tag: t.standard(t.variableName), color: "#00c18e", fontWeight: "bold" },
19
+ { tag: t.keyword, color: "#ab55a3", fontWeight: "bold" },
20
+ ]);
29
21
  /**
30
22
  * @internal
31
23
  */
32
24
  export const SyntaxHighlightingInput = (props) => {
33
- const { value, onChange, onCursor, customOptions, className, formatting } = props;
34
- const ref = useRef();
35
- const view = useRef();
36
- const reportCursorPosition = (editor) => {
37
- if (onCursor) {
38
- const from = editor.getCursor("from");
39
- const to = editor.getCursor("to");
40
- const currentValue = editor.getValue();
41
- onCursor(findCursorIndexAcrossMultipleLines(currentValue, from.line, from.ch), findCursorIndexAcrossMultipleLines(currentValue, to.line, to.ch));
42
- }
43
- };
44
- const handleOnChange = () => {
45
- onChange(view.current.getValue());
46
- };
25
+ const { value, onChange, onCursor, placeholder: placeholderText, className, extensions = [] } = props;
26
+ const editorRef = useRef(null);
27
+ const viewRef = useRef();
28
+ // Create the editor only once
47
29
  useEffect(() => {
48
- CodeMirror.defineSimpleMode("syntaxHighlight", formatting);
49
- view.current = CodeMirror(ref.current, {
50
- ...customOptions,
51
- ...defaultOptions,
52
- mode: "syntaxHighlight",
53
- value,
30
+ if (!editorRef.current) {
31
+ return undefined;
32
+ }
33
+ // Create an extension for handling changes
34
+ const changeHandler = EditorView.updateListener.of((update) => {
35
+ if (update.docChanged) {
36
+ onChange(update.state.doc.toString());
37
+ }
38
+ if (onCursor && update.selectionSet) {
39
+ const range = update.state.selection.main;
40
+ onCursor(range.from, range.to);
41
+ }
42
+ });
43
+ const view = new EditorView({
44
+ state: EditorState.create({
45
+ doc: value,
46
+ extensions: [
47
+ bracketMatching(),
48
+ keymap.of([...defaultKeymap, ...historyKeymap]),
49
+ syntaxHighlighting(customHighlightStyle),
50
+ EditorView.lineWrapping,
51
+ disableAutofocus,
52
+ changeHandler,
53
+ placeholderText ? placeholder(placeholderText) : [],
54
+ ...extensions,
55
+ ],
56
+ }),
57
+ parent: editorRef.current,
54
58
  });
55
- view.current.on("change", handleOnChange);
56
- view.current.on("cursorActivity", reportCursorPosition);
57
- return () => {
58
- view.current.off("change", handleOnChange);
59
- view.current.off("cursorActivity", reportCursorPosition);
60
- };
61
- // eslint-disable-next-line react-hooks/exhaustive-deps
62
- }, []);
59
+ viewRef.current = view;
60
+ return () => view.destroy();
61
+ }, []); // eslint-disable-line react-hooks/exhaustive-deps
62
+ // Handle external value changes
63
63
  useEffect(() => {
64
- const cursor = view.current.getCursor();
65
- view.current.setValue(value);
66
- view.current.setCursor(cursor);
64
+ const view = viewRef.current;
65
+ if (!view)
66
+ return;
67
+ const currentValue = view.state.doc.toString();
68
+ if (currentValue !== value) {
69
+ const selection = view.state.selection;
70
+ const hasFocus = view.hasFocus;
71
+ const newLength = value.length;
72
+ // Adjust selection to stay within bounds of new content
73
+ const adjustedSelection = EditorSelection.create(selection.ranges.map((range) => {
74
+ const from = Math.min(range.from, newLength);
75
+ const to = Math.min(range.to, newLength);
76
+ return EditorSelection.range(from, to);
77
+ }), selection.mainIndex);
78
+ view.dispatch({
79
+ changes: { from: 0, to: currentValue.length, insert: value },
80
+ selection: adjustedSelection,
81
+ annotations: [
82
+ // Mark this as a remote change to avoid triggering the change handler
83
+ Transaction.remote.of(true),
84
+ ],
85
+ });
86
+ if (hasFocus) {
87
+ view.focus();
88
+ }
89
+ }
67
90
  }, [value]);
68
- return React.createElement("div", { className: cx(className, "gd-input-syntax-highlighting-input"), ref: ref });
91
+ return React.createElement("div", { className: cx(className, "gd-input-syntax-highlighting-input"), ref: editorRef });
69
92
  };
70
93
  //# sourceMappingURL=SyntaxHighlightingInput.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SyntaxHighlightingInput.js","sourceRoot":"","sources":["../../src/syntaxHighlightingInput/SyntaxHighlightingInput.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SyntaxHighlightingInput.js","sourceRoot":"","sources":["../../src/syntaxHighlightingInput/SyntaxHighlightingInput.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gooddata/sdk-ui-kit",
3
- "version": "10.27.0-alpha.43",
3
+ "version": "10.27.0-alpha.44",
4
4
  "description": "GoodData SDK - UI Building Components",
5
5
  "repository": {
6
6
  "type": "git",
@@ -41,7 +41,6 @@
41
41
  "@gooddata/number-formatter": "^1.0.6",
42
42
  "@tanstack/react-virtual": "^3.11.1",
43
43
  "classnames": "^2.3.1",
44
- "codemirror": "^5.54.0",
45
44
  "copy-to-clipboard": "^3.3.1",
46
45
  "cron-parser": "^5.1.1",
47
46
  "date-fns": "^2.22.1",
@@ -70,11 +69,16 @@
70
69
  "tslib": "^2.5.0",
71
70
  "uuid": "^8.3.2",
72
71
  "unified": "^11.0.5",
73
- "@gooddata/sdk-backend-spi": "10.27.0-alpha.43",
74
- "@gooddata/sdk-model": "10.27.0-alpha.43",
75
- "@gooddata/sdk-ui": "10.27.0-alpha.43",
76
- "@gooddata/sdk-ui-theme-provider": "10.27.0-alpha.43",
77
- "@gooddata/util": "10.27.0-alpha.43"
72
+ "@codemirror/language": "~6.11.0",
73
+ "@codemirror/state": "~6.5.2",
74
+ "@codemirror/view": "~6.36.4",
75
+ "@lezer/highlight": "~1.2.1",
76
+ "@codemirror/commands": "~6.8.1",
77
+ "@gooddata/sdk-backend-spi": "10.27.0-alpha.44",
78
+ "@gooddata/sdk-ui": "10.27.0-alpha.44",
79
+ "@gooddata/sdk-ui-theme-provider": "10.27.0-alpha.44",
80
+ "@gooddata/sdk-model": "10.27.0-alpha.44",
81
+ "@gooddata/util": "10.27.0-alpha.44"
78
82
  },
79
83
  "peerDependencies": {
80
84
  "react": "^16.10.0 || ^17.0.0 || ^18.0.0",
@@ -88,7 +92,6 @@
88
92
  "@testing-library/dom": "~9.2.0",
89
93
  "@testing-library/react": "^14.0.0",
90
94
  "@testing-library/user-event": "^14.4.2",
91
- "@types/codemirror": "^5.60.7",
92
95
  "@types/debounce-promise": "^3.1.4",
93
96
  "@types/kefir": "^3.8.5",
94
97
  "@types/lodash": "^4.14.202",
@@ -133,8 +136,8 @@
133
136
  "typescript": "5.3.3",
134
137
  "vitest": "3.0.8",
135
138
  "vitest-dom": "0.1.1",
136
- "@gooddata/reference-workspace": "10.27.0-alpha.43",
137
- "@gooddata/sdk-backend-mockingbird": "10.27.0-alpha.43"
139
+ "@gooddata/reference-workspace": "10.27.0-alpha.44",
140
+ "@gooddata/sdk-backend-mockingbird": "10.27.0-alpha.44"
138
141
  },
139
142
  "scripts": {
140
143
  "clean": "rm -rf ci dist esm coverage styles/css *.log tsconfig.tsbuildinfo",
@@ -158,6 +161,6 @@
158
161
  "validate-locales": "cd ../sdk-ui && npm run validate-locales",
159
162
  "validate-locales-ci": "cd ../sdk-ui && npm run validate-locales-ci",
160
163
  "validate-theming": "npm run scss && node scripts/validateCss.js",
161
- "scss": "sass --load-path=node_modules --load-path=node_modules/fixed-data-table-2/dist --load-path=node_modules/codemirror/lib styles/scss:styles/css"
164
+ "scss": "sass --load-path=node_modules --load-path=node_modules/fixed-data-table-2/dist styles/scss:styles/css"
162
165
  }
163
166
  }