diff --git a/packages/grafana-ui/.storybook/webpack.config.js b/packages/grafana-ui/.storybook/webpack.config.js
index 77e235c324f..b20437d5b62 100644
--- a/packages/grafana-ui/.storybook/webpack.config.js
+++ b/packages/grafana-ui/.storybook/webpack.config.js
@@ -2,6 +2,7 @@ const path = require('path');
const TerserPlugin = require('terser-webpack-plugin');
const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin');
module.exports = ({ config, mode }) => {
+ const isProductionBuild = mode === 'PRODUCTION';
config.module.rules = [
...(config.module.rules || []),
{
@@ -84,12 +85,6 @@ module.exports = ({ config, mode }) => {
chunks: 'all',
minChunks: 1,
cacheGroups: {
- monaco: {
- test: /[\\/]node_modules[\\/](monaco-editor)[\\/].*[jt]sx?$/,
- chunks: 'initial',
- priority: 20,
- enforce: true,
- },
vendors: {
test: /[\\/]node_modules[\\/].*[jt]sx?$/,
chunks: 'initial',
@@ -105,11 +100,13 @@ module.exports = ({ config, mode }) => {
},
},
},
- minimize: true,
- minimizer: [
- new TerserPlugin({ cache: false, parallel: false, sourceMap: false, exclude: /monaco/ }),
- new OptimizeCSSAssetsPlugin({}),
- ],
+ minimize: isProductionBuild,
+ minimizer: isProductionBuild
+ ? [
+ new TerserPlugin({ cache: false, parallel: false, sourceMap: false, exclude: /monaco/ }),
+ new OptimizeCSSAssetsPlugin({}),
+ ]
+ : [],
};
config.resolve.extensions.push('.ts', '.tsx', '.mdx');
diff --git a/packages/grafana-ui/src/components/Monaco/CodeEditor.mdx b/packages/grafana-ui/src/components/Monaco/CodeEditor.mdx
index c7d157c7b99..f229f70172f 100644
--- a/packages/grafana-ui/src/components/Monaco/CodeEditor.mdx
+++ b/packages/grafana-ui/src/components/Monaco/CodeEditor.mdx
@@ -1,8 +1,8 @@
import { Meta, Story, Preview, Props } from '@storybook/addon-docs/blocks';
-import { CodeEditor } from './CodeEditor';
+import { CodeEditor } from './CodeEditorLazy';
# CodeEditor
-Monaco Code editor
\ No newline at end of file
+Monaco Code editor
diff --git a/packages/grafana-ui/src/components/Monaco/CodeEditor.story.tsx b/packages/grafana-ui/src/components/Monaco/CodeEditor.story.internal.tsx
similarity index 62%
rename from packages/grafana-ui/src/components/Monaco/CodeEditor.story.tsx
rename to packages/grafana-ui/src/components/Monaco/CodeEditor.story.internal.tsx
index 067b707f30a..174f5ea9e71 100644
--- a/packages/grafana-ui/src/components/Monaco/CodeEditor.story.tsx
+++ b/packages/grafana-ui/src/components/Monaco/CodeEditor.story.internal.tsx
@@ -1,12 +1,27 @@
import React from 'react';
-import { text } from '@storybook/addon-knobs';
+import { number, text } from '@storybook/addon-knobs';
import { action } from '@storybook/addon-actions';
import { withCenteredStory } from '../../utils/storybook/withCenteredStory';
import mdx from './CodeEditor.mdx';
-import CodeEditor from './CodeEditor';
+import { CodeEditor } from './CodeEditorLazy';
const getKnobs = () => {
+ const CONTAINER_GROUP = 'Container options';
+ // ---
+ const containerWidth = number(
+ 'Container width',
+ 300,
+ {
+ range: true,
+ min: 100,
+ max: 500,
+ step: 10,
+ },
+ CONTAINER_GROUP
+ );
+
return {
+ containerWidth,
text: text('Body', 'SELECT * FROM table LIMIT 10'),
language: text('Language', 'sql'),
};
@@ -24,17 +39,17 @@ export default {
};
export const basic = () => {
- const { text, language } = getKnobs();
+ const { containerWidth, text, language } = getKnobs();
return (
{
- console.log('Blur: ', text);
action('code blur')(text);
}}
onSave={(text: string) => {
- console.log('Save: ', text);
action('code saved')(text);
}}
/>