@elastic/eui 62.0.3 → 62.2.1
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 +1 -783
- package/dist/eui_theme_dark.json +0 -57
- package/dist/eui_theme_dark.json.d.ts +0 -57
- package/dist/eui_theme_dark.min.css +1 -1
- package/dist/eui_theme_light.css +1 -783
- package/dist/eui_theme_light.json +0 -57
- package/dist/eui_theme_light.json.d.ts +0 -57
- package/dist/eui_theme_light.min.css +1 -1
- package/es/components/breadcrumbs/breadcrumb.js +199 -0
- package/es/components/breadcrumbs/breadcrumb.styles.js +61 -0
- package/es/components/breadcrumbs/breadcrumbs.js +115 -187
- package/es/components/breadcrumbs/breadcrumbs.styles.js +30 -0
- package/es/components/code/code_block.js +119 -107
- package/es/components/collapsible_nav/collapsible_nav.js +2 -2
- package/es/components/control_bar/control_bar.js +13 -0
- package/es/components/datagrid/body/data_grid_body.js +12 -2
- package/es/components/datagrid/body/data_grid_cell.js +31 -3
- package/es/components/datagrid/body/header/data_grid_header_row.js +1 -1
- package/es/components/datagrid/controls/column_sorting_draggable.js +1 -1
- package/es/components/datagrid/data_grid.js +10 -2
- package/es/components/datagrid/utils/row_heights.js +33 -4
- package/es/components/date_picker/super_date_picker/super_date_picker.js +2 -2
- package/es/components/date_picker/super_date_picker/super_update_button.js +1 -1
- package/es/components/description_list/description_list.js +22 -26
- package/es/components/description_list/description_list.styles.js +25 -0
- package/es/components/description_list/description_list_context.js +14 -0
- package/es/components/description_list/description_list_description.js +43 -2
- package/es/components/description_list/description_list_description.styles.js +47 -0
- package/es/components/description_list/description_list_title.js +43 -2
- package/es/components/description_list/description_list_title.styles.js +37 -0
- package/es/components/description_list/description_list_types.js +10 -0
- package/es/components/header/header.js +1 -27
- package/es/components/header/header_breadcrumbs/header_breadcrumbs.js +22 -2
- package/es/components/header/header_breadcrumbs/header_breadcrumbs.styles.js +15 -0
- package/es/components/header/header_links/header_links.js +9 -9
- package/es/components/icon/assets/tokenStruct.js +1 -1
- package/es/components/page/page_header/page_header.js +1 -0
- package/es/components/page/page_header/page_header_content.js +2 -1
- package/es/components/page/page_template.js +1 -0
- package/es/components/pagination/pagination.js +1 -1
- package/es/components/panel/split_panel/split_panel.js +2 -2
- package/es/components/provider/provider.js +2 -2
- package/es/components/responsive/hide_for.js +6 -38
- package/es/components/responsive/show_for.js +6 -38
- package/es/components/selectable/selectable_templates/selectable_template_sitewide.js +17 -36
- package/es/components/side_nav/side_nav.js +1 -1
- package/es/components/table/table_row_cell.js +1 -2
- package/es/components/toast/global_toast_list.js +208 -241
- package/es/components/toast/global_toast_list.styles.js +38 -0
- package/es/components/toast/global_toast_list_item.js +12 -7
- package/es/components/toast/toast.js +25 -25
- package/es/components/toast/toast.styles.js +55 -0
- package/es/components/token/index.js +2 -1
- package/es/components/token/token.js +48 -112
- package/es/components/token/token.styles.js +93 -0
- package/es/components/token/token_map.js +6 -9
- package/es/components/token/token_types.js +11 -0
- package/es/global_styling/reset/global_styles.js +1 -1
- package/es/services/{breakpoint.js → breakpoint/breakpoint.js} +4 -9
- package/es/services/{hooks/useIsWithinBreakpoints.js → breakpoint/current_breakpoint.js} +26 -28
- package/es/services/breakpoint/current_breakpoint_hook.js +20 -0
- package/es/services/breakpoint/index.js +11 -0
- package/es/services/breakpoint/useIsWithinBreakpoints.js +24 -0
- package/es/services/hooks/index.js +0 -1
- package/es/services/index.js +1 -1
- package/es/test/rtl/component_helpers.js +60 -1
- package/eui.d.ts +1704 -1475
- package/i18ntokens.json +36 -36
- package/lib/components/breadcrumbs/breadcrumb.js +225 -0
- package/lib/components/breadcrumbs/breadcrumb.styles.js +68 -0
- package/lib/components/breadcrumbs/breadcrumbs.js +125 -188
- package/lib/components/breadcrumbs/breadcrumbs.styles.js +33 -0
- package/lib/components/code/code_block.js +118 -106
- package/lib/components/collapsible_nav/collapsible_nav.js +2 -2
- package/lib/components/control_bar/control_bar.js +13 -0
- package/lib/components/datagrid/body/data_grid_body.js +12 -2
- package/lib/components/datagrid/body/data_grid_cell.js +31 -3
- package/lib/components/datagrid/body/header/data_grid_header_row.js +1 -1
- package/lib/components/datagrid/controls/column_sorting_draggable.js +1 -1
- package/lib/components/datagrid/data_grid.js +10 -2
- package/lib/components/datagrid/utils/row_heights.js +33 -4
- package/lib/components/date_picker/super_date_picker/super_date_picker.js +2 -2
- package/lib/components/date_picker/super_date_picker/super_update_button.js +1 -1
- package/lib/components/description_list/description_list.js +25 -31
- package/lib/components/description_list/description_list.styles.js +36 -0
- package/lib/components/description_list/description_list_context.js +24 -0
- package/lib/components/description_list/description_list_description.js +52 -2
- package/lib/components/description_list/description_list_description.styles.js +51 -0
- package/lib/components/description_list/description_list_title.js +52 -2
- package/lib/components/description_list/description_list_title.styles.js +50 -0
- package/lib/components/description_list/description_list_types.js +20 -0
- package/lib/components/header/header.js +1 -27
- package/lib/components/header/header_breadcrumbs/header_breadcrumbs.js +24 -2
- package/lib/components/header/header_breadcrumbs/header_breadcrumbs.styles.js +26 -0
- package/lib/components/header/header_links/header_links.js +8 -8
- package/lib/components/icon/assets/tokenStruct.js +1 -1
- package/lib/components/icon/svgs/tokens/tokenStruct.svg +1 -1
- package/lib/components/page/page_header/page_header.js +1 -0
- package/lib/components/page/page_header/page_header_content.js +3 -2
- package/lib/components/page/page_template.js +1 -0
- package/lib/components/pagination/pagination.js +1 -1
- package/lib/components/panel/split_panel/split_panel.js +3 -3
- package/lib/components/provider/provider.js +1 -1
- package/lib/components/responsive/hide_for.js +12 -44
- package/lib/components/responsive/show_for.js +12 -44
- package/lib/components/selectable/selectable_templates/selectable_template_sitewide.js +15 -35
- package/lib/components/side_nav/side_nav.js +1 -1
- package/lib/components/table/table_row_cell.js +1 -3
- package/lib/components/toast/global_toast_list.js +209 -238
- package/lib/components/toast/global_toast_list.styles.js +45 -0
- package/lib/components/toast/global_toast_list_item.js +14 -7
- package/lib/components/toast/toast.js +27 -25
- package/lib/components/toast/toast.styles.js +66 -0
- package/lib/components/token/index.js +5 -3
- package/lib/components/token/token.js +50 -120
- package/lib/components/token/token.styles.js +101 -0
- package/lib/components/token/token_map.js +6 -9
- package/lib/components/token/token_types.js +22 -0
- package/lib/global_styling/reset/global_styles.js +1 -1
- package/{test-env/services → lib/services/breakpoint}/breakpoint.js +5 -9
- package/lib/services/breakpoint/current_breakpoint.js +69 -0
- package/lib/services/breakpoint/current_breakpoint_hook.js +31 -0
- package/lib/services/breakpoint/index.js +57 -0
- package/lib/services/breakpoint/useIsWithinBreakpoints.js +34 -0
- package/lib/services/hooks/index.js +0 -13
- package/lib/services/index.js +28 -0
- package/lib/test/rtl/component_helpers.js +69 -3
- package/optimize/es/components/breadcrumbs/breadcrumb.js +136 -0
- package/optimize/es/components/breadcrumbs/breadcrumb.styles.js +61 -0
- package/optimize/es/components/breadcrumbs/breadcrumbs.js +92 -165
- package/optimize/es/components/breadcrumbs/breadcrumbs.styles.js +30 -0
- package/optimize/es/components/code/code_block.js +106 -107
- package/optimize/es/components/datagrid/body/data_grid_body.js +2 -0
- package/optimize/es/components/datagrid/body/data_grid_cell.js +13 -1
- package/optimize/es/components/datagrid/utils/row_heights.js +33 -4
- package/optimize/es/components/description_list/description_list.js +20 -24
- package/optimize/es/components/description_list/description_list.styles.js +25 -0
- package/optimize/es/components/description_list/description_list_context.js +14 -0
- package/optimize/es/components/description_list/description_list_description.js +32 -2
- package/optimize/es/components/description_list/description_list_description.styles.js +47 -0
- package/optimize/es/components/description_list/description_list_title.js +32 -2
- package/optimize/es/components/description_list/description_list_title.styles.js +37 -0
- package/optimize/es/components/description_list/description_list_types.js +10 -0
- package/optimize/es/components/header/header_breadcrumbs/header_breadcrumbs.js +8 -1
- package/optimize/es/components/header/header_breadcrumbs/header_breadcrumbs.styles.js +15 -0
- package/optimize/es/components/header/header_links/header_links.js +8 -8
- package/optimize/es/components/icon/assets/tokenStruct.js +1 -1
- package/optimize/es/components/page/page_header/page_header_content.js +1 -1
- package/optimize/es/components/panel/split_panel/split_panel.js +1 -1
- package/optimize/es/components/provider/provider.js +2 -2
- package/optimize/es/components/responsive/hide_for.js +5 -27
- package/optimize/es/components/responsive/show_for.js +5 -27
- package/optimize/es/components/selectable/selectable_templates/selectable_template_sitewide.js +16 -35
- package/optimize/es/components/table/table_row_cell.js +1 -2
- package/optimize/es/components/toast/global_toast_list.js +199 -230
- package/optimize/es/components/toast/global_toast_list.styles.js +38 -0
- package/optimize/es/components/toast/global_toast_list_item.js +11 -6
- package/optimize/es/components/toast/toast.js +24 -24
- package/optimize/es/components/toast/toast.styles.js +55 -0
- package/optimize/es/components/token/index.js +2 -1
- package/optimize/es/components/token/token.js +46 -69
- package/optimize/es/components/token/token.styles.js +83 -0
- package/optimize/es/components/token/token_map.js +6 -9
- package/optimize/es/components/token/token_types.js +11 -0
- package/optimize/es/global_styling/reset/global_styles.js +1 -1
- package/optimize/es/services/{breakpoint.js → breakpoint/breakpoint.js} +4 -9
- package/optimize/es/services/breakpoint/current_breakpoint.js +44 -0
- package/optimize/es/services/breakpoint/current_breakpoint_hook.js +20 -0
- package/optimize/es/services/breakpoint/index.js +11 -0
- package/optimize/es/services/breakpoint/useIsWithinBreakpoints.js +24 -0
- package/optimize/es/services/hooks/index.js +0 -1
- package/optimize/es/services/index.js +1 -1
- package/optimize/es/test/rtl/component_helpers.js +60 -1
- package/optimize/lib/components/breadcrumbs/breadcrumb.js +162 -0
- package/optimize/lib/components/breadcrumbs/breadcrumb.styles.js +68 -0
- package/optimize/lib/components/breadcrumbs/breadcrumbs.js +99 -164
- package/optimize/lib/components/breadcrumbs/breadcrumbs.styles.js +33 -0
- package/optimize/lib/components/code/code_block.js +105 -106
- package/optimize/lib/components/datagrid/body/data_grid_body.js +2 -0
- package/optimize/lib/components/datagrid/body/data_grid_cell.js +13 -1
- package/optimize/lib/components/datagrid/utils/row_heights.js +33 -4
- package/optimize/lib/components/description_list/description_list.js +23 -28
- package/optimize/lib/components/description_list/description_list.styles.js +36 -0
- package/optimize/lib/components/description_list/description_list_context.js +24 -0
- package/optimize/lib/components/description_list/description_list_description.js +43 -2
- package/optimize/lib/components/description_list/description_list_description.styles.js +51 -0
- package/optimize/lib/components/description_list/description_list_title.js +43 -2
- package/optimize/lib/components/description_list/description_list_title.styles.js +50 -0
- package/optimize/lib/components/description_list/description_list_types.js +20 -0
- package/optimize/lib/components/header/header_breadcrumbs/header_breadcrumbs.js +10 -1
- package/optimize/lib/components/header/header_breadcrumbs/header_breadcrumbs.styles.js +26 -0
- package/optimize/lib/components/header/header_links/header_links.js +7 -7
- package/optimize/lib/components/icon/assets/tokenStruct.js +1 -1
- package/optimize/lib/components/icon/svgs/tokens/tokenStruct.svg +1 -1
- package/optimize/lib/components/page/page_header/page_header_content.js +2 -2
- package/optimize/lib/components/panel/split_panel/split_panel.js +2 -2
- package/optimize/lib/components/provider/provider.js +1 -1
- package/optimize/lib/components/responsive/hide_for.js +4 -33
- package/optimize/lib/components/responsive/show_for.js +4 -33
- package/optimize/lib/components/selectable/selectable_templates/selectable_template_sitewide.js +14 -34
- package/optimize/lib/components/table/table_row_cell.js +1 -3
- package/optimize/lib/components/toast/global_toast_list.js +206 -220
- package/optimize/lib/components/toast/global_toast_list.styles.js +47 -0
- package/optimize/lib/components/toast/global_toast_list_item.js +14 -7
- package/optimize/lib/components/toast/toast.js +26 -24
- package/optimize/lib/components/toast/toast.styles.js +66 -0
- package/optimize/lib/components/token/index.js +5 -3
- package/optimize/lib/components/token/token.js +50 -76
- package/optimize/lib/components/token/token.styles.js +91 -0
- package/optimize/lib/components/token/token_map.js +6 -9
- package/optimize/lib/components/token/token_types.js +22 -0
- package/optimize/lib/global_styling/reset/global_styles.js +1 -1
- package/optimize/lib/services/{breakpoint.js → breakpoint/breakpoint.js} +5 -9
- package/optimize/lib/services/breakpoint/current_breakpoint.js +68 -0
- package/optimize/lib/services/breakpoint/current_breakpoint_hook.js +31 -0
- package/optimize/lib/services/breakpoint/index.js +57 -0
- package/optimize/lib/services/breakpoint/useIsWithinBreakpoints.js +34 -0
- package/optimize/lib/services/hooks/index.js +0 -13
- package/optimize/lib/services/index.js +28 -0
- package/optimize/lib/test/rtl/component_helpers.js +69 -3
- package/package.json +2 -2
- package/src/components/control_bar/_control_bar.scss +1 -1
- package/src/components/header/_index.scss +0 -1
- package/src/components/index.scss +0 -5
- package/src/themes/amsterdam/overrides/_breadcrumbs.scss +0 -12
- package/src/themes/amsterdam/overrides/_index.scss +0 -4
- package/test-env/components/breadcrumbs/breadcrumb.js +211 -0
- package/test-env/components/breadcrumbs/breadcrumb.styles.js +68 -0
- package/test-env/components/breadcrumbs/breadcrumbs.js +122 -174
- package/test-env/components/breadcrumbs/breadcrumbs.styles.js +33 -0
- package/test-env/components/collapsible_nav/collapsible_nav.js +2 -2
- package/test-env/components/control_bar/control_bar.js +13 -0
- package/test-env/components/datagrid/body/data_grid_body.js +12 -2
- package/test-env/components/datagrid/body/data_grid_cell.js +31 -3
- package/test-env/components/datagrid/body/header/data_grid_header_row.js +1 -1
- package/test-env/components/datagrid/controls/column_sorting_draggable.js +1 -1
- package/test-env/components/datagrid/data_grid.js +10 -2
- package/test-env/components/datagrid/utils/row_heights.js +33 -4
- package/test-env/components/date_picker/super_date_picker/super_date_picker.js +2 -2
- package/test-env/components/date_picker/super_date_picker/super_update_button.js +1 -1
- package/test-env/components/description_list/description_list.js +25 -30
- package/test-env/components/description_list/description_list.styles.js +36 -0
- package/test-env/components/description_list/description_list_context.js +24 -0
- package/test-env/components/description_list/description_list_description.js +43 -2
- package/test-env/components/description_list/description_list_description.styles.js +51 -0
- package/test-env/components/description_list/description_list_title.js +43 -2
- package/test-env/components/description_list/description_list_title.styles.js +50 -0
- package/test-env/components/description_list/description_list_types.js +20 -0
- package/test-env/components/header/header.js +1 -27
- package/test-env/components/header/header_breadcrumbs/header_breadcrumbs.js +24 -2
- package/test-env/components/header/header_breadcrumbs/header_breadcrumbs.styles.js +26 -0
- package/test-env/components/header/header_links/header_links.js +8 -8
- package/test-env/components/icon/assets/tokenStruct.js +1 -1
- package/test-env/components/observer/resize_observer/resize_observer.js +43 -126
- package/test-env/components/page/page_header/page_header.js +1 -0
- package/test-env/components/page/page_header/page_header_content.js +3 -2
- package/test-env/components/page/page_template.js +1 -0
- package/test-env/components/pagination/pagination.js +1 -1
- package/test-env/components/panel/split_panel/split_panel.js +3 -3
- package/test-env/components/provider/provider.js +1 -1
- package/test-env/components/responsive/hide_for.js +5 -34
- package/test-env/components/responsive/show_for.js +5 -34
- package/test-env/components/selectable/selectable_templates/selectable_template_sitewide.js +15 -35
- package/test-env/components/side_nav/side_nav.js +1 -1
- package/test-env/components/table/table_row_cell.js +1 -3
- package/test-env/components/toast/global_toast_list.js +206 -220
- package/test-env/components/toast/global_toast_list.styles.js +47 -0
- package/test-env/components/toast/global_toast_list_item.js +14 -7
- package/test-env/components/toast/toast.js +27 -25
- package/test-env/components/toast/toast.styles.js +66 -0
- package/test-env/components/token/index.js +5 -3
- package/test-env/components/token/token.js +51 -120
- package/test-env/components/token/token.styles.js +91 -0
- package/test-env/components/token/token_map.js +6 -9
- package/test-env/components/token/token_types.js +22 -0
- package/test-env/global_styling/reset/global_styles.js +1 -1
- package/{lib/services → test-env/services/breakpoint}/breakpoint.js +5 -9
- package/test-env/services/breakpoint/current_breakpoint.js +68 -0
- package/test-env/services/breakpoint/current_breakpoint_hook.js +33 -0
- package/test-env/services/breakpoint/index.js +57 -0
- package/test-env/services/breakpoint/useIsWithinBreakpoints.js +34 -0
- package/test-env/services/hooks/index.js +0 -13
- package/test-env/services/index.js +28 -0
- package/test-env/test/rtl/component_helpers.js +69 -3
- package/lib/services/hooks/useIsWithinBreakpoints.js +0 -57
- package/optimize/es/services/hooks/useIsWithinBreakpoints.js +0 -46
- package/optimize/lib/services/hooks/useIsWithinBreakpoints.js +0 -57
- package/src/components/breadcrumbs/_breadcrumbs.scss +0 -79
- package/src/components/breadcrumbs/_index.scss +0 -2
- package/src/components/breadcrumbs/_variables.scss +0 -2
- package/src/components/description_list/_description_list.scss +0 -211
- package/src/components/description_list/_index.scss +0 -1
- package/src/components/header/header_breadcrumbs/_header_breadcrumbs.scss +0 -8
- package/src/components/header/header_breadcrumbs/_index.scss +0 -1
- package/src/components/portal/_index.scss +0 -1
- package/src/components/portal/_portal.scss +0 -6
- package/src/components/toast/_global_toast_list.scss +0 -90
- package/src/components/toast/_index.scss +0 -4
- package/src/components/toast/_toast.scss +0 -103
- package/src/components/token/_index.scss +0 -2
- package/src/components/token/_token.scss +0 -85
- package/src/components/token/_variables.scss +0 -13
- package/src/themes/amsterdam/overrides/_header_breadcrumbs.scss +0 -71
- package/src/themes/amsterdam/overrides/_toast.scss +0 -21
- package/src/themes/amsterdam/overrides/_token.scss +0 -4
- package/test-env/services/hooks/useIsWithinBreakpoints.js +0 -57
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
var _excluded = ["children", "className", "type", "truncate"],
|
|
2
|
+
_excluded2 = ["text", "truncate", "type", "href", "rel", "onClick", "className", "color", "isFirstBreadcrumb", "isLastBreadcrumb", "isOnlyBreadcrumb", "highlightLastBreadcrumb"];
|
|
3
|
+
|
|
4
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
5
|
+
|
|
6
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
7
|
+
|
|
8
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
9
|
+
|
|
10
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
11
|
+
|
|
12
|
+
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
13
|
+
|
|
14
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
15
|
+
|
|
16
|
+
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
17
|
+
|
|
18
|
+
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
19
|
+
|
|
20
|
+
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
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
|
+
import React, { useState } from 'react';
|
|
30
|
+
import PropTypes from "prop-types";
|
|
31
|
+
import classNames from 'classnames';
|
|
32
|
+
import { useEuiTheme } from '../../services';
|
|
33
|
+
import { EuiInnerText } from '../inner_text';
|
|
34
|
+
import { EuiTextColor } from '../text';
|
|
35
|
+
import { EuiLink } from '../link';
|
|
36
|
+
import { EuiPopover } from '../popover';
|
|
37
|
+
import { EuiIcon } from '../icon';
|
|
38
|
+
import { useEuiI18n } from '../i18n';
|
|
39
|
+
import { euiBreadcrumbStyles, euiBreadcrumbContentStyles } from './breadcrumb.styles';
|
|
40
|
+
import { jsx as ___EmotionJSX } from "@emotion/react";
|
|
41
|
+
export var EuiBreadcrumb = function EuiBreadcrumb(_ref) {
|
|
42
|
+
var children = _ref.children,
|
|
43
|
+
className = _ref.className,
|
|
44
|
+
type = _ref.type,
|
|
45
|
+
truncate = _ref.truncate,
|
|
46
|
+
rest = _objectWithoutProperties(_ref, _excluded);
|
|
47
|
+
|
|
48
|
+
var classes = classNames('euiBreadcrumb', className);
|
|
49
|
+
var euiTheme = useEuiTheme();
|
|
50
|
+
var styles = euiBreadcrumbStyles(euiTheme);
|
|
51
|
+
var cssStyles = [styles.euiBreadcrumb, styles[type], truncate && styles.isTruncated];
|
|
52
|
+
return ___EmotionJSX("li", _extends({
|
|
53
|
+
className: classes,
|
|
54
|
+
css: cssStyles
|
|
55
|
+
}, rest), children);
|
|
56
|
+
};
|
|
57
|
+
EuiBreadcrumb.propTypes = {
|
|
58
|
+
type: PropTypes.oneOf(["page", "application"]).isRequired,
|
|
59
|
+
isFirstBreadcrumb: PropTypes.bool,
|
|
60
|
+
isLastBreadcrumb: PropTypes.bool,
|
|
61
|
+
isOnlyBreadcrumb: PropTypes.bool,
|
|
62
|
+
highlightLastBreadcrumb: PropTypes.bool
|
|
63
|
+
};
|
|
64
|
+
export var EuiBreadcrumbContent = function EuiBreadcrumbContent(_ref2) {
|
|
65
|
+
var text = _ref2.text,
|
|
66
|
+
truncate = _ref2.truncate,
|
|
67
|
+
type = _ref2.type,
|
|
68
|
+
href = _ref2.href,
|
|
69
|
+
rel = _ref2.rel,
|
|
70
|
+
onClick = _ref2.onClick,
|
|
71
|
+
className = _ref2.className,
|
|
72
|
+
color = _ref2.color,
|
|
73
|
+
isFirstBreadcrumb = _ref2.isFirstBreadcrumb,
|
|
74
|
+
isLastBreadcrumb = _ref2.isLastBreadcrumb,
|
|
75
|
+
isOnlyBreadcrumb = _ref2.isOnlyBreadcrumb,
|
|
76
|
+
highlightLastBreadcrumb = _ref2.highlightLastBreadcrumb,
|
|
77
|
+
rest = _objectWithoutProperties(_ref2, _excluded2);
|
|
78
|
+
|
|
79
|
+
var classes = classNames('euiBreadcrumb__content', className);
|
|
80
|
+
var euiTheme = useEuiTheme();
|
|
81
|
+
var styles = euiBreadcrumbContentStyles(euiTheme);
|
|
82
|
+
var cssStyles = [styles.euiBreadcrumb__content, styles[type], truncate && (isLastBreadcrumb ? styles.isTruncatedLast : styles.isTruncated)];
|
|
83
|
+
|
|
84
|
+
if (type === 'application') {
|
|
85
|
+
if (isOnlyBreadcrumb) {
|
|
86
|
+
cssStyles.push(styles.applicationStyles.onlyChild);
|
|
87
|
+
} else if (isFirstBreadcrumb) {
|
|
88
|
+
cssStyles.push(styles.applicationStyles.firstChild);
|
|
89
|
+
} else if (isLastBreadcrumb) {
|
|
90
|
+
cssStyles.push(styles.applicationStyles.lastChild);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
var ariaCurrent = highlightLastBreadcrumb ? 'page' : undefined;
|
|
95
|
+
return ___EmotionJSX(EuiInnerText, null, function (ref, innerText) {
|
|
96
|
+
var title = innerText === '' ? undefined : innerText;
|
|
97
|
+
return !href && !onClick ? ___EmotionJSX(EuiTextColor, {
|
|
98
|
+
color: highlightLastBreadcrumb ? 'default' : 'subdued',
|
|
99
|
+
cloneElement: true
|
|
100
|
+
}, ___EmotionJSX("span", _extends({
|
|
101
|
+
ref: ref,
|
|
102
|
+
title: title,
|
|
103
|
+
"aria-current": ariaCurrent,
|
|
104
|
+
className: classes,
|
|
105
|
+
css: cssStyles
|
|
106
|
+
}, rest), text)) : ___EmotionJSX(EuiLink, _extends({
|
|
107
|
+
ref: ref,
|
|
108
|
+
title: title,
|
|
109
|
+
"aria-current": ariaCurrent,
|
|
110
|
+
className: classes,
|
|
111
|
+
css: cssStyles,
|
|
112
|
+
color: color || (highlightLastBreadcrumb ? 'text' : 'subdued'),
|
|
113
|
+
onClick: onClick,
|
|
114
|
+
href: href,
|
|
115
|
+
rel: rel
|
|
116
|
+
}, rest), text);
|
|
117
|
+
});
|
|
118
|
+
};
|
|
119
|
+
EuiBreadcrumbContent.propTypes = {
|
|
120
|
+
className: PropTypes.string,
|
|
121
|
+
"aria-label": PropTypes.string,
|
|
122
|
+
"data-test-subj": PropTypes.string,
|
|
123
|
+
href: PropTypes.string,
|
|
124
|
+
rel: PropTypes.string,
|
|
125
|
+
onClick: PropTypes.func,
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* Visible label of the breadcrumb
|
|
129
|
+
*/
|
|
130
|
+
text: PropTypes.node.isRequired,
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* Force a max-width on the breadcrumb text
|
|
134
|
+
*/
|
|
135
|
+
truncate: PropTypes.bool,
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* Accepts any EuiLink `color` when rendered as one (has `href` or `onClick`)
|
|
139
|
+
*/
|
|
140
|
+
color: PropTypes.any,
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* Override the existing `aria-current` which defaults to `page` for the last breadcrumb
|
|
144
|
+
*/
|
|
145
|
+
"aria-current": PropTypes.any,
|
|
146
|
+
type: PropTypes.oneOf(["page", "application"]).isRequired,
|
|
147
|
+
isFirstBreadcrumb: PropTypes.bool,
|
|
148
|
+
isLastBreadcrumb: PropTypes.bool,
|
|
149
|
+
isOnlyBreadcrumb: PropTypes.bool,
|
|
150
|
+
highlightLastBreadcrumb: PropTypes.bool
|
|
151
|
+
};
|
|
152
|
+
export var EuiBreadcrumbCollapsed = function EuiBreadcrumbCollapsed(_ref3) {
|
|
153
|
+
var children = _ref3.children,
|
|
154
|
+
isFirstBreadcrumb = _ref3.isFirstBreadcrumb,
|
|
155
|
+
type = _ref3.type;
|
|
156
|
+
|
|
157
|
+
var _useState = useState(false),
|
|
158
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
159
|
+
isPopoverOpen = _useState2[0],
|
|
160
|
+
setIsPopoverOpen = _useState2[1];
|
|
161
|
+
|
|
162
|
+
var euiTheme = useEuiTheme();
|
|
163
|
+
var styles = euiBreadcrumbStyles(euiTheme);
|
|
164
|
+
var cssStyles = [styles.isCollapsed];
|
|
165
|
+
var ariaLabel = useEuiI18n('euiBreadcrumb.collapsedBadge.ariaLabel', 'See collapsed breadcrumbs');
|
|
166
|
+
|
|
167
|
+
var ellipsisButton = ___EmotionJSX(EuiBreadcrumbContent, {
|
|
168
|
+
"aria-label": ariaLabel,
|
|
169
|
+
title: ariaLabel,
|
|
170
|
+
onClick: function onClick() {
|
|
171
|
+
return setIsPopoverOpen(!isPopoverOpen);
|
|
172
|
+
},
|
|
173
|
+
truncate: false,
|
|
174
|
+
text: ___EmotionJSX(React.Fragment, null, "\u2026 ", ___EmotionJSX(EuiIcon, {
|
|
175
|
+
type: "arrowDown",
|
|
176
|
+
size: "s"
|
|
177
|
+
})),
|
|
178
|
+
isFirstBreadcrumb: isFirstBreadcrumb,
|
|
179
|
+
type: type
|
|
180
|
+
});
|
|
181
|
+
|
|
182
|
+
return ___EmotionJSX(EuiBreadcrumb, {
|
|
183
|
+
css: cssStyles,
|
|
184
|
+
type: type
|
|
185
|
+
}, ___EmotionJSX(EuiPopover, {
|
|
186
|
+
button: ellipsisButton,
|
|
187
|
+
isOpen: isPopoverOpen,
|
|
188
|
+
closePopover: function closePopover() {
|
|
189
|
+
return setIsPopoverOpen(false);
|
|
190
|
+
}
|
|
191
|
+
}, children));
|
|
192
|
+
};
|
|
193
|
+
EuiBreadcrumbCollapsed.propTypes = {
|
|
194
|
+
type: PropTypes.oneOf(["page", "application"]).isRequired,
|
|
195
|
+
isFirstBreadcrumb: PropTypes.bool,
|
|
196
|
+
isLastBreadcrumb: PropTypes.bool,
|
|
197
|
+
isOnlyBreadcrumb: PropTypes.bool,
|
|
198
|
+
highlightLastBreadcrumb: PropTypes.bool
|
|
199
|
+
};
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
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)."; }
|
|
2
|
+
|
|
3
|
+
/*
|
|
4
|
+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
5
|
+
* or more contributor license agreements. Licensed under the Elastic License
|
|
6
|
+
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
|
7
|
+
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
8
|
+
* Side Public License, v 1.
|
|
9
|
+
*/
|
|
10
|
+
import { css } from '@emotion/react';
|
|
11
|
+
import { transparentize } from '../../services/color';
|
|
12
|
+
import { euiFontSize, euiTextTruncate, euiFocusRing, logicalCSS } from '../../global_styling';
|
|
13
|
+
|
|
14
|
+
var _ref = process.env.NODE_ENV === "production" ? {
|
|
15
|
+
name: "1k7t4ns-isCollapsed",
|
|
16
|
+
styles: "flex-shrink:0;label:isCollapsed;"
|
|
17
|
+
} : {
|
|
18
|
+
name: "1k7t4ns-isCollapsed",
|
|
19
|
+
styles: "flex-shrink:0;label:isCollapsed;",
|
|
20
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
var _ref2 = process.env.NODE_ENV === "production" ? {
|
|
24
|
+
name: "p0bcva-isTruncated",
|
|
25
|
+
styles: "overflow:hidden;label:isTruncated;"
|
|
26
|
+
} : {
|
|
27
|
+
name: "p0bcva-isTruncated",
|
|
28
|
+
styles: "overflow:hidden;label:isTruncated;",
|
|
29
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
export var euiBreadcrumbStyles = function euiBreadcrumbStyles(euiThemeContext) {
|
|
33
|
+
// Styles cast to <li> element
|
|
34
|
+
var euiTheme = euiThemeContext.euiTheme;
|
|
35
|
+
return {
|
|
36
|
+
euiBreadcrumb: /*#__PURE__*/css("align-items:center;display:flex;", logicalCSS( // See .euiBreadcrumbs__list's negative margin-bottom
|
|
37
|
+
'margin-bottom', euiTheme.size.xs), ";;label:euiBreadcrumb;"),
|
|
38
|
+
isTruncated: _ref2,
|
|
39
|
+
isCollapsed: _ref,
|
|
40
|
+
// Types
|
|
41
|
+
page: /*#__PURE__*/css("&:not(:last-of-type){&:after{background:", euiTheme.colors.lightShade, ";content:'';flex-shrink:0;", logicalCSS('margin-top', euiTheme.size.xs), " ", logicalCSS('margin-bottom', 0), " ", logicalCSS('margin-horizontal', euiTheme.size.s), " ", logicalCSS('height', euiTheme.size.base), " ", logicalCSS('width', '1px'), " transform:translateY(-1px) rotate(15deg);}};label:page;"),
|
|
42
|
+
application: /*#__PURE__*/css("&:not(:last-of-type){", logicalCSS('margin-right', "-".concat(euiTheme.size.xs)), ";};label:application;")
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
export var euiBreadcrumbContentStyles = function euiBreadcrumbContentStyles(euiThemeContext) {
|
|
46
|
+
// Styles cast to <a>, <span>, or collapsed <button> elements
|
|
47
|
+
var euiTheme = euiThemeContext.euiTheme;
|
|
48
|
+
return {
|
|
49
|
+
euiBreadcrumb__content: /*#__PURE__*/css("font-weight:", euiTheme.font.weight.medium, ";text-align:center;vertical-align:baseline;;label:euiBreadcrumb__content;"),
|
|
50
|
+
isTruncated: /*#__PURE__*/css(euiTextTruncate("".concat(parseFloat(euiTheme.size.base) * 10, "px")), ";;label:isTruncated;"),
|
|
51
|
+
isTruncatedLast: /*#__PURE__*/css(euiTextTruncate('none'), ";;label:isTruncatedLast;"),
|
|
52
|
+
// Types
|
|
53
|
+
page: /*#__PURE__*/css("&:is(a):focus{", euiFocusRing(euiTheme, 'inset'), ";}&:is(button):focus{", euiFocusRing(euiTheme, 'center'), ";};label:page;"),
|
|
54
|
+
application: /*#__PURE__*/css(euiFontSize(euiThemeContext, 'xs'), ";background-color:", transparentize(euiTheme.colors.darkestShade, 0.2), ";clip-path:polygon(\n 0 0,\n calc(100% - ", euiTheme.size.s, ") 0,\n 100% 50%,\n calc(100% - ", euiTheme.size.s, ") 100%,\n 0 100%,\n ", euiTheme.size.s, " 50%\n );color:", euiTheme.colors.darkestShade, ";line-height:", euiTheme.size.base, ";", logicalCSS('padding-vertical', euiTheme.size.xs), " ", logicalCSS('padding-horizontal', euiTheme.size.base), " &:is(a),&:is(button){background-color:", transparentize(euiTheme.colors.primary, 0.2), ";color:", euiTheme.colors.link, ";:focus{", euiFocusRing(euiTheme, 'inset'), ";:focus-visible{border-radius:", euiTheme.border.radius.medium, ";clip-path:none;}}};label:application;"),
|
|
55
|
+
applicationStyles: {
|
|
56
|
+
onlyChild: /*#__PURE__*/css("border-radius:", euiTheme.border.radius.medium, ";clip-path:none;", logicalCSS('padding-horizontal', euiTheme.size.m), ",;;label:onlyChild;"),
|
|
57
|
+
firstChild: /*#__PURE__*/css("border-radius:", euiTheme.border.radius.medium, " 0 0 ", euiTheme.border.radius.medium, ";clip-path:polygon(\n 0 0,\n calc(100% - ", euiTheme.size.s, ") 0,\n 100% 50%,\n calc(100% - ", euiTheme.size.s, ") 100%,\n 0 100%\n );", logicalCSS('padding-left', euiTheme.size.m), ",;;label:firstChild;"),
|
|
58
|
+
lastChild: /*#__PURE__*/css("border-radius:0 ", euiTheme.border.radius.medium, " ", euiTheme.border.radius.medium, " 0;clip-path:polygon(\n 0 0,\n 100% 0,\n 100% 100%,\n 0 100%,\n ", euiTheme.size.s, " 50%\n );", logicalCSS('padding-right', euiTheme.size.m), ",;;label:lastChild;")
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
};
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
var _excluded = ["breadcrumbs", "className", "responsive", "truncate", "max"]
|
|
2
|
-
_excluded2 = ["text", "href", "onClick", "truncate", "className"];
|
|
1
|
+
var _excluded = ["breadcrumbs", "className", "responsive", "truncate", "max", "type", "lastBreadcrumbIsCurrentPage"];
|
|
3
2
|
|
|
4
3
|
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
|
5
4
|
|
|
@@ -9,20 +8,6 @@ function _objectWithoutProperties(source, excluded) { if (source == null) return
|
|
|
9
8
|
|
|
10
9
|
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
11
10
|
|
|
12
|
-
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
13
|
-
|
|
14
|
-
import PropTypes from "prop-types";
|
|
15
|
-
|
|
16
|
-
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
17
|
-
|
|
18
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
19
|
-
|
|
20
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
21
|
-
|
|
22
|
-
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
23
|
-
|
|
24
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
25
|
-
|
|
26
11
|
/*
|
|
27
12
|
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
28
13
|
* or more contributor license agreements. Licensed under the Elastic License
|
|
@@ -30,99 +15,19 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
|
30
15
|
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
31
16
|
* Side Public License, v 1.
|
|
32
17
|
*/
|
|
33
|
-
import React, {
|
|
18
|
+
import React, { useMemo } from 'react';
|
|
19
|
+
import PropTypes from "prop-types";
|
|
34
20
|
import classNames from 'classnames';
|
|
35
21
|
import { useEuiI18n } from '../i18n';
|
|
36
|
-
import {
|
|
37
|
-
import {
|
|
38
|
-
import {
|
|
39
|
-
import { EuiIcon } from '../icon';
|
|
40
|
-
import { throttle } from '../../services';
|
|
41
|
-
import { getBreakpoint } from '../../services/breakpoint';
|
|
22
|
+
import { useEuiTheme, useCurrentEuiBreakpoint } from '../../services';
|
|
23
|
+
import { EuiBreadcrumb, EuiBreadcrumbContent, EuiBreadcrumbCollapsed } from './breadcrumb';
|
|
24
|
+
import { euiBreadcrumbsListStyles } from './breadcrumbs.styles';
|
|
42
25
|
import { jsx as ___EmotionJSX } from "@emotion/react";
|
|
43
|
-
var CONTENT_CLASSNAME = 'euiBreadcrumb__content';
|
|
44
26
|
var responsiveDefault = {
|
|
45
27
|
xs: 1,
|
|
46
28
|
s: 2,
|
|
47
29
|
m: 4
|
|
48
30
|
};
|
|
49
|
-
|
|
50
|
-
var limitBreadcrumbs = function limitBreadcrumbs(breadcrumbs, max, allBreadcrumbs) {
|
|
51
|
-
var breadcrumbsAtStart = [];
|
|
52
|
-
var breadcrumbsAtEnd = [];
|
|
53
|
-
var limit = Math.min(max, breadcrumbs.length);
|
|
54
|
-
var start = Math.floor(limit / 2);
|
|
55
|
-
var overflowBreadcrumbs = allBreadcrumbs.slice(start, start + breadcrumbs.length - limit);
|
|
56
|
-
|
|
57
|
-
if (overflowBreadcrumbs.length) {
|
|
58
|
-
overflowBreadcrumbs[overflowBreadcrumbs.length - 1]['aria-current'] = 'false';
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
for (var i = 0; i < limit; i++) {
|
|
62
|
-
// We'll alternate with displaying breadcrumbs at the end and at the start, but be biased
|
|
63
|
-
// towards breadcrumbs the end so that if max is an odd number, we'll have one more
|
|
64
|
-
// breadcrumb visible at the end than at the beginning.
|
|
65
|
-
var isEven = i % 2 === 0; // We're picking breadcrumbs from the front AND the back, so we treat each iteration as a
|
|
66
|
-
// half-iteration.
|
|
67
|
-
|
|
68
|
-
var normalizedIndex = Math.floor(i * 0.5);
|
|
69
|
-
var indexOfBreadcrumb = isEven ? breadcrumbs.length - 1 - normalizedIndex : normalizedIndex;
|
|
70
|
-
var breadcrumb = breadcrumbs[indexOfBreadcrumb];
|
|
71
|
-
|
|
72
|
-
if (isEven) {
|
|
73
|
-
breadcrumbsAtEnd.unshift(breadcrumb);
|
|
74
|
-
} else {
|
|
75
|
-
breadcrumbsAtStart.push(breadcrumb);
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
var EuiBreadcrumbCollapsed = function EuiBreadcrumbCollapsed() {
|
|
80
|
-
var _useState = useState(false),
|
|
81
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
82
|
-
isPopoverOpen = _useState2[0],
|
|
83
|
-
setIsPopoverOpen = _useState2[1];
|
|
84
|
-
|
|
85
|
-
var ariaLabel = useEuiI18n('euiBreadcrumbs.collapsedBadge.ariaLabel', 'See collapsed breadcrumbs');
|
|
86
|
-
|
|
87
|
-
var ellipsisButton = ___EmotionJSX(EuiLink, {
|
|
88
|
-
className: CONTENT_CLASSNAME,
|
|
89
|
-
color: "subdued",
|
|
90
|
-
"aria-label": ariaLabel,
|
|
91
|
-
title: ariaLabel,
|
|
92
|
-
onClick: function onClick() {
|
|
93
|
-
return setIsPopoverOpen(!isPopoverOpen);
|
|
94
|
-
}
|
|
95
|
-
}, "\u2026 ", ___EmotionJSX(EuiIcon, {
|
|
96
|
-
type: "arrowDown",
|
|
97
|
-
size: "s"
|
|
98
|
-
}));
|
|
99
|
-
|
|
100
|
-
return ___EmotionJSX("li", {
|
|
101
|
-
className: "euiBreadcrumb euiBreadcrumb--collapsed"
|
|
102
|
-
}, ___EmotionJSX(EuiPopover, {
|
|
103
|
-
button: ellipsisButton,
|
|
104
|
-
isOpen: isPopoverOpen,
|
|
105
|
-
closePopover: function closePopover() {
|
|
106
|
-
return setIsPopoverOpen(false);
|
|
107
|
-
}
|
|
108
|
-
}, ___EmotionJSX(EuiBreadcrumbs, {
|
|
109
|
-
className: "euiBreadcrumbs__inPopover",
|
|
110
|
-
breadcrumbs: overflowBreadcrumbs,
|
|
111
|
-
responsive: false,
|
|
112
|
-
truncate: false,
|
|
113
|
-
max: 0
|
|
114
|
-
})));
|
|
115
|
-
};
|
|
116
|
-
|
|
117
|
-
if (max < breadcrumbs.length) {
|
|
118
|
-
breadcrumbsAtStart.push(___EmotionJSX(EuiBreadcrumbCollapsed, {
|
|
119
|
-
key: "collapsed"
|
|
120
|
-
}));
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
return [].concat(breadcrumbsAtStart, breadcrumbsAtEnd);
|
|
124
|
-
};
|
|
125
|
-
|
|
126
31
|
export var EuiBreadcrumbs = function EuiBreadcrumbs(_ref) {
|
|
127
32
|
var breadcrumbs = _ref.breadcrumbs,
|
|
128
33
|
className = _ref.className,
|
|
@@ -132,98 +37,57 @@ export var EuiBreadcrumbs = function EuiBreadcrumbs(_ref) {
|
|
|
132
37
|
truncate = _ref$truncate === void 0 ? true : _ref$truncate,
|
|
133
38
|
_ref$max = _ref.max,
|
|
134
39
|
max = _ref$max === void 0 ? 5 : _ref$max,
|
|
40
|
+
_ref$type = _ref.type,
|
|
41
|
+
type = _ref$type === void 0 ? 'page' : _ref$type,
|
|
42
|
+
_ref$lastBreadcrumbIs = _ref.lastBreadcrumbIsCurrentPage,
|
|
43
|
+
lastBreadcrumbIsCurrentPage = _ref$lastBreadcrumbIs === void 0 ? true : _ref$lastBreadcrumbIs,
|
|
135
44
|
rest = _objectWithoutProperties(_ref, _excluded);
|
|
136
45
|
|
|
137
46
|
var ariaLabel = useEuiI18n('euiBreadcrumbs.nav.ariaLabel', 'Breadcrumbs');
|
|
138
|
-
|
|
139
|
-
var
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
truncate
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
className: classNames(CONTENT_CLASSNAME, breadcrumbClassName),
|
|
174
|
-
'aria-current': isLastBreadcrumb ? 'page' : undefined
|
|
175
|
-
};
|
|
176
|
-
|
|
177
|
-
var link = ___EmotionJSX(EuiInnerText, null, function (ref, innerText) {
|
|
178
|
-
var title = innerText === '' ? undefined : innerText;
|
|
179
|
-
|
|
180
|
-
if (!href && !onClick) {
|
|
181
|
-
return ___EmotionJSX("span", _extends({
|
|
182
|
-
ref: ref,
|
|
183
|
-
title: title
|
|
184
|
-
}, linkProps, breadcrumbRest), text);
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
return ___EmotionJSX(EuiLink, _extends({
|
|
188
|
-
ref: ref,
|
|
189
|
-
color: isLastBreadcrumb ? 'text' : 'subdued',
|
|
190
|
-
onClick: onClick,
|
|
191
|
-
href: href,
|
|
192
|
-
title: title
|
|
193
|
-
}, linkProps, breadcrumbRest), text);
|
|
47
|
+
var euiTheme = useEuiTheme();
|
|
48
|
+
var breadcrumbsListStyles = euiBreadcrumbsListStyles(euiTheme);
|
|
49
|
+
var cssBreadcrumbsListStyles = [breadcrumbsListStyles.euiBreadcrumbs__list, truncate && breadcrumbsListStyles.isTruncated];
|
|
50
|
+
var responsiveMax = useResponsiveMax(responsive, max);
|
|
51
|
+
var visibleBreadcrumbs = useMemo(function () {
|
|
52
|
+
var shouldCollapseBreadcrumbs = responsiveMax && breadcrumbs.length > responsiveMax;
|
|
53
|
+
return shouldCollapseBreadcrumbs ? limitBreadcrumbs(breadcrumbs, responsiveMax) : breadcrumbs;
|
|
54
|
+
}, [breadcrumbs, responsiveMax]);
|
|
55
|
+
var breadcrumbChildren = useMemo(function () {
|
|
56
|
+
return visibleBreadcrumbs.map(function (breadcrumb, index) {
|
|
57
|
+
var isFirstBreadcrumb = index === 0;
|
|
58
|
+
var isLastBreadcrumb = index === visibleBreadcrumbs.length - 1;
|
|
59
|
+
var isOnlyBreadcrumb = visibleBreadcrumbs.length === 1;
|
|
60
|
+
var sharedProps = {
|
|
61
|
+
type: type,
|
|
62
|
+
truncate: truncate
|
|
63
|
+
};
|
|
64
|
+
return breadcrumb.isCollapsedButton ? ___EmotionJSX(EuiBreadcrumbCollapsed, _extends({
|
|
65
|
+
key: "collapsed"
|
|
66
|
+
}, sharedProps, {
|
|
67
|
+
isFirstBreadcrumb: isFirstBreadcrumb
|
|
68
|
+
}), ___EmotionJSX(EuiBreadcrumbs, {
|
|
69
|
+
breadcrumbs: breadcrumb.overflowBreadcrumbs,
|
|
70
|
+
lastBreadcrumbIsCurrentPage: false,
|
|
71
|
+
responsive: false,
|
|
72
|
+
truncate: false,
|
|
73
|
+
max: 0
|
|
74
|
+
})) : ___EmotionJSX(EuiBreadcrumb, _extends({
|
|
75
|
+
key: index
|
|
76
|
+
}, sharedProps), ___EmotionJSX(EuiBreadcrumbContent, _extends({
|
|
77
|
+
isFirstBreadcrumb: isFirstBreadcrumb,
|
|
78
|
+
isLastBreadcrumb: isLastBreadcrumb,
|
|
79
|
+
isOnlyBreadcrumb: isOnlyBreadcrumb,
|
|
80
|
+
highlightLastBreadcrumb: isLastBreadcrumb && lastBreadcrumbIsCurrentPage
|
|
81
|
+
}, sharedProps, breadcrumb)));
|
|
194
82
|
});
|
|
195
|
-
|
|
196
|
-
return ___EmotionJSX("li", {
|
|
197
|
-
className: className,
|
|
198
|
-
key: index
|
|
199
|
-
}, link);
|
|
200
|
-
}); // Use the default object if they simply passed `true` for responsive
|
|
201
|
-
|
|
202
|
-
var responsiveObject = _typeof(responsive) === 'object' ? responsive : responsiveDefault; // The max property collapses any breadcrumbs past the max quantity.
|
|
203
|
-
// This is the same behavior we want for responsiveness.
|
|
204
|
-
// So calculate the max value based on the combination of `max` and `responsive`
|
|
205
|
-
|
|
206
|
-
var calculatedMax = max; // Set the calculated max to the number associated with the currentBreakpoint key if it exists
|
|
207
|
-
|
|
208
|
-
if (responsive && responsiveObject[currentBreakpoint]) {
|
|
209
|
-
calculatedMax = responsiveObject[currentBreakpoint];
|
|
210
|
-
} // Final check is to make sure max is used over a larger breakpoint value
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
if (max && calculatedMax) {
|
|
214
|
-
calculatedMax = max < calculatedMax ? max : calculatedMax;
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
var limitedBreadcrumbs = calculatedMax ? limitBreadcrumbs(breadcrumbElements, calculatedMax, breadcrumbs) : breadcrumbElements;
|
|
218
|
-
var classes = classNames('euiBreadcrumbs', className, {
|
|
219
|
-
'euiBreadcrumbs--truncate': truncate
|
|
220
|
-
});
|
|
83
|
+
}, [visibleBreadcrumbs, truncate, type, lastBreadcrumbIsCurrentPage]);
|
|
221
84
|
return ___EmotionJSX("nav", _extends({
|
|
222
85
|
"aria-label": ariaLabel,
|
|
223
|
-
className:
|
|
86
|
+
className: classNames('euiBreadcrumbs', className)
|
|
224
87
|
}, rest), ___EmotionJSX("ol", {
|
|
225
|
-
className: "euiBreadcrumbs__list"
|
|
226
|
-
|
|
88
|
+
className: "euiBreadcrumbs__list",
|
|
89
|
+
css: cssBreadcrumbsListStyles
|
|
90
|
+
}, breadcrumbChildren));
|
|
227
91
|
};
|
|
228
92
|
EuiBreadcrumbs.propTypes = {
|
|
229
93
|
className: PropTypes.string,
|
|
@@ -262,6 +126,7 @@ EuiBreadcrumbs.propTypes = {
|
|
|
262
126
|
"aria-label": PropTypes.string,
|
|
263
127
|
"data-test-subj": PropTypes.string,
|
|
264
128
|
href: PropTypes.string,
|
|
129
|
+
rel: PropTypes.string,
|
|
265
130
|
onClick: PropTypes.func,
|
|
266
131
|
|
|
267
132
|
/**
|
|
@@ -283,5 +148,68 @@ EuiBreadcrumbs.propTypes = {
|
|
|
283
148
|
* Override the existing `aria-current` which defaults to `page` for the last breadcrumb
|
|
284
149
|
*/
|
|
285
150
|
"aria-current": PropTypes.any
|
|
286
|
-
}).isRequired).isRequired
|
|
151
|
+
}).isRequired).isRequired,
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* Determines breadcrumbs appearance, with `page` being the default styling.
|
|
155
|
+
* Application breadcrumbs should only be once per page, in (e.g.) EuiHeader
|
|
156
|
+
*/
|
|
157
|
+
type: PropTypes.oneOf(["page", "application"]),
|
|
158
|
+
|
|
159
|
+
/**
|
|
160
|
+
* Whether the last breadcrumb should visually (and accessibly, to screen readers)
|
|
161
|
+
* be highlighted as the current page. Defaults to true.
|
|
162
|
+
*/
|
|
163
|
+
lastBreadcrumbIsCurrentPage: PropTypes.bool
|
|
164
|
+
};
|
|
165
|
+
export var useResponsiveMax = function useResponsiveMax(responsive, max) {
|
|
166
|
+
// Use the default object if they simply passed `true` for responsive
|
|
167
|
+
var responsiveObject = _typeof(responsive) === 'object' ? responsive : responsiveDefault; // The max property collapses any breadcrumbs past the max quantity.
|
|
168
|
+
// This is the same behavior we want for responsiveness.
|
|
169
|
+
// So calculate the max value based on the combination of `max` and `responsive`
|
|
170
|
+
|
|
171
|
+
var responsiveMax = max; // Set the calculated max to the number associated with the currentBreakpoint key if it exists
|
|
172
|
+
|
|
173
|
+
var currentBreakpoint = useCurrentEuiBreakpoint();
|
|
174
|
+
|
|
175
|
+
if (responsive && currentBreakpoint && responsiveObject[currentBreakpoint]) {
|
|
176
|
+
responsiveMax = responsiveObject[currentBreakpoint];
|
|
177
|
+
} // Final check is to make sure max is used over a larger breakpoint value
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
if (max && responsiveMax) {
|
|
181
|
+
responsiveMax = max < responsiveMax ? max : responsiveMax;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
return responsiveMax;
|
|
185
|
+
};
|
|
186
|
+
export var limitBreadcrumbs = function limitBreadcrumbs(breadcrumbs, max) {
|
|
187
|
+
var breadcrumbsAtStart = [];
|
|
188
|
+
var breadcrumbsAtEnd = [];
|
|
189
|
+
var limit = Math.min(max, breadcrumbs.length);
|
|
190
|
+
var start = Math.floor(limit / 2);
|
|
191
|
+
var overflowBreadcrumbs = breadcrumbs.slice(start, start + breadcrumbs.length - limit);
|
|
192
|
+
|
|
193
|
+
for (var i = 0; i < limit; i++) {
|
|
194
|
+
// We'll alternate with displaying breadcrumbs at the end and at the start, but be biased
|
|
195
|
+
// towards breadcrumbs the end so that if max is an odd number, we'll have one more
|
|
196
|
+
// breadcrumb visible at the end than at the beginning.
|
|
197
|
+
var isEven = i % 2 === 0; // We're picking breadcrumbs from the front AND the back, so we treat each iteration as a
|
|
198
|
+
// half-iteration.
|
|
199
|
+
|
|
200
|
+
var normalizedIndex = Math.floor(i * 0.5);
|
|
201
|
+
var indexOfBreadcrumb = isEven ? breadcrumbs.length - 1 - normalizedIndex : normalizedIndex;
|
|
202
|
+
var breadcrumb = breadcrumbs[indexOfBreadcrumb];
|
|
203
|
+
|
|
204
|
+
if (isEven) {
|
|
205
|
+
breadcrumbsAtEnd.unshift(breadcrumb);
|
|
206
|
+
} else {
|
|
207
|
+
breadcrumbsAtStart.push(breadcrumb);
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
return [].concat(breadcrumbsAtStart, [{
|
|
212
|
+
isCollapsedButton: true,
|
|
213
|
+
overflowBreadcrumbs: overflowBreadcrumbs
|
|
214
|
+
}], breadcrumbsAtEnd);
|
|
287
215
|
};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
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)."; }
|
|
2
|
+
|
|
3
|
+
/*
|
|
4
|
+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
5
|
+
* or more contributor license agreements. Licensed under the Elastic License
|
|
6
|
+
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
|
7
|
+
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
8
|
+
* Side Public License, v 1.
|
|
9
|
+
*/
|
|
10
|
+
import { css } from '@emotion/react';
|
|
11
|
+
import { euiFontSize, logicalCSS } from '../../global_styling';
|
|
12
|
+
|
|
13
|
+
var _ref = process.env.NODE_ENV === "production" ? {
|
|
14
|
+
name: "1bwn7gf-isTruncated",
|
|
15
|
+
styles: "flex-wrap:nowrap;white-space:nowrap;label:isTruncated;"
|
|
16
|
+
} : {
|
|
17
|
+
name: "1bwn7gf-isTruncated",
|
|
18
|
+
styles: "flex-wrap:nowrap;white-space:nowrap;label:isTruncated;",
|
|
19
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
export var euiBreadcrumbsListStyles = function euiBreadcrumbsListStyles(euiThemeContext) {
|
|
23
|
+
// Styles cast to the <ol> element
|
|
24
|
+
var euiTheme = euiThemeContext.euiTheme;
|
|
25
|
+
return {
|
|
26
|
+
euiBreadcrumbs__list: /*#__PURE__*/css(euiFontSize(euiThemeContext, 's'), ";align-items:center;display:flex;flex-wrap:wrap;line-height:", euiTheme.size.l, ";", logicalCSS( // Add vertical space between breadcrumbs, but make sure the whole breadcrumb set doesn't add space below itself
|
|
27
|
+
'margin-bottom', "-".concat(euiTheme.size.xs)), " ", logicalCSS('min-width', 0), ";;label:euiBreadcrumbs__list;"),
|
|
28
|
+
isTruncated: _ref
|
|
29
|
+
};
|
|
30
|
+
};
|