Merge remote-tracking branch 'origin/master' into feature/merge-code
|
@ -45,18 +45,6 @@ with dashboard*.
|
|||
[[loading-a-saved-dashboard]]
|
||||
To import, export, and delete dashboards, see <<managing-saved-objects>>.
|
||||
|
||||
[float]
|
||||
=== Changing the Color Theme ===
|
||||
|
||||
By default, Kibana dashboards use the light color theme. To use the dark color theme:
|
||||
|
||||
. Go to the menu bar and click *Edit*.
|
||||
. Click *Options* in the menu bar.
|
||||
. Select *Use dark theme*.
|
||||
|
||||
To set the dark theme as the default, go to *Management > Advanced Settings*.
|
||||
Scroll down to *Dashboard* and toggle *Dark Theme* to *On*.
|
||||
|
||||
[[customizing-your-dashboard]]
|
||||
== Arranging Dashboard Elements
|
||||
|
||||
|
|
|
@ -39,6 +39,13 @@ Alternatively, you can download other Docker images that contain only features
|
|||
available under the Apache 2.0 license. To download the images, go to
|
||||
https://www.docker.elastic.co[www.docker.elastic.co].
|
||||
|
||||
[float]
|
||||
=== Running Kibana on Docker for development
|
||||
Kibana can be quickly started and connected to a local Elasticsearch container for development
|
||||
or testing use with the following command:
|
||||
--------------------------------------------
|
||||
docker run --link YOUR_ELASTICSEARCH_CONTAINER_NAME_OR_ID:elasticsearch -p 5601:5601 {docker-repo}:{version}
|
||||
--------------------------------------------
|
||||
endif::[]
|
||||
|
||||
[float]
|
||||
|
|
|
@ -95,7 +95,7 @@
|
|||
},
|
||||
"dependencies": {
|
||||
"@elastic/datemath": "5.0.2",
|
||||
"@elastic/eui": "9.0.2",
|
||||
"@elastic/eui": "9.2.1",
|
||||
"@elastic/filesaver": "1.1.2",
|
||||
"@elastic/good": "8.1.1-kibana2",
|
||||
"@elastic/numeral": "2.3.2",
|
||||
|
|
637
packages/kbn-ui-framework/dist/kui_dark.css
vendored
165
packages/kbn-ui-framework/dist/kui_light.css
vendored
|
@ -57,13 +57,8 @@
|
|||
* 5. Fixing this bug means we now need to align the children to the right.
|
||||
*/
|
||||
:focus:not([class^="eui"]) {
|
||||
z-index: 1;
|
||||
/* 1 */
|
||||
outline: none !important;
|
||||
/* 2 */
|
||||
-webkit-box-shadow: 0 0 0 1px #FFF, 0 0 0 2px #006BB4;
|
||||
box-shadow: 0 0 0 1px #FFF, 0 0 0 2px #006BB4;
|
||||
/* 3 */ }
|
||||
-webkit-animation: 350ms cubic-bezier(0.694, 0.0482, 0.335, 1) 1 normal forwards focusRingAnimate;
|
||||
animation: 350ms cubic-bezier(0.694, 0.0482, 0.335, 1) 1 normal forwards focusRingAnimate; }
|
||||
|
||||
/**
|
||||
* 1. Required for IE11.
|
||||
|
@ -144,7 +139,7 @@ main {
|
|||
appearance: none;
|
||||
cursor: pointer;
|
||||
padding: 4px 12px 5px;
|
||||
font-size: 14px;
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
line-height: 1.5;
|
||||
height: 30px;
|
||||
|
@ -205,13 +200,13 @@ main {
|
|||
* 1. Override Bootstrap.
|
||||
*/
|
||||
.kuiButton--basic {
|
||||
color: #2D2D2D;
|
||||
color: #343741;
|
||||
background-color: #F5F7FA; }
|
||||
.kuiButton--basic:not(a):enabled:focus {
|
||||
color: #2D2D2D; }
|
||||
color: #343741; }
|
||||
a.kuiButton--basic:not(.kuiButton-isDisabled):focus {
|
||||
/* 1 */
|
||||
color: #2D2D2D; }
|
||||
color: #343741; }
|
||||
.kuiButton--basic:enabled:hover {
|
||||
background-color: #d3dce9 !important;
|
||||
/* 1 */ }
|
||||
|
@ -494,7 +489,7 @@ main {
|
|||
border: none;
|
||||
line-height: 1;
|
||||
font-size: 16px;
|
||||
color: #2D2D2D !important;
|
||||
color: #343741 !important;
|
||||
/* 1 */
|
||||
cursor: pointer;
|
||||
opacity: 0.35; }
|
||||
|
@ -510,7 +505,7 @@ main {
|
|||
padding: 5px 0px;
|
||||
border: none;
|
||||
border-bottom: dotted 2px #D3DAE6;
|
||||
font-size: 14px;
|
||||
font-size: 16px;
|
||||
cursor: pointer; }
|
||||
|
||||
.kuiExpressionButton__description {
|
||||
|
@ -518,7 +513,7 @@ main {
|
|||
text-transform: uppercase; }
|
||||
|
||||
.kuiExpressionButton__value {
|
||||
color: #2D2D2D;
|
||||
color: #343741;
|
||||
text-transform: lowercase; }
|
||||
|
||||
.kuiExpressionButton-isActive {
|
||||
|
@ -562,9 +557,9 @@ main {
|
|||
/* 2 */
|
||||
margin: 0 !important;
|
||||
/* 2 */
|
||||
font: "Open Sans", "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol" !important;
|
||||
font: "Inter UI", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol" !important;
|
||||
/* 2 */
|
||||
font-family: "Open Sans", "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol" !important;
|
||||
font-family: "Inter UI", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol" !important;
|
||||
/* 2 */
|
||||
font-size: 10px !important;
|
||||
/* 2 */
|
||||
|
@ -611,14 +606,14 @@ main {
|
|||
line-height: 1.5; }
|
||||
|
||||
.kuiCheckBoxLabel__text {
|
||||
font-size: 14px;
|
||||
font-size: 16px;
|
||||
margin-left: 8px; }
|
||||
|
||||
/**
|
||||
* 1. Override Bootstrap.
|
||||
*/
|
||||
.kuiLabel {
|
||||
font-size: 14px;
|
||||
font-size: 16px;
|
||||
line-height: 1.5;
|
||||
font-weight: bold;
|
||||
margin-bottom: 0;
|
||||
|
@ -628,7 +623,7 @@ main {
|
|||
width: 180px;
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
font-size: 14px;
|
||||
font-size: 16px;
|
||||
line-height: 1.5; }
|
||||
.kuiSearchInput.kuiSearchInput-isInvalid .kuiSearchInput__input {
|
||||
border-color: #BD271E; }
|
||||
|
@ -648,12 +643,12 @@ main {
|
|||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
appearance: none;
|
||||
font-family: "Open Sans", "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
||||
font-family: "Inter UI", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
||||
padding: 4px 12px 4px;
|
||||
font-size: 14px;
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
line-height: 1.5;
|
||||
color: #2D2D2D;
|
||||
color: #343741;
|
||||
background-color: #fbfcfd;
|
||||
border: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-radius: 4px;
|
||||
|
@ -687,12 +682,12 @@ main {
|
|||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
appearance: none;
|
||||
font-family: "Open Sans", "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
||||
font-family: "Inter UI", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
||||
padding: 4px 12px 4px;
|
||||
font-size: 14px;
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
line-height: 1.5;
|
||||
color: #2D2D2D;
|
||||
color: #343741;
|
||||
background-color: #fbfcfd;
|
||||
border: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-radius: 4px;
|
||||
|
@ -744,12 +739,12 @@ main {
|
|||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
appearance: none;
|
||||
font-family: "Open Sans", "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
||||
font-family: "Inter UI", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
||||
padding: 4px 12px 4px;
|
||||
font-size: 14px;
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
line-height: 1.5;
|
||||
color: #2D2D2D;
|
||||
color: #343741;
|
||||
border: 1px solid transparent;
|
||||
/* 1 */
|
||||
background-color: transparent; }
|
||||
|
@ -759,12 +754,12 @@ main {
|
|||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
appearance: none;
|
||||
font-family: "Open Sans", "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
||||
font-family: "Inter UI", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
||||
padding: 4px 12px 4px;
|
||||
font-size: 14px;
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
line-height: 1.5;
|
||||
color: #2D2D2D;
|
||||
color: #343741;
|
||||
background-color: #fbfcfd;
|
||||
border: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-radius: 4px;
|
||||
|
@ -802,12 +797,12 @@ main {
|
|||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
appearance: none;
|
||||
font-family: "Open Sans", "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
||||
font-family: "Inter UI", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
||||
padding: 4px 12px 4px;
|
||||
font-size: 14px;
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
line-height: 1.5;
|
||||
color: #2D2D2D;
|
||||
color: #343741;
|
||||
background-color: #fbfcfd;
|
||||
border: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-radius: 4px;
|
||||
|
@ -950,11 +945,11 @@ main {
|
|||
|
||||
.kuiInfoPanelHeader__icon {
|
||||
margin-right: 10px;
|
||||
font-size: 14px;
|
||||
font-size: 16px;
|
||||
line-height: 1.5; }
|
||||
|
||||
.kuiInfoPanelHeader__title {
|
||||
font-size: 14px;
|
||||
font-size: 16px;
|
||||
line-height: 1.5;
|
||||
font-weight: 700; }
|
||||
|
||||
|
@ -964,7 +959,7 @@ main {
|
|||
margin-top: 8px; }
|
||||
|
||||
.kuiInfoPanelBody__message {
|
||||
font-size: 14px;
|
||||
font-size: 16px;
|
||||
line-height: 1.5; }
|
||||
|
||||
.kuiLink {
|
||||
|
@ -1052,7 +1047,7 @@ main {
|
|||
/* 2 */
|
||||
color: #006BB4;
|
||||
/* 1 */
|
||||
font-size: 14px; }
|
||||
font-size: 16px; }
|
||||
.kuiLocalBreadcrumb__link:visited, .kuiLocalBreadcrumb__link:active {
|
||||
color: #006BB4; }
|
||||
.kuiLocalBreadcrumb__link:hover {
|
||||
|
@ -1096,7 +1091,7 @@ main {
|
|||
background-color: transparent;
|
||||
border: none;
|
||||
font-size: 14px;
|
||||
color: #2D2D2D;
|
||||
color: #343741;
|
||||
padding: 3px 6px;
|
||||
border-radius: 4px; }
|
||||
.kuiDatePickerNavigationButton:hover, .kuiDatePickerNavigationButton:active {
|
||||
|
@ -1111,12 +1106,12 @@ main {
|
|||
-webkit-box-shadow: 0 0 0 1px transparent, 0 0 0 2px #006BB4;
|
||||
box-shadow: 0 0 0 1px transparent, 0 0 0 2px #006BB4;
|
||||
/* 3 */
|
||||
color: #2D2D2D;
|
||||
color: #343741;
|
||||
/* 1 */ }
|
||||
|
||||
.kuiDatePickerHeaderCell {
|
||||
padding: 9px 0;
|
||||
color: #2D2D2D;
|
||||
color: #343741;
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
|
@ -1145,7 +1140,7 @@ main {
|
|||
background-color: transparent;
|
||||
width: 100%;
|
||||
border: 1px solid transparent;
|
||||
color: #2D2D2D;
|
||||
color: #343741;
|
||||
font-size: 14px;
|
||||
padding: 8px;
|
||||
border-radius: 4px;
|
||||
|
@ -1158,7 +1153,7 @@ main {
|
|||
-webkit-box-shadow: 0 0 0 1px transparent, 0 0 0 2px #006BB4;
|
||||
box-shadow: 0 0 0 1px transparent, 0 0 0 2px #006BB4;
|
||||
/* 3 */
|
||||
color: #2D2D2D;
|
||||
color: #343741;
|
||||
/* 1 */ }
|
||||
.kuiDatePickerRowCellContent:disabled {
|
||||
pointer-events: none;
|
||||
|
@ -1170,7 +1165,7 @@ main {
|
|||
color: #006BB4; }
|
||||
.kuiDatePickerRowCellContent.kuiDatePickerRowCellContent-isSelected {
|
||||
background-color: #69707D;
|
||||
color: #2D2D2D; }
|
||||
color: #343741; }
|
||||
.kuiDatePickerRowCellContent:hover, .kuiDatePickerRowCellContent:active {
|
||||
cursor: pointer;
|
||||
color: #F5F7FA;
|
||||
|
@ -1192,7 +1187,7 @@ main {
|
|||
border: none;
|
||||
line-height: 1;
|
||||
font-size: 16px;
|
||||
color: #2D2D2D !important;
|
||||
color: #343741 !important;
|
||||
/* 1 */
|
||||
cursor: pointer;
|
||||
opacity: 0.35;
|
||||
|
@ -1228,7 +1223,7 @@ main {
|
|||
/* 1 */
|
||||
margin-bottom: 12px;
|
||||
font-size: 18px;
|
||||
color: #2D2D2D; }
|
||||
color: #343741; }
|
||||
|
||||
.kuiLocalDropdownSection {
|
||||
margin-bottom: 16px; }
|
||||
|
@ -1258,7 +1253,7 @@ main {
|
|||
font-weight: 700;
|
||||
margin-bottom: 0;
|
||||
/* 1 */
|
||||
color: #2D2D2D; }
|
||||
color: #343741; }
|
||||
|
||||
.kuiLocalDropdownHeader__actions {
|
||||
display: -webkit-box;
|
||||
|
@ -1282,7 +1277,7 @@ main {
|
|||
margin-bottom: 12px;
|
||||
padding: 5px 15px;
|
||||
font-size: 14px;
|
||||
color: #2D2D2D;
|
||||
color: #343741;
|
||||
background-color: #fbfcfd;
|
||||
border: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-radius: 4px; }
|
||||
|
@ -1297,7 +1292,7 @@ main {
|
|||
margin-bottom: 16px;
|
||||
padding: 6px 10px;
|
||||
font-size: 14px;
|
||||
color: #2D2D2D;
|
||||
color: #343741;
|
||||
background-color: #FFF;
|
||||
border-left: solid 2px #BD271E; }
|
||||
|
||||
|
@ -1328,9 +1323,9 @@ main {
|
|||
-ms-flex-align: center;
|
||||
align-items: center;
|
||||
padding: 2px 8px;
|
||||
font-size: 14px;
|
||||
font-size: 16px;
|
||||
background-color: transparent;
|
||||
color: #2D2D2D;
|
||||
color: #343741;
|
||||
border: 0;
|
||||
cursor: pointer;
|
||||
border-bottom: solid 2px transparent; }
|
||||
|
@ -1375,7 +1370,7 @@ main {
|
|||
justify-content: space-between;
|
||||
min-height: 69px;
|
||||
/* 1 */
|
||||
color: #2D2D2D;
|
||||
color: #343741;
|
||||
background-color: #FFF;
|
||||
line-height: 1.5;
|
||||
border-bottom: solid 1px #D3DAE6; }
|
||||
|
@ -1435,12 +1430,12 @@ main {
|
|||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
appearance: none;
|
||||
font-family: "Open Sans", "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
||||
font-family: "Inter UI", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
||||
padding: 4px 12px 4px;
|
||||
font-size: 14px;
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
line-height: 1.5;
|
||||
color: #2D2D2D;
|
||||
color: #343741;
|
||||
background-color: #fbfcfd;
|
||||
border: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-radius: 4px;
|
||||
|
@ -1516,12 +1511,12 @@ main {
|
|||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
appearance: none;
|
||||
font-family: "Open Sans", "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
||||
font-family: "Inter UI", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
||||
padding: 4px 12px 4px;
|
||||
font-size: 14px;
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
line-height: 1.5;
|
||||
color: #2D2D2D;
|
||||
color: #343741;
|
||||
background-color: #fbfcfd;
|
||||
border: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-radius: 4px;
|
||||
|
@ -1557,7 +1552,7 @@ main {
|
|||
.kuiLocalSearchButton {
|
||||
width: 43px;
|
||||
height: 32px;
|
||||
font-size: 14px;
|
||||
font-size: 16px;
|
||||
line-height: 0;
|
||||
/* 1 */
|
||||
color: #FFF;
|
||||
|
@ -1629,7 +1624,7 @@ main {
|
|||
align-items: center;
|
||||
height: 100%;
|
||||
padding: 12px 8px;
|
||||
font-size: 14px;
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
border-bottom: 1px solid #D3DAE6;
|
||||
-webkit-box-flex: 1;
|
||||
|
@ -1714,14 +1709,14 @@ main {
|
|||
* 2. Safari won't respect :enabled:hover/active on links.
|
||||
*/
|
||||
.kuiMenuButton--basic {
|
||||
color: #2D2D2D;
|
||||
color: #343741;
|
||||
background-color: #FFF; }
|
||||
.kuiMenuButton--basic:focus {
|
||||
color: #2D2D2D !important;
|
||||
color: #343741 !important;
|
||||
/* 1 */ }
|
||||
.kuiMenuButton--basic:hover, .kuiMenuButton--basic:active {
|
||||
/* 2 */
|
||||
color: #2D2D2D !important;
|
||||
color: #343741 !important;
|
||||
/* 1 */
|
||||
background-color: #F5F7FA; }
|
||||
.kuiMenuButton--basic:disabled {
|
||||
|
@ -1841,7 +1836,7 @@ main {
|
|||
border-bottom: 1px solid #D3DAE6; }
|
||||
|
||||
.kuiModalHeader__title {
|
||||
font-size: 18.0px; }
|
||||
font-size: 20px; }
|
||||
|
||||
.kuiModalHeaderCloseButton {
|
||||
display: inline-block;
|
||||
|
@ -1856,9 +1851,9 @@ main {
|
|||
background-color: transparent;
|
||||
line-height: 1;
|
||||
/* 2 */
|
||||
font-size: 18.0px; }
|
||||
font-size: 20px; }
|
||||
.kuiModalHeaderCloseButton:hover {
|
||||
color: #2D2D2D; }
|
||||
color: #343741; }
|
||||
|
||||
.kuiModalBody {
|
||||
padding: 20px; }
|
||||
|
@ -1917,7 +1912,7 @@ main {
|
|||
/* 1 */ }
|
||||
|
||||
.kuiPagerText {
|
||||
font-size: 14px;
|
||||
font-size: 16px;
|
||||
line-height: 1.5;
|
||||
color: #69707D;
|
||||
white-space: nowrap;
|
||||
|
@ -2041,7 +2036,7 @@ main {
|
|||
* 1. This way we can use h1, h2, etc.
|
||||
*/
|
||||
.kuiPanelHeader__title {
|
||||
font-size: 18.0px;
|
||||
font-size: 20px;
|
||||
line-height: 1.5;
|
||||
margin: 0;
|
||||
/* 1 */ }
|
||||
|
@ -2198,7 +2193,7 @@ main {
|
|||
background-color: #F5F7FA;
|
||||
border-bottom: 1px solid #D3DAE6;
|
||||
padding: 12px;
|
||||
font-size: 14px; }
|
||||
font-size: 16px; }
|
||||
|
||||
.kuiEmptyTablePrompt {
|
||||
display: -webkit-box;
|
||||
|
@ -2217,7 +2212,7 @@ main {
|
|||
padding: 30px; }
|
||||
|
||||
.kuiEmptyTablePrompt__message {
|
||||
font-size: 18.0px;
|
||||
font-size: 20px;
|
||||
color: #69707D;
|
||||
line-height: 1.5; }
|
||||
|
||||
|
@ -2298,7 +2293,7 @@ main {
|
|||
/* 1 */ }
|
||||
|
||||
.kuiTableHeaderCell {
|
||||
font-size: 14px;
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
text-align: left;
|
||||
max-width: 20px;
|
||||
|
@ -2372,12 +2367,12 @@ main {
|
|||
display: none; }
|
||||
|
||||
.kuiTableRowCell {
|
||||
font-size: 14px;
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
text-align: left;
|
||||
max-width: 20px;
|
||||
/* 1 */
|
||||
color: #2D2D2D;
|
||||
color: #343741;
|
||||
border-top: 1px solid #D3DAE6;
|
||||
vertical-align: middle; }
|
||||
|
||||
|
@ -2445,7 +2440,7 @@ main {
|
|||
|
||||
.kuiTableInfo {
|
||||
padding: 30px;
|
||||
font-size: 18.0px;
|
||||
font-size: 20px;
|
||||
color: #69707D;
|
||||
line-height: 1.5; }
|
||||
|
||||
|
@ -2470,7 +2465,7 @@ main {
|
|||
/* 1 */
|
||||
cursor: pointer;
|
||||
padding: 10px 30px;
|
||||
font-size: 14px;
|
||||
font-size: 16px;
|
||||
color: #69707D;
|
||||
background-color: transparent;
|
||||
/* 1 */
|
||||
|
@ -2502,7 +2497,7 @@ main {
|
|||
background-color: #F5F7FA; }
|
||||
.kuiTab.kuiTab-isSelected {
|
||||
cursor: default;
|
||||
color: #2D2D2D;
|
||||
color: #343741;
|
||||
background-color: transparent;
|
||||
border-bottom-color: transparent; }
|
||||
|
||||
|
@ -2522,9 +2517,9 @@ main {
|
|||
/* 1 */
|
||||
line-height: inherit;
|
||||
/* 1 */
|
||||
color: #2D2D2D; }
|
||||
color: #343741; }
|
||||
.kuiToggleButton:focus {
|
||||
color: #2D2D2D; }
|
||||
color: #343741; }
|
||||
.kuiToggleButton:active {
|
||||
color: #006BB4 !important;
|
||||
/* 2 */ }
|
||||
|
@ -2767,7 +2762,7 @@ main {
|
|||
-ms-flex: 1 1 auto;
|
||||
flex: 1 1 auto;
|
||||
position: relative;
|
||||
font-size: 14px;
|
||||
font-size: 16px;
|
||||
max-width: 800px; }
|
||||
|
||||
.kuiToolBarSearchBox__icon {
|
||||
|
@ -2784,10 +2779,10 @@ main {
|
|||
width: 100%;
|
||||
min-width: 200px;
|
||||
padding: 4px 12px 5px 28px;
|
||||
font-family: "Open Sans", "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
||||
font-family: "Inter UI", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
||||
/* 1 */
|
||||
background-color: #FFF;
|
||||
color: #2D2D2D;
|
||||
color: #343741;
|
||||
border-radius: 4px;
|
||||
font-size: 1em;
|
||||
border: 1px solid #D3DAE6;
|
||||
|
@ -2803,7 +2798,7 @@ main {
|
|||
* 1. We don't want the text to take up two lines and overflow the ToolBar.
|
||||
*/
|
||||
.kuiToolBarText {
|
||||
font-size: 14px;
|
||||
font-size: 16px;
|
||||
line-height: 1.5;
|
||||
color: #69707D;
|
||||
white-space: nowrap;
|
||||
|
@ -2827,7 +2822,7 @@ main {
|
|||
/* 1 */
|
||||
font-weight: 400;
|
||||
/* 1 */
|
||||
font-size: 18.0px; }
|
||||
font-size: 20px; }
|
||||
|
||||
/**
|
||||
* 1. Override p.
|
||||
|
@ -2838,7 +2833,7 @@ main {
|
|||
font-weight: 700;
|
||||
/* 1 */
|
||||
line-height: 1.5;
|
||||
font-size: 14px; }
|
||||
font-size: 16px; }
|
||||
|
||||
/**
|
||||
* 1. Override p.
|
||||
|
@ -2849,7 +2844,7 @@ main {
|
|||
font-weight: 400;
|
||||
/* 1 */
|
||||
line-height: 1.5;
|
||||
font-size: 14px; }
|
||||
font-size: 16px; }
|
||||
|
||||
.kuiSubText {
|
||||
margin: 0;
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
// We apply brute force focus states to anything not coming from Eui
|
||||
// which has focus states designed at the component level.
|
||||
:focus {
|
||||
&:not([class^="eui"]),
|
||||
{
|
||||
@include focus;
|
||||
&:not([class^="eui"]) {
|
||||
@include euiFocusRing;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
// 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/themes/eui/eui_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';
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
// 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_light';
|
||||
@import '../../../node_modules/@elastic/eui/src/themes/eui/eui_colors_light';
|
||||
@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';
|
||||
|
|
|
@ -76,19 +76,8 @@ exports[`renders ControlsTab 1`] = `
|
|||
hasShadow={false}
|
||||
paddingSize="m"
|
||||
>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexGroup>
|
||||
<EuiFlexItem>
|
||||
<EuiFormRow
|
||||
describedByIds={Array []}
|
||||
fullWidth={false}
|
||||
|
@ -120,7 +109,6 @@ exports[`renders ControlsTab 1`] = `
|
|||
</EuiFormRow>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiFormRow
|
||||
|
|
|
@ -5,18 +5,10 @@ exports[`Apply and Cancel change btns enabled when there are changes 1`] = `
|
|||
className="icvContainer"
|
||||
>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={true}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
data-test-subj="inputControlItem"
|
||||
grow={true}
|
||||
key="mock-list-control"
|
||||
style={
|
||||
Object {
|
||||
|
@ -44,16 +36,9 @@ exports[`Apply and Cancel change btns enabled when there are changes 1`] = `
|
|||
</EuiFlexItem>
|
||||
</EuiFlexGroup>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={true}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiButton
|
||||
|
@ -73,7 +58,6 @@ exports[`Apply and Cancel change btns enabled when there are changes 1`] = `
|
|||
</EuiButton>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiButtonEmpty
|
||||
|
@ -92,7 +76,6 @@ exports[`Apply and Cancel change btns enabled when there are changes 1`] = `
|
|||
</EuiButtonEmpty>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiButtonEmpty
|
||||
|
@ -119,18 +102,10 @@ exports[`Clear btns enabled when there are values 1`] = `
|
|||
className="icvContainer"
|
||||
>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={true}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
data-test-subj="inputControlItem"
|
||||
grow={true}
|
||||
key="mock-list-control"
|
||||
style={
|
||||
Object {
|
||||
|
@ -158,16 +133,9 @@ exports[`Clear btns enabled when there are values 1`] = `
|
|||
</EuiFlexItem>
|
||||
</EuiFlexGroup>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={true}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiButton
|
||||
|
@ -187,7 +155,6 @@ exports[`Clear btns enabled when there are values 1`] = `
|
|||
</EuiButton>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiButtonEmpty
|
||||
|
@ -206,7 +173,6 @@ exports[`Clear btns enabled when there are values 1`] = `
|
|||
</EuiButtonEmpty>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiButtonEmpty
|
||||
|
@ -233,18 +199,10 @@ exports[`Renders list control 1`] = `
|
|||
className="icvContainer"
|
||||
>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={true}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
data-test-subj="inputControlItem"
|
||||
grow={true}
|
||||
key="mock-list-control"
|
||||
style={
|
||||
Object {
|
||||
|
@ -272,16 +230,9 @@ exports[`Renders list control 1`] = `
|
|||
</EuiFlexItem>
|
||||
</EuiFlexGroup>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={true}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiButton
|
||||
|
@ -301,7 +252,6 @@ exports[`Renders list control 1`] = `
|
|||
</EuiButton>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiButtonEmpty
|
||||
|
@ -320,7 +270,6 @@ exports[`Renders list control 1`] = `
|
|||
</EuiButtonEmpty>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiButtonEmpty
|
||||
|
@ -347,18 +296,10 @@ exports[`Renders range control 1`] = `
|
|||
className="icvContainer"
|
||||
>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={true}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
data-test-subj="inputControlItem"
|
||||
grow={true}
|
||||
key="mock-range-control"
|
||||
style={
|
||||
Object {
|
||||
|
@ -392,16 +333,9 @@ exports[`Renders range control 1`] = `
|
|||
</EuiFlexItem>
|
||||
</EuiFlexGroup>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={true}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiButton
|
||||
|
@ -421,7 +355,6 @@ exports[`Renders range control 1`] = `
|
|||
</EuiButton>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiButtonEmpty
|
||||
|
@ -440,7 +373,6 @@ exports[`Renders range control 1`] = `
|
|||
</EuiButtonEmpty>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiButtonEmpty
|
||||
|
|
|
@ -42,15 +42,9 @@ exports[`renders RangeControl 1`] = `
|
|||
>
|
||||
<EuiFlexGroup
|
||||
alignItems="center"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="s"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<input
|
||||
|
@ -67,7 +61,6 @@ exports[`renders RangeControl 1`] = `
|
|||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
className="icvInputRange__container"
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<InputRange
|
||||
|
@ -104,7 +97,6 @@ exports[`renders RangeControl 1`] = `
|
|||
/>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<input
|
||||
|
|
|
@ -340,18 +340,12 @@ exports[`Inspector Data View component should render loading state 1`] = `
|
|||
>
|
||||
<EuiFlexGroup
|
||||
alignItems="center"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="center"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<div
|
||||
className="euiFlexGroup euiFlexGroup--gutterLarge euiFlexGroup--alignItemsCenter euiFlexGroup--justifyContentCenter euiFlexGroup--directionRow euiFlexGroup--responsive"
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<div
|
||||
|
@ -367,7 +361,6 @@ exports[`Inspector Data View component should render loading state 1`] = `
|
|||
className="euiPanel euiPanel--paddingMedium eui-textCenter"
|
||||
>
|
||||
<EuiLoadingChart
|
||||
mono={false}
|
||||
size="m"
|
||||
>
|
||||
<div
|
||||
|
|
|
@ -217,9 +217,8 @@
|
|||
i18n-id="kbnVislibVisTypes.controls.gaugeOptions.addRangeTitle"
|
||||
i18n-default-message="Add Range"
|
||||
></div>
|
||||
<div class="euiSpacer euiSpacer--s"></div>
|
||||
<div
|
||||
class="text text-center text-info"
|
||||
class="euiFormHelpText"
|
||||
i18n-id="kbnVislibVisTypes.controls.gaugeOptions.howToChangeColorsDescription"
|
||||
i18n-default-message="Note: colors can be changed in the legend"
|
||||
></div>
|
||||
|
|
|
@ -36,16 +36,9 @@ exports[`render 1`] = `
|
|||
</EuiFlyoutBody>
|
||||
<EuiFlyoutFooter>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexEnd"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiButton
|
||||
|
|
|
@ -54,14 +54,14 @@ test('renders DashboardCloneModal', () => {
|
|||
|
||||
test('onClone', () => {
|
||||
createComponent();
|
||||
findTestSubject(component, 'cloneConfirmButton', false).simulate('click');
|
||||
findTestSubject(component, 'cloneConfirmButton').simulate('click');
|
||||
sinon.assert.calledWith(onClone, 'dash title');
|
||||
sinon.assert.notCalled(onClose);
|
||||
});
|
||||
|
||||
test('onClose', () => {
|
||||
createComponent();
|
||||
findTestSubject(component, 'cloneCancelButton', false).simulate('click');
|
||||
findTestSubject(component, 'cloneCancelButton').simulate('click');
|
||||
sinon.assert.calledOnce(onClose);
|
||||
sinon.assert.notCalled(onClone);
|
||||
});
|
||||
|
@ -70,6 +70,6 @@ test('title', () => {
|
|||
createComponent();
|
||||
const event = { target: { value: 'a' } };
|
||||
component.find('input').simulate('change', event);
|
||||
findTestSubject(component, 'cloneConfirmButton', false).simulate('click');
|
||||
findTestSubject(component, 'cloneConfirmButton').simulate('click');
|
||||
sinon.assert.calledWith(onClone, 'a');
|
||||
});
|
||||
|
|
|
@ -49,16 +49,9 @@ exports[`render 1`] = `
|
|||
</EuiFlyoutBody>
|
||||
<EuiFlyoutFooter>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexEnd"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiButton
|
||||
|
|
|
@ -6,19 +6,8 @@ exports[`apmUiEnabled 1`] = `
|
|||
hasShadow={false}
|
||||
paddingSize="l"
|
||||
>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexGroup>
|
||||
<EuiFlexItem>
|
||||
<EuiTitle
|
||||
size="m"
|
||||
textTransform="none"
|
||||
|
@ -47,17 +36,13 @@ exports[`apmUiEnabled 1`] = `
|
|||
</EuiFlexGroup>
|
||||
<EuiSpacer />
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
className="homeAddData__flexGroup"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="spaceAround"
|
||||
responsive={false}
|
||||
wrap={true}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiCard
|
||||
|
@ -92,7 +77,6 @@ exports[`apmUiEnabled 1`] = `
|
|||
/>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiCard
|
||||
|
@ -127,7 +111,6 @@ exports[`apmUiEnabled 1`] = `
|
|||
/>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiCard
|
||||
|
@ -162,7 +145,6 @@ exports[`apmUiEnabled 1`] = `
|
|||
/>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiCard
|
||||
|
@ -200,13 +182,9 @@ exports[`apmUiEnabled 1`] = `
|
|||
<EuiHorizontalRule />
|
||||
<EuiFlexGrid
|
||||
columns={2}
|
||||
gutterSize="l"
|
||||
responsive={true}
|
||||
>
|
||||
<EuiFlexItem
|
||||
className="homAddData__footerItem"
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiText
|
||||
grow={true}
|
||||
|
@ -246,8 +224,6 @@ exports[`apmUiEnabled 1`] = `
|
|||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
className="homAddData__footerItem"
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiText
|
||||
grow={true}
|
||||
|
@ -295,19 +271,8 @@ exports[`isNewKibanaInstance 1`] = `
|
|||
hasShadow={false}
|
||||
paddingSize="l"
|
||||
>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexGroup>
|
||||
<EuiFlexItem>
|
||||
<EuiTitle
|
||||
size="m"
|
||||
textTransform="none"
|
||||
|
@ -336,17 +301,13 @@ exports[`isNewKibanaInstance 1`] = `
|
|||
</EuiFlexGroup>
|
||||
<EuiSpacer />
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
className="homeAddData__flexGroup"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="spaceAround"
|
||||
responsive={false}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiCard
|
||||
|
@ -381,7 +342,6 @@ exports[`isNewKibanaInstance 1`] = `
|
|||
/>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiCard
|
||||
|
@ -416,7 +376,6 @@ exports[`isNewKibanaInstance 1`] = `
|
|||
/>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiCard
|
||||
|
@ -454,13 +413,9 @@ exports[`isNewKibanaInstance 1`] = `
|
|||
<EuiHorizontalRule />
|
||||
<EuiFlexGrid
|
||||
columns={2}
|
||||
gutterSize="l"
|
||||
responsive={true}
|
||||
>
|
||||
<EuiFlexItem
|
||||
className="homAddData__footerItem homAddData__footerItem--highlight"
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiText
|
||||
grow={true}
|
||||
|
@ -500,8 +455,6 @@ exports[`isNewKibanaInstance 1`] = `
|
|||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
className="homAddData__footerItem homAddData__footerItem--highlight"
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiText
|
||||
grow={true}
|
||||
|
@ -549,19 +502,8 @@ exports[`mlEnabled 1`] = `
|
|||
hasShadow={false}
|
||||
paddingSize="l"
|
||||
>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexGroup>
|
||||
<EuiFlexItem>
|
||||
<EuiTitle
|
||||
size="m"
|
||||
textTransform="none"
|
||||
|
@ -590,17 +532,13 @@ exports[`mlEnabled 1`] = `
|
|||
</EuiFlexGroup>
|
||||
<EuiSpacer />
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
className="homeAddData__flexGroup"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="spaceAround"
|
||||
responsive={false}
|
||||
wrap={true}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiCard
|
||||
|
@ -635,7 +573,6 @@ exports[`mlEnabled 1`] = `
|
|||
/>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiCard
|
||||
|
@ -670,7 +607,6 @@ exports[`mlEnabled 1`] = `
|
|||
/>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiCard
|
||||
|
@ -705,7 +641,6 @@ exports[`mlEnabled 1`] = `
|
|||
/>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiCard
|
||||
|
@ -743,13 +678,9 @@ exports[`mlEnabled 1`] = `
|
|||
<EuiHorizontalRule />
|
||||
<EuiFlexGrid
|
||||
columns={3}
|
||||
gutterSize="l"
|
||||
responsive={true}
|
||||
>
|
||||
<EuiFlexItem
|
||||
className="homAddData__footerItem"
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiText
|
||||
grow={true}
|
||||
|
@ -789,8 +720,6 @@ exports[`mlEnabled 1`] = `
|
|||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
className="homAddData__footerItem"
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiText
|
||||
grow={true}
|
||||
|
@ -830,8 +759,6 @@ exports[`mlEnabled 1`] = `
|
|||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
className="homAddData__footerItem"
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiText
|
||||
grow={true}
|
||||
|
@ -879,19 +806,8 @@ exports[`render 1`] = `
|
|||
hasShadow={false}
|
||||
paddingSize="l"
|
||||
>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexGroup>
|
||||
<EuiFlexItem>
|
||||
<EuiTitle
|
||||
size="m"
|
||||
textTransform="none"
|
||||
|
@ -920,17 +836,13 @@ exports[`render 1`] = `
|
|||
</EuiFlexGroup>
|
||||
<EuiSpacer />
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
className="homeAddData__flexGroup"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="spaceAround"
|
||||
responsive={false}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiCard
|
||||
|
@ -965,7 +877,6 @@ exports[`render 1`] = `
|
|||
/>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiCard
|
||||
|
@ -1000,7 +911,6 @@ exports[`render 1`] = `
|
|||
/>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiCard
|
||||
|
@ -1038,13 +948,9 @@ exports[`render 1`] = `
|
|||
<EuiHorizontalRule />
|
||||
<EuiFlexGrid
|
||||
columns={2}
|
||||
gutterSize="l"
|
||||
responsive={true}
|
||||
>
|
||||
<EuiFlexItem
|
||||
className="homAddData__footerItem"
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiText
|
||||
grow={true}
|
||||
|
@ -1084,8 +990,6 @@ exports[`render 1`] = `
|
|||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
className="homAddData__footerItem"
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiText
|
||||
grow={true}
|
||||
|
|
|
@ -16,19 +16,8 @@ exports[`home directories should not render directory entry when showOnHomePage
|
|||
<EuiSpacer
|
||||
size="l"
|
||||
/>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexGroup>
|
||||
<EuiFlexItem>
|
||||
<EuiPanel
|
||||
grow={true}
|
||||
hasShadow={false}
|
||||
|
@ -52,14 +41,10 @@ exports[`home directories should not render directory entry when showOnHomePage
|
|||
<EuiFlexGrid
|
||||
columns={2}
|
||||
gutterSize="s"
|
||||
responsive={true}
|
||||
/>
|
||||
</EuiPanel>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexItem>
|
||||
<EuiPanel
|
||||
grow={true}
|
||||
hasShadow={false}
|
||||
|
@ -82,8 +67,6 @@ exports[`home directories should not render directory entry when showOnHomePage
|
|||
/>
|
||||
<EuiFlexGrid
|
||||
columns={2}
|
||||
gutterSize="l"
|
||||
responsive={true}
|
||||
/>
|
||||
</EuiPanel>
|
||||
</EuiFlexItem>
|
||||
|
@ -92,17 +75,10 @@ exports[`home directories should not render directory entry when showOnHomePage
|
|||
size="l"
|
||||
/>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="center"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
className="eui-textCenter"
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiText
|
||||
|
@ -156,19 +132,8 @@ exports[`home directories should render ADMIN directory entry in "Manage" panel
|
|||
<EuiSpacer
|
||||
size="l"
|
||||
/>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexGroup>
|
||||
<EuiFlexItem>
|
||||
<EuiPanel
|
||||
grow={true}
|
||||
hasShadow={false}
|
||||
|
@ -192,14 +157,10 @@ exports[`home directories should render ADMIN directory entry in "Manage" panel
|
|||
<EuiFlexGrid
|
||||
columns={2}
|
||||
gutterSize="s"
|
||||
responsive={true}
|
||||
/>
|
||||
</EuiPanel>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexItem>
|
||||
<EuiPanel
|
||||
grow={true}
|
||||
hasShadow={false}
|
||||
|
@ -222,13 +183,9 @@ exports[`home directories should render ADMIN directory entry in "Manage" panel
|
|||
/>
|
||||
<EuiFlexGrid
|
||||
columns={2}
|
||||
gutterSize="l"
|
||||
responsive={true}
|
||||
>
|
||||
<EuiFlexItem
|
||||
className="homHome__synopsisItem"
|
||||
component="div"
|
||||
grow={true}
|
||||
key="index_patterns"
|
||||
>
|
||||
<Synopsis
|
||||
|
@ -247,17 +204,10 @@ exports[`home directories should render ADMIN directory entry in "Manage" panel
|
|||
size="l"
|
||||
/>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="center"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
className="eui-textCenter"
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiText
|
||||
|
@ -311,19 +261,8 @@ exports[`home directories should render DATA directory entry in "Explore Data" p
|
|||
<EuiSpacer
|
||||
size="l"
|
||||
/>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexGroup>
|
||||
<EuiFlexItem>
|
||||
<EuiPanel
|
||||
grow={true}
|
||||
hasShadow={false}
|
||||
|
@ -347,12 +286,9 @@ exports[`home directories should render DATA directory entry in "Explore Data" p
|
|||
<EuiFlexGrid
|
||||
columns={2}
|
||||
gutterSize="s"
|
||||
responsive={true}
|
||||
>
|
||||
<EuiFlexItem
|
||||
className="homHome__synopsisItem"
|
||||
component="div"
|
||||
grow={true}
|
||||
key="dashboard"
|
||||
>
|
||||
<Synopsis
|
||||
|
@ -366,10 +302,7 @@ exports[`home directories should render DATA directory entry in "Explore Data" p
|
|||
</EuiFlexGrid>
|
||||
</EuiPanel>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexItem>
|
||||
<EuiPanel
|
||||
grow={true}
|
||||
hasShadow={false}
|
||||
|
@ -392,8 +325,6 @@ exports[`home directories should render DATA directory entry in "Explore Data" p
|
|||
/>
|
||||
<EuiFlexGrid
|
||||
columns={2}
|
||||
gutterSize="l"
|
||||
responsive={true}
|
||||
/>
|
||||
</EuiPanel>
|
||||
</EuiFlexItem>
|
||||
|
@ -402,17 +333,10 @@ exports[`home directories should render DATA directory entry in "Explore Data" p
|
|||
size="l"
|
||||
/>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="center"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
className="eui-textCenter"
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiText
|
||||
|
@ -466,19 +390,8 @@ exports[`home isNewKibanaInstance should safely handle execeptions 1`] = `
|
|||
<EuiSpacer
|
||||
size="l"
|
||||
/>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexGroup>
|
||||
<EuiFlexItem>
|
||||
<EuiPanel
|
||||
grow={true}
|
||||
hasShadow={false}
|
||||
|
@ -502,14 +415,10 @@ exports[`home isNewKibanaInstance should safely handle execeptions 1`] = `
|
|||
<EuiFlexGrid
|
||||
columns={2}
|
||||
gutterSize="s"
|
||||
responsive={true}
|
||||
/>
|
||||
</EuiPanel>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexItem>
|
||||
<EuiPanel
|
||||
grow={true}
|
||||
hasShadow={false}
|
||||
|
@ -532,8 +441,6 @@ exports[`home isNewKibanaInstance should safely handle execeptions 1`] = `
|
|||
/>
|
||||
<EuiFlexGrid
|
||||
columns={2}
|
||||
gutterSize="l"
|
||||
responsive={true}
|
||||
/>
|
||||
</EuiPanel>
|
||||
</EuiFlexItem>
|
||||
|
@ -542,17 +449,10 @@ exports[`home isNewKibanaInstance should safely handle execeptions 1`] = `
|
|||
size="l"
|
||||
/>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="center"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
className="eui-textCenter"
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiText
|
||||
|
@ -606,19 +506,8 @@ exports[`home isNewKibanaInstance should set isNewKibanaInstance to false when t
|
|||
<EuiSpacer
|
||||
size="l"
|
||||
/>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexGroup>
|
||||
<EuiFlexItem>
|
||||
<EuiPanel
|
||||
grow={true}
|
||||
hasShadow={false}
|
||||
|
@ -642,14 +531,10 @@ exports[`home isNewKibanaInstance should set isNewKibanaInstance to false when t
|
|||
<EuiFlexGrid
|
||||
columns={2}
|
||||
gutterSize="s"
|
||||
responsive={true}
|
||||
/>
|
||||
</EuiPanel>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexItem>
|
||||
<EuiPanel
|
||||
grow={true}
|
||||
hasShadow={false}
|
||||
|
@ -672,8 +557,6 @@ exports[`home isNewKibanaInstance should set isNewKibanaInstance to false when t
|
|||
/>
|
||||
<EuiFlexGrid
|
||||
columns={2}
|
||||
gutterSize="l"
|
||||
responsive={true}
|
||||
/>
|
||||
</EuiPanel>
|
||||
</EuiFlexItem>
|
||||
|
@ -682,17 +565,10 @@ exports[`home isNewKibanaInstance should set isNewKibanaInstance to false when t
|
|||
size="l"
|
||||
/>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="center"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
className="eui-textCenter"
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiText
|
||||
|
@ -746,19 +622,8 @@ exports[`home isNewKibanaInstance should set isNewKibanaInstance to true when th
|
|||
<EuiSpacer
|
||||
size="l"
|
||||
/>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexGroup>
|
||||
<EuiFlexItem>
|
||||
<EuiPanel
|
||||
grow={true}
|
||||
hasShadow={false}
|
||||
|
@ -782,14 +647,10 @@ exports[`home isNewKibanaInstance should set isNewKibanaInstance to true when th
|
|||
<EuiFlexGrid
|
||||
columns={2}
|
||||
gutterSize="s"
|
||||
responsive={true}
|
||||
/>
|
||||
</EuiPanel>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexItem>
|
||||
<EuiPanel
|
||||
grow={true}
|
||||
hasShadow={false}
|
||||
|
@ -812,8 +673,6 @@ exports[`home isNewKibanaInstance should set isNewKibanaInstance to true when th
|
|||
/>
|
||||
<EuiFlexGrid
|
||||
columns={2}
|
||||
gutterSize="l"
|
||||
responsive={true}
|
||||
/>
|
||||
</EuiPanel>
|
||||
</EuiFlexItem>
|
||||
|
@ -822,17 +681,10 @@ exports[`home isNewKibanaInstance should set isNewKibanaInstance to true when th
|
|||
size="l"
|
||||
/>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="center"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
className="eui-textCenter"
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiText
|
||||
|
@ -886,19 +738,8 @@ exports[`home should render home component 1`] = `
|
|||
<EuiSpacer
|
||||
size="l"
|
||||
/>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexGroup>
|
||||
<EuiFlexItem>
|
||||
<EuiPanel
|
||||
grow={true}
|
||||
hasShadow={false}
|
||||
|
@ -922,14 +763,10 @@ exports[`home should render home component 1`] = `
|
|||
<EuiFlexGrid
|
||||
columns={2}
|
||||
gutterSize="s"
|
||||
responsive={true}
|
||||
/>
|
||||
</EuiPanel>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexItem>
|
||||
<EuiPanel
|
||||
grow={true}
|
||||
hasShadow={false}
|
||||
|
@ -952,8 +789,6 @@ exports[`home should render home component 1`] = `
|
|||
/>
|
||||
<EuiFlexGrid
|
||||
columns={2}
|
||||
gutterSize="l"
|
||||
responsive={true}
|
||||
/>
|
||||
</EuiPanel>
|
||||
</EuiFlexItem>
|
||||
|
@ -962,17 +797,10 @@ exports[`home should render home component 1`] = `
|
|||
size="l"
|
||||
/>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="center"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
className="eui-textCenter"
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiText
|
||||
|
@ -1026,19 +854,8 @@ exports[`home welcome should show the normal home page if loading fails 1`] = `
|
|||
<EuiSpacer
|
||||
size="l"
|
||||
/>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexGroup>
|
||||
<EuiFlexItem>
|
||||
<EuiPanel
|
||||
grow={true}
|
||||
hasShadow={false}
|
||||
|
@ -1062,14 +879,10 @@ exports[`home welcome should show the normal home page if loading fails 1`] = `
|
|||
<EuiFlexGrid
|
||||
columns={2}
|
||||
gutterSize="s"
|
||||
responsive={true}
|
||||
/>
|
||||
</EuiPanel>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexItem>
|
||||
<EuiPanel
|
||||
grow={true}
|
||||
hasShadow={false}
|
||||
|
@ -1092,8 +905,6 @@ exports[`home welcome should show the normal home page if loading fails 1`] = `
|
|||
/>
|
||||
<EuiFlexGrid
|
||||
columns={2}
|
||||
gutterSize="l"
|
||||
responsive={true}
|
||||
/>
|
||||
</EuiPanel>
|
||||
</EuiFlexItem>
|
||||
|
@ -1102,17 +913,10 @@ exports[`home welcome should show the normal home page if loading fails 1`] = `
|
|||
size="l"
|
||||
/>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="center"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
className="eui-textCenter"
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiText
|
||||
|
@ -1166,19 +970,8 @@ exports[`home welcome should show the normal home page if welcome screen is disa
|
|||
<EuiSpacer
|
||||
size="l"
|
||||
/>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexGroup>
|
||||
<EuiFlexItem>
|
||||
<EuiPanel
|
||||
grow={true}
|
||||
hasShadow={false}
|
||||
|
@ -1202,14 +995,10 @@ exports[`home welcome should show the normal home page if welcome screen is disa
|
|||
<EuiFlexGrid
|
||||
columns={2}
|
||||
gutterSize="s"
|
||||
responsive={true}
|
||||
/>
|
||||
</EuiPanel>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexItem>
|
||||
<EuiPanel
|
||||
grow={true}
|
||||
hasShadow={false}
|
||||
|
@ -1232,8 +1021,6 @@ exports[`home welcome should show the normal home page if welcome screen is disa
|
|||
/>
|
||||
<EuiFlexGrid
|
||||
columns={2}
|
||||
gutterSize="l"
|
||||
responsive={true}
|
||||
/>
|
||||
</EuiPanel>
|
||||
</EuiFlexItem>
|
||||
|
@ -1242,17 +1029,10 @@ exports[`home welcome should show the normal home page if welcome screen is disa
|
|||
size="l"
|
||||
/>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="center"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
className="eui-textCenter"
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiText
|
||||
|
@ -1313,19 +1093,8 @@ exports[`home welcome stores skip welcome setting if skipped 1`] = `
|
|||
<EuiSpacer
|
||||
size="l"
|
||||
/>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexGroup>
|
||||
<EuiFlexItem>
|
||||
<EuiPanel
|
||||
grow={true}
|
||||
hasShadow={false}
|
||||
|
@ -1349,14 +1118,10 @@ exports[`home welcome stores skip welcome setting if skipped 1`] = `
|
|||
<EuiFlexGrid
|
||||
columns={2}
|
||||
gutterSize="s"
|
||||
responsive={true}
|
||||
/>
|
||||
</EuiPanel>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexItem>
|
||||
<EuiPanel
|
||||
grow={true}
|
||||
hasShadow={false}
|
||||
|
@ -1379,8 +1144,6 @@ exports[`home welcome stores skip welcome setting if skipped 1`] = `
|
|||
/>
|
||||
<EuiFlexGrid
|
||||
columns={2}
|
||||
gutterSize="l"
|
||||
responsive={true}
|
||||
/>
|
||||
</EuiPanel>
|
||||
</EuiFlexItem>
|
||||
|
@ -1389,17 +1152,10 @@ exports[`home welcome stores skip welcome setting if skipped 1`] = `
|
|||
size="l"
|
||||
/>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="center"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
className="eui-textCenter"
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiText
|
||||
|
|
|
@ -28,30 +28,16 @@ exports[`render 1`] = `
|
|||
/>
|
||||
<EuiFlexGroup
|
||||
alignItems="flexEnd"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="spaceBetween"
|
||||
responsive={true}
|
||||
wrap={true}
|
||||
>
|
||||
<EuiFlexItem
|
||||
className="homRecentlyAccessed__flexItem"
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexGroup>
|
||||
<EuiFlexItem
|
||||
className="homRecentlyAccessed__item"
|
||||
component="div"
|
||||
grow={false}
|
||||
style={
|
||||
Object {
|
||||
|
@ -77,7 +63,6 @@ exports[`render 1`] = `
|
|||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
className="homRecentlyAccessed__separator"
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiText
|
||||
|
@ -92,7 +77,6 @@ exports[`render 1`] = `
|
|||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
className="homRecentlyAccessed__item"
|
||||
component="div"
|
||||
grow={false}
|
||||
style={
|
||||
Object {
|
||||
|
@ -119,7 +103,6 @@ exports[`render 1`] = `
|
|||
</EuiFlexGroup>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
/>
|
||||
</EuiFlexGroup>
|
||||
|
|
|
@ -5,15 +5,9 @@ exports[`render 1`] = `
|
|||
<EuiHorizontalRule />
|
||||
<EuiFlexGroup
|
||||
alignItems="center"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="spaceBetween"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiText
|
||||
|
@ -30,7 +24,6 @@ exports[`render 1`] = `
|
|||
</EuiText>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiButton
|
||||
|
|
|
@ -3,16 +3,11 @@
|
|||
exports[`render 1`] = `
|
||||
<div>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="spaceBetween"
|
||||
responsive={false}
|
||||
wrap={true}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiTitle
|
||||
|
@ -25,7 +20,6 @@ exports[`render 1`] = `
|
|||
</EuiTitle>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
/>
|
||||
</EuiFlexGroup>
|
||||
|
@ -93,16 +87,11 @@ exports[`render 1`] = `
|
|||
exports[`statusCheckState checking status 1`] = `
|
||||
<div>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="spaceBetween"
|
||||
responsive={false}
|
||||
wrap={true}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiTitle
|
||||
|
@ -115,7 +104,6 @@ exports[`statusCheckState checking status 1`] = `
|
|||
</EuiTitle>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
/>
|
||||
</EuiFlexGroup>
|
||||
|
@ -178,23 +166,14 @@ exports[`statusCheckState checking status 1`] = `
|
|||
"children": <React.Fragment>
|
||||
<EuiFlexGroup
|
||||
alignItems="center"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="spaceBetween"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexItem>
|
||||
<Content
|
||||
text="custom status check description"
|
||||
/>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiButton
|
||||
|
@ -226,16 +205,11 @@ exports[`statusCheckState checking status 1`] = `
|
|||
exports[`statusCheckState failed status check - error 1`] = `
|
||||
<div>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="spaceBetween"
|
||||
responsive={false}
|
||||
wrap={true}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiTitle
|
||||
|
@ -248,7 +222,6 @@ exports[`statusCheckState failed status check - error 1`] = `
|
|||
</EuiTitle>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
/>
|
||||
</EuiFlexGroup>
|
||||
|
@ -311,23 +284,14 @@ exports[`statusCheckState failed status check - error 1`] = `
|
|||
"children": <React.Fragment>
|
||||
<EuiFlexGroup
|
||||
alignItems="center"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="spaceBetween"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexItem>
|
||||
<Content
|
||||
text="custom status check description"
|
||||
/>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiButton
|
||||
|
@ -364,16 +328,11 @@ exports[`statusCheckState failed status check - error 1`] = `
|
|||
exports[`statusCheckState failed status check - no data 1`] = `
|
||||
<div>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="spaceBetween"
|
||||
responsive={false}
|
||||
wrap={true}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiTitle
|
||||
|
@ -386,7 +345,6 @@ exports[`statusCheckState failed status check - no data 1`] = `
|
|||
</EuiTitle>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
/>
|
||||
</EuiFlexGroup>
|
||||
|
@ -449,23 +407,14 @@ exports[`statusCheckState failed status check - no data 1`] = `
|
|||
"children": <React.Fragment>
|
||||
<EuiFlexGroup
|
||||
alignItems="center"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="spaceBetween"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexItem>
|
||||
<Content
|
||||
text="custom status check description"
|
||||
/>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiButton
|
||||
|
@ -502,16 +451,11 @@ exports[`statusCheckState failed status check - no data 1`] = `
|
|||
exports[`statusCheckState initial state - no check has been attempted 1`] = `
|
||||
<div>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="spaceBetween"
|
||||
responsive={false}
|
||||
wrap={true}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiTitle
|
||||
|
@ -524,7 +468,6 @@ exports[`statusCheckState initial state - no check has been attempted 1`] = `
|
|||
</EuiTitle>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
/>
|
||||
</EuiFlexGroup>
|
||||
|
@ -587,23 +530,14 @@ exports[`statusCheckState initial state - no check has been attempted 1`] = `
|
|||
"children": <React.Fragment>
|
||||
<EuiFlexGroup
|
||||
alignItems="center"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="spaceBetween"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexItem>
|
||||
<Content
|
||||
text="custom status check description"
|
||||
/>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiButton
|
||||
|
@ -635,16 +569,11 @@ exports[`statusCheckState initial state - no check has been attempted 1`] = `
|
|||
exports[`statusCheckState successful status check 1`] = `
|
||||
<div>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="spaceBetween"
|
||||
responsive={false}
|
||||
wrap={true}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiTitle
|
||||
|
@ -657,7 +586,6 @@ exports[`statusCheckState successful status check 1`] = `
|
|||
</EuiTitle>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
/>
|
||||
</EuiFlexGroup>
|
||||
|
@ -720,23 +648,14 @@ exports[`statusCheckState successful status check 1`] = `
|
|||
"children": <React.Fragment>
|
||||
<EuiFlexGroup
|
||||
alignItems="center"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="spaceBetween"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexItem>
|
||||
<Content
|
||||
text="custom status check description"
|
||||
/>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiButton
|
||||
|
|
|
@ -1,30 +1,13 @@
|
|||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||
|
||||
exports[`props exportedFieldsUrl 1`] = `
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexGroup>
|
||||
<EuiFlexItem>
|
||||
<EuiFlexGroup
|
||||
alignItems="center"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiTitle
|
||||
|
@ -61,37 +44,19 @@ exports[`props exportedFieldsUrl 1`] = `
|
|||
</div>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
/>
|
||||
</EuiFlexGroup>
|
||||
`;
|
||||
|
||||
exports[`props iconType 1`] = `
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexGroup>
|
||||
<EuiFlexItem>
|
||||
<EuiFlexGroup
|
||||
alignItems="center"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiIcon
|
||||
|
@ -100,7 +65,6 @@ exports[`props iconType 1`] = `
|
|||
/>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiTitle
|
||||
|
@ -119,37 +83,19 @@ exports[`props iconType 1`] = `
|
|||
/>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
/>
|
||||
</EuiFlexGroup>
|
||||
`;
|
||||
|
||||
exports[`props isBeta 1`] = `
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexGroup>
|
||||
<EuiFlexItem>
|
||||
<EuiFlexGroup
|
||||
alignItems="center"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiTitle
|
||||
|
@ -172,37 +118,19 @@ exports[`props isBeta 1`] = `
|
|||
/>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
/>
|
||||
</EuiFlexGroup>
|
||||
`;
|
||||
|
||||
exports[`props previewUrl 1`] = `
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexGroup>
|
||||
<EuiFlexItem>
|
||||
<EuiFlexGroup
|
||||
alignItems="center"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiTitle
|
||||
|
@ -221,7 +149,6 @@ exports[`props previewUrl 1`] = `
|
|||
/>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiImage
|
||||
|
@ -237,30 +164,13 @@ exports[`props previewUrl 1`] = `
|
|||
`;
|
||||
|
||||
exports[`render 1`] = `
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexGroup>
|
||||
<EuiFlexItem>
|
||||
<EuiFlexGroup
|
||||
alignItems="center"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiTitle
|
||||
|
@ -279,7 +189,6 @@ exports[`render 1`] = `
|
|||
/>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
/>
|
||||
</EuiFlexGroup>
|
||||
|
|
|
@ -124,17 +124,9 @@ exports[`bulkCreate should display error message when bulkCreate request fails 1
|
|||
"children": <React.Fragment>
|
||||
<EuiFlexGroup
|
||||
alignItems="center"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="spaceBetween"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexItem>
|
||||
<EuiText
|
||||
grow={true}
|
||||
size="m"
|
||||
|
@ -145,7 +137,6 @@ exports[`bulkCreate should display error message when bulkCreate request fails 1
|
|||
</EuiText>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiButton
|
||||
|
@ -230,20 +221,12 @@ exports[`bulkCreate should display error message when bulkCreate request fails 1
|
|||
>
|
||||
<EuiFlexGroup
|
||||
alignItems="center"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="spaceBetween"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<div
|
||||
className="euiFlexGroup euiFlexGroup--gutterLarge euiFlexGroup--alignItemsCenter euiFlexGroup--justifyContentSpaceBetween euiFlexGroup--directionRow euiFlexGroup--responsive"
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexItem>
|
||||
<div
|
||||
className="euiFlexItem"
|
||||
>
|
||||
|
@ -262,7 +245,6 @@ exports[`bulkCreate should display error message when bulkCreate request fails 1
|
|||
</div>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<div
|
||||
|
@ -458,17 +440,9 @@ exports[`bulkCreate should display success message when bulkCreate is successful
|
|||
"children": <React.Fragment>
|
||||
<EuiFlexGroup
|
||||
alignItems="center"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="spaceBetween"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexItem>
|
||||
<EuiText
|
||||
grow={true}
|
||||
size="m"
|
||||
|
@ -479,7 +453,6 @@ exports[`bulkCreate should display success message when bulkCreate is successful
|
|||
</EuiText>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiButton
|
||||
|
@ -602,20 +575,12 @@ exports[`bulkCreate should display success message when bulkCreate is successful
|
|||
>
|
||||
<EuiFlexGroup
|
||||
alignItems="center"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="spaceBetween"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<div
|
||||
className="euiFlexGroup euiFlexGroup--gutterLarge euiFlexGroup--alignItemsCenter euiFlexGroup--justifyContentSpaceBetween euiFlexGroup--directionRow euiFlexGroup--responsive"
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexItem>
|
||||
<div
|
||||
className="euiFlexItem"
|
||||
>
|
||||
|
@ -634,7 +599,6 @@ exports[`bulkCreate should display success message when bulkCreate is successful
|
|||
</div>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<div
|
||||
|
@ -716,17 +680,9 @@ exports[`renders 1`] = `
|
|||
"children": <React.Fragment>
|
||||
<EuiFlexGroup
|
||||
alignItems="center"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="spaceBetween"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexItem>
|
||||
<EuiText
|
||||
grow={true}
|
||||
size="m"
|
||||
|
@ -737,7 +693,6 @@ exports[`renders 1`] = `
|
|||
</EuiText>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiButton
|
||||
|
|
|
@ -68,16 +68,9 @@ exports[`isCloudEnabled is false should render ON_PREM instructions with instruc
|
|||
className="eui-textCenter"
|
||||
>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="center"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiButtonGroup
|
||||
|
|
Before Width: | Height: | Size: 120 KiB After Width: | Height: | Size: 191 KiB |
Before Width: | Height: | Size: 104 KiB After Width: | Height: | Size: 172 KiB |
Before Width: | Height: | Size: 106 KiB After Width: | Height: | Size: 177 KiB |
|
@ -25,15 +25,9 @@ exports[`Header should render a different name, prompt, and beta tag if provided
|
|||
</EuiTitle>
|
||||
<EuiFlexGroup
|
||||
alignItems="flexEnd"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="spaceBetween"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiText
|
||||
|
@ -87,15 +81,9 @@ exports[`Header should render normally 1`] = `
|
|||
</EuiTitle>
|
||||
<EuiFlexGroup
|
||||
alignItems="flexEnd"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="spaceBetween"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiText
|
||||
|
@ -143,15 +131,9 @@ exports[`Header should render without including system indices 1`] = `
|
|||
</EuiTitle>
|
||||
<EuiFlexGroup
|
||||
alignItems="flexEnd"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="spaceBetween"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiText
|
||||
|
|
|
@ -3,15 +3,11 @@
|
|||
exports[`LoadingState should render normally 1`] = `
|
||||
<EuiFlexGroup
|
||||
alignItems="center"
|
||||
component="div"
|
||||
direction="column"
|
||||
gutterSize="s"
|
||||
justifyContent="center"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiTitle
|
||||
|
@ -34,7 +30,6 @@ exports[`LoadingState should render normally 1`] = `
|
|||
</EuiTitle>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiLoadingSpinner
|
||||
|
|
|
@ -19,15 +19,9 @@ exports[`Header should mark the input as invalid 1`] = `
|
|||
/>
|
||||
<EuiFlexGroup
|
||||
alignItems="flexEnd"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="spaceBetween"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiForm
|
||||
|
@ -97,7 +91,6 @@ exports[`Header should mark the input as invalid 1`] = `
|
|||
</EuiForm>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiButton
|
||||
|
@ -140,15 +133,9 @@ exports[`Header should render normally 1`] = `
|
|||
/>
|
||||
<EuiFlexGroup
|
||||
alignItems="flexEnd"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="spaceBetween"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiForm
|
||||
|
@ -214,7 +201,6 @@ exports[`Header should render normally 1`] = `
|
|||
</EuiForm>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiButton
|
||||
|
|
|
@ -61,15 +61,9 @@ exports[`IndicesList should change pages 1`] = `
|
|||
/>
|
||||
<EuiFlexGroup
|
||||
alignItems="center"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="spaceBetween"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiPopover
|
||||
|
@ -184,15 +178,9 @@ exports[`IndicesList should change per page 1`] = `
|
|||
/>
|
||||
<EuiFlexGroup
|
||||
alignItems="center"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="spaceBetween"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiPopover
|
||||
|
@ -267,7 +255,6 @@ exports[`IndicesList should change per page 1`] = `
|
|||
</EuiPopover>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiPagination
|
||||
|
@ -346,15 +333,9 @@ exports[`IndicesList should highlight the query in the matches 1`] = `
|
|||
/>
|
||||
<EuiFlexGroup
|
||||
alignItems="center"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="spaceBetween"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiPopover
|
||||
|
@ -493,15 +474,9 @@ exports[`IndicesList should render normally 1`] = `
|
|||
/>
|
||||
<EuiFlexGroup
|
||||
alignItems="center"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="spaceBetween"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiPopover
|
||||
|
@ -832,15 +807,9 @@ exports[`IndicesList updating props should render all new indices 1`] = `
|
|||
/>
|
||||
<EuiFlexGroup
|
||||
alignItems="center"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="spaceBetween"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiPopover
|
||||
|
@ -915,7 +884,6 @@ exports[`IndicesList updating props should render all new indices 1`] = `
|
|||
</EuiPopover>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiPagination
|
||||
|
|
|
@ -3,15 +3,9 @@
|
|||
exports[`LoadingIndices should render normally 1`] = `
|
||||
<EuiFlexGroup
|
||||
alignItems="center"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="center"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiLoadingSpinner
|
||||
|
@ -19,7 +13,6 @@ exports[`LoadingIndices should render normally 1`] = `
|
|||
/>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiText
|
||||
|
|
|
@ -24,21 +24,13 @@ exports[`StepTimeField should render a loading state when creating the index pat
|
|||
>
|
||||
<EuiFlexGroup
|
||||
alignItems="center"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiLoadingSpinner />
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiText
|
||||
|
|
|
@ -27,15 +27,10 @@ exports[`TimeField should render a loading state 1`] = `
|
|||
label={
|
||||
<EuiFlexGroup
|
||||
alignItems="center"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="xs"
|
||||
justifyContent="spaceBetween"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<span>
|
||||
|
@ -47,7 +42,6 @@ exports[`TimeField should render a loading state 1`] = `
|
|||
</span>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiLoadingSpinner
|
||||
|
@ -106,15 +100,10 @@ exports[`TimeField should render a selected time field 1`] = `
|
|||
label={
|
||||
<EuiFlexGroup
|
||||
alignItems="center"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="xs"
|
||||
justifyContent="spaceBetween"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<span>
|
||||
|
@ -126,7 +115,6 @@ exports[`TimeField should render a selected time field 1`] = `
|
|||
</span>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiLink
|
||||
|
@ -196,15 +184,10 @@ exports[`TimeField should render normally 1`] = `
|
|||
label={
|
||||
<EuiFlexGroup
|
||||
alignItems="center"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="xs"
|
||||
justifyContent="spaceBetween"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<span>
|
||||
|
@ -216,7 +199,6 @@ exports[`TimeField should render normally 1`] = `
|
|||
</span>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiLink
|
||||
|
|
|
@ -3,17 +3,8 @@
|
|||
exports[`Header should render normally 1`] = `
|
||||
<EuiFlexGroup
|
||||
alignItems="center"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexItem>
|
||||
<EuiTitle
|
||||
size="s"
|
||||
textTransform="none"
|
||||
|
@ -40,7 +31,6 @@ exports[`Header should render normally 1`] = `
|
|||
</EuiText>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiButton
|
||||
|
|
|
@ -1,17 +1,8 @@
|
|||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||
|
||||
exports[`AddFilter should ignore strings with just spaces 1`] = `
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexGroup>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={10}
|
||||
>
|
||||
<EuiFieldText
|
||||
|
@ -23,10 +14,7 @@ exports[`AddFilter should ignore strings with just spaces 1`] = `
|
|||
value=""
|
||||
/>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexItem>
|
||||
<EuiButton
|
||||
color="primary"
|
||||
fill={false}
|
||||
|
@ -46,17 +34,8 @@ exports[`AddFilter should ignore strings with just spaces 1`] = `
|
|||
`;
|
||||
|
||||
exports[`AddFilter should render normally 1`] = `
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexGroup>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={10}
|
||||
>
|
||||
<EuiFieldText
|
||||
|
@ -68,10 +47,7 @@ exports[`AddFilter should render normally 1`] = `
|
|||
value=""
|
||||
/>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexItem>
|
||||
<EuiButton
|
||||
color="primary"
|
||||
fill={false}
|
||||
|
|
|
@ -120,16 +120,9 @@ exports[`Flyout conflicts should allow conflict resolution 1`] = `
|
|||
</EuiFlyoutBody>
|
||||
<EuiFlyoutFooter>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="spaceBetween"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiButtonEmpty
|
||||
|
@ -147,7 +140,6 @@ exports[`Flyout conflicts should allow conflict resolution 1`] = `
|
|||
</EuiButtonEmpty>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiButton
|
||||
|
@ -265,16 +257,9 @@ exports[`Flyout should render import step 1`] = `
|
|||
</EuiFlyoutBody>
|
||||
<EuiFlyoutFooter>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="spaceBetween"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiButtonEmpty
|
||||
|
@ -292,7 +277,6 @@ exports[`Flyout should render import step 1`] = `
|
|||
</EuiButtonEmpty>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiButton
|
||||
|
|
|
@ -4,15 +4,9 @@ exports[`Header should render normally 1`] = `
|
|||
<Fragment>
|
||||
<EuiFlexGroup
|
||||
alignItems="baseline"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="spaceBetween"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiTitle
|
||||
|
@ -29,20 +23,14 @@ exports[`Header should render normally 1`] = `
|
|||
</EuiTitle>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiFlexGroup
|
||||
alignItems="baseline"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="m"
|
||||
justifyContent="flexStart"
|
||||
responsive={false}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiButtonEmpty
|
||||
|
@ -66,7 +54,6 @@ exports[`Header should render normally 1`] = `
|
|||
</EuiButtonEmpty>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiButtonEmpty
|
||||
|
@ -86,7 +73,6 @@ exports[`Header should render normally 1`] = `
|
|||
</EuiButtonEmpty>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiButtonEmpty
|
||||
|
|
|
@ -32,12 +32,7 @@ exports[`Relationships should render dashboards normally 1`] = `
|
|||
</EuiTitle>
|
||||
</EuiFlyoutHeader>
|
||||
<EuiFlyoutBody>
|
||||
<EuiDescriptionList
|
||||
align="left"
|
||||
compressed={false}
|
||||
textStyle="normal"
|
||||
type="row"
|
||||
>
|
||||
<EuiDescriptionList>
|
||||
<EuiDescriptionListTitle
|
||||
style={
|
||||
Object {
|
||||
|
@ -191,12 +186,7 @@ exports[`Relationships should render index patterns normally 1`] = `
|
|||
</EuiTitle>
|
||||
</EuiFlyoutHeader>
|
||||
<EuiFlyoutBody>
|
||||
<EuiDescriptionList
|
||||
align="left"
|
||||
compressed={false}
|
||||
textStyle="normal"
|
||||
type="row"
|
||||
>
|
||||
<EuiDescriptionList>
|
||||
<EuiDescriptionListTitle
|
||||
style={
|
||||
Object {
|
||||
|
@ -350,12 +340,7 @@ exports[`Relationships should render searches normally 1`] = `
|
|||
</EuiTitle>
|
||||
</EuiFlyoutHeader>
|
||||
<EuiFlyoutBody>
|
||||
<EuiDescriptionList
|
||||
align="left"
|
||||
compressed={false}
|
||||
textStyle="normal"
|
||||
type="row"
|
||||
>
|
||||
<EuiDescriptionList>
|
||||
<EuiDescriptionListTitle
|
||||
style={
|
||||
Object {
|
||||
|
@ -521,12 +506,7 @@ exports[`Relationships should render visualizations normally 1`] = `
|
|||
</EuiTitle>
|
||||
</EuiFlyoutHeader>
|
||||
<EuiFlyoutBody>
|
||||
<EuiDescriptionList
|
||||
align="left"
|
||||
compressed={false}
|
||||
textStyle="normal"
|
||||
type="row"
|
||||
>
|
||||
<EuiDescriptionList>
|
||||
<EuiDescriptionListTitle
|
||||
style={
|
||||
Object {
|
||||
|
|
|
@ -3,24 +3,12 @@
|
|||
exports[`AdvancedSettings should render normally 1`] = `
|
||||
<div>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="none"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexItem>
|
||||
<advanced_settings_page_title />
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexItem>
|
||||
<Search
|
||||
categories={
|
||||
Array [
|
||||
|
@ -346,24 +334,12 @@ exports[`AdvancedSettings should render normally 1`] = `
|
|||
exports[`AdvancedSettings should render specific setting if given setting key 1`] = `
|
||||
<div>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="none"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexItem>
|
||||
<advanced_settings_page_title />
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexItem>
|
||||
<Search
|
||||
categories={
|
||||
Array [
|
||||
|
|
|
@ -2,17 +2,9 @@
|
|||
|
||||
exports[`Field for array setting should render as read only with help text if overridden 1`] = `
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
className="mgtAdvancedSettings__field"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiDescribedFormGroup
|
||||
|
@ -103,7 +95,6 @@ exports[`Field for array setting should render as read only with help text if ov
|
|||
</EuiDescribedFormGroup>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
/>
|
||||
</EuiFlexGroup>
|
||||
|
@ -111,17 +102,9 @@ exports[`Field for array setting should render as read only with help text if ov
|
|||
|
||||
exports[`Field for array setting should render custom setting icon if it is custom 1`] = `
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
className="mgtAdvancedSettings__field"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiDescribedFormGroup
|
||||
|
@ -189,7 +172,6 @@ exports[`Field for array setting should render custom setting icon if it is cust
|
|||
</EuiDescribedFormGroup>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
/>
|
||||
</EuiFlexGroup>
|
||||
|
@ -197,17 +179,9 @@ exports[`Field for array setting should render custom setting icon if it is cust
|
|||
|
||||
exports[`Field for array setting should render default value if there is no user value set 1`] = `
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
className="mgtAdvancedSettings__field"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiDescribedFormGroup
|
||||
|
@ -264,7 +238,6 @@ exports[`Field for array setting should render default value if there is no user
|
|||
</EuiDescribedFormGroup>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
/>
|
||||
</EuiFlexGroup>
|
||||
|
@ -272,17 +245,9 @@ exports[`Field for array setting should render default value if there is no user
|
|||
|
||||
exports[`Field for array setting should render user value if there is user value is set 1`] = `
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
className="mgtAdvancedSettings__field"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiDescribedFormGroup
|
||||
|
@ -381,7 +346,6 @@ exports[`Field for array setting should render user value if there is user value
|
|||
</EuiDescribedFormGroup>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
/>
|
||||
</EuiFlexGroup>
|
||||
|
@ -389,17 +353,9 @@ exports[`Field for array setting should render user value if there is user value
|
|||
|
||||
exports[`Field for boolean setting should render as read only with help text if overridden 1`] = `
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
className="mgtAdvancedSettings__field"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiDescribedFormGroup
|
||||
|
@ -494,7 +450,6 @@ exports[`Field for boolean setting should render as read only with help text if
|
|||
</EuiDescribedFormGroup>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
/>
|
||||
</EuiFlexGroup>
|
||||
|
@ -502,17 +457,9 @@ exports[`Field for boolean setting should render as read only with help text if
|
|||
|
||||
exports[`Field for boolean setting should render custom setting icon if it is custom 1`] = `
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
className="mgtAdvancedSettings__field"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiDescribedFormGroup
|
||||
|
@ -584,7 +531,6 @@ exports[`Field for boolean setting should render custom setting icon if it is cu
|
|||
</EuiDescribedFormGroup>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
/>
|
||||
</EuiFlexGroup>
|
||||
|
@ -592,17 +538,9 @@ exports[`Field for boolean setting should render custom setting icon if it is cu
|
|||
|
||||
exports[`Field for boolean setting should render default value if there is no user value set 1`] = `
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
className="mgtAdvancedSettings__field"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiDescribedFormGroup
|
||||
|
@ -663,7 +601,6 @@ exports[`Field for boolean setting should render default value if there is no us
|
|||
</EuiDescribedFormGroup>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
/>
|
||||
</EuiFlexGroup>
|
||||
|
@ -671,17 +608,9 @@ exports[`Field for boolean setting should render default value if there is no us
|
|||
|
||||
exports[`Field for boolean setting should render user value if there is user value is set 1`] = `
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
className="mgtAdvancedSettings__field"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiDescribedFormGroup
|
||||
|
@ -784,7 +713,6 @@ exports[`Field for boolean setting should render user value if there is user val
|
|||
</EuiDescribedFormGroup>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
/>
|
||||
</EuiFlexGroup>
|
||||
|
@ -792,17 +720,9 @@ exports[`Field for boolean setting should render user value if there is user val
|
|||
|
||||
exports[`Field for image setting should render as read only with help text if overridden 1`] = `
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
className="mgtAdvancedSettings__field"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiDescribedFormGroup
|
||||
|
@ -890,7 +810,6 @@ exports[`Field for image setting should render as read only with help text if ov
|
|||
</EuiDescribedFormGroup>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
/>
|
||||
</EuiFlexGroup>
|
||||
|
@ -898,17 +817,9 @@ exports[`Field for image setting should render as read only with help text if ov
|
|||
|
||||
exports[`Field for image setting should render custom setting icon if it is custom 1`] = `
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
className="mgtAdvancedSettings__field"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiDescribedFormGroup
|
||||
|
@ -974,7 +885,6 @@ exports[`Field for image setting should render custom setting icon if it is cust
|
|||
</EuiDescribedFormGroup>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
/>
|
||||
</EuiFlexGroup>
|
||||
|
@ -982,17 +892,9 @@ exports[`Field for image setting should render custom setting icon if it is cust
|
|||
|
||||
exports[`Field for image setting should render default value if there is no user value set 1`] = `
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
className="mgtAdvancedSettings__field"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiDescribedFormGroup
|
||||
|
@ -1047,7 +949,6 @@ exports[`Field for image setting should render default value if there is no user
|
|||
</EuiDescribedFormGroup>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
/>
|
||||
</EuiFlexGroup>
|
||||
|
@ -1055,17 +956,9 @@ exports[`Field for image setting should render default value if there is no user
|
|||
|
||||
exports[`Field for image setting should render user value if there is user value is set 1`] = `
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
className="mgtAdvancedSettings__field"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiDescribedFormGroup
|
||||
|
@ -1176,7 +1069,6 @@ exports[`Field for image setting should render user value if there is user value
|
|||
</EuiDescribedFormGroup>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
/>
|
||||
</EuiFlexGroup>
|
||||
|
@ -1184,17 +1076,9 @@ exports[`Field for image setting should render user value if there is user value
|
|||
|
||||
exports[`Field for json setting should render as read only with help text if overridden 1`] = `
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
className="mgtAdvancedSettings__field"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiDescribedFormGroup
|
||||
|
@ -1306,7 +1190,6 @@ exports[`Field for json setting should render as read only with help text if ove
|
|||
</EuiDescribedFormGroup>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
/>
|
||||
</EuiFlexGroup>
|
||||
|
@ -1314,17 +1197,9 @@ exports[`Field for json setting should render as read only with help text if ove
|
|||
|
||||
exports[`Field for json setting should render custom setting icon if it is custom 1`] = `
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
className="mgtAdvancedSettings__field"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiDescribedFormGroup
|
||||
|
@ -1409,7 +1284,6 @@ exports[`Field for json setting should render custom setting icon if it is custo
|
|||
</EuiDescribedFormGroup>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
/>
|
||||
</EuiFlexGroup>
|
||||
|
@ -1417,17 +1291,9 @@ exports[`Field for json setting should render custom setting icon if it is custo
|
|||
|
||||
exports[`Field for json setting should render default value if there is no user value set 1`] = `
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
className="mgtAdvancedSettings__field"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiDescribedFormGroup
|
||||
|
@ -1547,7 +1413,6 @@ exports[`Field for json setting should render default value if there is no user
|
|||
</EuiDescribedFormGroup>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
/>
|
||||
</EuiFlexGroup>
|
||||
|
@ -1555,17 +1420,9 @@ exports[`Field for json setting should render default value if there is no user
|
|||
|
||||
exports[`Field for json setting should render user value if there is user value is set 1`] = `
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
className="mgtAdvancedSettings__field"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiDescribedFormGroup
|
||||
|
@ -1685,7 +1542,6 @@ exports[`Field for json setting should render user value if there is user value
|
|||
</EuiDescribedFormGroup>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
/>
|
||||
</EuiFlexGroup>
|
||||
|
@ -1693,17 +1549,9 @@ exports[`Field for json setting should render user value if there is user value
|
|||
|
||||
exports[`Field for markdown setting should render as read only with help text if overridden 1`] = `
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
className="mgtAdvancedSettings__field"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiDescribedFormGroup
|
||||
|
@ -1811,7 +1659,6 @@ exports[`Field for markdown setting should render as read only with help text if
|
|||
</EuiDescribedFormGroup>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
/>
|
||||
</EuiFlexGroup>
|
||||
|
@ -1819,17 +1666,9 @@ exports[`Field for markdown setting should render as read only with help text if
|
|||
|
||||
exports[`Field for markdown setting should render custom setting icon if it is custom 1`] = `
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
className="mgtAdvancedSettings__field"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiDescribedFormGroup
|
||||
|
@ -1914,7 +1753,6 @@ exports[`Field for markdown setting should render custom setting icon if it is c
|
|||
</EuiDescribedFormGroup>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
/>
|
||||
</EuiFlexGroup>
|
||||
|
@ -1922,17 +1760,9 @@ exports[`Field for markdown setting should render custom setting icon if it is c
|
|||
|
||||
exports[`Field for markdown setting should render default value if there is no user value set 1`] = `
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
className="mgtAdvancedSettings__field"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiDescribedFormGroup
|
||||
|
@ -2006,7 +1836,6 @@ exports[`Field for markdown setting should render default value if there is no u
|
|||
</EuiDescribedFormGroup>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
/>
|
||||
</EuiFlexGroup>
|
||||
|
@ -2014,17 +1843,9 @@ exports[`Field for markdown setting should render default value if there is no u
|
|||
|
||||
exports[`Field for markdown setting should render user value if there is user value is set 1`] = `
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
className="mgtAdvancedSettings__field"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiDescribedFormGroup
|
||||
|
@ -2140,7 +1961,6 @@ exports[`Field for markdown setting should render user value if there is user va
|
|||
</EuiDescribedFormGroup>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
/>
|
||||
</EuiFlexGroup>
|
||||
|
@ -2148,17 +1968,9 @@ exports[`Field for markdown setting should render user value if there is user va
|
|||
|
||||
exports[`Field for number setting should render as read only with help text if overridden 1`] = `
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
className="mgtAdvancedSettings__field"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiDescribedFormGroup
|
||||
|
@ -2249,7 +2061,6 @@ exports[`Field for number setting should render as read only with help text if o
|
|||
</EuiDescribedFormGroup>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
/>
|
||||
</EuiFlexGroup>
|
||||
|
@ -2257,17 +2068,9 @@ exports[`Field for number setting should render as read only with help text if o
|
|||
|
||||
exports[`Field for number setting should render custom setting icon if it is custom 1`] = `
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
className="mgtAdvancedSettings__field"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiDescribedFormGroup
|
||||
|
@ -2335,7 +2138,6 @@ exports[`Field for number setting should render custom setting icon if it is cus
|
|||
</EuiDescribedFormGroup>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
/>
|
||||
</EuiFlexGroup>
|
||||
|
@ -2343,17 +2145,9 @@ exports[`Field for number setting should render custom setting icon if it is cus
|
|||
|
||||
exports[`Field for number setting should render default value if there is no user value set 1`] = `
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
className="mgtAdvancedSettings__field"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiDescribedFormGroup
|
||||
|
@ -2410,7 +2204,6 @@ exports[`Field for number setting should render default value if there is no use
|
|||
</EuiDescribedFormGroup>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
/>
|
||||
</EuiFlexGroup>
|
||||
|
@ -2418,17 +2211,9 @@ exports[`Field for number setting should render default value if there is no use
|
|||
|
||||
exports[`Field for number setting should render user value if there is user value is set 1`] = `
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
className="mgtAdvancedSettings__field"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiDescribedFormGroup
|
||||
|
@ -2527,7 +2312,6 @@ exports[`Field for number setting should render user value if there is user valu
|
|||
</EuiDescribedFormGroup>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
/>
|
||||
</EuiFlexGroup>
|
||||
|
@ -2535,17 +2319,9 @@ exports[`Field for number setting should render user value if there is user valu
|
|||
|
||||
exports[`Field for select setting should render as read only with help text if overridden 1`] = `
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
className="mgtAdvancedSettings__field"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiDescribedFormGroup
|
||||
|
@ -2653,7 +2429,6 @@ exports[`Field for select setting should render as read only with help text if o
|
|||
</EuiDescribedFormGroup>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
/>
|
||||
</EuiFlexGroup>
|
||||
|
@ -2661,17 +2436,9 @@ exports[`Field for select setting should render as read only with help text if o
|
|||
|
||||
exports[`Field for select setting should render custom setting icon if it is custom 1`] = `
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
className="mgtAdvancedSettings__field"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiDescribedFormGroup
|
||||
|
@ -2756,7 +2523,6 @@ exports[`Field for select setting should render custom setting icon if it is cus
|
|||
</EuiDescribedFormGroup>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
/>
|
||||
</EuiFlexGroup>
|
||||
|
@ -2764,17 +2530,9 @@ exports[`Field for select setting should render custom setting icon if it is cus
|
|||
|
||||
exports[`Field for select setting should render default value if there is no user value set 1`] = `
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
className="mgtAdvancedSettings__field"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiDescribedFormGroup
|
||||
|
@ -2848,7 +2606,6 @@ exports[`Field for select setting should render default value if there is no use
|
|||
</EuiDescribedFormGroup>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
/>
|
||||
</EuiFlexGroup>
|
||||
|
@ -2856,17 +2613,9 @@ exports[`Field for select setting should render default value if there is no use
|
|||
|
||||
exports[`Field for select setting should render user value if there is user value is set 1`] = `
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
className="mgtAdvancedSettings__field"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiDescribedFormGroup
|
||||
|
@ -2982,7 +2731,6 @@ exports[`Field for select setting should render user value if there is user valu
|
|||
</EuiDescribedFormGroup>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
/>
|
||||
</EuiFlexGroup>
|
||||
|
@ -2990,17 +2738,9 @@ exports[`Field for select setting should render user value if there is user valu
|
|||
|
||||
exports[`Field for string setting should render as read only with help text if overridden 1`] = `
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
className="mgtAdvancedSettings__field"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiDescribedFormGroup
|
||||
|
@ -3091,7 +2831,6 @@ exports[`Field for string setting should render as read only with help text if o
|
|||
</EuiDescribedFormGroup>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
/>
|
||||
</EuiFlexGroup>
|
||||
|
@ -3099,17 +2838,9 @@ exports[`Field for string setting should render as read only with help text if o
|
|||
|
||||
exports[`Field for string setting should render custom setting icon if it is custom 1`] = `
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
className="mgtAdvancedSettings__field"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiDescribedFormGroup
|
||||
|
@ -3177,7 +2908,6 @@ exports[`Field for string setting should render custom setting icon if it is cus
|
|||
</EuiDescribedFormGroup>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
/>
|
||||
</EuiFlexGroup>
|
||||
|
@ -3185,17 +2915,9 @@ exports[`Field for string setting should render custom setting icon if it is cus
|
|||
|
||||
exports[`Field for string setting should render default value if there is no user value set 1`] = `
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
className="mgtAdvancedSettings__field"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiDescribedFormGroup
|
||||
|
@ -3252,7 +2974,6 @@ exports[`Field for string setting should render default value if there is no use
|
|||
</EuiDescribedFormGroup>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
/>
|
||||
</EuiFlexGroup>
|
||||
|
@ -3260,17 +2981,9 @@ exports[`Field for string setting should render default value if there is no use
|
|||
|
||||
exports[`Field for string setting should render user value if there is user value is set 1`] = `
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
className="mgtAdvancedSettings__field"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiDescribedFormGroup
|
||||
|
@ -3369,7 +3082,6 @@ exports[`Field for string setting should render user value if there is user valu
|
|||
</EuiDescribedFormGroup>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
/>
|
||||
</EuiFlexGroup>
|
||||
|
|
|
@ -46,15 +46,8 @@ exports[`Form should render normally 1`] = `
|
|||
>
|
||||
<EuiFlexGroup
|
||||
alignItems="baseline"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<h2>
|
||||
|
@ -115,15 +108,8 @@ exports[`Form should render normally 1`] = `
|
|||
>
|
||||
<EuiFlexGroup
|
||||
alignItems="baseline"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<h2>
|
||||
|
@ -167,15 +153,8 @@ exports[`Form should render normally 1`] = `
|
|||
>
|
||||
<EuiFlexGroup
|
||||
alignItems="baseline"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<h2>
|
||||
|
@ -183,7 +162,6 @@ exports[`Form should render normally 1`] = `
|
|||
</h2>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<em>
|
||||
|
|
|
@ -990,40 +990,26 @@ exports[`NewVisModal filter for visualization types should render as expected 1`
|
|||
className="visNewVisDialog__body"
|
||||
>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="xl"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<div
|
||||
className="euiFlexGroup euiFlexGroup--gutterExtraLarge euiFlexGroup--directionRow euiFlexGroup--responsive"
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexItem>
|
||||
<div
|
||||
className="euiFlexItem"
|
||||
>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
className="visNewVisDialog__list"
|
||||
component="div"
|
||||
direction="column"
|
||||
gutterSize="none"
|
||||
justifyContent="flexStart"
|
||||
responsive={false}
|
||||
wrap={false}
|
||||
>
|
||||
<div
|
||||
className="euiFlexGroup euiFlexGroup--directionColumn visNewVisDialog__list"
|
||||
>
|
||||
<EuiFlexItem
|
||||
className="visNewVisDialog__searchWrapper"
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<div
|
||||
|
@ -1128,7 +1114,6 @@ exports[`NewVisModal filter for visualization types should render as expected 1`
|
|||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
className="visNewVisDialog__typesWrapper"
|
||||
component="div"
|
||||
grow={1}
|
||||
>
|
||||
<div
|
||||
|
@ -1366,7 +1351,6 @@ exports[`NewVisModal filter for visualization types should render as expected 1`
|
|||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
className="visNewVisDialog__description"
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<div
|
||||
|
@ -2428,40 +2412,26 @@ exports[`NewVisModal should render as expected 1`] = `
|
|||
className="visNewVisDialog__body"
|
||||
>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="xl"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<div
|
||||
className="euiFlexGroup euiFlexGroup--gutterExtraLarge euiFlexGroup--directionRow euiFlexGroup--responsive"
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexItem>
|
||||
<div
|
||||
className="euiFlexItem"
|
||||
>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
className="visNewVisDialog__list"
|
||||
component="div"
|
||||
direction="column"
|
||||
gutterSize="none"
|
||||
justifyContent="flexStart"
|
||||
responsive={false}
|
||||
wrap={false}
|
||||
>
|
||||
<div
|
||||
className="euiFlexGroup euiFlexGroup--directionColumn visNewVisDialog__list"
|
||||
>
|
||||
<EuiFlexItem
|
||||
className="visNewVisDialog__searchWrapper"
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<div
|
||||
|
@ -2566,7 +2536,6 @@ exports[`NewVisModal should render as expected 1`] = `
|
|||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
className="visNewVisDialog__typesWrapper"
|
||||
component="div"
|
||||
grow={1}
|
||||
>
|
||||
<div
|
||||
|
@ -2789,7 +2758,6 @@ exports[`NewVisModal should render as expected 1`] = `
|
|||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
className="visNewVisDialog__description"
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<div
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
@import '@elastic/eui/src/components/tool_tip/variables';
|
||||
@import '@elastic/eui/src/components/tool_tip/mixins';
|
||||
|
||||
.tvbVisTimeSeries {
|
||||
|
|
|
@ -3,20 +3,14 @@
|
|||
exports[`render 1`] = `
|
||||
<EuiFlexGroup
|
||||
alignItems="center"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="spaceBetween"
|
||||
responsive={true}
|
||||
style={
|
||||
Object {
|
||||
"flexGrow": 0,
|
||||
}
|
||||
}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiTitle
|
||||
|
@ -42,7 +36,6 @@ exports[`render 1`] = `
|
|||
</EuiTitle>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiText
|
||||
|
|
|
@ -77,7 +77,7 @@ it('builds dark themed SASS', async () => {
|
|||
display: -webkit-flex;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
background: #191919 url(./images/img.png) url(ui/assets/favicons/favicon.ico); }
|
||||
background: #232635 url(./images/img.png) url(ui/assets/favicons/favicon.ico); }
|
||||
/*# sourceMappingURL=... */"
|
||||
`);
|
||||
});
|
||||
|
@ -106,7 +106,7 @@ it('rewrites url imports', async () => {
|
|||
display: -webkit-flex;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
background: #191919 url(__REPLACE_WITH_PUBLIC_PATH__foo/bar/images/img.png) url(__REPLACE_WITH_PUBLIC_PATH__ui/favicons/favicon.ico); }
|
||||
background: #232635 url(__REPLACE_WITH_PUBLIC_PATH__foo/bar/images/img.png) url(__REPLACE_WITH_PUBLIC_PATH__ui/favicons/favicon.ico); }
|
||||
/*# sourceMappingURL=... */"
|
||||
`);
|
||||
|
||||
|
|
|
@ -0,0 +1,244 @@
|
|||
/*
|
||||
* Licensed to Elasticsearch B.V. under one or more contributor
|
||||
* license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright
|
||||
* ownership. Elasticsearch B.V. licenses this file to you under
|
||||
* the Apache License, Version 2.0 (the "License"); you may
|
||||
* not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
import { getSortedObjectsForExport } from './get_sorted_objects_for_export';
|
||||
|
||||
describe('getSortedObjectsForExport()', () => {
|
||||
const savedObjectsClient = {
|
||||
errors: {} as any,
|
||||
find: jest.fn(),
|
||||
bulkGet: jest.fn(),
|
||||
create: jest.fn(),
|
||||
bulkCreate: jest.fn(),
|
||||
delete: jest.fn(),
|
||||
get: jest.fn(),
|
||||
update: jest.fn(),
|
||||
};
|
||||
|
||||
afterEach(() => {
|
||||
savedObjectsClient.find.mockReset();
|
||||
savedObjectsClient.bulkGet.mockReset();
|
||||
savedObjectsClient.create.mockReset();
|
||||
savedObjectsClient.bulkCreate.mockReset();
|
||||
savedObjectsClient.delete.mockReset();
|
||||
savedObjectsClient.get.mockReset();
|
||||
savedObjectsClient.update.mockReset();
|
||||
});
|
||||
|
||||
test('exports selected types and sorts them', async () => {
|
||||
savedObjectsClient.find.mockResolvedValueOnce({
|
||||
total: 2,
|
||||
saved_objects: [
|
||||
{
|
||||
id: '2',
|
||||
type: 'search',
|
||||
references: [
|
||||
{
|
||||
type: 'index-pattern',
|
||||
id: '1',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
id: '1',
|
||||
type: 'index-pattern',
|
||||
references: [],
|
||||
},
|
||||
],
|
||||
});
|
||||
const response = await getSortedObjectsForExport({
|
||||
savedObjectsClient,
|
||||
exportSizeLimit: 500,
|
||||
types: ['index-pattern', 'search'],
|
||||
});
|
||||
expect(response).toMatchInlineSnapshot(`
|
||||
Array [
|
||||
Object {
|
||||
"id": "1",
|
||||
"references": Array [],
|
||||
"type": "index-pattern",
|
||||
},
|
||||
Object {
|
||||
"id": "2",
|
||||
"references": Array [
|
||||
Object {
|
||||
"id": "1",
|
||||
"type": "index-pattern",
|
||||
},
|
||||
],
|
||||
"type": "search",
|
||||
},
|
||||
]
|
||||
`);
|
||||
expect(savedObjectsClient.find).toMatchInlineSnapshot(`
|
||||
[MockFunction] {
|
||||
"calls": Array [
|
||||
Array [
|
||||
Object {
|
||||
"perPage": 500,
|
||||
"sortField": "_id",
|
||||
"sortOrder": "asc",
|
||||
"type": Array [
|
||||
"index-pattern",
|
||||
"search",
|
||||
],
|
||||
},
|
||||
],
|
||||
],
|
||||
"results": Array [
|
||||
Object {
|
||||
"type": "return",
|
||||
"value": Promise {},
|
||||
},
|
||||
],
|
||||
}
|
||||
`);
|
||||
});
|
||||
|
||||
test('export selected types throws error when exceeding exportSizeLimit', async () => {
|
||||
savedObjectsClient.find.mockResolvedValueOnce({
|
||||
total: 2,
|
||||
saved_objects: [
|
||||
{
|
||||
id: '2',
|
||||
type: 'search',
|
||||
references: [
|
||||
{
|
||||
type: 'index-pattern',
|
||||
id: '1',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
id: '1',
|
||||
type: 'index-pattern',
|
||||
references: [],
|
||||
},
|
||||
],
|
||||
});
|
||||
await expect(
|
||||
getSortedObjectsForExport({
|
||||
savedObjectsClient,
|
||||
exportSizeLimit: 1,
|
||||
types: ['index-pattern', 'search'],
|
||||
})
|
||||
).rejects.toThrowErrorMatchingInlineSnapshot(`"Can't export more than 1 objects"`);
|
||||
});
|
||||
|
||||
test('exports selected objects and sorts them', async () => {
|
||||
savedObjectsClient.bulkGet.mockResolvedValueOnce({
|
||||
saved_objects: [
|
||||
{
|
||||
id: '2',
|
||||
type: 'search',
|
||||
references: [
|
||||
{
|
||||
type: 'index-pattern',
|
||||
id: '1',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
id: '1',
|
||||
type: 'index-pattern',
|
||||
references: [],
|
||||
},
|
||||
],
|
||||
});
|
||||
const response = await getSortedObjectsForExport({
|
||||
exportSizeLimit: 10000,
|
||||
savedObjectsClient,
|
||||
types: ['index-pattern', 'search'],
|
||||
objects: [
|
||||
{
|
||||
type: 'index-pattern',
|
||||
id: '1',
|
||||
},
|
||||
{
|
||||
type: 'search',
|
||||
id: '2',
|
||||
},
|
||||
],
|
||||
});
|
||||
expect(response).toMatchInlineSnapshot(`
|
||||
Array [
|
||||
Object {
|
||||
"id": "1",
|
||||
"references": Array [],
|
||||
"type": "index-pattern",
|
||||
},
|
||||
Object {
|
||||
"id": "2",
|
||||
"references": Array [
|
||||
Object {
|
||||
"id": "1",
|
||||
"type": "index-pattern",
|
||||
},
|
||||
],
|
||||
"type": "search",
|
||||
},
|
||||
]
|
||||
`);
|
||||
expect(savedObjectsClient.bulkGet).toMatchInlineSnapshot(`
|
||||
[MockFunction] {
|
||||
"calls": Array [
|
||||
Array [
|
||||
Array [
|
||||
Object {
|
||||
"id": "1",
|
||||
"type": "index-pattern",
|
||||
},
|
||||
Object {
|
||||
"id": "2",
|
||||
"type": "search",
|
||||
},
|
||||
],
|
||||
],
|
||||
],
|
||||
"results": Array [
|
||||
Object {
|
||||
"type": "return",
|
||||
"value": Promise {},
|
||||
},
|
||||
],
|
||||
}
|
||||
`);
|
||||
});
|
||||
|
||||
test('export selected objects throws error when exceeding exportSizeLimit', async () => {
|
||||
const exportOpts = {
|
||||
exportSizeLimit: 1,
|
||||
savedObjectsClient,
|
||||
types: ['index-pattern', 'search'],
|
||||
objects: [
|
||||
{
|
||||
type: 'index-pattern',
|
||||
id: '1',
|
||||
},
|
||||
{
|
||||
type: 'search',
|
||||
id: '2',
|
||||
},
|
||||
],
|
||||
};
|
||||
await expect(getSortedObjectsForExport(exportOpts)).rejects.toThrowErrorMatchingInlineSnapshot(
|
||||
`"Can't export more than 1 objects"`
|
||||
);
|
||||
});
|
||||
});
|
|
@ -19,6 +19,7 @@
|
|||
|
||||
import Boom from 'boom';
|
||||
import { SavedObject, SavedObjectsClient } from '../service/saved_objects_client';
|
||||
import { sortObjects } from './sort_objects';
|
||||
|
||||
interface ObjectToExport {
|
||||
id: string;
|
||||
|
@ -66,38 +67,3 @@ export async function getSortedObjectsForExport({
|
|||
}
|
||||
return sortObjects(objectsToExport);
|
||||
}
|
||||
|
||||
export function sortObjects(savedObjects: SavedObject[]) {
|
||||
const path = new Set();
|
||||
const sorted = new Set();
|
||||
const objectsByTypeId = new Map(
|
||||
savedObjects.map(object => [`${object.type}:${object.id}`, object] as [string, SavedObject])
|
||||
);
|
||||
|
||||
function includeObjects(objects: SavedObject[]) {
|
||||
for (const object of objects) {
|
||||
if (path.has(object)) {
|
||||
throw Boom.badRequest(
|
||||
`circular reference: ${[...path, object]
|
||||
.map(obj => `[${obj.type}:${obj.id}]`)
|
||||
.join(' ref-> ')}`
|
||||
);
|
||||
}
|
||||
|
||||
const refdObjects = object.references
|
||||
.map(ref => objectsByTypeId.get(`${ref.type}:${ref.id}`))
|
||||
.filter((ref): ref is SavedObject => !!ref);
|
||||
|
||||
if (refdObjects.length) {
|
||||
path.add(object);
|
||||
includeObjects(refdObjects);
|
||||
path.delete(object);
|
||||
}
|
||||
|
||||
sorted.add(object);
|
||||
}
|
||||
}
|
||||
|
||||
includeObjects(savedObjects);
|
||||
return [...sorted];
|
||||
}
|
|
@ -17,5 +17,4 @@
|
|||
* under the License.
|
||||
*/
|
||||
|
||||
export { importSavedObjects, resolveImportConflicts } from './import';
|
||||
export { getSortedObjectsForExport } from './export';
|
||||
export { getSortedObjectsForExport } from './get_sorted_objects_for_export';
|
|
@ -17,231 +17,7 @@
|
|||
* under the License.
|
||||
*/
|
||||
|
||||
import { getSortedObjectsForExport, sortObjects } from './export';
|
||||
|
||||
describe('getSortedObjectsForExport()', () => {
|
||||
const savedObjectsClient = {
|
||||
errors: {} as any,
|
||||
find: jest.fn(),
|
||||
bulkGet: jest.fn(),
|
||||
create: jest.fn(),
|
||||
bulkCreate: jest.fn(),
|
||||
delete: jest.fn(),
|
||||
get: jest.fn(),
|
||||
update: jest.fn(),
|
||||
};
|
||||
|
||||
afterEach(() => {
|
||||
savedObjectsClient.find.mockReset();
|
||||
savedObjectsClient.bulkGet.mockReset();
|
||||
savedObjectsClient.create.mockReset();
|
||||
savedObjectsClient.bulkCreate.mockReset();
|
||||
savedObjectsClient.delete.mockReset();
|
||||
savedObjectsClient.get.mockReset();
|
||||
savedObjectsClient.update.mockReset();
|
||||
});
|
||||
|
||||
test('exports selected types and sorts them', async () => {
|
||||
savedObjectsClient.find.mockResolvedValueOnce({
|
||||
total: 2,
|
||||
saved_objects: [
|
||||
{
|
||||
id: '2',
|
||||
type: 'search',
|
||||
references: [
|
||||
{
|
||||
type: 'index-pattern',
|
||||
id: '1',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
id: '1',
|
||||
type: 'index-pattern',
|
||||
references: [],
|
||||
},
|
||||
],
|
||||
});
|
||||
const response = await getSortedObjectsForExport({
|
||||
savedObjectsClient,
|
||||
exportSizeLimit: 500,
|
||||
types: ['index-pattern', 'search'],
|
||||
});
|
||||
expect(response).toMatchInlineSnapshot(`
|
||||
Array [
|
||||
Object {
|
||||
"id": "1",
|
||||
"references": Array [],
|
||||
"type": "index-pattern",
|
||||
},
|
||||
Object {
|
||||
"id": "2",
|
||||
"references": Array [
|
||||
Object {
|
||||
"id": "1",
|
||||
"type": "index-pattern",
|
||||
},
|
||||
],
|
||||
"type": "search",
|
||||
},
|
||||
]
|
||||
`);
|
||||
expect(savedObjectsClient.find).toMatchInlineSnapshot(`
|
||||
[MockFunction] {
|
||||
"calls": Array [
|
||||
Array [
|
||||
Object {
|
||||
"perPage": 500,
|
||||
"sortField": "_id",
|
||||
"sortOrder": "asc",
|
||||
"type": Array [
|
||||
"index-pattern",
|
||||
"search",
|
||||
],
|
||||
},
|
||||
],
|
||||
],
|
||||
"results": Array [
|
||||
Object {
|
||||
"type": "return",
|
||||
"value": Promise {},
|
||||
},
|
||||
],
|
||||
}
|
||||
`);
|
||||
});
|
||||
|
||||
test('export selected types throws error when exceeding exportSizeLimit', async () => {
|
||||
savedObjectsClient.find.mockResolvedValueOnce({
|
||||
total: 2,
|
||||
saved_objects: [
|
||||
{
|
||||
id: '2',
|
||||
type: 'search',
|
||||
references: [
|
||||
{
|
||||
type: 'index-pattern',
|
||||
id: '1',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
id: '1',
|
||||
type: 'index-pattern',
|
||||
references: [],
|
||||
},
|
||||
],
|
||||
});
|
||||
await expect(
|
||||
getSortedObjectsForExport({
|
||||
savedObjectsClient,
|
||||
exportSizeLimit: 1,
|
||||
types: ['index-pattern', 'search'],
|
||||
})
|
||||
).rejects.toThrowErrorMatchingInlineSnapshot(`"Can't export more than 1 objects"`);
|
||||
});
|
||||
|
||||
test('exports selected objects and sorts them', async () => {
|
||||
savedObjectsClient.bulkGet.mockResolvedValueOnce({
|
||||
saved_objects: [
|
||||
{
|
||||
id: '2',
|
||||
type: 'search',
|
||||
references: [
|
||||
{
|
||||
type: 'index-pattern',
|
||||
id: '1',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
id: '1',
|
||||
type: 'index-pattern',
|
||||
references: [],
|
||||
},
|
||||
],
|
||||
});
|
||||
const response = await getSortedObjectsForExport({
|
||||
exportSizeLimit: 10000,
|
||||
savedObjectsClient,
|
||||
types: ['index-pattern', 'search'],
|
||||
objects: [
|
||||
{
|
||||
type: 'index-pattern',
|
||||
id: '1',
|
||||
},
|
||||
{
|
||||
type: 'search',
|
||||
id: '2',
|
||||
},
|
||||
],
|
||||
});
|
||||
expect(response).toMatchInlineSnapshot(`
|
||||
Array [
|
||||
Object {
|
||||
"id": "1",
|
||||
"references": Array [],
|
||||
"type": "index-pattern",
|
||||
},
|
||||
Object {
|
||||
"id": "2",
|
||||
"references": Array [
|
||||
Object {
|
||||
"id": "1",
|
||||
"type": "index-pattern",
|
||||
},
|
||||
],
|
||||
"type": "search",
|
||||
},
|
||||
]
|
||||
`);
|
||||
expect(savedObjectsClient.bulkGet).toMatchInlineSnapshot(`
|
||||
[MockFunction] {
|
||||
"calls": Array [
|
||||
Array [
|
||||
Array [
|
||||
Object {
|
||||
"id": "1",
|
||||
"type": "index-pattern",
|
||||
},
|
||||
Object {
|
||||
"id": "2",
|
||||
"type": "search",
|
||||
},
|
||||
],
|
||||
],
|
||||
],
|
||||
"results": Array [
|
||||
Object {
|
||||
"type": "return",
|
||||
"value": Promise {},
|
||||
},
|
||||
],
|
||||
}
|
||||
`);
|
||||
});
|
||||
|
||||
test('export selected objects throws error when exceeding exportSizeLimit', async () => {
|
||||
const exportOpts = {
|
||||
exportSizeLimit: 1,
|
||||
savedObjectsClient,
|
||||
types: ['index-pattern', 'search'],
|
||||
objects: [
|
||||
{
|
||||
type: 'index-pattern',
|
||||
id: '1',
|
||||
},
|
||||
{
|
||||
type: 'search',
|
||||
id: '2',
|
||||
},
|
||||
],
|
||||
};
|
||||
await expect(getSortedObjectsForExport(exportOpts)).rejects.toThrowErrorMatchingInlineSnapshot(
|
||||
`"Can't export more than 1 objects"`
|
||||
);
|
||||
});
|
||||
});
|
||||
import { sortObjects } from './sort_objects';
|
||||
|
||||
describe('sortObjects()', () => {
|
||||
test('should return on empty array', () => {
|
56
src/legacy/server/saved_objects/export/sort_objects.ts
Normal file
|
@ -0,0 +1,56 @@
|
|||
/*
|
||||
* Licensed to Elasticsearch B.V. under one or more contributor
|
||||
* license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright
|
||||
* ownership. Elasticsearch B.V. licenses this file to you under
|
||||
* the Apache License, Version 2.0 (the "License"); you may
|
||||
* not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
import Boom from 'boom';
|
||||
import { SavedObject } from '../service/saved_objects_client';
|
||||
|
||||
export function sortObjects(savedObjects: SavedObject[]) {
|
||||
const path = new Set();
|
||||
const sorted = new Set();
|
||||
const objectsByTypeId = new Map(
|
||||
savedObjects.map(object => [`${object.type}:${object.id}`, object] as [string, SavedObject])
|
||||
);
|
||||
|
||||
function includeObjects(objects: SavedObject[]) {
|
||||
for (const object of objects) {
|
||||
if (path.has(object)) {
|
||||
throw Boom.badRequest(
|
||||
`circular reference: ${[...path, object]
|
||||
.map(obj => `[${obj.type}:${obj.id}]`)
|
||||
.join(' ref-> ')}`
|
||||
);
|
||||
}
|
||||
|
||||
const refdObjects = object.references
|
||||
.map(ref => objectsByTypeId.get(`${ref.type}:${ref.id}`))
|
||||
.filter((ref): ref is SavedObject => !!ref);
|
||||
|
||||
if (refdObjects.length) {
|
||||
path.add(object);
|
||||
includeObjects(refdObjects);
|
||||
path.delete(object);
|
||||
}
|
||||
|
||||
sorted.add(object);
|
||||
}
|
||||
}
|
||||
|
||||
includeObjects(savedObjects);
|
||||
return [...sorted];
|
||||
}
|
|
@ -0,0 +1,80 @@
|
|||
/*
|
||||
* Licensed to Elasticsearch B.V. under one or more contributor
|
||||
* license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright
|
||||
* ownership. Elasticsearch B.V. licenses this file to you under
|
||||
* the Apache License, Version 2.0 (the "License"); you may
|
||||
* not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
import { Readable } from 'stream';
|
||||
import { collectSavedObjects } from './collect_saved_objects';
|
||||
|
||||
describe('collectSavedObjects()', () => {
|
||||
test('collects nothing when stream is empty', async () => {
|
||||
const readStream = new Readable({
|
||||
read() {
|
||||
this.push(null);
|
||||
},
|
||||
});
|
||||
const objects = await collectSavedObjects(readStream, 10);
|
||||
expect(objects).toMatchInlineSnapshot(`Array []`);
|
||||
});
|
||||
|
||||
test('collects objects from stream', async () => {
|
||||
const readStream = new Readable({
|
||||
read() {
|
||||
this.push('{"foo":true}');
|
||||
this.push(null);
|
||||
},
|
||||
});
|
||||
const objects = await collectSavedObjects(readStream, 1);
|
||||
expect(objects).toMatchInlineSnapshot(`
|
||||
Array [
|
||||
Object {
|
||||
"foo": true,
|
||||
},
|
||||
]
|
||||
`);
|
||||
});
|
||||
|
||||
test('filters out empty lines', async () => {
|
||||
const readStream = new Readable({
|
||||
read() {
|
||||
this.push('{"foo":true}\n\n');
|
||||
this.push(null);
|
||||
},
|
||||
});
|
||||
const objects = await collectSavedObjects(readStream, 1);
|
||||
expect(objects).toMatchInlineSnapshot(`
|
||||
Array [
|
||||
Object {
|
||||
"foo": true,
|
||||
},
|
||||
]
|
||||
`);
|
||||
});
|
||||
|
||||
test('throws error when object limit is reached', async () => {
|
||||
const readStream = new Readable({
|
||||
read() {
|
||||
this.push('{"foo":true}\n');
|
||||
this.push('{"bar":true}\n');
|
||||
this.push(null);
|
||||
},
|
||||
});
|
||||
await expect(collectSavedObjects(readStream, 1)).rejects.toThrowErrorMatchingInlineSnapshot(
|
||||
`"Can't import more than 1 objects"`
|
||||
);
|
||||
});
|
||||
});
|
|
@ -0,0 +1,49 @@
|
|||
/*
|
||||
* Licensed to Elasticsearch B.V. under one or more contributor
|
||||
* license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright
|
||||
* ownership. Elasticsearch B.V. licenses this file to you under
|
||||
* the Apache License, Version 2.0 (the "License"); you may
|
||||
* not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
import { Readable } from 'stream';
|
||||
import {
|
||||
createConcatStream,
|
||||
createFilterStream,
|
||||
createMapStream,
|
||||
createPromiseFromStreams,
|
||||
createSplitStream,
|
||||
} from '../../../utils/streams';
|
||||
import { SavedObject } from '../service';
|
||||
import { createLimitStream } from './create_limit_stream';
|
||||
|
||||
export async function collectSavedObjects(
|
||||
readStream: Readable,
|
||||
objectLimit: number,
|
||||
filter?: (obj: SavedObject) => boolean
|
||||
): Promise<SavedObject[]> {
|
||||
return (await createPromiseFromStreams([
|
||||
readStream,
|
||||
createSplitStream('\n'),
|
||||
createMapStream((str: string) => {
|
||||
if (str && str !== '') {
|
||||
return JSON.parse(str);
|
||||
}
|
||||
}),
|
||||
createFilterStream<SavedObject>(obj => !!obj),
|
||||
createLimitStream(objectLimit),
|
||||
createFilterStream<SavedObject>(obj => (filter ? filter(obj) : true)),
|
||||
createConcatStream([]),
|
||||
])) as SavedObject[];
|
||||
}
|
|
@ -0,0 +1,53 @@
|
|||
/*
|
||||
* Licensed to Elasticsearch B.V. under one or more contributor
|
||||
* license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright
|
||||
* ownership. Elasticsearch B.V. licenses this file to you under
|
||||
* the Apache License, Version 2.0 (the "License"); you may
|
||||
* not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
import {
|
||||
createConcatStream,
|
||||
createListStream,
|
||||
createPromiseFromStreams,
|
||||
} from '../../../utils/streams';
|
||||
import { createLimitStream } from './create_limit_stream';
|
||||
|
||||
describe('createLimitStream()', () => {
|
||||
test('limit of 5 allows 5 items through', async () => {
|
||||
await createPromiseFromStreams([createListStream([1, 2, 3, 4, 5]), createLimitStream(5)]);
|
||||
});
|
||||
|
||||
test('limit of 5 errors out when 6 items are through', async () => {
|
||||
await expect(
|
||||
createPromiseFromStreams([createListStream([1, 2, 3, 4, 5, 6]), createLimitStream(5)])
|
||||
).rejects.toThrowErrorMatchingInlineSnapshot(`"Can't import more than 5 objects"`);
|
||||
});
|
||||
|
||||
test('send the values on the output stream', async () => {
|
||||
const result = await createPromiseFromStreams([
|
||||
createListStream([1, 2, 3]),
|
||||
createLimitStream(3),
|
||||
createConcatStream([]),
|
||||
]);
|
||||
|
||||
expect(result).toMatchInlineSnapshot(`
|
||||
Array [
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
]
|
||||
`);
|
||||
});
|
||||
});
|
|
@ -0,0 +1,35 @@
|
|||
/*
|
||||
* Licensed to Elasticsearch B.V. under one or more contributor
|
||||
* license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright
|
||||
* ownership. Elasticsearch B.V. licenses this file to you under
|
||||
* the Apache License, Version 2.0 (the "License"); you may
|
||||
* not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
import Boom from 'boom';
|
||||
import { Transform } from 'stream';
|
||||
|
||||
export function createLimitStream(limit: number) {
|
||||
let counter = 0;
|
||||
return new Transform({
|
||||
objectMode: true,
|
||||
async transform(obj, enc, done) {
|
||||
if (counter >= limit) {
|
||||
return done(Boom.badRequest(`Can't import more than ${limit} objects`));
|
||||
}
|
||||
counter++;
|
||||
done(undefined, obj);
|
||||
},
|
||||
});
|
||||
}
|
|
@ -0,0 +1,185 @@
|
|||
/*
|
||||
* Licensed to Elasticsearch B.V. under one or more contributor
|
||||
* license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright
|
||||
* ownership. Elasticsearch B.V. licenses this file to you under
|
||||
* the Apache License, Version 2.0 (the "License"); you may
|
||||
* not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
import { createObjectsFilter } from './create_objects_filter';
|
||||
|
||||
describe('createObjectsFilter()', () => {
|
||||
test('filters should return false when contains empty parameters', () => {
|
||||
const fn = createObjectsFilter([], [], []);
|
||||
expect(fn({ type: 'a', id: '1', attributes: {}, references: [] })).toEqual(false);
|
||||
});
|
||||
|
||||
test('filters should exclude skips', () => {
|
||||
const fn = createObjectsFilter(
|
||||
[
|
||||
{
|
||||
type: 'a',
|
||||
id: '1',
|
||||
},
|
||||
],
|
||||
[],
|
||||
[
|
||||
{
|
||||
type: 'b',
|
||||
from: '1',
|
||||
to: '2',
|
||||
},
|
||||
]
|
||||
);
|
||||
expect(
|
||||
fn({
|
||||
type: 'a',
|
||||
id: '1',
|
||||
attributes: {},
|
||||
references: [{ name: 'ref_0', type: 'b', id: '1' }],
|
||||
})
|
||||
).toEqual(false);
|
||||
expect(
|
||||
fn({
|
||||
type: 'a',
|
||||
id: '2',
|
||||
attributes: {},
|
||||
references: [{ name: 'ref_0', type: 'b', id: '1' }],
|
||||
})
|
||||
).toEqual(true);
|
||||
});
|
||||
|
||||
test('filter should include references to replace', () => {
|
||||
const fn = createObjectsFilter(
|
||||
[],
|
||||
[],
|
||||
[
|
||||
{
|
||||
type: 'b',
|
||||
from: '1',
|
||||
to: '2',
|
||||
},
|
||||
]
|
||||
);
|
||||
expect(
|
||||
fn({
|
||||
type: 'a',
|
||||
id: '1',
|
||||
attributes: {},
|
||||
references: [
|
||||
{
|
||||
name: 'ref_0',
|
||||
type: 'b',
|
||||
id: '1',
|
||||
},
|
||||
],
|
||||
})
|
||||
).toEqual(true);
|
||||
expect(
|
||||
fn({
|
||||
type: 'a',
|
||||
id: '1',
|
||||
attributes: {},
|
||||
references: [
|
||||
{
|
||||
name: 'ref_0',
|
||||
type: 'b',
|
||||
id: '2',
|
||||
},
|
||||
],
|
||||
})
|
||||
).toEqual(false);
|
||||
});
|
||||
|
||||
test('filter should include objects to overwrite', () => {
|
||||
const fn = createObjectsFilter(
|
||||
[],
|
||||
[
|
||||
{
|
||||
type: 'a',
|
||||
id: '1',
|
||||
},
|
||||
],
|
||||
[]
|
||||
);
|
||||
expect(fn({ type: 'a', id: '1', attributes: {}, references: [] })).toEqual(true);
|
||||
expect(fn({ type: 'a', id: '2', attributes: {}, references: [] })).toEqual(false);
|
||||
});
|
||||
|
||||
test('filter should work with skips, overwrites and replaceReferences', () => {
|
||||
const fn = createObjectsFilter(
|
||||
[
|
||||
{
|
||||
type: 'a',
|
||||
id: '1',
|
||||
},
|
||||
],
|
||||
[
|
||||
{
|
||||
type: 'a',
|
||||
id: '2',
|
||||
},
|
||||
],
|
||||
[
|
||||
{
|
||||
type: 'b',
|
||||
from: '1',
|
||||
to: '2',
|
||||
},
|
||||
]
|
||||
);
|
||||
expect(
|
||||
fn({
|
||||
type: 'a',
|
||||
id: '1',
|
||||
attributes: {},
|
||||
references: [
|
||||
{
|
||||
name: 'ref_0',
|
||||
type: 'b',
|
||||
id: '1',
|
||||
},
|
||||
],
|
||||
})
|
||||
).toEqual(false);
|
||||
expect(
|
||||
fn({
|
||||
type: 'a',
|
||||
id: '2',
|
||||
attributes: {},
|
||||
references: [
|
||||
{
|
||||
name: 'ref_0',
|
||||
type: 'b',
|
||||
id: '2',
|
||||
},
|
||||
],
|
||||
})
|
||||
).toEqual(true);
|
||||
expect(
|
||||
fn({
|
||||
type: 'a',
|
||||
id: '3',
|
||||
attributes: {},
|
||||
references: [
|
||||
{
|
||||
name: 'ref_0',
|
||||
type: 'b',
|
||||
id: '1',
|
||||
},
|
||||
],
|
||||
})
|
||||
).toEqual(true);
|
||||
});
|
||||
});
|
|
@ -0,0 +1,54 @@
|
|||
/*
|
||||
* Licensed to Elasticsearch B.V. under one or more contributor
|
||||
* license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright
|
||||
* ownership. Elasticsearch B.V. licenses this file to you under
|
||||
* the Apache License, Version 2.0 (the "License"); you may
|
||||
* not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
import { SavedObject } from '../service';
|
||||
|
||||
export function createObjectsFilter(
|
||||
skips: Array<{
|
||||
type: string;
|
||||
id: string;
|
||||
}>,
|
||||
overwrites: Array<{
|
||||
type: string;
|
||||
id: string;
|
||||
}>,
|
||||
replaceReferences: Array<{
|
||||
type: string;
|
||||
from: string;
|
||||
to: string;
|
||||
}>
|
||||
) {
|
||||
const refReplacements = replaceReferences.map(ref => `${ref.type}:${ref.from}`);
|
||||
return (obj: SavedObject) => {
|
||||
if (skips.some(skipObj => skipObj.type === obj.type && skipObj.id === obj.id)) {
|
||||
return false;
|
||||
}
|
||||
if (
|
||||
overwrites.some(overwriteObj => overwriteObj.type === obj.type && overwriteObj.id === obj.id)
|
||||
) {
|
||||
return true;
|
||||
}
|
||||
for (const reference of obj.references || []) {
|
||||
if (refReplacements.includes(`${reference.type}:${reference.id}`)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
};
|
||||
}
|
|
@ -0,0 +1,63 @@
|
|||
/*
|
||||
* Licensed to Elasticsearch B.V. under one or more contributor
|
||||
* license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright
|
||||
* ownership. Elasticsearch B.V. licenses this file to you under
|
||||
* the Apache License, Version 2.0 (the "License"); you may
|
||||
* not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
import { SavedObject } from '../service';
|
||||
import { extractErrors } from './extract_errors';
|
||||
|
||||
describe('extractErrors()', () => {
|
||||
test('returns empty array when no errors exist', () => {
|
||||
const savedObjects: SavedObject[] = [];
|
||||
const result = extractErrors(savedObjects);
|
||||
expect(result).toMatchInlineSnapshot(`Array []`);
|
||||
});
|
||||
|
||||
test('extracts errors from saved objects', () => {
|
||||
const savedObjects: SavedObject[] = [
|
||||
{
|
||||
id: '1',
|
||||
type: 'dashboard',
|
||||
attributes: {},
|
||||
references: [],
|
||||
},
|
||||
{
|
||||
id: '2',
|
||||
type: 'dashboard',
|
||||
attributes: {},
|
||||
references: [],
|
||||
error: {
|
||||
statusCode: 409,
|
||||
message: 'Conflict',
|
||||
},
|
||||
},
|
||||
];
|
||||
const result = extractErrors(savedObjects);
|
||||
expect(result).toMatchInlineSnapshot(`
|
||||
Array [
|
||||
Object {
|
||||
"error": Object {
|
||||
"message": "Conflict",
|
||||
"statusCode": 409,
|
||||
},
|
||||
"id": "2",
|
||||
"type": "dashboard",
|
||||
},
|
||||
]
|
||||
`);
|
||||
});
|
||||
});
|
43
src/legacy/server/saved_objects/import/extract_errors.ts
Normal file
|
@ -0,0 +1,43 @@
|
|||
/*
|
||||
* Licensed to Elasticsearch B.V. under one or more contributor
|
||||
* license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright
|
||||
* ownership. Elasticsearch B.V. licenses this file to you under
|
||||
* the Apache License, Version 2.0 (the "License"); you may
|
||||
* not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
import { SavedObject } from '../service';
|
||||
|
||||
export interface CustomError {
|
||||
id: string;
|
||||
type: string;
|
||||
error: {
|
||||
message: string;
|
||||
statusCode: number;
|
||||
};
|
||||
}
|
||||
|
||||
export function extractErrors(savedObjects: SavedObject[]) {
|
||||
const errors: CustomError[] = [];
|
||||
for (const savedObject of savedObjects) {
|
||||
if (savedObject.error) {
|
||||
errors.push({
|
||||
id: savedObject.id,
|
||||
type: savedObject.type,
|
||||
error: savedObject.error,
|
||||
});
|
||||
}
|
||||
}
|
||||
return errors;
|
||||
}
|
|
@ -0,0 +1,270 @@
|
|||
/*
|
||||
* Licensed to Elasticsearch B.V. under one or more contributor
|
||||
* license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright
|
||||
* ownership. Elasticsearch B.V. licenses this file to you under
|
||||
* the Apache License, Version 2.0 (the "License"); you may
|
||||
* not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
import { Readable } from 'stream';
|
||||
import { SavedObject } from '../service';
|
||||
import { importSavedObjects } from './import_saved_objects';
|
||||
|
||||
describe('importSavedObjects()', () => {
|
||||
const savedObjects: SavedObject[] = [
|
||||
{
|
||||
id: '1',
|
||||
type: 'index-pattern',
|
||||
attributes: {},
|
||||
references: [],
|
||||
},
|
||||
{
|
||||
id: '2',
|
||||
type: 'search',
|
||||
attributes: {},
|
||||
references: [],
|
||||
},
|
||||
{
|
||||
id: '3',
|
||||
type: 'visualization',
|
||||
attributes: {},
|
||||
references: [],
|
||||
},
|
||||
{
|
||||
id: '4',
|
||||
type: 'dashboard',
|
||||
attributes: {},
|
||||
references: [],
|
||||
},
|
||||
];
|
||||
const savedObjectsClient = {
|
||||
errors: {} as any,
|
||||
bulkCreate: jest.fn(),
|
||||
bulkGet: jest.fn(),
|
||||
create: jest.fn(),
|
||||
delete: jest.fn(),
|
||||
find: jest.fn(),
|
||||
get: jest.fn(),
|
||||
update: jest.fn(),
|
||||
};
|
||||
|
||||
beforeEach(() => {
|
||||
savedObjectsClient.bulkCreate.mockReset();
|
||||
savedObjectsClient.bulkGet.mockReset();
|
||||
savedObjectsClient.create.mockReset();
|
||||
savedObjectsClient.delete.mockReset();
|
||||
savedObjectsClient.find.mockReset();
|
||||
savedObjectsClient.get.mockReset();
|
||||
savedObjectsClient.update.mockReset();
|
||||
});
|
||||
|
||||
test('calls bulkCreate without overwrite', async () => {
|
||||
const readStream = new Readable({
|
||||
read() {
|
||||
savedObjects.forEach(obj => this.push(JSON.stringify(obj) + '\n'));
|
||||
this.push(null);
|
||||
},
|
||||
});
|
||||
savedObjectsClient.bulkCreate.mockResolvedValue({
|
||||
saved_objects: savedObjects,
|
||||
});
|
||||
const result = await importSavedObjects({
|
||||
readStream,
|
||||
objectLimit: 4,
|
||||
overwrite: false,
|
||||
savedObjectsClient,
|
||||
});
|
||||
expect(result).toMatchInlineSnapshot(`
|
||||
Object {
|
||||
"success": true,
|
||||
"successCount": 4,
|
||||
}
|
||||
`);
|
||||
expect(savedObjectsClient.bulkCreate).toMatchInlineSnapshot(`
|
||||
[MockFunction] {
|
||||
"calls": Array [
|
||||
Array [
|
||||
Array [
|
||||
Object {
|
||||
"attributes": Object {},
|
||||
"id": "1",
|
||||
"references": Array [],
|
||||
"type": "index-pattern",
|
||||
},
|
||||
Object {
|
||||
"attributes": Object {},
|
||||
"id": "2",
|
||||
"references": Array [],
|
||||
"type": "search",
|
||||
},
|
||||
Object {
|
||||
"attributes": Object {},
|
||||
"id": "3",
|
||||
"references": Array [],
|
||||
"type": "visualization",
|
||||
},
|
||||
Object {
|
||||
"attributes": Object {},
|
||||
"id": "4",
|
||||
"references": Array [],
|
||||
"type": "dashboard",
|
||||
},
|
||||
],
|
||||
Object {
|
||||
"overwrite": false,
|
||||
},
|
||||
],
|
||||
],
|
||||
"results": Array [
|
||||
Object {
|
||||
"type": "return",
|
||||
"value": Promise {},
|
||||
},
|
||||
],
|
||||
}
|
||||
`);
|
||||
});
|
||||
|
||||
test('calls bulkCreate with overwrite', async () => {
|
||||
const readStream = new Readable({
|
||||
read() {
|
||||
savedObjects.forEach(obj => this.push(JSON.stringify(obj) + '\n'));
|
||||
this.push(null);
|
||||
},
|
||||
});
|
||||
savedObjectsClient.bulkCreate.mockResolvedValue({
|
||||
saved_objects: savedObjects,
|
||||
});
|
||||
const result = await importSavedObjects({
|
||||
readStream,
|
||||
objectLimit: 4,
|
||||
overwrite: true,
|
||||
savedObjectsClient,
|
||||
});
|
||||
expect(result).toMatchInlineSnapshot(`
|
||||
Object {
|
||||
"success": true,
|
||||
"successCount": 4,
|
||||
}
|
||||
`);
|
||||
expect(savedObjectsClient.bulkCreate).toMatchInlineSnapshot(`
|
||||
[MockFunction] {
|
||||
"calls": Array [
|
||||
Array [
|
||||
Array [
|
||||
Object {
|
||||
"attributes": Object {},
|
||||
"id": "1",
|
||||
"references": Array [],
|
||||
"type": "index-pattern",
|
||||
},
|
||||
Object {
|
||||
"attributes": Object {},
|
||||
"id": "2",
|
||||
"references": Array [],
|
||||
"type": "search",
|
||||
},
|
||||
Object {
|
||||
"attributes": Object {},
|
||||
"id": "3",
|
||||
"references": Array [],
|
||||
"type": "visualization",
|
||||
},
|
||||
Object {
|
||||
"attributes": Object {},
|
||||
"id": "4",
|
||||
"references": Array [],
|
||||
"type": "dashboard",
|
||||
},
|
||||
],
|
||||
Object {
|
||||
"overwrite": true,
|
||||
},
|
||||
],
|
||||
],
|
||||
"results": Array [
|
||||
Object {
|
||||
"type": "return",
|
||||
"value": Promise {},
|
||||
},
|
||||
],
|
||||
}
|
||||
`);
|
||||
});
|
||||
|
||||
test('extracts errors', async () => {
|
||||
const readStream = new Readable({
|
||||
read() {
|
||||
savedObjects.forEach(obj => this.push(JSON.stringify(obj) + '\n'));
|
||||
this.push(null);
|
||||
},
|
||||
});
|
||||
savedObjectsClient.bulkCreate.mockResolvedValue({
|
||||
saved_objects: savedObjects.map(savedObject => ({
|
||||
type: savedObject.type,
|
||||
id: savedObject.id,
|
||||
error: {
|
||||
statusCode: 409,
|
||||
message: 'conflict',
|
||||
},
|
||||
})),
|
||||
});
|
||||
const result = await importSavedObjects({
|
||||
readStream,
|
||||
objectLimit: 4,
|
||||
overwrite: false,
|
||||
savedObjectsClient,
|
||||
});
|
||||
expect(result).toMatchInlineSnapshot(`
|
||||
Object {
|
||||
"errors": Array [
|
||||
Object {
|
||||
"error": Object {
|
||||
"message": "conflict",
|
||||
"statusCode": 409,
|
||||
},
|
||||
"id": "1",
|
||||
"type": "index-pattern",
|
||||
},
|
||||
Object {
|
||||
"error": Object {
|
||||
"message": "conflict",
|
||||
"statusCode": 409,
|
||||
},
|
||||
"id": "2",
|
||||
"type": "search",
|
||||
},
|
||||
Object {
|
||||
"error": Object {
|
||||
"message": "conflict",
|
||||
"statusCode": 409,
|
||||
},
|
||||
"id": "3",
|
||||
"type": "visualization",
|
||||
},
|
||||
Object {
|
||||
"error": Object {
|
||||
"message": "conflict",
|
||||
"statusCode": 409,
|
||||
},
|
||||
"id": "4",
|
||||
"type": "dashboard",
|
||||
},
|
||||
],
|
||||
"success": false,
|
||||
"successCount": 0,
|
||||
}
|
||||
`);
|
||||
});
|
||||
});
|
|
@ -0,0 +1,63 @@
|
|||
/*
|
||||
* Licensed to Elasticsearch B.V. under one or more contributor
|
||||
* license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright
|
||||
* ownership. Elasticsearch B.V. licenses this file to you under
|
||||
* the Apache License, Version 2.0 (the "License"); you may
|
||||
* not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
import { Readable } from 'stream';
|
||||
import { SavedObjectsClient } from '../service';
|
||||
import { collectSavedObjects } from './collect_saved_objects';
|
||||
import { CustomError, extractErrors } from './extract_errors';
|
||||
|
||||
interface ImportSavedObjectsOptions {
|
||||
readStream: Readable;
|
||||
objectLimit: number;
|
||||
overwrite: boolean;
|
||||
savedObjectsClient: SavedObjectsClient;
|
||||
}
|
||||
|
||||
interface ImportResponse {
|
||||
success: boolean;
|
||||
successCount: number;
|
||||
errors?: CustomError[];
|
||||
}
|
||||
|
||||
export async function importSavedObjects({
|
||||
readStream,
|
||||
objectLimit,
|
||||
overwrite,
|
||||
savedObjectsClient,
|
||||
}: ImportSavedObjectsOptions): Promise<ImportResponse> {
|
||||
const objectsToImport = await collectSavedObjects(readStream, objectLimit);
|
||||
|
||||
if (objectsToImport.length === 0) {
|
||||
return {
|
||||
success: true,
|
||||
successCount: 0,
|
||||
};
|
||||
}
|
||||
|
||||
const bulkCreateResult = await savedObjectsClient.bulkCreate(objectsToImport, {
|
||||
overwrite,
|
||||
});
|
||||
const errors = extractErrors(bulkCreateResult.saved_objects);
|
||||
|
||||
return {
|
||||
success: errors.length === 0,
|
||||
successCount: objectsToImport.length - errors.length,
|
||||
...(errors.length ? { errors } : {}),
|
||||
};
|
||||
}
|
21
src/legacy/server/saved_objects/import/index.ts
Normal file
|
@ -0,0 +1,21 @@
|
|||
/*
|
||||
* Licensed to Elasticsearch B.V. under one or more contributor
|
||||
* license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright
|
||||
* ownership. Elasticsearch B.V. licenses this file to you under
|
||||
* the Apache License, Version 2.0 (the "License"); you may
|
||||
* not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
export { importSavedObjects } from './import_saved_objects';
|
||||
export { resolveImportConflicts } from './resolve_import_conflicts';
|
|
@ -0,0 +1,261 @@
|
|||
/*
|
||||
* Licensed to Elasticsearch B.V. under one or more contributor
|
||||
* license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright
|
||||
* ownership. Elasticsearch B.V. licenses this file to you under
|
||||
* the Apache License, Version 2.0 (the "License"); you may
|
||||
* not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
import { Readable } from 'stream';
|
||||
import { SavedObject } from '../service';
|
||||
import { resolveImportConflicts } from './resolve_import_conflicts';
|
||||
|
||||
describe('resolveImportConflicts()', () => {
|
||||
const savedObjects: SavedObject[] = [
|
||||
{
|
||||
id: '1',
|
||||
type: 'index-pattern',
|
||||
attributes: {},
|
||||
references: [],
|
||||
},
|
||||
{
|
||||
id: '2',
|
||||
type: 'search',
|
||||
attributes: {},
|
||||
references: [],
|
||||
},
|
||||
{
|
||||
id: '3',
|
||||
type: 'visualization',
|
||||
attributes: {},
|
||||
references: [],
|
||||
},
|
||||
{
|
||||
id: '4',
|
||||
type: 'dashboard',
|
||||
attributes: {},
|
||||
references: [
|
||||
{
|
||||
name: 'panel_0',
|
||||
type: 'visualization',
|
||||
id: '3',
|
||||
},
|
||||
],
|
||||
},
|
||||
];
|
||||
const savedObjectsClient = {
|
||||
errors: {} as any,
|
||||
bulkCreate: jest.fn(),
|
||||
bulkGet: jest.fn(),
|
||||
create: jest.fn(),
|
||||
delete: jest.fn(),
|
||||
find: jest.fn(),
|
||||
get: jest.fn(),
|
||||
update: jest.fn(),
|
||||
};
|
||||
|
||||
beforeEach(() => {
|
||||
savedObjectsClient.bulkCreate.mockReset();
|
||||
savedObjectsClient.bulkGet.mockReset();
|
||||
savedObjectsClient.create.mockReset();
|
||||
savedObjectsClient.delete.mockReset();
|
||||
savedObjectsClient.find.mockReset();
|
||||
savedObjectsClient.get.mockReset();
|
||||
savedObjectsClient.update.mockReset();
|
||||
});
|
||||
|
||||
test('works with empty parameters', async () => {
|
||||
const readStream = new Readable({
|
||||
read() {
|
||||
savedObjects.forEach(obj => this.push(JSON.stringify(obj) + '\n'));
|
||||
this.push(null);
|
||||
},
|
||||
});
|
||||
savedObjectsClient.bulkCreate.mockResolvedValue({
|
||||
saved_objects: savedObjects,
|
||||
});
|
||||
const result = await resolveImportConflicts({
|
||||
readStream,
|
||||
objectLimit: 4,
|
||||
skips: [],
|
||||
overwrites: [],
|
||||
savedObjectsClient,
|
||||
replaceReferences: [],
|
||||
});
|
||||
expect(result).toMatchInlineSnapshot(`
|
||||
Object {
|
||||
"success": true,
|
||||
"successCount": 0,
|
||||
}
|
||||
`);
|
||||
expect(savedObjectsClient.bulkCreate).toMatchInlineSnapshot(`[MockFunction]`);
|
||||
});
|
||||
|
||||
test('works with skips', async () => {
|
||||
const readStream = new Readable({
|
||||
read() {
|
||||
savedObjects.forEach(obj => this.push(JSON.stringify(obj) + '\n'));
|
||||
this.push(null);
|
||||
},
|
||||
});
|
||||
savedObjectsClient.bulkCreate.mockResolvedValue({
|
||||
saved_objects: savedObjects,
|
||||
});
|
||||
const result = await resolveImportConflicts({
|
||||
readStream,
|
||||
objectLimit: 4,
|
||||
skips: [
|
||||
{
|
||||
type: 'dashboard',
|
||||
id: '4',
|
||||
},
|
||||
],
|
||||
overwrites: [],
|
||||
savedObjectsClient,
|
||||
replaceReferences: [
|
||||
{
|
||||
type: 'visualization',
|
||||
from: '3',
|
||||
to: '30',
|
||||
},
|
||||
],
|
||||
});
|
||||
expect(result).toMatchInlineSnapshot(`
|
||||
Object {
|
||||
"success": true,
|
||||
"successCount": 0,
|
||||
}
|
||||
`);
|
||||
expect(savedObjectsClient.bulkCreate).toMatchInlineSnapshot(`[MockFunction]`);
|
||||
});
|
||||
|
||||
test('works with overwrites', async () => {
|
||||
const readStream = new Readable({
|
||||
read() {
|
||||
savedObjects.forEach(obj => this.push(JSON.stringify(obj) + '\n'));
|
||||
this.push(null);
|
||||
},
|
||||
});
|
||||
savedObjectsClient.bulkCreate.mockResolvedValue({
|
||||
saved_objects: savedObjects,
|
||||
});
|
||||
const result = await resolveImportConflicts({
|
||||
readStream,
|
||||
objectLimit: 4,
|
||||
skips: [],
|
||||
overwrites: [
|
||||
{
|
||||
type: 'index-pattern',
|
||||
id: '1',
|
||||
},
|
||||
],
|
||||
savedObjectsClient,
|
||||
replaceReferences: [],
|
||||
});
|
||||
expect(result).toMatchInlineSnapshot(`
|
||||
Object {
|
||||
"success": true,
|
||||
"successCount": 1,
|
||||
}
|
||||
`);
|
||||
expect(savedObjectsClient.bulkCreate).toMatchInlineSnapshot(`
|
||||
[MockFunction] {
|
||||
"calls": Array [
|
||||
Array [
|
||||
Array [
|
||||
Object {
|
||||
"attributes": Object {},
|
||||
"id": "1",
|
||||
"references": Array [],
|
||||
"type": "index-pattern",
|
||||
},
|
||||
],
|
||||
Object {
|
||||
"overwrite": true,
|
||||
},
|
||||
],
|
||||
],
|
||||
"results": Array [
|
||||
Object {
|
||||
"type": "return",
|
||||
"value": Promise {},
|
||||
},
|
||||
],
|
||||
}
|
||||
`);
|
||||
});
|
||||
|
||||
test('works wtih replaceReferences', async () => {
|
||||
const readStream = new Readable({
|
||||
read() {
|
||||
savedObjects.forEach(obj => this.push(JSON.stringify(obj) + '\n'));
|
||||
this.push(null);
|
||||
},
|
||||
});
|
||||
savedObjectsClient.bulkCreate.mockResolvedValue({
|
||||
saved_objects: savedObjects,
|
||||
});
|
||||
const result = await resolveImportConflicts({
|
||||
readStream,
|
||||
objectLimit: 4,
|
||||
skips: [],
|
||||
overwrites: [],
|
||||
savedObjectsClient,
|
||||
replaceReferences: [
|
||||
{
|
||||
type: 'visualization',
|
||||
from: '3',
|
||||
to: '13',
|
||||
},
|
||||
],
|
||||
});
|
||||
expect(result).toMatchInlineSnapshot(`
|
||||
Object {
|
||||
"success": true,
|
||||
"successCount": 1,
|
||||
}
|
||||
`);
|
||||
expect(savedObjectsClient.bulkCreate).toMatchInlineSnapshot(`
|
||||
[MockFunction] {
|
||||
"calls": Array [
|
||||
Array [
|
||||
Array [
|
||||
Object {
|
||||
"attributes": Object {},
|
||||
"id": "4",
|
||||
"references": Array [
|
||||
Object {
|
||||
"id": "13",
|
||||
"name": "panel_0",
|
||||
"type": "visualization",
|
||||
},
|
||||
],
|
||||
"type": "dashboard",
|
||||
},
|
||||
],
|
||||
Object {
|
||||
"overwrite": true,
|
||||
},
|
||||
],
|
||||
],
|
||||
"results": Array [
|
||||
Object {
|
||||
"type": "return",
|
||||
"value": Promise {},
|
||||
},
|
||||
],
|
||||
}
|
||||
`);
|
||||
});
|
||||
});
|
|
@ -0,0 +1,88 @@
|
|||
/*
|
||||
* Licensed to Elasticsearch B.V. under one or more contributor
|
||||
* license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright
|
||||
* ownership. Elasticsearch B.V. licenses this file to you under
|
||||
* the Apache License, Version 2.0 (the "License"); you may
|
||||
* not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
import { Readable } from 'stream';
|
||||
import { SavedObjectsClient } from '../service';
|
||||
import { collectSavedObjects } from './collect_saved_objects';
|
||||
import { createObjectsFilter } from './create_objects_filter';
|
||||
import { CustomError, extractErrors } from './extract_errors';
|
||||
|
||||
interface ResolveImportConflictsOptions {
|
||||
readStream: Readable;
|
||||
objectLimit: number;
|
||||
savedObjectsClient: SavedObjectsClient;
|
||||
overwrites: Array<{
|
||||
type: string;
|
||||
id: string;
|
||||
}>;
|
||||
replaceReferences: Array<{
|
||||
type: string;
|
||||
from: string;
|
||||
to: string;
|
||||
}>;
|
||||
skips: Array<{
|
||||
type: string;
|
||||
id: string;
|
||||
}>;
|
||||
}
|
||||
|
||||
interface ImportResponse {
|
||||
success: boolean;
|
||||
successCount: number;
|
||||
errors?: CustomError[];
|
||||
}
|
||||
|
||||
export async function resolveImportConflicts({
|
||||
readStream,
|
||||
objectLimit,
|
||||
skips,
|
||||
overwrites,
|
||||
savedObjectsClient,
|
||||
replaceReferences,
|
||||
}: ResolveImportConflictsOptions): Promise<ImportResponse> {
|
||||
let errors: CustomError[] = [];
|
||||
const filter = createObjectsFilter(skips, overwrites, replaceReferences);
|
||||
const objectsToResolve = await collectSavedObjects(readStream, objectLimit, filter);
|
||||
|
||||
// Replace references
|
||||
const refReplacementsMap: Record<string, string> = {};
|
||||
for (const { type, to, from } of replaceReferences) {
|
||||
refReplacementsMap[`${type}:${from}`] = to;
|
||||
}
|
||||
for (const savedObject of objectsToResolve) {
|
||||
for (const reference of savedObject.references || []) {
|
||||
if (refReplacementsMap[`${reference.type}:${reference.id}`]) {
|
||||
reference.id = refReplacementsMap[`${reference.type}:${reference.id}`];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (objectsToResolve.length) {
|
||||
const bulkCreateResult = await savedObjectsClient.bulkCreate(objectsToResolve, {
|
||||
overwrite: true,
|
||||
});
|
||||
errors = extractErrors(bulkCreateResult.saved_objects);
|
||||
}
|
||||
|
||||
return {
|
||||
success: errors.length === 0,
|
||||
successCount: objectsToResolve.length - errors.length,
|
||||
...(errors.length ? { errors } : {}),
|
||||
};
|
||||
}
|
|
@ -1,815 +0,0 @@
|
|||
/*
|
||||
* Licensed to Elasticsearch B.V. under one or more contributor
|
||||
* license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright
|
||||
* ownership. Elasticsearch B.V. licenses this file to you under
|
||||
* the Apache License, Version 2.0 (the "License"); you may
|
||||
* not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
import { Readable } from 'stream';
|
||||
import {
|
||||
createConcatStream,
|
||||
createListStream,
|
||||
createPromiseFromStreams,
|
||||
} from '../../../utils/streams';
|
||||
import { SavedObject } from '../service';
|
||||
import {
|
||||
collectSavedObjects,
|
||||
createLimitStream,
|
||||
createObjectsFilter,
|
||||
extractErrors,
|
||||
importSavedObjects,
|
||||
resolveImportConflicts,
|
||||
} from './import';
|
||||
|
||||
describe('extractErrors()', () => {
|
||||
test('returns empty array when no errors exist', () => {
|
||||
const savedObjects: SavedObject[] = [];
|
||||
const result = extractErrors(savedObjects);
|
||||
expect(result).toMatchInlineSnapshot(`Array []`);
|
||||
});
|
||||
|
||||
test('extracts errors from saved objects', () => {
|
||||
const savedObjects: SavedObject[] = [
|
||||
{
|
||||
id: '1',
|
||||
type: 'dashboard',
|
||||
attributes: {},
|
||||
references: [],
|
||||
},
|
||||
{
|
||||
id: '2',
|
||||
type: 'dashboard',
|
||||
attributes: {},
|
||||
references: [],
|
||||
error: {
|
||||
statusCode: 409,
|
||||
message: 'Conflict',
|
||||
},
|
||||
},
|
||||
];
|
||||
const result = extractErrors(savedObjects);
|
||||
expect(result).toMatchInlineSnapshot(`
|
||||
Array [
|
||||
Object {
|
||||
"error": Object {
|
||||
"message": "Conflict",
|
||||
"statusCode": 409,
|
||||
},
|
||||
"id": "2",
|
||||
"type": "dashboard",
|
||||
},
|
||||
]
|
||||
`);
|
||||
});
|
||||
});
|
||||
|
||||
describe('createLimitStream()', () => {
|
||||
test('limit of 5 allows 5 items through', async () => {
|
||||
await createPromiseFromStreams([createListStream([1, 2, 3, 4, 5]), createLimitStream(5)]);
|
||||
});
|
||||
|
||||
test('limit of 5 errors out when 6 items are through', async () => {
|
||||
await expect(
|
||||
createPromiseFromStreams([createListStream([1, 2, 3, 4, 5, 6]), createLimitStream(5)])
|
||||
).rejects.toThrowErrorMatchingInlineSnapshot(`"Can't import more than 5 objects"`);
|
||||
});
|
||||
|
||||
test('send the values on the output stream', async () => {
|
||||
const result = await createPromiseFromStreams([
|
||||
createListStream([1, 2, 3]),
|
||||
createLimitStream(3),
|
||||
createConcatStream([]),
|
||||
]);
|
||||
|
||||
expect(result).toMatchInlineSnapshot(`
|
||||
Array [
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
]
|
||||
`);
|
||||
});
|
||||
});
|
||||
|
||||
describe('collectSavedObjects()', () => {
|
||||
test('collects nothing when stream is empty', async () => {
|
||||
const readStream = new Readable({
|
||||
read() {
|
||||
this.push(null);
|
||||
},
|
||||
});
|
||||
const objects = await collectSavedObjects(readStream, 10);
|
||||
expect(objects).toMatchInlineSnapshot(`Array []`);
|
||||
});
|
||||
|
||||
test('collects objects from stream', async () => {
|
||||
const readStream = new Readable({
|
||||
read() {
|
||||
this.push('{"foo":true}');
|
||||
this.push(null);
|
||||
},
|
||||
});
|
||||
const objects = await collectSavedObjects(readStream, 1);
|
||||
expect(objects).toMatchInlineSnapshot(`
|
||||
Array [
|
||||
Object {
|
||||
"foo": true,
|
||||
},
|
||||
]
|
||||
`);
|
||||
});
|
||||
|
||||
test('filters out empty lines', async () => {
|
||||
const readStream = new Readable({
|
||||
read() {
|
||||
this.push('{"foo":true}\n\n');
|
||||
this.push(null);
|
||||
},
|
||||
});
|
||||
const objects = await collectSavedObjects(readStream, 1);
|
||||
expect(objects).toMatchInlineSnapshot(`
|
||||
Array [
|
||||
Object {
|
||||
"foo": true,
|
||||
},
|
||||
]
|
||||
`);
|
||||
});
|
||||
|
||||
test('throws error when object limit is reached', async () => {
|
||||
const readStream = new Readable({
|
||||
read() {
|
||||
this.push('{"foo":true}\n');
|
||||
this.push('{"bar":true}\n');
|
||||
this.push(null);
|
||||
},
|
||||
});
|
||||
await expect(collectSavedObjects(readStream, 1)).rejects.toThrowErrorMatchingInlineSnapshot(
|
||||
`"Can't import more than 1 objects"`
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
describe('createObjectsFilter()', () => {
|
||||
test('filters should return false when contains empty parameters', () => {
|
||||
const fn = createObjectsFilter([], [], []);
|
||||
expect(fn({ type: 'a', id: '1', attributes: {}, references: [] })).toEqual(false);
|
||||
});
|
||||
|
||||
test('filters should exclude skips', () => {
|
||||
const fn = createObjectsFilter(
|
||||
[
|
||||
{
|
||||
type: 'a',
|
||||
id: '1',
|
||||
},
|
||||
],
|
||||
[],
|
||||
[
|
||||
{
|
||||
type: 'b',
|
||||
from: '1',
|
||||
to: '2',
|
||||
},
|
||||
]
|
||||
);
|
||||
expect(
|
||||
fn({
|
||||
type: 'a',
|
||||
id: '1',
|
||||
attributes: {},
|
||||
references: [{ name: 'ref_0', type: 'b', id: '1' }],
|
||||
})
|
||||
).toEqual(false);
|
||||
expect(
|
||||
fn({
|
||||
type: 'a',
|
||||
id: '2',
|
||||
attributes: {},
|
||||
references: [{ name: 'ref_0', type: 'b', id: '1' }],
|
||||
})
|
||||
).toEqual(true);
|
||||
});
|
||||
|
||||
test('filter should include references to replace', () => {
|
||||
const fn = createObjectsFilter(
|
||||
[],
|
||||
[],
|
||||
[
|
||||
{
|
||||
type: 'b',
|
||||
from: '1',
|
||||
to: '2',
|
||||
},
|
||||
]
|
||||
);
|
||||
expect(
|
||||
fn({
|
||||
type: 'a',
|
||||
id: '1',
|
||||
attributes: {},
|
||||
references: [
|
||||
{
|
||||
name: 'ref_0',
|
||||
type: 'b',
|
||||
id: '1',
|
||||
},
|
||||
],
|
||||
})
|
||||
).toEqual(true);
|
||||
expect(
|
||||
fn({
|
||||
type: 'a',
|
||||
id: '1',
|
||||
attributes: {},
|
||||
references: [
|
||||
{
|
||||
name: 'ref_0',
|
||||
type: 'b',
|
||||
id: '2',
|
||||
},
|
||||
],
|
||||
})
|
||||
).toEqual(false);
|
||||
});
|
||||
|
||||
test('filter should include objects to overwrite', () => {
|
||||
const fn = createObjectsFilter(
|
||||
[],
|
||||
[
|
||||
{
|
||||
type: 'a',
|
||||
id: '1',
|
||||
},
|
||||
],
|
||||
[]
|
||||
);
|
||||
expect(fn({ type: 'a', id: '1', attributes: {}, references: [] })).toEqual(true);
|
||||
expect(fn({ type: 'a', id: '2', attributes: {}, references: [] })).toEqual(false);
|
||||
});
|
||||
|
||||
test('filter should work with skips, overwrites and replaceReferences', () => {
|
||||
const fn = createObjectsFilter(
|
||||
[
|
||||
{
|
||||
type: 'a',
|
||||
id: '1',
|
||||
},
|
||||
],
|
||||
[
|
||||
{
|
||||
type: 'a',
|
||||
id: '2',
|
||||
},
|
||||
],
|
||||
[
|
||||
{
|
||||
type: 'b',
|
||||
from: '1',
|
||||
to: '2',
|
||||
},
|
||||
]
|
||||
);
|
||||
expect(
|
||||
fn({
|
||||
type: 'a',
|
||||
id: '1',
|
||||
attributes: {},
|
||||
references: [
|
||||
{
|
||||
name: 'ref_0',
|
||||
type: 'b',
|
||||
id: '1',
|
||||
},
|
||||
],
|
||||
})
|
||||
).toEqual(false);
|
||||
expect(
|
||||
fn({
|
||||
type: 'a',
|
||||
id: '2',
|
||||
attributes: {},
|
||||
references: [
|
||||
{
|
||||
name: 'ref_0',
|
||||
type: 'b',
|
||||
id: '2',
|
||||
},
|
||||
],
|
||||
})
|
||||
).toEqual(true);
|
||||
expect(
|
||||
fn({
|
||||
type: 'a',
|
||||
id: '3',
|
||||
attributes: {},
|
||||
references: [
|
||||
{
|
||||
name: 'ref_0',
|
||||
type: 'b',
|
||||
id: '1',
|
||||
},
|
||||
],
|
||||
})
|
||||
).toEqual(true);
|
||||
});
|
||||
});
|
||||
|
||||
describe('importSavedObjects()', () => {
|
||||
const savedObjects: SavedObject[] = [
|
||||
{
|
||||
id: '1',
|
||||
type: 'index-pattern',
|
||||
attributes: {},
|
||||
references: [],
|
||||
},
|
||||
{
|
||||
id: '2',
|
||||
type: 'search',
|
||||
attributes: {},
|
||||
references: [],
|
||||
},
|
||||
{
|
||||
id: '3',
|
||||
type: 'visualization',
|
||||
attributes: {},
|
||||
references: [],
|
||||
},
|
||||
{
|
||||
id: '4',
|
||||
type: 'dashboard',
|
||||
attributes: {},
|
||||
references: [],
|
||||
},
|
||||
];
|
||||
const savedObjectsClient = {
|
||||
errors: {} as any,
|
||||
bulkCreate: jest.fn(),
|
||||
bulkGet: jest.fn(),
|
||||
create: jest.fn(),
|
||||
delete: jest.fn(),
|
||||
find: jest.fn(),
|
||||
get: jest.fn(),
|
||||
update: jest.fn(),
|
||||
};
|
||||
|
||||
beforeEach(() => {
|
||||
savedObjectsClient.bulkCreate.mockReset();
|
||||
savedObjectsClient.bulkGet.mockReset();
|
||||
savedObjectsClient.create.mockReset();
|
||||
savedObjectsClient.delete.mockReset();
|
||||
savedObjectsClient.find.mockReset();
|
||||
savedObjectsClient.get.mockReset();
|
||||
savedObjectsClient.update.mockReset();
|
||||
});
|
||||
|
||||
test('calls bulkCreate without overwrite', async () => {
|
||||
const readStream = new Readable({
|
||||
read() {
|
||||
savedObjects.forEach(obj => this.push(JSON.stringify(obj) + '\n'));
|
||||
this.push(null);
|
||||
},
|
||||
});
|
||||
savedObjectsClient.bulkCreate.mockResolvedValue({
|
||||
saved_objects: savedObjects,
|
||||
});
|
||||
const result = await importSavedObjects({
|
||||
readStream,
|
||||
objectLimit: 4,
|
||||
overwrite: false,
|
||||
savedObjectsClient,
|
||||
});
|
||||
expect(result).toMatchInlineSnapshot(`
|
||||
Object {
|
||||
"success": true,
|
||||
"successCount": 4,
|
||||
}
|
||||
`);
|
||||
expect(savedObjectsClient.bulkCreate).toMatchInlineSnapshot(`
|
||||
[MockFunction] {
|
||||
"calls": Array [
|
||||
Array [
|
||||
Array [
|
||||
Object {
|
||||
"attributes": Object {},
|
||||
"id": "1",
|
||||
"references": Array [],
|
||||
"type": "index-pattern",
|
||||
},
|
||||
Object {
|
||||
"attributes": Object {},
|
||||
"id": "2",
|
||||
"references": Array [],
|
||||
"type": "search",
|
||||
},
|
||||
Object {
|
||||
"attributes": Object {},
|
||||
"id": "3",
|
||||
"references": Array [],
|
||||
"type": "visualization",
|
||||
},
|
||||
Object {
|
||||
"attributes": Object {},
|
||||
"id": "4",
|
||||
"references": Array [],
|
||||
"type": "dashboard",
|
||||
},
|
||||
],
|
||||
Object {
|
||||
"overwrite": false,
|
||||
},
|
||||
],
|
||||
],
|
||||
"results": Array [
|
||||
Object {
|
||||
"type": "return",
|
||||
"value": Promise {},
|
||||
},
|
||||
],
|
||||
}
|
||||
`);
|
||||
});
|
||||
|
||||
test('calls bulkCreate with overwrite', async () => {
|
||||
const readStream = new Readable({
|
||||
read() {
|
||||
savedObjects.forEach(obj => this.push(JSON.stringify(obj) + '\n'));
|
||||
this.push(null);
|
||||
},
|
||||
});
|
||||
savedObjectsClient.bulkCreate.mockResolvedValue({
|
||||
saved_objects: savedObjects,
|
||||
});
|
||||
const result = await importSavedObjects({
|
||||
readStream,
|
||||
objectLimit: 4,
|
||||
overwrite: true,
|
||||
savedObjectsClient,
|
||||
});
|
||||
expect(result).toMatchInlineSnapshot(`
|
||||
Object {
|
||||
"success": true,
|
||||
"successCount": 4,
|
||||
}
|
||||
`);
|
||||
expect(savedObjectsClient.bulkCreate).toMatchInlineSnapshot(`
|
||||
[MockFunction] {
|
||||
"calls": Array [
|
||||
Array [
|
||||
Array [
|
||||
Object {
|
||||
"attributes": Object {},
|
||||
"id": "1",
|
||||
"references": Array [],
|
||||
"type": "index-pattern",
|
||||
},
|
||||
Object {
|
||||
"attributes": Object {},
|
||||
"id": "2",
|
||||
"references": Array [],
|
||||
"type": "search",
|
||||
},
|
||||
Object {
|
||||
"attributes": Object {},
|
||||
"id": "3",
|
||||
"references": Array [],
|
||||
"type": "visualization",
|
||||
},
|
||||
Object {
|
||||
"attributes": Object {},
|
||||
"id": "4",
|
||||
"references": Array [],
|
||||
"type": "dashboard",
|
||||
},
|
||||
],
|
||||
Object {
|
||||
"overwrite": true,
|
||||
},
|
||||
],
|
||||
],
|
||||
"results": Array [
|
||||
Object {
|
||||
"type": "return",
|
||||
"value": Promise {},
|
||||
},
|
||||
],
|
||||
}
|
||||
`);
|
||||
});
|
||||
|
||||
test('extracts errors', async () => {
|
||||
const readStream = new Readable({
|
||||
read() {
|
||||
savedObjects.forEach(obj => this.push(JSON.stringify(obj) + '\n'));
|
||||
this.push(null);
|
||||
},
|
||||
});
|
||||
savedObjectsClient.bulkCreate.mockResolvedValue({
|
||||
saved_objects: savedObjects.map(savedObject => ({
|
||||
type: savedObject.type,
|
||||
id: savedObject.id,
|
||||
error: {
|
||||
statusCode: 409,
|
||||
message: 'conflict',
|
||||
},
|
||||
})),
|
||||
});
|
||||
const result = await importSavedObjects({
|
||||
readStream,
|
||||
objectLimit: 4,
|
||||
overwrite: false,
|
||||
savedObjectsClient,
|
||||
});
|
||||
expect(result).toMatchInlineSnapshot(`
|
||||
Object {
|
||||
"errors": Array [
|
||||
Object {
|
||||
"error": Object {
|
||||
"message": "conflict",
|
||||
"statusCode": 409,
|
||||
},
|
||||
"id": "1",
|
||||
"type": "index-pattern",
|
||||
},
|
||||
Object {
|
||||
"error": Object {
|
||||
"message": "conflict",
|
||||
"statusCode": 409,
|
||||
},
|
||||
"id": "2",
|
||||
"type": "search",
|
||||
},
|
||||
Object {
|
||||
"error": Object {
|
||||
"message": "conflict",
|
||||
"statusCode": 409,
|
||||
},
|
||||
"id": "3",
|
||||
"type": "visualization",
|
||||
},
|
||||
Object {
|
||||
"error": Object {
|
||||
"message": "conflict",
|
||||
"statusCode": 409,
|
||||
},
|
||||
"id": "4",
|
||||
"type": "dashboard",
|
||||
},
|
||||
],
|
||||
"success": false,
|
||||
"successCount": 0,
|
||||
}
|
||||
`);
|
||||
});
|
||||
});
|
||||
|
||||
describe('resolveImportConflicts()', () => {
|
||||
const savedObjects: SavedObject[] = [
|
||||
{
|
||||
id: '1',
|
||||
type: 'index-pattern',
|
||||
attributes: {},
|
||||
references: [],
|
||||
},
|
||||
{
|
||||
id: '2',
|
||||
type: 'search',
|
||||
attributes: {},
|
||||
references: [],
|
||||
},
|
||||
{
|
||||
id: '3',
|
||||
type: 'visualization',
|
||||
attributes: {},
|
||||
references: [],
|
||||
},
|
||||
{
|
||||
id: '4',
|
||||
type: 'dashboard',
|
||||
attributes: {},
|
||||
references: [
|
||||
{
|
||||
name: 'panel_0',
|
||||
type: 'visualization',
|
||||
id: '3',
|
||||
},
|
||||
],
|
||||
},
|
||||
];
|
||||
const savedObjectsClient = {
|
||||
errors: {} as any,
|
||||
bulkCreate: jest.fn(),
|
||||
bulkGet: jest.fn(),
|
||||
create: jest.fn(),
|
||||
delete: jest.fn(),
|
||||
find: jest.fn(),
|
||||
get: jest.fn(),
|
||||
update: jest.fn(),
|
||||
};
|
||||
|
||||
beforeEach(() => {
|
||||
savedObjectsClient.bulkCreate.mockReset();
|
||||
savedObjectsClient.bulkGet.mockReset();
|
||||
savedObjectsClient.create.mockReset();
|
||||
savedObjectsClient.delete.mockReset();
|
||||
savedObjectsClient.find.mockReset();
|
||||
savedObjectsClient.get.mockReset();
|
||||
savedObjectsClient.update.mockReset();
|
||||
});
|
||||
|
||||
test('works with empty parameters', async () => {
|
||||
const readStream = new Readable({
|
||||
read() {
|
||||
savedObjects.forEach(obj => this.push(JSON.stringify(obj) + '\n'));
|
||||
this.push(null);
|
||||
},
|
||||
});
|
||||
savedObjectsClient.bulkCreate.mockResolvedValue({
|
||||
saved_objects: savedObjects,
|
||||
});
|
||||
const result = await resolveImportConflicts({
|
||||
readStream,
|
||||
objectLimit: 4,
|
||||
skips: [],
|
||||
overwrites: [],
|
||||
savedObjectsClient,
|
||||
replaceReferences: [],
|
||||
});
|
||||
expect(result).toMatchInlineSnapshot(`
|
||||
Object {
|
||||
"success": true,
|
||||
"successCount": 0,
|
||||
}
|
||||
`);
|
||||
expect(savedObjectsClient.bulkCreate).toMatchInlineSnapshot(`[MockFunction]`);
|
||||
});
|
||||
|
||||
test('works with skips', async () => {
|
||||
const readStream = new Readable({
|
||||
read() {
|
||||
savedObjects.forEach(obj => this.push(JSON.stringify(obj) + '\n'));
|
||||
this.push(null);
|
||||
},
|
||||
});
|
||||
savedObjectsClient.bulkCreate.mockResolvedValue({
|
||||
saved_objects: savedObjects,
|
||||
});
|
||||
const result = await resolveImportConflicts({
|
||||
readStream,
|
||||
objectLimit: 4,
|
||||
skips: [
|
||||
{
|
||||
type: 'dashboard',
|
||||
id: '4',
|
||||
},
|
||||
],
|
||||
overwrites: [],
|
||||
savedObjectsClient,
|
||||
replaceReferences: [
|
||||
{
|
||||
type: 'visualization',
|
||||
from: '3',
|
||||
to: '30',
|
||||
},
|
||||
],
|
||||
});
|
||||
expect(result).toMatchInlineSnapshot(`
|
||||
Object {
|
||||
"success": true,
|
||||
"successCount": 0,
|
||||
}
|
||||
`);
|
||||
expect(savedObjectsClient.bulkCreate).toMatchInlineSnapshot(`[MockFunction]`);
|
||||
});
|
||||
|
||||
test('works with overwrites', async () => {
|
||||
const readStream = new Readable({
|
||||
read() {
|
||||
savedObjects.forEach(obj => this.push(JSON.stringify(obj) + '\n'));
|
||||
this.push(null);
|
||||
},
|
||||
});
|
||||
savedObjectsClient.bulkCreate.mockResolvedValue({
|
||||
saved_objects: savedObjects,
|
||||
});
|
||||
const result = await resolveImportConflicts({
|
||||
readStream,
|
||||
objectLimit: 4,
|
||||
skips: [],
|
||||
overwrites: [
|
||||
{
|
||||
type: 'index-pattern',
|
||||
id: '1',
|
||||
},
|
||||
],
|
||||
savedObjectsClient,
|
||||
replaceReferences: [],
|
||||
});
|
||||
expect(result).toMatchInlineSnapshot(`
|
||||
Object {
|
||||
"success": true,
|
||||
"successCount": 1,
|
||||
}
|
||||
`);
|
||||
expect(savedObjectsClient.bulkCreate).toMatchInlineSnapshot(`
|
||||
[MockFunction] {
|
||||
"calls": Array [
|
||||
Array [
|
||||
Array [
|
||||
Object {
|
||||
"attributes": Object {},
|
||||
"id": "1",
|
||||
"references": Array [],
|
||||
"type": "index-pattern",
|
||||
},
|
||||
],
|
||||
Object {
|
||||
"overwrite": true,
|
||||
},
|
||||
],
|
||||
],
|
||||
"results": Array [
|
||||
Object {
|
||||
"type": "return",
|
||||
"value": Promise {},
|
||||
},
|
||||
],
|
||||
}
|
||||
`);
|
||||
});
|
||||
|
||||
test('works wtih replaceReferences', async () => {
|
||||
const readStream = new Readable({
|
||||
read() {
|
||||
savedObjects.forEach(obj => this.push(JSON.stringify(obj) + '\n'));
|
||||
this.push(null);
|
||||
},
|
||||
});
|
||||
savedObjectsClient.bulkCreate.mockResolvedValue({
|
||||
saved_objects: savedObjects,
|
||||
});
|
||||
const result = await resolveImportConflicts({
|
||||
readStream,
|
||||
objectLimit: 4,
|
||||
skips: [],
|
||||
overwrites: [],
|
||||
savedObjectsClient,
|
||||
replaceReferences: [
|
||||
{
|
||||
type: 'visualization',
|
||||
from: '3',
|
||||
to: '13',
|
||||
},
|
||||
],
|
||||
});
|
||||
expect(result).toMatchInlineSnapshot(`
|
||||
Object {
|
||||
"success": true,
|
||||
"successCount": 1,
|
||||
}
|
||||
`);
|
||||
expect(savedObjectsClient.bulkCreate).toMatchInlineSnapshot(`
|
||||
[MockFunction] {
|
||||
"calls": Array [
|
||||
Array [
|
||||
Array [
|
||||
Object {
|
||||
"attributes": Object {},
|
||||
"id": "4",
|
||||
"references": Array [
|
||||
Object {
|
||||
"id": "13",
|
||||
"name": "panel_0",
|
||||
"type": "visualization",
|
||||
},
|
||||
],
|
||||
"type": "dashboard",
|
||||
},
|
||||
],
|
||||
Object {
|
||||
"overwrite": true,
|
||||
},
|
||||
],
|
||||
],
|
||||
"results": Array [
|
||||
Object {
|
||||
"type": "return",
|
||||
"value": Promise {},
|
||||
},
|
||||
],
|
||||
}
|
||||
`);
|
||||
});
|
||||
});
|
|
@ -1,218 +0,0 @@
|
|||
/*
|
||||
* Licensed to Elasticsearch B.V. under one or more contributor
|
||||
* license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright
|
||||
* ownership. Elasticsearch B.V. licenses this file to you under
|
||||
* the Apache License, Version 2.0 (the "License"); you may
|
||||
* not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
import Boom from 'boom';
|
||||
import { Readable, Transform } from 'stream';
|
||||
import {
|
||||
createConcatStream,
|
||||
createFilterStream,
|
||||
createMapStream,
|
||||
createPromiseFromStreams,
|
||||
createSplitStream,
|
||||
} from '../../../utils/streams';
|
||||
import { SavedObject, SavedObjectsClient } from '../service';
|
||||
|
||||
interface CustomError {
|
||||
id: string;
|
||||
type: string;
|
||||
error: {
|
||||
message: string;
|
||||
statusCode: number;
|
||||
};
|
||||
}
|
||||
|
||||
interface ImportResponse {
|
||||
success: boolean;
|
||||
successCount: number;
|
||||
errors?: CustomError[];
|
||||
}
|
||||
|
||||
interface ImportSavedObjectsOptions {
|
||||
readStream: Readable;
|
||||
objectLimit: number;
|
||||
overwrite: boolean;
|
||||
savedObjectsClient: SavedObjectsClient;
|
||||
}
|
||||
|
||||
interface ResolveImportConflictsOptions {
|
||||
readStream: Readable;
|
||||
objectLimit: number;
|
||||
savedObjectsClient: SavedObjectsClient;
|
||||
overwrites: Array<{
|
||||
type: string;
|
||||
id: string;
|
||||
}>;
|
||||
replaceReferences: Array<{
|
||||
type: string;
|
||||
from: string;
|
||||
to: string;
|
||||
}>;
|
||||
skips: Array<{
|
||||
type: string;
|
||||
id: string;
|
||||
}>;
|
||||
}
|
||||
|
||||
export function extractErrors(savedObjects: SavedObject[]) {
|
||||
const errors: CustomError[] = [];
|
||||
for (const savedObject of savedObjects) {
|
||||
if (savedObject.error) {
|
||||
errors.push({
|
||||
id: savedObject.id,
|
||||
type: savedObject.type,
|
||||
error: savedObject.error,
|
||||
});
|
||||
}
|
||||
}
|
||||
return errors;
|
||||
}
|
||||
|
||||
export function createLimitStream(limit: number) {
|
||||
let counter = 0;
|
||||
return new Transform({
|
||||
objectMode: true,
|
||||
async transform(obj, enc, done) {
|
||||
if (counter >= limit) {
|
||||
return done(Boom.badRequest(`Can't import more than ${limit} objects`));
|
||||
}
|
||||
counter++;
|
||||
done(undefined, obj);
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
export async function collectSavedObjects(
|
||||
readStream: Readable,
|
||||
objectLimit: number,
|
||||
filter?: (obj: SavedObject) => boolean
|
||||
): Promise<SavedObject[]> {
|
||||
return (await createPromiseFromStreams([
|
||||
readStream,
|
||||
createSplitStream('\n'),
|
||||
createMapStream((str: string) => {
|
||||
if (str && str !== '') {
|
||||
return JSON.parse(str);
|
||||
}
|
||||
}),
|
||||
createFilterStream<SavedObject>(obj => !!obj),
|
||||
createLimitStream(objectLimit),
|
||||
createFilterStream<SavedObject>(obj => (filter ? filter(obj) : true)),
|
||||
createConcatStream([]),
|
||||
])) as SavedObject[];
|
||||
}
|
||||
|
||||
export function createObjectsFilter(
|
||||
skips: Array<{
|
||||
type: string;
|
||||
id: string;
|
||||
}>,
|
||||
overwrites: Array<{
|
||||
type: string;
|
||||
id: string;
|
||||
}>,
|
||||
replaceReferences: Array<{
|
||||
type: string;
|
||||
from: string;
|
||||
to: string;
|
||||
}>
|
||||
) {
|
||||
const refReplacements = replaceReferences.map(ref => `${ref.type}:${ref.from}`);
|
||||
return (obj: SavedObject) => {
|
||||
if (skips.some(skipObj => skipObj.type === obj.type && skipObj.id === obj.id)) {
|
||||
return false;
|
||||
}
|
||||
if (
|
||||
overwrites.some(overwriteObj => overwriteObj.type === obj.type && overwriteObj.id === obj.id)
|
||||
) {
|
||||
return true;
|
||||
}
|
||||
for (const reference of obj.references || []) {
|
||||
if (refReplacements.includes(`${reference.type}:${reference.id}`)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
};
|
||||
}
|
||||
|
||||
export async function importSavedObjects({
|
||||
readStream,
|
||||
objectLimit,
|
||||
overwrite,
|
||||
savedObjectsClient,
|
||||
}: ImportSavedObjectsOptions): Promise<ImportResponse> {
|
||||
const objectsToImport = await collectSavedObjects(readStream, objectLimit);
|
||||
|
||||
if (objectsToImport.length === 0) {
|
||||
return {
|
||||
success: true,
|
||||
successCount: 0,
|
||||
};
|
||||
}
|
||||
|
||||
const bulkCreateResult = await savedObjectsClient.bulkCreate(objectsToImport, {
|
||||
overwrite,
|
||||
});
|
||||
const errors = extractErrors(bulkCreateResult.saved_objects);
|
||||
|
||||
return {
|
||||
success: errors.length === 0,
|
||||
successCount: objectsToImport.length - errors.length,
|
||||
...(errors.length ? { errors } : {}),
|
||||
};
|
||||
}
|
||||
|
||||
export async function resolveImportConflicts({
|
||||
readStream,
|
||||
objectLimit,
|
||||
skips,
|
||||
overwrites,
|
||||
savedObjectsClient,
|
||||
replaceReferences,
|
||||
}: ResolveImportConflictsOptions): Promise<ImportResponse> {
|
||||
let errors: CustomError[] = [];
|
||||
const filter = createObjectsFilter(skips, overwrites, replaceReferences);
|
||||
const objectsToResolve = await collectSavedObjects(readStream, objectLimit, filter);
|
||||
|
||||
// Replace references
|
||||
const refReplacementsMap: Record<string, string> = {};
|
||||
for (const { type, to, from } of replaceReferences) {
|
||||
refReplacementsMap[`${type}:${from}`] = to;
|
||||
}
|
||||
for (const savedObject of objectsToResolve) {
|
||||
for (const reference of savedObject.references || []) {
|
||||
if (refReplacementsMap[`${reference.type}:${reference.id}`]) {
|
||||
reference.id = refReplacementsMap[`${reference.type}:${reference.id}`];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (objectsToResolve.length) {
|
||||
const bulkCreateResult = await savedObjectsClient.bulkCreate(objectsToResolve, {
|
||||
overwrite: true,
|
||||
});
|
||||
errors = extractErrors(bulkCreateResult.saved_objects);
|
||||
}
|
||||
|
||||
return {
|
||||
success: errors.length === 0,
|
||||
successCount: objectsToResolve.length - errors.length,
|
||||
...(errors.length ? { errors } : {}),
|
||||
};
|
||||
}
|
|
@ -21,7 +21,7 @@ import Hapi from 'hapi';
|
|||
import Joi from 'joi';
|
||||
import stringify from 'json-stable-stringify';
|
||||
import { SavedObjectsClient } from '../';
|
||||
import { getSortedObjectsForExport } from '../lib';
|
||||
import { getSortedObjectsForExport } from '../export';
|
||||
import { Prerequisites } from './types';
|
||||
|
||||
const ALLOWED_TYPES = ['index-pattern', 'search', 'visualization', 'dashboard'];
|
||||
|
|
|
@ -23,7 +23,7 @@ import Joi from 'joi';
|
|||
import { extname } from 'path';
|
||||
import { Readable } from 'stream';
|
||||
import { SavedObjectsClient } from '../';
|
||||
import { importSavedObjects } from '../lib';
|
||||
import { importSavedObjects } from '../import';
|
||||
import { Prerequisites, WithoutQueryAndParams } from './types';
|
||||
|
||||
interface HapiReadableStream extends Readable {
|
||||
|
|
|
@ -23,7 +23,7 @@ import Joi from 'joi';
|
|||
import { extname } from 'path';
|
||||
import { Readable } from 'stream';
|
||||
import { SavedObjectsClient } from '../';
|
||||
import { resolveImportConflicts } from '../lib';
|
||||
import { resolveImportConflicts } from '../import';
|
||||
import { Prerequisites } from './types';
|
||||
|
||||
interface HapiReadableStream extends Readable {
|
||||
|
|
|
@ -144,18 +144,12 @@ exports[`InspectorPanel should render as expected 1`] = `
|
|||
>
|
||||
<EuiFlexGroup
|
||||
alignItems="center"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="spaceBetween"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<div
|
||||
className="euiFlexGroup euiFlexGroup--gutterLarge euiFlexGroup--alignItemsCenter euiFlexGroup--justifyContentSpaceBetween euiFlexGroup--directionRow euiFlexGroup--responsive"
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<div
|
||||
|
@ -174,7 +168,6 @@ exports[`InspectorPanel should render as expected 1`] = `
|
|||
</div>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<div
|
||||
|
|
|
@ -2,19 +2,11 @@
|
|||
|
||||
exports[`QueryBar Should disable autoFocus on EuiFieldText when disableAutoFocus prop is true 1`] = `
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
className="kbnQueryBar"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="s"
|
||||
justifyContent="flexStart"
|
||||
responsive={false}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexItem>
|
||||
<EuiOutsideClickDetector
|
||||
onOutsideClick={[Function]}
|
||||
>
|
||||
|
@ -83,7 +75,6 @@ exports[`QueryBar Should disable autoFocus on EuiFieldText when disableAutoFocus
|
|||
</EuiOutsideClickDetector>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiSuperUpdateButton
|
||||
|
@ -99,19 +90,11 @@ exports[`QueryBar Should disable autoFocus on EuiFieldText when disableAutoFocus
|
|||
|
||||
exports[`QueryBar Should pass the query language to the language switcher 1`] = `
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
className="kbnQueryBar"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="s"
|
||||
justifyContent="flexStart"
|
||||
responsive={false}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexItem>
|
||||
<EuiOutsideClickDetector
|
||||
onOutsideClick={[Function]}
|
||||
>
|
||||
|
@ -180,7 +163,6 @@ exports[`QueryBar Should pass the query language to the language switcher 1`] =
|
|||
</EuiOutsideClickDetector>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiSuperUpdateButton
|
||||
|
@ -196,19 +178,11 @@ exports[`QueryBar Should pass the query language to the language switcher 1`] =
|
|||
|
||||
exports[`QueryBar Should render the given query 1`] = `
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
className="kbnQueryBar"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="s"
|
||||
justifyContent="flexStart"
|
||||
responsive={false}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexItem>
|
||||
<EuiOutsideClickDetector
|
||||
onOutsideClick={[Function]}
|
||||
>
|
||||
|
@ -277,7 +251,6 @@ exports[`QueryBar Should render the given query 1`] = `
|
|||
</EuiOutsideClickDetector>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiSuperUpdateButton
|
||||
|
|
|
@ -38,18 +38,9 @@ exports[`render 1`] = `
|
|||
"data-test-subj": "exportAsSnapshot",
|
||||
"id": "snapshot",
|
||||
"label": <EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="none"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexItem>
|
||||
<FormattedMessage
|
||||
defaultMessage="Snapshot"
|
||||
id="common.ui.share.urlPanel.snapshotLabel"
|
||||
|
@ -57,7 +48,6 @@ exports[`render 1`] = `
|
|||
/>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiIconTip
|
||||
|
@ -85,18 +75,9 @@ exports[`render 1`] = `
|
|||
"disabled": true,
|
||||
"id": "savedObject",
|
||||
"label": <EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="none"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexItem>
|
||||
<FormattedMessage
|
||||
defaultMessage="Saved object"
|
||||
id="common.ui.share.urlPanel.savedObjectLabel"
|
||||
|
@ -104,7 +85,6 @@ exports[`render 1`] = `
|
|||
/>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiIconTip
|
||||
|
@ -137,18 +117,9 @@ exports[`render 1`] = `
|
|||
labelType="label"
|
||||
>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="none"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexItem>
|
||||
<EuiSwitch
|
||||
checked={false}
|
||||
data-test-subj="useShortUrl"
|
||||
|
@ -163,7 +134,6 @@ exports[`render 1`] = `
|
|||
/>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiIconTip
|
||||
|
@ -221,18 +191,9 @@ exports[`should enable saved object export option when objectId is provided 1`]
|
|||
"data-test-subj": "exportAsSnapshot",
|
||||
"id": "snapshot",
|
||||
"label": <EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="none"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexItem>
|
||||
<FormattedMessage
|
||||
defaultMessage="Snapshot"
|
||||
id="common.ui.share.urlPanel.snapshotLabel"
|
||||
|
@ -240,7 +201,6 @@ exports[`should enable saved object export option when objectId is provided 1`]
|
|||
/>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiIconTip
|
||||
|
@ -268,18 +228,9 @@ exports[`should enable saved object export option when objectId is provided 1`]
|
|||
"disabled": false,
|
||||
"id": "savedObject",
|
||||
"label": <EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="none"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexItem>
|
||||
<FormattedMessage
|
||||
defaultMessage="Saved object"
|
||||
id="common.ui.share.urlPanel.savedObjectLabel"
|
||||
|
@ -287,7 +238,6 @@ exports[`should enable saved object export option when objectId is provided 1`]
|
|||
/>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiIconTip
|
||||
|
@ -320,18 +270,9 @@ exports[`should enable saved object export option when objectId is provided 1`]
|
|||
labelType="label"
|
||||
>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="none"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexItem>
|
||||
<EuiSwitch
|
||||
checked={false}
|
||||
data-test-subj="useShortUrl"
|
||||
|
@ -346,7 +287,6 @@ exports[`should enable saved object export option when objectId is provided 1`]
|
|||
/>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiIconTip
|
||||
|
|
|
@ -1,20 +1,20 @@
|
|||
//== Colors
|
||||
//
|
||||
//## Gray and brand colors for use across Bootstrap.
|
||||
@white: #000;
|
||||
@blue: #4DA1C0;
|
||||
@white: #1D1E24;
|
||||
@blue: #1BA9F5;
|
||||
|
||||
@brand-primary: #F5F5F5;
|
||||
@brand-success: #017D73;
|
||||
@brand-primary: #F5F7FA;
|
||||
@brand-success: #7DE2D1;
|
||||
@brand-info: @blue;
|
||||
@brand-warning: #C06C4C;
|
||||
@brand-danger: #BF4D4D;
|
||||
@brand-warning: #FF977A;
|
||||
@brand-danger: #FF6666;
|
||||
|
||||
@gray-base: #FFF;
|
||||
@gray-darker: #F5F5F5;
|
||||
@gray-darker: #F5F7FA;
|
||||
@gray-dark: #ababab;
|
||||
@gray5: #8A8A8A;
|
||||
@gray: #444;
|
||||
@gray-light: darken(#444, 9%);
|
||||
@gray-lighter: #333;
|
||||
@gray-lightest: #242424;
|
||||
@gray5: #D4DAE5;
|
||||
@gray: #535966;
|
||||
@gray-light: darken(#535966, 9%);
|
||||
@gray-lighter: #343741;
|
||||
@gray-lightest: #25262E;
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
@import '@elastic/eui/src/components/tool_tip/variables';
|
||||
@import '@elastic/eui/src/components/tool_tip/mixins';
|
||||
|
||||
.visTooltip,
|
||||
|
|
|
@ -30,8 +30,8 @@
|
|||
.visEditorSidebar__indexPattern {
|
||||
font-weight: $euiFontWeightBold;
|
||||
padding: $euiSizeXS $euiSizeS;
|
||||
background-color: shade($euiColorPrimary, 60%);
|
||||
color: $euiColorGhost;
|
||||
background-color: shadeOrTint($euiColorPrimary, 60%, 60%);
|
||||
color: $euiColorEmptyShade;
|
||||
line-height: $euiSizeL;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
<div ng-show="add.form">
|
||||
<div ng-show="add.form" class="form-group">
|
||||
<label
|
||||
i18n-id="common.ui.vis.editors.aggAdd.selectGroupTypeLabel"
|
||||
i18n-default-message="Select {groupNameLabel} type"
|
||||
i18n-values="{ groupNameLabel }"
|
||||
>
|
||||
</label>
|
||||
<ul class="form-group list-group list-group-menu">
|
||||
<ul class="list-group list-group-menu">
|
||||
<li
|
||||
tabindex="0"
|
||||
id="aggSchemaListItem-{{$index}}"
|
||||
|
|
|
@ -10,10 +10,10 @@ block content
|
|||
width: 100%;
|
||||
height: 100%;
|
||||
margin: 0;
|
||||
background-color: #F5F7FA;
|
||||
background-color: #{darkMode ? '#25262E' : '#F5F7FA'};
|
||||
}
|
||||
.kibanaWelcomeView {
|
||||
background-color: #{darkMode ? '#242424' : '#F5F7FA'};
|
||||
background-color: #{darkMode ? '#25262E' : '#F5F7FA'};
|
||||
}
|
||||
|
||||
.kibanaWelcomeTitle {
|
||||
|
|
|
@ -29,7 +29,7 @@ export default function ({ getService, getPageObjects, updateBaselines }) {
|
|||
describe('dashboard snapshots', function describeIndexTests() {
|
||||
before(async function () {
|
||||
// We use a really small window to minimize differences across os's and browsers.
|
||||
await browser.setWindowSize(1000, 500);
|
||||
await browser.setWindowSize(1000, 700);
|
||||
});
|
||||
|
||||
after(async function () {
|
||||
|
|
Before Width: | Height: | Size: 50 KiB After Width: | Height: | Size: 58 KiB |
|
@ -152,7 +152,7 @@
|
|||
},
|
||||
"dependencies": {
|
||||
"@elastic/datemath": "5.0.2",
|
||||
"@elastic/eui": "9.0.2",
|
||||
"@elastic/eui": "9.2.1",
|
||||
"@elastic/javascript-typescript-langserver": "^0.1.16",
|
||||
"@elastic/lsp-extension": "^0.1.1",
|
||||
"@elastic/node-crypto": "0.1.2",
|
||||
|
|
|
@ -3,18 +3,9 @@
|
|||
exports[`Home component should render 1`] = `
|
||||
<div>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="spaceBetween"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexItem>
|
||||
<EuiTitle
|
||||
size="l"
|
||||
textTransform="none"
|
||||
|
@ -25,7 +16,6 @@ exports[`Home component should render 1`] = `
|
|||
</EuiTitle>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<SetupInstructionsLink />
|
||||
|
|
|
@ -2,12 +2,7 @@
|
|||
|
||||
exports[`StickyProperties should render entire component 1`] = `
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="none"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
style={
|
||||
Object {
|
||||
"marginBottom": "-1em",
|
||||
|
@ -17,8 +12,6 @@ exports[`StickyProperties should render entire component 1`] = `
|
|||
wrap={true}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
key="0"
|
||||
style={
|
||||
Object {
|
||||
|
@ -47,8 +40,6 @@ exports[`StickyProperties should render entire component 1`] = `
|
|||
/>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
key="1"
|
||||
style={
|
||||
Object {
|
||||
|
@ -83,8 +74,6 @@ exports[`StickyProperties should render entire component 1`] = `
|
|||
</EuiToolTip>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
key="2"
|
||||
style={
|
||||
Object {
|
||||
|
@ -113,8 +102,6 @@ exports[`StickyProperties should render entire component 1`] = `
|
|||
</PropertyValue>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
key="3"
|
||||
style={
|
||||
Object {
|
||||
|
@ -143,8 +130,6 @@ exports[`StickyProperties should render entire component 1`] = `
|
|||
</PropertyValue>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
key="4"
|
||||
style={
|
||||
Object {
|
||||
|
|
|
@ -26,18 +26,9 @@ exports[`TransactionActionMenu component should render with data 1`] = `
|
|||
toolTipPosition="right"
|
||||
>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="s"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexItem>
|
||||
<EuiLink
|
||||
color="primary"
|
||||
type="button"
|
||||
|
@ -46,7 +37,6 @@ exports[`TransactionActionMenu component should render with data 1`] = `
|
|||
</EuiLink>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiIcon
|
||||
|
@ -62,18 +52,9 @@ exports[`TransactionActionMenu component should render with data 1`] = `
|
|||
toolTipPosition="right"
|
||||
>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="s"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexItem>
|
||||
<EuiLink
|
||||
color="primary"
|
||||
type="button"
|
||||
|
@ -82,7 +63,6 @@ exports[`TransactionActionMenu component should render with data 1`] = `
|
|||
</EuiLink>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiIcon
|
||||
|
@ -98,18 +78,9 @@ exports[`TransactionActionMenu component should render with data 1`] = `
|
|||
toolTipPosition="right"
|
||||
>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="s"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexItem>
|
||||
<EuiLink
|
||||
color="primary"
|
||||
type="button"
|
||||
|
@ -118,7 +89,6 @@ exports[`TransactionActionMenu component should render with data 1`] = `
|
|||
</EuiLink>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiIcon
|
||||
|
@ -134,18 +104,9 @@ exports[`TransactionActionMenu component should render with data 1`] = `
|
|||
toolTipPosition="right"
|
||||
>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="s"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexItem>
|
||||
<EuiLink
|
||||
color="primary"
|
||||
type="button"
|
||||
|
@ -154,7 +115,6 @@ exports[`TransactionActionMenu component should render with data 1`] = `
|
|||
</EuiLink>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiIcon
|
||||
|
@ -170,18 +130,9 @@ exports[`TransactionActionMenu component should render with data 1`] = `
|
|||
toolTipPosition="right"
|
||||
>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="s"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexItem>
|
||||
<EuiLink
|
||||
color="primary"
|
||||
type="button"
|
||||
|
@ -190,7 +141,6 @@ exports[`TransactionActionMenu component should render with data 1`] = `
|
|||
</EuiLink>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiIcon
|
||||
|
@ -206,18 +156,9 @@ exports[`TransactionActionMenu component should render with data 1`] = `
|
|||
toolTipPosition="right"
|
||||
>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="s"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexItem>
|
||||
<EuiLink
|
||||
color="primary"
|
||||
type="button"
|
||||
|
@ -226,7 +167,6 @@ exports[`TransactionActionMenu component should render with data 1`] = `
|
|||
</EuiLink>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiIcon
|
||||
|
@ -242,18 +182,9 @@ exports[`TransactionActionMenu component should render with data 1`] = `
|
|||
toolTipPosition="right"
|
||||
>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="s"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexItem>
|
||||
<EuiLink
|
||||
color="primary"
|
||||
type="button"
|
||||
|
@ -262,7 +193,6 @@ exports[`TransactionActionMenu component should render with data 1`] = `
|
|||
</EuiLink>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiIcon
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
@import '@elastic/eui/src/components/tool_tip/variables';
|
||||
@import '@elastic/eui/src/components/tool_tip/mixins';
|
||||
|
||||
.tooltipAnnotation {
|
||||
|
|
|
@ -354,29 +354,15 @@ exports[`ilm summary extension should return extension when index has lifecycle
|
|||
className="euiSpacer euiSpacer--m"
|
||||
/>
|
||||
</EuiSpacer>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexGroup>
|
||||
<div
|
||||
className="euiFlexGroup euiFlexGroup--gutterLarge euiFlexGroup--directionRow euiFlexGroup--responsive"
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexItem>
|
||||
<div
|
||||
className="euiFlexItem"
|
||||
>
|
||||
<EuiDescriptionList
|
||||
align="left"
|
||||
compressed={false}
|
||||
textStyle="normal"
|
||||
type="column"
|
||||
>
|
||||
<dl
|
||||
|
@ -457,17 +443,11 @@ exports[`ilm summary extension should return extension when index has lifecycle
|
|||
</EuiDescriptionList>
|
||||
</div>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexItem>
|
||||
<div
|
||||
className="euiFlexItem"
|
||||
>
|
||||
<EuiDescriptionList
|
||||
align="left"
|
||||
compressed={false}
|
||||
textStyle="normal"
|
||||
type="column"
|
||||
>
|
||||
<dl
|
||||
|
@ -737,29 +717,15 @@ exports[`ilm summary extension should return extension when index has lifecycle
|
|||
className="euiSpacer euiSpacer--m"
|
||||
/>
|
||||
</EuiSpacer>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexGroup>
|
||||
<div
|
||||
className="euiFlexGroup euiFlexGroup--gutterLarge euiFlexGroup--directionRow euiFlexGroup--responsive"
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexItem>
|
||||
<div
|
||||
className="euiFlexItem"
|
||||
>
|
||||
<EuiDescriptionList
|
||||
align="left"
|
||||
compressed={false}
|
||||
textStyle="normal"
|
||||
type="column"
|
||||
>
|
||||
<dl
|
||||
|
@ -840,17 +806,11 @@ exports[`ilm summary extension should return extension when index has lifecycle
|
|||
</EuiDescriptionList>
|
||||
</div>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexItem>
|
||||
<div
|
||||
className="euiFlexItem"
|
||||
>
|
||||
<EuiDescriptionList
|
||||
align="left"
|
||||
compressed={false}
|
||||
textStyle="normal"
|
||||
type="column"
|
||||
>
|
||||
<dl
|
||||
|
|
|
@ -986,19 +986,12 @@ exports[`UploadLicense should display a modal when license requires acknowledgem
|
|||
/>
|
||||
</EuiSpacer>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="spaceBetween"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<div
|
||||
className="euiFlexGroup euiFlexGroup--gutterLarge euiFlexGroup--justifyContentSpaceBetween euiFlexGroup--directionRow euiFlexGroup--responsive"
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<div
|
||||
|
@ -1034,7 +1027,6 @@ exports[`UploadLicense should display a modal when license requires acknowledgem
|
|||
</div>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<div
|
||||
|
@ -1488,19 +1480,12 @@ exports[`UploadLicense should display an error when ES says license is expired 1
|
|||
/>
|
||||
</EuiSpacer>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="spaceBetween"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<div
|
||||
className="euiFlexGroup euiFlexGroup--gutterLarge euiFlexGroup--justifyContentSpaceBetween euiFlexGroup--directionRow euiFlexGroup--responsive"
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<div
|
||||
|
@ -1536,7 +1521,6 @@ exports[`UploadLicense should display an error when ES says license is expired 1
|
|||
</div>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<div
|
||||
|
@ -1990,19 +1974,12 @@ exports[`UploadLicense should display an error when ES says license is invalid 1
|
|||
/>
|
||||
</EuiSpacer>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="spaceBetween"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<div
|
||||
className="euiFlexGroup euiFlexGroup--gutterLarge euiFlexGroup--justifyContentSpaceBetween euiFlexGroup--directionRow euiFlexGroup--responsive"
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<div
|
||||
|
@ -2038,7 +2015,6 @@ exports[`UploadLicense should display an error when ES says license is invalid 1
|
|||
</div>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<div
|
||||
|
@ -2492,19 +2468,12 @@ exports[`UploadLicense should display an error when submitting invalid JSON 1`]
|
|||
/>
|
||||
</EuiSpacer>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="spaceBetween"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<div
|
||||
className="euiFlexGroup euiFlexGroup--gutterLarge euiFlexGroup--justifyContentSpaceBetween euiFlexGroup--directionRow euiFlexGroup--responsive"
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<div
|
||||
|
@ -2540,7 +2509,6 @@ exports[`UploadLicense should display an error when submitting invalid JSON 1`]
|
|||
</div>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<div
|
||||
|
@ -2994,19 +2962,12 @@ exports[`UploadLicense should display error when ES returns error 1`] = `
|
|||
/>
|
||||
</EuiSpacer>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="spaceBetween"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<div
|
||||
className="euiFlexGroup euiFlexGroup--gutterLarge euiFlexGroup--justifyContentSpaceBetween euiFlexGroup--directionRow euiFlexGroup--responsive"
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<div
|
||||
|
@ -3042,7 +3003,6 @@ exports[`UploadLicense should display error when ES returns error 1`] = `
|
|||
</div>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<div
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
|
||||
exports[`FlexItemSetting component renders a null label if label/tooltip text not supplied 1`] = `
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiFormRow
|
||||
|
@ -21,7 +20,6 @@ exports[`FlexItemSetting component renders a null label if label/tooltip text no
|
|||
|
||||
exports[`FlexItemSetting component renders component and children as expected 1`] = `
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiFormRow
|
||||
|
|
|
@ -137,15 +137,7 @@ Default value: Number of the host’s CPU cores"
|
|||
value={1}
|
||||
/>
|
||||
</EuiFormRow>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexGroup>
|
||||
<FlexItemSetting
|
||||
formRowLabelText="Pipeline batch size"
|
||||
formRowTooltipText="The maximum number of events an individual worker thread will collect from inputs before attempting to execute its filters and outputs. Larger batch sizes are generally more efficient, but come at the cost of increased memory overhead. You may have to increase the JVM heap size by setting the LS_HEAP_SIZE variable to effectively use the option.
|
||||
|
@ -177,15 +169,7 @@ Default value: 50ms"
|
|||
/>
|
||||
</FlexItemSetting>
|
||||
</EuiFlexGroup>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexGroup>
|
||||
<FlexItemSetting
|
||||
formRowLabelText="Queue type"
|
||||
formRowTooltipText="The internal queuing model to use for event buffering. Specify memory for legacy in-memory based queuing, or persisted for disk-based ACKed queueing
|
||||
|
@ -295,16 +279,9 @@ Default value: 1024"
|
|||
size="l"
|
||||
/>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiButton
|
||||
|
@ -324,7 +301,6 @@ Default value: 1024"
|
|||
</EuiButton>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiButton
|
||||
|
@ -483,15 +459,7 @@ Default value: Number of the host’s CPU cores"
|
|||
value={1}
|
||||
/>
|
||||
</EuiFormRow>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexGroup>
|
||||
<FlexItemSetting
|
||||
formRowLabelText="Pipeline batch size"
|
||||
formRowTooltipText="The maximum number of events an individual worker thread will collect from inputs before attempting to execute its filters and outputs. Larger batch sizes are generally more efficient, but come at the cost of increased memory overhead. You may have to increase the JVM heap size by setting the LS_HEAP_SIZE variable to effectively use the option.
|
||||
|
@ -523,15 +491,7 @@ Default value: 50ms"
|
|||
/>
|
||||
</FlexItemSetting>
|
||||
</EuiFlexGroup>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexGroup>
|
||||
<FlexItemSetting
|
||||
formRowLabelText="Queue type"
|
||||
formRowTooltipText="The internal queuing model to use for event buffering. Specify memory for legacy in-memory based queuing, or persisted for disk-based ACKed queueing
|
||||
|
@ -641,16 +601,9 @@ Default value: 1024"
|
|||
size="l"
|
||||
/>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiButton
|
||||
|
@ -670,7 +623,6 @@ Default value: 1024"
|
|||
</EuiButton>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiButton
|
||||
|
@ -829,15 +781,7 @@ Default value: Number of the host’s CPU cores"
|
|||
value={1}
|
||||
/>
|
||||
</EuiFormRow>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexGroup>
|
||||
<FlexItemSetting
|
||||
formRowLabelText="Pipeline batch size"
|
||||
formRowTooltipText="The maximum number of events an individual worker thread will collect from inputs before attempting to execute its filters and outputs. Larger batch sizes are generally more efficient, but come at the cost of increased memory overhead. You may have to increase the JVM heap size by setting the LS_HEAP_SIZE variable to effectively use the option.
|
||||
|
@ -869,15 +813,7 @@ Default value: 50ms"
|
|||
/>
|
||||
</FlexItemSetting>
|
||||
</EuiFlexGroup>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexGroup>
|
||||
<FlexItemSetting
|
||||
formRowLabelText="Queue type"
|
||||
formRowTooltipText="The internal queuing model to use for event buffering. Specify memory for legacy in-memory based queuing, or persisted for disk-based ACKed queueing
|
||||
|
@ -987,16 +923,9 @@ Default value: 1024"
|
|||
size="l"
|
||||
/>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiButton
|
||||
|
@ -1016,7 +945,6 @@ Default value: 1024"
|
|||
</EuiButton>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiButton
|
||||
|
@ -1146,15 +1074,7 @@ Default value: Number of the host’s CPU cores"
|
|||
value={1}
|
||||
/>
|
||||
</EuiFormRow>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexGroup>
|
||||
<FlexItemSetting
|
||||
formRowLabelText="Pipeline batch size"
|
||||
formRowTooltipText="The maximum number of events an individual worker thread will collect from inputs before attempting to execute its filters and outputs. Larger batch sizes are generally more efficient, but come at the cost of increased memory overhead. You may have to increase the JVM heap size by setting the LS_HEAP_SIZE variable to effectively use the option.
|
||||
|
@ -1186,15 +1106,7 @@ Default value: 50ms"
|
|||
/>
|
||||
</FlexItemSetting>
|
||||
</EuiFlexGroup>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexGroup>
|
||||
<FlexItemSetting
|
||||
formRowLabelText="Queue type"
|
||||
formRowTooltipText="The internal queuing model to use for event buffering. Specify memory for legacy in-memory based queuing, or persisted for disk-based ACKed queueing
|
||||
|
@ -1304,16 +1216,9 @@ Default value: 1024"
|
|||
size="l"
|
||||
/>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiButton
|
||||
|
@ -1333,7 +1238,6 @@ Default value: 1024"
|
|||
</EuiButton>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiButton
|
||||
|
@ -1352,7 +1256,6 @@ Default value: 1024"
|
|||
</EuiButton>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiButtonEmpty
|
||||
|
@ -1506,15 +1409,7 @@ Default value: Number of the host’s CPU cores"
|
|||
value={1}
|
||||
/>
|
||||
</EuiFormRow>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexGroup>
|
||||
<FlexItemSetting
|
||||
formRowLabelText="Pipeline batch size"
|
||||
formRowTooltipText="The maximum number of events an individual worker thread will collect from inputs before attempting to execute its filters and outputs. Larger batch sizes are generally more efficient, but come at the cost of increased memory overhead. You may have to increase the JVM heap size by setting the LS_HEAP_SIZE variable to effectively use the option.
|
||||
|
@ -1546,15 +1441,7 @@ Default value: 50ms"
|
|||
/>
|
||||
</FlexItemSetting>
|
||||
</EuiFlexGroup>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexGroup>
|
||||
<FlexItemSetting
|
||||
formRowLabelText="Queue type"
|
||||
formRowTooltipText="The internal queuing model to use for event buffering. Specify memory for legacy in-memory based queuing, or persisted for disk-based ACKed queueing
|
||||
|
@ -1664,16 +1551,9 @@ Default value: 1024"
|
|||
size="l"
|
||||
/>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiButton
|
||||
|
@ -1693,7 +1573,6 @@ Default value: 1024"
|
|||
</EuiButton>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiButton
|
||||
|
@ -1823,15 +1702,7 @@ Default value: Number of the host’s CPU cores"
|
|||
value={1}
|
||||
/>
|
||||
</EuiFormRow>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexGroup>
|
||||
<FlexItemSetting
|
||||
formRowLabelText="Pipeline batch size"
|
||||
formRowTooltipText="The maximum number of events an individual worker thread will collect from inputs before attempting to execute its filters and outputs. Larger batch sizes are generally more efficient, but come at the cost of increased memory overhead. You may have to increase the JVM heap size by setting the LS_HEAP_SIZE variable to effectively use the option.
|
||||
|
@ -1863,15 +1734,7 @@ Default value: 50ms"
|
|||
/>
|
||||
</FlexItemSetting>
|
||||
</EuiFlexGroup>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexGroup>
|
||||
<FlexItemSetting
|
||||
formRowLabelText="Queue type"
|
||||
formRowTooltipText="The internal queuing model to use for event buffering. Specify memory for legacy in-memory based queuing, or persisted for disk-based ACKed queueing
|
||||
|
@ -1981,16 +1844,9 @@ Default value: 1024"
|
|||
size="l"
|
||||
/>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiButton
|
||||
|
@ -2010,7 +1866,6 @@ Default value: 1024"
|
|||
</EuiButton>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiButton
|
||||
|
@ -2029,7 +1884,6 @@ Default value: 1024"
|
|||
</EuiButton>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiButtonEmpty
|
||||
|
|
|
@ -173,20 +173,11 @@ exports[`UpgradeFailure component passes expected text for new pipeline 1`] = `
|
|||
className="euiTitle euiTitle--medium"
|
||||
titleText="Upgrade failed"
|
||||
>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexGroup>
|
||||
<div
|
||||
className="euiFlexGroup euiFlexGroup--gutterLarge euiFlexGroup--directionRow euiFlexGroup--responsive"
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<div
|
||||
|
@ -224,7 +215,6 @@ exports[`UpgradeFailure component passes expected text for new pipeline 1`] = `
|
|||
</div>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<div
|
||||
|
@ -293,19 +283,12 @@ exports[`UpgradeFailure component passes expected text for new pipeline 1`] = `
|
|||
upgradeButtonText="Try again"
|
||||
>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<div
|
||||
className="euiFlexGroup euiFlexGroup--gutterLarge euiFlexGroup--directionRow euiFlexGroup--responsive"
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<div
|
||||
|
@ -337,7 +320,6 @@ exports[`UpgradeFailure component passes expected text for new pipeline 1`] = `
|
|||
</div>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<div
|
||||
|
@ -558,20 +540,11 @@ exports[`UpgradeFailure component passes expected text for not manual upgrade 1`
|
|||
className="euiTitle euiTitle--medium"
|
||||
titleText="Time for an upgrade!"
|
||||
>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexGroup>
|
||||
<div
|
||||
className="euiFlexGroup euiFlexGroup--gutterLarge euiFlexGroup--directionRow euiFlexGroup--responsive"
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<div
|
||||
|
@ -609,7 +582,6 @@ exports[`UpgradeFailure component passes expected text for not manual upgrade 1`
|
|||
</div>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<div
|
||||
|
@ -678,19 +650,12 @@ exports[`UpgradeFailure component passes expected text for not manual upgrade 1`
|
|||
upgradeButtonText="Upgrade"
|
||||
>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<div
|
||||
className="euiFlexGroup euiFlexGroup--gutterLarge euiFlexGroup--directionRow euiFlexGroup--responsive"
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<div
|
||||
|
@ -722,7 +687,6 @@ exports[`UpgradeFailure component passes expected text for not manual upgrade 1`
|
|||
</div>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<div
|
||||
|
@ -943,20 +907,11 @@ exports[`UpgradeFailure component passes expected text for not new pipeline 1`]
|
|||
className="euiTitle euiTitle--medium"
|
||||
titleText="Upgrade failed"
|
||||
>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexGroup>
|
||||
<div
|
||||
className="euiFlexGroup euiFlexGroup--gutterLarge euiFlexGroup--directionRow euiFlexGroup--responsive"
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<div
|
||||
|
@ -994,7 +949,6 @@ exports[`UpgradeFailure component passes expected text for not new pipeline 1`]
|
|||
</div>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<div
|
||||
|
@ -1063,19 +1017,12 @@ exports[`UpgradeFailure component passes expected text for not new pipeline 1`]
|
|||
upgradeButtonText="Try again"
|
||||
>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<div
|
||||
className="euiFlexGroup euiFlexGroup--gutterLarge euiFlexGroup--directionRow euiFlexGroup--responsive"
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<div
|
||||
|
@ -1107,7 +1054,6 @@ exports[`UpgradeFailure component passes expected text for not new pipeline 1`]
|
|||
</div>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<div
|
||||
|
|
|
@ -2,16 +2,9 @@
|
|||
|
||||
exports[`UpgradeFailureActions component renders component as expected 1`] = `
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiButton
|
||||
|
@ -25,7 +18,6 @@ exports[`UpgradeFailureActions component renders component as expected 1`] = `
|
|||
</EuiButton>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiButtonEmpty
|
||||
|
|
|
@ -1,17 +1,8 @@
|
|||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||
|
||||
exports[`UpgradeFailureTitle component renders component as expected 1`] = `
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexGroup>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiIcon
|
||||
|
@ -20,7 +11,6 @@ exports[`UpgradeFailureTitle component renders component as expected 1`] = `
|
|||
/>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiTitle
|
||||
|
|
|
@ -2,13 +2,8 @@
|
|||
|
||||
exports[`LayerPanel is rendered 1`] = `
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="column"
|
||||
gutterSize="none"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlyoutHeader
|
||||
className="mapLayerPanel__header"
|
||||
|
@ -16,15 +11,10 @@ exports[`LayerPanel is rendered 1`] = `
|
|||
>
|
||||
<EuiFlexGroup
|
||||
alignItems="center"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="s"
|
||||
justifyContent="flexStart"
|
||||
responsive={false}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiButtonIcon
|
||||
|
@ -42,10 +32,7 @@ exports[`LayerPanel is rendered 1`] = `
|
|||
/>
|
||||
</EuiButtonIcon>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexItem>
|
||||
<EuiTitle
|
||||
size="s"
|
||||
textTransform="none"
|
||||
|
|
|
@ -9,22 +9,15 @@ exports[`LayerControl is rendered 1`] = `
|
|||
>
|
||||
<EuiFlexItem
|
||||
className="mapWidgetControl__header"
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiFlexGroup
|
||||
alignItems="center"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="none"
|
||||
justifyContent="spaceBetween"
|
||||
responsive={false}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexItem>
|
||||
<EuiTitle
|
||||
size="xs"
|
||||
textTransform="none"
|
||||
|
@ -39,7 +32,6 @@ exports[`LayerControl is rendered 1`] = `
|
|||
</EuiTitle>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiButtonEmpty
|
||||
|
@ -62,8 +54,6 @@ exports[`LayerControl is rendered 1`] = `
|
|||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
className="mapLayerControl"
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<LayerTOC />
|
||||
</EuiFlexItem>
|
||||
|
@ -79,22 +69,15 @@ exports[`LayerControl props isReadOnly 1`] = `
|
|||
>
|
||||
<EuiFlexItem
|
||||
className="mapWidgetControl__header"
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiFlexGroup
|
||||
alignItems="center"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="none"
|
||||
justifyContent="spaceBetween"
|
||||
responsive={false}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexItem>
|
||||
<EuiTitle
|
||||
size="xs"
|
||||
textTransform="none"
|
||||
|
@ -112,8 +95,6 @@ exports[`LayerControl props isReadOnly 1`] = `
|
|||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
className="mapLayerControl"
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<LayerTOC />
|
||||
</EuiFlexItem>
|
||||
|
|
|
@ -9,15 +9,10 @@ exports[`TOCEntry is rendered 1`] = `
|
|||
<EuiFlexGroup
|
||||
alignItems="center"
|
||||
className="mapTocEntry-visible"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="none"
|
||||
justifyContent="flexStart"
|
||||
responsive={false}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<LayerTocActions
|
||||
|
@ -37,10 +32,7 @@ exports[`TOCEntry is rendered 1`] = `
|
|||
zoom={0}
|
||||
/>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexItem>
|
||||
<EuiLink
|
||||
color="text"
|
||||
data-test-subj="mapOpenLayerButtonlayer_1"
|
||||
|
@ -60,7 +52,6 @@ exports[`TOCEntry is rendered 1`] = `
|
|||
</EuiLink>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<span
|
||||
|
@ -72,10 +63,7 @@ exports[`TOCEntry is rendered 1`] = `
|
|||
</span>
|
||||
</EuiFlexItem>
|
||||
</EuiFlexGroup>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexItem>
|
||||
<EuiSpacer
|
||||
size="s"
|
||||
/>
|
||||
|
@ -95,15 +83,10 @@ exports[`TOCEntry props isReadOnly 1`] = `
|
|||
<EuiFlexGroup
|
||||
alignItems="center"
|
||||
className="mapTocEntry-visible"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="none"
|
||||
justifyContent="flexStart"
|
||||
responsive={false}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<LayerTocActions
|
||||
|
@ -123,10 +106,7 @@ exports[`TOCEntry props isReadOnly 1`] = `
|
|||
zoom={0}
|
||||
/>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexItem>
|
||||
<EuiText
|
||||
grow={true}
|
||||
size="m"
|
||||
|
@ -144,10 +124,7 @@ exports[`TOCEntry props isReadOnly 1`] = `
|
|||
</EuiText>
|
||||
</EuiFlexItem>
|
||||
</EuiFlexGroup>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={true}
|
||||
>
|
||||
<EuiFlexItem>
|
||||
<EuiSpacer
|
||||
size="s"
|
||||
/>
|
||||
|
|
|
@ -2,9 +2,7 @@
|
|||
|
||||
exports[`AnnotationDescriptionList Initialization with annotation. 1`] = `
|
||||
<EuiDescriptionList
|
||||
align="left"
|
||||
className="ml-annotation-description-list"
|
||||
compressed={false}
|
||||
listItems={
|
||||
Array [
|
||||
Object {
|
||||
|
@ -37,7 +35,6 @@ exports[`AnnotationDescriptionList Initialization with annotation. 1`] = `
|
|||
},
|
||||
]
|
||||
}
|
||||
textStyle="normal"
|
||||
type="column"
|
||||
/>
|
||||
`;
|
||||
|
|
|
@ -107,16 +107,9 @@ exports[`AnnotationsTable Initialization with annotations prop. 1`] = `
|
|||
|
||||
exports[`AnnotationsTable Initialization with job config prop. 1`] = `
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="spaceAround"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiLoadingSpinner
|
||||
|
|
|
@ -19,15 +19,10 @@ exports[`ActionsSection renders with no actions selected 1`] = `
|
|||
/>
|
||||
<EuiFlexGroup
|
||||
alignItems="center"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="s"
|
||||
justifyContent="flexStart"
|
||||
responsive={false}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiCheckbox
|
||||
|
@ -47,7 +42,6 @@ exports[`ActionsSection renders with no actions selected 1`] = `
|
|||
/>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiIconTip
|
||||
|
@ -70,15 +64,10 @@ exports[`ActionsSection renders with no actions selected 1`] = `
|
|||
/>
|
||||
<EuiFlexGroup
|
||||
alignItems="center"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="s"
|
||||
justifyContent="flexStart"
|
||||
responsive={false}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiCheckbox
|
||||
|
@ -98,7 +87,6 @@ exports[`ActionsSection renders with no actions selected 1`] = `
|
|||
/>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiIconTip
|
||||
|
@ -138,15 +126,10 @@ exports[`ActionsSection renders with skip_result and skip_model_update selected
|
|||
/>
|
||||
<EuiFlexGroup
|
||||
alignItems="center"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="s"
|
||||
justifyContent="flexStart"
|
||||
responsive={false}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiCheckbox
|
||||
|
@ -166,7 +149,6 @@ exports[`ActionsSection renders with skip_result and skip_model_update selected
|
|||
/>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiIconTip
|
||||
|
@ -189,15 +171,10 @@ exports[`ActionsSection renders with skip_result and skip_model_update selected
|
|||
/>
|
||||
<EuiFlexGroup
|
||||
alignItems="center"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="s"
|
||||
justifyContent="flexStart"
|
||||
responsive={false}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiCheckbox
|
||||
|
@ -217,7 +194,6 @@ exports[`ActionsSection renders with skip_result and skip_model_update selected
|
|||
/>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiIconTip
|
||||
|
@ -257,15 +233,10 @@ exports[`ActionsSection renders with skip_result selected 1`] = `
|
|||
/>
|
||||
<EuiFlexGroup
|
||||
alignItems="center"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="s"
|
||||
justifyContent="flexStart"
|
||||
responsive={false}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiCheckbox
|
||||
|
@ -285,7 +256,6 @@ exports[`ActionsSection renders with skip_result selected 1`] = `
|
|||
/>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiIconTip
|
||||
|
@ -308,15 +278,10 @@ exports[`ActionsSection renders with skip_result selected 1`] = `
|
|||
/>
|
||||
<EuiFlexGroup
|
||||
alignItems="center"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="s"
|
||||
justifyContent="flexStart"
|
||||
responsive={false}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiCheckbox
|
||||
|
@ -336,7 +301,6 @@ exports[`ActionsSection renders with skip_result selected 1`] = `
|
|||
/>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiIconTip
|
||||
|
|
|
@ -2,16 +2,9 @@
|
|||
|
||||
exports[`ConditionExpression renders with appliesTo, operator and value supplied 1`] = `
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="m"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiPopover
|
||||
|
@ -89,7 +82,6 @@ exports[`ConditionExpression renders with appliesTo, operator and value supplied
|
|||
</EuiPopover>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiPopover
|
||||
|
@ -138,21 +130,13 @@ exports[`ConditionExpression renders with appliesTo, operator and value supplied
|
|||
className="euiExpression"
|
||||
>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
style={
|
||||
Object {
|
||||
"maxWidth": 450,
|
||||
}
|
||||
}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
style={
|
||||
Object {
|
||||
|
@ -190,7 +174,6 @@ exports[`ConditionExpression renders with appliesTo, operator and value supplied
|
|||
/>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
style={
|
||||
Object {
|
||||
|
@ -212,7 +195,6 @@ exports[`ConditionExpression renders with appliesTo, operator and value supplied
|
|||
</EuiPopover>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiButtonIcon
|
||||
|
@ -230,16 +212,9 @@ exports[`ConditionExpression renders with appliesTo, operator and value supplied
|
|||
|
||||
exports[`ConditionExpression renders with only value supplied 1`] = `
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="m"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiPopover
|
||||
|
@ -316,7 +291,6 @@ exports[`ConditionExpression renders with only value supplied 1`] = `
|
|||
</EuiPopover>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiPopover
|
||||
|
@ -365,21 +339,13 @@ exports[`ConditionExpression renders with only value supplied 1`] = `
|
|||
className="euiExpression"
|
||||
>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
style={
|
||||
Object {
|
||||
"maxWidth": 450,
|
||||
}
|
||||
}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
style={
|
||||
Object {
|
||||
|
@ -416,7 +382,6 @@ exports[`ConditionExpression renders with only value supplied 1`] = `
|
|||
/>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
style={
|
||||
Object {
|
||||
|
@ -438,7 +403,6 @@ exports[`ConditionExpression renders with only value supplied 1`] = `
|
|||
</EuiPopover>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiButtonIcon
|
||||
|
|
|
@ -229,16 +229,9 @@ exports[`RuleEditorFlyout renders the flyout after adding a condition to a rule
|
|||
</EuiFlyoutBody>
|
||||
<EuiFlyoutFooter>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="spaceBetween"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiButtonEmpty
|
||||
|
@ -257,7 +250,6 @@ exports[`RuleEditorFlyout renders the flyout after adding a condition to a rule
|
|||
</EuiButtonEmpty>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiButton
|
||||
|
@ -520,16 +512,9 @@ exports[`RuleEditorFlyout renders the flyout after setting the rule to edit 1`]
|
|||
</EuiFlyoutBody>
|
||||
<EuiFlyoutFooter>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="spaceBetween"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiButtonEmpty
|
||||
|
@ -548,7 +533,6 @@ exports[`RuleEditorFlyout renders the flyout after setting the rule to edit 1`]
|
|||
</EuiButtonEmpty>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiButton
|
||||
|
@ -789,16 +773,9 @@ exports[`RuleEditorFlyout renders the flyout for creating a rule with conditions
|
|||
</EuiFlyoutBody>
|
||||
<EuiFlyoutFooter>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="spaceBetween"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiButtonEmpty
|
||||
|
@ -817,7 +794,6 @@ exports[`RuleEditorFlyout renders the flyout for creating a rule with conditions
|
|||
</EuiButtonEmpty>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiButton
|
||||
|
@ -927,16 +903,9 @@ exports[`RuleEditorFlyout renders the select action component for a detector wit
|
|||
</EuiFlyoutBody>
|
||||
<EuiFlyoutFooter>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="spaceBetween"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiButtonEmpty
|
||||
|
|
|
@ -2,17 +2,10 @@
|
|||
|
||||
exports[`ScopeExpression renders when empty list of filter IDs is supplied 1`] = `
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="m"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
className="scope-field-checkbox"
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiCheckbox
|
||||
|
@ -25,7 +18,6 @@ exports[`ScopeExpression renders when empty list of filter IDs is supplied 1`] =
|
|||
/>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiExpression
|
||||
|
@ -47,17 +39,10 @@ exports[`ScopeExpression renders when empty list of filter IDs is supplied 1`] =
|
|||
|
||||
exports[`ScopeExpression renders when enabled set to false 1`] = `
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="m"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
className="scope-field-checkbox"
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiCheckbox
|
||||
|
@ -70,7 +55,6 @@ exports[`ScopeExpression renders when enabled set to false 1`] = `
|
|||
/>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiExpression
|
||||
|
@ -88,7 +72,6 @@ exports[`ScopeExpression renders when enabled set to false 1`] = `
|
|||
/>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiPopover
|
||||
|
@ -137,21 +120,13 @@ exports[`ScopeExpression renders when enabled set to false 1`] = `
|
|||
className="euiExpression"
|
||||
>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
style={
|
||||
Object {
|
||||
"maxWidth": 450,
|
||||
}
|
||||
}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
style={
|
||||
Object {
|
||||
|
@ -181,7 +156,6 @@ exports[`ScopeExpression renders when enabled set to false 1`] = `
|
|||
/>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
style={
|
||||
Object {
|
||||
|
@ -224,17 +198,10 @@ exports[`ScopeExpression renders when enabled set to false 1`] = `
|
|||
|
||||
exports[`ScopeExpression renders when filter ID and type supplied 1`] = `
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="m"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
className="scope-field-checkbox"
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiCheckbox
|
||||
|
@ -247,7 +214,6 @@ exports[`ScopeExpression renders when filter ID and type supplied 1`] = `
|
|||
/>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiExpression
|
||||
|
@ -265,7 +231,6 @@ exports[`ScopeExpression renders when filter ID and type supplied 1`] = `
|
|||
/>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiPopover
|
||||
|
@ -314,21 +279,13 @@ exports[`ScopeExpression renders when filter ID and type supplied 1`] = `
|
|||
className="euiExpression"
|
||||
>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
style={
|
||||
Object {
|
||||
"maxWidth": 450,
|
||||
}
|
||||
}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
style={
|
||||
Object {
|
||||
|
@ -358,7 +315,6 @@ exports[`ScopeExpression renders when filter ID and type supplied 1`] = `
|
|||
/>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
style={
|
||||
Object {
|
||||
|
@ -401,17 +357,10 @@ exports[`ScopeExpression renders when filter ID and type supplied 1`] = `
|
|||
|
||||
exports[`ScopeExpression renders when no filter ID or type supplied 1`] = `
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="m"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
className="scope-field-checkbox"
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiCheckbox
|
||||
|
@ -424,7 +373,6 @@ exports[`ScopeExpression renders when no filter ID or type supplied 1`] = `
|
|||
/>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiExpression
|
||||
|
@ -442,7 +390,6 @@ exports[`ScopeExpression renders when no filter ID or type supplied 1`] = `
|
|||
/>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
>
|
||||
<EuiPopover
|
||||
|
@ -491,21 +438,13 @@ exports[`ScopeExpression renders when no filter ID or type supplied 1`] = `
|
|||
className="euiExpression"
|
||||
>
|
||||
<EuiFlexGroup
|
||||
alignItems="stretch"
|
||||
component="div"
|
||||
direction="row"
|
||||
gutterSize="l"
|
||||
justifyContent="flexStart"
|
||||
responsive={true}
|
||||
style={
|
||||
Object {
|
||||
"maxWidth": 450,
|
||||
}
|
||||
}
|
||||
wrap={false}
|
||||
>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
style={
|
||||
Object {
|
||||
|
@ -534,7 +473,6 @@ exports[`ScopeExpression renders when no filter ID or type supplied 1`] = `
|
|||
/>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem
|
||||
component="div"
|
||||
grow={false}
|
||||
style={
|
||||
Object {
|
||||
|
|