@elastic/eui 88.5.0 → 88.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/eui_theme_dark.css +8 -21
- package/dist/eui_theme_dark.min.css +1 -1
- package/dist/eui_theme_light.css +8 -21
- package/dist/eui_theme_light.min.css +1 -1
- package/es/components/collapsible_nav_beta/collapsible_nav_beta.js +20 -6
- package/es/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +4 -14
- package/es/components/collapsible_nav_beta/collapsible_nav_body_footer.js +57 -0
- package/es/components/collapsible_nav_beta/collapsible_nav_body_footer.styles.js +25 -0
- package/es/components/collapsible_nav_beta/collapsible_nav_group/collapsible_nav_group.js +156 -0
- package/es/components/collapsible_nav_beta/collapsible_nav_group/collapsible_nav_group.styles.js +19 -0
- package/es/components/collapsible_nav_beta/collapsible_nav_group/index.js +9 -0
- package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +3 -7
- package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +3 -7
- package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +4 -8
- package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.js +16 -63
- package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.styles.js +2 -10
- package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +122 -41
- package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.styles.js +13 -3
- package/es/components/combo_box/combo_box.js +12 -25
- package/es/components/combo_box/combo_box_input/combo_box_input.js +61 -54
- package/es/components/text_truncate/index.js +1 -1
- package/es/components/text_truncate/utils.js +88 -138
- package/es/services/canvas/canvas_text_utils.js +64 -0
- package/es/services/canvas/index.js +9 -0
- package/es/services/index.js +1 -0
- package/eui.d.ts +186 -105
- package/i18ntokens.json +8 -8
- package/lib/components/collapsible_nav_beta/collapsible_nav_beta.js +20 -6
- package/lib/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +11 -19
- package/lib/components/collapsible_nav_beta/collapsible_nav_body_footer.js +67 -0
- package/lib/components/collapsible_nav_beta/collapsible_nav_body_footer.styles.js +33 -0
- package/lib/components/collapsible_nav_beta/collapsible_nav_group/collapsible_nav_group.js +166 -0
- package/lib/components/collapsible_nav_beta/collapsible_nav_group/collapsible_nav_group.styles.js +26 -0
- package/lib/components/collapsible_nav_beta/collapsible_nav_group/index.js +12 -0
- package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +3 -7
- package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +3 -7
- package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +4 -8
- package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.js +14 -61
- package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.styles.js +1 -9
- package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +122 -39
- package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.styles.js +13 -4
- package/lib/components/combo_box/combo_box.js +12 -25
- package/lib/components/combo_box/combo_box_input/combo_box_input.js +60 -53
- package/lib/components/text_truncate/index.js +0 -6
- package/lib/components/text_truncate/utils.js +97 -148
- package/lib/services/canvas/canvas_text_utils.js +70 -0
- package/lib/services/canvas/index.js +12 -0
- package/lib/services/index.js +8 -0
- package/optimize/es/components/collapsible_nav_beta/collapsible_nav_beta.js +17 -3
- package/optimize/es/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +4 -14
- package/optimize/es/components/collapsible_nav_beta/collapsible_nav_body_footer.js +56 -0
- package/optimize/es/components/collapsible_nav_beta/collapsible_nav_body_footer.styles.js +25 -0
- package/optimize/es/components/collapsible_nav_beta/collapsible_nav_group/collapsible_nav_group.js +48 -0
- package/optimize/es/components/collapsible_nav_beta/collapsible_nav_group/collapsible_nav_group.styles.js +19 -0
- package/optimize/es/components/collapsible_nav_beta/collapsible_nav_group/index.js +9 -0
- package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.js +7 -33
- package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.styles.js +2 -10
- package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +54 -21
- package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.styles.js +13 -3
- package/optimize/es/components/combo_box/combo_box.js +12 -25
- package/optimize/es/components/combo_box/combo_box_input/combo_box_input.js +61 -53
- package/optimize/es/components/text_truncate/index.js +1 -1
- package/optimize/es/components/text_truncate/utils.js +87 -137
- package/optimize/es/services/canvas/canvas_text_utils.js +60 -0
- package/optimize/es/services/canvas/index.js +9 -0
- package/optimize/es/services/index.js +1 -0
- package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_beta.js +15 -1
- package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +11 -19
- package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_body_footer.js +66 -0
- package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_body_footer.styles.js +33 -0
- package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_group/collapsible_nav_group.js +58 -0
- package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_group/collapsible_nav_group.styles.js +26 -0
- package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_group/index.js +12 -0
- package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.js +5 -31
- package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.styles.js +1 -9
- package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +54 -20
- package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.styles.js +13 -4
- package/optimize/lib/components/combo_box/combo_box.js +12 -25
- package/optimize/lib/components/combo_box/combo_box_input/combo_box_input.js +60 -52
- package/optimize/lib/components/text_truncate/index.js +0 -6
- package/optimize/lib/components/text_truncate/utils.js +96 -147
- package/optimize/lib/services/canvas/canvas_text_utils.js +67 -0
- package/optimize/lib/services/canvas/index.js +12 -0
- package/optimize/lib/services/index.js +8 -0
- package/package.json +2 -5
- package/src/components/combo_box/_combo_box.scss +12 -19
- package/test-env/components/collapsible_nav_beta/collapsible_nav_beta.js +20 -6
- package/test-env/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +11 -19
- package/test-env/components/collapsible_nav_beta/collapsible_nav_body_footer.js +66 -0
- package/test-env/components/collapsible_nav_beta/collapsible_nav_body_footer.styles.js +33 -0
- package/test-env/components/collapsible_nav_beta/collapsible_nav_group/collapsible_nav_group.js +165 -0
- package/test-env/components/collapsible_nav_beta/collapsible_nav_group/collapsible_nav_group.styles.js +26 -0
- package/test-env/components/collapsible_nav_beta/collapsible_nav_group/index.js +12 -0
- package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +3 -7
- package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +3 -7
- package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +4 -8
- package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.js +14 -61
- package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.styles.js +1 -9
- package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +122 -39
- package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.styles.js +13 -4
- package/test-env/components/combo_box/combo_box.js +12 -25
- package/test-env/components/combo_box/combo_box_input/combo_box_input.js +60 -53
- package/test-env/components/text_truncate/index.js +0 -6
- package/test-env/components/text_truncate/utils.js +96 -147
- package/test-env/services/canvas/canvas_text_utils.js +30 -0
- package/test-env/services/canvas/index.js +12 -0
- package/test-env/services/index.js +8 -0
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
2
|
+
import _createClass from "@babel/runtime/helpers/createClass";
|
|
3
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
4
|
+
/*
|
|
5
|
+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
6
|
+
* or more contributor license agreements. Licensed under the Elastic License
|
|
7
|
+
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
|
8
|
+
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
9
|
+
* Side Public License, v 1.
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Creates a temporary Canvas element for manipulating text & determining text width.
|
|
14
|
+
*
|
|
15
|
+
* To accurately measure text, canvas rendering requires either a container to
|
|
16
|
+
* compute/derive font styles from, or a static font string (useful for usage
|
|
17
|
+
* outside the DOM). Particular care should be applied when fallback fonts are
|
|
18
|
+
* used, as more fallback fonts can lead to less precision.
|
|
19
|
+
*
|
|
20
|
+
* Please note that while canvas is more significantly more performant than DOM
|
|
21
|
+
* measurement, there are subpixel to single digit pixel differences between
|
|
22
|
+
* DOM and canvas measurement due to the different rendering engines used.
|
|
23
|
+
*/
|
|
24
|
+
export var CanvasTextUtils = /*#__PURE__*/function () {
|
|
25
|
+
function CanvasTextUtils(_ref) {
|
|
26
|
+
var _this = this;
|
|
27
|
+
var font = _ref.font,
|
|
28
|
+
container = _ref.container;
|
|
29
|
+
_classCallCheck(this, CanvasTextUtils);
|
|
30
|
+
_defineProperty(this, "context", void 0);
|
|
31
|
+
_defineProperty(this, "currentText", '');
|
|
32
|
+
_defineProperty(this, "computeFontFromElement", function (element) {
|
|
33
|
+
var computedStyles = window.getComputedStyle(element);
|
|
34
|
+
// TODO: font-stretch is not included even though it potentially should be
|
|
35
|
+
// @see https://developer.mozilla.org/en-US/docs/Web/CSS/font#constituent_properties
|
|
36
|
+
// It appears to be unsupported and/or breaks font computation in canvas
|
|
37
|
+
return ['font-style', 'font-variant', 'font-weight', 'font-size', 'font-family'].map(function (prop) {
|
|
38
|
+
return computedStyles.getPropertyValue(prop);
|
|
39
|
+
}).join(' ').trim();
|
|
40
|
+
});
|
|
41
|
+
_defineProperty(this, "setTextToCheck", function (text) {
|
|
42
|
+
_this.currentText = text;
|
|
43
|
+
});
|
|
44
|
+
this.context = document.createElement('canvas').getContext('2d');
|
|
45
|
+
|
|
46
|
+
// Set the canvas font to ensure text width calculations are correct
|
|
47
|
+
if (font) {
|
|
48
|
+
this.context.font = font;
|
|
49
|
+
} else if (container) {
|
|
50
|
+
this.context.font = this.computeFontFromElement(container);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
_createClass(CanvasTextUtils, [{
|
|
54
|
+
key: "textWidth",
|
|
55
|
+
get: function get() {
|
|
56
|
+
return this.context.measureText(this.currentText).width;
|
|
57
|
+
}
|
|
58
|
+
}]);
|
|
59
|
+
return CanvasTextUtils;
|
|
60
|
+
}();
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
3
|
+
* or more contributor license agreements. Licensed under the Elastic License
|
|
4
|
+
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
|
5
|
+
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
6
|
+
* Side Public License, v 1.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
export { CanvasTextUtils } from './canvas_text_utils';
|
|
@@ -11,6 +11,7 @@ import * as keys from './keys';
|
|
|
11
11
|
export { accessibleClickKeys, cascadingMenuKeys, comboBoxKeys, htmlIdGenerator, useGeneratedHtmlId } from './accessibility';
|
|
12
12
|
export { CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT } from './alignment';
|
|
13
13
|
export { CurrentEuiBreakpointContext, CurrentEuiBreakpointProvider, useCurrentEuiBreakpoint, useIsWithinBreakpoints, useIsWithinMaxBreakpoint, useIsWithinMinBreakpoint } from './breakpoint';
|
|
14
|
+
export { CanvasTextUtils } from './canvas';
|
|
14
15
|
export { brighten, calculateContrast, calculateLuminance, colorPalette, darken, DEFAULT_VISUALIZATION_COLOR, desaturate, euiPaletteColorBlind, euiPaletteColorBlindBehindText, euiPaletteComplimentary, euiPaletteComplementary, euiPaletteCool, euiPaletteForDarkBackground, euiPaletteForLightBackground, euiPaletteForStatus, euiPaletteForTemperature, euiPaletteGray, euiPaletteNegative, euiPalettePositive, euiPaletteWarm, getSteppedGradient, hexToHsv, hexToRgb, hsvToHex, hsvToRgb, isColorDark, isValidHex, lightness, makeDisabledContrastColor, makeHighContrastColor, rgbToHex, rgbToHsv, saturate, shade, shadeOrTint, tint, tintOrShade, transparentize, VISUALIZATION_COLORS, wcagContrastMin } from './color';
|
|
15
16
|
export { useColorPickerState, useColorStopsState } from './color_picker';
|
|
16
17
|
export * from './console';
|
|
@@ -20,6 +20,9 @@ var _header = require("../header/header.styles");
|
|
|
20
20
|
var _context = require("./context");
|
|
21
21
|
var _collapsible_nav_button = require("./collapsible_nav_button");
|
|
22
22
|
var _collapsible_nav_beta = require("./collapsible_nav_beta.styles");
|
|
23
|
+
var _collapsible_nav_body_footer = require("./collapsible_nav_body_footer");
|
|
24
|
+
var _collapsible_nav_group = require("./collapsible_nav_group");
|
|
25
|
+
var _collapsible_nav_item = require("./collapsible_nav_item");
|
|
23
26
|
var _react2 = require("@emotion/react");
|
|
24
27
|
var _excluded = ["id", "children", "className", "initialIsCollapsed", "onCollapseToggle", "width", "side", "focusTrapProps"];
|
|
25
28
|
/*
|
|
@@ -33,7 +36,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
33
36
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
34
37
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
35
38
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
36
|
-
var
|
|
39
|
+
var _EuiCollapsibleNavBeta = function _EuiCollapsibleNavBeta(_ref) {
|
|
37
40
|
var id = _ref.id,
|
|
38
41
|
children = _ref.children,
|
|
39
42
|
className = _ref.className,
|
|
@@ -154,4 +157,15 @@ var EuiCollapsibleNavBeta = function EuiCollapsibleNavBeta(_ref) {
|
|
|
154
157
|
"aria-controls": flyoutID
|
|
155
158
|
}), !hideFlyout && flyout);
|
|
156
159
|
};
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
* Combined export with subcomponents
|
|
163
|
+
*/
|
|
164
|
+
|
|
165
|
+
var EuiCollapsibleNavBeta = Object.assign(_EuiCollapsibleNavBeta, {
|
|
166
|
+
Body: _collapsible_nav_body_footer.EuiCollapsibleNavBody,
|
|
167
|
+
Footer: _collapsible_nav_body_footer.EuiCollapsibleNavFooter,
|
|
168
|
+
Group: _collapsible_nav_group.EuiCollapsibleNavGroup,
|
|
169
|
+
Item: _collapsible_nav_item.EuiCollapsibleNavItem
|
|
170
|
+
});
|
|
157
171
|
exports.EuiCollapsibleNavBeta = EuiCollapsibleNavBeta;
|
|
@@ -8,21 +8,15 @@ var _react = require("@emotion/react");
|
|
|
8
8
|
var _global_styling = require("../../global_styling");
|
|
9
9
|
var _themes = require("../../themes");
|
|
10
10
|
var _header = require("../header/header.styles");
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
styles: "&,.euiFlyoutBody__overflow{scrollbar-width:none;&::-webkit-scrollbar{display:none;}};label:isPushCollapsed;"
|
|
21
|
-
} : {
|
|
22
|
-
name: "1adm1dw-isPushCollapsed",
|
|
23
|
-
styles: "&,.euiFlyoutBody__overflow{scrollbar-width:none;&::-webkit-scrollbar{display:none;}};label:isPushCollapsed;",
|
|
24
|
-
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
25
|
-
};
|
|
11
|
+
var _collapsible_nav_body_footer = require("./collapsible_nav_body_footer.styles");
|
|
12
|
+
/*
|
|
13
|
+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
14
|
+
* or more contributor license agreements. Licensed under the Elastic License
|
|
15
|
+
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
|
16
|
+
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
17
|
+
* Side Public License, v 1.
|
|
18
|
+
*/
|
|
19
|
+
|
|
26
20
|
var euiCollapsibleNavBetaStyles = function euiCollapsibleNavBetaStyles(euiThemeContext) {
|
|
27
21
|
var euiTheme = euiThemeContext.euiTheme;
|
|
28
22
|
|
|
@@ -32,13 +26,11 @@ var euiCollapsibleNavBetaStyles = function euiCollapsibleNavBetaStyles(euiThemeC
|
|
|
32
26
|
var defaultHeaderHeight = (0, _header.euiHeaderVariables)(euiThemeContext).height;
|
|
33
27
|
var fixedHeaderOffset = "var(--euiFixedHeadersOffset, ".concat(defaultHeaderHeight, ")");
|
|
34
28
|
return {
|
|
35
|
-
euiCollapsibleNavBeta: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('top', fixedHeaderOffset), (0, _global_styling.
|
|
36
|
-
height: 'inherit'
|
|
37
|
-
}), (0, _global_styling.logicalCSS)('padding-bottom', euiTheme.size.xs), ".euiFlyoutBody{", (0, _global_styling.logicalCSS)('min-height', '50%'), ";}.euiFlyoutFooter{background-color:", euiTheme.colors.emptyShade, ";", (0, _global_styling.logicalCSS)('border-top', euiTheme.border.thin), ";};label:euiCollapsibleNavBeta;"),
|
|
29
|
+
euiCollapsibleNavBeta: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('top', fixedHeaderOffset), (0, _global_styling.logicalCSS)('padding-bottom', euiTheme.size.xs), ";;label:euiCollapsibleNavBeta;"),
|
|
38
30
|
left: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('border-right', euiTheme.border.thin), ";;label:left;"),
|
|
39
31
|
right: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('border-left', euiTheme.border.thin), ";;label:right;"),
|
|
40
32
|
isPush: /*#__PURE__*/(0, _react.css)((0, _themes.euiShadowFlat)(euiThemeContext), ";;label:isPush;"),
|
|
41
|
-
isPushCollapsed:
|
|
33
|
+
isPushCollapsed: /*#__PURE__*/(0, _react.css)(_collapsible_nav_body_footer.euiCollapsibleNavBodyStyles._isPushCollapsed, ";;label:isPushCollapsed;"),
|
|
42
34
|
isOverlayFullWidth: /*#__PURE__*/(0, _react.css)("&.euiFlyout{", (0, _global_styling.logicalCSS)('max-width', '100% !important'), ";};label:isOverlayFullWidth;")
|
|
43
35
|
};
|
|
44
36
|
};
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.EuiCollapsibleNavFooter = exports.EuiCollapsibleNavBody = void 0;
|
|
9
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
11
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
12
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
13
|
+
var _services = require("../../services");
|
|
14
|
+
var _flyout = require("../flyout");
|
|
15
|
+
var _context = require("./context");
|
|
16
|
+
var _collapsible_nav_body_footer = require("./collapsible_nav_body_footer.styles");
|
|
17
|
+
var _react2 = require("@emotion/react");
|
|
18
|
+
var _excluded = ["className"],
|
|
19
|
+
_excluded2 = ["className"];
|
|
20
|
+
/*
|
|
21
|
+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
22
|
+
* or more contributor license agreements. Licensed under the Elastic License
|
|
23
|
+
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
|
24
|
+
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
25
|
+
* Side Public License, v 1.
|
|
26
|
+
*/
|
|
27
|
+
/**
|
|
28
|
+
* These components are incredibly light wrappers around `EuiFlyoutBody`
|
|
29
|
+
* and `EuiFlyoutFooter` with collapsible nav-specific styling/considerations.
|
|
30
|
+
*
|
|
31
|
+
* Note: They are not intended to be used standalone outside of EuiCollapsibleNav
|
|
32
|
+
*/
|
|
33
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
34
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
35
|
+
var EuiCollapsibleNavBody = function EuiCollapsibleNavBody(_ref) {
|
|
36
|
+
var className = _ref.className,
|
|
37
|
+
props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
38
|
+
var classes = (0, _classnames.default)('euiCollapsibleNav__body', className);
|
|
39
|
+
var _useContext = (0, _react.useContext)(_context.EuiCollapsibleNavContext),
|
|
40
|
+
isCollapsed = _useContext.isCollapsed,
|
|
41
|
+
isPush = _useContext.isPush;
|
|
42
|
+
var cssStyles = [_collapsible_nav_body_footer.euiCollapsibleNavBodyStyles.euiCollapsibleNav__body, isCollapsed && isPush && _collapsible_nav_body_footer.euiCollapsibleNavBodyStyles.isPushCollapsed];
|
|
43
|
+
return (0, _react2.jsx)(_flyout.EuiFlyoutBody, (0, _extends2.default)({
|
|
44
|
+
className: classes,
|
|
45
|
+
css: cssStyles
|
|
46
|
+
// Since this is a nav, we can almost guarantee there will be clickable
|
|
47
|
+
// children/links that will enable scrolling. As such, we're optimistically
|
|
48
|
+
// removing the extra tab stop
|
|
49
|
+
,
|
|
50
|
+
scrollableTabIndex: -1
|
|
51
|
+
}, props));
|
|
52
|
+
};
|
|
53
|
+
exports.EuiCollapsibleNavBody = EuiCollapsibleNavBody;
|
|
54
|
+
var EuiCollapsibleNavFooter = function EuiCollapsibleNavFooter(_ref2) {
|
|
55
|
+
var className = _ref2.className,
|
|
56
|
+
props = (0, _objectWithoutProperties2.default)(_ref2, _excluded2);
|
|
57
|
+
var classes = (0, _classnames.default)('euiCollapsibleNav__footer', className);
|
|
58
|
+
var euiTheme = (0, _services.useEuiTheme)();
|
|
59
|
+
var styles = (0, _collapsible_nav_body_footer.euiCollapsibleNavFooterStyles)(euiTheme);
|
|
60
|
+
var cssStyles = [styles.euiCollapsibleNav__footer];
|
|
61
|
+
return (0, _react2.jsx)(_flyout.EuiFlyoutFooter, (0, _extends2.default)({
|
|
62
|
+
className: classes,
|
|
63
|
+
css: cssStyles
|
|
64
|
+
}, props));
|
|
65
|
+
};
|
|
66
|
+
exports.EuiCollapsibleNavFooter = EuiCollapsibleNavFooter;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.euiCollapsibleNavFooterStyles = exports.euiCollapsibleNavBodyStyles = void 0;
|
|
7
|
+
var _react = require("@emotion/react");
|
|
8
|
+
var _global_styling = require("../../global_styling");
|
|
9
|
+
/*
|
|
10
|
+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
11
|
+
* or more contributor license agreements. Licensed under the Elastic License
|
|
12
|
+
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
|
13
|
+
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
14
|
+
* Side Public License, v 1.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
var euiCollapsibleNavBodyStyles = {
|
|
18
|
+
// In case things get really dire responsively, ensure the footer doesn't overtake the body
|
|
19
|
+
euiCollapsibleNav__body: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('min-height', '50%'), ";;label:euiCollapsibleNav__body;"),
|
|
20
|
+
get isPushCollapsed() {
|
|
21
|
+
return /*#__PURE__*/(0, _react.css)(".euiFlyoutBody__overflow{", this._isPushCollapsed, ";};label:isPushCollapsed;");
|
|
22
|
+
},
|
|
23
|
+
// CSS is reused by main euiCollapsibleNav styles in case the body component isn't used
|
|
24
|
+
_isPushCollapsed: "\n /* Hide the scrollbar for docked mode (while still keeping the nav scrollable)\n Otherwise if scrollbars are visible, button icon visibility suffers. */\n scrollbar-width: none; /* Firefox */\n\n &::-webkit-scrollbar {\n display: none; /* Chrome, Edge, & Safari */\n }\n "
|
|
25
|
+
};
|
|
26
|
+
exports.euiCollapsibleNavBodyStyles = euiCollapsibleNavBodyStyles;
|
|
27
|
+
var euiCollapsibleNavFooterStyles = function euiCollapsibleNavFooterStyles(_ref) {
|
|
28
|
+
var euiTheme = _ref.euiTheme;
|
|
29
|
+
return {
|
|
30
|
+
euiCollapsibleNav__footer: /*#__PURE__*/(0, _react.css)("background-color:", euiTheme.colors.emptyShade, ";", (0, _global_styling.logicalCSS)('border-top', euiTheme.border.thin), ";;label:euiCollapsibleNav__footer;")
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
exports.euiCollapsibleNavFooterStyles = euiCollapsibleNavFooterStyles;
|
package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_group/collapsible_nav_group.js
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.EuiCollapsibleNavGroup = void 0;
|
|
9
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
11
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
12
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
13
|
+
var _services = require("../../../services");
|
|
14
|
+
var _context = require("../context");
|
|
15
|
+
var _collapsible_nav_item = require("../collapsible_nav_item/collapsible_nav_item");
|
|
16
|
+
var _collapsed_nav_popover = require("../collapsible_nav_item/collapsed/collapsed_nav_popover");
|
|
17
|
+
var _collapsible_nav_group = require("./collapsible_nav_group.styles");
|
|
18
|
+
var _react2 = require("@emotion/react");
|
|
19
|
+
var _excluded = ["items", "className", "wrapperProps"];
|
|
20
|
+
/*
|
|
21
|
+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
22
|
+
* or more contributor license agreements. Licensed under the Elastic License
|
|
23
|
+
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
|
24
|
+
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
25
|
+
* Side Public License, v 1.
|
|
26
|
+
*/
|
|
27
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
28
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
29
|
+
/**
|
|
30
|
+
* This component should only ever be used as a **top-level component**, and not as a sub-item.
|
|
31
|
+
* It also should **not** be used in the nav footer.
|
|
32
|
+
*/
|
|
33
|
+
var EuiCollapsibleNavGroup = function EuiCollapsibleNavGroup(_ref) {
|
|
34
|
+
var items = _ref.items,
|
|
35
|
+
className = _ref.className,
|
|
36
|
+
wrapperProps = _ref.wrapperProps,
|
|
37
|
+
props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
38
|
+
var _useContext = (0, _react.useContext)(_context.EuiCollapsibleNavContext),
|
|
39
|
+
isCollapsed = _useContext.isCollapsed,
|
|
40
|
+
isPush = _useContext.isPush;
|
|
41
|
+
var classes = (0, _classnames.default)('euiCollapsibleNavGroup', className, wrapperProps === null || wrapperProps === void 0 ? void 0 : wrapperProps.className);
|
|
42
|
+
var euiTheme = (0, _services.useEuiTheme)();
|
|
43
|
+
var styles = (0, _collapsible_nav_group.euiCollapsibleNavGroupStyles)(euiTheme);
|
|
44
|
+
var cssStyles = [styles.euiCollapsibleNavGroup, isPush && isCollapsed ? styles.euiCollapsibleNavGroup__title : styles.isWrapper, wrapperProps === null || wrapperProps === void 0 ? void 0 : wrapperProps.css];
|
|
45
|
+
return (0, _react2.jsx)("div", (0, _extends2.default)({}, wrapperProps, {
|
|
46
|
+
className: classes,
|
|
47
|
+
css: cssStyles
|
|
48
|
+
}), isCollapsed && isPush ? (0, _react2.jsx)(_collapsed_nav_popover.EuiCollapsedNavPopover, (0, _extends2.default)({
|
|
49
|
+
className: classes,
|
|
50
|
+
items: items
|
|
51
|
+
}, props)) : (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)(_collapsible_nav_item.EuiCollapsibleNavItem, (0, _extends2.default)({}, props, {
|
|
52
|
+
css: styles.euiCollapsibleNavGroup__title
|
|
53
|
+
})), (0, _react2.jsx)(_collapsible_nav_item.EuiCollapsibleNavSubItems, {
|
|
54
|
+
items: items,
|
|
55
|
+
isGroup: true
|
|
56
|
+
})));
|
|
57
|
+
};
|
|
58
|
+
exports.EuiCollapsibleNavGroup = EuiCollapsibleNavGroup;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.euiCollapsibleNavGroupStyles = void 0;
|
|
7
|
+
var _react = require("@emotion/react");
|
|
8
|
+
var _collapsible_nav_item = require("../collapsible_nav_item/collapsible_nav_item.styles");
|
|
9
|
+
/*
|
|
10
|
+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
11
|
+
* or more contributor license agreements. Licensed under the Elastic License
|
|
12
|
+
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
|
13
|
+
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
14
|
+
* Side Public License, v 1.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
var euiCollapsibleNavGroupStyles = function euiCollapsibleNavGroupStyles(euiThemeContext) {
|
|
18
|
+
var euiTheme = euiThemeContext.euiTheme;
|
|
19
|
+
var sharedStyles = (0, _collapsible_nav_item.euiCollapsibleNavItemVariables)(euiThemeContext);
|
|
20
|
+
return {
|
|
21
|
+
euiCollapsibleNavGroup: /*#__PURE__*/(0, _react.css)(";label:euiCollapsibleNavGroup;"),
|
|
22
|
+
isWrapper: /*#__PURE__*/(0, _react.css)("margin:", sharedStyles.padding, ";;label:isWrapper;"),
|
|
23
|
+
euiCollapsibleNavGroup__title: /*#__PURE__*/(0, _react.css)("margin-block:", euiTheme.size.base, ";margin-inline:0;.euiIcon{transform:scale(1.25);};label:euiCollapsibleNavGroup__title;")
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
exports.euiCollapsibleNavGroupStyles = euiCollapsibleNavGroupStyles;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "EuiCollapsibleNavGroup", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function get() {
|
|
9
|
+
return _collapsible_nav_group.EuiCollapsibleNavGroup;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
var _collapsible_nav_group = require("./collapsible_nav_group");
|
|
@@ -56,10 +56,6 @@ var EuiCollapsibleNavAccordion = function EuiCollapsibleNavAccordion(_ref) {
|
|
|
56
56
|
var euiTheme = (0, _services.useEuiTheme)();
|
|
57
57
|
var styles = (0, _collapsible_nav_accordion.euiCollapsibleNavAccordionStyles)(euiTheme);
|
|
58
58
|
var cssStyles = [styles.euiCollapsibleNavAccordion, isSubItem ? styles.isSubItem : styles.isTopItem, isSelected && styles.isSelected, accordionProps === null || accordionProps === void 0 ? void 0 : accordionProps.css];
|
|
59
|
-
|
|
60
|
-
/**
|
|
61
|
-
* Title / accordion trigger
|
|
62
|
-
*/
|
|
63
59
|
var isTitleInteractive = !!(href || linkProps !== null && linkProps !== void 0 && linkProps.onClick);
|
|
64
60
|
|
|
65
61
|
// Stop propagation on the title so that the accordion toggle doesn't occur on click
|
|
@@ -71,32 +67,6 @@ var EuiCollapsibleNavAccordion = function EuiCollapsibleNavAccordion(_ref) {
|
|
|
71
67
|
}, [linkProps === null || linkProps === void 0 ? void 0 : linkProps.onClick] // eslint-disable-line react-hooks/exhaustive-deps
|
|
72
68
|
);
|
|
73
69
|
|
|
74
|
-
/**
|
|
75
|
-
* Child items
|
|
76
|
-
*/
|
|
77
|
-
// If any of the sub items have an icon, default to an
|
|
78
|
-
// icon of `empty` so that all text lines up vertically
|
|
79
|
-
var itemsHaveIcons = (0, _react.useMemo)(function () {
|
|
80
|
-
return items.some(function (item) {
|
|
81
|
-
return !!item.icon;
|
|
82
|
-
});
|
|
83
|
-
}, [items]);
|
|
84
|
-
var icon = itemsHaveIcons ? 'empty' : undefined;
|
|
85
|
-
var childrenCssStyles = [styles.children.euiCollapsibleNavAccordion__children, isSubItem ? styles.children.isSubItem : styles.children.isTopItem];
|
|
86
|
-
var children = (0, _react2.jsx)("div", {
|
|
87
|
-
css: childrenCssStyles,
|
|
88
|
-
className: "euiCollapsibleNavAccordion__children"
|
|
89
|
-
}, items.map(function (item, index) {
|
|
90
|
-
return (
|
|
91
|
-
// This is an intentional circular dependency between the accordion & parent item display.
|
|
92
|
-
// EuiSideNavItem is purposely recursive to support any amount of nested sub items,
|
|
93
|
-
// and split up into separate files/components for better dev readability
|
|
94
|
-
(0, _react2.jsx)(_collapsible_nav_item.EuiCollapsibleNavSubItem, (0, _extends2.default)({
|
|
95
|
-
key: index,
|
|
96
|
-
icon: icon
|
|
97
|
-
}, item))
|
|
98
|
-
);
|
|
99
|
-
}));
|
|
100
70
|
return (0, _react2.jsx)(_accordion.EuiAccordion, (0, _extends2.default)({
|
|
101
71
|
id: groupID,
|
|
102
72
|
className: classes,
|
|
@@ -118,6 +88,10 @@ var EuiCollapsibleNavAccordion = function EuiCollapsibleNavAccordion(_ref) {
|
|
|
118
88
|
}, accordionProps === null || accordionProps === void 0 ? void 0 : accordionProps.arrowProps), {}, {
|
|
119
89
|
css: [styles.euiCollapsibleNavAccordion__arrow, accordionProps === null || accordionProps === void 0 ? void 0 : (_accordionProps$arrow = accordionProps.arrowProps) === null || _accordionProps$arrow === void 0 ? void 0 : _accordionProps$arrow.css]
|
|
120
90
|
})
|
|
121
|
-
}),
|
|
91
|
+
}), (0, _react2.jsx)(_collapsible_nav_item.EuiCollapsibleNavSubItems, {
|
|
92
|
+
items: items,
|
|
93
|
+
isSubItem: isSubItem,
|
|
94
|
+
className: "euiCollapsibleNavAccordion__children"
|
|
95
|
+
}));
|
|
122
96
|
};
|
|
123
97
|
exports.EuiCollapsibleNavAccordion = EuiCollapsibleNavAccordion;
|
|
@@ -26,15 +26,7 @@ var euiCollapsibleNavAccordionStyles = function euiCollapsibleNavAccordionStyles
|
|
|
26
26
|
isSelected: /*#__PURE__*/(0, _react.css)("&>.euiAccordion__triggerWrapper{background-color:", sharedStyles.backgroundSelectedColor, ";&:hover{background-color:", sharedStyles.backgroundSelectedColor, ";}};label:isSelected;"),
|
|
27
27
|
isSubItem: /*#__PURE__*/(0, _react.css)("&.euiAccordion-isOpen{", (0, _global_styling.logicalCSS)('margin-bottom', euiTheme.size.m), ";};label:isSubItem;"),
|
|
28
28
|
// Arrow element
|
|
29
|
-
euiCollapsibleNavAccordion__arrow: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('margin-right', euiTheme.size.xs), _global_styling.euiCanAnimate, "{transition:background-color ", sharedStyles.animation, ";}&:hover,&:focus-visible{background-color:", euiTheme.colors.lightShade, ";&>.euiIcon{color:", sharedStyles.color, ";}}transform:none!important;&>.euiIcon{color:", sharedStyles.rightIconColor, ";transform:rotate(90deg);", _global_styling.euiCanAnimate, "{transition:transform ", sharedStyles.animation, ",color ", sharedStyles.animation, ";}}&.euiAccordion__arrow[aria-expanded='true']>.euiIcon{color:", sharedStyles.color, ";transform:rotate(-90deg);};label:euiCollapsibleNavAccordion__arrow;")
|
|
30
|
-
// Children wrapper
|
|
31
|
-
children: {
|
|
32
|
-
euiCollapsibleNavAccordion__children: /*#__PURE__*/(0, _react.css)(";label:euiCollapsibleNavAccordion__children;"),
|
|
33
|
-
isTopItem: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('padding-top', euiTheme.size.xs), " ", (0, _global_styling.logicalCSS)('padding-left', euiTheme.size.xl), ";;label:isTopItem;"),
|
|
34
|
-
isSubItem: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('border-left', euiTheme.border.thin), " ", (0, _global_styling.logicalCSS)('margin-left', euiTheme.size.s), " ", (0, _global_styling.logicalCSS)('padding-left', (0, _global_styling.mathWithUnits)([euiTheme.size.s, euiTheme.border.width.thin], function (x, y) {
|
|
35
|
-
return x - y;
|
|
36
|
-
})), ";;label:isSubItem;")
|
|
37
|
-
}
|
|
29
|
+
euiCollapsibleNavAccordion__arrow: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('margin-right', euiTheme.size.xs), _global_styling.euiCanAnimate, "{transition:background-color ", sharedStyles.animation, ";}&:hover,&:focus-visible{background-color:", euiTheme.colors.lightShade, ";&>.euiIcon{color:", sharedStyles.color, ";}}transform:none!important;&>.euiIcon{color:", sharedStyles.rightIconColor, ";transform:rotate(90deg);", _global_styling.euiCanAnimate, "{transition:transform ", sharedStyles.animation, ",color ", sharedStyles.animation, ";}}&.euiAccordion__arrow[aria-expanded='true']>.euiIcon{color:", sharedStyles.color, ";transform:rotate(-90deg);};label:euiCollapsibleNavAccordion__arrow;")
|
|
38
30
|
};
|
|
39
31
|
};
|
|
40
32
|
exports.euiCollapsibleNavAccordionStyles = euiCollapsibleNavAccordionStyles;
|
package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js
CHANGED
|
@@ -5,14 +5,13 @@ var _typeof = require("@babel/runtime/helpers/typeof");
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.EuiCollapsibleNavSubItem = exports.EuiCollapsibleNavItem = void 0;
|
|
8
|
+
exports.EuiCollapsibleNavSubItems = exports.EuiCollapsibleNavSubItem = exports.EuiCollapsibleNavItemTitle = exports.EuiCollapsibleNavItem = void 0;
|
|
9
9
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
10
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
11
11
|
var _react = _interopRequireWildcard(require("react"));
|
|
12
12
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
13
13
|
var _services = require("../../../services");
|
|
14
14
|
var _icon = require("../../icon");
|
|
15
|
-
var _title = require("../../title");
|
|
16
15
|
var _context = require("../context");
|
|
17
16
|
var _collapsed = require("./collapsed");
|
|
18
17
|
var _collapsible_nav_accordion = require("./collapsible_nav_accordion");
|
|
@@ -20,8 +19,9 @@ var _collapsible_nav_link = require("./collapsible_nav_link");
|
|
|
20
19
|
var _collapsible_nav_item = require("./collapsible_nav_item.styles");
|
|
21
20
|
var _react2 = require("@emotion/react");
|
|
22
21
|
var _excluded = ["isSubItem", "title", "titleElement", "icon", "iconProps", "items", "children"],
|
|
23
|
-
_excluded2 = ["
|
|
24
|
-
_excluded3 = ["className"]
|
|
22
|
+
_excluded2 = ["renderItem", "className"],
|
|
23
|
+
_excluded3 = ["items", "isSubItem", "isGroup", "className"],
|
|
24
|
+
_excluded4 = ["className"];
|
|
25
25
|
/*
|
|
26
26
|
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
27
27
|
* or more contributor license agreements. Licensed under the Elastic License
|
|
@@ -89,23 +89,17 @@ var EuiCollapsibleNavItemTitle = function EuiCollapsibleNavItemTitle(_ref2) {
|
|
|
89
89
|
};
|
|
90
90
|
|
|
91
91
|
/**
|
|
92
|
-
* Sub-items can either be a
|
|
93
|
-
*
|
|
92
|
+
* Sub-items can either be a totally custom rendered item,
|
|
93
|
+
* or they can simply be more links or accordions
|
|
94
94
|
*/
|
|
95
|
+
exports.EuiCollapsibleNavItemTitle = EuiCollapsibleNavItemTitle;
|
|
95
96
|
var EuiCollapsibleNavSubItem = function EuiCollapsibleNavSubItem(_ref3) {
|
|
96
|
-
var
|
|
97
|
+
var renderItem = _ref3.renderItem,
|
|
97
98
|
className = _ref3.className,
|
|
98
99
|
props = (0, _objectWithoutProperties2.default)(_ref3, _excluded2);
|
|
99
|
-
var euiTheme = (0, _services.useEuiTheme)();
|
|
100
|
-
var styles = (0, _collapsible_nav_item.euiCollapsibleNavSubItemGroupTitleStyles)(euiTheme);
|
|
101
100
|
var classes = (0, _classnames.default)('euiCollapsibleNavSubItem', className);
|
|
102
|
-
if (
|
|
103
|
-
|
|
104
|
-
return (0, _react2.jsx)(_title.EuiTitle, {
|
|
105
|
-
size: "xxxs",
|
|
106
|
-
css: styles.euiCollapsibleNavItem__groupTitle,
|
|
107
|
-
className: "euiCollapsibleNavItem__groupTitle eui-textTruncate"
|
|
108
|
-
}, (0, _react2.jsx)(TitleElement, null, props.title));
|
|
101
|
+
if (renderItem) {
|
|
102
|
+
return (0, _react2.jsx)(_react.default.Fragment, null, renderItem());
|
|
109
103
|
}
|
|
110
104
|
return (0, _react2.jsx)(EuiCollapsibleNavItemDisplay, (0, _extends2.default)({
|
|
111
105
|
className: classes
|
|
@@ -115,12 +109,52 @@ var EuiCollapsibleNavSubItem = function EuiCollapsibleNavSubItem(_ref3) {
|
|
|
115
109
|
};
|
|
116
110
|
|
|
117
111
|
/**
|
|
118
|
-
*
|
|
112
|
+
* Reuseable component for rendering a group of sub items
|
|
113
|
+
* Used by both `EuiCollapsibleNavGroup` and `EuiCollapsibleNavAccordion`
|
|
119
114
|
*/
|
|
120
115
|
exports.EuiCollapsibleNavSubItem = EuiCollapsibleNavSubItem;
|
|
121
|
-
var
|
|
122
|
-
var
|
|
123
|
-
|
|
116
|
+
var EuiCollapsibleNavSubItems = function EuiCollapsibleNavSubItems(_ref4) {
|
|
117
|
+
var items = _ref4.items,
|
|
118
|
+
isSubItem = _ref4.isSubItem,
|
|
119
|
+
isGroup = _ref4.isGroup,
|
|
120
|
+
className = _ref4.className,
|
|
121
|
+
rest = (0, _objectWithoutProperties2.default)(_ref4, _excluded3);
|
|
122
|
+
var classes = (0, _classnames.default)('euiCollapsibleNavItem__items', className);
|
|
123
|
+
var euiTheme = (0, _services.useEuiTheme)();
|
|
124
|
+
var styles = (0, _collapsible_nav_item.euiCollapsibleNavSubItemsStyles)(euiTheme);
|
|
125
|
+
var cssStyles = [styles.euiCollapsibleNavItem__items, isGroup ? styles.isGroup : isSubItem ? styles.isSubItem : styles.isTopItem];
|
|
126
|
+
var itemsHaveIcons = (0, _react.useMemo)(function () {
|
|
127
|
+
return items.some(function (item) {
|
|
128
|
+
return !!item.icon;
|
|
129
|
+
});
|
|
130
|
+
}, [items]);
|
|
131
|
+
return (0, _react2.jsx)("div", (0, _extends2.default)({
|
|
132
|
+
className: classes,
|
|
133
|
+
css: cssStyles
|
|
134
|
+
}, rest), items.map(function (item, index) {
|
|
135
|
+
// If any of the sub items have an icon, default to an
|
|
136
|
+
// icon of `empty` so that all text lines up vertically
|
|
137
|
+
if (!item.renderItem && itemsHaveIcons && !item.icon) {
|
|
138
|
+
item.icon = 'empty';
|
|
139
|
+
}
|
|
140
|
+
return (
|
|
141
|
+
// This is an intentional circular dependency between the accordion & parent item display.
|
|
142
|
+
// EuiSideNavItem is purposely recursive to support any amount of nested sub items,
|
|
143
|
+
// and split up into separate files/components for better dev readability
|
|
144
|
+
(0, _react2.jsx)(EuiCollapsibleNavSubItem, (0, _extends2.default)({
|
|
145
|
+
key: index
|
|
146
|
+
}, item))
|
|
147
|
+
);
|
|
148
|
+
}));
|
|
149
|
+
};
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* The actual exported component
|
|
153
|
+
*/
|
|
154
|
+
exports.EuiCollapsibleNavSubItems = EuiCollapsibleNavSubItems;
|
|
155
|
+
var EuiCollapsibleNavItem = function EuiCollapsibleNavItem(_ref5) {
|
|
156
|
+
var className = _ref5.className,
|
|
157
|
+
props = (0, _objectWithoutProperties2.default)(_ref5, _excluded4);
|
|
124
158
|
var classes = (0, _classnames.default)('euiCollapsibleNavItem', className);
|
|
125
159
|
var _useContext = (0, _react.useContext)(_context.EuiCollapsibleNavContext),
|
|
126
160
|
isCollapsed = _useContext.isCollapsed,
|
|
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.
|
|
7
|
+
exports.euiCollapsibleNavSubItemsStyles = exports.euiCollapsibleNavItemVariables = exports.euiCollapsibleNavItemTitleStyles = void 0;
|
|
8
8
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
9
|
var _react = require("@emotion/react");
|
|
10
10
|
var _global_styling = require("../../../global_styling");
|
|
@@ -51,11 +51,20 @@ var euiCollapsibleNavItemTitleStyles = {
|
|
|
51
51
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
52
52
|
}
|
|
53
53
|
};
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Sub item groups
|
|
57
|
+
*/
|
|
54
58
|
exports.euiCollapsibleNavItemTitleStyles = euiCollapsibleNavItemTitleStyles;
|
|
55
|
-
var
|
|
59
|
+
var euiCollapsibleNavSubItemsStyles = function euiCollapsibleNavSubItemsStyles(_ref) {
|
|
56
60
|
var euiTheme = _ref.euiTheme;
|
|
57
61
|
return {
|
|
58
|
-
|
|
62
|
+
euiCollapsibleNavItem__items: /*#__PURE__*/(0, _react.css)(";label:euiCollapsibleNavItem__items;"),
|
|
63
|
+
isGroup: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('padding-top', euiTheme.size.xs), " ", (0, _global_styling.logicalCSS)('padding-left', euiTheme.size.s), ";;label:isGroup;"),
|
|
64
|
+
isTopItem: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('padding-top', euiTheme.size.xs), " ", (0, _global_styling.logicalCSS)('padding-left', euiTheme.size.xl), ";;label:isTopItem;"),
|
|
65
|
+
isSubItem: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('border-left', euiTheme.border.thin), " ", (0, _global_styling.logicalCSS)('margin-left', euiTheme.size.s), " ", (0, _global_styling.logicalCSS)('padding-left', (0, _global_styling.mathWithUnits)([euiTheme.size.s, euiTheme.border.width.thin], function (x, y) {
|
|
66
|
+
return x - y;
|
|
67
|
+
})), ";;label:isSubItem;")
|
|
59
68
|
};
|
|
60
69
|
};
|
|
61
|
-
exports.
|
|
70
|
+
exports.euiCollapsibleNavSubItemsStyles = euiCollapsibleNavSubItemsStyles;
|