@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
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.euiCodeBlockStyles = exports.euiCodeBlockPreStyles = exports.euiCodeBlockCodeStyles = void 0;
|
|
9
|
+
|
|
10
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
+
|
|
12
|
+
var _react = require("@emotion/react");
|
|
13
|
+
|
|
14
|
+
var _global_styling = require("../../global_styling");
|
|
15
|
+
|
|
16
|
+
var _code_syntax = require("./code_syntax.styles");
|
|
17
|
+
|
|
18
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
19
|
+
|
|
20
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
21
|
+
|
|
22
|
+
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)."; }
|
|
23
|
+
|
|
24
|
+
var _ref4 = process.env.NODE_ENV === "production" ? {
|
|
25
|
+
name: "i92zwx-isFullScreen",
|
|
26
|
+
styles: "position:fixed;inset:0;label:isFullScreen;"
|
|
27
|
+
} : {
|
|
28
|
+
name: "i92zwx-isFullScreen",
|
|
29
|
+
styles: "position:fixed;inset:0;label:isFullScreen;",
|
|
30
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
var _ref5 = process.env.NODE_ENV === "production" ? {
|
|
34
|
+
name: "gfiv3z-transparentBackground",
|
|
35
|
+
styles: "background:transparent;label:transparentBackground;"
|
|
36
|
+
} : {
|
|
37
|
+
name: "gfiv3z-transparentBackground",
|
|
38
|
+
styles: "background:transparent;label:transparentBackground;",
|
|
39
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
var euiCodeBlockStyles = function euiCodeBlockStyles(euiThemeContext) {
|
|
43
|
+
var euiTheme = euiThemeContext.euiTheme;
|
|
44
|
+
var euiCodeSyntax = (0, _code_syntax.euiCodeSyntaxColors)(euiThemeContext);
|
|
45
|
+
return {
|
|
46
|
+
euiCodeBlock: /*#__PURE__*/(0, _react.css)("max-inline-size:100%;display:block;position:relative;background:", euiCodeSyntax.backgroundColor, ";", (0, _code_syntax.euiCodeSyntaxTokens)(euiThemeContext), ";;label:euiCodeBlock;"),
|
|
47
|
+
// Font size
|
|
48
|
+
s: /*#__PURE__*/(0, _react.css)((0, _global_styling.euiFontSize)(euiThemeContext, 'xs'), ";;label:s;"),
|
|
49
|
+
m: /*#__PURE__*/(0, _react.css)((0, _global_styling.euiFontSize)(euiThemeContext, 's'), ";;label:m;"),
|
|
50
|
+
l: /*#__PURE__*/(0, _react.css)((0, _global_styling.euiFontSize)(euiThemeContext, 'm'), ";;label:l;"),
|
|
51
|
+
// Variants
|
|
52
|
+
transparentBackground: _ref5,
|
|
53
|
+
isFullScreen: _ref4,
|
|
54
|
+
// Account for control heights
|
|
55
|
+
hasControls: generatePaddingCss(euiThemeContext, function (paddingSize) {
|
|
56
|
+
return /*#__PURE__*/(0, _react.css)("min-block-size:", (0, _global_styling.mathWithUnits)([euiTheme.size.l, paddingSize], function (iconSize, paddingSize) {
|
|
57
|
+
return iconSize + paddingSize * 2;
|
|
58
|
+
}), ";;label:hasControls;");
|
|
59
|
+
}),
|
|
60
|
+
hasBothControls: generatePaddingCss(euiThemeContext, function (paddingSize) {
|
|
61
|
+
return /*#__PURE__*/(0, _react.css)("min-block-size:", (0, _global_styling.mathWithUnits)([euiTheme.size.l, euiTheme.size.xs, paddingSize], function (iconSize, gap, paddingSize) {
|
|
62
|
+
return iconSize * 2 + gap + paddingSize * 2;
|
|
63
|
+
}), ";;label:hasBothControls;");
|
|
64
|
+
})
|
|
65
|
+
};
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
exports.euiCodeBlockStyles = euiCodeBlockStyles;
|
|
69
|
+
|
|
70
|
+
var _ref2 = process.env.NODE_ENV === "production" ? {
|
|
71
|
+
name: "eav5br-preWrap",
|
|
72
|
+
styles: "white-space:pre-wrap;label:preWrap;"
|
|
73
|
+
} : {
|
|
74
|
+
name: "eav5br-preWrap",
|
|
75
|
+
styles: "white-space:pre-wrap;label:preWrap;",
|
|
76
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
var _ref3 = process.env.NODE_ENV === "production" ? {
|
|
80
|
+
name: "4dmmkq-pre",
|
|
81
|
+
styles: "white-space:pre;label:pre;"
|
|
82
|
+
} : {
|
|
83
|
+
name: "4dmmkq-pre",
|
|
84
|
+
styles: "white-space:pre;label:pre;",
|
|
85
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
var euiCodeBlockPreStyles = function euiCodeBlockPreStyles(euiThemeContext) {
|
|
89
|
+
var euiTheme = euiThemeContext.euiTheme;
|
|
90
|
+
return {
|
|
91
|
+
euiCodeBlock__pre: /*#__PURE__*/(0, _react.css)("block-size:100%;overflow:auto;display:block;", (0, _global_styling.euiScrollBarStyles)(euiThemeContext), ";;label:euiCodeBlock__pre;"),
|
|
92
|
+
padding: _objectSpread({}, generatePaddingCss(euiThemeContext, function (paddingSize) {
|
|
93
|
+
return /*#__PURE__*/(0, _react.css)("padding:", paddingSize, ";;label:padding;");
|
|
94
|
+
})),
|
|
95
|
+
whiteSpace: {
|
|
96
|
+
pre: {
|
|
97
|
+
pre: _ref3,
|
|
98
|
+
controlsOffset: generatePaddingCss(euiThemeContext, function (paddingSize) {
|
|
99
|
+
return /*#__PURE__*/(0, _react.css)("margin-inline-end:", (0, _global_styling.mathWithUnits)([paddingSize, euiTheme.size.l, euiTheme.size.xs], function (paddingSize, iconSize, gap) {
|
|
100
|
+
return paddingSize + gap + iconSize;
|
|
101
|
+
}), ";;label:controlsOffset;");
|
|
102
|
+
})
|
|
103
|
+
},
|
|
104
|
+
preWrap: {
|
|
105
|
+
preWrap: _ref2,
|
|
106
|
+
controlsOffset: generatePaddingCss(euiThemeContext, function (paddingSize) {
|
|
107
|
+
return /*#__PURE__*/(0, _react.css)("padding-inline-end:", (0, _global_styling.mathWithUnits)([paddingSize, euiTheme.size.l, euiTheme.size.xs], function (paddingSize, iconSize, gap) {
|
|
108
|
+
return paddingSize + gap + iconSize;
|
|
109
|
+
}), ";;label:controlsOffset;");
|
|
110
|
+
})
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
exports.euiCodeBlockPreStyles = euiCodeBlockPreStyles;
|
|
117
|
+
|
|
118
|
+
var _ref = process.env.NODE_ENV === "production" ? {
|
|
119
|
+
name: "9y8iu3-isVirtualized",
|
|
120
|
+
styles: "position:relative;label:isVirtualized;"
|
|
121
|
+
} : {
|
|
122
|
+
name: "9y8iu3-isVirtualized",
|
|
123
|
+
styles: "position:relative;label:isVirtualized;",
|
|
124
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
125
|
+
};
|
|
126
|
+
|
|
127
|
+
var euiCodeBlockCodeStyles = function euiCodeBlockCodeStyles(euiThemeContext) {
|
|
128
|
+
var euiTheme = euiThemeContext.euiTheme;
|
|
129
|
+
var euiCodeSyntax = (0, _code_syntax.euiCodeSyntaxColors)(euiThemeContext);
|
|
130
|
+
return {
|
|
131
|
+
euiCodeBlock__code: /*#__PURE__*/(0, _react.css)("font-family:", euiTheme.font.familyCode, ";font-size:inherit;color:", euiCodeSyntax.color, ";display:block;;label:euiCodeBlock__code;"),
|
|
132
|
+
isVirtualized: _ref
|
|
133
|
+
};
|
|
134
|
+
};
|
|
135
|
+
/**
|
|
136
|
+
* Helper for generating keys for each code block padding size
|
|
137
|
+
*/
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
exports.euiCodeBlockCodeStyles = euiCodeBlockCodeStyles;
|
|
141
|
+
|
|
142
|
+
var generatePaddingCss = function generatePaddingCss(euiThemeContext, callback) {
|
|
143
|
+
var cssKeys = {
|
|
144
|
+
none: /*#__PURE__*/(0, _react.css)(";label:none;"),
|
|
145
|
+
s: /*#__PURE__*/(0, _react.css)(";label:s;"),
|
|
146
|
+
m: /*#__PURE__*/(0, _react.css)(";label:m;"),
|
|
147
|
+
l: /*#__PURE__*/(0, _react.css)(";label:l;"),
|
|
148
|
+
xl: /*#__PURE__*/(0, _react.css)(";label:xl;")
|
|
149
|
+
}; // xl padding used by fullscreen mode
|
|
150
|
+
|
|
151
|
+
['none', 's', 'm', 'l', 'xl'].forEach(function (size) {
|
|
152
|
+
var paddingSize = (0, _global_styling.euiPaddingSize)(euiThemeContext, size) || 0;
|
|
153
|
+
cssKeys[size] = callback(paddingSize);
|
|
154
|
+
});
|
|
155
|
+
return cssKeys;
|
|
156
|
+
};
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.EuiCodeBlockControls = void 0;
|
|
9
|
+
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
|
|
12
|
+
var _services = require("../../services");
|
|
13
|
+
|
|
14
|
+
var _code_block_controls = require("./code_block_controls.styles");
|
|
15
|
+
|
|
16
|
+
var _react2 = require("@emotion/react");
|
|
17
|
+
|
|
18
|
+
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); }
|
|
19
|
+
|
|
20
|
+
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; }
|
|
21
|
+
|
|
22
|
+
/*
|
|
23
|
+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
24
|
+
* or more contributor license agreements. Licensed under the Elastic License
|
|
25
|
+
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
|
26
|
+
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
27
|
+
* Side Public License, v 1.
|
|
28
|
+
*/
|
|
29
|
+
var EuiCodeBlockControls = function EuiCodeBlockControls(_ref) {
|
|
30
|
+
var paddingSize = _ref.paddingSize,
|
|
31
|
+
controls = _ref.controls;
|
|
32
|
+
var euiTheme = (0, _services.useEuiTheme)();
|
|
33
|
+
var styles = (0, _code_block_controls.euiCodeBlockControlsStyles)(euiTheme);
|
|
34
|
+
var cssStyles = [styles.euiCodeBlock__controls, styles.offset[paddingSize]];
|
|
35
|
+
var hasControls = controls.some(function (control) {
|
|
36
|
+
return !!control;
|
|
37
|
+
});
|
|
38
|
+
return hasControls ? (0, _react2.jsx)("div", {
|
|
39
|
+
className: "euiCodeBlock__controls",
|
|
40
|
+
css: cssStyles
|
|
41
|
+
}, controls.map(function (control, i) {
|
|
42
|
+
return (0, _react2.jsx)(_react.Fragment, {
|
|
43
|
+
key: i
|
|
44
|
+
}, control);
|
|
45
|
+
})) : null;
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
exports.EuiCodeBlockControls = EuiCodeBlockControls;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.euiCodeBlockControlsStyles = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = require("@emotion/react");
|
|
9
|
+
|
|
10
|
+
var _global_styling = require("../../global_styling");
|
|
11
|
+
|
|
12
|
+
var _code_syntax = require("./code_syntax.styles");
|
|
13
|
+
|
|
14
|
+
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)."; }
|
|
15
|
+
|
|
16
|
+
var _ref = process.env.NODE_ENV === "production" ? {
|
|
17
|
+
name: "to86kv-none",
|
|
18
|
+
styles: "inset-block-start:0;inset-inline-end:0;label:none;"
|
|
19
|
+
} : {
|
|
20
|
+
name: "to86kv-none",
|
|
21
|
+
styles: "inset-block-start:0;inset-inline-end:0;label:none;",
|
|
22
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
var euiCodeBlockControlsStyles = function euiCodeBlockControlsStyles(euiThemeContext) {
|
|
26
|
+
var euiTheme = euiThemeContext.euiTheme;
|
|
27
|
+
var euiCodeSyntax = (0, _code_syntax.euiCodeSyntaxColors)(euiThemeContext);
|
|
28
|
+
return {
|
|
29
|
+
euiCodeBlock__controls: /*#__PURE__*/(0, _react.css)("position:absolute;display:flex;flex-direction:column;gap:", euiTheme.size.xs, ";background:", euiCodeSyntax.backgroundColor, ";;label:euiCodeBlock__controls;"),
|
|
30
|
+
offset: {
|
|
31
|
+
none: _ref,
|
|
32
|
+
s: /*#__PURE__*/(0, _react.css)("inset-block-start:", (0, _global_styling.euiPaddingSize)(euiThemeContext, 's'), ";inset-inline-end:", (0, _global_styling.euiPaddingSize)(euiThemeContext, 's'), ";;label:s;"),
|
|
33
|
+
m: /*#__PURE__*/(0, _react.css)("inset-block-start:", (0, _global_styling.euiPaddingSize)(euiThemeContext, 'm'), ";inset-inline-end:", (0, _global_styling.euiPaddingSize)(euiThemeContext, 'm'), ";;label:m;"),
|
|
34
|
+
l: /*#__PURE__*/(0, _react.css)("inset-block-start:", (0, _global_styling.euiPaddingSize)(euiThemeContext, 'l'), ";inset-inline-end:", (0, _global_styling.euiPaddingSize)(euiThemeContext, 'l'), ";;label:l;")
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
exports.euiCodeBlockControlsStyles = euiCodeBlockControlsStyles;
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.useCopy = void 0;
|
|
11
|
+
|
|
12
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
|
+
|
|
14
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
15
|
+
|
|
16
|
+
var _inner_text = require("../inner_text");
|
|
17
|
+
|
|
18
|
+
var _copy = require("../copy");
|
|
19
|
+
|
|
20
|
+
var _i18n = require("../i18n");
|
|
21
|
+
|
|
22
|
+
var _button = require("../button");
|
|
23
|
+
|
|
24
|
+
var _react2 = require("@emotion/react");
|
|
25
|
+
|
|
26
|
+
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); }
|
|
27
|
+
|
|
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
|
+
/*
|
|
31
|
+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
32
|
+
* or more contributor license agreements. Licensed under the Elastic License
|
|
33
|
+
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
|
34
|
+
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
35
|
+
* Side Public License, v 1.
|
|
36
|
+
*/
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Hook that returns copy-related state/logic/utils
|
|
40
|
+
*/
|
|
41
|
+
var useCopy = function useCopy(_ref) {
|
|
42
|
+
var isCopyable = _ref.isCopyable,
|
|
43
|
+
isVirtualized = _ref.isVirtualized,
|
|
44
|
+
children = _ref.children;
|
|
45
|
+
|
|
46
|
+
var _useInnerText = (0, _inner_text.useInnerText)(''),
|
|
47
|
+
_useInnerText2 = (0, _slicedToArray2.default)(_useInnerText, 2),
|
|
48
|
+
innerTextRef = _useInnerText2[0],
|
|
49
|
+
_innerText = _useInnerText2[1];
|
|
50
|
+
|
|
51
|
+
var innerText = (0, _react.useMemo)(function () {
|
|
52
|
+
return (_innerText === null || _innerText === void 0 ? void 0 : _innerText.replace(/[\r\n?]{2}|\n\n/g, '\n')) || '';
|
|
53
|
+
}, [_innerText]);
|
|
54
|
+
var textToCopy = isVirtualized ? "".concat(children) : innerText; // Virtualized code blocks do not have inner text
|
|
55
|
+
|
|
56
|
+
var showCopyButton = isCopyable && textToCopy;
|
|
57
|
+
var copyAriaLabel = (0, _i18n.useEuiI18n)('euiCodeBlockCopy.copy', 'Copy');
|
|
58
|
+
var copyButton = (0, _react.useMemo)(function () {
|
|
59
|
+
return showCopyButton ? (0, _react2.jsx)("div", {
|
|
60
|
+
className: "euiCodeBlock__copyButton"
|
|
61
|
+
}, (0, _react2.jsx)(_copy.EuiCopy, {
|
|
62
|
+
textToCopy: textToCopy
|
|
63
|
+
}, function (copy) {
|
|
64
|
+
return (0, _react2.jsx)(_button.EuiButtonIcon, {
|
|
65
|
+
onClick: copy,
|
|
66
|
+
iconType: "copyClipboard",
|
|
67
|
+
color: "text",
|
|
68
|
+
"aria-label": copyAriaLabel
|
|
69
|
+
});
|
|
70
|
+
})) : null;
|
|
71
|
+
}, [showCopyButton, textToCopy, copyAriaLabel]);
|
|
72
|
+
return {
|
|
73
|
+
innerTextRef: innerTextRef,
|
|
74
|
+
copyButton: copyButton
|
|
75
|
+
};
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
exports.useCopy = useCopy;
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.useFullScreen = exports.EuiCodeBlockFullScreenWrapper = void 0;
|
|
11
|
+
|
|
12
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
|
+
|
|
14
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
15
|
+
|
|
16
|
+
var _services = require("../../services");
|
|
17
|
+
|
|
18
|
+
var _i18n = require("../i18n");
|
|
19
|
+
|
|
20
|
+
var _button = require("../button");
|
|
21
|
+
|
|
22
|
+
var _focus_trap = require("../focus_trap");
|
|
23
|
+
|
|
24
|
+
var _overlay_mask = require("../overlay_mask");
|
|
25
|
+
|
|
26
|
+
var _code_block = require("./code_block.styles");
|
|
27
|
+
|
|
28
|
+
var _react2 = require("@emotion/react");
|
|
29
|
+
|
|
30
|
+
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); }
|
|
31
|
+
|
|
32
|
+
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; }
|
|
33
|
+
|
|
34
|
+
/*
|
|
35
|
+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
36
|
+
* or more contributor license agreements. Licensed under the Elastic License
|
|
37
|
+
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
|
38
|
+
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
39
|
+
* Side Public License, v 1.
|
|
40
|
+
*/
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Hook that returns fullscreen-related state/logic/utils
|
|
44
|
+
*/
|
|
45
|
+
var useFullScreen = function useFullScreen(_ref) {
|
|
46
|
+
var overflowHeight = _ref.overflowHeight;
|
|
47
|
+
var showFullScreenButton = !!overflowHeight;
|
|
48
|
+
|
|
49
|
+
var _useState = (0, _react.useState)(false),
|
|
50
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
51
|
+
isFullScreen = _useState2[0],
|
|
52
|
+
setIsFullScreen = _useState2[1];
|
|
53
|
+
|
|
54
|
+
var toggleFullScreen = (0, _react.useCallback)(function () {
|
|
55
|
+
setIsFullScreen(function (isFullScreen) {
|
|
56
|
+
return !isFullScreen;
|
|
57
|
+
});
|
|
58
|
+
}, []);
|
|
59
|
+
var onKeyDown = (0, _react.useCallback)(function (event) {
|
|
60
|
+
if (event.key === _services.keys.ESCAPE) {
|
|
61
|
+
event.preventDefault();
|
|
62
|
+
event.stopPropagation();
|
|
63
|
+
setIsFullScreen(false);
|
|
64
|
+
}
|
|
65
|
+
}, []);
|
|
66
|
+
|
|
67
|
+
var _useEuiI18n = (0, _i18n.useEuiI18n)(['euiCodeBlockFullScreen.fullscreenCollapse', 'euiCodeBlockFullScreen.fullscreenExpand'], ['Collapse', 'Expand']),
|
|
68
|
+
_useEuiI18n2 = (0, _slicedToArray2.default)(_useEuiI18n, 2),
|
|
69
|
+
fullscreenCollapse = _useEuiI18n2[0],
|
|
70
|
+
fullscreenExpand = _useEuiI18n2[1];
|
|
71
|
+
|
|
72
|
+
var fullScreenButton = (0, _react.useMemo)(function () {
|
|
73
|
+
return showFullScreenButton ? (0, _react2.jsx)(_button.EuiButtonIcon, {
|
|
74
|
+
className: "euiCodeBlock__fullScreenButton",
|
|
75
|
+
onClick: toggleFullScreen,
|
|
76
|
+
iconType: isFullScreen ? 'fullScreenExit' : 'fullScreen',
|
|
77
|
+
color: "text",
|
|
78
|
+
"aria-label": isFullScreen ? fullscreenCollapse : fullscreenExpand
|
|
79
|
+
}) : null;
|
|
80
|
+
}, [showFullScreenButton, toggleFullScreen, isFullScreen, fullscreenCollapse, fullscreenExpand]);
|
|
81
|
+
return {
|
|
82
|
+
fullScreenButton: fullScreenButton,
|
|
83
|
+
isFullScreen: isFullScreen,
|
|
84
|
+
onKeyDown: onKeyDown
|
|
85
|
+
};
|
|
86
|
+
};
|
|
87
|
+
/**
|
|
88
|
+
* Portalled full screen wrapper
|
|
89
|
+
*/
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
exports.useFullScreen = useFullScreen;
|
|
93
|
+
|
|
94
|
+
var EuiCodeBlockFullScreenWrapper = function EuiCodeBlockFullScreenWrapper(_ref2) {
|
|
95
|
+
var children = _ref2.children;
|
|
96
|
+
var euiThemeContext = (0, _services.useEuiTheme)();
|
|
97
|
+
var styles = (0, _code_block.euiCodeBlockStyles)(euiThemeContext);
|
|
98
|
+
var cssStyles = [styles.euiCodeBlock, styles.l, // Force fullscreen to use large font
|
|
99
|
+
styles.isFullScreen];
|
|
100
|
+
return (0, _react2.jsx)(_overlay_mask.EuiOverlayMask, null, (0, _react2.jsx)(_focus_trap.EuiFocusTrap, {
|
|
101
|
+
clickOutsideDisables: true
|
|
102
|
+
}, (0, _react2.jsx)("div", {
|
|
103
|
+
className: "euiCodeBlockFullScreen",
|
|
104
|
+
css: cssStyles
|
|
105
|
+
}, children)));
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
exports.EuiCodeBlockFullScreenWrapper = EuiCodeBlockFullScreenWrapper;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.euiCodeBlockLineStyles = void 0;
|
|
7
|
+
|
|
8
|
+
var _css = require("@emotion/css");
|
|
9
|
+
|
|
10
|
+
var _global_styling = require("../../global_styling");
|
|
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
|
+
// Note: These styles must be in a separate file due to using `css` from `@emotion/css`
|
|
15
|
+
// (i.e., applying styles in vanilla JS / directly to DOM nodes instead of React)
|
|
16
|
+
var euiCodeBlockLineStyles = function euiCodeBlockLineStyles(euiThemeContext) {
|
|
17
|
+
var euiTheme = euiThemeContext.euiTheme;
|
|
18
|
+
return {
|
|
19
|
+
euiCodeBlock__line: /*#__PURE__*/(0, _css.css)(process.env.NODE_ENV === "production" ? {
|
|
20
|
+
name: "yn676d-euiCodeBlock__line",
|
|
21
|
+
styles: "display:block;label:euiCodeBlock__line;"
|
|
22
|
+
} : {
|
|
23
|
+
name: "yn676d-euiCodeBlock__line",
|
|
24
|
+
styles: "display:block;label:euiCodeBlock__line;",
|
|
25
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
26
|
+
}),
|
|
27
|
+
hasLineNumbers: /*#__PURE__*/(0, _css.css)(process.env.NODE_ENV === "production" ? {
|
|
28
|
+
name: "156gjef-hasLineNumbers",
|
|
29
|
+
styles: "display:flex;user-select:none;label:hasLineNumbers;"
|
|
30
|
+
} : {
|
|
31
|
+
name: "156gjef-hasLineNumbers",
|
|
32
|
+
styles: "display:flex;user-select:none;label:hasLineNumbers;",
|
|
33
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
34
|
+
}),
|
|
35
|
+
lineText: {
|
|
36
|
+
euiCodeBlock__lineText: /*#__PURE__*/(0, _css.css)("flex-grow:1;display:inline-block;padding-inline-start:", euiTheme.size.s, ";border-inline-start:", euiTheme.border.thin, ";user-select:text;;label:euiCodeBlock__lineText;"),
|
|
37
|
+
isHighlighted: /*#__PURE__*/(0, _css.css)("background:", (0, _global_styling.euiBackgroundColor)(euiThemeContext, 'primary'), ";border-inline-start:", euiTheme.border.width.thick, " solid ", euiTheme.colors.primary, ";;label:isHighlighted;")
|
|
38
|
+
},
|
|
39
|
+
lineNumber: {
|
|
40
|
+
euiCodeBlock__lineNumber: /*#__PURE__*/(0, _css.css)("flex-grow:0;flex-shrink:0;user-select:none;padding-inline-end:", euiTheme.size.s, ";box-sizing:content-box;&:before{content:attr(data-line-number);color:", euiTheme.colors.subduedText, ";text-align:end;display:block;};label:euiCodeBlock__lineNumber;")
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
exports.euiCodeBlockLineStyles = euiCodeBlockLineStyles;
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.useOverflow = void 0;
|
|
9
|
+
|
|
10
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
+
|
|
12
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
|
+
|
|
14
|
+
var _react = require("react");
|
|
15
|
+
|
|
16
|
+
var _mutation_observer = require("../observer/mutation_observer");
|
|
17
|
+
|
|
18
|
+
var _resize_observer = require("../observer/resize_observer");
|
|
19
|
+
|
|
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
|
+
/**
|
|
29
|
+
* Overflow logic - returns overflow-related state/logic/utils
|
|
30
|
+
*
|
|
31
|
+
* Detects whether the code block overflows and returns a tabIndex of 0 if so,
|
|
32
|
+
* which allows keyboard users to use the up/down arrow keys to scroll through
|
|
33
|
+
* the container.
|
|
34
|
+
*/
|
|
35
|
+
var useOverflow = function useOverflow(_ref) {
|
|
36
|
+
var overflowHeight = _ref.overflowHeight;
|
|
37
|
+
|
|
38
|
+
var _useState = (0, _react.useState)(null),
|
|
39
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
40
|
+
wrapperRef = _useState2[0],
|
|
41
|
+
setWrapperRef = _useState2[1];
|
|
42
|
+
|
|
43
|
+
var _useState3 = (0, _react.useState)(-1),
|
|
44
|
+
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
45
|
+
tabIndex = _useState4[0],
|
|
46
|
+
setTabIndex = _useState4[1];
|
|
47
|
+
|
|
48
|
+
var _useResizeObserver = (0, _resize_observer.useResizeObserver)(wrapperRef),
|
|
49
|
+
width = _useResizeObserver.width,
|
|
50
|
+
height = _useResizeObserver.height;
|
|
51
|
+
|
|
52
|
+
var doesOverflow = function doesOverflow() {
|
|
53
|
+
if (!wrapperRef) return;
|
|
54
|
+
var clientWidth = wrapperRef.clientWidth,
|
|
55
|
+
clientHeight = wrapperRef.clientHeight,
|
|
56
|
+
scrollWidth = wrapperRef.scrollWidth,
|
|
57
|
+
scrollHeight = wrapperRef.scrollHeight;
|
|
58
|
+
var doesOverflow = scrollHeight > clientHeight || scrollWidth > clientWidth;
|
|
59
|
+
setTabIndex(doesOverflow ? 0 : -1);
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
(0, _mutation_observer.useMutationObserver)(wrapperRef, doesOverflow, {
|
|
63
|
+
subtree: true,
|
|
64
|
+
childList: true
|
|
65
|
+
});
|
|
66
|
+
(0, _react.useEffect)(doesOverflow, [width, height, wrapperRef]);
|
|
67
|
+
var overflowHeightStyles = (0, _react.useMemo)(function () {
|
|
68
|
+
if (overflowHeight) {
|
|
69
|
+
var property = typeof overflowHeight === 'string' ? 'blockSize' : 'maxBlockSize';
|
|
70
|
+
return (0, _defineProperty2.default)({}, property, overflowHeight);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
return {};
|
|
74
|
+
}, [overflowHeight]);
|
|
75
|
+
return {
|
|
76
|
+
setWrapperRef: setWrapperRef,
|
|
77
|
+
tabIndex: tabIndex,
|
|
78
|
+
overflowHeightStyles: overflowHeightStyles
|
|
79
|
+
};
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
exports.useOverflow = useOverflow;
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.EuiCodeBlockVirtualized = void 0;
|
|
11
|
+
|
|
12
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
13
|
+
|
|
14
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
15
|
+
|
|
16
|
+
var _reactWindow = require("react-window");
|
|
17
|
+
|
|
18
|
+
var _auto_sizer = require("../auto_sizer");
|
|
19
|
+
|
|
20
|
+
var _utils = require("./utils");
|
|
21
|
+
|
|
22
|
+
var _react2 = require("@emotion/react");
|
|
23
|
+
|
|
24
|
+
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); }
|
|
25
|
+
|
|
26
|
+
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; }
|
|
27
|
+
|
|
28
|
+
/*
|
|
29
|
+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
30
|
+
* or more contributor license agreements. Licensed under the Elastic License
|
|
31
|
+
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
|
32
|
+
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
33
|
+
* Side Public License, v 1.
|
|
34
|
+
*/
|
|
35
|
+
var EuiCodeBlockVirtualized = function EuiCodeBlockVirtualized(_ref) {
|
|
36
|
+
var data = _ref.data,
|
|
37
|
+
rowHeight = _ref.rowHeight,
|
|
38
|
+
overflowHeight = _ref.overflowHeight,
|
|
39
|
+
preProps = _ref.preProps,
|
|
40
|
+
codeProps = _ref.codeProps;
|
|
41
|
+
var VirtualizedOuterElement = (0, _react.useMemo)(function () {
|
|
42
|
+
return /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
43
|
+
return (0, _react2.jsx)("pre", (0, _extends2.default)({}, props, {
|
|
44
|
+
ref: ref
|
|
45
|
+
}, preProps));
|
|
46
|
+
});
|
|
47
|
+
}, [preProps]);
|
|
48
|
+
var VirtualizedInnerElement = (0, _react.useMemo)(function () {
|
|
49
|
+
return /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
50
|
+
return (0, _react2.jsx)("code", (0, _extends2.default)({}, props, {
|
|
51
|
+
ref: ref
|
|
52
|
+
}, codeProps));
|
|
53
|
+
});
|
|
54
|
+
}, [codeProps]);
|
|
55
|
+
return (0, _react2.jsx)(_auto_sizer.EuiAutoSizer, {
|
|
56
|
+
disableHeight: typeof overflowHeight === 'number'
|
|
57
|
+
}, function (_ref2) {
|
|
58
|
+
var height = _ref2.height,
|
|
59
|
+
width = _ref2.width;
|
|
60
|
+
return (0, _react2.jsx)(_reactWindow.FixedSizeList, {
|
|
61
|
+
height: height !== null && height !== void 0 ? height : overflowHeight,
|
|
62
|
+
width: width,
|
|
63
|
+
itemData: data,
|
|
64
|
+
itemSize: rowHeight,
|
|
65
|
+
itemCount: data.length,
|
|
66
|
+
outerElementType: VirtualizedOuterElement,
|
|
67
|
+
innerElementType: VirtualizedInnerElement
|
|
68
|
+
}, ListRow);
|
|
69
|
+
});
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
exports.EuiCodeBlockVirtualized = EuiCodeBlockVirtualized;
|
|
73
|
+
|
|
74
|
+
var ListRow = function ListRow(_ref3) {
|
|
75
|
+
var data = _ref3.data,
|
|
76
|
+
index = _ref3.index,
|
|
77
|
+
style = _ref3.style;
|
|
78
|
+
var row = data[index];
|
|
79
|
+
row.properties.style = style;
|
|
80
|
+
return (0, _utils.nodeToHtml)(row, index, data, 0);
|
|
81
|
+
};
|