@fc-components/monaco-editor 0.1.4 → 0.1.5

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
- import React, { useRef, useEffect } from 'react';
1
+ import React, { forwardRef, useRef, useEffect, useImperativeHandle } from 'react';
2
2
  import MonacoEditor from 'react-monaco-editor';
3
3
  import * as monaco from 'monaco-editor';
4
4
  import { languages, editor, KeyMod, KeyCode, Range, MarkerSeverity } from 'monaco-editor';
@@ -1984,7 +1984,7 @@ var getStyles = function getStyles(placeholder) {
1984
1984
  })
1985
1985
  };
1986
1986
  };
1987
- function PromQLEditor(props) {
1987
+ var index = /*#__PURE__*/forwardRef(function PromQLEditor(props, ref) {
1988
1988
  var id = v4();
1989
1989
  var _props$size = props.size,
1990
1990
  size = _props$size === void 0 ? 'middle' : _props$size,
@@ -2002,27 +2002,10 @@ function PromQLEditor(props) {
2002
2002
  var autocompleteDisposeFun = useRef(null);
2003
2003
  var containerRef = useRef(null);
2004
2004
  var dataProviderRef = useRef(null);
2005
+ var editorRef = useRef(null);
2005
2006
  var styles = getStyles(placeholder);
2006
- useEffect(function () {
2007
- // 注册 PromQL 语言
2008
- var aliases = promLanguageDefinition.aliases,
2009
- extensions = promLanguageDefinition.extensions,
2010
- mimetypes = promLanguageDefinition.mimetypes;
2011
- languages.register({
2012
- id: PROMQL_LANG_ID,
2013
- aliases: aliases,
2014
- extensions: extensions,
2015
- mimetypes: mimetypes
2016
- });
2017
- // 设置语法高亮
2018
- languages.setMonarchTokensProvider(PROMQL_LANG_ID, language);
2019
- // 设置语言配置
2020
- languages.setLanguageConfiguration(PROMQL_LANG_ID, languageConfiguration);
2021
- return function () {
2022
- autocompleteDisposeFun.current == null || autocompleteDisposeFun.current();
2023
- };
2024
- }, []);
2025
2007
  var handleEditorDidMount = function handleEditorDidMount(editor$1) {
2008
+ editorRef.current = editor$1;
2026
2009
  editor.defineTheme('n9e-dark', {
2027
2010
  base: 'vs-dark',
2028
2011
  inherit: true,
@@ -2137,6 +2120,32 @@ function PromQLEditor(props) {
2137
2120
  dataProvider.setVariablesNames(variablesNames || []);
2138
2121
  }
2139
2122
  }, [JSON.stringify(variablesNames)]);
2123
+ useEffect(function () {
2124
+ // 注册 PromQL 语言
2125
+ var aliases = promLanguageDefinition.aliases,
2126
+ extensions = promLanguageDefinition.extensions,
2127
+ mimetypes = promLanguageDefinition.mimetypes;
2128
+ languages.register({
2129
+ id: PROMQL_LANG_ID,
2130
+ aliases: aliases,
2131
+ extensions: extensions,
2132
+ mimetypes: mimetypes
2133
+ });
2134
+ // 设置语法高亮
2135
+ languages.setMonarchTokensProvider(PROMQL_LANG_ID, language);
2136
+ // 设置语言配置
2137
+ languages.setLanguageConfiguration(PROMQL_LANG_ID, languageConfiguration);
2138
+ return function () {
2139
+ autocompleteDisposeFun.current == null || autocompleteDisposeFun.current();
2140
+ };
2141
+ }, []);
2142
+ useImperativeHandle(ref, function () {
2143
+ return {
2144
+ getEditor: function getEditor() {
2145
+ return editorRef.current;
2146
+ }
2147
+ };
2148
+ });
2140
2149
  return React.createElement("div", {
2141
2150
  className: 'ant-input' + (size ? " " + SIZE_MAP[size].className : '')
2142
2151
  }, React.createElement("div", {
@@ -2182,7 +2191,7 @@ function PromQLEditor(props) {
2182
2191
  wordWrap: 'on'
2183
2192
  }
2184
2193
  })));
2185
- }
2194
+ });
2186
2195
 
2187
- export { PromQLEditor as PromQLMonacoEditor };
2196
+ export { index as PromQLMonacoEditor };
2188
2197
  //# sourceMappingURL=monaco-editor.esm.js.map