* 💄 Hack to fix suggestion box
* 🐛 Fix validation messages
* 🐛 Relax operations check for managedReferences
* Change completion params
* 🏷️ Fix missing arg issue
* ✨ Add more tinymath fns
* 🐛 Improved validation around math operations + multiple named arguments
* 🐛 Use new onError feature in math expression
* ♻️ Refactor namedArguments validation
* 🐛 Fix circular dependency issue in tests + minor fixes
* Move formula into a tab
* 🔥 Leftovers from previous merge
* ✨ Move over namedArgs from previous function
* ✅ Add tests for transferable scenarios
* ✅ Fixed broken test
* ✨ Use custom label for axis
* Allow switching back and forth to formula tab
* Add a section for the function reference
* Add modal editor and markdown docs
* Change the way math nodes are validated
* Use custom portal to fix monaco positioning
* Fix model sharing issues
* Provide signature help
* 🐛 Fix small test issue
* 🐛 Mark pow arguments as required
* 🐛 validate on first render only if a formula is present
* 🔥 Remove log10 fn for now
* ✨ Improved math validation + add tests for math functions
* Fix mount/unmount issues with Monaco
* [Lens] Fully unmount React when flyout closes
* Fix bug with editor frame unmounting
* Fix type
* Add tests for monaco providers, add hover provider
* Add test for last_value
* Usability improvements
* Add KQL and Lucene named parameters
* Add kql, lucene completion and validation
* Fix autocomplete on weird characters and properly connect KQL
* Highlight functions that have additional requirements after validating
* Fix type error and move help text to popover
* Fix escape characters inside KQL
* 🐛 Fix dataType issue when moving over to Formula
* Automatically insert single quotes on every named param
* Only insert single quotes when typing kql= or lucene=
* Reorganize help popover
* Fix merge issues
* Update grammar for formulas
* Fix bad merge
* Rough fullscreen mode
* Type updates
* Pass through fullscreen state
* Remove more chrome from full screen mode
* Fix minor bugs in formula typing
* 🐛 Decouple column order of references and output
* 🔧 Fix tests and types
* ✅ Add first functional test
* Fix copying formulas and empty formula
* Trigger suggestion prompt when hitting enter on function or typing kql=
* 🐛 Prevent flyout from closing while interacting with monaco
* refactoring
* move main column generation into parse module
* fix tests
* refactor small formula styles and markup
* documentation
* adjustments in formula footer
* Formula refactoring (#12)
* refactoring
* move main column generation into parse module
* fix tests
* more style and markup tweak for custom formula
* Fix tests
* [Expressions] Use table column ID instead of name when set
* [Lens] Create managedReference type for formulas
* Fix test failures
* Fix i18n types
* fix fullscreen flex issues
* Delete managedReference when replacing
* refactor css and markup; add button placeholders
* [Lens] Formulas
* Tests for formula
Co-authored-by: Marco Liberati <marco.liberati@elastic.co>
* added error count placeholder
* Add tooltips
* Refactoring from code review
* Fix some editor issues
* Update ID matching to match by name sometimes
* Improve performance of Monaco, fix formulas with 0, update labels
* Improve performance of full screen toggle
* Fix formula tests
* fix stuff
* Add an extra case to prevent insertion of duplicate column
* Simplify logic and add test for output ID
* add telemetry for Lens formula (#15)
* Respond to review comments
* ✨ Improve the signatures with better documentation and examples
* adjust border styles to account for docs collapse
* refactor docs markup; restructure docs obj; styles
* Fix formula auto reordering (#18)
* fix formula auto reordering
* add unit test
* Fix and improve suggestion experience in Formula (#19)
* ✨ Revisit documentation and suggestions
* 👌 Integrated feedback
* ✨ Add query validation for quotes
* Usability updates & type fixes
* add search to formula
* fix form styles to match designs
* fix text styles; revert to Markdown for control
* 👌 Integrated more feedback
* improve search
* improve suggestions
* improve suggestions even more
* 🐛 Fix i18n issues (#22)
* Persist formula on leave, fix fullscreen and popovers
* Fix documentation tests
* 🏷️ fix type issue
* 🐛 Remove hidden operations from valid functions list
* 🐛 Fix empty string query edge case
* 🐛 Enable more suggestions + extends validation
* Fix tests that depended on setState being called without function
* Error state and text wrapping updates
* ✨ Add new module to CodeEditor for brackets matching (#25)
* Fix type
* show warning
* keep current quick function
* ✨ Improve suggestions within kql query
* 📷 Fix snapshot editor test
* 🐛 Improved suggestion for single quote and refactored debounce
* Fix lodash usage
* Fix tests
* Revert "keep current quick function"
This reverts commit ed477054c5
.
* Improve performance of dispatch by using timeout
* Improve memoization of datapanel
* Fix escape characters
* fix reduced suggestions
* fix responsiveness
* fix unit test
* Fix autocomplete on nested math
* Show errors and warnings on first render
* fix transposing column crash
* Update comment
* 🐛 Fix field error message
* fix test types
* 📝 Fix i18n name
* 💄 Manage wordwrap via react component
* Fix selector for palettes that interferes with quick functions
* Use word wrapping by default
* Errors for managed references are handled at the top level
* 🐛 Move the cursor just next to new inserted text
* ⚗️ First pass for performance
* 🐛 Fix unwanted change
* ⚡ Memoize as many combobox props as possible
* ⚡ More memoization
* Show errors in hover
* Use temporary invalid state when moving away from formula
* Remove setActiveDimension and shouldClose, fixed by async setters
* Fix test dependency
* do not show quick functions tab
* increase documentation popover width
* fix functional test
* Call setActiveDimension when updating visualization
* Simplify handling of flyout with incomplete columns
* Fix test issues
* add description to formula telemetry
* fix schema
* Update from design feedback
* More review comments
* Hide callout border from v7 theme
Co-authored-by: dej611 <dej611@gmail.com>
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Joe Reuter <johannes.reuter@elastic.co>
Co-authored-by: Michael Marcialis <michael.marcialis@elastic.co>
Co-authored-by: Joe Reuter <email@johannes-reuter.de>
Co-authored-by: Marco Liberati <marco.liberati@elastic.co>
Co-authored-by: Marco Liberati <dej611@users.noreply.github.com>
194 lines
5.1 KiB
JavaScript
194 lines
5.1 KiB
JavaScript
/*
|
|
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
* or more contributor license agreements. Licensed under the Elastic License
|
|
* 2.0; you may not use this file except in compliance with the Elastic License
|
|
* 2.0.
|
|
*/
|
|
|
|
const path = require('path');
|
|
const webpack = require('webpack');
|
|
const { stringifyRequest } = require('loader-utils'); // eslint-disable-line
|
|
|
|
const {
|
|
KIBANA_ROOT,
|
|
SHAREABLE_RUNTIME_OUTPUT,
|
|
LIBRARY_NAME,
|
|
SHAREABLE_RUNTIME_NAME,
|
|
} = require('./constants');
|
|
|
|
const isProd = process.env.NODE_ENV === 'production';
|
|
|
|
module.exports = {
|
|
context: KIBANA_ROOT,
|
|
entry: {
|
|
[SHAREABLE_RUNTIME_NAME]: require.resolve('./index.ts'),
|
|
},
|
|
mode: isProd ? 'production' : 'development',
|
|
plugins: isProd ? [new webpack.optimize.LimitChunkCountPlugin({ maxChunks: 1 })] : [],
|
|
output: {
|
|
path: SHAREABLE_RUNTIME_OUTPUT,
|
|
filename: '[name].js',
|
|
library: LIBRARY_NAME,
|
|
},
|
|
// Include a require alias for legacy UI code and styles
|
|
resolve: {
|
|
alias: {
|
|
'data/interpreter': path.resolve(
|
|
KIBANA_ROOT,
|
|
'src/plugins/data/public/expressions/interpreter'
|
|
),
|
|
'kbn/interpreter': path.resolve(KIBANA_ROOT, 'packages/kbn-interpreter/target/common'),
|
|
tinymath: path.resolve(KIBANA_ROOT, 'node_modules/tinymath/lib/tinymath.min.js'),
|
|
core_app_image_assets: path.resolve(KIBANA_ROOT, 'src/core/public/core_app/images'),
|
|
},
|
|
extensions: ['.js', '.json', '.ts', '.tsx', '.scss'],
|
|
symlinks: false,
|
|
},
|
|
module: {
|
|
rules: [
|
|
{
|
|
test: /\.js$/,
|
|
exclude: /node_modules/,
|
|
loaders: 'babel-loader',
|
|
options: {
|
|
presets: [require.resolve('@kbn/babel-preset/webpack_preset')],
|
|
},
|
|
},
|
|
{
|
|
test: /\.tsx?$/,
|
|
use: [
|
|
{
|
|
loader: 'babel-loader',
|
|
options: {
|
|
presets: [require.resolve('@kbn/babel-preset/webpack_preset')],
|
|
},
|
|
},
|
|
],
|
|
sideEffects: false,
|
|
},
|
|
{
|
|
test: /\.css$/,
|
|
exclude: /components/,
|
|
use: [
|
|
{ loader: 'style-loader' },
|
|
{ loader: 'css-loader' },
|
|
{
|
|
loader: 'postcss-loader',
|
|
options: {
|
|
config: {
|
|
path: require.resolve('./postcss.config.js'),
|
|
},
|
|
},
|
|
},
|
|
{
|
|
loader: 'string-replace-loader',
|
|
options: {
|
|
search: '__REPLACE_WITH_PUBLIC_PATH__',
|
|
replace: '/',
|
|
flags: 'g',
|
|
},
|
|
},
|
|
],
|
|
sideEffects: true,
|
|
},
|
|
{
|
|
test: /\.module\.s(a|c)ss$/,
|
|
loader: [
|
|
'style-loader',
|
|
{
|
|
loader: 'css-loader',
|
|
options: {
|
|
modules: {
|
|
localIdentName: '[name]__[local]___[hash:base64:5]',
|
|
},
|
|
localsConvention: 'camelCase',
|
|
sourceMap: !isProd,
|
|
},
|
|
},
|
|
{
|
|
loader: 'postcss-loader',
|
|
options: {
|
|
config: {
|
|
path: require.resolve('@kbn/optimizer/postcss.config.js'),
|
|
},
|
|
},
|
|
},
|
|
{
|
|
loader: 'sass-loader',
|
|
options: {
|
|
sourceMap: !isProd,
|
|
},
|
|
},
|
|
],
|
|
},
|
|
{
|
|
test: /\.scss$/,
|
|
exclude: [/node_modules/, /\.module\.s(a|c)ss$/],
|
|
use: [
|
|
{
|
|
loader: 'style-loader',
|
|
},
|
|
{
|
|
loader: 'css-loader',
|
|
options: {
|
|
sourceMap: !isProd,
|
|
},
|
|
},
|
|
{
|
|
loader: 'postcss-loader',
|
|
options: {
|
|
sourceMap: !isProd,
|
|
config: {
|
|
path: require.resolve('./postcss.config'),
|
|
},
|
|
},
|
|
},
|
|
{
|
|
loader: 'sass-loader',
|
|
options: {
|
|
prependData(loaderContext) {
|
|
return `@import ${stringifyRequest(
|
|
loaderContext,
|
|
path.resolve(KIBANA_ROOT, 'src/core/public/core_app/styles/_globals_v7light.scss')
|
|
)};\n`;
|
|
},
|
|
webpackImporter: false,
|
|
sassOptions: {
|
|
outputStyle: 'nested',
|
|
includePaths: [path.resolve(KIBANA_ROOT, 'node_modules')],
|
|
},
|
|
},
|
|
},
|
|
],
|
|
},
|
|
{
|
|
test: require.resolve('jquery'),
|
|
loader: 'expose-loader?jQuery!expose-loader?$',
|
|
},
|
|
{
|
|
test: /\.(woff|woff2|ttf|eot|svg|ico)(\?|$)/,
|
|
loader: 'url-loader',
|
|
sideEffects: false,
|
|
},
|
|
{
|
|
test: /\.html$/,
|
|
loader: 'html-loader',
|
|
exclude: /node_modules/,
|
|
},
|
|
{
|
|
test: [
|
|
require.resolve('@elastic/eui/es/components/code_editor'),
|
|
require.resolve('@elastic/eui/es/components/drag_and_drop'),
|
|
require.resolve('@elastic/eui/packages/react-datepicker'),
|
|
require.resolve('highlight.js'),
|
|
],
|
|
use: require.resolve('null-loader'),
|
|
},
|
|
],
|
|
},
|
|
node: {
|
|
fs: 'empty',
|
|
child_process: 'empty',
|
|
},
|
|
};
|