pixel-react 1.15.12 → 1.15.13

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,4 +1,4 @@
1
- var html = {exports: {}};
1
+ var javascript = {exports: {}};
2
2
 
3
- export { html as __module };
3
+ export { javascript as __module };
4
4
  //# sourceMappingURL=index11.js.map
@@ -1,4 +1,4 @@
1
- var javascript = {exports: {}};
1
+ var html = {exports: {}};
2
2
 
3
- export { javascript as __module };
3
+ export { html as __module };
4
4
  //# sourceMappingURL=index12.js.map
@@ -3,6 +3,7 @@ import { forwardRef, useRef, useState, useEffect, useImperativeHandle } from 're
3
3
  import Ft from '../../node_modules/@monaco-editor/react/dist/index.js';
4
4
  import { j as jsExports } from '../../_virtual/index2.js';
5
5
  import VariableDropdown from './VariableDropdown.js';
6
+ import { calculateDropdownPosition } from './calculateDropdownPosition.js';
6
7
 
7
8
  const Editor = /*#__PURE__*/forwardRef(({
8
9
  width = '100%',
@@ -41,12 +42,52 @@ const Editor = /*#__PURE__*/forwardRef(({
41
42
  }, [variableOptionsList]);
42
43
  const handleEditorDidMount = (editor, monaco) => {
43
44
  editorRef.current = editor;
44
- // Track caret line
45
45
  editor.onDidChangeCursorPosition(e => {
46
46
  setCurrentLine(e.position.lineNumber);
47
+ const position = editor.getPosition();
48
+ const model = editor.getModel();
49
+ if (!position || !model) return;
50
+ const currentLineContent = model.getLineContent(position.lineNumber);
51
+ const col = position.column - 1;
52
+ const dollarIndex = currentLineContent.lastIndexOf('$', col - 1);
53
+ if (dollarIndex !== -1 && col > dollarIndex && !/\s/.test(currentLineContent.slice(dollarIndex + 1, col))) {
54
+ varRef.current = dollarIndex;
55
+ filterVarRef.current = currentLineContent.slice(dollarIndex + 1, col);
56
+ const filterVal = (filterVarRef.current ?? '').toLowerCase();
57
+ const filteredVariable = variableOptionsRef.current.filter(e => {
58
+ const variableName = e.type === '_startforloop' && addForloopPrefix ? `FLV_for:${e.name}` : e.name;
59
+ return variableName.toLowerCase().includes(filterVal);
60
+ });
61
+ setFilteredVariableOptions(filteredVariable);
62
+ const visiblePosition = editor.getScrolledVisiblePosition(position);
63
+ const editorDomNode = editor.getDomNode();
64
+ setDropdownPosition(calculateDropdownPosition(visiblePosition, editorDomNode, 150));
65
+ setShowDropdown(true);
66
+ } else {
67
+ setShowDropdown(false);
68
+ varRef.current = null;
69
+ filterVarRef.current = null;
70
+ }
47
71
  });
48
72
  editor.onMouseDown(() => {
49
- setShowDropdown(false);
73
+ setTimeout(() => {
74
+ const editor = editorRef.current;
75
+ if (!editor) return;
76
+ const position = editor.getPosition();
77
+ const model = editor.getModel();
78
+ if (!position || !model) return;
79
+ const currentLineContent = model.getLineContent(position.lineNumber);
80
+ const columnIndex = position.column - 2;
81
+ if (currentLineContent[columnIndex] === '$') {
82
+ varRef.current = columnIndex;
83
+ filterVarRef.current = '';
84
+ setShowDropdown(true);
85
+ } else {
86
+ setShowDropdown(false);
87
+ varRef.current = null;
88
+ filterVarRef.current = null;
89
+ }
90
+ }, 0);
50
91
  });
51
92
  // Track selection changes (user highlighting text)
52
93
  editor.onDidChangeCursorSelection(() => {
@@ -84,30 +125,7 @@ const Editor = /*#__PURE__*/forwardRef(({
84
125
  }
85
126
  const visiblePosition = editor.getScrolledVisiblePosition(position);
86
127
  const editorDomNode = editor.getDomNode();
87
- if (!visiblePosition || !editorDomNode) return;
88
- const {
89
- top,
90
- left
91
- } = visiblePosition;
92
- const editorRect = editorDomNode.getBoundingClientRect();
93
- const editorHeight = editorDomNode.clientHeight;
94
- const dropdownHeight = 150;
95
- let dropdownTop = top;
96
- let dropdownLeft = left;
97
- if (dropdownTop + dropdownHeight > editorHeight - dropdownHeight + 130) {
98
- dropdownTop -= Math.floor(dropdownHeight / 2) + dropdownHeight - 35;
99
- } else {
100
- dropdownTop -= 10;
101
- }
102
- if (left > editorRect.width * 0.6) {
103
- dropdownLeft -= dropdownHeight + 50;
104
- } else if (left < editorRect.width * 0.5 + dropdownHeight) {
105
- dropdownLeft = dropdownLeft - 42;
106
- }
107
- setDropdownPosition({
108
- top: dropdownTop,
109
- left: dropdownLeft
110
- });
128
+ setDropdownPosition(calculateDropdownPosition(visiblePosition, editorDomNode, 150));
111
129
  setShowDropdown(true);
112
130
  } else {
113
131
  setShowDropdown(false);
@@ -169,6 +187,31 @@ const Editor = /*#__PURE__*/forwardRef(({
169
187
  }
170
188
  });
171
189
  };
190
+ useEffect(() => {
191
+ const editor = editorRef.current;
192
+ if (!editor) return;
193
+ const handleEditorBlur = () => {
194
+ setShowDropdown(false);
195
+ varRef.current = null;
196
+ filterVarRef.current = null;
197
+ decorationsRef.current = [];
198
+ setCurrentLine(0);
199
+ };
200
+ const blurDisposable = editor.onDidBlurEditorWidget(handleEditorBlur);
201
+ const handleDocumentClick = event => {
202
+ const editorDomNode = editor.getDomNode();
203
+ const clickedInsideEditor = editorDomNode && editorDomNode.contains(event.target);
204
+ if (!clickedInsideEditor || clickedInsideEditor && !event.target.closest('.view-line, .monaco-editor-textarea')) {
205
+ const textarea = editorDomNode?.querySelector('textarea');
206
+ if (textarea) textarea.blur();
207
+ }
208
+ };
209
+ document.addEventListener('mousedown', handleDocumentClick);
210
+ return () => {
211
+ blurDisposable.dispose();
212
+ document.removeEventListener('mousedown', handleDocumentClick);
213
+ };
214
+ }, [showDropdown]);
172
215
  useEffect(() => {
173
216
  const editor = editorRef.current;
174
217
  if (!editor || !currentLine) return;
@@ -1 +1 @@
1
- {"version":3,"file":"Editor.js","sources":["../../../src/components/Editor/Editor.tsx"],"sourcesContent":[null],"names":["Editor","forwardRef","width","height","VariableDropdownHeight","readOnly","value","handleChange","setValue","variableOptionsList","addForloopPrefix","language","theme","isRequisiteType","onPaste","showVariableDropdown","defaultValue","customOptions","editorVariableZindex","ref","editorRef","useRef","decorationsRef","varRef","filterVarRef","currentLine","setCurrentLine","useState","isTextSelected","setIsTextSelected","showDropdown","setShowDropdown","dropdownPosition","setDropdownPosition","top","left","filteredVariableOptions","setFilteredVariableOptions","variableOptionsRef","useEffect","current","handleEditorDidMount","editor","monaco","onDidChangeCursorPosition","e","position","lineNumber","onMouseDown","onDidChangeCursorSelection","selections","getSelections","hasSelection","some","sel","startLineNumber","endLineNumber","startColumn","endColumn","onDidChangeModelContent","content","getValue","getPosition","model","getModel","currentLineContent","getLineContent","columnIndex","column","slice","filteredVariable","filter","variableName","type","name","toLowerCase","includes","length","visiblePosition","getScrolledVisiblePosition","editorDomNode","getDomNode","editorRect","getBoundingClientRect","editorHeight","clientHeight","dropdownHeight","dropdownTop","dropdownLeft","Math","floor","onDidPaste","pastedText","beautifiedText","beautifyContent","languages","registerCompletionItemProvider","triggerCharacters","provideCompletionItems","textUntilPosition","getValueInRange","wordRange","getWordAtPosition","range","Range","suggestions","endsWith","push","label","kind","CompletionItemKind","Method","insertText","insertTextRules","CompletionItemInsertTextRule","InsertAsSnippet","detail","decorations","lineNumberDecorations","options","isWholeLine","className","linesDecorationsClassName","deltaDecorations","handleSelectSuggestion","suggestion","val","currentPostion","executeEdits","text","forceMoveMarkers","handleSelectVariable","option","textToInsert","dpName","varname","parentVariableType","_id","beautifyJS","indent_size","indent_char","max_preserve_newlines","preserve_newlines","keep_array_indentation","break_chained_methods","brace_style","space_before_conditional","unescape_strings","jslint_happy","end_with_newline","wrap_line_length","comma_first","e4x","indent_empty_lines","beautifyHTML","useImperativeHandle","getEditorInstance","beautify","getLanguageId","beautifiedContent","_jsxs","style","_jsx","MonacoEditor","lineNumbers","wordWrap","autoClosingBrackets","scrollBeyondLastLine","onMount","onChange","newValue","event","VariableDropdown","optionsList","onSelectVariable","zIndex"],"mappings":"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"}
1
+ {"version":3,"file":"Editor.js","sources":["../../../src/components/Editor/Editor.tsx"],"sourcesContent":[null],"names":["Editor","forwardRef","width","height","VariableDropdownHeight","readOnly","value","handleChange","setValue","variableOptionsList","addForloopPrefix","language","theme","isRequisiteType","onPaste","showVariableDropdown","defaultValue","customOptions","editorVariableZindex","ref","editorRef","useRef","decorationsRef","varRef","filterVarRef","currentLine","setCurrentLine","useState","isTextSelected","setIsTextSelected","showDropdown","setShowDropdown","dropdownPosition","setDropdownPosition","top","left","filteredVariableOptions","setFilteredVariableOptions","variableOptionsRef","useEffect","current","handleEditorDidMount","editor","monaco","onDidChangeCursorPosition","e","position","lineNumber","getPosition","model","getModel","currentLineContent","getLineContent","col","column","dollarIndex","lastIndexOf","test","slice","filterVal","toLowerCase","filteredVariable","filter","variableName","type","name","includes","visiblePosition","getScrolledVisiblePosition","editorDomNode","getDomNode","calculateDropdownPosition","onMouseDown","setTimeout","columnIndex","onDidChangeCursorSelection","selections","getSelections","hasSelection","some","sel","startLineNumber","endLineNumber","startColumn","endColumn","onDidChangeModelContent","content","getValue","length","onDidPaste","pastedText","beautifiedText","beautifyContent","languages","registerCompletionItemProvider","triggerCharacters","provideCompletionItems","textUntilPosition","getValueInRange","wordRange","getWordAtPosition","range","Range","suggestions","endsWith","push","label","kind","CompletionItemKind","Method","insertText","insertTextRules","CompletionItemInsertTextRule","InsertAsSnippet","detail","handleEditorBlur","blurDisposable","onDidBlurEditorWidget","handleDocumentClick","event","clickedInsideEditor","contains","target","closest","textarea","querySelector","blur","document","addEventListener","dispose","removeEventListener","decorations","lineNumberDecorations","options","isWholeLine","className","linesDecorationsClassName","deltaDecorations","handleSelectSuggestion","suggestion","val","currentPostion","executeEdits","text","forceMoveMarkers","handleSelectVariable","option","textToInsert","dpName","varname","parentVariableType","_id","beautifyJS","indent_size","indent_char","max_preserve_newlines","preserve_newlines","keep_array_indentation","break_chained_methods","brace_style","space_before_conditional","unescape_strings","jslint_happy","end_with_newline","wrap_line_length","comma_first","e4x","indent_empty_lines","beautifyHTML","useImperativeHandle","getEditorInstance","beautify","getLanguageId","beautifiedContent","_jsxs","style","_jsx","MonacoEditor","lineNumbers","wordWrap","autoClosingBrackets","scrollBeyondLastLine","onMount","onChange","newValue","VariableDropdown","optionsList","onSelectVariable","zIndex"],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export declare const calculateDropdownPosition: (visiblePosition: {
2
+ top: number;
3
+ left: number;
4
+ } | null, editorDomNode: HTMLElement | null, dropdownHeight?: number) => {
5
+ top: number;
6
+ left: number;
7
+ };
@@ -0,0 +1,31 @@
1
+ const calculateDropdownPosition = (visiblePosition, editorDomNode, dropdownHeight = 150) => {
2
+ if (!visiblePosition || !editorDomNode) return {
3
+ top: 0,
4
+ left: 0
5
+ };
6
+ const {
7
+ top,
8
+ left
9
+ } = visiblePosition;
10
+ const editorRect = editorDomNode.getBoundingClientRect();
11
+ const editorHeight = editorDomNode.clientHeight;
12
+ let dropdownTop = top;
13
+ let dropdownLeft = left;
14
+ if (dropdownTop + dropdownHeight > editorHeight - dropdownHeight + 130) {
15
+ dropdownTop -= Math.floor(dropdownHeight / 2) + dropdownHeight - 35;
16
+ } else {
17
+ dropdownTop -= 10;
18
+ }
19
+ if (left > editorRect.width * 0.6) {
20
+ dropdownLeft -= dropdownHeight + 50;
21
+ } else if (left < editorRect.width * 0.5 + dropdownHeight) {
22
+ dropdownLeft = dropdownLeft - 42;
23
+ }
24
+ return {
25
+ top: dropdownTop,
26
+ left: dropdownLeft
27
+ };
28
+ };
29
+
30
+ export { calculateDropdownPosition };
31
+ //# sourceMappingURL=calculateDropdownPosition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calculateDropdownPosition.js","sources":["../../../src/components/Editor/calculateDropdownPosition.ts"],"sourcesContent":[null],"names":["calculateDropdownPosition","visiblePosition","editorDomNode","dropdownHeight","top","left","editorRect","getBoundingClientRect","editorHeight","clientHeight","dropdownTop","dropdownLeft","Math","floor","width"],"mappings":"AAAO,MAAMA,yBAAyB,GAAGA,CACvCC,eAAqD,EACrDC,aAAiC,EACjCC,cAAA,GAAyB,GAAG,KACK;AACjC,EAAA,IAAI,CAACF,eAAe,IAAI,CAACC,aAAa,EAAE,OAAO;AAAEE,IAAAA,GAAG,EAAE,CAAC;AAAEC,IAAAA,IAAI,EAAE;GAAG;EAClE,MAAM;IAAED,GAAG;AAAEC,IAAAA;AAAI,GAAE,GAAGJ,eAAe;AACrC,EAAA,MAAMK,UAAU,GAAGJ,aAAa,CAACK,qBAAqB,EAAE;AACxD,EAAA,MAAMC,YAAY,GAAGN,aAAa,CAACO,YAAY;EAE/C,IAAIC,WAAW,GAAGN,GAAG;EACrB,IAAIO,YAAY,GAAGN,IAAI;EAEvB,IAAIK,WAAW,GAAGP,cAAc,GAAGK,YAAY,GAAGL,cAAc,GAAG,GAAG,EAAE;AACtEO,IAAAA,WAAW,IAAIE,IAAI,CAACC,KAAK,CAACV,cAAc,GAAG,CAAC,CAAC,GAAGA,cAAc,GAAG,EAAE;AACrE,EAAA,CAAC,MAAM;AACLO,IAAAA,WAAW,IAAI,EAAE;AACnB,EAAA;AAEA,EAAA,IAAIL,IAAI,GAAGC,UAAU,CAACQ,KAAK,GAAG,GAAG,EAAE;IACjCH,YAAY,IAAIR,cAAc,GAAG,EAAE;EACrC,CAAC,MAAM,IAAIE,IAAI,GAAGC,UAAU,CAACQ,KAAK,GAAG,GAAG,GAAGX,cAAc,EAAE;IACzDQ,YAAY,GAAGA,YAAY,GAAG,EAAE;AAClC,EAAA;EAEA,OAAO;AAAEP,IAAAA,GAAG,EAAEM,WAAW;AAAEL,IAAAA,IAAI,EAAEM;GAAc;AACjD;;;;"}
package/lib/index.cjs CHANGED
@@ -3687,6 +3687,11 @@ const ALPHANUMERIC_WITH_DOT_REGEX = /^[A-Za-z0-9. ]+$/;
3687
3687
  const EXCEL_SPACING_REGEX = /[\n\t"]/;
3688
3688
  //Alphabet validation along with spaces
3689
3689
  const ALPHABET_WITH_SPACES_ONLY_REGEX = /^[a-zA-Z ]*$/;
3690
+ // TestData file name validation
3691
+ // Allows letters, digits, spaces and these special chars:
3692
+ // ( ) , _ ; @ ! $ % ^ & { } " ' . -
3693
+ // Disallows: / \ : * < > ? [ ] |
3694
+ const FILENAME_VALIDATION_REGEX = /^(?![.\s])(?!.*[\/\\:\*<>\?\[\]\|])(?!.*[ .]$)[A-Za-z0-9\s(),_;@!\$%\^&\{\}"'\.-]+$/;
3690
3695
 
3691
3696
  const Dropdown$2 = /*#__PURE__*/React.forwardRef(({
3692
3697
  options,
@@ -59864,6 +59869,35 @@ function requireJs() {
59864
59869
 
59865
59870
  var jsExports = requireJs();
59866
59871
 
59872
+ const calculateDropdownPosition = (visiblePosition, editorDomNode, dropdownHeight = 150) => {
59873
+ if (!visiblePosition || !editorDomNode) return {
59874
+ top: 0,
59875
+ left: 0
59876
+ };
59877
+ const {
59878
+ top,
59879
+ left
59880
+ } = visiblePosition;
59881
+ const editorRect = editorDomNode.getBoundingClientRect();
59882
+ const editorHeight = editorDomNode.clientHeight;
59883
+ let dropdownTop = top;
59884
+ let dropdownLeft = left;
59885
+ if (dropdownTop + dropdownHeight > editorHeight - dropdownHeight + 130) {
59886
+ dropdownTop -= Math.floor(dropdownHeight / 2) + dropdownHeight - 35;
59887
+ } else {
59888
+ dropdownTop -= 10;
59889
+ }
59890
+ if (left > editorRect.width * 0.6) {
59891
+ dropdownLeft -= dropdownHeight + 50;
59892
+ } else if (left < editorRect.width * 0.5 + dropdownHeight) {
59893
+ dropdownLeft = dropdownLeft - 42;
59894
+ }
59895
+ return {
59896
+ top: dropdownTop,
59897
+ left: dropdownLeft
59898
+ };
59899
+ };
59900
+
59867
59901
  const Editor = /*#__PURE__*/React.forwardRef(({
59868
59902
  width = '100%',
59869
59903
  height = '100%',
@@ -59901,12 +59935,52 @@ const Editor = /*#__PURE__*/React.forwardRef(({
59901
59935
  }, [variableOptionsList]);
59902
59936
  const handleEditorDidMount = (editor, monaco) => {
59903
59937
  editorRef.current = editor;
59904
- // Track caret line
59905
59938
  editor.onDidChangeCursorPosition(e => {
59906
59939
  setCurrentLine(e.position.lineNumber);
59940
+ const position = editor.getPosition();
59941
+ const model = editor.getModel();
59942
+ if (!position || !model) return;
59943
+ const currentLineContent = model.getLineContent(position.lineNumber);
59944
+ const col = position.column - 1;
59945
+ const dollarIndex = currentLineContent.lastIndexOf('$', col - 1);
59946
+ if (dollarIndex !== -1 && col > dollarIndex && !/\s/.test(currentLineContent.slice(dollarIndex + 1, col))) {
59947
+ varRef.current = dollarIndex;
59948
+ filterVarRef.current = currentLineContent.slice(dollarIndex + 1, col);
59949
+ const filterVal = (filterVarRef.current ?? '').toLowerCase();
59950
+ const filteredVariable = variableOptionsRef.current.filter(e => {
59951
+ const variableName = e.type === '_startforloop' && addForloopPrefix ? `FLV_for:${e.name}` : e.name;
59952
+ return variableName.toLowerCase().includes(filterVal);
59953
+ });
59954
+ setFilteredVariableOptions(filteredVariable);
59955
+ const visiblePosition = editor.getScrolledVisiblePosition(position);
59956
+ const editorDomNode = editor.getDomNode();
59957
+ setDropdownPosition(calculateDropdownPosition(visiblePosition, editorDomNode, 150));
59958
+ setShowDropdown(true);
59959
+ } else {
59960
+ setShowDropdown(false);
59961
+ varRef.current = null;
59962
+ filterVarRef.current = null;
59963
+ }
59907
59964
  });
59908
59965
  editor.onMouseDown(() => {
59909
- setShowDropdown(false);
59966
+ setTimeout(() => {
59967
+ const editor = editorRef.current;
59968
+ if (!editor) return;
59969
+ const position = editor.getPosition();
59970
+ const model = editor.getModel();
59971
+ if (!position || !model) return;
59972
+ const currentLineContent = model.getLineContent(position.lineNumber);
59973
+ const columnIndex = position.column - 2;
59974
+ if (currentLineContent[columnIndex] === '$') {
59975
+ varRef.current = columnIndex;
59976
+ filterVarRef.current = '';
59977
+ setShowDropdown(true);
59978
+ } else {
59979
+ setShowDropdown(false);
59980
+ varRef.current = null;
59981
+ filterVarRef.current = null;
59982
+ }
59983
+ }, 0);
59910
59984
  });
59911
59985
  // Track selection changes (user highlighting text)
59912
59986
  editor.onDidChangeCursorSelection(() => {
@@ -59944,30 +60018,7 @@ const Editor = /*#__PURE__*/React.forwardRef(({
59944
60018
  }
59945
60019
  const visiblePosition = editor.getScrolledVisiblePosition(position);
59946
60020
  const editorDomNode = editor.getDomNode();
59947
- if (!visiblePosition || !editorDomNode) return;
59948
- const {
59949
- top,
59950
- left
59951
- } = visiblePosition;
59952
- const editorRect = editorDomNode.getBoundingClientRect();
59953
- const editorHeight = editorDomNode.clientHeight;
59954
- const dropdownHeight = 150;
59955
- let dropdownTop = top;
59956
- let dropdownLeft = left;
59957
- if (dropdownTop + dropdownHeight > editorHeight - dropdownHeight + 130) {
59958
- dropdownTop -= Math.floor(dropdownHeight / 2) + dropdownHeight - 35;
59959
- } else {
59960
- dropdownTop -= 10;
59961
- }
59962
- if (left > editorRect.width * 0.6) {
59963
- dropdownLeft -= dropdownHeight + 50;
59964
- } else if (left < editorRect.width * 0.5 + dropdownHeight) {
59965
- dropdownLeft = dropdownLeft - 42;
59966
- }
59967
- setDropdownPosition({
59968
- top: dropdownTop,
59969
- left: dropdownLeft
59970
- });
60021
+ setDropdownPosition(calculateDropdownPosition(visiblePosition, editorDomNode, 150));
59971
60022
  setShowDropdown(true);
59972
60023
  } else {
59973
60024
  setShowDropdown(false);
@@ -60029,6 +60080,31 @@ const Editor = /*#__PURE__*/React.forwardRef(({
60029
60080
  }
60030
60081
  });
60031
60082
  };
60083
+ React.useEffect(() => {
60084
+ const editor = editorRef.current;
60085
+ if (!editor) return;
60086
+ const handleEditorBlur = () => {
60087
+ setShowDropdown(false);
60088
+ varRef.current = null;
60089
+ filterVarRef.current = null;
60090
+ decorationsRef.current = [];
60091
+ setCurrentLine(0);
60092
+ };
60093
+ const blurDisposable = editor.onDidBlurEditorWidget(handleEditorBlur);
60094
+ const handleDocumentClick = event => {
60095
+ const editorDomNode = editor.getDomNode();
60096
+ const clickedInsideEditor = editorDomNode && editorDomNode.contains(event.target);
60097
+ if (!clickedInsideEditor || clickedInsideEditor && !event.target.closest('.view-line, .monaco-editor-textarea')) {
60098
+ const textarea = editorDomNode?.querySelector('textarea');
60099
+ if (textarea) textarea.blur();
60100
+ }
60101
+ };
60102
+ document.addEventListener('mousedown', handleDocumentClick);
60103
+ return () => {
60104
+ blurDisposable.dispose();
60105
+ document.removeEventListener('mousedown', handleDocumentClick);
60106
+ };
60107
+ }, [showDropdown]);
60032
60108
  React.useEffect(() => {
60033
60109
  const editor = editorRef.current;
60034
60110
  if (!editor || !currentLine) return;
@@ -113981,6 +114057,7 @@ exports.Editor = Editor;
113981
114057
  exports.ErrorBoundary = ErrorBoundary;
113982
114058
  exports.Excel = ExcelFile;
113983
114059
  exports.ExpandableMenu = ExpandableMenu;
114060
+ exports.FILENAME_VALIDATION_REGEX = FILENAME_VALIDATION_REGEX;
113984
114061
  exports.FILE_EXTENSION_REGEX = FILE_EXTENSION_REGEX;
113985
114062
  exports.FILE_NAME_REGEX = FILE_NAME_REGEX;
113986
114063
  exports.FieldSet = FieldSet;