Merge remote-tracking branch 'origin/master' into feature/merge-code

This commit is contained in:
Fuyao Zhao 2019-01-22 18:07:01 -08:00
commit b40bfdeb45
254 changed files with 5042 additions and 3061 deletions

View file

@ -4,6 +4,7 @@
"server": "src/server",
"console": "src/legacy/core_plugins/console",
"inputControl": "src/legacy/core_plugins/input_control_vis",
"interpreter": "src/legacy/core_plugins/interpreter",
"kbn": "src/legacy/core_plugins/kibana",
"kbnVislibVisTypes": "src/legacy/core_plugins/kbn_vislib_vis_types",
"markdownVis": "src/legacy/core_plugins/markdown_vis",
@ -26,6 +27,7 @@
"xpack.licenseMgmt": "x-pack/plugins/license_management",
"xpack.ml": "x-pack/plugins/ml",
"xpack.logstash": "x-pack/plugins/logstash",
"xpack.main": "x-pack/plugins/xpack_main",
"xpack.monitoring": "x-pack/plugins/monitoring",
"xpack.remoteClusters": "x-pack/plugins/remote_clusters",
"xpack.reporting": "x-pack/plugins/reporting",

View file

@ -55,7 +55,6 @@ The list of common parameters:
- *title*: title of your visualization as displayed in kibana
- *icon*: <string> the https://elastic.github.io/eui/#/display/icons[EUI icon] type to use for this visualization
- *image*: instead of an icon you can provide a SVG image (imported)
- *legacyIcon*: (DEPRECATED) <string> provide a class name (e.g. for a font awesome icon)
- *description*: description of your visualization as shown in kibana
- *hidden*: <bool> if set to true, will hide the type from showing up in the visualization wizard
- *visConfig*: object holding visualization parameters

View file

@ -9,6 +9,13 @@ your application to Kibana 7.0.
See also <<release-highlights>> and <<release-notes>>.
[float]
=== Removed support for users relying on direct index privileges to the Kibana index in Elasticsearch
*Details:* With the introduction of Kibana RBAC in 6.4, users no longer require privileges to the Kibana index in Elasticsearch. Instead, users
should be granted <<kibana-privileges>>. Prior to 7.0, when a user that relies upon direct index privileges logs into Kibana, a deprecation warning is logged. If you are using the `kibana_user` or `kibana_dashboard_only_user` role to grant access to Kibana, or a custom role using <<kibana-privileges>>, no changes are required.
*Impact:* You must change any roles which grant access to Kibana using index privileges to instead use <<kibana-privileges>>. Watcher jobs using the Reporting attachment type must be updated as well.
[float]
=== Removed support for tribe nodes
*Details:* Elasticsearch 7.0 removes the tribe node feature, so Kibana removes it as well.

View file

@ -20,19 +20,28 @@ than running multiple jobs against the same data.
A _population job_ detects activity that is unusual compared to the behavior of
the population. For more information, see
{stack-ov}/ml-configuring-pop.html[Performing Population Analysis].
{stack-ov}/ml-configuring-pop.html[Performing population analysis].
An _advanced job_ can contain multiple detectors and enables you to configure all
job settings.
{kib} can also recognize certain types of data and provide specialized wizards
for that context. For example, if you use {filebeat-ref}/index.html[Filebeat]
for that context. For example, if you use {filebeat-ref}/index.html[{filebeat}]
to ship access logs from your
http://nginx.org/[Nginx] and https://httpd.apache.org/[Apache] HTTP servers to
{es}, the following wizards appear:
[role="screenshot"]
image::ml/images/ml-data-recognizer.jpg[A screenshot of the Apache and NGINX job creation wizards]
image::ml/images/ml-data-recognizer-filebeat.jpg[A screenshot of the {filebeat} job creation wizards]
Likewise, if you use {auditbeat-ref}/index.html[{auditbeat}] to audit process
activity on your systems, the following wizards appear:
[role="screenshot"]
image::ml/images/ml-data-recognizer-auditbeat.jpg[A screenshot of the {auditbeat} job creation wizards]
These wizards create {ml} jobs, dashboards, searches, and visualizations that
are customized to help you analyze your {auditbeat} and {filebeat} data.
If you are not certain which type of job to create, you can use the
*Data Visualizer* to learn more about your data and to identify possible fields

Binary file not shown.

After

Width:  |  Height:  |  Size: 173 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 169 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 250 KiB

View file

@ -46,9 +46,13 @@ themselves, and those messages will always be in English, so we don't have to ke
defined inline.
__Note:__ locale defined in `i18n.locale` and the one used for translation files should
match exactly, e.g. `i18n.locale: zn` and `.../translations/zh_CN.json` won't match and
default English translations will be used, but `i18n.locale: zh_CN` and`.../translations/zh_CN.json`
or `i18n.locale: zn` and `.../translations/zn.json` will work as expected.
match exactly, e.g. `i18n.locale: zh` and `.../translations/zh-CN.json` won't match and
default English translations will be used, but `i18n.locale: zh-CN` and`.../translations/zh-CN.json`
or `i18n.locale: zh` and `.../translations/zh.json` will work as expected.
__Note:__ locale should look like `zh-CN` where `zh` - lowercase two-letter or three-letter ISO-639 code
and `CN` - uppercase two-letter ISO-3166 code (optional).
[ISO-639](https://www.iso.org/iso-639-language-codes.html) and [ISO-3166](https://www.iso.org/iso-3166-country-codes.html) codes should be separated with `-` character.
## I18n engine

View file

@ -153,8 +153,7 @@ describe('I18n engine', () => {
});
test('should add messages with normalized passed locale', () => {
const locale = 'en-us';
i18n.setLocale(locale);
i18n.setLocale('en-US');
i18n.addTranslation(
{
@ -162,10 +161,10 @@ describe('I18n engine', () => {
['a.b.c']: 'bar',
},
},
'en_US'
'en-us'
);
expect(i18n.getLocale()).toBe(locale);
expect(i18n.getLocale()).toBe('en-us');
expect(i18n.getTranslation()).toEqual({
messages: {
['a.b.c']: 'bar',
@ -234,7 +233,7 @@ describe('I18n engine', () => {
});
test('should normalize passed locale', () => {
i18n.setLocale('en_US');
i18n.setLocale('en-US');
expect(i18n.getLocale()).toBe('en-us');
});
});
@ -267,7 +266,7 @@ describe('I18n engine', () => {
});
test('should normalize passed locale', () => {
i18n.setDefaultLocale('en_US');
i18n.setDefaultLocale('en-US');
expect(i18n.getDefaultLocale()).toBe('en-us');
});

View file

@ -30,7 +30,6 @@ import { isPseudoLocale, translateUsingPseudoLocale } from './pseudo_locale';
import './locales.js';
const EN_LOCALE = 'en';
const LOCALE_DELIMITER = '-';
const translationsForLocale: Record<string, Translation> = {};
const getMessageFormat = memoizeIntlConstructor(IntlMessageFormat);
@ -55,7 +54,7 @@ function getMessageById(id: string): string | undefined {
* @param locale
*/
function normalizeLocale(locale: string) {
return locale.toLowerCase().replace('_', LOCALE_DELIMITER);
return locale.toLowerCase();
}
/**

View file

@ -104,9 +104,14 @@ module.exports = function (grunt) {
Promise.all([uiFrameworkWatch(), uiFrameworkServerStart()]).then(done);
});
grunt.registerTask('compileCss', function () {
grunt.registerTask('compileCssLight', function () {
const done = this.async();
uiFrameworkCompile().then(done);
uiFrameworkCompileLight().then(done);
});
grunt.registerTask('compileCssDark', function () {
const done = this.async();
uiFrameworkCompileDark().then(done);
});
function uiFrameworkServerStart() {
@ -141,9 +146,36 @@ module.exports = function (grunt) {
});
}
function uiFrameworkCompile() {
const src = 'src/index.scss';
const dest = 'dist/ui_framework.css';
function uiFrameworkCompileLight() {
const src = 'src/kui_light.scss';
const dest = 'dist/kui_light.css';
return new Promise(resolve => {
sass.render({
file: src,
}, function (error, result) {
if (error) {
grunt.log.error(error);
}
postcss([postcssConfig])
.process(result.css, { from: src, to: dest })
.then(result => {
grunt.file.write(dest, result.css);
if (result.map) {
grunt.file.write(`${dest}.map`, result.map);
}
resolve();
});
});
});
}
function uiFrameworkCompileDark() {
const src = 'src/kui_dark.scss';
const dest = 'dist/kui_dark.css';
return new Promise(resolve => {
sass.render({
@ -175,7 +207,8 @@ module.exports = function (grunt) {
grunt.util.spawn({
cmd: isPlatformWindows ? '.\\node_modules\\.bin\\grunt.cmd' : './node_modules/.bin/grunt',
args: [
'compileCss',
'compileCssLight',
'compileCssDark',
],
}, (error, result) => {
if (error) {

File diff suppressed because it is too large Load diff

View file

@ -4,7 +4,7 @@ html {
.guideBody {
height: 100%;
background-color: #000000;
background-color: $euiColorFullShade;
margin: 0;
min-width: $guideMinWidth;
}
@ -61,7 +61,7 @@ html {
display: flex;
justify-content: center;
flex: 1 0 auto;
background-color: #ffffff;
background-color: $euiColorEmptyShade;
}
.guideContentPage__hint {
@ -74,7 +74,7 @@ html {
padding: 30px;
margin: 20px;
border-radius: 4px;
background-color: #e8e8e8;
background-color: $euiColorLightestShade;
line-height: $guideLineHeight;
}
@ -96,11 +96,11 @@ html {
}
.guideWarning {
border-left: 5px solid #e8488b;
border-left: 5px solid $euiColorAccent;
margin-top: 19px;
padding: 0 14px;
line-height: 21px;
color: #e8488b;
color: $euiColorAccent;
}
.guideBreak {

View file

@ -1,6 +1,6 @@
.guideCode {
padding: 2px 4px;
font-family: 'Ubuntu Mono', monospace;
background-color: #e8e8e8;
color: #565656;
background-color: $euiColorLightestShade;
color: $euiColorDarkShade;
}

View file

@ -5,11 +5,11 @@
bottom: 0;
width: $guideCodeViewerWidth;
padding: 6px 0 40px;
background-color: white;
background-color: $euiColorEmptyShade;
transform: translateX($guideCodeViewerWidth);
transition: transform $guideCodeViewerTransition;
overflow: auto;
border-left: 1px solid #d6d6d6;
border-left: $euiBorderThin;
@include scrollbar;
@ -25,7 +25,7 @@
.guideCodeViewer__header {
padding: 0 20px 6px;
line-height: $guideLineHeight;
border-bottom: 1px solid #d6d6d6;
border-bottom: $euiBorderThin;
font-size: 14px;
font-weight: 700;
margin-bottom: 10px;
@ -47,7 +47,7 @@
.guideCodeViewer__title {
padding: 0 20px 6px;
border-bottom: 1px solid #d6d6d6;
border-bottom: $euiBorderThin;
line-height: $guideLineHeight;
font-size: 14px;
}
@ -61,7 +61,7 @@
.hljs {
display: block;
padding: 15px 20px;
color: #637c84;
color: $euiColorDarkShade;
font-size: 14px;
line-height: 1.3;
font-family: 'Ubuntu Mono', monospace;

View file

@ -1,5 +1,5 @@
$guideVerticalRhythm: 20px;
$guideLineHeight: 24px;
$guideVerticalRhythm: $euiSize;
$guideLineHeight: $euiSizeL;
$guideNavHeight: 60px;
$guideSideNavWidth: 400px;
$guideSideNavSmallWidth: 220px;
@ -9,11 +9,11 @@ $guideCodeViewerTransition: 0.2s ease;
$guideChromeTransition: 0.3s ease;
// Colors
$guideBaseBackgroundColor: #f7f7f7;
$guidePanelBackgroundColor: #ffffff;
$guideTextColor: #444;
$guideLinkColor: #00a9e5;
$guideLinkHoverColor: #00a9e5;
$guideBaseBackgroundColor: $euiColorLightestShade;
$guidePanelBackgroundColor: $euiColorEmptyShade;
$guideTextColor: $euiColorDarkestShade;
$guideLinkColor: $euiColorPrimary;
$guideLinkHoverColor: darken($euiColorPrimary, 10%);
// Breakpoints
$guideMinWidth: 840px;
@ -31,7 +31,7 @@ $guideNormalBreakpoint: 1900px;
}
}
@mixin scrollbar($color: rgba(#454D58, 0.4)) {
@mixin scrollbar($color: $euiBorderColor) {
&::-webkit-scrollbar {
width: 16px;
height: 16px;

View file

@ -8,21 +8,16 @@
margin-top: 0;
}
.guideDemo--darkTheme {
background-color: #272727;
padding: 10px;
}
.guideDemo__highlightGrid {
.kuiFlexItem {
background: transparentize(#0096CC, .9);
background: transparentize($euiColorPrimary, .9);
padding: 16px;
}
}
.guideDemo__highlightGridWrap {
.kuiFlexItem div {
background: transparentize(#0096CC, .9);
background: transparentize($euiColorPrimary, .9);
padding: 16px;
}
}

View file

@ -55,7 +55,6 @@ export class GuideDemo extends Component {
render() {
const {
isFullScreen,
isDarkTheme,
children,
className,
js, // eslint-disable-line no-unused-vars
@ -66,8 +65,6 @@ export class GuideDemo extends Component {
const classes = classNames('guideDemo', className, {
'guideDemo--fullScreen': isFullScreen,
'guideDemo--darkTheme': isDarkTheme,
'theme-dark': isDarkTheme,
});
return (
@ -88,7 +85,6 @@ GuideDemo.propTypes = {
html: PropTypes.string.isRequired,
css: PropTypes.string.isRequired,
isFullScreen: PropTypes.bool.isRequired,
isDarkTheme: PropTypes.bool.isRequired,
};
GuideDemo.defaultProps = {
@ -96,5 +92,4 @@ GuideDemo.defaultProps = {
html: '',
css: '',
isFullScreen: false,
isDarkTheme: false,
};

View file

@ -8,7 +8,7 @@
right: 0;
min-width: $guideMinWidth;
height: $guideNavHeight;
border-bottom: 1px solid #CCCCCC;
border-bottom: $euiBorderThin;
color: $guideTextColor;
background-color: $guidePanelBackgroundColor;
transition:
@ -16,11 +16,11 @@
height 0.3s ease,
box-shadow 0.3s linear;
overflow: hidden;
box-shadow: 0 0 0 rgba(black, 0.3);
@include euiBottomShadowMedium;
&.is-guide-nav-open {
height: 100%;
box-shadow: 0 40px 200px rgba(black, 0.05);
@include euiBottomShadow;
}
&.is-chrome-hidden {
@ -182,14 +182,14 @@
line-height: 10px;
padding: 4px 20px;
color: $guideLinkHoverColor;
background-color: #fff;
background-color: $euiColorEmptyShade;
border: 1px solid $guideLinkHoverColor;
border-radius: 3px;
cursor: pointer;
&:hover,
&:active {
background-color: #e6f7fc;
background-color: $euiColorLightestShade;
}
&.guideNavPaginationButton-isDisabled {

View file

@ -11,7 +11,7 @@
$scrollBarWidth: 20px;
background-color: $guidePanelBackgroundColor;
border: 1px solid #CCCCCC;
border: $euiBorderThin;
border-radius: 4px;
flex: 1 1 auto;
padding: 40px 60px;
@ -34,3 +34,9 @@
}
}
}
.guidePageKillScreen {
background-color: tintOrShade($euiColorDanger, 90%, 70%);
padding: $euiSizeL;
margin-bottom: $euiSizeL;
}

View file

@ -62,7 +62,7 @@ export class GuidePage extends Component {
</GuidePageSideNav>
<div className="guidePageBody">
<div style={{ marginBottom: 40, backgroundColor: '#ffec9d', padding: 20 }}>
<div className="guidePageKillScreen">
<h1 className="guideTitle">
The Kibana UI Framework has been DEPRECATED.
</h1>

View file

@ -21,7 +21,7 @@
line-height: 10px;
padding: 4px 10px;
color: $guideLinkHoverColor;
background-color: #fff;
background-color: $euiColorEmptyShade;
border: 1px solid $guideLinkHoverColor;
border-radius: 3px;
cursor: pointer;
@ -30,7 +30,7 @@
&:hover,
&:active {
background-color: #e6f7fc;
background-color: $euiColorLightestShade;
}
.is-chrome-hidden & {

View file

@ -1,3 +1,8 @@
@import "~@elastic/eui/src/global_styling/index";
@import "../../dist/ui_framework.css";
@import '~@elastic/eui/src/themes/k6/k6_globals';
@import '~@elastic/eui/src/themes/k6/k6_colors_dark';
@import '~@elastic/eui/src/global_styling/functions/index';
@import '~@elastic/eui/src/global_styling/variables/index';
@import '~@elastic/eui/src/global_styling/mixins/index';
@import '~@elastic/eui/src/global_styling/reset/index';
@import "../../dist/kui_dark.css";
@import "./components/guide_components";

View file

@ -94,10 +94,6 @@ export default props => (
<GuideDemo>
<Basic />
</GuideDemo>
<GuideDemo isDarkTheme={true}>
<Basic />
</GuideDemo>
</GuideSection>
<GuideSection

View file

@ -103,10 +103,6 @@ export default props => (
<GuideDemo>
<TextInput/>
</GuideDemo>
<GuideDemo isDarkTheme={true}>
<TextInput/>
</GuideDemo>
</GuideSection>
<GuideSection
@ -126,11 +122,6 @@ export default props => (
<GuideDemo
html={assistedInputHtml}
/>
<GuideDemo
html={assistedInputHtml}
isDarkTheme
/>
</GuideSection>
<GuideSection
@ -143,11 +134,6 @@ export default props => (
<GuideDemo
html={searchInputHtml}
/>
<GuideDemo
html={searchInputHtml}
isDarkTheme
/>
</GuideSection>
<GuideSection
@ -179,10 +165,6 @@ export default props => (
<GuideDemo>
<TextArea/>
</GuideDemo>
<GuideDemo isDarkTheme={true}>
<TextArea/>
</GuideDemo>
</GuideSection>
<GuideSection
@ -213,10 +195,6 @@ export default props => (
<GuideDemo>
<CheckBox/>
</GuideDemo>
<GuideDemo isDarkTheme={true}>
<CheckBox/>
</GuideDemo>
</GuideSection>
<GuideSection
@ -233,9 +211,6 @@ export default props => (
<Select/>
</GuideDemo>
<GuideDemo isDarkTheme={true}>
<Select/>
</GuideDemo>
</GuideSection>
</GuidePage>
);

View file

@ -40,11 +40,6 @@ export default props => (
<GuideDemo
html={linkHtml}
/>
<GuideDemo
html={linkHtml}
isDarkTheme={true}
/>
</GuideSection>
</GuidePage>
);

View file

@ -86,10 +86,6 @@ export default props => (
<GuideDemo>
<SimpleLocalNav />
</GuideDemo>
<GuideDemo isDarkTheme={true}>
<SimpleLocalNav />
</GuideDemo>
</GuideSection>
<GuideSection
@ -112,10 +108,6 @@ export default props => (
<GuideDemo>
<LocalNavWithBreadcrumbs />
</GuideDemo>
<GuideDemo isDarkTheme={true}>
<LocalNavWithBreadcrumbs />
</GuideDemo>
</GuideSection>
<GuideSection
@ -139,9 +131,6 @@ export default props => (
<LocalNavWithSearch />
</GuideDemo>
<GuideDemo isDarkTheme={true}>
<LocalNavWithSearch />
</GuideDemo>
</GuideSection>
<GuideSection
@ -160,10 +149,6 @@ export default props => (
<GuideDemo>
<LocalNavWithSearchError />
</GuideDemo>
<GuideDemo isDarkTheme={true}>
<LocalNavWithSearchError />
</GuideDemo>
</GuideSection>
<GuideSection
@ -190,10 +175,6 @@ export default props => (
<GuideDemo>
<LocalNavWithMenuItemStates />
</GuideDemo>
<GuideDemo isDarkTheme={true}>
<LocalNavWithMenuItemStates />
</GuideDemo>
</GuideSection>
<GuideSection
@ -216,10 +197,6 @@ export default props => (
<GuideDemo>
<LocalNavWithDropdown />
</GuideDemo>
<GuideDemo isDarkTheme={true}>
<LocalNavWithDropdown />
</GuideDemo>
</GuideSection>
<GuideSection
@ -242,10 +219,6 @@ export default props => (
<GuideDemo>
<LocalNavWithDropdownPanels />
</GuideDemo>
<GuideDemo isDarkTheme={true}>
<LocalNavWithDropdownPanels />
</GuideDemo>
</GuideSection>
<GuideSection
@ -268,10 +241,6 @@ export default props => (
<GuideDemo>
<LocalNavWithTabs />
</GuideDemo>
<GuideDemo isDarkTheme={true}>
<LocalNavWithTabs />
</GuideDemo>
</GuideSection>
<GuideSection
@ -284,11 +253,6 @@ export default props => (
<GuideDemo
html={datePickerHtml}
/>
<GuideDemo
html={datePickerHtml}
isDarkTheme={true}
/>
</GuideSection>
</GuidePage>
);

View file

@ -59,10 +59,6 @@ export default props => (
<GuideDemo>
<ModalExample />
</GuideDemo>
<GuideDemo isDarkTheme>
<ModalExample />
</GuideDemo>
</GuideSection>
<GuideSection

View file

@ -53,13 +53,6 @@ export default props => (
<GuideDemo>
<Tabs />
</GuideDemo>
<GuideText>
Dark themed tabs
</GuideText>
<GuideDemo isDarkTheme={true}>
<Tabs />
</GuideDemo>
</GuideSection>
</GuidePage>

View file

@ -85,20 +85,6 @@
@include kuiButtonHoverAndActive {
background-color: $buttonBasicHoverBackgroundColor !important; /* 1 */
}
@include darkTheme {
color: $buttonBasicTextColor--darkTheme;
background-color: $buttonBasicBackgroundColor--darkTheme;
@include kuiButtonFocus {
@include focus($kuiFocusColor, $kuiBackgroundColor--darkTheme);
color: $buttonBasicTextColor--darkTheme;
}
@include kuiButtonHoverAndActive {
background-color: $buttonBasicHoverBackgroundColor--darkTheme !important; /* 1 */
}
}
}
/**
@ -139,19 +125,18 @@
* 1. Override Bootstrap.
*/
.kuiButton--danger {
color: $kuiColorRed;
background-color: rgba($kuiColorWhite, 0.5);
border: solid 1px $kuiColorRed;
color: $euiColorDanger;
border: solid 1px $euiColorDanger;
@include kuiButtonFocus {
@include focus($kuiFocusDangerColor);
color: $kuiColorRed;
@include focus($euiColorDanger);
color: $euiColorDanger;
}
@include kuiButtonHoverAndActive {
color: darken($kuiColorRed, 10%) !important;
background-color: rgba(lighten($kuiColorRed, 50%), 0.5);
border: solid 1px darken($kuiColorRed, 10%);
color: darken($euiColorDanger, 10%) !important;
border: solid 1px darken($euiColorDanger, 10%);
background-color: transparentize($euiColorDanger, .9);
}
}
@ -185,28 +170,20 @@
color: $kuiLinkColor !important; /* 2 */
background-color: transparent;
@include darkTheme {
color: $kuiLinkColor--darkTheme !important; /* 2 */
}
@include kuiButtonHoverAndActive {
color: $kuiLinkHoverColor !important; /* 1 */
text-decoration: underline;
@include darkTheme {
color: $kuiLinkColor-isHover--darkTheme !important; /* 2 */
}
}
}
.kuiButton--secondary {
color: $kuiLinkColor !important; /* 2 */
border: solid 1px $kuiColorBlue;
background-color: rgba($kuiColorWhite, 0.5);
color: $euiColorPrimary !important; /* 2 */
border: solid 1px $euiColorPrimary;
@include kuiButtonHoverAndActive {
color: darken($kuiLinkColor, 10%) !important; /* 1 */
border: solid 1px darken($kuiColorBlue, 10%);
background-color: rgba(lighten($kuiLinkColor, 50%), 0.5);
color: darken($euiColorPrimary, 10%) !important; /* 1 */
border: solid 1px darken($euiColorPrimary, 10%);
background-color: transparentize($euiColorPrimary, .9);
text-decoration: underline;
}
}

View file

@ -10,16 +10,13 @@ $buttonSmallPadding: 2px 8px 3px;
$buttonSmallHeight: 22px;
// Most buttons
$buttonDefaultTextColor: #FFF;
$buttonDefaultTextColor: $euiColorGhost;
// Basic
$buttonBasicTextColor: $kuiTextColor;
$buttonBasicBackgroundColor: $kuiColorLightestGray;
$buttonBasicHoverBackgroundColor: darken($kuiColorLightestGray, 10%);
$buttonBasicDisabledTextColor: $kuiTextColor;
$buttonBasicTextColor--darkTheme: #FFF;
$buttonBasicBackgroundColor--darkTheme: #9c9c9c;
$buttonBasicHoverBackgroundColor--darkTheme: darken($buttonBasicBackgroundColor--darkTheme, 20%);
// Primary
$buttonPrimaryBackgroundColor: $kuiLinkColor;
@ -37,12 +34,12 @@ $buttonDangerHoverBackgroundColor: darken($kuiColorRed, 10%);
$buttonDangerDisabledBackgroundColor: lighten($buttonDangerBackgroundColor, 50%);
// Warning
$buttonWarningBackgroundColor: #f98100;
$buttonWarningBackgroundColor: $euiColorWarning;
$buttonWarningHoverBackgroundColor: darken($buttonWarningBackgroundColor, 10%);
$buttonWarningDisabledBackgroundColor: lighten($buttonWarningBackgroundColor, 10%);
// Hollow
$buttonHollowDisabledTextColor: #dddddd;
$buttonHollowDisabledTextColor: $euiColorMediumShade;
@import "button";
@import "button_group/button_group";

View file

@ -1,3 +1,3 @@
$expressionColorHighlight: #017D73;
$expressionColorHighlight: $euiColorSecondary;
@import "expression";

View file

@ -1,11 +1,3 @@
$checkboxBackgroundColor: #FFF;
$checkboxBorderColor: #BEBEBE;
$checkboxIconColor: #FFF;
$checkboxDisabledColor: #D3DAE6;
$checkboxCheckedBackgroundColor: $kuiColorBlue;
$checkboxDisabledOpacity: 0.3;
/**
* 1. Deliberately disable only webkit appearance. If we disable it in Firefox, we get a really
* ugly default appearance which we can't customize, so our best option is to give Firefox
@ -54,15 +46,6 @@ $checkboxDisabledOpacity: 0.3;
border-color: $checkboxDisabledColor !important;
cursor: not-allowed !important;
}
@include darkTheme {
background-color: $kuiInputBackgroundColor--darkTheme;
border-color: $kuiInputBackgroundColor--darkTheme;
&:checked {
background-color: $checkboxCheckedBackgroundColor;
}
}
}
.kuiCheckBoxLabel {

View file

@ -1 +1,8 @@
$checkboxBackgroundColor: $euiFormBackgroundColor;
$checkboxBorderColor: $euiFormBorderColor;
$checkboxIconColor: $euiColorGhost;
$checkboxDisabledColor: $euiFormBackgroundDisabledColor;
$checkboxCheckedBackgroundColor: $euiColorPrimary;
$checkboxDisabledOpacity: 0.3;
@import "check_box";

View file

@ -1 +1,3 @@
$searchInputTextColor: $euiColorMediumShade;
@import "search_input";

View file

@ -1,5 +1,3 @@
$searchInputTextColor: #ACACAC;
.kuiSearchInput {
width: $kuiFormFieldDefaultWidth;
display: inline-block;

View file

@ -1,3 +1,3 @@
$iconBasicTextColor: #565656;
$iconBasicTextColor: $euiColorDarkShade;
@import "icon";

View file

@ -1,47 +1,25 @@
// Normal colors
$localNavTextColor: $kuiTextColor;
$localNavBackgroundColor: $kuiColorWhite;
$localNavBackgroundColor: $euiColorEmptyShade;
$localNavButtonTextColor: $kuiTextColor;
$localNavButtonTextColor-isHover: $kuiColorLightestGray;
$localNavButtonBackgroundColor: transparent;
$localNavButtonBackgroundColor-isHover: $kuiColorBlue;
$localNavButtonBackgroundColor-isSelected: $kuiColorLightestGray;
$localNavBreadcrumbDelimiterColor: #5a5a5a;
$localSearchBackgroundColor: #ffffff;
$localSearchBorderColor-isInvalid: #e74C3c;
$localNavBreadcrumbDelimiterColor: $euiBorderColor;
$localSearchBackgroundColor: $euiColorGhost;
$localSearchBorderColor-isInvalid: $euiColorDanger;
$localDropdownBackgroundColor: $localNavButtonBackgroundColor-isSelected;
$localDropdownFormNoteTextColor: #737373;
$localDropdownFormNoteTextColor: $euiColorDarkShade;
$localTabTextColor: $kuiColorDarkestGray;
$localTabTextColor-isHover: $kuiColorBlue;
$localTabTextColor-isSelected: $kuiColorBlue;
$localBreadcrumbLinkColor: $kuiColorBlue;
$localSearchButtonBackgroundColor: $kuiColorDarkGray;
$localSearchButtonTextColor: #ffffff;
$localSearchButtonBackgroundColor: $euiColorPrimary;
$localSearchButtonTextColor: $euiColorGhost;
$localDatePickerButtonHoverBackgroundColor: $localNavButtonBackgroundColor-isHover;
$localDatePickerCellSelectedBackgroundColor: #777777;
$localDatePickerCellSelectedTextColor: #ffffff;
// Dark theme colors
$localNavTextColor--darkTheme: $kuiTextColor--darkTheme;
$localNavBackgroundColor--darkTheme: #222;
$localNavButtonTextColor--darkTheme: #dedede;
$localNavButtonTextColor-isHover--darkTheme: #ffffff;
$localNavButtonBackgroundColor-isHover--darkTheme: #000000;
$localNavButtonBackgroundColor-isSelected--darkTheme: #525252;
$localNavBreadcrumbDelimiterColor--darkTheme: #a5a5a5;
$localSearchBackgroundColor--darkTheme: #4e4e4e;
$localSearchBorderColor-isInvalid--darkTheme: #ff6758;
$localDropdownBackgroundColor--darkTheme: $localNavButtonBackgroundColor-isSelected--darkTheme;
$localDropdownFormNoteTextColor--darkTheme: #a2a2a2;
$localDropdownWarningTextColor--darkTheme: $kuiTextColor--darkTheme;
$localDropdownWarningBackgroundColor--darkTheme: #636363;
$localTabTextColor--darkTheme: $localNavButtonTextColor--darkTheme;
$localTabTextColor-isHover--darkTheme: $localNavButtonTextColor-isHover--darkTheme;
$localTabTextColor-isSelected--darkTheme: $localNavButtonTextColor-isHover--darkTheme;
$localSearchButtonBackgroundColor--darkTheme: #777777;
$localSearchButtonTextColor--darkTheme: #ffffff;
$localDatePickerButtonHoverBackgroundColor--darkTheme: rgba(#000000, 0.4);
$localDatePickerCellSelectedTextColor--darkTheme: #ffffff;
$localDatePickerCellSelectedBackgroundColor: $euiColorDarkShade;
$localDatePickerCellSelectedTextColor: $euiTextColor;
// Spacing
$localNavSideSpacing: 10px;

View file

@ -22,10 +22,6 @@
user-select: none;
margin-right: 4px;
color: $localNavBreadcrumbDelimiterColor;
@include darkTheme {
color: $localNavBreadcrumbDelimiterColor--darkTheme;
}
}
}
}

View file

@ -40,22 +40,6 @@
color: $localNavButtonTextColor; /* 1 */
}
@include darkTheme {
color: $localNavButtonTextColor--darkTheme;
&:hover,
&:active {
color: $localNavButtonTextColor-isHover--darkTheme;
background-color: $localDatePickerButtonHoverBackgroundColor--darkTheme;
}
&:focus {
@include focus($kuiFocusColor, $localDropdownBackgroundColor--darkTheme);
color: $localNavButtonTextColor--darkTheme; /* 1 */
}
}
}
.kuiDatePickerHeaderCell {
@ -65,10 +49,6 @@
font-weight: bold;
text-align: center;
line-height: 1.2;
@include darkTheme {
color: $kuiTextColor--darkTheme;
}
}
.kuiDatePickerRowCell {
@ -134,26 +114,4 @@
color: $localNavButtonTextColor-isHover;
background-color: $localDatePickerButtonHoverBackgroundColor;
}
@include darkTheme {
color: $kuiTextColor--darkTheme;
&:focus {
@include focus($kuiFocusColor, $localDropdownBackgroundColor--darkTheme);
}
&.kuiDatePickerRowCellContent-isCurrent {
color: $kuiLinkColor--darkTheme;
}
&.kuiDatePickerRowCellContent-isSelected {
color: $localDatePickerCellSelectedTextColor--darkTheme;
}
&:hover,
&:active {
color: $localNavButtonTextColor-isHover--darkTheme;
background-color: $localDatePickerButtonHoverBackgroundColor--darkTheme;
}
}
}

View file

@ -6,11 +6,6 @@
border-top: solid 1px $kuiColorLightGray;
margin-bottom: 10px;
line-height: 20px;
@include darkTheme {
background-color: $localDropdownBackgroundColor--darkTheme;
border-color: darken($localNavBackgroundColor--darkTheme, 10%);
}
}
.kuiLocalDropdownCloseButton {
@ -19,10 +14,6 @@
position: absolute;
top: 1px;
right: 5px;
@include darkTheme {
color: $localNavTextColor--darkTheme !important; /* 1 */
}
}
.kuiLocalDropdownPanels {
@ -49,10 +40,6 @@
margin-bottom: 12px;
font-size: 18px;
color: $localNavTextColor;
@include darkTheme {
color: $localNavTextColor--darkTheme;
}
}
.kuiLocalDropdownSection {
@ -78,10 +65,6 @@
font-weight: 700;
margin-bottom: 0; /* 1 */
color: $localNavTextColor;
@include darkTheme {
color: $localNavTextColor--darkTheme;
}
}
.kuiLocalDropdownHeader__actions {
@ -102,15 +85,6 @@
&:active {
color: $kuiLinkColor-isHover;
}
@include darkTheme {
color: $kuiLinkColor--darkTheme;
&:hover,
&:active {
color: $kuiLinkColor-isHover--darkTheme;
}
}
}
.kuiLocalDropdownInput {
@ -127,25 +101,11 @@
&:focus {
border-color: $kuiFocusColor;
}
@include darkTheme {
color: $kuiInputTextColor--darkTheme;
background-color: $kuiInputBackgroundColor--darkTheme;
border-color: $kuiInputBorderColor--darkTheme;
&:focus {
border-color: $kuiFocusColor;
}
}
}
.kuiLocalDropdownFormNote {
font-size: 14px;
color: $localDropdownFormNoteTextColor;
@include darkTheme {
color: $localDropdownFormNoteTextColor--darkTheme;
}
}
.kuiLocalDropdownWarning {
@ -154,19 +114,11 @@
font-size: 14px;
color: $kuiTextColor;
background-color: $localNavBackgroundColor;
@include darkTheme {
color: $localDropdownWarningTextColor--darkTheme;
background-color: $localDropdownWarningBackgroundColor--darkTheme;
}
border-left: solid 2px $euiColorDanger;
}
.kuiLocalDropdownHelpText {
margin-bottom: 16px;
font-size: 14px;
color: #2D2D2D;
@include darkTheme {
color: #9e9e9e;
}
color: $euiColorDarkShade;
}

View file

@ -42,28 +42,6 @@
color: $localNavButtonTextColor;
}
}
@include darkTheme {
color: $localNavButtonTextColor--darkTheme;
&:hover {
background-color: $localNavButtonBackgroundColor-isHover--darkTheme;
color: $localNavButtonTextColor-isHover--darkTheme;
}
&.kuiLocalMenuItem-isSelected {
background-color: $localNavButtonBackgroundColor-isSelected--darkTheme;
border-color: darken($localNavBackgroundColor--darkTheme, 10%);
color: $localNavButtonTextColor-isHover--darkTheme;
}
&.kuiLocalMenuItem-isDisabled {
&:hover {
background-color: transparent;
color: $localNavButtonTextColor--darkTheme;
}
}
}
}
.kuiLocalMenuItem__icon {

View file

@ -11,12 +11,6 @@
background-color: $localNavBackgroundColor;
line-height: $kuiLineHeight;
border-bottom: solid 1px $kuiColorLightGray;
@include darkTheme {
color: $localNavTextColor--darkTheme;
background-color: $localNavBackgroundColor--darkTheme;
border-color: darken($localNavBackgroundColor--darkTheme, 10%);
}
}
/**

View file

@ -25,12 +25,6 @@
flex: 0 0 auto;
border-radius: 0;
border-left-width: 0;
@include darkTheme {
border-left-width: 1px;
border-left-color: $localNavBackgroundColor--darkTheme;
border-right-color: $localNavBackgroundColor--darkTheme;
}
}
.kuiLocalSearchAssistedInput {
@ -83,13 +77,4 @@
&:focus {
@include focus($kuiFocusColor, $kuiBorderColor);
}
@include darkTheme {
color: $localSearchButtonTextColor--darkTheme;
background-color: $localSearchButtonBackgroundColor--darkTheme;
&:focus {
@include focus($kuiFocusColor, $localNavBackgroundColor--darkTheme);
}
}
}

View file

@ -23,21 +23,12 @@
&:hover:not(.kuiLocalTab-isDisabled),
&:active:not(.kuiLocalTab-isDisabled) {
color: $localTabTextColor-isHover;
@include darkTheme {
color: $localTabTextColor-isHover--darkTheme;
}
}
&.kuiLocalTab-isSelected {
color: $localTabTextColor-isSelected;
border-bottom-color: $localTabTextColor-isSelected;
cursor: default;
@include darkTheme {
color: $localTabTextColor-isSelected--darkTheme;
border-bottom-color: $localTabTextColor-isSelected--darkTheme;
}
}
/**
@ -52,8 +43,4 @@
& + & {
margin-left: 15px;
}
@include darkTheme {
color: $localTabTextColor--darkTheme;
}
}

View file

@ -1,20 +1,20 @@
$menuButtonFontSize: 12px;
$menuButtonBasicTextColor: #5a5a5a;
$menuButtonBasicBackgroundColor: #ffffff;
$menuButtonBasicHoverBackgroundColor: #F2F2F2;
$menuButtonBasicDisabledTextColor: #9B9B9B;
$menuButtonBasicTextColor: $euiTextColor;
$menuButtonBasicBackgroundColor: $euiColorEmptyShade;
$menuButtonBasicHoverBackgroundColor: $euiColorLightestShade;
$menuButtonBasicDisabledTextColor: $euiColorMediumShade;
$menuButtonPrimaryTextColor: $euiColorGhost;
$menuButtonPrimaryBackgroundColor: $euiColorPrimary;
$menuButtonPrimaryHoverBackgroundColor: darken($euiColorPrimary, 10%);
$menuButtonPrimaryDisabledBackgroundColor: $euiColorMediumShade;
$menuButtonPrimaryTextColor: #ffffff;
$menuButtonPrimaryBackgroundColor: $kuiColorBlue;
$menuButtonPrimaryHoverBackgroundColor: #006E8A;
$menuButtonPrimaryDisabledBackgroundColor: #B6D6E0;
$menuButtonDangerTextColor: #D76051;
$menuButtonDangerBackgroundColor: #ffffff;
$menuButtonDangerHoverTextColor: #FFFFFF;
$menuButtonDangerHoverBackgroundColor: #D76051;
$menuButtonDangerHoverDisabledTextColor: #9B9B9B;
$menuButtonDangerTextColor: $euiColorGhost;
$menuButtonDangerBackgroundColor: $euiColorDanger;
$menuButtonDangerHoverTextColor: $euiColorGhost;
$menuButtonDangerHoverBackgroundColor: darken($euiColorDanger, 10%);
$menuButtonDangerDisabledBackgroundColor: $euiColorMediumShade;
$menuButtonDangerHoverDisabledTextColor: $euiColorGhost;
@import "menu_button";
@import "menu_button_group";

View file

@ -63,6 +63,7 @@
&:disabled {
color: $menuButtonBasicDisabledTextColor;
cursor: not-allowed;
}
}
@ -87,6 +88,7 @@
&:disabled {
background-color: $menuButtonPrimaryDisabledBackgroundColor;
cursor: not-allowed;
}
}
@ -106,6 +108,8 @@
&:disabled {
color: $menuButtonDangerHoverDisabledTextColor;
background-color: $menuButtonDangerDisabledBackgroundColor;
cursor: not-allowed;
}
&:focus {

View file

@ -1,12 +1,11 @@
$modalPadding: 10px;
$modalBorderColor: $kuiColorLightGray;
$modalBackgroundColor: #FFF;
$modalOverlayBackground: rgba(#000000, 0.5);
$modalBorderColor: $euiBorderColor;
$modalBackgroundColor: $euiColorEmptyShade;
$kuiModalDepth: 1000;
// Dark theme colors
$modalBorderColor--darkTheme: #000;
$modalBackgroundColor--darkTheme: #525252;
$modalOverlayBackground: $euiColorEmptyShade;
@if (lightness($euiTextColor) > 50) {
$modalOverlayBackground: $euiColorLightShade;
}
@import "modal_overlay";
@import "modal";

View file

@ -1,18 +1,12 @@
.kuiModal {
@include kuiBottomShadow;
@include euiBottomShadow;
line-height: $kuiLineHeight;
background-color: $modalBackgroundColor;
border: 1px solid $modalBorderColor;
border-radius: $kuiBorderRadius;
box-shadow: $kuiBoxShadow;
z-index: $kuiModalDepth + 1;
animation: kuiModal $kuiAnimSpeedSlow $kuiAnimSlightBounce;
@include darkTheme {
background-color: $modalBackgroundColor--darkTheme;
border-color: $modalBorderColor--darkTheme;
}
}
.kuiModal--confirmation {
@ -27,18 +21,10 @@
padding: $modalPadding;
padding-left: $modalPadding * 2;
border-bottom: $kuiBorderThin;
@include darkTheme {
border-bottom-color: $modalBorderColor--darkTheme;
}
}
.kuiModalHeader__title {
font-size: $kuiTitleFontSize;
@include darkTheme {
color: $kuiTextColor--darkTheme;
}
}
.kuiModalHeaderCloseButton {
@ -52,10 +38,6 @@
.kuiModalBodyText {
font-size: 14px;
@include darkTheme {
color: $kuiTextColor--darkTheme;
}
}
.kuiModalFooter {

View file

@ -9,5 +9,5 @@
align-items: center;
justify-content: center;
padding-bottom: 10vh;
background-color: $modalOverlayBackground;
background: transparentize($modalOverlayBackground, .2);
}

View file

@ -13,6 +13,6 @@
.kuiPagerText {
font-size: $kuiFontSize;
line-height: $kuiLineHeight;
color: #5A5A5A;
color: $euiColorDarkShade;
white-space: nowrap; /* 1 */
}

View file

@ -24,9 +24,4 @@
&.kuiPanelSimple--flexGrowZero {
flex-grow: 0;
}
@include darkTheme {
background-color: $kuiBackgroundColor--darkTheme;
border-color: $kuiInputBorderColor--darkTheme;
}
}

View file

@ -3,10 +3,4 @@
border-bottom: $kuiBorderThin;
padding: $kuiSizeM;
font-size: $kuiFontSize;
@include darkTheme {
background-color: $kuiBackgroundColor--darkTheme;
border-color: $kuiInputBorderColor--darkTheme;
color: #ffffff;
}
}

View file

@ -46,10 +46,6 @@
border-left: $kuiSize solid transparent;
border-right: $kuiSize solid transparent;
border-bottom: $kuiSize solid $kuiBorderColor;
@include darkTheme {
border-bottom-color: $kuiInputBorderColor--darkTheme;
}
}
// This part of the arrow matches the panel.
@ -64,20 +60,12 @@
width: 0;
border-left: $kuiSize solid transparent;
border-right: $kuiSize solid transparent;
border-bottom: $kuiSize solid #ffffff;
@include darkTheme {
border-bottom-color: $kuiBackgroundColor--darkTheme;
}
border-bottom: $kuiSize solid $euiColorEmptyShade;
}
}
.kuiPopover--withTitle .kuiPopover__panel:after {
border-bottom-color: $kuiColorLightestShade;
@include darkTheme {
border-bottom-color: $kuiBackgroundColor--darkTheme;
}
}
// Positions the menu and arrow to the left of the parent.

View file

@ -1,8 +1,8 @@
$tableCellPadding: 7px 8px 8px;
$tableCellFontWeight: 400;
$tableBackgroundColor: #FFF;
$tableBackgroundColor: $euiColorEmptyShade;
$tableHeaderTextColor: $kuiColorDarkGray;
$tableCellExpandedBorderColor: #f0f0f0;
$tableCellExpandedBorderColor: $euiColorEmptyShade;
@import "controlled_table";
@import "table";

View file

@ -1,10 +1,4 @@
$tabBackgroundColor: #FFF;
$tabHoverBackgroundColor: #F2F2F2;
// Dark theme colors
$tabColor--darkTheme: $kuiTextColor--darkTheme;
$tabBackgroundColor--darkTheme: #333333;
$tabHoverBackgroundColor--darkTheme: $kuiBackgroundColor--darkTheme;
$tabBorderColor--darkTheme: $kuiBackgroundColor--darkTheme;
$tabBackgroundColor: transparent;
$tabHoverBackgroundColor: $euiColorLightestShade;
@import "tabs";

View file

@ -1,10 +1,6 @@
.kuiTabs {
display: flex;
border-bottom: $kuiBorderThin;
@include darkTheme {
border-bottom: 1px solid $tabBorderColor--darkTheme;
}
}
@ -26,12 +22,6 @@
border-radius: 0; /* 1 */
margin-bottom: -1px; /* 3 */
@include darkTheme {
color: $tabColor--darkTheme;
background-color: $tabBackgroundColor--darkTheme;
border-color: $tabBorderColor--darkTheme;
}
& + & {
border-left: none;
@ -53,22 +43,11 @@
z-index: 1;
color: $kuiLinkColor;
border: 1px solid $kuiSelectedBorderColor !important;
@include darkTheme {
color: $tabColor--darkTheme;
background-color: $tabBackgroundColor--darkTheme;
border-color: $tabBorderColor--darkTheme !important;
}
}
&:hover:not(.kuiTab-isSelected) {
color: $kuiLinkHoverColor;
background-color: $tabHoverBackgroundColor;
@include darkTheme {
color: $kuiLinkColor-isHover--darkTheme;
background-color: $tabHoverBackgroundColor--darkTheme;
}
}
&.kuiTab-isSelected {
@ -76,11 +55,5 @@
color: $kuiFontColor;
background-color: $tabBackgroundColor;
border-bottom-color: $tabBackgroundColor;
@include darkTheme {
color: $tabColor--darkTheme;
background-color: $tabBackgroundColor--darkTheme;
border-bottom-color: $tabBackgroundColor--darkTheme;
}
}
}

View file

@ -3,7 +3,7 @@
padding: 10px;
height: 40px;
background-color: #ffffff;
background-color: $euiColorEmptyShade;
}
.kuiToolBarFooterSection {

View file

@ -49,7 +49,7 @@
min-width: 200px;
padding: 4px 12px 5px 28px;
font-family: $kuiFontFamily; /* 1 */
background-color: #FFFFFF;
background-color: $euiColorEmptyShade;
color: $kuiFontColor;
border-radius: $kuiBorderRadius;
font-size: 1em;

View file

@ -4,6 +4,6 @@
.kuiToolBarText {
font-size: $kuiFontSize;
line-height: $kuiLineHeight;
color: #5A5A5A;
color: $euiColorDarkShade;
white-space: nowrap; /* 1 */
}

View file

@ -1,2 +1,2 @@
$typographyTitleFontSize: 22px;
$typographyTitleFontSize: $euiSizeL;
@import "typography";

View file

@ -5,10 +5,6 @@
margin: 0; /* 1 */
font-weight: $kuiFontWeightRegular; /* 1 */
font-size: $typographyTitleFontSize;
@include darkTheme {
color: $kuiTextColor--darkTheme;
}
}
/**
@ -18,10 +14,6 @@
margin: 0; /* 1 */
font-weight: $kuiFontWeightRegular; /* 1 */
font-size: $kuiTitleFontSize;
@include darkTheme {
color: $kuiTextColor--darkTheme;
}
}
/**
@ -32,10 +24,6 @@
font-weight: $kuiFontWeightBold; /* 1 */
line-height: $kuiLineHeight;
font-size: $kuiFontSize;
@include darkTheme {
color: $kuiTextColor--darkTheme;
}
}
/**
@ -46,10 +34,6 @@
font-weight: $kuiFontWeightRegular; /* 1 */
line-height: $kuiLineHeight;
font-size: $kuiFontSize;
@include darkTheme {
color: $kuiTextColor--darkTheme;
}
}
.kuiSubText {
@ -57,10 +41,6 @@
font-weight: $kuiFontWeightRegular; /* 1 */
line-height: $kuiLineHeight;
font-size: $kuiSubTextFontSize;
@include darkTheme {
color: $kuiTextColor--darkTheme;
}
}
.kuiSubduedText {

View file

@ -1,9 +1,3 @@
@mixin darkTheme {
.theme-dark & {
@content;
}
}
/**
* 1. Enforce pointer when there's no href.
* 2. Allow these styles to be applied to a button element.
@ -27,14 +21,6 @@
color: $kuiLinkHoverColor;
text-decoration: underline;
}
@include darkTheme {
color: $kuiLinkColor--darkTheme;
&:hover {
color: $kuiLinkColor--darkTheme;
}
}
}
/**
@ -54,10 +40,6 @@
&:hover {
opacity: 1;
}
@include darkTheme {
color: $kuiTextColor--darkTheme !important; /* 1 */
}
}
/**
@ -117,11 +99,6 @@
@include kuiButtonActive { @content }
}
/**
* 1. Make sure outline doesn't get hidden beneath adjacent elements.
* 2. Override inherited styles (possibly from Bootstrap).
* 3. Create an offset box-shadow that follows the contours of the element.
*/
@mixin focus($color: $kuiFocusColor, $backgroundColor: $kuiFocusBackgroundColor) {
z-index: 1; /* 1 */
outline: none !important; /* 2 */
@ -144,10 +121,6 @@
font-weight: 400;
line-height: $kuiLineHeight;
color: $kuiFontColor;
@include darkTheme {
color: $kuiInputTextColor--darkTheme;
}
}
/**
@ -155,8 +128,8 @@
*/
@mixin formControl($borderRadius: $kuiBorderRadius) {
@include formControlBase;
background-color: #ffffff;
border: 1px solid $kuiFormControlBorderColor;
background-color: $euiFormBackgroundColor;
border: 1px solid $euiFormBorderColor;
border-radius: $borderRadius;
transition: border-color $kuiInputTransitionTiming;
min-height: $kuiFormInputHeight; /* 1 */
@ -173,15 +146,6 @@
opacity: 0.4;
cursor: not-allowed;
}
@include darkTheme {
background-color: $kuiInputBackgroundColor--darkTheme;
border-color: $kuiInputBorderColor--darkTheme;
&:focus {
@include formControlFocus;
}
}
}
/**
@ -208,10 +172,6 @@
&:-moz-focusring {
text-shadow: 0 0 0; /* 3 */
}
@include darkTheme {
background-image: url('data:image/svg+xml;utf8,<svg width="1792" height="1792" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path d="M1408 704q0 26-19 45l-448 448q-19 19-45 19t-45-19l-448-448q-19-19-19-45t19-45 45-19h896q26 0 45 19t19 45z" fill="#CECECE"/></svg>'); /* 1 */
}
}
/**
@ -299,7 +259,7 @@
@mixin selectOnStandoutBackground {
.kuiSelect {
border-color: #ffffff;
border-color: $euiFormBackgroundColor;
@include kuiButtonFocus {
@include formControlFocus;

View file

@ -19,18 +19,8 @@ $kuiTextColor: $euiTextColor;
$kuiLinkColor: $euiColorPrimary;
$kuiLinkColor-isHover: darken($kuiLinkColor, 10%);
$kuiInputTextColor: $kuiTextColor;
$kuiInputBackgroundColor: $kuiColorWhite;
$kuiInputBorderColor: $euiBorderColor;
// Dark theme colors
$kuiTextColor--darkTheme: #DDD;
$kuiBackgroundColor--darkTheme: #222;
$kuiLinkColor--darkTheme: #4DA1C0;
$kuiLinkColor-isHover--darkTheme: #def2f6;
$kuiInputTextColor--darkTheme: $kuiTextColor--darkTheme;
$kuiInputBackgroundColor--darkTheme: #1b1b1b;
$kuiInputBorderColor--darkTheme: #333;
$kuiInputBackgroundColor: $euiFormBackgroundColor;
$kuiInputBorderColor: $euiFormBorderColor;
// Colors
@ -43,7 +33,7 @@ $kuiFocusColor: $euiColorPrimary;
$kuiFocusAltBackgroundColor: rgba($kuiInfoColor, 0.2);
$kuiFocusDangerColor: $euiColorDanger;
$kuiFocusWarningColor: $euiColorWarning;
$kuiFocusBackgroundColor: #fff;
$kuiFocusBackgroundColor: $euiColorEmptyShade;
$kuiFontColor: $euiTextColor;
$kuiSubduedTextColor: $euiColorDarkShade;
$kuiLinkHoverColor: darken($euiColorPrimary, 10%);

View file

@ -11,7 +11,6 @@
@import 'font';
@import 'timing';
@import 'borders';
@import 'shadows';
@import 'z_index';
@import 'animations';
@import 'form';

View file

@ -1,3 +0,0 @@
// Shadows
$kuiBoxShadow: 0 4px 8px 0 rgba(0, 0, 0, 0.1);

View file

@ -0,0 +1,18 @@
// EUI global scope is used for KUI variables till fully deprecated
@import '../../../node_modules/@elastic/eui/src/themes/k6/k6_globals';
@import '../../../node_modules/@elastic/eui/src/themes/k6/k6_colors_dark';
@import '../../../node_modules/@elastic/eui/src/global_styling/functions/index';
@import '../../../node_modules/@elastic/eui/src/global_styling/variables/index';
@import '../../../node_modules/@elastic/eui/src/global_styling/mixins/index';
@import '../../../node_modules/@elastic/eui/src/components/form/variables';
@import '../../../node_modules/@elastic/eui/src/components/form/mixins';
// Configuration
@import 'global_styling/variables/index';
// Core
@import 'global_styling/mixins/index';
@import 'global_styling/reset/index';
// Components
@import 'components/index';

View file

@ -9,12 +9,10 @@
// Configuration
@import 'global_styling/variables/index';
@import 'themes/light_theme/index';
// Core
@import 'global_styling/mixins/index';
@import 'global_styling/reset/index';
@import 'global_styling/utilities/index';
// Components
@import 'components/index';

View file

@ -50,7 +50,7 @@ export const CreatePackageJsonTask = {
if (build.isOss()) {
delete newPkg.dependencies['x-pack'];
newPkg.workspaces.packages = newPkg.workspaces.packages.filter(p => p !== 'x-pack');
newPkg.workspaces.packages = newPkg.workspaces.packages.filter(p => !p.startsWith('x-pack'));
}
await write(

View file

@ -41,7 +41,7 @@ export const esaggs = () => ({
'null',
],
},
help: i18n.translate('common.core_plugins.interpreter.public.functions.esaggs.help', { defaultMessage: 'Run AggConfig aggregation' }),
help: i18n.translate('interpreter.functions.esaggs.help', { defaultMessage: 'Run AggConfig aggregation' }),
args: {
index: {
types: ['string', 'null'],

View file

@ -25,7 +25,7 @@ export const inputControlVis = () => ({
context: {
types: [],
},
help: i18n.translate('common.core_plugins.interpreter.public.functions.input_control.help', {
help: i18n.translate('interpreter.functions.input_control.help', {
defaultMessage: 'Input control visualization'
}),
args: {

View file

@ -23,7 +23,7 @@ export const kibana = () => ({
name: 'kibana',
type: 'kibana_context',
context: {},
help: i18n.translate('common.core_plugins.interpreter.public.functions.kibana.help', {
help: i18n.translate('interpreter.functions.kibana.help', {
defaultMessage: 'Gets kibana global context'
}),
args: {},

View file

@ -29,7 +29,7 @@ export const kibanaContext = () => ({
'null',
],
},
help: i18n.translate('common.core_plugins.interpreter.public.functions.kibana_context.help', {
help: i18n.translate('interpreter.functions.kibana_context.help', {
defaultMessage: 'Updates kibana global context'
}),
args: {

View file

@ -25,7 +25,7 @@ export const kibanaMarkdown = () => ({
context: {
types: [],
},
help: i18n.translate('common.core_plugins.interpreter.public.functions.markdown.help', {
help: i18n.translate('interpreter.functions.markdown.help', {
defaultMessage: 'Markdown visualization'
}),
args: {

View file

@ -27,7 +27,7 @@ export const metric = () => ({
'kibana_table'
],
},
help: i18n.translate('common.core_plugins.interpreter.public.functions.metric.help', {
help: i18n.translate('interpreter.functions.metric.help', {
defaultMessage: 'Metric visualization'
}),
args: {

View file

@ -29,7 +29,7 @@ export const kibanaPie = () => ({
'kibana_table', 'null'
],
},
help: i18n.translate('common.core_plugins.interpreter.public.functions.pie.help', {
help: i18n.translate('interpreter.functions.pie.help', {
defaultMessage: 'Pie visualization'
}),
args: {

View file

@ -27,7 +27,7 @@ export const regionmap = () => ({
'kibana_table'
],
},
help: i18n.translate('common.core_plugins.interpreter.public.functions.regionmap.help', {
help: i18n.translate('interpreter.functions.regionmap.help', {
defaultMessage: 'Regionmap visualization'
}),
args: {

View file

@ -31,7 +31,7 @@ export const kibanaTable = () => ({
'kibana_table'
],
},
help: i18n.translate('common.core_plugins.interpreter.public.functions.table.help', {
help: i18n.translate('interpreter.functions.table.help', {
defaultMessage: 'Table visualization'
}),
args: {

View file

@ -27,7 +27,7 @@ export const tagcloud = () => ({
'kibana_table'
],
},
help: i18n.translate('common.core_plugins.interpreter.public.functions.tagcloud.help', {
help: i18n.translate('interpreter.functions.tagcloud.help', {
defaultMessage: 'Tagcloud visualization'
}),
args: {

View file

@ -28,7 +28,7 @@ export const tilemap = () => ({
'kibana_table'
],
},
help: i18n.translate('common.core_plugins.interpreter.public.functions.tilemap.help', {
help: i18n.translate('interpreter.functions.tilemap.help', {
defaultMessage: 'Tilemap visualization'
}),
args: {

View file

@ -33,7 +33,7 @@ export const timelionVis = () => ({
'null',
],
},
help: i18n.translate('common.core_plugins.interpreter.public.functions.timelion.help', {
help: i18n.translate('interpreter.functions.timelion.help', {
defaultMessage: 'Timelion visualization'
}),
args: {

View file

@ -34,7 +34,7 @@ export const tsvb = () => ({
'null',
],
},
help: i18n.translate('common.core_plugins.interpreter.public.functions.tsvb.help', {
help: i18n.translate('interpreter.functions.tsvb.help', {
defaultMessage: 'TSVB visualization'
}),
args: {

View file

@ -31,7 +31,7 @@ export const vega = () => ({
'null',
],
},
help: i18n.translate('common.core_plugins.interpreter.public.functions.vega.help', {
help: i18n.translate('interpreter.functions.vega.help', {
defaultMessage: 'Vega visualization'
}),
args: {

View file

@ -29,7 +29,7 @@ export const vislib = () => ({
'kibana_table', 'null'
],
},
help: i18n.translate('common.core_plugins.interpreter.public.functions.vislib.help', {
help: i18n.translate('interpreter.functions.vislib.help', {
defaultMessage: 'Vislib visualization'
}),
args: {

View file

@ -47,7 +47,7 @@ export const visualization = () => ({
context: {
types: [],
},
help: i18n.translate('common.core_plugins.interpreter.public.functions.visualization.help', {
help: i18n.translate('interpreter.functions.visualization.help', {
defaultMessage: 'A simple visualization'
}),
args: {

View file

@ -37,12 +37,14 @@ export function getWorker() {
if (type === 'run') {
const { threadId } = msg;
const { ast, context } = value;
heap[threadId]
.onFunctionNotFound(ast, context)
.then(value => {
worker.send({ type: 'msgSuccess', id, value: value });
})
.catch(e => heap[threadId].reject(e));
if (heap[threadId]) {
heap[threadId]
.onFunctionNotFound(ast, context)
.then(value => {
worker.send({ type: 'msgSuccess', id, value: value });
})
.catch(e => heap[threadId].reject(e));
}
}
if (type === 'msgSuccess' && heap[id]) heap[id].resolve(value);

View file

@ -445,7 +445,14 @@ exports[`after fetch renders table rows 1`] = `
"onSelectionChange": [Function],
}
}
sorting={Object {}}
sorting={
Object {
"sort": Object {
"direction": "asc",
"field": "title",
},
}
}
/>
</div>
</EuiPageContent>
@ -657,7 +664,14 @@ exports[`after fetch renders warning when listingLimit is exceeded 1`] = `
"onSelectionChange": [Function],
}
}
sorting={Object {}}
sorting={
Object {
"sort": Object {
"direction": "asc",
"field": "title",
},
}
}
/>
</div>
</EuiPageContent>

View file

@ -56,6 +56,7 @@ class DashboardListingUi extends React.Component {
super(props);
this.state = {
...defaultSortOrder(this.props.initialFilter),
hasInitialFetchReturned: false,
isFetchingItems: false,
showDeleteModal: false,
@ -136,6 +137,15 @@ class DashboardListingUi extends React.Component {
this.setState({ showDeleteModal: true });
};
setFilter(filter) {
// If the user is searching, we want to clear the sort order so that
// results are ordered by Elasticsearch's relevance.
this.setState({
...defaultSortOrder(filter),
filter,
}, this.fetchItems);
}
onTableChange = ({ page, sort = {} }) => {
const {
index: pageIndex,
@ -147,13 +157,17 @@ class DashboardListingUi extends React.Component {
direction: sortDirection,
} = sort;
// 3rd sorting state that is not captured by sort - native order (no sort)
// when switching from desc to asc for the same field - use native order
// 3rd sorting state that is not captured by sort - default order (asc by title)
// when switching from desc to asc for the same, non-default field - use default order,
// unless we have a filter, in which case, we want to use Elasticsearch's ranking order.
if (this.state.sortField === sortField
&& this.state.sortDirection === 'desc'
&& sortDirection === 'asc') {
sortField = null;
sortDirection = null;
const defaultSort = defaultSortOrder(this.state.filter);
sortField = defaultSort.sortField;
sortDirection = defaultSort.sortDirection;
}
this.setState({
@ -394,6 +408,7 @@ class DashboardListingUi extends React.Component {
aria-label={intl.formatMessage({
id: 'kbn.dashboard.listing.searchBar.searchFieldAriaLabel',
defaultMessage: 'Filter dashboards',
description: '"Filter" is used as a verb here, similar to "search through dashboards".',
})}
placeholder={intl.formatMessage({
id: 'kbn.dashboard.listing.searchBar.searchFieldPlaceholder',
@ -401,11 +416,7 @@ class DashboardListingUi extends React.Component {
})}
fullWidth
value={this.state.filter}
onChange={(e) => {
this.setState({
filter: e.target.value
}, this.fetchItems);
}}
onChange={(e) => this.setFilter(e.target.value)}
data-test-subj="searchFilter"
/>
</EuiFlexItem>
@ -598,3 +609,22 @@ DashboardListingUi.defaultProps = {
};
export const DashboardListing = injectI18n(DashboardListingUi);
// The table supports three sort states:
// field-asc, field-desc, and default.
//
// If you click a non-default sort header three times,
// the sort returns to the default sort, described here.
function defaultSortOrder(filter) {
// If the user has searched for something, we want our
// default sort to be by Elasticsearch's relevance, so
// we clear out our overriding sort options.
if (filter.length > 0) {
return { sortField: undefined, sortDirection: undefined };
}
return {
sortField: 'title',
sortDirection: 'asc',
};
}

View file

@ -26,6 +26,7 @@ jest.mock('ui/notify',
jest.mock('lodash',
() => ({
...require.requireActual('lodash'),
// mock debounce to fire immediately with no internal timer
debounce: function (func) {
function debounced(...args) {

View file

@ -78,7 +78,7 @@ exports[`AdvancedSettings should render normally 1`] = `
Object {
"elasticsearch": Array [
Object {
"ariaName": "test array setting",
"ariaName": "Test array setting",
"category": Array [
"elasticsearch",
],
@ -96,7 +96,7 @@ exports[`AdvancedSettings should render normally 1`] = `
"value": undefined,
},
Object {
"ariaName": "test boolean setting",
"ariaName": "Test boolean setting",
"category": Array [
"elasticsearch",
],
@ -114,7 +114,7 @@ exports[`AdvancedSettings should render normally 1`] = `
],
"general": Array [
Object {
"ariaName": "test customstring setting",
"ariaName": "Test custom string setting",
"category": Array [
"general",
],
@ -130,7 +130,7 @@ exports[`AdvancedSettings should render normally 1`] = `
"value": undefined,
},
Object {
"ariaName": "test image setting",
"ariaName": "Test image setting",
"category": Array [
"general",
],
@ -146,7 +146,7 @@ exports[`AdvancedSettings should render normally 1`] = `
"value": undefined,
},
Object {
"ariaName": "test is overridden json",
"ariaName": "An overridden json",
"category": Array [
"general",
],
@ -164,7 +164,7 @@ exports[`AdvancedSettings should render normally 1`] = `
"value": undefined,
},
Object {
"ariaName": "test is overridden number",
"ariaName": "An overridden number",
"category": Array [
"general",
],
@ -180,7 +180,7 @@ exports[`AdvancedSettings should render normally 1`] = `
"value": undefined,
},
Object {
"ariaName": "test is overridden select",
"ariaName": "Test overridden select setting",
"category": Array [
"general",
],
@ -200,7 +200,7 @@ exports[`AdvancedSettings should render normally 1`] = `
"value": undefined,
},
Object {
"ariaName": "test is overridden string",
"ariaName": "An overridden string",
"category": Array [
"general",
],
@ -216,7 +216,7 @@ exports[`AdvancedSettings should render normally 1`] = `
"value": undefined,
},
Object {
"ariaName": "test json setting",
"ariaName": "Test json setting",
"category": Array [
"general",
],
@ -232,7 +232,7 @@ exports[`AdvancedSettings should render normally 1`] = `
"value": undefined,
},
Object {
"ariaName": "test markdown setting",
"ariaName": "Test markdown setting",
"category": Array [
"general",
],
@ -248,7 +248,7 @@ exports[`AdvancedSettings should render normally 1`] = `
"value": undefined,
},
Object {
"ariaName": "test number setting",
"ariaName": "Test number setting",
"category": Array [
"general",
],
@ -264,7 +264,7 @@ exports[`AdvancedSettings should render normally 1`] = `
"value": undefined,
},
Object {
"ariaName": "test select setting",
"ariaName": "Test select setting",
"category": Array [
"general",
],
@ -284,7 +284,7 @@ exports[`AdvancedSettings should render normally 1`] = `
"value": undefined,
},
Object {
"ariaName": "test string setting",
"ariaName": "Test string setting",
"category": Array [
"general",
],
@ -424,7 +424,7 @@ exports[`AdvancedSettings should render specific setting if given setting key 1`
Object {
"general": Array [
Object {
"ariaName": "test string setting",
"ariaName": "Test string setting",
"category": Array [
"general",
],

View file

@ -34,7 +34,7 @@ export function toEditableConfig({ def, name, value, isCustom, isOverridden }) {
const conf = {
name,
displayName: def.name || name,
ariaName: getAriaName(name),
ariaName: def.name || getAriaName(name),
value,
category: def.category && def.category.length ? def.category : [DEFAULT_CATEGORY],
isCustom,

View file

@ -153,20 +153,12 @@ class VisualizeListingTableUi extends Component {
src={item.type.image}
/>
);
} else if (!item.type.image && !item.type.icon) {
icon = (
// Allowing legacyIcon to hold a CSS name, will be removed in 7.0
<span
aria-hidden="true"
className={`kuiStatusText__icon kuiIcon ${item.type.legacyIcon}`}
/>
);
} else {
icon = (
<EuiIcon
className="visListingTable__typeIcon"
aria-hidden="true"
type={item.icon}
type={item.icon || 'empty'}
size="m"
/>
);

View file

@ -66,11 +66,6 @@
pointer-events: none;
}
.visNewVisDialog__typeLegacyIcon {
font-size: $euiSizeL;
color: $euiColorSecondary;
}
.visNewVisDialog__typeImage {
@include size($euiSizeL);
}

View file

@ -18,7 +18,6 @@
*/
import { EuiIcon } from '@elastic/eui';
import classnames from 'classnames';
import React from 'react';
import { VisType } from 'ui/vis';
@ -30,15 +29,9 @@ interface VisTypeIconProps {
* This renders the icon for a specific visualization type.
* This currently checks the following:
* - If visType.image is set, use that as the `src` of an image
* - If legacyIcon is set, use that as a classname for a span with kuiIcon (to be removed in 7.0)
* - Otherwise use the visType.icon as an EuiIcon or the 'empty' icon if that's not set
*/
export const VisTypeIcon = ({ visType }: VisTypeIconProps) => {
const legacyIconClass = classnames(
'kuiIcon',
'visNewVisDialog__typeLegacyIcon',
visType.legacyIcon
);
return (
<React.Fragment>
{visType.image && (
@ -50,8 +43,7 @@ export const VisTypeIcon = ({ visType }: VisTypeIconProps) => {
className="visNewVisDialog__typeImage"
/>
)}
{!visType.image && visType.legacyIcon && <span className={legacyIconClass} />}
{!visType.image && !visType.legacyIcon && (
{!visType.image && (
<EuiIcon type={visType.icon || 'empty'} size="l" color="secondary" aria-hidden="true" />
)}
</React.Fragment>

View file

@ -18,7 +18,6 @@
*/
import indexPattern from './index_pattern.json';
import staticSavedObjects from './saved_objects.json';
function getIndexPatternWithTitle(indexPatternTitle) {
indexPattern.attributes.title = indexPatternTitle;
@ -26,5 +25,5 @@ function getIndexPatternWithTitle(indexPatternTitle) {
}
export function getSavedObjects(indexPatternTitle) {
return [getIndexPatternWithTitle(indexPatternTitle), ...staticSavedObjects];
return [getIndexPatternWithTitle(indexPatternTitle)];
}

File diff suppressed because one or more lines are too long

View file

@ -1,260 +0,0 @@
[{
"attributes": {
"description": "",
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"filter\": [], \"index\": \"apm-*\", \"query\": {\"language\": \"lucene\", \"query\": \"\"}}"
},
"title": "Services [APM]",
"uiStateJSON": "{\"vis\": {\"params\": {\"sort\": {\"direction\": null, \"columnIndex\": null}}}}",
"version": 1,
"visState": "{\"type\": \"table\", \"title\": \"Services [APM]\", \"aggs\": [{\"id\": \"1\", \"type\": \"avg\", \"enabled\": true, \"params\": {\"customLabel\": \"Avg. Trans. Time (us)\", \"field\": \"transaction.duration.us\"}, \"schema\": \"metric\"}, {\"id\": \"3\", \"type\": \"percentiles\", \"enabled\": true, \"params\": {\"customLabel\": \"Trans. Time (us)\", \"field\": \"transaction.duration.us\", \"percents\": [95]}, \"schema\": \"metric\"}, {\"id\": \"4\", \"type\": \"cardinality\", \"enabled\": true, \"params\": {\"customLabel\": \"Total Transactions\", \"field\": \"transaction.id\"}, \"schema\": \"metric\"}, {\"id\": \"6\", \"type\": \"cardinality\", \"enabled\": true, \"params\": {\"customLabel\": \"Errors\", \"field\": \"error.id\"}, \"schema\": \"metric\"}, {\"id\": \"5\", \"type\": \"top_hits\", \"enabled\": true, \"params\": {\"sortOrder\": \"desc\", \"customLabel\": \"-\", \"size\": 1, \"field\": \"view errors\", \"aggregate\": \"concat\", \"sortField\": \"@timestamp\"}, \"schema\": \"metric\"}, {\"id\": \"2\", \"type\": \"terms\", \"enabled\": true, \"params\": {\"field\": \"context.service.name\", \"orderBy\": \"1\", \"size\": 1000, \"order\": \"desc\"}, \"schema\": \"bucket\"}], \"params\": {\"sort\": {\"direction\": null, \"columnIndex\": null}, \"showPartialRows\": false, \"showTotal\": false, \"totalFunc\": \"sum\", \"perPage\": 10, \"showMeticsAtAllLevels\": false}}"
},
"id": "1ffc5e20-7827-11e7-8c47-65b845b5cfb3",
"type": "visualization",
"version": 1
},
{
"attributes": {
"description": "",
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"index\": \"apm-*\", \"query\": {\"language\": \"lucene\", \"query\": \"\"}}"
},
"title": "Top Services by Transaction Time [APM]",
"uiStateJSON": "{}",
"version": 1,
"visState": "{\"type\": \"metrics\", \"title\": \"Top Services by Transaction Time [APM]\", \"aggs\": [], \"params\": {\"type\": \"timeseries\", \"show_grid\": 1, \"interval\": \">=1m\", \"axis_position\": \"left\", \"time_field\": \"@timestamp\", \"id\": \"61ca57f0-469d-11e7-af02-69e470af7417\", \"show_legend\": 1, \"series\": [{\"value_template\": \"{{value}} ms\", \"formatter\": \"us,ms,0\", \"terms_field\": \"context.service.name\", \"id\": \"61ca57f1-469d-11e7-af02-69e470af7417\", \"color\": \"rgba(0,156,224,1)\", \"stacked\": \"none\", \"line_width\": \"2\", \"fill\": \"0\", \"split_color_mode\": \"gradient\", \"seperate_axis\": 0, \"axis_position\": \"right\", \"metrics\": [{\"id\": \"61ca57f2-469d-11e7-af02-69e470af7417\", \"type\": \"avg\", \"field\": \"transaction.duration.us\"}], \"terms_order_by\": \"61ca57f2-469d-11e7-af02-69e470af7417\", \"chart_type\": \"line\", \"point_size\": 1, \"split_mode\": \"terms\"}], \"axis_formatter\": \"number\"}}"
},
"id": "1bdca740-7828-11e7-8c47-65b845b5cfb3",
"type": "visualization",
"version": 2
},
{
"attributes": {
"description": "",
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"index\": \"apm-*\", \"query\": {\"language\": \"lucene\", \"query\": \"\"}}"
},
"title": "Top Services by Transaction Per Minute [APM]",
"uiStateJSON": "{}",
"version": 1,
"visState": "{\"type\": \"metrics\", \"title\": \"Top Apps by Transaction Per Minute [APM]\", \"aggs\": [], \"params\": {\"type\": \"timeseries\", \"show_grid\": 1, \"interval\": \">=1m\", \"axis_position\": \"left\", \"time_field\": \"@timestamp\", \"id\": \"61ca57f0-469d-11e7-af02-69e470af7417\", \"show_legend\": 1, \"series\": [{\"value_template\": \"{{value}} tpm\", \"formatter\": \"number\", \"terms_field\": \"context.service.name\", \"id\": \"61ca57f1-469d-11e7-af02-69e470af7417\", \"color\": \"rgba(0,156,224,1)\", \"stacked\": \"none\", \"line_width\": \"2\", \"fill\": \"0\", \"seperate_axis\": 0, \"axis_position\": \"right\", \"metrics\": [{\"id\": \"61ca57f2-469d-11e7-af02-69e470af7417\", \"type\": \"count\"}, {\"id\": \"3fcaa6c0-7828-11e7-bb25-2ff6dee07a1b\", \"type\": \"cumulative_sum\", \"field\": \"61ca57f2-469d-11e7-af02-69e470af7417\"}, {\"id\": \"467f1cd0-7828-11e7-bb25-2ff6dee07a1b\", \"type\": \"derivative\", \"field\": \"3fcaa6c0-7828-11e7-bb25-2ff6dee07a1b\", \"unit\": \"1m\"}, {\"id\": \"4bd1b8f0-7828-11e7-bb25-2ff6dee07a1b\", \"type\": \"positive_only\", \"field\": \"467f1cd0-7828-11e7-bb25-2ff6dee07a1b\", \"unit\": \"\"}], \"terms_order_by\": \"_count\", \"chart_type\": \"line\", \"point_size\": 1, \"split_mode\": \"terms\"}], \"axis_formatter\": \"number\"}}"
},
"id": "804ffc40-7828-11e7-8c47-65b845b5cfb3",
"type": "visualization",
"version": 1
},
{
"attributes": {
"description": "",
"hits": 0,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"filter\": [], \"highlightAll\": true, \"version\": true, \"query\": {\"language\": \"lucene\", \"query\": \"\"}}"
},
"optionsJSON": "{\"darkTheme\": false}",
"panelsJSON": "[{\"size_x\": 12, \"size_y\": 5, \"id\": \"1ffc5e20-7827-11e7-8c47-65b845b5cfb3\", \"panelIndex\": 1, \"row\": 4, \"col\": 1, \"type\": \"visualization\"}, {\"size_x\": 6, \"size_y\": 3, \"id\": \"1bdca740-7828-11e7-8c47-65b845b5cfb3\", \"panelIndex\": 2, \"row\": 1, \"col\": 1, \"type\": \"visualization\"}, {\"size_x\": 6, \"size_y\": 3, \"id\": \"804ffc40-7828-11e7-8c47-65b845b5cfb3\", \"panelIndex\": 3, \"row\": 1, \"col\": 7, \"type\": \"visualization\"}]",
"timeRestore": false,
"title": "[APM] Services",
"uiStateJSON": "{\"P-1\": {\"vis\": {\"params\": {\"sort\": {\"direction\": null, \"columnIndex\": null}}}}}",
"version": 1
},
"id": "8d3ed660-7828-11e7-8c47-65b845b5cfb3",
"type": "dashboard",
"version": 1
},
{
"attributes": {
"description": "",
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"index\": \"apm-*\", \"query\": {\"language\": \"lucene\", \"query\": \"\"}}"
},
"title": "Error Occurrences [APM]",
"uiStateJSON": "{}",
"version": 1,
"visState": "{\"type\": \"metrics\", \"title\": \"Error Occurrences [APM]\", \"aggs\": [], \"params\": {\"filter\": \"processor.event:error\", \"type\": \"timeseries\", \"show_grid\": 1, \"interval\": \">=1m\", \"axis_position\": \"left\", \"time_field\": \"@timestamp\", \"id\": \"61ca57f0-469d-11e7-af02-69e470af7417\", \"show_legend\": 0, \"series\": [{\"label\": \"Occurrences\", \"formatter\": \"number\", \"terms_field\": \"error.grouping_key\", \"id\": \"61ca57f1-469d-11e7-af02-69e470af7417\", \"color\": \"rgba(0,156,224,1)\", \"stacked\": \"none\", \"line_width\": \"0\", \"fill\": \"1\", \"seperate_axis\": 0, \"axis_position\": \"right\", \"metrics\": [{\"id\": \"61ca57f2-469d-11e7-af02-69e470af7417\", \"type\": \"count\"}], \"chart_type\": \"bar\", \"point_size\": 1, \"split_mode\": \"terms\"}], \"axis_formatter\": \"number\"}}"
},
"id": "c618e4e0-7c69-11e7-aa55-3b0d52c71c60",
"type": "visualization",
"version": 1
},
{
"attributes": {
"columns": [
"error.culprit",
"error.exception.type",
"error.exception.message",
"error.log.message",
"error.exception.handled",
"context.service.name"
],
"description": "",
"hits": 0,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"filter\": [{\"$state\": {\"store\": \"appState\"}, \"meta\": {\"value\": \"error\", \"disabled\": false, \"key\": \"processor.event\", \"negate\": false, \"type\": \"phrase\", \"alias\": null, \"index\": \"apm-*\", \"params\": {\"type\": \"phrase\", \"query\": \"error\"}}, \"query\": {\"match\": {\"processor.event\": {\"type\": \"phrase\", \"query\": \"error\"}}}}], \"index\": \"apm-*\", \"query\": {\"language\": \"lucene\", \"query\": \"\"}, \"highlightAll\": true, \"version\": true}"
},
"sort": [
"@timestamp",
"desc"
],
"title": "Error Details [APM]",
"version": 1
},
"id": "ceefd050-7c6a-11e7-aa55-3b0d52c71c60",
"type": "search",
"version": 1
},
{
"attributes": {
"description": "",
"hits": 0,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"filter\": [], \"highlightAll\": true, \"version\": true, \"query\": {\"language\": \"lucene\", \"query\": \"\"}}"
},
"optionsJSON": "{\"darkTheme\": false}",
"panelsJSON": "[{\"size_x\": 12, \"size_y\": 3, \"id\": \"c618e4e0-7c69-11e7-aa55-3b0d52c71c60\", \"panelIndex\": 1, \"row\": 1, \"col\": 1, \"type\": \"visualization\"}, {\"size_x\": 12, \"sort\": [\"@timestamp\", \"desc\"], \"size_y\": 21, \"id\": \"ceefd050-7c6a-11e7-aa55-3b0d52c71c60\", \"columns\": [\"error.culprit\", \"error.exception.type\", \"error.exception.message\", \"error.log.message\", \"error.exception.handled\", \"context.service.name\"], \"panelIndex\": 2, \"row\": 4, \"col\": 1, \"type\": \"search\"}]",
"timeRestore": false,
"title": "[APM] Error Details",
"uiStateJSON": "{}",
"version": 1
},
"id": "5f08a870-7c6a-11e7-aa55-3b0d52c71c60",
"type": "dashboard",
"version": 1
},
{
"attributes": {
"description": "",
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"filter\": [], \"index\": \"apm-*\", \"query\": {\"language\": \"lucene\", \"query\": \"\"}}"
},
"title": "Top Errors for Time Period [APM]",
"uiStateJSON": "{\"vis\": {\"params\": {\"sort\": {\"direction\": null, \"columnIndex\": null}}}}",
"version": 1,
"visState": "{\"type\": \"table\", \"title\": \"Top Errors for Time Period [APM]\", \"aggs\": [{\"id\": \"2\", \"type\": \"terms\", \"enabled\": true, \"params\": {\"customLabel\": \"-\", \"field\": \"error id icon\", \"orderBy\": \"1\", \"size\": 100, \"order\": \"desc\"}, \"schema\": \"bucket\"}, {\"id\": \"5\", \"type\": \"top_hits\", \"enabled\": true, \"params\": {\"sortOrder\": \"desc\", \"customLabel\": \"Message\", \"size\": 1, \"field\": \"error.exception.message\", \"aggregate\": \"concat\", \"sortField\": \"@timestamp\"}, \"schema\": \"metric\"}, {\"id\": \"1\", \"type\": \"count\", \"enabled\": true, \"params\": {\"customLabel\": \"Number of Errors\"}, \"schema\": \"metric\"}, {\"id\": \"4\", \"type\": \"top_hits\", \"enabled\": true, \"params\": {\"sortOrder\": \"desc\", \"customLabel\": \"Type\", \"size\": 1, \"field\": \"error.exception.type\", \"aggregate\": \"concat\", \"sortField\": \"@timestamp\"}, \"schema\": \"metric\"}, {\"id\": \"3\", \"type\": \"top_hits\", \"enabled\": true, \"params\": {\"sortOrder\": \"desc\", \"customLabel\": \"Culprit\", \"size\": 1, \"field\": \"error.culprit\", \"aggregate\": \"concat\", \"sortField\": \"@timestamp\"}, \"schema\": \"metric\"}, {\"id\": \"6\", \"type\": \"top_hits\", \"enabled\": true, \"params\": {\"sortOrder\": \"desc\", \"customLabel\": \"App Name\", \"size\": 1, \"field\": \"context.service.name\", \"aggregate\": \"concat\", \"sortField\": \"@timestamp\"}, \"schema\": \"metric\"}, {\"id\": \"7\", \"type\": \"top_hits\", \"enabled\": true, \"params\": {\"sortOrder\": \"desc\", \"customLabel\": \"-\", \"size\": 1, \"field\": \"error.grouping_key\", \"aggregate\": \"concat\", \"sortField\": \"@timestamp\"}, \"schema\": \"metric\"}], \"params\": {\"sort\": {\"direction\": null, \"columnIndex\": null}, \"showPartialRows\": false, \"showTotal\": false, \"totalFunc\": \"sum\", \"perPage\": 25, \"showMeticsAtAllLevels\": false}}"
},
"id": "22518e70-7c69-11e7-aa55-3b0d52c71c60",
"type": "visualization",
"version": 1
},
{
"attributes": {
"description": "",
"hits": 0,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"filter\": [], \"highlightAll\": true, \"version\": true, \"query\": {\"language\": \"lucene\", \"query\": \"\"}}"
},
"optionsJSON": "{\"darkTheme\": false}",
"panelsJSON": "[{\"size_x\": 12, \"size_y\": 10, \"id\": \"22518e70-7c69-11e7-aa55-3b0d52c71c60\", \"panelIndex\": 1, \"row\": 4, \"col\": 1, \"type\": \"visualization\"}, {\"size_x\": 12, \"size_y\": 3, \"id\": \"c618e4e0-7c69-11e7-aa55-3b0d52c71c60\", \"panelIndex\": 2, \"row\": 1, \"col\": 1, \"type\": \"visualization\"}]",
"timeRestore": false,
"title": "[APM] Errors",
"uiStateJSON": "{\"P-1\": {\"vis\": {\"params\": {\"sort\": {\"direction\": null, \"columnIndex\": null}}}}}",
"version": 1
},
"id": "37f6fac0-7c6a-11e7-aa55-3b0d52c71c60",
"type": "dashboard",
"version": 1
},
{
"attributes": {
"description": "",
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"filter\": [], \"index\": \"apm-*\", \"query\": {\"language\": \"lucene\", \"query\": \"\"}}"
},
"title": "Top Transactions for Time Period [APM]",
"uiStateJSON": "{\"vis\": {\"params\": {\"sort\": {\"direction\": null, \"columnIndex\": null}}}}",
"version": 1,
"visState": "{\"type\": \"table\", \"title\": \"Top Transactions for Time Period [APM]\", \"aggs\": [{\"id\": \"2\", \"type\": \"terms\", \"enabled\": true, \"schema\": \"bucket\", \"params\": {\"customLabel\": \"Transaction\", \"field\": \"transaction.name.keyword\", \"orderBy\": \"1\", \"size\": 1000, \"order\": \"desc\"}}, {\"id\": \"5\", \"type\": \"top_hits\", \"enabled\": true, \"schema\": \"metric\", \"params\": {\"customLabel\": \"Type\", \"sortOrder\": \"desc\", \"size\": 1, \"field\": \"transaction.type\", \"aggregate\": \"concat\", \"sortField\": \"@timestamp\"}}, {\"id\": \"1\", \"type\": \"avg\", \"enabled\": true, \"schema\": \"metric\", \"params\": {\"customLabel\": \"Avg. Trans. Time (us)\", \"field\": \"transaction.duration.us\"}}, {\"id\": \"3\", \"type\": \"percentiles\", \"enabled\": true, \"schema\": \"metric\", \"params\": {\"customLabel\": \"Trans. Time (us)\", \"field\": \"transaction.duration.us\", \"percents\": [95]}}, {\"id\": \"4\", \"type\": \"top_hits\", \"enabled\": true, \"schema\": \"metric\", \"params\": {\"customLabel\": \"View Spans\", \"sortOrder\": \"desc\", \"size\": 1, \"field\": \"transaction.id\", \"aggregate\": \"concat\", \"sortField\": \"@timestamp\"}}], \"params\": {\"sort\": {\"direction\": null, \"columnIndex\": null}, \"showPartialRows\": false, \"showTotal\": false, \"totalFunc\": \"sum\", \"perPage\": 25, \"showMeticsAtAllLevels\": false}}"
},
"id": "a2e199b0-7820-11e7-8c47-65b845b5cfb3",
"type": "visualization",
"version": 1
},
{
"attributes": {
"description": "",
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"index\": \"apm-*\", \"query\": {\"language\": \"lucene\", \"query\": \"\"}}"
},
"title": "Transaction Times [APM]",
"uiStateJSON": "{}",
"version": 1,
"visState": "{\"type\": \"metrics\", \"title\": \"Transaction Times [APM]\", \"aggs\": [], \"params\": {\"type\": \"timeseries\", \"show_grid\": 1, \"interval\": \">=1m\", \"axis_position\": \"left\", \"time_field\": \"@timestamp\", \"id\": \"61ca57f0-469d-11e7-af02-69e470af7417\", \"legend_position\": \"right\", \"show_legend\": 1, \"series\": [{\"label\": \"Average\", \"value_template\": \"{{value}} ms\", \"formatter\": \"us,ms,0\", \"id\": \"61ca57f1-469d-11e7-af02-69e470af7417\", \"color\": \"rgba(0,156,224,1)\", \"stacked\": \"none\", \"line_width\": \"2\", \"fill\": \"0\", \"seperate_axis\": 0, \"axis_position\": \"right\", \"metrics\": [{\"id\": \"61ca57f2-469d-11e7-af02-69e470af7417\", \"type\": \"avg\", \"field\": \"transaction.duration.us\"}], \"chart_type\": \"line\", \"point_size\": 1, \"split_mode\": \"everything\"}, {\"label\": \"95th Percentile\", \"value_template\": \"{{value}} ms\", \"formatter\": \"us,ms,0\", \"id\": \"79921480-7821-11e7-8745-07eaffcb65e5\", \"color\": \"rgba(115,216,255,1)\", \"stacked\": \"none\", \"line_width\": 1, \"fill\": 0.5, \"seperate_axis\": 0, \"axis_position\": \"right\", \"metrics\": [{\"id\": \"79921481-7821-11e7-8745-07eaffcb65e5\", \"type\": \"percentile\", \"percentiles\": [{\"id\": \"858ec670-7821-11e7-8745-07eaffcb65e5\", \"value\": \"95\", \"percentile\": \"\", \"shade\": 0.2, \"mode\": \"line\"}], \"field\": \"transaction.duration.us\"}], \"chart_type\": \"line\", \"point_size\": 1, \"split_mode\": \"everything\"}, {\"label\": \"99th Percentile\", \"value_template\": \"{{value}} ms\", \"formatter\": \"us,ms,0\", \"id\": \"c1e42de0-7821-11e7-8745-07eaffcb65e5\", \"color\": \"rgba(254,146,0,1)\", \"stacked\": \"none\", \"line_width\": \"2\", \"fill\": \"0\", \"seperate_axis\": 0, \"axis_position\": \"right\", \"metrics\": [{\"id\": \"c1e42de1-7821-11e7-8745-07eaffcb65e5\", \"type\": \"percentile\", \"percentiles\": [{\"id\": \"858ec670-7821-11e7-8745-07eaffcb65e5\", \"value\": \"99\", \"percentile\": \"\", \"shade\": 0.2, \"mode\": \"line\"}], \"field\": \"transaction.duration.us\"}], \"chart_type\": \"line\", \"point_size\": 1, \"split_mode\": \"everything\"}], \"axis_formatter\": \"number\"}}"
},
"id": "09bcf890-7822-11e7-8c47-65b845b5cfb3",
"type": "visualization",
"version": 2
},
{
"attributes": {
"description": "",
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"index\": \"apm-*\", \"query\": {\"language\": \"lucene\", \"query\": \"\"}}"
},
"title": "Transaction Per Minute [APM]",
"uiStateJSON": "{}",
"version": 1,
"visState": "{\"type\": \"metrics\", \"title\": \"Transaction Per Minute [APM]\", \"aggs\": [], \"params\": {\"type\": \"timeseries\", \"show_grid\": 1, \"interval\": \">=1m\", \"axis_position\": \"left\", \"time_field\": \"@timestamp\", \"id\": \"61ca57f0-469d-11e7-af02-69e470af7417\", \"show_legend\": 0, \"series\": [{\"label\": \"\", \"value_template\": \"{{value}} tpm\", \"formatter\": \"number\", \"terms_field\": \"transaction.result\", \"id\": \"61ca57f1-469d-11e7-af02-69e470af7417\", \"color\": \"rgba(115,216,255,1)\", \"stacked\": \"none\", \"line_width\": \"2\", \"fill\": \"0\", \"seperate_axis\": 0, \"axis_position\": \"right\", \"metrics\": [{\"id\": \"61ca57f2-469d-11e7-af02-69e470af7417\", \"type\": \"cardinality\", \"field\": \"transaction.id\"}, {\"id\": \"3fcaa6c0-7828-11e7-bb25-2ff6dee07a1b\", \"type\": \"cumulative_sum\", \"field\": \"61ca57f2-469d-11e7-af02-69e470af7417\"}, {\"id\": \"467f1cd0-7828-11e7-bb25-2ff6dee07a1b\", \"type\": \"derivative\", \"field\": \"3fcaa6c0-7828-11e7-bb25-2ff6dee07a1b\", \"unit\": \"1m\"}, {\"id\": \"4bd1b8f0-7828-11e7-bb25-2ff6dee07a1b\", \"type\": \"positive_only\", \"field\": \"467f1cd0-7828-11e7-bb25-2ff6dee07a1b\", \"unit\": \"\"}], \"chart_type\": \"line\", \"point_size\": \"0\", \"split_mode\": \"everything\"}], \"axis_formatter\": \"number\"}}"
},
"id": "55606a60-7823-11e7-8c47-65b845b5cfb3",
"type": "visualization",
"version": 1
},
{
"attributes": {
"description": "",
"hits": 0,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"filter\": [], \"highlightAll\": true, \"version\": true, \"query\": {\"language\": \"lucene\", \"query\": \"\"}}"
},
"optionsJSON": "{\"darkTheme\": false}",
"panelsJSON": "[{\"size_x\": 12, \"size_y\": 10, \"id\": \"a2e199b0-7820-11e7-8c47-65b845b5cfb3\", \"panelIndex\": 1, \"row\": 4, \"col\": 1, \"type\": \"visualization\"}, {\"size_x\": 6, \"size_y\": 3, \"id\": \"09bcf890-7822-11e7-8c47-65b845b5cfb3\", \"panelIndex\": 2, \"row\": 1, \"col\": 1, \"type\": \"visualization\"}, {\"size_x\": 6, \"size_y\": 3, \"id\": \"55606a60-7823-11e7-8c47-65b845b5cfb3\", \"panelIndex\": 3, \"row\": 1, \"col\": 7, \"type\": \"visualization\"}]",
"timeRestore": false,
"title": "[APM] Transactions",
"uiStateJSON": "{\"P-1\": {\"vis\": {\"params\": {\"sort\": {\"direction\": null, \"columnIndex\": null}}}}}",
"version": 1
},
"id": "41b5d920-7821-11e7-8c47-65b845b5cfb3",
"type": "dashboard",
"version": 1
},
{
"attributes": {
"columns": [
"span.type",
"span.name",
"span.duration.us",
"span.start.us"
],
"description": "",
"hits": 0,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"filter\": [{\"$state\": {\"store\": \"appState\"}, \"meta\": {\"value\": \"span\", \"disabled\": false, \"key\": \"processor.event\", \"negate\": false, \"type\": \"phrase\", \"alias\": null, \"index\": \"apm-*\", \"params\": {\"type\": \"phrase\", \"query\": \"span\"}}, \"query\": {\"match\": {\"processor.event\": {\"type\": \"phrase\", \"query\": \"span\"}}}}], \"index\": \"apm-*\", \"query\": {\"language\": \"lucene\", \"query\": \"\"}, \"highlightAll\": true, \"version\": true}"
},
"sort": [
"span.start.us",
"asc"
],
"title": "Spans [APM]",
"version": 1
},
"id": "d7735b90-7ddf-11e7-b115-df9c90da2df1",
"type": "search",
"version": 1
},
{
"attributes": {
"description": "",
"hits": 0,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"filter\": [], \"highlightAll\": true, \"version\": true, \"query\": {\"language\": \"lucene\", \"query\": \"\"}}"
},
"optionsJSON": "{\"darkTheme\": false}",
"panelsJSON": "[{\"size_x\": 12, \"sort\": [\"span.start.us\", \"asc\"], \"size_y\": 23, \"type\": \"search\", \"columns\": [\"span.type\", \"span.name\", \"span.duration.us\", \"span.start.us\"], \"panelIndex\": 1, \"row\": 1, \"col\": 1, \"id\": \"d7735b90-7ddf-11e7-b115-df9c90da2df1\"}]",
"timeRestore": false,
"title": "[APM] Span Details",
"uiStateJSON": "{}",
"version": 1
},
"id": "3e3de700-7de0-11e7-b115-df9c90da2df1",
"type": "dashboard",
"version": 2
}]

Some files were not shown because too many files have changed in this diff Show more