@elastic/eui 110.0.0 → 111.1.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/es/components/avatar/avatar.js +1 -1
- package/es/components/badge/badge.js +1 -1
- package/es/components/badge/beta_badge/beta_badge.js +1 -1
- package/es/components/basic_table/basic_table.js +36 -55
- package/es/components/basic_table/in_memory_table.js +6 -6
- package/es/components/beacon/beacon.styles.js +1 -1
- package/es/components/button/button_display/_button_display_content.js +1 -1
- package/es/components/button/button_empty/button_empty.js +1 -1
- package/es/components/button/button_group/button_group.js +1 -1
- package/es/components/button/button_group/button_group_button.js +1 -1
- package/es/components/button/button_icon/button_icon.js +1 -1
- package/es/components/button/index.js +2 -1
- package/es/components/button/split_button/index.js +10 -0
- package/es/components/button/split_button/split_button.js +120 -0
- package/es/components/button/split_button/split_button.styles.js +51 -0
- package/es/components/button/split_button/split_button_actions.js +115 -0
- package/{optimize/es/components/flyout/flyout_context.js → es/components/button/split_button/split_button_context.js} +5 -7
- package/es/components/call_out/call_out.js +1 -1
- package/es/components/card/card.js +1 -1
- package/es/components/collapsible_nav/collapsible_nav.js +20 -101
- package/es/components/collapsible_nav/collapsible_nav_group/collapsible_nav_group.js +1 -1
- package/es/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +1 -1
- package/es/components/collapsible_nav_beta/collapsible_nav_beta.js +1 -0
- package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +1 -1
- package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +2 -2
- package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +2 -2
- package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +4 -4
- package/es/components/comment_list/comment.js +2 -2
- package/es/components/comment_list/comment_event.js +1 -1
- package/es/components/comment_list/comment_list.js +2 -2
- package/es/components/comment_list/comment_timeline.js +1 -1
- package/es/components/context_menu/context_menu_item.js +1 -1
- package/es/components/datagrid/body/cell/data_grid_cell.js +12 -12
- package/es/components/datagrid/body/data_grid_body.js +7 -7
- package/es/components/datagrid/body/data_grid_body_custom.js +7 -7
- package/es/components/datagrid/body/data_grid_body_virtualized.js +7 -7
- package/es/components/datagrid/body/header/data_grid_header_cell.js +6 -6
- package/es/components/datagrid/controls/column_sorting.js +7 -7
- package/es/components/datagrid/controls/column_sorting_draggable.js +1 -1
- package/es/components/datagrid/controls/data_grid_toolbar_control.js +1 -1
- package/es/components/datagrid/controls/fullscreen_selector.styles.js +1 -1
- package/es/components/datagrid/utils/in_memory.js +6 -6
- package/es/components/date_picker/date_picker.js +2 -2
- package/es/components/date_picker/date_picker_range.js +1 -1
- package/es/components/empty_prompt/empty_prompt.js +2 -2
- package/es/components/flex/flex_group.js +1 -1
- package/es/components/flyout/_flyout_overlay.js +52 -0
- package/es/components/flyout/_flyout_resize_button.js +32 -0
- package/es/components/flyout/{flyout_resizable.styles.js → _flyout_resize_button.styles.js} +11 -11
- package/es/components/flyout/const.js +42 -0
- package/es/components/flyout/flyout.component.js +481 -0
- package/es/components/flyout/flyout.js +77 -379
- package/es/components/flyout/flyout.styles.js +106 -7
- package/es/components/flyout/flyout_menu.js +241 -0
- package/es/components/flyout/flyout_menu.styles.js +19 -0
- package/es/components/flyout/{flyout_context.js → flyout_menu_context.js} +1 -7
- package/es/components/flyout/flyout_parent_context.js +36 -0
- package/es/components/flyout/flyout_resizable.js +33 -144
- package/es/components/flyout/hooks.js +25 -0
- package/es/components/flyout/index.js +5 -2
- package/es/components/flyout/manager/actions.js +153 -0
- package/es/components/flyout/manager/activity_stage.js +95 -0
- package/es/components/flyout/manager/const.js +56 -0
- package/es/components/flyout/manager/context.js +33 -0
- package/es/components/flyout/manager/flyout_child.js +75 -0
- package/es/components/flyout/manager/flyout_main.js +65 -0
- package/es/components/flyout/manager/flyout_main.styles.js +25 -0
- package/es/components/flyout/manager/flyout_managed.js +227 -0
- package/es/components/flyout/manager/flyout_managed.styles.js +69 -0
- package/es/components/flyout/manager/hooks.js +55 -0
- package/es/components/flyout/manager/index.js +31 -0
- package/es/components/flyout/manager/layout_mode.js +167 -0
- package/es/components/flyout/manager/provider.js +57 -0
- package/es/components/flyout/manager/reducer.js +320 -0
- package/es/components/flyout/manager/selectors.js +116 -0
- package/es/components/flyout/manager/store.js +113 -0
- package/es/components/flyout/manager/validation.js +85 -0
- package/es/components/flyout/use_flyout_resizable.js +149 -0
- package/es/components/flyout/use_flyout_z_index.js +46 -0
- package/es/components/form/field_number/field_number.js +2 -2
- package/es/components/form/field_text/field_text.js +2 -2
- package/es/components/form/form_control_button/form_control_button.js +1 -1
- package/es/components/form/form_control_layout/form_control_layout.js +2 -2
- package/es/components/form/form_control_layout/form_control_layout_custom_icon.js +1 -1
- package/es/components/form/form_control_layout/form_control_layout_icons.js +2 -2
- package/es/components/form/text_area/text_area.js +2 -2
- package/es/components/header/header_links/header_link.js +1 -1
- package/es/components/header/header_links/header_links.js +1 -1
- package/es/components/header/header_logo/header_logo.js +1 -1
- package/es/components/header/header_section/header_section_item_button.js +1 -1
- package/es/components/horizontal_rule/horizontal_rule.js +1 -1
- package/es/components/icon/assets/agentBuilderRobot.js +37 -0
- package/es/components/icon/assets/cross_project_search.js +35 -0
- package/es/components/icon/assets/dashed_circle.js +35 -0
- package/es/components/icon/assets/product_robot.js +37 -0
- package/es/components/icon/icon.js +1 -1
- package/es/components/icon/icon_map.js +3 -0
- package/es/components/key_pad_menu/key_pad_menu_item.js +1 -1
- package/es/components/link/external_link_icon.js +6 -3
- package/es/components/list_group/list_group.js +2 -2
- package/es/components/list_group/list_group_item.js +2 -2
- package/es/components/list_group/list_group_item_extra_action.js +1 -1
- package/es/components/list_group/pinnable_list_group/pinnable_list_group.js +4 -4
- package/es/components/loading/loading_logo.js +1 -1
- package/es/components/markdown_editor/markdown_editor.js +1 -1
- package/es/components/markdown_editor/markdown_editor_drop_zone.js +1 -1
- package/es/components/markdown_editor/markdown_editor_footer.js +1 -1
- package/es/components/markdown_editor/markdown_editor_toolbar.js +1 -1
- package/es/components/overlay_mask/overlay_mask.js +13 -3
- package/es/components/overlay_mask/overlay_mask.styles.js +11 -2
- package/es/components/page/page_header/page_header_content.js +2 -2
- package/es/components/pagination/pagination_button.js +1 -1
- package/es/components/provider/provider.js +2 -1
- package/es/components/search_bar/search_bar.js +1 -1
- package/es/components/selectable/selectable_list/selectable_list.js +1 -1
- package/es/components/selectable/selectable_list/selectable_list_item.js +1 -1
- package/es/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
- package/es/components/spacer/spacer.js +1 -1
- package/es/components/table/table_header_cell.js +1 -1
- package/es/components/timeline/timeline_item_icon.js +1 -1
- package/es/components/toast/global_toast_list.js +1 -1
- package/es/components/toast/toast.js +1 -1
- package/es/components/tool_tip/icon_tip.js +1 -1
- package/es/components/tour/tour_step_indicator.js +8 -3
- package/es/global_styling/mixins/_button.js +28 -9
- package/es/global_styling/mixins/_container_query.js +106 -0
- package/es/global_styling/mixins/index.js +1 -0
- package/es/services/container_query/container_query_hook.js +64 -0
- package/es/{components/flyout/sessions → services/container_query}/index.js +1 -2
- package/es/services/container_query/match_container.js +242 -0
- package/eui.d.ts +7558 -6642
- package/i18ntokens.json +1438 -1384
- package/lib/components/avatar/avatar.js +1 -1
- package/lib/components/badge/badge.js +1 -1
- package/lib/components/badge/beta_badge/beta_badge.js +1 -1
- package/lib/components/basic_table/basic_table.js +36 -55
- package/lib/components/basic_table/in_memory_table.js +6 -6
- package/lib/components/beacon/beacon.styles.js +1 -1
- package/lib/components/button/button_display/_button_display_content.js +1 -1
- package/lib/components/button/button_empty/button_empty.js +1 -1
- package/lib/components/button/button_group/button_group.js +1 -1
- package/lib/components/button/button_group/button_group_button.js +1 -1
- package/lib/components/button/button_icon/button_icon.js +1 -1
- package/lib/components/button/index.js +8 -1
- package/lib/components/button/split_button/index.js +25 -0
- package/lib/components/button/split_button/split_button.js +129 -0
- package/lib/components/button/split_button/split_button.styles.js +55 -0
- package/lib/components/button/split_button/split_button_actions.js +123 -0
- package/{optimize/lib/components/flyout/flyout_context.js → lib/components/button/split_button/split_button_context.js} +6 -7
- package/lib/components/call_out/call_out.js +1 -1
- package/lib/components/card/card.js +1 -1
- package/lib/components/collapsible_nav/collapsible_nav.js +20 -101
- package/lib/components/collapsible_nav/collapsible_nav_group/collapsible_nav_group.js +1 -1
- package/lib/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +1 -1
- package/lib/components/collapsible_nav_beta/collapsible_nav_beta.js +1 -0
- package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +1 -1
- package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +2 -2
- package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +2 -2
- package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +4 -4
- package/lib/components/comment_list/comment.js +2 -2
- package/lib/components/comment_list/comment_event.js +1 -1
- package/lib/components/comment_list/comment_list.js +2 -2
- package/lib/components/comment_list/comment_timeline.js +1 -1
- package/lib/components/context_menu/context_menu_item.js +1 -1
- package/lib/components/datagrid/body/cell/data_grid_cell.js +12 -12
- package/lib/components/datagrid/body/data_grid_body.js +7 -7
- package/lib/components/datagrid/body/data_grid_body_custom.js +7 -7
- package/lib/components/datagrid/body/data_grid_body_virtualized.js +7 -7
- package/lib/components/datagrid/body/header/data_grid_header_cell.js +6 -6
- package/lib/components/datagrid/controls/column_sorting.js +7 -7
- package/lib/components/datagrid/controls/column_sorting_draggable.js +1 -1
- package/lib/components/datagrid/controls/data_grid_toolbar_control.js +1 -1
- package/lib/components/datagrid/controls/fullscreen_selector.styles.js +1 -1
- package/lib/components/datagrid/utils/in_memory.js +6 -6
- package/lib/components/date_picker/date_picker.js +2 -2
- package/lib/components/date_picker/date_picker_range.js +1 -1
- package/lib/components/empty_prompt/empty_prompt.js +2 -2
- package/lib/components/flex/flex_group.js +1 -1
- package/lib/components/flyout/_flyout_overlay.js +59 -0
- package/lib/components/flyout/_flyout_resize_button.js +38 -0
- package/{test-env/components/flyout/flyout_resizable.styles.js → lib/components/flyout/_flyout_resize_button.styles.js} +12 -12
- package/lib/components/flyout/const.js +49 -0
- package/lib/components/flyout/flyout.component.js +488 -0
- package/lib/components/flyout/flyout.js +102 -379
- package/lib/components/flyout/flyout.styles.js +106 -7
- package/lib/components/flyout/flyout_menu.js +243 -0
- package/lib/components/flyout/flyout_menu.styles.js +25 -0
- package/lib/components/flyout/{flyout_context.js → flyout_menu_context.js} +2 -7
- package/lib/components/flyout/flyout_parent_context.js +43 -0
- package/lib/components/flyout/flyout_resizable.js +36 -147
- package/lib/components/flyout/hooks.js +30 -0
- package/lib/components/flyout/index.js +21 -14
- package/lib/components/flyout/manager/actions.js +159 -0
- package/lib/components/flyout/manager/activity_stage.js +101 -0
- package/lib/components/flyout/manager/const.js +62 -0
- package/lib/components/flyout/manager/context.js +41 -0
- package/lib/components/flyout/manager/flyout_child.js +80 -0
- package/lib/components/flyout/manager/flyout_main.js +70 -0
- package/lib/components/flyout/manager/flyout_main.styles.js +31 -0
- package/lib/components/flyout/manager/flyout_managed.js +233 -0
- package/lib/components/flyout/manager/flyout_managed.styles.js +73 -0
- package/lib/components/flyout/manager/hooks.js +131 -0
- package/lib/components/flyout/manager/index.js +168 -0
- package/lib/components/flyout/manager/layout_mode.js +171 -0
- package/lib/components/flyout/manager/provider.js +63 -0
- package/lib/components/flyout/manager/reducer.js +325 -0
- package/lib/components/flyout/manager/selectors.js +122 -0
- package/lib/components/flyout/manager/store.js +120 -0
- package/lib/components/flyout/manager/validation.js +94 -0
- package/lib/components/flyout/use_flyout_resizable.js +153 -0
- package/lib/components/flyout/use_flyout_z_index.js +51 -0
- package/lib/components/form/field_number/field_number.js +2 -2
- package/lib/components/form/field_text/field_text.js +2 -2
- package/lib/components/form/form_control_button/form_control_button.js +1 -1
- package/lib/components/form/form_control_layout/form_control_layout.js +2 -2
- package/lib/components/form/form_control_layout/form_control_layout_custom_icon.js +1 -1
- package/lib/components/form/form_control_layout/form_control_layout_icons.js +2 -2
- package/lib/components/form/text_area/text_area.js +2 -2
- package/lib/components/header/header_links/header_link.js +1 -1
- package/lib/components/header/header_links/header_links.js +1 -1
- package/lib/components/header/header_logo/header_logo.js +1 -1
- package/lib/components/header/header_section/header_section_item_button.js +1 -1
- package/lib/components/horizontal_rule/horizontal_rule.js +1 -1
- package/lib/components/icon/assets/agentBuilderRobot.js +44 -0
- package/lib/components/icon/assets/cross_project_search.js +42 -0
- package/lib/components/icon/assets/dashed_circle.js +42 -0
- package/lib/components/icon/assets/product_robot.js +44 -0
- package/lib/components/icon/icon.js +1 -1
- package/lib/components/icon/icon_map.js +3 -0
- package/lib/components/icon/svgs/cross_project_search.svg +3 -0
- package/lib/components/icon/svgs/dashed_circle.svg +5 -0
- package/lib/components/icon/svgs/product_robot.svg +4 -0
- package/lib/components/key_pad_menu/key_pad_menu_item.js +1 -1
- package/lib/components/link/external_link_icon.js +6 -3
- package/lib/components/list_group/list_group.js +2 -2
- package/lib/components/list_group/list_group_item.js +2 -2
- package/lib/components/list_group/list_group_item_extra_action.js +1 -1
- package/lib/components/list_group/pinnable_list_group/pinnable_list_group.js +4 -4
- package/lib/components/loading/loading_logo.js +1 -1
- package/lib/components/markdown_editor/markdown_editor.js +1 -1
- package/lib/components/markdown_editor/markdown_editor_drop_zone.js +1 -1
- package/lib/components/markdown_editor/markdown_editor_footer.js +1 -1
- package/lib/components/markdown_editor/markdown_editor_toolbar.js +1 -1
- package/lib/components/overlay_mask/overlay_mask.js +12 -2
- package/lib/components/overlay_mask/overlay_mask.styles.js +11 -4
- package/lib/components/page/page_header/page_header_content.js +2 -2
- package/lib/components/pagination/pagination_button.js +1 -1
- package/lib/components/provider/provider.js +2 -1
- package/lib/components/search_bar/search_bar.js +1 -1
- package/lib/components/selectable/selectable_list/selectable_list.js +1 -1
- package/lib/components/selectable/selectable_list/selectable_list_item.js +1 -1
- package/lib/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
- package/lib/components/spacer/spacer.js +1 -1
- package/lib/components/table/table_header_cell.js +1 -1
- package/lib/components/timeline/timeline_item_icon.js +1 -1
- package/lib/components/toast/global_toast_list.js +1 -1
- package/lib/components/toast/toast.js +1 -1
- package/lib/components/tool_tip/icon_tip.js +1 -1
- package/lib/components/tour/tour_step_indicator.js +8 -3
- package/lib/global_styling/mixins/_button.js +29 -10
- package/lib/global_styling/mixins/_container_query.js +112 -0
- package/lib/global_styling/mixins/index.js +11 -0
- package/lib/services/container_query/container_query_hook.js +67 -0
- package/lib/services/container_query/index.js +16 -0
- package/lib/services/container_query/match_container.js +243 -0
- package/optimize/es/components/basic_table/basic_table.js +30 -49
- package/optimize/es/components/beacon/beacon.styles.js +1 -1
- package/optimize/es/components/button/index.js +2 -1
- package/optimize/es/components/button/split_button/index.js +10 -0
- package/optimize/es/components/button/split_button/split_button.js +98 -0
- package/optimize/es/components/button/split_button/split_button.styles.js +51 -0
- package/optimize/es/components/button/split_button/split_button_actions.js +89 -0
- package/optimize/es/components/button/split_button/split_button_context.js +14 -0
- package/optimize/es/components/collapsible_nav/collapsible_nav.js +1 -0
- package/optimize/es/components/collapsible_nav_beta/collapsible_nav_beta.js +1 -0
- package/optimize/es/components/datagrid/controls/fullscreen_selector.styles.js +1 -1
- package/optimize/es/components/empty_prompt/empty_prompt.js +1 -1
- package/optimize/es/components/flex/flex_group.js +1 -1
- package/optimize/es/components/flyout/_flyout_overlay.js +52 -0
- package/optimize/es/components/flyout/_flyout_resize_button.js +31 -0
- package/optimize/es/components/flyout/{flyout_resizable.styles.js → _flyout_resize_button.styles.js} +11 -11
- package/optimize/es/components/flyout/const.js +42 -0
- package/optimize/es/components/flyout/flyout.component.js +469 -0
- package/optimize/es/components/flyout/flyout.js +53 -349
- package/optimize/es/components/flyout/flyout.styles.js +103 -7
- package/optimize/es/components/flyout/flyout_menu.js +162 -0
- package/optimize/es/components/flyout/flyout_menu.styles.js +19 -0
- package/optimize/es/components/flyout/flyout_menu_context.js +10 -0
- package/optimize/es/components/flyout/flyout_parent_context.js +36 -0
- package/optimize/es/components/flyout/flyout_resizable.js +7 -138
- package/optimize/es/components/flyout/hooks.js +25 -0
- package/optimize/es/components/flyout/index.js +5 -2
- package/optimize/es/components/flyout/manager/actions.js +153 -0
- package/optimize/es/components/flyout/manager/activity_stage.js +95 -0
- package/optimize/es/components/flyout/manager/const.js +56 -0
- package/optimize/es/components/flyout/manager/context.js +33 -0
- package/optimize/es/components/flyout/manager/flyout_child.js +71 -0
- package/optimize/es/components/flyout/manager/flyout_main.js +61 -0
- package/optimize/es/components/flyout/manager/flyout_main.styles.js +25 -0
- package/optimize/es/components/flyout/manager/flyout_managed.js +223 -0
- package/optimize/es/components/flyout/manager/flyout_managed.styles.js +69 -0
- package/optimize/es/components/flyout/manager/hooks.js +55 -0
- package/optimize/es/components/flyout/manager/index.js +31 -0
- package/optimize/es/components/flyout/manager/layout_mode.js +162 -0
- package/optimize/es/components/flyout/manager/provider.js +53 -0
- package/optimize/es/components/flyout/manager/reducer.js +312 -0
- package/optimize/es/components/flyout/manager/selectors.js +116 -0
- package/optimize/es/components/flyout/manager/store.js +113 -0
- package/optimize/es/components/flyout/manager/types.js +1 -0
- package/optimize/es/components/flyout/manager/validation.js +85 -0
- package/optimize/es/components/flyout/types.js +1 -0
- package/optimize/es/components/flyout/use_flyout_resizable.js +144 -0
- package/optimize/es/components/flyout/use_flyout_z_index.js +46 -0
- package/optimize/es/components/horizontal_rule/horizontal_rule.js +1 -1
- package/optimize/es/components/icon/assets/agentBuilderRobot.js +36 -0
- package/optimize/es/components/icon/assets/cross_project_search.js +34 -0
- package/optimize/es/components/icon/assets/dashed_circle.js +34 -0
- package/optimize/es/components/icon/assets/product_robot.js +36 -0
- package/optimize/es/components/icon/icon_map.js +3 -0
- package/optimize/es/components/link/external_link_icon.js +6 -3
- package/optimize/es/components/overlay_mask/overlay_mask.js +13 -3
- package/optimize/es/components/overlay_mask/overlay_mask.styles.js +11 -2
- package/optimize/es/components/page/page_header/page_header_content.js +1 -1
- package/optimize/es/components/provider/provider.js +2 -1
- package/optimize/es/components/search_bar/search_bar.js +1 -1
- package/optimize/es/components/spacer/spacer.js +1 -1
- package/optimize/es/components/tour/tour_step_indicator.js +8 -3
- package/optimize/es/global_styling/mixins/_button.js +28 -9
- package/optimize/es/global_styling/mixins/_container_query.js +106 -0
- package/optimize/es/global_styling/mixins/index.js +1 -0
- package/optimize/es/services/container_query/container_query_hook.js +59 -0
- package/optimize/es/{components/flyout/sessions → services/container_query}/index.js +1 -2
- package/optimize/es/services/container_query/match_container.js +229 -0
- package/optimize/lib/components/basic_table/basic_table.js +30 -49
- package/optimize/lib/components/beacon/beacon.styles.js +1 -1
- package/optimize/lib/components/button/index.js +8 -1
- package/optimize/lib/components/button/split_button/index.js +25 -0
- package/optimize/lib/components/button/split_button/split_button.js +107 -0
- package/optimize/lib/components/button/split_button/split_button.styles.js +55 -0
- package/optimize/lib/components/button/split_button/split_button_actions.js +98 -0
- package/{test-env/components/flyout/flyout_context.js → optimize/lib/components/button/split_button/split_button_context.js} +6 -7
- package/optimize/lib/components/collapsible_nav/collapsible_nav.js +1 -0
- package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_beta.js +1 -0
- package/optimize/lib/components/datagrid/controls/fullscreen_selector.styles.js +1 -1
- package/optimize/lib/components/empty_prompt/empty_prompt.js +1 -1
- package/optimize/lib/components/flex/flex_group.js +1 -1
- package/optimize/lib/components/flyout/_flyout_overlay.js +62 -0
- package/optimize/lib/components/flyout/_flyout_resize_button.js +37 -0
- package/{lib/components/flyout/flyout_resizable.styles.js → optimize/lib/components/flyout/_flyout_resize_button.styles.js} +12 -12
- package/optimize/lib/components/flyout/const.js +49 -0
- package/optimize/lib/components/flyout/flyout.component.js +477 -0
- package/optimize/lib/components/flyout/flyout.js +77 -349
- package/optimize/lib/components/flyout/flyout.styles.js +103 -7
- package/optimize/lib/components/flyout/flyout_menu.js +168 -0
- package/optimize/lib/components/flyout/flyout_menu.styles.js +25 -0
- package/optimize/lib/components/flyout/flyout_menu_context.js +16 -0
- package/optimize/lib/components/flyout/flyout_parent_context.js +43 -0
- package/optimize/lib/components/flyout/flyout_resizable.js +9 -139
- package/optimize/lib/components/flyout/hooks.js +30 -0
- package/optimize/lib/components/flyout/index.js +21 -14
- package/optimize/lib/components/flyout/manager/actions.js +159 -0
- package/optimize/lib/components/flyout/manager/activity_stage.js +101 -0
- package/optimize/lib/components/flyout/manager/const.js +62 -0
- package/optimize/lib/components/flyout/manager/context.js +41 -0
- package/optimize/lib/components/flyout/manager/flyout_child.js +76 -0
- package/optimize/lib/components/flyout/manager/flyout_main.js +66 -0
- package/optimize/lib/components/flyout/manager/flyout_main.styles.js +31 -0
- package/optimize/lib/components/flyout/manager/flyout_managed.js +231 -0
- package/optimize/lib/components/flyout/manager/flyout_managed.styles.js +74 -0
- package/optimize/lib/components/flyout/manager/hooks.js +131 -0
- package/optimize/lib/components/flyout/manager/index.js +168 -0
- package/optimize/lib/components/flyout/manager/layout_mode.js +169 -0
- package/optimize/lib/components/flyout/manager/provider.js +61 -0
- package/optimize/lib/components/flyout/manager/reducer.js +318 -0
- package/optimize/lib/components/flyout/manager/selectors.js +122 -0
- package/optimize/lib/components/flyout/manager/store.js +120 -0
- package/optimize/lib/components/flyout/manager/validation.js +94 -0
- package/optimize/lib/components/flyout/types.js +5 -0
- package/optimize/lib/components/flyout/use_flyout_resizable.js +151 -0
- package/optimize/lib/components/flyout/use_flyout_z_index.js +51 -0
- package/optimize/lib/components/horizontal_rule/horizontal_rule.js +1 -1
- package/optimize/lib/components/icon/assets/agentBuilderRobot.js +44 -0
- package/optimize/lib/components/icon/assets/cross_project_search.js +42 -0
- package/optimize/lib/components/icon/assets/dashed_circle.js +42 -0
- package/optimize/lib/components/icon/assets/product_robot.js +44 -0
- package/optimize/lib/components/icon/icon_map.js +3 -0
- package/optimize/lib/components/icon/svgs/cross_project_search.svg +3 -0
- package/optimize/lib/components/icon/svgs/dashed_circle.svg +5 -0
- package/optimize/lib/components/icon/svgs/product_robot.svg +4 -0
- package/optimize/lib/components/link/external_link_icon.js +6 -3
- package/optimize/lib/components/overlay_mask/overlay_mask.js +12 -2
- package/optimize/lib/components/overlay_mask/overlay_mask.styles.js +11 -4
- package/optimize/lib/components/page/page_header/page_header_content.js +1 -1
- package/optimize/lib/components/provider/provider.js +2 -1
- package/optimize/lib/components/search_bar/search_bar.js +1 -1
- package/optimize/lib/components/spacer/spacer.js +1 -1
- package/optimize/lib/components/tour/tour_step_indicator.js +8 -3
- package/optimize/lib/global_styling/mixins/_button.js +29 -10
- package/optimize/lib/global_styling/mixins/_container_query.js +112 -0
- package/optimize/lib/global_styling/mixins/index.js +11 -0
- package/optimize/lib/services/container_query/container_query_hook.js +65 -0
- package/optimize/lib/services/container_query/index.js +16 -0
- package/optimize/lib/services/container_query/match_container.js +231 -0
- package/package.json +5 -4
- package/test-env/components/avatar/avatar.js +1 -1
- package/test-env/components/badge/badge.js +1 -1
- package/test-env/components/badge/beta_badge/beta_badge.js +1 -1
- package/test-env/components/basic_table/basic_table.js +36 -55
- package/test-env/components/basic_table/in_memory_table.js +6 -6
- package/test-env/components/beacon/beacon.styles.js +1 -1
- package/test-env/components/button/button_display/_button_display_content.js +1 -1
- package/test-env/components/button/button_empty/button_empty.js +1 -1
- package/test-env/components/button/button_group/button_group.js +1 -1
- package/test-env/components/button/button_group/button_group_button.js +1 -1
- package/test-env/components/button/button_icon/button_icon.js +1 -1
- package/test-env/components/button/index.js +8 -1
- package/test-env/components/button/split_button/index.js +25 -0
- package/test-env/components/button/split_button/split_button.js +123 -0
- package/test-env/components/button/split_button/split_button.styles.js +55 -0
- package/test-env/components/button/split_button/split_button_actions.js +120 -0
- package/test-env/components/button/split_button/split_button_context.js +20 -0
- package/test-env/components/call_out/call_out.js +1 -1
- package/test-env/components/card/card.js +1 -1
- package/test-env/components/collapsible_nav/collapsible_nav.js +20 -101
- package/test-env/components/collapsible_nav/collapsible_nav_group/collapsible_nav_group.js +1 -1
- package/test-env/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +1 -1
- package/test-env/components/collapsible_nav_beta/collapsible_nav_beta.js +1 -0
- package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +1 -1
- package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +2 -2
- package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +2 -2
- package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +4 -4
- package/test-env/components/comment_list/comment.js +2 -2
- package/test-env/components/comment_list/comment_event.js +1 -1
- package/test-env/components/comment_list/comment_list.js +2 -2
- package/test-env/components/comment_list/comment_timeline.js +1 -1
- package/test-env/components/context_menu/context_menu_item.js +1 -1
- package/test-env/components/datagrid/body/cell/data_grid_cell.js +12 -12
- package/test-env/components/datagrid/body/data_grid_body.js +7 -7
- package/test-env/components/datagrid/body/data_grid_body_custom.js +7 -7
- package/test-env/components/datagrid/body/data_grid_body_virtualized.js +7 -7
- package/test-env/components/datagrid/body/header/data_grid_header_cell.js +6 -6
- package/test-env/components/datagrid/controls/column_sorting.js +7 -7
- package/test-env/components/datagrid/controls/column_sorting_draggable.js +1 -1
- package/test-env/components/datagrid/controls/data_grid_toolbar_control.js +1 -1
- package/test-env/components/datagrid/controls/fullscreen_selector.styles.js +1 -1
- package/test-env/components/datagrid/utils/in_memory.js +6 -6
- package/test-env/components/date_picker/date_picker.js +2 -2
- package/test-env/components/date_picker/date_picker_range.js +1 -1
- package/test-env/components/empty_prompt/empty_prompt.js +2 -2
- package/test-env/components/flex/flex_group.js +1 -1
- package/test-env/components/flyout/_flyout_overlay.js +62 -0
- package/test-env/components/flyout/_flyout_resize_button.js +37 -0
- package/{optimize/lib/components/flyout/flyout_resizable.styles.js → test-env/components/flyout/_flyout_resize_button.styles.js} +12 -12
- package/test-env/components/flyout/const.js +49 -0
- package/test-env/components/flyout/flyout.component.js +477 -0
- package/test-env/components/flyout/flyout.styles.js +103 -7
- package/test-env/components/flyout/flyout_menu.js +241 -0
- package/test-env/components/flyout/flyout_menu.styles.js +25 -0
- package/test-env/components/flyout/flyout_menu_context.js +16 -0
- package/test-env/components/flyout/flyout_parent_context.js +43 -0
- package/test-env/components/flyout/flyout_resizable.js +35 -139
- package/test-env/components/flyout/hooks.js +30 -0
- package/test-env/components/flyout/index.js +21 -14
- package/test-env/components/flyout/manager/actions.js +159 -0
- package/test-env/components/flyout/manager/activity_stage.js +101 -0
- package/test-env/components/flyout/manager/const.js +62 -0
- package/test-env/components/flyout/manager/context.js +41 -0
- package/test-env/components/flyout/manager/flyout_child.js +76 -0
- package/test-env/components/flyout/manager/flyout_main.js +66 -0
- package/test-env/components/flyout/manager/flyout_main.styles.js +31 -0
- package/test-env/components/flyout/manager/flyout_managed.js +231 -0
- package/test-env/components/flyout/manager/flyout_managed.styles.js +74 -0
- package/test-env/components/flyout/manager/hooks.js +131 -0
- package/test-env/components/flyout/manager/index.js +168 -0
- package/test-env/components/flyout/manager/layout_mode.js +169 -0
- package/test-env/components/flyout/manager/provider.js +61 -0
- package/test-env/components/flyout/manager/reducer.js +318 -0
- package/test-env/components/flyout/manager/selectors.js +122 -0
- package/test-env/components/flyout/manager/store.js +120 -0
- package/test-env/components/flyout/manager/types.js +5 -0
- package/test-env/components/flyout/manager/validation.js +94 -0
- package/test-env/components/flyout/types.js +5 -0
- package/test-env/components/flyout/use_flyout_resizable.js +151 -0
- package/test-env/components/flyout/use_flyout_z_index.js +51 -0
- package/test-env/components/form/field_number/field_number.js +2 -2
- package/test-env/components/form/field_text/field_text.js +2 -2
- package/test-env/components/form/form_control_button/form_control_button.js +1 -1
- package/test-env/components/form/form_control_layout/form_control_layout.js +2 -2
- package/test-env/components/form/form_control_layout/form_control_layout_custom_icon.js +1 -1
- package/test-env/components/form/form_control_layout/form_control_layout_icons.js +2 -2
- package/test-env/components/form/text_area/text_area.js +2 -2
- package/test-env/components/header/header_links/header_link.js +1 -1
- package/test-env/components/header/header_links/header_links.js +1 -1
- package/test-env/components/header/header_logo/header_logo.js +1 -1
- package/test-env/components/header/header_section/header_section_item_button.js +1 -1
- package/test-env/components/horizontal_rule/horizontal_rule.js +1 -1
- package/test-env/components/icon/assets/agentBuilderRobot.js +44 -0
- package/test-env/components/icon/assets/cross_project_search.js +42 -0
- package/test-env/components/icon/assets/dashed_circle.js +42 -0
- package/test-env/components/icon/assets/product_robot.js +44 -0
- package/test-env/components/icon/icon_map.js +3 -0
- package/test-env/components/key_pad_menu/key_pad_menu_item.js +1 -1
- package/test-env/components/link/external_link_icon.js +6 -3
- package/test-env/components/list_group/list_group.js +2 -2
- package/test-env/components/list_group/list_group_item.js +2 -2
- package/test-env/components/list_group/list_group_item_extra_action.js +1 -1
- package/test-env/components/list_group/pinnable_list_group/pinnable_list_group.js +4 -4
- package/test-env/components/loading/loading_logo.js +1 -1
- package/test-env/components/markdown_editor/markdown_editor.js +1 -1
- package/test-env/components/markdown_editor/markdown_editor_drop_zone.js +1 -1
- package/test-env/components/markdown_editor/markdown_editor_footer.js +1 -1
- package/test-env/components/markdown_editor/markdown_editor_toolbar.js +1 -1
- package/test-env/components/overlay_mask/overlay_mask.js +12 -2
- package/test-env/components/overlay_mask/overlay_mask.styles.js +11 -4
- package/test-env/components/page/page_header/page_header_content.js +2 -2
- package/test-env/components/pagination/pagination_button.js +1 -1
- package/test-env/components/provider/provider.js +2 -1
- package/test-env/components/search_bar/search_bar.js +1 -1
- package/test-env/components/selectable/selectable_list/selectable_list.js +1 -1
- package/test-env/components/selectable/selectable_list/selectable_list_item.js +1 -1
- package/test-env/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
- package/test-env/components/spacer/spacer.js +1 -1
- package/test-env/components/table/table_header_cell.js +1 -1
- package/test-env/components/timeline/timeline_item_icon.js +1 -1
- package/test-env/components/toast/global_toast_list.js +1 -1
- package/test-env/components/toast/toast.js +1 -1
- package/test-env/components/tool_tip/icon_tip.js +1 -1
- package/test-env/components/tour/tour_step_indicator.js +8 -3
- package/test-env/global_styling/mixins/_button.js +29 -10
- package/test-env/global_styling/mixins/_container_query.js +112 -0
- package/test-env/global_styling/mixins/index.js +11 -0
- package/test-env/services/container_query/container_query_hook.js +65 -0
- package/test-env/services/container_query/index.js +16 -0
- package/test-env/services/container_query/match_container.js +231 -0
- package/es/components/flyout/flyout_child.js +0 -223
- package/es/components/flyout/flyout_child.styles.js +0 -32
- package/es/components/flyout/flyout_child_manager.js +0 -114
- package/es/components/flyout/sessions/flyout_provider.js +0 -95
- package/es/components/flyout/sessions/flyout_reducer.js +0 -195
- package/es/components/flyout/sessions/use_eui_flyout.js +0 -82
- package/lib/components/flyout/flyout_child.js +0 -231
- package/lib/components/flyout/flyout_child.styles.js +0 -38
- package/lib/components/flyout/flyout_child_manager.js +0 -122
- package/lib/components/flyout/sessions/flyout_provider.js +0 -102
- package/lib/components/flyout/sessions/flyout_reducer.js +0 -202
- package/lib/components/flyout/sessions/index.js +0 -25
- package/lib/components/flyout/sessions/use_eui_flyout.js +0 -88
- package/optimize/es/components/flyout/flyout_child.js +0 -178
- package/optimize/es/components/flyout/flyout_child.styles.js +0 -32
- package/optimize/es/components/flyout/flyout_child_manager.js +0 -100
- package/optimize/es/components/flyout/sessions/flyout_provider.js +0 -90
- package/optimize/es/components/flyout/sessions/flyout_reducer.js +0 -187
- package/optimize/es/components/flyout/sessions/use_eui_flyout.js +0 -82
- package/optimize/lib/components/flyout/flyout_child.js +0 -186
- package/optimize/lib/components/flyout/flyout_child.styles.js +0 -38
- package/optimize/lib/components/flyout/flyout_child_manager.js +0 -110
- package/optimize/lib/components/flyout/sessions/flyout_provider.js +0 -100
- package/optimize/lib/components/flyout/sessions/flyout_reducer.js +0 -195
- package/optimize/lib/components/flyout/sessions/index.js +0 -25
- package/optimize/lib/components/flyout/sessions/use_eui_flyout.js +0 -88
- package/test-env/components/flyout/flyout_child.js +0 -230
- package/test-env/components/flyout/flyout_child.styles.js +0 -38
- package/test-env/components/flyout/flyout_child_manager.js +0 -119
- package/test-env/components/flyout/sessions/flyout_provider.js +0 -100
- package/test-env/components/flyout/sessions/flyout_reducer.js +0 -195
- package/test-env/components/flyout/sessions/index.js +0 -25
- package/test-env/components/flyout/sessions/use_eui_flyout.js +0 -88
- /package/es/components/flyout/{sessions → manager}/types.js +0 -0
- /package/{optimize/es/components/flyout/sessions → es/components/flyout}/types.js +0 -0
- /package/lib/components/flyout/{sessions → manager}/types.js +0 -0
- /package/{optimize/lib/components/flyout/sessions → lib/components/flyout}/types.js +0 -0
- /package/{test-env/components/flyout/sessions → optimize/lib/components/flyout/manager}/types.js +0 -0
|
@@ -0,0 +1,320 @@
|
|
|
1
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
+
function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
|
|
3
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
4
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
5
|
+
function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
|
|
6
|
+
function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
|
|
7
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
8
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
9
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
10
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
11
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
12
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
13
|
+
/*
|
|
14
|
+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
15
|
+
* or more contributor license agreements. Licensed under the Elastic License
|
|
16
|
+
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
|
17
|
+
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
18
|
+
* Side Public License, v 1.
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
import { ACTION_ADD, ACTION_CLOSE, ACTION_SET_ACTIVE, ACTION_SET_LAYOUT_MODE, ACTION_SET_WIDTH, ACTION_SET_ACTIVITY_STAGE, ACTION_GO_BACK, ACTION_GO_TO_FLYOUT, ACTION_SET_PUSH_PADDING, ACTION_ADD_UNMANAGED_FLYOUT, ACTION_CLOSE_UNMANAGED_FLYOUT } from './actions';
|
|
22
|
+
import { LAYOUT_MODE_SIDE_BY_SIDE, LEVEL_MAIN, STAGE_OPENING } from './const';
|
|
23
|
+
/**
|
|
24
|
+
* Default flyout manager state used to initialize the reducer.
|
|
25
|
+
*/
|
|
26
|
+
export var initialState = {
|
|
27
|
+
sessions: [],
|
|
28
|
+
flyouts: [],
|
|
29
|
+
layoutMode: LAYOUT_MODE_SIDE_BY_SIDE,
|
|
30
|
+
pushPadding: {
|
|
31
|
+
left: 0,
|
|
32
|
+
right: 0
|
|
33
|
+
},
|
|
34
|
+
currentZIndex: 0,
|
|
35
|
+
unmanagedFlyouts: []
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Reducer handling all flyout manager actions and state transitions.
|
|
40
|
+
*/
|
|
41
|
+
export function flyoutManagerReducer() {
|
|
42
|
+
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;
|
|
43
|
+
var action = arguments.length > 1 ? arguments[1] : undefined;
|
|
44
|
+
switch (action.type) {
|
|
45
|
+
case ACTION_ADD_UNMANAGED_FLYOUT:
|
|
46
|
+
{
|
|
47
|
+
if (state.unmanagedFlyouts.includes(action.flyoutId)) {
|
|
48
|
+
return state;
|
|
49
|
+
}
|
|
50
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
51
|
+
// Increment by 2 for each new unmanaged flyout.
|
|
52
|
+
// Unmanaged flyouts render on z-index of `n`, and their overlay mask
|
|
53
|
+
// on `n - 1`.
|
|
54
|
+
currentZIndex: state.currentZIndex + 2,
|
|
55
|
+
unmanagedFlyouts: [].concat(_toConsumableArray(state.unmanagedFlyouts), [action.flyoutId])
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
case ACTION_CLOSE_UNMANAGED_FLYOUT:
|
|
59
|
+
{
|
|
60
|
+
var newUnmanagedFlyouts = state.unmanagedFlyouts.filter(function (flyoutId) {
|
|
61
|
+
return flyoutId !== action.flyoutId;
|
|
62
|
+
});
|
|
63
|
+
var newCurrentZIndex = state.currentZIndex;
|
|
64
|
+
if (state.sessions.length === 0 && newUnmanagedFlyouts.length === 0) {
|
|
65
|
+
newCurrentZIndex = 0;
|
|
66
|
+
}
|
|
67
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
68
|
+
unmanagedFlyouts: newUnmanagedFlyouts,
|
|
69
|
+
currentZIndex: newCurrentZIndex
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
// Register a flyout.
|
|
74
|
+
// - Ignore duplicates by `flyoutId`.
|
|
75
|
+
// - For a `main` flyout, start a new session { main, child: null }.
|
|
76
|
+
// - For a `child` flyout, attach it to the most recent session; if no
|
|
77
|
+
// session exists, do nothing (invalid child without a parent).
|
|
78
|
+
case ACTION_ADD:
|
|
79
|
+
{
|
|
80
|
+
var flyoutId = action.flyoutId,
|
|
81
|
+
title = action.title,
|
|
82
|
+
level = action.level,
|
|
83
|
+
size = action.size;
|
|
84
|
+
|
|
85
|
+
// Ignore duplicate registrations
|
|
86
|
+
if (state.flyouts.some(function (f) {
|
|
87
|
+
return f.flyoutId === flyoutId;
|
|
88
|
+
})) {
|
|
89
|
+
return state;
|
|
90
|
+
}
|
|
91
|
+
var newFlyoutState = {
|
|
92
|
+
level: level,
|
|
93
|
+
flyoutId: flyoutId,
|
|
94
|
+
size: size,
|
|
95
|
+
activityStage: STAGE_OPENING
|
|
96
|
+
};
|
|
97
|
+
var newFlyouts = [].concat(_toConsumableArray(state.flyouts), [newFlyoutState]);
|
|
98
|
+
if (level === LEVEL_MAIN) {
|
|
99
|
+
var newSession = {
|
|
100
|
+
mainFlyoutId: flyoutId,
|
|
101
|
+
title: title,
|
|
102
|
+
childFlyoutId: null,
|
|
103
|
+
zIndex: state.currentZIndex
|
|
104
|
+
};
|
|
105
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
106
|
+
sessions: [].concat(_toConsumableArray(state.sessions), [newSession]),
|
|
107
|
+
flyouts: newFlyouts,
|
|
108
|
+
// Increment by 3 for each new flyout session.
|
|
109
|
+
// Managed flyouts render main flyouts on z-index of `n`,
|
|
110
|
+
// child flyouts on `n - 1` and the overlay mask on `n - 2`.
|
|
111
|
+
currentZIndex: state.currentZIndex + 3
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
if (state.sessions.length === 0) {
|
|
115
|
+
return state;
|
|
116
|
+
}
|
|
117
|
+
var updatedSessions = _toConsumableArray(state.sessions);
|
|
118
|
+
var currentSessionIndex = updatedSessions.length - 1;
|
|
119
|
+
updatedSessions[currentSessionIndex] = _objectSpread(_objectSpread({}, updatedSessions[currentSessionIndex]), {}, {
|
|
120
|
+
childFlyoutId: flyoutId
|
|
121
|
+
});
|
|
122
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
123
|
+
sessions: updatedSessions,
|
|
124
|
+
flyouts: newFlyouts
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
// Unregister a flyout and update sessions accordingly.
|
|
129
|
+
// - When closing a `main` flyout, drop its entire session and all associated flyouts.
|
|
130
|
+
// - When closing a `child` flyout, clear the child pointer on the most
|
|
131
|
+
// recent session if it matches.
|
|
132
|
+
case ACTION_CLOSE:
|
|
133
|
+
{
|
|
134
|
+
var removedFlyout = state.flyouts.find(function (f) {
|
|
135
|
+
return f.flyoutId === action.flyoutId;
|
|
136
|
+
});
|
|
137
|
+
if (!removedFlyout) {
|
|
138
|
+
return state;
|
|
139
|
+
}
|
|
140
|
+
if (removedFlyout.level === LEVEL_MAIN) {
|
|
141
|
+
// Find the session that contains this main flyout
|
|
142
|
+
var sessionToRemove = state.sessions.find(function (session) {
|
|
143
|
+
return session.mainFlyoutId === action.flyoutId;
|
|
144
|
+
});
|
|
145
|
+
if (sessionToRemove) {
|
|
146
|
+
// Remove all flyouts associated with this session (main + child)
|
|
147
|
+
var flyoutsToRemove = new Set([action.flyoutId]);
|
|
148
|
+
if (sessionToRemove.childFlyoutId) {
|
|
149
|
+
flyoutsToRemove.add(sessionToRemove.childFlyoutId);
|
|
150
|
+
}
|
|
151
|
+
var _newFlyouts = state.flyouts.filter(function (f) {
|
|
152
|
+
return !flyoutsToRemove.has(f.flyoutId);
|
|
153
|
+
});
|
|
154
|
+
var newSessions = state.sessions.filter(function (session) {
|
|
155
|
+
return session.mainFlyoutId !== action.flyoutId;
|
|
156
|
+
});
|
|
157
|
+
var _newCurrentZIndex = state.currentZIndex;
|
|
158
|
+
if (newSessions.length === 0 && state.unmanagedFlyouts.length === 0) {
|
|
159
|
+
// Reset to initial value if no flyouts remain open to avoid
|
|
160
|
+
// the value going too high during the lifecycle of the app
|
|
161
|
+
_newCurrentZIndex = 0;
|
|
162
|
+
}
|
|
163
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
164
|
+
sessions: newSessions,
|
|
165
|
+
flyouts: _newFlyouts,
|
|
166
|
+
currentZIndex: _newCurrentZIndex
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
// Handle child flyout closing (existing logic)
|
|
172
|
+
var _newFlyouts2 = state.flyouts.filter(function (f) {
|
|
173
|
+
return f.flyoutId !== action.flyoutId;
|
|
174
|
+
});
|
|
175
|
+
if (state.sessions.length === 0) {
|
|
176
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
177
|
+
flyouts: _newFlyouts2
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
var _updatedSessions = _toConsumableArray(state.sessions);
|
|
181
|
+
var _currentSessionIndex = _updatedSessions.length - 1;
|
|
182
|
+
if (_updatedSessions[_currentSessionIndex].childFlyoutId === action.flyoutId) {
|
|
183
|
+
_updatedSessions[_currentSessionIndex] = _objectSpread(_objectSpread({}, _updatedSessions[_currentSessionIndex]), {}, {
|
|
184
|
+
childFlyoutId: null
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
188
|
+
sessions: _updatedSessions,
|
|
189
|
+
flyouts: _newFlyouts2
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
// Mark the provided flyout ID as the active child for the latest session.
|
|
194
|
+
case ACTION_SET_ACTIVE:
|
|
195
|
+
{
|
|
196
|
+
// No-op when no session exists.
|
|
197
|
+
if (state.sessions.length === 0) {
|
|
198
|
+
return state;
|
|
199
|
+
}
|
|
200
|
+
var _updatedSessions2 = _toConsumableArray(state.sessions);
|
|
201
|
+
var _currentSessionIndex2 = _updatedSessions2.length - 1;
|
|
202
|
+
_updatedSessions2[_currentSessionIndex2] = _objectSpread(_objectSpread({}, _updatedSessions2[_currentSessionIndex2]), {}, {
|
|
203
|
+
childFlyoutId: action.flyoutId
|
|
204
|
+
});
|
|
205
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
206
|
+
sessions: _updatedSessions2
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
// Persist a flyout's measured width (px). Used for responsive layout
|
|
211
|
+
// calculations, e.g., deciding stacked vs side-by-side.
|
|
212
|
+
case ACTION_SET_WIDTH:
|
|
213
|
+
{
|
|
214
|
+
var _flyoutId = action.flyoutId,
|
|
215
|
+
width = action.width;
|
|
216
|
+
var updatedFlyouts = state.flyouts.map(function (flyout) {
|
|
217
|
+
return flyout.flyoutId === _flyoutId ? _objectSpread(_objectSpread({}, flyout), {}, {
|
|
218
|
+
width: width
|
|
219
|
+
}) : flyout;
|
|
220
|
+
});
|
|
221
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
222
|
+
flyouts: updatedFlyouts
|
|
223
|
+
});
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
// Switch global layout mode for managed flyouts.
|
|
227
|
+
case ACTION_SET_LAYOUT_MODE:
|
|
228
|
+
{
|
|
229
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
230
|
+
layoutMode: action.layoutMode
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
// Update a flyout's activity stage in state
|
|
235
|
+
case ACTION_SET_ACTIVITY_STAGE:
|
|
236
|
+
{
|
|
237
|
+
var _flyoutId2 = action.flyoutId;
|
|
238
|
+
var _updatedFlyouts = state.flyouts.map(function (flyout) {
|
|
239
|
+
return flyout.flyoutId === _flyoutId2 ? _objectSpread(_objectSpread({}, flyout), {}, {
|
|
240
|
+
activityStage: action.activityStage
|
|
241
|
+
}) : flyout;
|
|
242
|
+
});
|
|
243
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
244
|
+
flyouts: _updatedFlyouts
|
|
245
|
+
});
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
// Go back one session (remove current session from stack)
|
|
249
|
+
case ACTION_GO_BACK:
|
|
250
|
+
{
|
|
251
|
+
if (state.sessions.length === 0) {
|
|
252
|
+
return state;
|
|
253
|
+
}
|
|
254
|
+
var _currentSessionIndex3 = state.sessions.length - 1;
|
|
255
|
+
var currentSession = state.sessions[_currentSessionIndex3];
|
|
256
|
+
|
|
257
|
+
// Close all flyouts in the current session
|
|
258
|
+
var _flyoutsToRemove = new Set([currentSession.mainFlyoutId]);
|
|
259
|
+
if (currentSession.childFlyoutId) {
|
|
260
|
+
_flyoutsToRemove.add(currentSession.childFlyoutId);
|
|
261
|
+
}
|
|
262
|
+
var _newFlyouts3 = state.flyouts.filter(function (f) {
|
|
263
|
+
return !_flyoutsToRemove.has(f.flyoutId);
|
|
264
|
+
});
|
|
265
|
+
var _newSessions = state.sessions.slice(0, _currentSessionIndex3);
|
|
266
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
267
|
+
sessions: _newSessions,
|
|
268
|
+
flyouts: _newFlyouts3
|
|
269
|
+
});
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
// Navigate to a specific flyout (remove all sessions after it)
|
|
273
|
+
case ACTION_GO_TO_FLYOUT:
|
|
274
|
+
{
|
|
275
|
+
var _flyoutId3 = action.flyoutId;
|
|
276
|
+
|
|
277
|
+
// Find the session containing the target flyout
|
|
278
|
+
var targetSessionIndex = state.sessions.findIndex(function (session) {
|
|
279
|
+
return session.mainFlyoutId === _flyoutId3;
|
|
280
|
+
});
|
|
281
|
+
if (targetSessionIndex === -1) {
|
|
282
|
+
return state; // Target flyout not found
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
// Close all sessions after the target session
|
|
286
|
+
var sessionsToClose = state.sessions.slice(targetSessionIndex + 1);
|
|
287
|
+
var _flyoutsToRemove2 = new Set();
|
|
288
|
+
sessionsToClose.forEach(function (session) {
|
|
289
|
+
_flyoutsToRemove2.add(session.mainFlyoutId);
|
|
290
|
+
if (session.childFlyoutId) {
|
|
291
|
+
_flyoutsToRemove2.add(session.childFlyoutId);
|
|
292
|
+
}
|
|
293
|
+
});
|
|
294
|
+
var _newFlyouts4 = state.flyouts.filter(function (f) {
|
|
295
|
+
return !_flyoutsToRemove2.has(f.flyoutId);
|
|
296
|
+
});
|
|
297
|
+
var _newSessions2 = state.sessions.slice(0, targetSessionIndex + 1);
|
|
298
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
299
|
+
sessions: _newSessions2,
|
|
300
|
+
flyouts: _newFlyouts4
|
|
301
|
+
});
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
// Set push padding offset for a specific side
|
|
305
|
+
case ACTION_SET_PUSH_PADDING:
|
|
306
|
+
{
|
|
307
|
+
var _state$pushPadding;
|
|
308
|
+
var side = action.side,
|
|
309
|
+
_width = action.width;
|
|
310
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
311
|
+
pushPadding: _objectSpread(_objectSpread({}, (_state$pushPadding = state.pushPadding) !== null && _state$pushPadding !== void 0 ? _state$pushPadding : {
|
|
312
|
+
left: 0,
|
|
313
|
+
right: 0
|
|
314
|
+
}), {}, _defineProperty({}, side, _width))
|
|
315
|
+
});
|
|
316
|
+
}
|
|
317
|
+
default:
|
|
318
|
+
return state;
|
|
319
|
+
}
|
|
320
|
+
}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
3
|
+
* or more contributor license agreements. Licensed under the Elastic License
|
|
4
|
+
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
|
5
|
+
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
6
|
+
* Side Public License, v 1.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import { useFlyoutManager } from './provider';
|
|
10
|
+
import { useRef } from 'react';
|
|
11
|
+
export var useSession = function useSession(flyoutId) {
|
|
12
|
+
var context = useFlyoutManager();
|
|
13
|
+
if (!context) {
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
return context.state.sessions.find(function (s) {
|
|
17
|
+
return s.mainFlyoutId === flyoutId || s.childFlyoutId === flyoutId;
|
|
18
|
+
}) || null;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
/** True when any managed flyout session is currently active. */
|
|
22
|
+
export var useHasActiveSession = function useHasActiveSession() {
|
|
23
|
+
return !!useCurrentSession();
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
/** True if the given `flyoutId` is the main or child flyout in the latest session. */
|
|
27
|
+
export var useIsFlyoutActive = function useIsFlyoutActive(flyoutId) {
|
|
28
|
+
var currentSession = useCurrentSession();
|
|
29
|
+
return (currentSession === null || currentSession === void 0 ? void 0 : currentSession.mainFlyoutId) === flyoutId || (currentSession === null || currentSession === void 0 ? void 0 : currentSession.childFlyoutId) === flyoutId;
|
|
30
|
+
};
|
|
31
|
+
export var useFlyout = function useFlyout(flyoutId) {
|
|
32
|
+
var context = useFlyoutManager();
|
|
33
|
+
if (!context || !flyoutId) {
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
return context.state.flyouts.find(function (f) {
|
|
37
|
+
return f.flyoutId === flyoutId;
|
|
38
|
+
}) || null;
|
|
39
|
+
};
|
|
40
|
+
export var useIsFlyoutRegistered = function useIsFlyoutRegistered(flyoutId) {
|
|
41
|
+
var context = useFlyoutManager();
|
|
42
|
+
if (!context || !flyoutId) {
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
return context.state.flyouts.some(function (f) {
|
|
46
|
+
return f.flyoutId === flyoutId;
|
|
47
|
+
});
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
/** The most recent flyout session or `null` if none. */
|
|
51
|
+
export var useCurrentSession = function useCurrentSession() {
|
|
52
|
+
var context = useFlyoutManager();
|
|
53
|
+
if (!context) return null;
|
|
54
|
+
return context.state.sessions[context.state.sessions.length - 1] || null;
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
/** The registered state of the current session's main flyout, if present. */
|
|
58
|
+
export var useCurrentMainFlyout = function useCurrentMainFlyout() {
|
|
59
|
+
var currentSession = useCurrentSession();
|
|
60
|
+
var mainFlyoutId = currentSession === null || currentSession === void 0 ? void 0 : currentSession.mainFlyoutId;
|
|
61
|
+
return useFlyout(mainFlyoutId);
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
/** The registered state of the current session's child flyout, if present. */
|
|
65
|
+
export var useCurrentChildFlyout = function useCurrentChildFlyout() {
|
|
66
|
+
var currentSession = useCurrentSession();
|
|
67
|
+
var childFlyoutId = currentSession === null || currentSession === void 0 ? void 0 : currentSession.childFlyoutId;
|
|
68
|
+
return useFlyout(childFlyoutId);
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
/** The measured width (px) of the specified flyout, or `null` if unknown. */
|
|
72
|
+
export var useFlyoutWidth = function useFlyoutWidth(flyoutId) {
|
|
73
|
+
var _useFlyout;
|
|
74
|
+
return (_useFlyout = useFlyout(flyoutId)) === null || _useFlyout === void 0 ? void 0 : _useFlyout.width;
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
/** The configured size of the parent (main) flyout for a given child flyout ID. */
|
|
78
|
+
export var useParentFlyoutSize = function useParentFlyoutSize(childFlyoutId) {
|
|
79
|
+
var session = useSession(childFlyoutId);
|
|
80
|
+
var parentFlyout = useFlyout(session === null || session === void 0 ? void 0 : session.mainFlyoutId);
|
|
81
|
+
return parentFlyout === null || parentFlyout === void 0 ? void 0 : parentFlyout.size;
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
/** True if the provided `flyoutId` is the main flyout and it currently has a child. */
|
|
85
|
+
export var useHasChildFlyout = function useHasChildFlyout(flyoutId) {
|
|
86
|
+
var session = useSession(flyoutId);
|
|
87
|
+
return !!(session !== null && session !== void 0 && session.childFlyoutId);
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
/** Get the current push padding offsets from manager state. */
|
|
91
|
+
export var usePushPaddingOffsets = function usePushPaddingOffsets() {
|
|
92
|
+
var _context$state$pushPa;
|
|
93
|
+
var context = useFlyoutManager();
|
|
94
|
+
if (!context) {
|
|
95
|
+
return {
|
|
96
|
+
left: 0,
|
|
97
|
+
right: 0
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
return (_context$state$pushPa = context.state.pushPadding) !== null && _context$state$pushPa !== void 0 ? _context$state$pushPa : {
|
|
101
|
+
left: 0,
|
|
102
|
+
right: 0
|
|
103
|
+
};
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
/** True if there's any active push padding (left or right side). */
|
|
107
|
+
export var useHasPushPadding = function useHasPushPadding() {
|
|
108
|
+
var pushPadding = usePushPaddingOffsets();
|
|
109
|
+
return pushPadding.left > 0 || pushPadding.right > 0;
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
/** Get the ref for the current flyout z-index to be used */
|
|
113
|
+
export var useCurrentFlyoutZIndexRef = function useCurrentFlyoutZIndexRef() {
|
|
114
|
+
var context = useFlyoutManager();
|
|
115
|
+
return useRef((context === null || context === void 0 ? void 0 : context.state.currentZIndex) || 0);
|
|
116
|
+
};
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
3
|
+
* or more contributor license agreements. Licensed under the Elastic License
|
|
4
|
+
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
|
5
|
+
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
6
|
+
* Side Public License, v 1.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import { addFlyout as addFlyoutAction, closeFlyout as closeFlyoutAction, setActiveFlyout as setActiveFlyoutAction, setFlyoutWidth as setFlyoutWidthAction, setPushPadding as setPushPaddingAction, goBack as goBackAction, goToFlyout as goToFlyoutAction, addUnmanagedFlyout as addUnmanagedFlyoutAction, closeUnmanagedFlyout as closeUnmanagedFlyoutAction } from './actions';
|
|
10
|
+
import { flyoutManagerReducer, initialState } from './reducer';
|
|
11
|
+
function createStore() {
|
|
12
|
+
var initial = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;
|
|
13
|
+
var currentState = initial;
|
|
14
|
+
var listeners = new Set();
|
|
15
|
+
var getState = function getState() {
|
|
16
|
+
return currentState;
|
|
17
|
+
};
|
|
18
|
+
var subscribe = function subscribe(listener) {
|
|
19
|
+
listeners.add(listener);
|
|
20
|
+
return function () {
|
|
21
|
+
listeners.delete(listener);
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
// The onClick handlers won't execute until after store is fully assigned.
|
|
26
|
+
// eslint-disable-next-line prefer-const -- Forward declaration requires 'let' not 'const'
|
|
27
|
+
var store;
|
|
28
|
+
var computeHistoryItems = function computeHistoryItems() {
|
|
29
|
+
var currentSessionIndex = currentState.sessions.length - 1;
|
|
30
|
+
var previousSessions = currentState.sessions.slice(0, currentSessionIndex);
|
|
31
|
+
return previousSessions.reverse().map(function (_ref) {
|
|
32
|
+
var title = _ref.title,
|
|
33
|
+
mainFlyoutId = _ref.mainFlyoutId;
|
|
34
|
+
return {
|
|
35
|
+
title: title,
|
|
36
|
+
onClick: function onClick() {
|
|
37
|
+
store.dispatch(goToFlyoutAction(mainFlyoutId));
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
});
|
|
41
|
+
};
|
|
42
|
+
var dispatch = function dispatch(action) {
|
|
43
|
+
var nextState = flyoutManagerReducer(currentState, action);
|
|
44
|
+
if (nextState !== currentState) {
|
|
45
|
+
var previousSessions = currentState.sessions;
|
|
46
|
+
currentState = nextState;
|
|
47
|
+
|
|
48
|
+
// Recompute history items eagerly if sessions changed
|
|
49
|
+
// This ensures stable references and avoids stale closures
|
|
50
|
+
if (nextState.sessions !== previousSessions) {
|
|
51
|
+
store.historyItems = computeHistoryItems();
|
|
52
|
+
}
|
|
53
|
+
listeners.forEach(function (l) {
|
|
54
|
+
l();
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
store = {
|
|
59
|
+
getState: getState,
|
|
60
|
+
subscribe: subscribe,
|
|
61
|
+
dispatch: dispatch,
|
|
62
|
+
addFlyout: function addFlyout(flyoutId, title, level, size) {
|
|
63
|
+
return dispatch(addFlyoutAction(flyoutId, title, level, size));
|
|
64
|
+
},
|
|
65
|
+
closeFlyout: function closeFlyout(flyoutId) {
|
|
66
|
+
return dispatch(closeFlyoutAction(flyoutId));
|
|
67
|
+
},
|
|
68
|
+
setActiveFlyout: function setActiveFlyout(flyoutId) {
|
|
69
|
+
return dispatch(setActiveFlyoutAction(flyoutId));
|
|
70
|
+
},
|
|
71
|
+
setFlyoutWidth: function setFlyoutWidth(flyoutId, width) {
|
|
72
|
+
return dispatch(setFlyoutWidthAction(flyoutId, width));
|
|
73
|
+
},
|
|
74
|
+
setPushPadding: function setPushPadding(side, width) {
|
|
75
|
+
return dispatch(setPushPaddingAction(side, width));
|
|
76
|
+
},
|
|
77
|
+
goBack: function goBack() {
|
|
78
|
+
return dispatch(goBackAction());
|
|
79
|
+
},
|
|
80
|
+
goToFlyout: function goToFlyout(flyoutId) {
|
|
81
|
+
return dispatch(goToFlyoutAction(flyoutId));
|
|
82
|
+
},
|
|
83
|
+
addUnmanagedFlyout: function addUnmanagedFlyout(flyoutId) {
|
|
84
|
+
return dispatch(addUnmanagedFlyoutAction(flyoutId));
|
|
85
|
+
},
|
|
86
|
+
closeUnmanagedFlyout: function closeUnmanagedFlyout(flyoutId) {
|
|
87
|
+
return dispatch(closeUnmanagedFlyoutAction(flyoutId));
|
|
88
|
+
},
|
|
89
|
+
historyItems: computeHistoryItems() // Initialize with current state
|
|
90
|
+
};
|
|
91
|
+
return store;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
// Module-level singleton. A necessary trade-off to avoid global namespace pollution or the need for a third-party library.
|
|
95
|
+
var storeInstance = null;
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Returns a singleton store instance shared across all React roots within the same JS context.
|
|
99
|
+
* Uses module-level singleton to ensure deduplication even if modules are loaded twice.
|
|
100
|
+
*/
|
|
101
|
+
export function getFlyoutManagerStore() {
|
|
102
|
+
if (!storeInstance) {
|
|
103
|
+
storeInstance = createStore();
|
|
104
|
+
}
|
|
105
|
+
return storeInstance;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* For testing purposes - allows resetting the store
|
|
110
|
+
*/
|
|
111
|
+
export function _resetFlyoutManagerStore() {
|
|
112
|
+
storeInstance = null;
|
|
113
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
3
|
+
* or more contributor license agreements. Licensed under the Elastic License
|
|
4
|
+
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
|
5
|
+
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
6
|
+
* Side Public License, v 1.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import { FLYOUT_SIZES } from '../const';
|
|
10
|
+
import { LEVEL_CHILD } from './const';
|
|
11
|
+
/**
|
|
12
|
+
* Checks if a size is a named size (s, m, l)
|
|
13
|
+
*/
|
|
14
|
+
export function isNamedSize(size) {
|
|
15
|
+
return FLYOUT_SIZES.includes(size);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Validates that a managed flyout only uses named sizes
|
|
20
|
+
*/
|
|
21
|
+
export function validateManagedFlyoutSize(size, flyoutId, level) {
|
|
22
|
+
if (level === LEVEL_CHILD && !isNamedSize(size)) {
|
|
23
|
+
var namedSizes = FLYOUT_SIZES.join(', ');
|
|
24
|
+
return {
|
|
25
|
+
type: 'INVALID_SIZE_TYPE',
|
|
26
|
+
message: "Child flyout ".concat(flyoutId, " must use a named size (").concat(namedSizes, "). Received: ").concat(size),
|
|
27
|
+
flyoutId: flyoutId,
|
|
28
|
+
level: level,
|
|
29
|
+
size: size
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Validates size combinations for parent-child flyouts
|
|
37
|
+
*/
|
|
38
|
+
export function validateSizeCombination(parentSize, childSize) {
|
|
39
|
+
var sizes = [parentSize, childSize];
|
|
40
|
+
|
|
41
|
+
// Parent and child can't both be 'm'
|
|
42
|
+
if (sizes.every(function (s) {
|
|
43
|
+
return s === 'm';
|
|
44
|
+
})) {
|
|
45
|
+
return {
|
|
46
|
+
type: 'INVALID_SIZE_COMBINATION',
|
|
47
|
+
message: 'Parent and child flyouts cannot both be size "m"'
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// Parent and child can't both be 'fill'
|
|
52
|
+
if (sizes.every(function (s) {
|
|
53
|
+
return s === 'fill';
|
|
54
|
+
})) {
|
|
55
|
+
return {
|
|
56
|
+
type: 'INVALID_SIZE_COMBINATION',
|
|
57
|
+
message: 'Parent and child flyouts cannot both be size "fill"'
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
// Flyout can't be 'l' if the other in the pair is not "fill"
|
|
62
|
+
if (sizes.includes('l') && !sizes.includes('fill')) {
|
|
63
|
+
return {
|
|
64
|
+
type: 'INVALID_SIZE_COMBINATION',
|
|
65
|
+
message: 'Flyouts cannot be size "l" unless the other flyout is "fill"'
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Creates a user-friendly error message for validation errors
|
|
73
|
+
*/
|
|
74
|
+
export function createValidationErrorMessage(error) {
|
|
75
|
+
console.error(error);
|
|
76
|
+
var prefix = "EuiFlyout validation error";
|
|
77
|
+
switch (error.type) {
|
|
78
|
+
case 'INVALID_SIZE_TYPE':
|
|
79
|
+
case 'INVALID_SIZE_COMBINATION':
|
|
80
|
+
case 'INVALID_FLYOUT_MENU_TITLE':
|
|
81
|
+
return "".concat(prefix, ": ").concat(error.message);
|
|
82
|
+
default:
|
|
83
|
+
return "".concat(prefix, ": Unknown validation error");
|
|
84
|
+
}
|
|
85
|
+
}
|