@elastic/eui 69.0.0 → 70.0.0
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 +0 -375
- package/dist/eui_theme_dark.json +0 -27
- package/dist/eui_theme_dark.json.d.ts +0 -27
- package/dist/eui_theme_dark.min.css +1 -1
- package/dist/eui_theme_light.css +0 -375
- package/dist/eui_theme_light.json +0 -27
- package/dist/eui_theme_light.json.d.ts +0 -27
- package/dist/eui_theme_light.min.css +1 -1
- package/es/components/basic_table/in_memory_table.js +8 -2
- package/es/components/code/code.js +7 -3
- package/es/components/code/code.styles.js +32 -0
- package/es/components/code/code_block.js +72 -315
- package/es/components/code/code_block.styles.js +153 -0
- package/es/components/code/code_block_controls.js +29 -0
- package/es/components/code/code_block_controls.styles.js +43 -0
- package/es/components/code/code_block_copy.js +65 -0
- package/es/components/code/code_block_full_screen.js +90 -0
- package/es/components/code/code_block_line.styles.js +49 -0
- package/es/components/code/code_block_overflow.js +78 -0
- package/es/components/code/code_block_virtualized.js +59 -0
- package/es/components/code/code_syntax.styles.js +43 -0
- package/es/components/code/utils.js +43 -37
- package/es/components/collapsible_nav/collapsible_nav.js +0 -5
- package/es/components/overlay_mask/overlay_mask.js +8 -14
- package/es/components/overlay_mask/overlay_mask.styles.js +4 -14
- package/es/components/overlay_mask/overlay_mask_body.styles.js +18 -0
- package/es/components/provider/provider.js +1 -5
- package/es/components/resizable_container/helpers.js +2 -2
- package/es/components/resizable_container/resizable_container.js +6 -9
- package/es/components/resizable_container/resizable_container.styles.js +28 -0
- package/es/components/resizable_container/resizable_panel.js +25 -48
- package/es/components/resizable_container/resizable_panel.styles.js +69 -0
- package/es/components/search_bar/query/ast.js +14 -3
- package/es/components/tool_tip/tool_tip.js +3 -2
- package/es/components/tool_tip/tool_tip.styles.js +17 -22
- package/es/components/tool_tip/tool_tip_arrow.js +17 -3
- package/es/components/tool_tip/tool_tip_popover.js +7 -7
- package/es/components/tour/tour.styles.js +4 -3
- package/es/components/tour/tour_step.js +7 -5
- package/es/global_styling/functions/logicals.js +5 -3
- package/es/global_styling/functions/math.js +37 -19
- package/es/global_styling/mixins/_padding.js +13 -9
- package/eui.d.ts +291 -37
- package/i18ntokens.json +22 -22
- package/lib/components/basic_table/in_memory_table.js +8 -2
- package/lib/components/code/code.js +9 -3
- package/lib/components/code/code.styles.js +35 -0
- package/lib/components/code/code_block.js +72 -320
- package/lib/components/code/code_block.styles.js +154 -0
- package/lib/components/code/code_block_controls.js +48 -0
- package/lib/components/code/code_block_controls.styles.js +39 -0
- package/lib/components/code/code_block_copy.js +78 -0
- package/lib/components/code/code_block_full_screen.js +108 -0
- package/lib/components/code/code_block_line.styles.js +45 -0
- package/lib/components/code/code_block_overflow.js +82 -0
- package/lib/components/code/code_block_virtualized.js +72 -0
- package/lib/components/code/code_syntax.styles.js +57 -0
- package/lib/components/code/utils.js +40 -39
- package/lib/components/collapsible_nav/collapsible_nav.js +0 -5
- package/lib/components/overlay_mask/overlay_mask.js +9 -14
- package/lib/components/overlay_mask/overlay_mask.styles.js +13 -17
- package/lib/components/overlay_mask/overlay_mask_body.styles.js +20 -0
- package/lib/components/provider/provider.js +7 -12
- package/lib/components/resizable_container/helpers.js +2 -2
- package/lib/components/resizable_container/resizable_container.js +7 -9
- package/lib/components/resizable_container/resizable_container.styles.js +31 -0
- package/lib/components/resizable_container/resizable_panel.js +28 -49
- package/lib/components/resizable_container/resizable_panel.styles.js +74 -0
- package/lib/components/search_bar/query/ast.js +14 -3
- package/lib/components/tool_tip/tool_tip.js +3 -2
- package/lib/components/tool_tip/tool_tip.styles.js +18 -26
- package/lib/components/tool_tip/tool_tip_arrow.js +19 -4
- package/lib/components/tool_tip/tool_tip_popover.js +6 -6
- package/lib/components/tour/tour.styles.js +3 -2
- package/lib/components/tour/tour_step.js +7 -5
- package/lib/global_styling/functions/logicals.js +5 -3
- package/lib/global_styling/functions/math.js +37 -19
- package/lib/global_styling/mixins/_padding.js +17 -10
- package/optimize/es/components/basic_table/in_memory_table.js +1 -1
- package/optimize/es/components/code/code.js +7 -3
- package/optimize/es/components/code/code.styles.js +32 -0
- package/optimize/es/components/code/code_block.js +70 -299
- package/optimize/es/components/code/code_block.styles.js +153 -0
- package/optimize/es/components/code/code_block_controls.js +29 -0
- package/optimize/es/components/code/code_block_controls.styles.js +43 -0
- package/optimize/es/components/code/code_block_copy.js +55 -0
- package/optimize/es/components/code/code_block_full_screen.js +80 -0
- package/optimize/es/components/code/code_block_line.styles.js +49 -0
- package/optimize/es/components/code/code_block_overflow.js +67 -0
- package/optimize/es/components/code/code_block_virtualized.js +59 -0
- package/optimize/es/components/code/code_syntax.styles.js +43 -0
- package/optimize/es/components/code/utils.js +43 -37
- package/optimize/es/components/overlay_mask/overlay_mask.js +8 -9
- package/optimize/es/components/overlay_mask/overlay_mask.styles.js +4 -14
- package/optimize/es/components/overlay_mask/overlay_mask_body.styles.js +18 -0
- package/optimize/es/components/provider/provider.js +1 -5
- package/optimize/es/components/resizable_container/helpers.js +2 -2
- package/optimize/es/components/resizable_container/resizable_container.js +6 -9
- package/optimize/es/components/resizable_container/resizable_container.styles.js +28 -0
- package/optimize/es/components/resizable_container/resizable_panel.js +25 -48
- package/optimize/es/components/resizable_container/resizable_panel.styles.js +69 -0
- package/optimize/es/components/search_bar/query/ast.js +14 -3
- package/optimize/es/components/tool_tip/tool_tip.js +3 -2
- package/optimize/es/components/tool_tip/tool_tip.styles.js +17 -22
- package/optimize/es/components/tool_tip/tool_tip_arrow.js +9 -3
- package/optimize/es/components/tool_tip/tool_tip_popover.js +7 -7
- package/optimize/es/components/tour/tour.styles.js +4 -3
- package/optimize/es/components/tour/tour_step.js +7 -5
- package/optimize/es/global_styling/functions/logicals.js +5 -3
- package/optimize/es/global_styling/functions/math.js +35 -17
- package/optimize/es/global_styling/mixins/_padding.js +13 -9
- package/optimize/lib/components/basic_table/in_memory_table.js +1 -1
- package/optimize/lib/components/code/code.js +9 -3
- package/optimize/lib/components/code/code.styles.js +35 -0
- package/optimize/lib/components/code/code_block.js +71 -306
- package/optimize/lib/components/code/code_block.styles.js +156 -0
- package/optimize/lib/components/code/code_block_controls.js +48 -0
- package/optimize/lib/components/code/code_block_controls.styles.js +39 -0
- package/optimize/lib/components/code/code_block_copy.js +78 -0
- package/optimize/lib/components/code/code_block_full_screen.js +108 -0
- package/optimize/lib/components/code/code_block_line.styles.js +45 -0
- package/optimize/lib/components/code/code_block_overflow.js +82 -0
- package/optimize/lib/components/code/code_block_virtualized.js +81 -0
- package/optimize/lib/components/code/code_syntax.styles.js +57 -0
- package/optimize/lib/components/code/utils.js +40 -37
- package/optimize/lib/components/overlay_mask/overlay_mask.js +9 -9
- package/optimize/lib/components/overlay_mask/overlay_mask.styles.js +13 -17
- package/optimize/lib/components/overlay_mask/overlay_mask_body.styles.js +20 -0
- package/optimize/lib/components/provider/provider.js +7 -12
- package/optimize/lib/components/resizable_container/helpers.js +2 -2
- package/optimize/lib/components/resizable_container/resizable_container.js +7 -9
- package/optimize/lib/components/resizable_container/resizable_container.styles.js +31 -0
- package/optimize/lib/components/resizable_container/resizable_panel.js +28 -49
- package/optimize/lib/components/resizable_container/resizable_panel.styles.js +76 -0
- package/optimize/lib/components/search_bar/query/ast.js +14 -3
- package/optimize/lib/components/tool_tip/tool_tip.js +3 -2
- package/optimize/lib/components/tool_tip/tool_tip.styles.js +18 -26
- package/optimize/lib/components/tool_tip/tool_tip_arrow.js +10 -10
- package/optimize/lib/components/tool_tip/tool_tip_popover.js +6 -6
- package/optimize/lib/components/tour/tour.styles.js +3 -2
- package/optimize/lib/components/tour/tour_step.js +7 -5
- package/optimize/lib/global_styling/functions/logicals.js +4 -10
- package/optimize/lib/global_styling/functions/math.js +37 -19
- package/optimize/lib/global_styling/mixins/_padding.js +17 -10
- package/package.json +8 -7
- package/src/components/index.scss +0 -1
- package/src/components/resizable_container/_index.scss +0 -2
- package/src/global_styling/mixins/_header.scss +1 -1
- package/src/global_styling/variables/_index.scss +0 -1
- package/src/themes/amsterdam/overrides/_index.scss +0 -1
- package/test-env/components/basic_table/in_memory_table.js +8 -2
- package/test-env/components/code/code.styles.js +35 -0
- package/test-env/components/code/code_block.styles.js +156 -0
- package/test-env/components/code/code_block_controls.js +48 -0
- package/test-env/components/code/code_block_controls.styles.js +39 -0
- package/test-env/components/code/code_block_copy.js +78 -0
- package/test-env/components/code/code_block_full_screen.js +108 -0
- package/test-env/components/code/code_block_line.styles.js +45 -0
- package/test-env/components/code/code_block_overflow.js +82 -0
- package/test-env/components/code/code_block_virtualized.js +81 -0
- package/test-env/components/code/code_syntax.styles.js +57 -0
- package/test-env/components/code/utils.js +40 -37
- package/test-env/components/collapsible_nav/collapsible_nav.js +0 -5
- package/test-env/components/overlay_mask/overlay_mask.js +9 -14
- package/test-env/components/overlay_mask/overlay_mask.styles.js +13 -17
- package/test-env/components/overlay_mask/overlay_mask_body.styles.js +20 -0
- package/test-env/components/provider/provider.js +7 -12
- package/test-env/components/resizable_container/helpers.js +2 -2
- package/test-env/components/resizable_container/resizable_container.js +7 -9
- package/test-env/components/resizable_container/resizable_container.styles.js +31 -0
- package/test-env/components/resizable_container/resizable_panel.js +28 -49
- package/test-env/components/resizable_container/resizable_panel.styles.js +76 -0
- package/test-env/components/search_bar/query/ast.js +14 -3
- package/test-env/components/tool_tip/tool_tip.js +3 -2
- package/test-env/components/tool_tip/tool_tip.styles.js +18 -26
- package/test-env/components/tool_tip/tool_tip_arrow.js +16 -11
- package/test-env/components/tool_tip/tool_tip_popover.js +6 -6
- package/test-env/components/tour/tour.styles.js +3 -2
- package/test-env/components/tour/tour_step.js +7 -5
- package/test-env/global_styling/functions/logicals.js +4 -10
- package/test-env/global_styling/functions/math.js +37 -19
- package/test-env/global_styling/mixins/_padding.js +17 -10
- package/src/components/code/_code.scss +0 -15
- package/src/components/code/_code_block.scss +0 -177
- package/src/components/code/_index.scss +0 -4
- package/src/components/code/_mixins.scss +0 -127
- package/src/components/code/_variables.scss +0 -5
- package/src/components/resizable_container/_resizable_container.scss +0 -8
- package/src/components/resizable_container/_resizable_panel.scss +0 -51
- package/src/global_styling/variables/_colors_code.scss +0 -23
- package/src/themes/amsterdam/overrides/_code.scss +0 -9
|
@@ -17,6 +17,10 @@ var _classnames = _interopRequireDefault(require("classnames"));
|
|
|
17
17
|
|
|
18
18
|
var _utils = require("./utils");
|
|
19
19
|
|
|
20
|
+
var _services = require("../../services");
|
|
21
|
+
|
|
22
|
+
var _code = require("./code.styles");
|
|
23
|
+
|
|
20
24
|
var _react2 = require("@emotion/react");
|
|
21
25
|
|
|
22
26
|
var _excluded = ["transparentBackground", "language", "children", "className"];
|
|
@@ -55,11 +59,13 @@ var EuiCode = function EuiCode(_ref) {
|
|
|
55
59
|
var content = (0, _react.useMemo)(function () {
|
|
56
60
|
return (0, _utils.getHtmlContent)(data, children);
|
|
57
61
|
}, [data, children]);
|
|
58
|
-
var classes = (0, _classnames.default)('euiCode',
|
|
59
|
-
|
|
60
|
-
|
|
62
|
+
var classes = (0, _classnames.default)('euiCode', className);
|
|
63
|
+
var euiTheme = (0, _services.useEuiTheme)();
|
|
64
|
+
var styles = (0, _code.euiCodeStyles)(euiTheme);
|
|
65
|
+
var cssStyles = [styles.euiCode, transparentBackground && styles.transparentBackground];
|
|
61
66
|
return (0, _react2.jsx)("code", _extends({
|
|
62
67
|
className: classes,
|
|
68
|
+
css: cssStyles,
|
|
63
69
|
"data-code-language": language
|
|
64
70
|
}, rest), content);
|
|
65
71
|
};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.euiCodeStyles = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = require("@emotion/react");
|
|
9
|
+
|
|
10
|
+
var _code_syntax = require("./code_syntax.styles");
|
|
11
|
+
|
|
12
|
+
function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
|
|
13
|
+
|
|
14
|
+
var _ref = process.env.NODE_ENV === "production" ? {
|
|
15
|
+
name: "gfiv3z-transparentBackground",
|
|
16
|
+
styles: "background:transparent;label:transparentBackground;"
|
|
17
|
+
} : {
|
|
18
|
+
name: "gfiv3z-transparentBackground",
|
|
19
|
+
styles: "background:transparent;label:transparentBackground;",
|
|
20
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
var euiCodeStyles = function euiCodeStyles(euiThemeContext) {
|
|
24
|
+
var euiTheme = euiThemeContext.euiTheme;
|
|
25
|
+
var euiCodeSyntax = (0, _code_syntax.euiCodeSyntaxColors)(euiThemeContext);
|
|
26
|
+
return {
|
|
27
|
+
/*
|
|
28
|
+
* 1. Size the code against the text its embedded within.
|
|
29
|
+
*/
|
|
30
|
+
euiCode: /*#__PURE__*/(0, _react.css)("font-family:", euiTheme.font.familyCode, ";font-size:0.9em;padding:0.2em 0.5em;background:", euiCodeSyntax.backgroundColor, ";border-radius:", euiTheme.border.radius.small, ";font-weight:", euiTheme.font.weight.bold, ";color:", euiCodeSyntax.inlineCodeColor, ";", (0, _code_syntax.euiCodeSyntaxTokens)(euiThemeContext), ";;label:euiCode;"),
|
|
31
|
+
transparentBackground: _ref
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
exports.euiCodeStyles = euiCodeStyles;
|
|
@@ -11,31 +11,21 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
11
11
|
|
|
12
12
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
13
13
|
|
|
14
|
-
var _reactWindow = require("react-window");
|
|
15
|
-
|
|
16
14
|
var _services = require("../../services");
|
|
17
15
|
|
|
18
|
-
var
|
|
19
|
-
|
|
20
|
-
var _button = require("../button");
|
|
21
|
-
|
|
22
|
-
var _common = require("../common");
|
|
23
|
-
|
|
24
|
-
var _copy = require("../copy");
|
|
25
|
-
|
|
26
|
-
var _focus_trap = require("../focus_trap");
|
|
16
|
+
var _utils = require("./utils");
|
|
27
17
|
|
|
28
|
-
var
|
|
18
|
+
var _code_block_overflow = require("./code_block_overflow");
|
|
29
19
|
|
|
30
|
-
var
|
|
20
|
+
var _code_block_copy = require("./code_block_copy");
|
|
31
21
|
|
|
32
|
-
var
|
|
22
|
+
var _code_block_full_screen = require("./code_block_full_screen");
|
|
33
23
|
|
|
34
|
-
var
|
|
24
|
+
var _code_block_controls = require("./code_block_controls");
|
|
35
25
|
|
|
36
|
-
var
|
|
26
|
+
var _code_block_virtualized = require("./code_block_virtualized");
|
|
37
27
|
|
|
38
|
-
var
|
|
28
|
+
var _code_block = require("./code_block.styles");
|
|
39
29
|
|
|
40
30
|
var _react2 = require("@emotion/react");
|
|
41
31
|
|
|
@@ -79,21 +69,9 @@ var fontSizeToRowHeightMap = {
|
|
|
79
69
|
m: 21,
|
|
80
70
|
l: 24
|
|
81
71
|
};
|
|
82
|
-
var
|
|
83
|
-
s: 'euiCodeBlock--fontSmall',
|
|
84
|
-
m: 'euiCodeBlock--fontMedium',
|
|
85
|
-
l: 'euiCodeBlock--fontLarge'
|
|
86
|
-
};
|
|
87
|
-
var FONT_SIZES = (0, _common.keysOf)(fontSizeToClassNameMap);
|
|
72
|
+
var FONT_SIZES = ['s', 'm', 'l'];
|
|
88
73
|
exports.FONT_SIZES = FONT_SIZES;
|
|
89
|
-
var
|
|
90
|
-
none: '',
|
|
91
|
-
s: 'euiCodeBlock--paddingSmall',
|
|
92
|
-
m: 'euiCodeBlock--paddingMedium',
|
|
93
|
-
l: 'euiCodeBlock--paddingLarge'
|
|
94
|
-
};
|
|
95
|
-
var PADDING_SIZES = (0, _common.keysOf)(paddingSizeToClassNameMap); // This exclusive union enforces specific props based on isVirtualized
|
|
96
|
-
|
|
74
|
+
var PADDING_SIZES = ['none', 's', 'm', 'l'];
|
|
97
75
|
exports.PADDING_SIZES = PADDING_SIZES;
|
|
98
76
|
|
|
99
77
|
var EuiCodeBlock = function EuiCodeBlock(_ref) {
|
|
@@ -117,6 +95,7 @@ var EuiCodeBlock = function EuiCodeBlock(_ref) {
|
|
|
117
95
|
lineNumbers = _ref$lineNumbers === void 0 ? false : _ref$lineNumbers,
|
|
118
96
|
rest = _objectWithoutProperties(_ref, _excluded);
|
|
119
97
|
|
|
98
|
+
var euiTheme = (0, _services.useEuiTheme)();
|
|
120
99
|
var language = (0, _react.useMemo)(function () {
|
|
121
100
|
return (0, _utils.checkSupportedLanguage)(_language);
|
|
122
101
|
}, [_language]);
|
|
@@ -136,8 +115,8 @@ var EuiCodeBlock = function EuiCodeBlock(_ref) {
|
|
|
136
115
|
return [];
|
|
137
116
|
}
|
|
138
117
|
|
|
139
|
-
return (0, _utils.highlightByLine)(children, language, lineNumbersConfig);
|
|
140
|
-
}, [children, language, lineNumbersConfig]); // Used by `pre` when `isVirtualized=false` or `children` is not parsable
|
|
118
|
+
return (0, _utils.highlightByLine)(children, language, lineNumbersConfig, euiTheme);
|
|
119
|
+
}, [children, language, lineNumbersConfig, euiTheme]); // Used by `pre` when `isVirtualized=false` or `children` is not parsable
|
|
141
120
|
|
|
142
121
|
var content = (0, _react.useMemo)(function () {
|
|
143
122
|
return (0, _utils.getHtmlContent)(data, children);
|
|
@@ -146,112 +125,92 @@ var EuiCodeBlock = function EuiCodeBlock(_ref) {
|
|
|
146
125
|
return !!(_isVirtualized && Array.isArray(data));
|
|
147
126
|
}, [_isVirtualized, data]);
|
|
148
127
|
|
|
149
|
-
var _useCopy = useCopy({
|
|
128
|
+
var _useCopy = (0, _code_block_copy.useCopy)({
|
|
150
129
|
isCopyable: isCopyable,
|
|
151
130
|
isVirtualized: isVirtualized,
|
|
152
131
|
children: children
|
|
153
132
|
}),
|
|
154
133
|
innerTextRef = _useCopy.innerTextRef,
|
|
155
|
-
|
|
156
|
-
textToCopy = _useCopy.textToCopy;
|
|
134
|
+
copyButton = _useCopy.copyButton;
|
|
157
135
|
|
|
158
|
-
var
|
|
159
|
-
|
|
160
|
-
|
|
136
|
+
var _useOverflow = (0, _code_block_overflow.useOverflow)({
|
|
137
|
+
overflowHeight: overflowHeight
|
|
138
|
+
}),
|
|
139
|
+
setWrapperRef = _useOverflow.setWrapperRef,
|
|
140
|
+
tabIndex = _useOverflow.tabIndex,
|
|
141
|
+
overflowHeightStyles = _useOverflow.overflowHeightStyles;
|
|
161
142
|
|
|
162
143
|
var combinedRef = (0, _services.useCombinedRefs)([innerTextRef, setWrapperRef]);
|
|
163
144
|
|
|
164
|
-
var _useFullScreen = useFullScreen({
|
|
145
|
+
var _useFullScreen = (0, _code_block_full_screen.useFullScreen)({
|
|
165
146
|
overflowHeight: overflowHeight
|
|
166
147
|
}),
|
|
167
|
-
|
|
168
|
-
onKeyDown = _useFullScreen.onKeyDown,
|
|
148
|
+
fullScreenButton = _useFullScreen.fullScreenButton,
|
|
169
149
|
isFullScreen = _useFullScreen.isFullScreen,
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
var
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
150
|
+
onKeyDown = _useFullScreen.onKeyDown;
|
|
151
|
+
|
|
152
|
+
var hasControls = !!(copyButton || fullScreenButton);
|
|
153
|
+
var hasBothControls = !!(copyButton && fullScreenButton);
|
|
154
|
+
var styles = (0, _code_block.euiCodeBlockStyles)(euiTheme);
|
|
155
|
+
var cssStyles = [styles.euiCodeBlock, styles[fontSize], transparentBackground && styles.transparentBackground, hasControls && (hasBothControls ? styles.hasBothControls[paddingSize] : styles.hasControls[paddingSize])];
|
|
156
|
+
|
|
157
|
+
var _useMemo = (0, _react.useMemo)(function () {
|
|
158
|
+
var isWhiteSpacePre = whiteSpace === 'pre' || isVirtualized;
|
|
159
|
+
var styles = (0, _code_block.euiCodeBlockPreStyles)(euiTheme);
|
|
160
|
+
var cssStyles = [styles.euiCodeBlock__pre, isWhiteSpacePre ? styles.whiteSpace.pre.pre : styles.whiteSpace.preWrap.preWrap];
|
|
161
|
+
var preProps = {
|
|
162
|
+
className: 'euiCodeBlock__pre',
|
|
163
|
+
css: [].concat(cssStyles, [styles.padding[paddingSize], hasControls && (isWhiteSpacePre ? styles.whiteSpace.pre.controlsOffset[paddingSize] : styles.whiteSpace.preWrap.controlsOffset[paddingSize])]),
|
|
164
|
+
tabIndex: isVirtualized ? 0 : tabIndex
|
|
165
|
+
};
|
|
166
|
+
var preFullscreenProps = {
|
|
167
|
+
className: 'euiCodeBlock__pre',
|
|
168
|
+
css: [].concat(cssStyles, [// Force fullscreen to use xl padding
|
|
169
|
+
styles.padding.xl, hasControls && (isWhiteSpacePre ? styles.whiteSpace.pre.controlsOffset.xl : styles.whiteSpace.preWrap.controlsOffset.xl)]),
|
|
170
|
+
tabIndex: 0,
|
|
171
|
+
onKeyDown: onKeyDown
|
|
172
|
+
};
|
|
173
|
+
return [preProps, preFullscreenProps];
|
|
174
|
+
}, [euiTheme, whiteSpace, isVirtualized, hasControls, paddingSize, onKeyDown, tabIndex]),
|
|
175
|
+
_useMemo2 = _slicedToArray(_useMemo, 2),
|
|
176
|
+
preProps = _useMemo2[0],
|
|
177
|
+
preFullscreenProps = _useMemo2[1];
|
|
178
178
|
|
|
179
|
-
var classes = (0, _classnames.default)(wrapperClasses, fontSizeToClassNameMap[fontSize], paddingSizeToClassNameMap[paddingSize], {
|
|
180
|
-
'euiCodeBlock--transparentBackground': transparentBackground
|
|
181
|
-
});
|
|
182
179
|
var codeProps = (0, _react.useMemo)(function () {
|
|
180
|
+
var styles = (0, _code_block.euiCodeBlockCodeStyles)(euiTheme);
|
|
181
|
+
var cssStyles = [styles.euiCodeBlock__code, isVirtualized && styles.isVirtualized];
|
|
183
182
|
return _objectSpread({
|
|
184
183
|
className: 'euiCodeBlock__code',
|
|
184
|
+
css: cssStyles,
|
|
185
185
|
'data-code-language': language
|
|
186
186
|
}, rest);
|
|
187
|
-
}, [language, rest]);
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
})
|
|
193
|
-
var preFullscreenProps = (0, _react.useMemo)(function () {
|
|
194
|
-
return {
|
|
195
|
-
className: preClasses,
|
|
196
|
-
tabIndex: 0,
|
|
197
|
-
onKeyDown: onKeyDown
|
|
198
|
-
};
|
|
199
|
-
}, [preClasses, onKeyDown]);
|
|
200
|
-
var overflowHeightStyles = (0, _react.useMemo)(function () {
|
|
201
|
-
if (overflowHeight) {
|
|
202
|
-
var property = typeof overflowHeight === 'string' ? 'height' : 'maxHeight';
|
|
203
|
-
return _defineProperty({}, property, overflowHeight);
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
return {};
|
|
207
|
-
}, [overflowHeight]);
|
|
208
|
-
var wrapperProps = (0, _react.useMemo)(function () {
|
|
209
|
-
return {
|
|
210
|
-
className: classes,
|
|
211
|
-
style: overflowHeightStyles
|
|
212
|
-
};
|
|
213
|
-
}, [classes, overflowHeightStyles]);
|
|
214
|
-
var codeBlockControls = (0, _react.useMemo)(function () {
|
|
215
|
-
if (showCopyButton || showFullScreenButton) {
|
|
216
|
-
return (0, _react2.jsx)("div", {
|
|
217
|
-
className: "euiCodeBlock__controls"
|
|
218
|
-
}, showFullScreenButton && (0, _react2.jsx)(FullScreenButton, {
|
|
219
|
-
isFullScreen: isFullScreen,
|
|
220
|
-
toggleFullScreen: toggleFullScreen
|
|
221
|
-
}), showCopyButton && (0, _react2.jsx)(CopyButton, {
|
|
222
|
-
textToCopy: textToCopy
|
|
223
|
-
}));
|
|
224
|
-
}
|
|
225
|
-
}, [isFullScreen, toggleFullScreen, showCopyButton, showFullScreenButton, textToCopy]);
|
|
226
|
-
return (0, _react2.jsx)("div", wrapperProps, isVirtualized ? (0, _react2.jsx)(VirtualizedCodeBlock, {
|
|
187
|
+
}, [language, euiTheme, isVirtualized, rest]);
|
|
188
|
+
return (0, _react2.jsx)("div", {
|
|
189
|
+
css: cssStyles,
|
|
190
|
+
className: (0, _classnames.default)('euiCodeBlock', className),
|
|
191
|
+
style: overflowHeightStyles
|
|
192
|
+
}, isVirtualized ? (0, _react2.jsx)(_code_block_virtualized.EuiCodeBlockVirtualized, {
|
|
227
193
|
data: data,
|
|
228
194
|
rowHeight: fontSizeToRowHeightMap[fontSize],
|
|
229
195
|
overflowHeight: overflowHeight,
|
|
230
|
-
preProps:
|
|
231
|
-
,
|
|
196
|
+
preProps: preProps,
|
|
232
197
|
codeProps: codeProps
|
|
233
|
-
}) : (0, _react2.jsx)("pre", {
|
|
198
|
+
}) : (0, _react2.jsx)("pre", _extends({}, preProps, {
|
|
234
199
|
ref: combinedRef,
|
|
235
|
-
style: overflowHeightStyles
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
}, isVirtualized ? (0, _react2.jsx)(VirtualizedCodeBlock, {
|
|
200
|
+
style: overflowHeightStyles
|
|
201
|
+
}), (0, _react2.jsx)("code", codeProps, content)), (0, _react2.jsx)(_code_block_controls.EuiCodeBlockControls, {
|
|
202
|
+
controls: [fullScreenButton, copyButton],
|
|
203
|
+
paddingSize: paddingSize
|
|
204
|
+
}), isFullScreen && (0, _react2.jsx)(_code_block_full_screen.EuiCodeBlockFullScreenWrapper, null, isVirtualized ? (0, _react2.jsx)(_code_block_virtualized.EuiCodeBlockVirtualized, {
|
|
241
205
|
data: data,
|
|
242
206
|
rowHeight: fontSizeToRowHeightMap.l,
|
|
243
207
|
preProps: preFullscreenProps,
|
|
244
208
|
codeProps: codeProps
|
|
245
|
-
}) : (0, _react2.jsx)("pre", preFullscreenProps, (0, _react2.jsx)("code", codeProps, content)),
|
|
209
|
+
}) : (0, _react2.jsx)("pre", preFullscreenProps, (0, _react2.jsx)("code", codeProps, content)), (0, _react2.jsx)(_code_block_controls.EuiCodeBlockControls, {
|
|
210
|
+
controls: [fullScreenButton, copyButton],
|
|
211
|
+
paddingSize: "l"
|
|
212
|
+
})));
|
|
246
213
|
};
|
|
247
|
-
/**
|
|
248
|
-
* Overflow logic
|
|
249
|
-
*
|
|
250
|
-
* Detects whether the code block overflows and returns a tabIndex of 0 if so,
|
|
251
|
-
* which allows keyboard users to use the up/down arrow keys to scroll through
|
|
252
|
-
* the container.
|
|
253
|
-
*/
|
|
254
|
-
|
|
255
214
|
|
|
256
215
|
exports.EuiCodeBlock = EuiCodeBlock;
|
|
257
216
|
EuiCodeBlock.propTypes = {
|
|
@@ -266,8 +225,8 @@ EuiCodeBlock.propTypes = {
|
|
|
266
225
|
*/
|
|
267
226
|
language: _propTypes.default.string,
|
|
268
227
|
transparentBackground: _propTypes.default.bool,
|
|
269
|
-
paddingSize: _propTypes.default.
|
|
270
|
-
fontSize: _propTypes.default.
|
|
228
|
+
paddingSize: _propTypes.default.any,
|
|
229
|
+
fontSize: _propTypes.default.any,
|
|
271
230
|
|
|
272
231
|
/**
|
|
273
232
|
* Specify how `white-space` inside the element is handled.
|
|
@@ -306,211 +265,4 @@ EuiCodeBlock.propTypes = {
|
|
|
306
265
|
* `whiteSpace` can only be `pre`.
|
|
307
266
|
*/
|
|
308
267
|
isVirtualized: _propTypes.default.oneOfType([_propTypes.default.bool, _propTypes.default.oneOfType([_propTypes.default.oneOf([true]).isRequired, _propTypes.default.oneOf([false])])])
|
|
309
|
-
};
|
|
310
|
-
|
|
311
|
-
var useOverflowDetection = function useOverflowDetection() {
|
|
312
|
-
var _useState = (0, _react.useState)(null),
|
|
313
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
314
|
-
wrapperRef = _useState2[0],
|
|
315
|
-
setWrapperRef = _useState2[1];
|
|
316
|
-
|
|
317
|
-
var _useState3 = (0, _react.useState)(-1),
|
|
318
|
-
_useState4 = _slicedToArray(_useState3, 2),
|
|
319
|
-
tabIndex = _useState4[0],
|
|
320
|
-
setTabIndex = _useState4[1];
|
|
321
|
-
|
|
322
|
-
var _useResizeObserver = (0, _resize_observer.useResizeObserver)(wrapperRef),
|
|
323
|
-
width = _useResizeObserver.width,
|
|
324
|
-
height = _useResizeObserver.height;
|
|
325
|
-
|
|
326
|
-
var doesOverflow = function doesOverflow() {
|
|
327
|
-
if (!wrapperRef) return;
|
|
328
|
-
var clientWidth = wrapperRef.clientWidth,
|
|
329
|
-
clientHeight = wrapperRef.clientHeight,
|
|
330
|
-
scrollWidth = wrapperRef.scrollWidth,
|
|
331
|
-
scrollHeight = wrapperRef.scrollHeight;
|
|
332
|
-
var doesOverflow = scrollHeight > clientHeight || scrollWidth > clientWidth;
|
|
333
|
-
setTabIndex(doesOverflow ? 0 : -1);
|
|
334
|
-
};
|
|
335
|
-
|
|
336
|
-
(0, _mutation_observer.useMutationObserver)(wrapperRef, doesOverflow, {
|
|
337
|
-
subtree: true,
|
|
338
|
-
childList: true
|
|
339
|
-
});
|
|
340
|
-
(0, _react.useEffect)(doesOverflow, [width, height, wrapperRef]);
|
|
341
|
-
return {
|
|
342
|
-
setWrapperRef: setWrapperRef,
|
|
343
|
-
tabIndex: tabIndex
|
|
344
|
-
};
|
|
345
|
-
};
|
|
346
|
-
/**
|
|
347
|
-
* Copy logic
|
|
348
|
-
*/
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
var CopyButton = function CopyButton(_ref3) {
|
|
352
|
-
var textToCopy = _ref3.textToCopy;
|
|
353
|
-
var copyButton = (0, _i18n.useEuiI18n)('euiCodeBlock.copyButton', 'Copy');
|
|
354
|
-
return (0, _react2.jsx)("div", {
|
|
355
|
-
className: "euiCodeBlock__copyButton"
|
|
356
|
-
}, (0, _react2.jsx)(_copy.EuiCopy, {
|
|
357
|
-
textToCopy: textToCopy
|
|
358
|
-
}, function (copy) {
|
|
359
|
-
return (0, _react2.jsx)(_button.EuiButtonIcon, {
|
|
360
|
-
onClick: copy,
|
|
361
|
-
iconType: "copyClipboard",
|
|
362
|
-
color: "text",
|
|
363
|
-
"aria-label": copyButton
|
|
364
|
-
});
|
|
365
|
-
}));
|
|
366
|
-
};
|
|
367
|
-
|
|
368
|
-
CopyButton.propTypes = {
|
|
369
|
-
textToCopy: _propTypes.default.string.isRequired
|
|
370
|
-
};
|
|
371
|
-
|
|
372
|
-
var useCopy = function useCopy(_ref4) {
|
|
373
|
-
var isCopyable = _ref4.isCopyable,
|
|
374
|
-
isVirtualized = _ref4.isVirtualized,
|
|
375
|
-
children = _ref4.children;
|
|
376
|
-
|
|
377
|
-
var _useInnerText = (0, _inner_text.useInnerText)(''),
|
|
378
|
-
_useInnerText2 = _slicedToArray(_useInnerText, 2),
|
|
379
|
-
innerTextRef = _useInnerText2[0],
|
|
380
|
-
_innerText = _useInnerText2[1];
|
|
381
|
-
|
|
382
|
-
var innerText = (0, _react.useMemo)(function () {
|
|
383
|
-
return (_innerText === null || _innerText === void 0 ? void 0 : _innerText.replace(/[\r\n?]{2}|\n\n/g, '\n')) || '';
|
|
384
|
-
}, [_innerText]);
|
|
385
|
-
var textToCopy = isVirtualized ? "".concat(children) : innerText; // Virtualized code blocks do not have inner text
|
|
386
|
-
|
|
387
|
-
var showCopyButton = isCopyable && textToCopy;
|
|
388
|
-
return {
|
|
389
|
-
innerTextRef: innerTextRef,
|
|
390
|
-
showCopyButton: showCopyButton,
|
|
391
|
-
textToCopy: textToCopy
|
|
392
|
-
};
|
|
393
|
-
};
|
|
394
|
-
/**
|
|
395
|
-
* Fullscreen logic
|
|
396
|
-
*/
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
var FullScreenButton = function FullScreenButton(_ref5) {
|
|
400
|
-
var isFullScreen = _ref5.isFullScreen,
|
|
401
|
-
toggleFullScreen = _ref5.toggleFullScreen;
|
|
402
|
-
|
|
403
|
-
var _useEuiI18n = (0, _i18n.useEuiI18n)(['euiCodeBlock.fullscreenCollapse', 'euiCodeBlock.fullscreenExpand'], ['Collapse', 'Expand']),
|
|
404
|
-
_useEuiI18n2 = _slicedToArray(_useEuiI18n, 2),
|
|
405
|
-
fullscreenCollapse = _useEuiI18n2[0],
|
|
406
|
-
fullscreenExpand = _useEuiI18n2[1];
|
|
407
|
-
|
|
408
|
-
return (0, _react2.jsx)(_button.EuiButtonIcon, {
|
|
409
|
-
className: "euiCodeBlock__fullScreenButton",
|
|
410
|
-
onClick: toggleFullScreen,
|
|
411
|
-
iconType: isFullScreen ? 'fullScreenExit' : 'fullScreen',
|
|
412
|
-
color: "text",
|
|
413
|
-
"aria-label": isFullScreen ? fullscreenCollapse : fullscreenExpand
|
|
414
|
-
});
|
|
415
|
-
};
|
|
416
|
-
|
|
417
|
-
FullScreenButton.propTypes = {
|
|
418
|
-
isFullScreen: _propTypes.default.bool.isRequired,
|
|
419
|
-
toggleFullScreen: _propTypes.default.func.isRequired
|
|
420
|
-
};
|
|
421
|
-
|
|
422
|
-
var FullScreenDisplay = function FullScreenDisplay(_ref6) {
|
|
423
|
-
var children = _ref6.children,
|
|
424
|
-
className = _ref6.className;
|
|
425
|
-
// Force fullscreen to use large font and padding.
|
|
426
|
-
var fullScreenClasses = (0, _classnames.default)(className, 'euiCodeBlock--fontLarge', 'euiCodeBlock--paddingLarge', 'euiCodeBlock-isFullScreen'); // Attaches to the body because of EuiOverlayMask's React portal usage.
|
|
427
|
-
|
|
428
|
-
return (0, _react2.jsx)(_overlay_mask.EuiOverlayMask, null, (0, _react2.jsx)(_focus_trap.EuiFocusTrap, {
|
|
429
|
-
clickOutsideDisables: true
|
|
430
|
-
}, (0, _react2.jsx)("div", {
|
|
431
|
-
className: fullScreenClasses
|
|
432
|
-
}, children)));
|
|
433
|
-
};
|
|
434
|
-
|
|
435
|
-
FullScreenDisplay.propTypes = {
|
|
436
|
-
className: _propTypes.default.string.isRequired
|
|
437
|
-
};
|
|
438
|
-
|
|
439
|
-
var useFullScreen = function useFullScreen(_ref7) {
|
|
440
|
-
var overflowHeight = _ref7.overflowHeight;
|
|
441
|
-
|
|
442
|
-
var _useState5 = (0, _react.useState)(false),
|
|
443
|
-
_useState6 = _slicedToArray(_useState5, 2),
|
|
444
|
-
isFullScreen = _useState6[0],
|
|
445
|
-
setIsFullScreen = _useState6[1];
|
|
446
|
-
|
|
447
|
-
var toggleFullScreen = (0, _react.useCallback)(function () {
|
|
448
|
-
setIsFullScreen(function (isFullScreen) {
|
|
449
|
-
return !isFullScreen;
|
|
450
|
-
});
|
|
451
|
-
}, []);
|
|
452
|
-
var onKeyDown = (0, _react.useCallback)(function (event) {
|
|
453
|
-
if (event.key === _services.keys.ESCAPE) {
|
|
454
|
-
event.preventDefault();
|
|
455
|
-
event.stopPropagation();
|
|
456
|
-
setIsFullScreen(false);
|
|
457
|
-
}
|
|
458
|
-
}, []);
|
|
459
|
-
var showFullScreenButton = !!overflowHeight;
|
|
460
|
-
return {
|
|
461
|
-
showFullScreenButton: showFullScreenButton,
|
|
462
|
-
isFullScreen: isFullScreen,
|
|
463
|
-
toggleFullScreen: toggleFullScreen,
|
|
464
|
-
onKeyDown: onKeyDown
|
|
465
|
-
};
|
|
466
|
-
};
|
|
467
|
-
/**
|
|
468
|
-
* Virtualization logic
|
|
469
|
-
*/
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
var ListRow = function ListRow(_ref8) {
|
|
473
|
-
var data = _ref8.data,
|
|
474
|
-
index = _ref8.index,
|
|
475
|
-
style = _ref8.style;
|
|
476
|
-
var row = data[index];
|
|
477
|
-
row.properties.style = style;
|
|
478
|
-
return (0, _utils.nodeToHtml)(row, index, data, 0);
|
|
479
|
-
};
|
|
480
|
-
|
|
481
|
-
var VirtualizedCodeBlock = function VirtualizedCodeBlock(_ref9) {
|
|
482
|
-
var data = _ref9.data,
|
|
483
|
-
rowHeight = _ref9.rowHeight,
|
|
484
|
-
overflowHeight = _ref9.overflowHeight,
|
|
485
|
-
preProps = _ref9.preProps,
|
|
486
|
-
codeProps = _ref9.codeProps;
|
|
487
|
-
var VirtualizedOuterElement = (0, _react.useMemo)(function () {
|
|
488
|
-
return /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
489
|
-
return (0, _react2.jsx)("pre", _extends({}, props, {
|
|
490
|
-
ref: ref
|
|
491
|
-
}, preProps));
|
|
492
|
-
});
|
|
493
|
-
}, [preProps]);
|
|
494
|
-
var VirtualizedInnerElement = (0, _react.useMemo)(function () {
|
|
495
|
-
return /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
496
|
-
return (0, _react2.jsx)("code", _extends({}, props, {
|
|
497
|
-
ref: ref
|
|
498
|
-
}, codeProps));
|
|
499
|
-
});
|
|
500
|
-
}, [codeProps]);
|
|
501
|
-
return (0, _react2.jsx)(_auto_sizer.EuiAutoSizer, {
|
|
502
|
-
disableHeight: typeof overflowHeight === 'number'
|
|
503
|
-
}, function (_ref10) {
|
|
504
|
-
var height = _ref10.height,
|
|
505
|
-
width = _ref10.width;
|
|
506
|
-
return (0, _react2.jsx)(_reactWindow.FixedSizeList, {
|
|
507
|
-
height: height !== null && height !== void 0 ? height : overflowHeight,
|
|
508
|
-
width: width,
|
|
509
|
-
itemData: data,
|
|
510
|
-
itemSize: rowHeight,
|
|
511
|
-
itemCount: data.length,
|
|
512
|
-
outerElementType: VirtualizedOuterElement,
|
|
513
|
-
innerElementType: VirtualizedInnerElement
|
|
514
|
-
}, ListRow);
|
|
515
|
-
});
|
|
516
268
|
};
|