@fc-components/monaco-editor 0.1.5 → 0.1.7
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.
- package/dist/monaco-editor.cjs.development.js +75 -67
- package/dist/monaco-editor.cjs.development.js.map +1 -1
- package/dist/monaco-editor.cjs.production.min.js +1 -1
- package/dist/monaco-editor.cjs.production.min.js.map +1 -1
- package/dist/monaco-editor.esm.js +77 -69
- package/dist/monaco-editor.esm.js.map +1 -1
- package/dist/promql/index.d.ts +4 -2
- package/package.json +1 -1
- package/src/promql/index.tsx +98 -75
|
@@ -1990,13 +1990,12 @@ var getStyles = function getStyles(placeholder) {
|
|
|
1990
1990
|
})
|
|
1991
1991
|
};
|
|
1992
1992
|
};
|
|
1993
|
-
|
|
1993
|
+
function PromQLEditor(props) {
|
|
1994
1994
|
var id = uuid.v4();
|
|
1995
1995
|
var _props$size = props.size,
|
|
1996
1996
|
size = _props$size === void 0 ? 'middle' : _props$size,
|
|
1997
1997
|
_props$theme = props.theme,
|
|
1998
1998
|
theme = _props$theme === void 0 ? 'light' : _props$theme,
|
|
1999
|
-
variablesNames = props.variablesNames,
|
|
2000
1999
|
value = props.value,
|
|
2001
2000
|
placeholder = props.placeholder,
|
|
2002
2001
|
interpolateString = props.interpolateString,
|
|
@@ -2004,7 +2003,8 @@ var index = /*#__PURE__*/React.forwardRef(function PromQLEditor(props, ref) {
|
|
|
2004
2003
|
enableAutocomplete = _props$enableAutocomp === void 0 ? true : _props$enableAutocomp,
|
|
2005
2004
|
onChange = props.onChange,
|
|
2006
2005
|
onShiftEnter = props.onShiftEnter,
|
|
2007
|
-
onBlur = props.onBlur
|
|
2006
|
+
onBlur = props.onBlur,
|
|
2007
|
+
editorDidMount = props.editorDidMount;
|
|
2008
2008
|
var autocompleteDisposeFun = React.useRef(null);
|
|
2009
2009
|
var containerRef = React.useRef(null);
|
|
2010
2010
|
var dataProviderRef = React.useRef(null);
|
|
@@ -2030,35 +2030,7 @@ var index = /*#__PURE__*/React.forwardRef(function PromQLEditor(props, ref) {
|
|
|
2030
2030
|
editor.onDidFocusEditorText(function () {
|
|
2031
2031
|
isEditorFocused.set(true);
|
|
2032
2032
|
});
|
|
2033
|
-
|
|
2034
|
-
var dataProvider = new DataProvider({
|
|
2035
|
-
url: props.url,
|
|
2036
|
-
lookbackInterval: props.lookbackInterval,
|
|
2037
|
-
variablesNames: props.variablesNames,
|
|
2038
|
-
durationVariablesCompletion: props.durationVariablesCompletion,
|
|
2039
|
-
request: props.request,
|
|
2040
|
-
httpMethod: props.httpMethod,
|
|
2041
|
-
apiPrefix: props.apiPrefix,
|
|
2042
|
-
httpErrorHandler: props.httpErrorHandler
|
|
2043
|
-
});
|
|
2044
|
-
dataProviderRef.current = dataProvider;
|
|
2045
|
-
dataProvider.start();
|
|
2046
|
-
var completionProvider = getCompletionProvider(monaco, dataProvider);
|
|
2047
|
-
var filteringCompletionProvider = _extends({}, completionProvider, {
|
|
2048
|
-
provideCompletionItems: function provideCompletionItems(model, position, context, token) {
|
|
2049
|
-
var _editor$getModel;
|
|
2050
|
-
if (((_editor$getModel = editor.getModel()) == null ? void 0 : _editor$getModel.id) !== model.id) {
|
|
2051
|
-
return {
|
|
2052
|
-
suggestions: []
|
|
2053
|
-
};
|
|
2054
|
-
}
|
|
2055
|
-
return completionProvider.provideCompletionItems(model, position, context, token);
|
|
2056
|
-
}
|
|
2057
|
-
});
|
|
2058
|
-
var _monaco$languages$reg = monaco.languages.registerCompletionItemProvider(PROMQL_LANG_ID, filteringCompletionProvider),
|
|
2059
|
-
dispose = _monaco$languages$reg.dispose;
|
|
2060
|
-
autocompleteDisposeFun.current = dispose;
|
|
2061
|
-
}
|
|
2033
|
+
// set the height of the editor container
|
|
2062
2034
|
var updateElementHeight = function updateElementHeight() {
|
|
2063
2035
|
var containerDiv = containerRef.current;
|
|
2064
2036
|
if (containerDiv !== null) {
|
|
@@ -2083,26 +2055,6 @@ var index = /*#__PURE__*/React.forwardRef(function PromQLEditor(props, ref) {
|
|
|
2083
2055
|
editor.addCommand(monaco.KeyMod.Shift | monaco.KeyCode.Enter, function () {
|
|
2084
2056
|
onShiftEnter == null || onShiftEnter(editor.getValue());
|
|
2085
2057
|
}, 'isEditorFocused' + id);
|
|
2086
|
-
if (placeholder) {
|
|
2087
|
-
var placeholderDecorators = [{
|
|
2088
|
-
range: new monaco.Range(1, 1, 1, 1),
|
|
2089
|
-
options: {
|
|
2090
|
-
className: styles.placeholder,
|
|
2091
|
-
isWholeLine: true
|
|
2092
|
-
}
|
|
2093
|
-
}];
|
|
2094
|
-
var decorators = [];
|
|
2095
|
-
var checkDecorators = function checkDecorators() {
|
|
2096
|
-
var model = editor.getModel();
|
|
2097
|
-
if (!model) {
|
|
2098
|
-
return;
|
|
2099
|
-
}
|
|
2100
|
-
var newDecorators = model.getValueLength() === 0 ? placeholderDecorators : [];
|
|
2101
|
-
decorators = model.deltaDecorations(decorators, newDecorators);
|
|
2102
|
-
};
|
|
2103
|
-
checkDecorators();
|
|
2104
|
-
editor.onDidChangeModelContent(checkDecorators);
|
|
2105
|
-
}
|
|
2106
2058
|
editor.onDidChangeModelContent(function () {
|
|
2107
2059
|
var model = editor.getModel();
|
|
2108
2060
|
if (model) {
|
|
@@ -2119,13 +2071,8 @@ var index = /*#__PURE__*/React.forwardRef(function PromQLEditor(props, ref) {
|
|
|
2119
2071
|
monaco.editor.setModelMarkers(model, 'owner', markers);
|
|
2120
2072
|
}
|
|
2121
2073
|
});
|
|
2074
|
+
editorDidMount == null || editorDidMount(editor);
|
|
2122
2075
|
};
|
|
2123
|
-
React.useEffect(function () {
|
|
2124
|
-
var dataProvider = dataProviderRef.current;
|
|
2125
|
-
if (dataProvider) {
|
|
2126
|
-
dataProvider.setVariablesNames(variablesNames || []);
|
|
2127
|
-
}
|
|
2128
|
-
}, [JSON.stringify(variablesNames)]);
|
|
2129
2076
|
React.useEffect(function () {
|
|
2130
2077
|
// 注册 PromQL 语言
|
|
2131
2078
|
var aliases = monacoPromql.promLanguageDefinition.aliases,
|
|
@@ -2143,15 +2090,76 @@ var index = /*#__PURE__*/React.forwardRef(function PromQLEditor(props, ref) {
|
|
|
2143
2090
|
monaco.languages.setLanguageConfiguration(PROMQL_LANG_ID, languageConfiguration);
|
|
2144
2091
|
return function () {
|
|
2145
2092
|
autocompleteDisposeFun.current == null || autocompleteDisposeFun.current();
|
|
2093
|
+
dataProviderRef.current = null;
|
|
2146
2094
|
};
|
|
2147
2095
|
}, []);
|
|
2148
|
-
React.
|
|
2149
|
-
|
|
2150
|
-
|
|
2151
|
-
|
|
2152
|
-
|
|
2153
|
-
|
|
2154
|
-
|
|
2096
|
+
React.useEffect(function () {
|
|
2097
|
+
var editor = editorRef.current;
|
|
2098
|
+
if (!editor) return;
|
|
2099
|
+
// clean up previous autocomplete provider
|
|
2100
|
+
if (autocompleteDisposeFun.current) {
|
|
2101
|
+
autocompleteDisposeFun.current();
|
|
2102
|
+
autocompleteDisposeFun.current = null;
|
|
2103
|
+
}
|
|
2104
|
+
dataProviderRef.current = null;
|
|
2105
|
+
// If autocomplete is enabled, set up a new autocomplete provider
|
|
2106
|
+
if (enableAutocomplete) {
|
|
2107
|
+
var dataProvider = new DataProvider({
|
|
2108
|
+
url: props.url,
|
|
2109
|
+
lookbackInterval: props.lookbackInterval,
|
|
2110
|
+
variablesNames: props.variablesNames,
|
|
2111
|
+
durationVariablesCompletion: props.durationVariablesCompletion,
|
|
2112
|
+
request: props.request,
|
|
2113
|
+
httpMethod: props.httpMethod,
|
|
2114
|
+
apiPrefix: props.apiPrefix,
|
|
2115
|
+
httpErrorHandler: props.httpErrorHandler
|
|
2116
|
+
});
|
|
2117
|
+
dataProviderRef.current = dataProvider;
|
|
2118
|
+
dataProvider.start();
|
|
2119
|
+
var completionProvider = getCompletionProvider(monaco, dataProvider);
|
|
2120
|
+
var filteringCompletionProvider = _extends({}, completionProvider, {
|
|
2121
|
+
provideCompletionItems: function provideCompletionItems(model, position, context, token) {
|
|
2122
|
+
var _editor$getModel;
|
|
2123
|
+
if (((_editor$getModel = editor.getModel()) == null ? void 0 : _editor$getModel.id) !== model.id) {
|
|
2124
|
+
return {
|
|
2125
|
+
suggestions: []
|
|
2126
|
+
};
|
|
2127
|
+
}
|
|
2128
|
+
return completionProvider.provideCompletionItems(model, position, context, token);
|
|
2129
|
+
}
|
|
2130
|
+
});
|
|
2131
|
+
var _monaco$languages$reg = monaco.languages.registerCompletionItemProvider(PROMQL_LANG_ID, filteringCompletionProvider),
|
|
2132
|
+
dispose = _monaco$languages$reg.dispose;
|
|
2133
|
+
autocompleteDisposeFun.current = dispose;
|
|
2134
|
+
}
|
|
2135
|
+
// clean up previous placeholder decorations
|
|
2136
|
+
var model = editor.getModel();
|
|
2137
|
+
if (model) {
|
|
2138
|
+
model.deltaDecorations(model.getAllDecorations().map(function (d) {
|
|
2139
|
+
return d.id;
|
|
2140
|
+
}), []);
|
|
2141
|
+
}
|
|
2142
|
+
if (placeholder) {
|
|
2143
|
+
var placeholderDecorators = [{
|
|
2144
|
+
range: new monaco.Range(1, 1, 1, 1),
|
|
2145
|
+
options: {
|
|
2146
|
+
className: styles.placeholder,
|
|
2147
|
+
isWholeLine: true
|
|
2148
|
+
}
|
|
2149
|
+
}];
|
|
2150
|
+
var decorators = [];
|
|
2151
|
+
var checkDecorators = function checkDecorators() {
|
|
2152
|
+
var model = editor.getModel();
|
|
2153
|
+
if (!model) {
|
|
2154
|
+
return;
|
|
2155
|
+
}
|
|
2156
|
+
var newDecorators = model.getValueLength() === 0 ? placeholderDecorators : [];
|
|
2157
|
+
decorators = model.deltaDecorations(decorators, newDecorators);
|
|
2158
|
+
};
|
|
2159
|
+
checkDecorators();
|
|
2160
|
+
editor.onDidChangeModelContent(checkDecorators);
|
|
2161
|
+
}
|
|
2162
|
+
}, [enableAutocomplete, props.url, props.lookbackInterval, JSON.stringify(props.variablesNames), props.durationVariablesCompletion, props.httpMethod, props.apiPrefix, placeholder]);
|
|
2155
2163
|
return React__default.createElement("div", {
|
|
2156
2164
|
className: 'ant-input' + (size ? " " + SIZE_MAP[size].className : '')
|
|
2157
2165
|
}, React__default.createElement("div", {
|
|
@@ -2197,7 +2205,7 @@ var index = /*#__PURE__*/React.forwardRef(function PromQLEditor(props, ref) {
|
|
|
2197
2205
|
wordWrap: 'on'
|
|
2198
2206
|
}
|
|
2199
2207
|
})));
|
|
2200
|
-
}
|
|
2208
|
+
}
|
|
2201
2209
|
|
|
2202
|
-
exports.PromQLMonacoEditor =
|
|
2210
|
+
exports.PromQLMonacoEditor = PromQLEditor;
|
|
2203
2211
|
//# sourceMappingURL=monaco-editor.cjs.development.js.map
|