@elastic/eui 108.0.0 → 109.1.0-snapshot.1763390960850
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/accessibility/skip_link/skip_link.js +10 -1
- package/es/components/basic_table/collapsed_item_actions.js +3 -1
- package/es/components/basic_table/default_item_action.js +7 -4
- package/es/components/bottom_bar/bottom_bar.js +12 -2
- package/es/components/button/button.js +20 -25
- package/es/components/button/button_display/_button_display.js +32 -30
- package/es/components/button/button_display/_button_display.styles.js +4 -4
- package/es/components/button/button_empty/button_empty.js +32 -14
- package/es/components/button/button_group/button_group.js +49 -31
- package/es/components/button/button_group/button_group_button.js +16 -5
- package/es/components/button/button_group/button_group_button.styles.js +12 -8
- package/es/components/button/button_icon/button_icon.js +30 -6
- package/es/components/card/card.js +20 -25
- package/es/components/card/card_select/card_select.js +20 -25
- package/es/components/code/code_block_virtualized.js +9 -7
- package/es/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +13 -1
- package/es/components/datagrid/body/cell/data_grid_cell.js +35 -12
- package/es/components/datagrid/body/data_grid_body.js +23 -6
- package/es/components/datagrid/body/data_grid_body_custom.js +23 -6
- package/es/components/datagrid/body/data_grid_body_virtualized.js +23 -6
- package/es/components/datagrid/body/header/column_actions.js +5 -21
- package/es/components/datagrid/body/header/data_grid_header_cell.js +29 -10
- package/es/components/datagrid/body/header/data_grid_header_cell.styles.js +8 -2
- package/es/components/datagrid/body/header/data_grid_header_cell_wrapper.js +5 -2
- package/es/components/datagrid/controls/column_selector.js +36 -19
- package/es/components/datagrid/controls/column_sorting.js +23 -6
- package/es/components/datagrid/controls/data_grid_toolbar_control.js +13 -7
- package/es/components/datagrid/data_grid.js +5 -1
- package/es/components/datagrid/utils/in_memory.js +25 -7
- package/es/components/date_picker/auto_refresh/auto_refresh.js +11 -2
- package/es/components/date_picker/super_date_picker/date_popover/absolute_tab.js +31 -5
- package/es/components/date_picker/super_date_picker/date_popover/date_popover_button.js +24 -3
- package/es/components/date_picker/super_date_picker/date_popover/date_popover_content.js +26 -4
- package/es/components/date_picker/super_date_picker/date_popover/relative_tab.js +29 -3
- package/es/components/date_picker/super_date_picker/date_popover/timezone_display.js +98 -0
- package/es/components/date_picker/super_date_picker/date_popover/timezone_display.styles.js +19 -0
- package/es/components/date_picker/super_date_picker/pretty_duration.js +1 -8
- package/es/components/date_picker/super_date_picker/relative_utils.js +8 -0
- package/es/components/date_picker/super_date_picker/super_date_picker.js +118 -26
- package/es/components/date_picker/super_date_picker/time_window_buttons.js +185 -0
- package/es/components/facet/facet_button.js +9 -19
- package/es/components/filter_group/filter_button.js +14 -1
- package/es/components/flyout/flyout.js +27 -10
- package/es/components/form/file_picker/file_picker.styles.js +3 -3
- package/es/components/form/form_control_button/form_control_button.js +13 -7
- package/es/components/header/header_links/header_link.js +13 -7
- package/es/components/header/header_section/header_section_item_button.js +13 -7
- package/es/components/icon/assets/boxes_vertical.js +1 -1
- package/es/components/icon/assets/checkInCircleFilled.js +1 -2
- package/es/components/icon/assets/errorFilled.js +1 -2
- package/es/components/icon/assets/paper_clip.js +1 -1
- package/es/components/icon/assets/streams_wired.js +3 -2
- package/es/components/icon/assets/warningFilled.js +1 -2
- package/es/components/icon/icon_map.js +3 -6
- package/es/components/list_group/list_group.js +13 -1
- package/es/components/list_group/list_group_item.js +13 -1
- package/es/components/list_group/list_group_item_extra_action.js +13 -1
- package/es/components/list_group/pinnable_list_group/pinnable_list_group.js +15 -2
- package/es/components/overlay_mask/overlay_mask.styles.js +1 -1
- package/es/components/pagination/pagination_button.js +13 -7
- package/es/components/popover/popover.js +22 -16
- package/es/components/provider/component_defaults/component_defaults.js +22 -2
- package/es/components/table/table_row.styles.js +1 -1
- package/es/components/tool_tip/tool_tip.js +24 -24
- package/es/global_styling/index.js +2 -1
- package/es/global_styling/mixins/_button.js +1 -1
- package/es/global_styling/utility/selectors.js +9 -0
- package/es/services/focus_trap/focus_trap_pub_sub.js +74 -0
- package/es/services/focus_trap/index.js +9 -0
- package/es/services/hooks/index.js +2 -1
- package/es/services/hooks/useEuiDisabledElement.js +195 -0
- package/es/services/index.js +1 -0
- package/es/services/popover/reposition_on_scroll.js +61 -0
- package/es/services/theme/high_contrast_overrides.js +5 -1
- package/es/test/cypress/index.d.ts +12 -0
- package/es/test/cypress/index.js +9 -0
- package/es/test/cypress/matchers.d.ts +20 -0
- package/es/test/cypress/matchers.js +54 -0
- package/es/test/cypress/test_reposition_on_scroll.js +66 -0
- package/es/test/enzyme/enzyme_matchers.d.ts +36 -0
- package/es/test/enzyme/enzyme_matchers.js +43 -0
- package/es/test/enzyme/index.d.ts +14 -0
- package/es/test/enzyme/index.js +10 -0
- package/es/test/rtl/index.d.ts +9 -1
- package/es/test/rtl/index.js +2 -1
- package/es/test/rtl/matchers.d.ts +36 -0
- package/es/test/rtl/matchers.js +82 -0
- package/es/utils/element_can_be_disabled.js +16 -0
- package/es/utils/index.js +2 -1
- package/eui.d.ts +604 -183
- package/i18ntokens.json +1357 -1231
- package/lib/components/accessibility/skip_link/skip_link.js +10 -1
- package/lib/components/basic_table/collapsed_item_actions.js +3 -1
- package/lib/components/basic_table/default_item_action.js +7 -4
- package/lib/components/bottom_bar/bottom_bar.js +11 -1
- package/lib/components/button/button.js +21 -26
- package/lib/components/button/button_display/_button_display.js +31 -29
- package/lib/components/button/button_display/_button_display.styles.js +4 -4
- package/lib/components/button/button_empty/button_empty.js +31 -13
- package/lib/components/button/button_group/button_group.js +49 -31
- package/lib/components/button/button_group/button_group_button.js +16 -5
- package/lib/components/button/button_group/button_group_button.styles.js +10 -6
- package/lib/components/button/button_icon/button_icon.js +29 -5
- package/lib/components/card/card.js +21 -26
- package/lib/components/card/card_select/card_select.js +21 -26
- package/lib/components/code/code_block_virtualized.js +9 -7
- package/lib/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +13 -1
- package/lib/components/datagrid/body/cell/data_grid_cell.js +35 -12
- package/lib/components/datagrid/body/data_grid_body.js +23 -6
- package/lib/components/datagrid/body/data_grid_body_custom.js +23 -6
- package/lib/components/datagrid/body/data_grid_body_virtualized.js +23 -6
- package/lib/components/datagrid/body/header/column_actions.js +5 -21
- package/lib/components/datagrid/body/header/data_grid_header_cell.js +29 -10
- package/lib/components/datagrid/body/header/data_grid_header_cell.styles.js +8 -1
- package/lib/components/datagrid/body/header/data_grid_header_cell_wrapper.js +5 -2
- package/lib/components/datagrid/controls/column_selector.js +36 -19
- package/lib/components/datagrid/controls/column_sorting.js +23 -6
- package/lib/components/datagrid/controls/data_grid_toolbar_control.js +13 -7
- package/lib/components/datagrid/data_grid.js +5 -1
- package/lib/components/datagrid/utils/in_memory.js +25 -7
- package/lib/components/date_picker/auto_refresh/auto_refresh.js +12 -3
- package/lib/components/date_picker/super_date_picker/date_popover/absolute_tab.js +30 -4
- package/lib/components/date_picker/super_date_picker/date_popover/date_popover_button.js +24 -3
- package/lib/components/date_picker/super_date_picker/date_popover/date_popover_content.js +26 -4
- package/lib/components/date_picker/super_date_picker/date_popover/relative_tab.js +29 -3
- package/lib/components/date_picker/super_date_picker/date_popover/timezone_display.js +104 -0
- package/lib/components/date_picker/super_date_picker/date_popover/timezone_display.styles.js +25 -0
- package/lib/components/date_picker/super_date_picker/pretty_duration.js +2 -9
- package/lib/components/date_picker/super_date_picker/relative_utils.js +9 -0
- package/lib/components/date_picker/super_date_picker/super_date_picker.js +118 -26
- package/lib/components/date_picker/super_date_picker/time_window_buttons.js +193 -0
- package/lib/components/facet/facet_button.js +9 -19
- package/lib/components/filter_group/filter_button.js +14 -1
- package/lib/components/flyout/flyout.js +26 -9
- package/lib/components/form/file_picker/file_picker.styles.js +3 -3
- package/lib/components/form/form_control_button/form_control_button.js +13 -7
- package/lib/components/header/header_links/header_link.js +13 -7
- package/lib/components/header/header_section/header_section_item_button.js +13 -7
- package/lib/components/icon/assets/boxes_vertical.js +1 -1
- package/lib/components/icon/assets/checkInCircleFilled.js +1 -2
- package/lib/components/icon/assets/errorFilled.js +1 -2
- package/lib/components/icon/assets/paper_clip.js +1 -1
- package/lib/components/icon/assets/streams_wired.js +3 -2
- package/lib/components/icon/assets/warningFilled.js +1 -2
- package/lib/components/icon/icon_map.js +3 -6
- package/lib/components/icon/svgs/boxes_vertical.svg +1 -1
- package/lib/components/icon/svgs/checkInCircleFilled.svg +1 -1
- package/lib/components/icon/svgs/errorFilled.svg +1 -1
- package/lib/components/icon/svgs/paper_clip.svg +3 -3
- package/lib/components/icon/svgs/warningFilled.svg +1 -1
- package/lib/components/list_group/list_group.js +13 -1
- package/lib/components/list_group/list_group_item.js +13 -1
- package/lib/components/list_group/list_group_item_extra_action.js +13 -1
- package/lib/components/list_group/pinnable_list_group/pinnable_list_group.js +15 -2
- package/lib/components/overlay_mask/overlay_mask.styles.js +1 -1
- package/lib/components/pagination/pagination_button.js +13 -7
- package/lib/components/popover/popover.js +21 -15
- package/lib/components/provider/component_defaults/component_defaults.js +22 -2
- package/lib/components/table/table_row.styles.js +1 -1
- package/lib/components/tool_tip/tool_tip.js +24 -24
- package/lib/global_styling/index.js +16 -1
- package/lib/global_styling/mixins/_button.js +1 -1
- package/lib/global_styling/utility/selectors.js +15 -0
- package/lib/services/focus_trap/focus_trap_pub_sub.js +80 -0
- package/lib/services/focus_trap/index.js +12 -0
- package/lib/services/hooks/index.js +18 -1
- package/lib/services/hooks/useEuiDisabledElement.js +199 -0
- package/lib/services/index.js +8 -0
- package/lib/services/popover/reposition_on_scroll.js +67 -0
- package/lib/services/theme/high_contrast_overrides.js +5 -1
- package/lib/test/cypress/index.d.ts +12 -0
- package/lib/test/cypress/index.js +18 -0
- package/lib/test/cypress/matchers.d.ts +20 -0
- package/lib/test/cypress/matchers.js +61 -0
- package/lib/test/cypress/test_reposition_on_scroll.js +69 -0
- package/lib/test/enzyme/enzyme_matchers.d.ts +36 -0
- package/lib/test/enzyme/enzyme_matchers.js +49 -0
- package/lib/test/enzyme/index.d.ts +14 -0
- package/lib/test/enzyme/index.js +24 -0
- package/lib/test/rtl/index.d.ts +9 -1
- package/lib/test/rtl/index.js +24 -2
- package/lib/test/rtl/matchers.d.ts +36 -0
- package/lib/test/rtl/matchers.js +86 -0
- package/lib/utils/element_can_be_disabled.js +22 -0
- package/lib/utils/index.js +14 -1
- package/optimize/es/components/basic_table/collapsed_item_actions.js +3 -1
- package/optimize/es/components/basic_table/default_item_action.js +7 -4
- package/optimize/es/components/bottom_bar/bottom_bar.js +12 -2
- package/optimize/es/components/button/button_display/_button_display.js +24 -12
- package/optimize/es/components/button/button_display/_button_display.styles.js +4 -4
- package/optimize/es/components/button/button_empty/button_empty.js +18 -6
- package/optimize/es/components/button/button_group/button_group.js +10 -5
- package/optimize/es/components/button/button_group/button_group_button.js +2 -3
- package/optimize/es/components/button/button_group/button_group_button.styles.js +12 -8
- package/optimize/es/components/button/button_icon/button_icon.js +17 -5
- package/optimize/es/components/code/code_block_virtualized.js +9 -7
- package/optimize/es/components/datagrid/body/header/column_actions.js +5 -21
- package/optimize/es/components/datagrid/body/header/data_grid_header_cell.js +6 -4
- package/optimize/es/components/datagrid/body/header/data_grid_header_cell.styles.js +8 -2
- package/optimize/es/components/datagrid/body/header/data_grid_header_cell_wrapper.js +4 -2
- package/optimize/es/components/datagrid/controls/column_selector.js +36 -19
- package/optimize/es/components/datagrid/data_grid.js +5 -1
- package/optimize/es/components/datagrid/utils/in_memory.js +2 -1
- package/optimize/es/components/date_picker/super_date_picker/date_popover/absolute_tab.js +12 -4
- package/optimize/es/components/date_picker/super_date_picker/date_popover/date_popover_button.js +5 -2
- package/optimize/es/components/date_picker/super_date_picker/date_popover/date_popover_content.js +7 -3
- package/optimize/es/components/date_picker/super_date_picker/date_popover/relative_tab.js +10 -2
- package/optimize/es/components/date_picker/super_date_picker/date_popover/timezone_display.js +97 -0
- package/optimize/es/components/date_picker/super_date_picker/date_popover/timezone_display.styles.js +19 -0
- package/optimize/es/components/date_picker/super_date_picker/pretty_duration.js +1 -8
- package/optimize/es/components/date_picker/super_date_picker/relative_utils.js +8 -0
- package/optimize/es/components/date_picker/super_date_picker/super_date_picker.js +49 -25
- package/optimize/es/components/date_picker/super_date_picker/time_window_buttons.js +185 -0
- package/optimize/es/components/flyout/flyout.js +27 -10
- package/optimize/es/components/form/file_picker/file_picker.styles.js +3 -3
- package/optimize/es/components/icon/assets/boxes_vertical.js +1 -1
- package/optimize/es/components/icon/assets/checkInCircleFilled.js +1 -2
- package/optimize/es/components/icon/assets/errorFilled.js +1 -2
- package/optimize/es/components/icon/assets/paper_clip.js +1 -1
- package/optimize/es/components/icon/assets/streams_wired.js +3 -2
- package/optimize/es/components/icon/assets/warningFilled.js +1 -2
- package/optimize/es/components/icon/icon_map.js +3 -6
- package/optimize/es/components/overlay_mask/overlay_mask.styles.js +1 -1
- package/optimize/es/components/popover/popover.js +22 -16
- package/optimize/es/components/table/table_row.styles.js +1 -1
- package/optimize/es/components/tool_tip/tool_tip.js +24 -24
- package/optimize/es/global_styling/index.js +2 -1
- package/optimize/es/global_styling/mixins/_button.js +1 -1
- package/optimize/es/global_styling/utility/selectors.js +9 -0
- package/optimize/es/services/focus_trap/focus_trap_pub_sub.js +74 -0
- package/optimize/es/services/focus_trap/index.js +9 -0
- package/optimize/es/services/hooks/index.js +2 -1
- package/optimize/es/services/hooks/useEuiDisabledElement.js +192 -0
- package/optimize/es/services/index.js +1 -0
- package/optimize/es/services/popover/reposition_on_scroll.js +61 -0
- package/optimize/es/services/theme/high_contrast_overrides.js +5 -1
- package/optimize/es/test/cypress/index.d.ts +12 -0
- package/optimize/es/test/cypress/index.js +9 -0
- package/optimize/es/test/cypress/matchers.d.ts +20 -0
- package/optimize/es/test/cypress/matchers.js +54 -0
- package/optimize/es/test/cypress/test_reposition_on_scroll.js +63 -0
- package/optimize/es/test/enzyme/enzyme_matchers.d.ts +36 -0
- package/optimize/es/test/enzyme/enzyme_matchers.js +43 -0
- package/optimize/es/test/enzyme/index.d.ts +14 -0
- package/optimize/es/test/enzyme/index.js +10 -0
- package/optimize/es/test/rtl/index.d.ts +9 -1
- package/optimize/es/test/rtl/index.js +2 -1
- package/optimize/es/test/rtl/matchers.d.ts +36 -0
- package/optimize/es/test/rtl/matchers.js +82 -0
- package/optimize/es/utils/element_can_be_disabled.js +16 -0
- package/optimize/es/utils/index.js +2 -1
- package/optimize/lib/components/basic_table/collapsed_item_actions.js +3 -1
- package/optimize/lib/components/basic_table/default_item_action.js +7 -4
- package/optimize/lib/components/bottom_bar/bottom_bar.js +11 -1
- package/optimize/lib/components/button/button_display/_button_display.js +23 -11
- package/optimize/lib/components/button/button_display/_button_display.styles.js +4 -4
- package/optimize/lib/components/button/button_empty/button_empty.js +17 -5
- package/optimize/lib/components/button/button_group/button_group.js +10 -5
- package/optimize/lib/components/button/button_group/button_group_button.js +2 -3
- package/optimize/lib/components/button/button_group/button_group_button.styles.js +10 -6
- package/optimize/lib/components/button/button_icon/button_icon.js +16 -4
- package/optimize/lib/components/code/code_block_virtualized.js +9 -7
- package/optimize/lib/components/datagrid/body/header/column_actions.js +5 -21
- package/optimize/lib/components/datagrid/body/header/data_grid_header_cell.js +6 -4
- package/optimize/lib/components/datagrid/body/header/data_grid_header_cell.styles.js +8 -1
- package/optimize/lib/components/datagrid/body/header/data_grid_header_cell_wrapper.js +4 -2
- package/optimize/lib/components/datagrid/controls/column_selector.js +36 -19
- package/optimize/lib/components/datagrid/data_grid.js +5 -1
- package/optimize/lib/components/datagrid/utils/in_memory.js +2 -1
- package/optimize/lib/components/date_picker/super_date_picker/date_popover/absolute_tab.js +11 -3
- package/optimize/lib/components/date_picker/super_date_picker/date_popover/date_popover_button.js +5 -2
- package/optimize/lib/components/date_picker/super_date_picker/date_popover/date_popover_content.js +7 -3
- package/optimize/lib/components/date_picker/super_date_picker/date_popover/relative_tab.js +10 -2
- package/optimize/lib/components/date_picker/super_date_picker/date_popover/timezone_display.js +103 -0
- package/optimize/lib/components/date_picker/super_date_picker/date_popover/timezone_display.styles.js +25 -0
- package/optimize/lib/components/date_picker/super_date_picker/pretty_duration.js +2 -9
- package/optimize/lib/components/date_picker/super_date_picker/relative_utils.js +9 -0
- package/optimize/lib/components/date_picker/super_date_picker/super_date_picker.js +49 -25
- package/optimize/lib/components/date_picker/super_date_picker/time_window_buttons.js +193 -0
- package/optimize/lib/components/flyout/flyout.js +26 -9
- package/optimize/lib/components/form/file_picker/file_picker.styles.js +3 -3
- package/optimize/lib/components/icon/assets/boxes_vertical.js +1 -1
- package/optimize/lib/components/icon/assets/checkInCircleFilled.js +1 -2
- package/optimize/lib/components/icon/assets/errorFilled.js +1 -2
- package/optimize/lib/components/icon/assets/paper_clip.js +1 -1
- package/optimize/lib/components/icon/assets/streams_wired.js +3 -2
- package/optimize/lib/components/icon/assets/warningFilled.js +1 -2
- package/optimize/lib/components/icon/icon_map.js +3 -6
- package/optimize/lib/components/icon/svgs/boxes_vertical.svg +1 -1
- package/optimize/lib/components/icon/svgs/checkInCircleFilled.svg +1 -1
- package/optimize/lib/components/icon/svgs/errorFilled.svg +1 -1
- package/optimize/lib/components/icon/svgs/paper_clip.svg +3 -3
- package/optimize/lib/components/icon/svgs/warningFilled.svg +1 -1
- package/optimize/lib/components/overlay_mask/overlay_mask.styles.js +1 -1
- package/optimize/lib/components/popover/popover.js +21 -15
- package/optimize/lib/components/table/table_row.styles.js +1 -1
- package/optimize/lib/components/tool_tip/tool_tip.js +24 -24
- package/optimize/lib/global_styling/index.js +16 -1
- package/optimize/lib/global_styling/mixins/_button.js +1 -1
- package/optimize/lib/global_styling/utility/selectors.js +15 -0
- package/optimize/lib/services/focus_trap/focus_trap_pub_sub.js +80 -0
- package/optimize/lib/services/focus_trap/index.js +12 -0
- package/optimize/lib/services/hooks/index.js +18 -1
- package/optimize/lib/services/hooks/useEuiDisabledElement.js +197 -0
- package/optimize/lib/services/index.js +8 -0
- package/optimize/lib/services/popover/reposition_on_scroll.js +67 -0
- package/optimize/lib/services/theme/high_contrast_overrides.js +5 -1
- package/optimize/lib/test/cypress/index.d.ts +12 -0
- package/optimize/lib/test/cypress/index.js +18 -0
- package/optimize/lib/test/cypress/matchers.d.ts +20 -0
- package/optimize/lib/test/cypress/matchers.js +61 -0
- package/optimize/lib/test/cypress/test_reposition_on_scroll.js +70 -0
- package/optimize/lib/test/enzyme/enzyme_matchers.d.ts +36 -0
- package/optimize/lib/test/enzyme/enzyme_matchers.js +50 -0
- package/optimize/lib/test/enzyme/index.d.ts +14 -0
- package/optimize/lib/test/enzyme/index.js +24 -0
- package/optimize/lib/test/rtl/index.d.ts +9 -1
- package/optimize/lib/test/rtl/index.js +24 -2
- package/optimize/lib/test/rtl/matchers.d.ts +36 -0
- package/optimize/lib/test/rtl/matchers.js +86 -0
- package/optimize/lib/utils/element_can_be_disabled.js +22 -0
- package/optimize/lib/utils/index.js +14 -1
- package/package.json +6 -5
- package/test-env/components/accessibility/skip_link/skip_link.js +10 -1
- package/test-env/components/basic_table/collapsed_item_actions.js +3 -1
- package/test-env/components/basic_table/default_item_action.js +7 -4
- package/test-env/components/bottom_bar/bottom_bar.js +11 -1
- package/test-env/components/button/button.js +21 -26
- package/test-env/components/button/button_display/_button_display.js +31 -29
- package/test-env/components/button/button_display/_button_display.styles.js +4 -4
- package/test-env/components/button/button_empty/button_empty.js +31 -13
- package/test-env/components/button/button_group/button_group.js +49 -31
- package/test-env/components/button/button_group/button_group_button.js +16 -5
- package/test-env/components/button/button_group/button_group_button.styles.js +10 -6
- package/test-env/components/button/button_icon/button_icon.js +29 -5
- package/test-env/components/card/card.js +21 -26
- package/test-env/components/card/card_select/card_select.js +21 -26
- package/test-env/components/code/code_block_virtualized.js +9 -7
- package/test-env/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +13 -1
- package/test-env/components/datagrid/body/cell/data_grid_cell.js +35 -12
- package/test-env/components/datagrid/body/data_grid_body.js +23 -6
- package/test-env/components/datagrid/body/data_grid_body_custom.js +23 -6
- package/test-env/components/datagrid/body/data_grid_body_virtualized.js +23 -6
- package/test-env/components/datagrid/body/header/column_actions.js +5 -21
- package/test-env/components/datagrid/body/header/data_grid_header_cell.js +29 -10
- package/test-env/components/datagrid/body/header/data_grid_header_cell.styles.js +8 -1
- package/test-env/components/datagrid/body/header/data_grid_header_cell_wrapper.js +5 -2
- package/test-env/components/datagrid/controls/column_selector.js +36 -19
- package/test-env/components/datagrid/controls/column_sorting.js +23 -6
- package/test-env/components/datagrid/controls/data_grid_toolbar_control.js +13 -7
- package/test-env/components/datagrid/data_grid.js +5 -1
- package/test-env/components/datagrid/utils/in_memory.js +25 -7
- package/test-env/components/date_picker/auto_refresh/auto_refresh.js +12 -3
- package/test-env/components/date_picker/super_date_picker/date_popover/absolute_tab.js +30 -4
- package/test-env/components/date_picker/super_date_picker/date_popover/date_popover_button.js +24 -3
- package/test-env/components/date_picker/super_date_picker/date_popover/date_popover_content.js +26 -4
- package/test-env/components/date_picker/super_date_picker/date_popover/relative_tab.js +29 -3
- package/test-env/components/date_picker/super_date_picker/date_popover/timezone_display.js +103 -0
- package/test-env/components/date_picker/super_date_picker/date_popover/timezone_display.styles.js +25 -0
- package/test-env/components/date_picker/super_date_picker/pretty_duration.js +2 -9
- package/test-env/components/date_picker/super_date_picker/relative_utils.js +9 -0
- package/test-env/components/date_picker/super_date_picker/super_date_picker.js +118 -26
- package/test-env/components/date_picker/super_date_picker/time_window_buttons.js +193 -0
- package/test-env/components/facet/facet_button.js +9 -19
- package/test-env/components/filter_group/filter_button.js +14 -1
- package/test-env/components/form/file_picker/file_picker.styles.js +3 -3
- package/test-env/components/form/form_control_button/form_control_button.js +13 -7
- package/test-env/components/header/header_links/header_link.js +13 -7
- package/test-env/components/header/header_section/header_section_item_button.js +13 -7
- package/test-env/components/icon/assets/boxes_vertical.js +1 -1
- package/test-env/components/icon/assets/checkInCircleFilled.js +1 -2
- package/test-env/components/icon/assets/errorFilled.js +1 -2
- package/test-env/components/icon/assets/paper_clip.js +1 -1
- package/test-env/components/icon/assets/streams_wired.js +3 -2
- package/test-env/components/icon/assets/warningFilled.js +1 -2
- package/test-env/components/icon/icon_map.js +3 -6
- package/test-env/components/list_group/list_group.js +13 -1
- package/test-env/components/list_group/list_group_item.js +13 -1
- package/test-env/components/list_group/list_group_item_extra_action.js +13 -1
- package/test-env/components/list_group/pinnable_list_group/pinnable_list_group.js +15 -2
- package/test-env/components/overlay_mask/overlay_mask.styles.js +1 -1
- package/test-env/components/pagination/pagination_button.js +13 -7
- package/test-env/components/popover/popover.js +21 -15
- package/test-env/components/provider/component_defaults/component_defaults.js +22 -2
- package/test-env/components/table/table_row.styles.js +1 -1
- package/test-env/components/tool_tip/tool_tip.js +24 -24
- package/test-env/global_styling/index.js +16 -1
- package/test-env/global_styling/mixins/_button.js +1 -1
- package/test-env/global_styling/utility/selectors.js +15 -0
- package/test-env/services/focus_trap/focus_trap_pub_sub.js +80 -0
- package/test-env/services/focus_trap/index.js +12 -0
- package/test-env/services/hooks/index.js +18 -1
- package/test-env/services/hooks/useEuiDisabledElement.js +197 -0
- package/test-env/services/index.js +8 -0
- package/test-env/services/popover/reposition_on_scroll.js +67 -0
- package/test-env/services/theme/high_contrast_overrides.js +5 -1
- package/test-env/test/cypress/index.js +18 -0
- package/test-env/test/cypress/matchers.js +61 -0
- package/test-env/test/cypress/test_reposition_on_scroll.js +70 -0
- package/test-env/test/enzyme/enzyme_matchers.js +50 -0
- package/test-env/test/enzyme/index.js +24 -0
- package/test-env/test/rtl/index.js +24 -2
- package/test-env/test/rtl/matchers.js +86 -0
- package/test-env/utils/element_can_be_disabled.js +22 -0
- package/test-env/utils/index.js +14 -1
|
@@ -18,10 +18,12 @@ var _popover = require("../../../popover");
|
|
|
18
18
|
var _spacer = require("../../../spacer");
|
|
19
19
|
var _date_modes = require("../date_modes");
|
|
20
20
|
var _relative_utils = require("../relative_utils");
|
|
21
|
+
var _timezone_display = require("./timezone_display");
|
|
21
22
|
var _react2 = require("@emotion/react");
|
|
22
23
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
23
24
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
24
25
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
26
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
25
27
|
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
26
28
|
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."); }
|
|
27
29
|
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; } }
|
|
@@ -43,7 +45,9 @@ var EuiRelativeTab = exports.EuiRelativeTab = function EuiRelativeTab(_ref) {
|
|
|
43
45
|
value = _ref.value,
|
|
44
46
|
onChange = _ref.onChange,
|
|
45
47
|
roundUp = _ref.roundUp,
|
|
46
|
-
labelPrefix = _ref.labelPrefix
|
|
48
|
+
labelPrefix = _ref.labelPrefix,
|
|
49
|
+
_ref$timeZoneDisplayP = _ref.timeZoneDisplayProps,
|
|
50
|
+
timeZoneDisplayProps = _ref$timeZoneDisplayP === void 0 ? {} : _ref$timeZoneDisplayP;
|
|
47
51
|
var initialRelativeParts = (0, _react.useRef)((0, _relative_utils.parseRelativeParts)(value));
|
|
48
52
|
var roundUnit = initialRelativeParts.current.roundUnit;
|
|
49
53
|
var _useState = (0, _react.useState)(initialRelativeParts.current.unit),
|
|
@@ -91,6 +95,7 @@ var EuiRelativeTab = exports.EuiRelativeTab = function EuiRelativeTab(_ref) {
|
|
|
91
95
|
return parsedValue.locale(locale || 'en').format(dateFormat);
|
|
92
96
|
}, [isInvalid, value, roundUp, locale, dateFormat]);
|
|
93
97
|
var relativeDateInputNumberDescriptionId = (0, _services.useGeneratedHtmlId)();
|
|
98
|
+
var timeZomeDescriptionId = (0, _services.useGeneratedHtmlId)();
|
|
94
99
|
var numberAriaLabel = (0, _i18n.useEuiI18n)('euiRelativeTab.numberInputLabel', 'Time span amount');
|
|
95
100
|
var numberInputError = (0, _i18n.useEuiI18n)('euiRelativeTab.numberInputError', 'Must be >= 0');
|
|
96
101
|
var dateInputError = (0, _i18n.useEuiI18n)('euiRelativeTab.dateInputError', 'Must be a valid range');
|
|
@@ -124,6 +129,7 @@ var EuiRelativeTab = exports.EuiRelativeTab = function EuiRelativeTab(_ref) {
|
|
|
124
129
|
compressed: true,
|
|
125
130
|
value: formattedValue,
|
|
126
131
|
readOnly: true,
|
|
132
|
+
"aria-describedby": timeZomeDescriptionId,
|
|
127
133
|
prepend: (0, _react2.jsx)(_form.EuiFormLabel, null, labelPrefix)
|
|
128
134
|
}), (0, _react2.jsx)(_accessibility.EuiScreenReaderOnly, null, (0, _react2.jsx)("p", {
|
|
129
135
|
id: relativeDateInputNumberDescriptionId
|
|
@@ -133,7 +139,9 @@ var EuiRelativeTab = exports.EuiRelativeTab = function EuiRelativeTab(_ref) {
|
|
|
133
139
|
values: {
|
|
134
140
|
unit: unit
|
|
135
141
|
}
|
|
136
|
-
})))), (0, _react2.jsx)(
|
|
142
|
+
})))), (0, _react2.jsx)(_timezone_display.EuiTimeZoneDisplay, _extends({
|
|
143
|
+
id: timeZomeDescriptionId
|
|
144
|
+
}, timeZoneDisplayProps)), (0, _react2.jsx)(_popover.EuiPopoverFooter, {
|
|
137
145
|
paddingSize: "s"
|
|
138
146
|
}, (0, _react2.jsx)(_form.EuiSwitch, {
|
|
139
147
|
"data-test-subj": "superDatePickerRelativeDateRoundSwitch",
|
|
@@ -163,5 +171,23 @@ EuiRelativeTab.propTypes = {
|
|
|
163
171
|
label: _propTypes.default.string,
|
|
164
172
|
start: _propTypes.default.oneOfType([_propTypes.default.oneOf(["now"]), _propTypes.default.string.isRequired]).isRequired
|
|
165
173
|
}).isRequired).isRequired
|
|
166
|
-
}).isRequired
|
|
174
|
+
}).isRequired,
|
|
175
|
+
timeZoneDisplayProps: _propTypes.default.shape({
|
|
176
|
+
/**
|
|
177
|
+
* A valid time zone name, from the IANA database, e.g. "America/Los_Angeles".
|
|
178
|
+
*
|
|
179
|
+
* @link https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
|
|
180
|
+
*/
|
|
181
|
+
timeZone: _propTypes.default.string,
|
|
182
|
+
/**
|
|
183
|
+
* Render prop function to add additional content to the time zone display.
|
|
184
|
+
* Useful for e.g. adding links to documentation or setting pages.
|
|
185
|
+
*/
|
|
186
|
+
customRender: _propTypes.default.func,
|
|
187
|
+
/**
|
|
188
|
+
* Reference date to be used while resolving the UTC offset.
|
|
189
|
+
* Only useful for edge cases involving daylight saving time.
|
|
190
|
+
*/
|
|
191
|
+
date: _propTypes.default.any
|
|
192
|
+
})
|
|
167
193
|
};
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.EuiTimeZoneDisplay = void 0;
|
|
7
|
+
exports.useEuiUTCOffsetDisplay = useEuiUTCOffsetDisplay;
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _timezone_display = require("./timezone_display.styles");
|
|
10
|
+
var _services = require("../../../../services");
|
|
11
|
+
var _flex = require("../../../flex");
|
|
12
|
+
var _icon = require("../../../icon");
|
|
13
|
+
var _text = require("../../../text");
|
|
14
|
+
var _react2 = require("@emotion/react");
|
|
15
|
+
var _excluded = ["timeZone", "customRender", "date"];
|
|
16
|
+
/*
|
|
17
|
+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
18
|
+
* or more contributor license agreements. Licensed under the Elastic License
|
|
19
|
+
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
|
20
|
+
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
21
|
+
* Side Public License, v 1.
|
|
22
|
+
*/
|
|
23
|
+
/**
|
|
24
|
+
* Available elements to render passed to the
|
|
25
|
+
* `customRender` render function.
|
|
26
|
+
*/
|
|
27
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
28
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
29
|
+
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], t.indexOf(o) >= 0 || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
|
|
30
|
+
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.indexOf(n) >= 0) continue; t[n] = r[n]; } return t; }
|
|
31
|
+
/**
|
|
32
|
+
* Display time zone information.
|
|
33
|
+
*/
|
|
34
|
+
var EuiTimeZoneDisplay = exports.EuiTimeZoneDisplay = function EuiTimeZoneDisplay(_ref) {
|
|
35
|
+
var timeZone = _ref.timeZone,
|
|
36
|
+
customRender = _ref.customRender,
|
|
37
|
+
date = _ref.date,
|
|
38
|
+
rest = _objectWithoutProperties(_ref, _excluded);
|
|
39
|
+
var color = 'subdued';
|
|
40
|
+
var styles = (0, _services.useEuiMemoizedStyles)(_timezone_display.euiTimeZoneDisplayStyles);
|
|
41
|
+
var referenceDate = date ? date.toDate() : undefined;
|
|
42
|
+
var _useEuiUTCOffsetDispl = useEuiUTCOffsetDisplay(timeZone !== null && timeZone !== void 0 ? timeZone : 'Browser', referenceDate),
|
|
43
|
+
utc = _useEuiUTCOffsetDispl.utc,
|
|
44
|
+
name = _useEuiUTCOffsetDispl.name,
|
|
45
|
+
isInvalid = _useEuiUTCOffsetDispl.isInvalid;
|
|
46
|
+
if (!timeZone || isInvalid) return null;
|
|
47
|
+
var label = !name ? utc : "".concat(utc, " (").concat(name, ")");
|
|
48
|
+
var nameDisplay = (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)(_icon.EuiIcon, {
|
|
49
|
+
type: "globe",
|
|
50
|
+
color: color
|
|
51
|
+
}), (0, _react2.jsx)(_text.EuiText, {
|
|
52
|
+
component: "span",
|
|
53
|
+
color: color,
|
|
54
|
+
size: "s"
|
|
55
|
+
}, label));
|
|
56
|
+
return (0, _react2.jsx)(_flex.EuiFlexGroup, _extends({
|
|
57
|
+
css: styles.euiTimeZoneDisplay,
|
|
58
|
+
alignItems: "center",
|
|
59
|
+
gutterSize: "xs",
|
|
60
|
+
"data-test-subj": "euiTimeZoneDisplay",
|
|
61
|
+
"aria-label": label
|
|
62
|
+
}, rest), typeof customRender === 'function' ? customRender({
|
|
63
|
+
nameDisplay: nameDisplay
|
|
64
|
+
}) : nameDisplay);
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Get the UTC offset display in hours e.g. "UTC+2" from time zone name.
|
|
69
|
+
*
|
|
70
|
+
* @param timeZoneName IANA time zone name
|
|
71
|
+
* @param [date] Reference date to get offset with Intl.DateTimeFormat
|
|
72
|
+
*/
|
|
73
|
+
function useEuiUTCOffsetDisplay(timeZoneName, date) {
|
|
74
|
+
try {
|
|
75
|
+
var _formattedParts$find;
|
|
76
|
+
if (timeZoneName === 'UTC') {
|
|
77
|
+
return {
|
|
78
|
+
utc: 'UTC',
|
|
79
|
+
name: '',
|
|
80
|
+
isInvalid: false
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
var ianaName = timeZoneName === 'Browser' ? new Intl.DateTimeFormat().resolvedOptions().timeZone : timeZoneName;
|
|
84
|
+
var formatter = new Intl.DateTimeFormat(undefined, {
|
|
85
|
+
timeZone: ianaName,
|
|
86
|
+
timeZoneName: 'shortOffset'
|
|
87
|
+
});
|
|
88
|
+
var formattedParts = formatter.formatToParts(date !== null && date !== void 0 ? date : new Date());
|
|
89
|
+
var timeZoneNamePart = ((_formattedParts$find = formattedParts.find(function (part) {
|
|
90
|
+
return part.type === 'timeZoneName';
|
|
91
|
+
})) === null || _formattedParts$find === void 0 ? void 0 : _formattedParts$find.value) || '';
|
|
92
|
+
return {
|
|
93
|
+
utc: timeZoneNamePart.replace('GMT', 'UTC'),
|
|
94
|
+
name: ianaName,
|
|
95
|
+
isInvalid: false
|
|
96
|
+
};
|
|
97
|
+
} catch (err) {
|
|
98
|
+
return {
|
|
99
|
+
utc: '',
|
|
100
|
+
name: timeZoneName,
|
|
101
|
+
isInvalid: true
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.euiTimeZoneDisplayStyles = void 0;
|
|
7
|
+
var _react = require("@emotion/react");
|
|
8
|
+
var _global_styling = require("../../../../global_styling");
|
|
9
|
+
/*
|
|
10
|
+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
11
|
+
* or more contributor license agreements. Licensed under the Elastic License
|
|
12
|
+
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
|
13
|
+
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
14
|
+
* Side Public License, v 1.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
var euiTimeZoneDisplayStyles = exports.euiTimeZoneDisplayStyles = function euiTimeZoneDisplayStyles(euiThemeContext) {
|
|
18
|
+
var euiTheme = euiThemeContext.euiTheme;
|
|
19
|
+
|
|
20
|
+
// This padding should probably not be part of this component to make it really reusable
|
|
21
|
+
|
|
22
|
+
return {
|
|
23
|
+
euiTimeZoneDisplay: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('padding-horizontal', euiTheme.size.s), " ", (0, _global_styling.logicalCSS)('padding-bottom', euiTheme.size.s), ";;label:euiTimeZoneDisplay;")
|
|
24
|
+
};
|
|
25
|
+
};
|
|
@@ -224,7 +224,7 @@ var usePrettyDuration = exports.usePrettyDuration = function usePrettyDuration(_
|
|
|
224
224
|
*/
|
|
225
225
|
var relativeDuration = 0;
|
|
226
226
|
var relativeParts = {};
|
|
227
|
-
if (isRelativeToNow(timeFrom, timeTo)) {
|
|
227
|
+
if ((0, _relative_utils.isRelativeToNow)(timeFrom, timeTo)) {
|
|
228
228
|
if ((0, _date_modes.getDateMode)(timeTo) === _date_modes.DATE_MODES.NOW) {
|
|
229
229
|
relativeParts = (0, _relative_utils.parseRelativeParts)(timeFrom);
|
|
230
230
|
} else {
|
|
@@ -281,16 +281,9 @@ var hasRangeMatch = function hasRangeMatch(timeFrom, timeTo, ranges) {
|
|
|
281
281
|
return timeFrom === start && timeTo === end;
|
|
282
282
|
});
|
|
283
283
|
};
|
|
284
|
-
var isRelativeToNow = function isRelativeToNow(timeFrom, timeTo) {
|
|
285
|
-
var fromDateMode = (0, _date_modes.getDateMode)(timeFrom);
|
|
286
|
-
var toDateMode = (0, _date_modes.getDateMode)(timeTo);
|
|
287
|
-
var isLast = fromDateMode === _date_modes.DATE_MODES.RELATIVE && toDateMode === _date_modes.DATE_MODES.NOW;
|
|
288
|
-
var isNext = fromDateMode === _date_modes.DATE_MODES.NOW && toDateMode === _date_modes.DATE_MODES.RELATIVE;
|
|
289
|
-
return isLast || isNext;
|
|
290
|
-
};
|
|
291
284
|
var showPrettyDuration = exports.showPrettyDuration = function showPrettyDuration(timeFrom, timeTo, quickRanges) {
|
|
292
285
|
if (hasRangeMatch(timeFrom, timeTo, quickRanges)) {
|
|
293
286
|
return true;
|
|
294
287
|
}
|
|
295
|
-
return isRelativeToNow(timeFrom, timeTo);
|
|
288
|
+
return (0, _relative_utils.isRelativeToNow)(timeFrom, timeTo);
|
|
296
289
|
};
|
|
@@ -3,12 +3,14 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
exports.isRelativeToNow = void 0;
|
|
6
7
|
exports.parseRelativeParts = parseRelativeParts;
|
|
7
8
|
exports.toRelativeStringFromParts = exports.relativeUnitsFromLargestToSmallest = void 0;
|
|
8
9
|
var _datemath = _interopRequireDefault(require("@elastic/datemath"));
|
|
9
10
|
var _moment = _interopRequireDefault(require("moment"));
|
|
10
11
|
var _objects = require("../../../services/objects");
|
|
11
12
|
var _predicate = require("../../../services/predicate");
|
|
13
|
+
var _date_modes = require("./date_modes");
|
|
12
14
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
15
|
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); }
|
|
14
16
|
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; }
|
|
@@ -71,4 +73,11 @@ var toRelativeStringFromParts = exports.toRelativeStringFromParts = function toR
|
|
|
71
73
|
var operator = matches && matches[2] ? matches[2] : '-';
|
|
72
74
|
var round = isRounded ? "".concat(ROUND_DELIMETER).concat(unit) : '';
|
|
73
75
|
return "now".concat(operator).concat(count).concat(unit).concat(round);
|
|
76
|
+
};
|
|
77
|
+
var isRelativeToNow = exports.isRelativeToNow = function isRelativeToNow(timeFrom, timeTo) {
|
|
78
|
+
var fromDateMode = (0, _date_modes.getDateMode)(timeFrom);
|
|
79
|
+
var toDateMode = (0, _date_modes.getDateMode)(timeTo);
|
|
80
|
+
var isLast = fromDateMode === _date_modes.DATE_MODES.RELATIVE && toDateMode === _date_modes.DATE_MODES.NOW;
|
|
81
|
+
var isNext = fromDateMode === _date_modes.DATE_MODES.NOW && toDateMode === _date_modes.DATE_MODES.RELATIVE;
|
|
82
|
+
return isLast || isNext;
|
|
74
83
|
};
|
|
@@ -16,6 +16,7 @@ var _date_picker_range = require("../date_picker_range");
|
|
|
16
16
|
var _form = require("../../form");
|
|
17
17
|
var _time_options = require("./time_options");
|
|
18
18
|
var _pretty_duration = require("./pretty_duration");
|
|
19
|
+
var _time_window_buttons = require("./time_window_buttons");
|
|
19
20
|
var _async_interval = require("./async_interval");
|
|
20
21
|
var _super_update_button = require("./super_update_button");
|
|
21
22
|
var _quick_select_popover = require("./quick_select_popover/quick_select_popover");
|
|
@@ -283,7 +284,9 @@ var EuiSuperDatePickerInternal = exports.EuiSuperDatePickerInternal = /*#__PURE_
|
|
|
283
284
|
maxDate = _this$props3.maxDate,
|
|
284
285
|
compressed = _this$props3.compressed,
|
|
285
286
|
onFocus = _this$props3.onFocus,
|
|
286
|
-
styles = _this$props3.memoizedStyles
|
|
287
|
+
styles = _this$props3.memoizedStyles,
|
|
288
|
+
_this$props3$timeZone = _this$props3.timeZoneDisplayProps,
|
|
289
|
+
timeZoneDisplayProps = _this$props3$timeZone === void 0 ? {} : _this$props3$timeZone;
|
|
287
290
|
var autoRefreshAppend = !isPaused ? (0, _react2.jsx)(_auto_refresh.EuiAutoRefreshButton, {
|
|
288
291
|
refreshInterval: refreshInterval,
|
|
289
292
|
minInterval: refreshMinInterval,
|
|
@@ -360,7 +363,8 @@ var EuiSuperDatePickerInternal = exports.EuiSuperDatePickerInternal = /*#__PURE_
|
|
|
360
363
|
timeOptions: timeOptions,
|
|
361
364
|
buttonProps: {
|
|
362
365
|
onFocus: onFocus
|
|
363
|
-
}
|
|
366
|
+
},
|
|
367
|
+
timeZoneDisplayProps: timeZoneDisplayProps
|
|
364
368
|
}),
|
|
365
369
|
endDateControl: isQuickSelectOnly ? undefined : (0, _react2.jsx)(_date_popover_button.EuiDatePopoverButton, {
|
|
366
370
|
css: styles.euiSuperDatePicker__rangeInput,
|
|
@@ -385,7 +389,8 @@ var EuiSuperDatePickerInternal = exports.EuiSuperDatePickerInternal = /*#__PURE_
|
|
|
385
389
|
timeOptions: timeOptions,
|
|
386
390
|
buttonProps: {
|
|
387
391
|
onFocus: onFocus
|
|
388
|
-
}
|
|
392
|
+
},
|
|
393
|
+
timeZoneDisplayProps: timeZoneDisplayProps
|
|
389
394
|
})
|
|
390
395
|
}));
|
|
391
396
|
});
|
|
@@ -405,13 +410,32 @@ var EuiSuperDatePickerInternal = exports.EuiSuperDatePickerInternal = /*#__PURE_
|
|
|
405
410
|
_this.applyTime();
|
|
406
411
|
}
|
|
407
412
|
});
|
|
408
|
-
_defineProperty(_this, "
|
|
413
|
+
_defineProperty(_this, "renderTimeWindowButtons", function () {
|
|
414
|
+
if (!_this.props.showTimeWindowButtons || _this.props.isAutoRefreshOnly) {
|
|
415
|
+
return null;
|
|
416
|
+
}
|
|
409
417
|
var _this$props5 = _this.props,
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
418
|
+
start = _this$props5.start,
|
|
419
|
+
end = _this$props5.end,
|
|
420
|
+
showTimeWindowButtons = _this$props5.showTimeWindowButtons,
|
|
421
|
+
compressed = _this$props5.compressed,
|
|
422
|
+
isDisabled = _this$props5.isDisabled;
|
|
423
|
+
var config = typeof showTimeWindowButtons === 'boolean' ? {} : showTimeWindowButtons;
|
|
424
|
+
return (0, _react2.jsx)(_time_window_buttons.EuiTimeWindowButtons, _extends({
|
|
425
|
+
applyTime: _this.applyQuickTime,
|
|
426
|
+
start: start,
|
|
427
|
+
end: end,
|
|
428
|
+
compressed: compressed,
|
|
429
|
+
isDisabled: !!isDisabled || _this.state.isInvalid
|
|
430
|
+
}, config));
|
|
431
|
+
});
|
|
432
|
+
_defineProperty(_this, "renderUpdateButton", function () {
|
|
433
|
+
var _this$props6 = _this.props,
|
|
434
|
+
isLoading = _this$props6.isLoading,
|
|
435
|
+
isDisabled = _this$props6.isDisabled,
|
|
436
|
+
updateButtonProps = _this$props6.updateButtonProps,
|
|
437
|
+
showUpdateButton = _this$props6.showUpdateButton,
|
|
438
|
+
compressed = _this$props6.compressed;
|
|
415
439
|
if (!showUpdateButton) return null;
|
|
416
440
|
return (0, _react2.jsx)(_super_update_button.EuiSuperUpdateButton, _extends({
|
|
417
441
|
needsUpdate: _this.state.hasChanged,
|
|
@@ -430,21 +454,21 @@ var EuiSuperDatePickerInternal = exports.EuiSuperDatePickerInternal = /*#__PURE_
|
|
|
430
454
|
return _createClass(EuiSuperDatePickerInternal, [{
|
|
431
455
|
key: "render",
|
|
432
456
|
value: function render() {
|
|
433
|
-
var _this$
|
|
434
|
-
isAutoRefreshOnly = _this$
|
|
435
|
-
isDisabled = _this$
|
|
436
|
-
isPaused = _this$
|
|
437
|
-
onRefreshChange = _this$
|
|
438
|
-
refreshInterval = _this$
|
|
439
|
-
refreshMinInterval = _this$
|
|
440
|
-
refreshIntervalUnits = _this$
|
|
441
|
-
showUpdateButton = _this$
|
|
442
|
-
dataTestSubj = _this$
|
|
443
|
-
_width = _this$
|
|
444
|
-
isQuickSelectOnly = _this$
|
|
445
|
-
compressed = _this$
|
|
446
|
-
className = _this$
|
|
447
|
-
styles = _this$
|
|
457
|
+
var _this$props7 = this.props,
|
|
458
|
+
isAutoRefreshOnly = _this$props7.isAutoRefreshOnly,
|
|
459
|
+
isDisabled = _this$props7.isDisabled,
|
|
460
|
+
isPaused = _this$props7.isPaused,
|
|
461
|
+
onRefreshChange = _this$props7.onRefreshChange,
|
|
462
|
+
refreshInterval = _this$props7.refreshInterval,
|
|
463
|
+
refreshMinInterval = _this$props7.refreshMinInterval,
|
|
464
|
+
refreshIntervalUnits = _this$props7.refreshIntervalUnits,
|
|
465
|
+
showUpdateButton = _this$props7.showUpdateButton,
|
|
466
|
+
dataTestSubj = _this$props7['data-test-subj'],
|
|
467
|
+
_width = _this$props7.width,
|
|
468
|
+
isQuickSelectOnly = _this$props7.isQuickSelectOnly,
|
|
469
|
+
compressed = _this$props7.compressed,
|
|
470
|
+
className = _this$props7.className,
|
|
471
|
+
styles = _this$props7.memoizedStyles;
|
|
448
472
|
var _this$state2 = this.state,
|
|
449
473
|
hasChanged = _this$state2.hasChanged,
|
|
450
474
|
isInvalid = _this$state2.isInvalid;
|
|
@@ -469,7 +493,7 @@ var EuiSuperDatePickerInternal = exports.EuiSuperDatePickerInternal = /*#__PURE_
|
|
|
469
493
|
compressed: compressed,
|
|
470
494
|
isDisabled: !!isDisabled,
|
|
471
495
|
className: className
|
|
472
|
-
}) : (0, _react2.jsx)(_react.default.Fragment, null, this.renderDatePickerRange(), this.renderUpdateButton()));
|
|
496
|
+
}) : (0, _react2.jsx)(_react.default.Fragment, null, this.renderDatePickerRange(), this.renderTimeWindowButtons(), this.renderUpdateButton()));
|
|
473
497
|
}
|
|
474
498
|
}], [{
|
|
475
499
|
key: "getDerivedStateFromProps",
|
|
@@ -632,6 +656,28 @@ EuiSuperDatePickerInternal.propTypes = {
|
|
|
632
656
|
* @default true
|
|
633
657
|
*/
|
|
634
658
|
showUpdateButton: _propTypes.default.oneOfType([_propTypes.default.bool.isRequired, _propTypes.default.oneOf(["iconOnly"])]),
|
|
659
|
+
/**
|
|
660
|
+
* Set to true to display buttons for time shifting and zooming out,
|
|
661
|
+
* next to the top-level control.
|
|
662
|
+
*/
|
|
663
|
+
showTimeWindowButtons: _propTypes.default.oneOfType([_propTypes.default.bool.isRequired, _propTypes.default.shape({
|
|
664
|
+
/**
|
|
665
|
+
* Show button for zooming out
|
|
666
|
+
* @default true
|
|
667
|
+
*/
|
|
668
|
+
showZoomOut: _propTypes.default.bool,
|
|
669
|
+
/**
|
|
670
|
+
* Show buttons for shifting the time window forward and backward
|
|
671
|
+
* @default true
|
|
672
|
+
*/
|
|
673
|
+
showShiftArrows: _propTypes.default.bool,
|
|
674
|
+
/**
|
|
675
|
+
* How much the time window is increased when zooming.
|
|
676
|
+
* A number between 0 and 1 e.g. 0.25, or a string representing a percentage e.g. 25%
|
|
677
|
+
* @default 0.5
|
|
678
|
+
* */
|
|
679
|
+
zoomFactor: _propTypes.default.oneOfType([_propTypes.default.number.isRequired, _propTypes.default.string.isRequired])
|
|
680
|
+
}).isRequired]),
|
|
635
681
|
/**
|
|
636
682
|
* Hides the actual input reducing to just the quick select button.
|
|
637
683
|
*/
|
|
@@ -678,6 +724,31 @@ EuiSuperDatePickerInternal.propTypes = {
|
|
|
678
724
|
* input by the user, set this flag to `false`.
|
|
679
725
|
*/
|
|
680
726
|
canRoundRelativeUnits: _propTypes.default.bool,
|
|
727
|
+
/**
|
|
728
|
+
* Props passed to the time zone display in the popovers {@link EuiTimeZoneDisplayProps}
|
|
729
|
+
*
|
|
730
|
+
* Setting `timeZoneDisplayProps.timeZone` with a valid time zone name will make
|
|
731
|
+
* the time zone information be visible below the start and end input fields.
|
|
732
|
+
* This is informational only, it will not affect how date/times are handled.
|
|
733
|
+
*/
|
|
734
|
+
timeZoneDisplayProps: _propTypes.default.shape({
|
|
735
|
+
/**
|
|
736
|
+
* A valid time zone name, from the IANA database, e.g. "America/Los_Angeles".
|
|
737
|
+
*
|
|
738
|
+
* @link https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
|
|
739
|
+
*/
|
|
740
|
+
timeZone: _propTypes.default.string,
|
|
741
|
+
/**
|
|
742
|
+
* Render prop function to add additional content to the time zone display.
|
|
743
|
+
* Useful for e.g. adding links to documentation or setting pages.
|
|
744
|
+
*/
|
|
745
|
+
customRender: _propTypes.default.func,
|
|
746
|
+
/**
|
|
747
|
+
* Reference date to be used while resolving the UTC offset.
|
|
748
|
+
* Only useful for edge cases involving daylight saving time.
|
|
749
|
+
*/
|
|
750
|
+
date: _propTypes.default.any
|
|
751
|
+
}),
|
|
681
752
|
memoizedStyles: _propTypes.default.any.isRequired,
|
|
682
753
|
timeOptions: _propTypes.default.shape({
|
|
683
754
|
timeTenseOptions: _propTypes.default.arrayOf(_propTypes.default.any.isRequired).isRequired,
|
|
@@ -827,6 +898,15 @@ EuiSuperDatePicker.propTypes = {
|
|
|
827
898
|
* @default true
|
|
828
899
|
*/
|
|
829
900
|
showUpdateButton: _propTypes.default.oneOfType([_propTypes.default.bool.isRequired, _propTypes.default.oneOf(["iconOnly"])]),
|
|
901
|
+
/**
|
|
902
|
+
* Set to true to display buttons for time shifting and zooming out,
|
|
903
|
+
* next to the top-level control.
|
|
904
|
+
*/
|
|
905
|
+
showTimeWindowButtons: _propTypes.default.oneOfType([_propTypes.default.bool.isRequired, _propTypes.default.shape({
|
|
906
|
+
showZoomOut: _propTypes.default.bool,
|
|
907
|
+
showShiftArrows: _propTypes.default.bool,
|
|
908
|
+
zoomFactor: _propTypes.default.oneOfType([_propTypes.default.number.isRequired, _propTypes.default.string.isRequired])
|
|
909
|
+
}).isRequired]),
|
|
830
910
|
/**
|
|
831
911
|
* Hides the actual input reducing to just the quick select button.
|
|
832
912
|
*/
|
|
@@ -852,5 +932,17 @@ EuiSuperDatePicker.propTypes = {
|
|
|
852
932
|
* If you do not want this behavior and instead wish to keep the exact units
|
|
853
933
|
* input by the user, set this flag to `false`.
|
|
854
934
|
*/
|
|
855
|
-
canRoundRelativeUnits: _propTypes.default.bool
|
|
935
|
+
canRoundRelativeUnits: _propTypes.default.bool,
|
|
936
|
+
/**
|
|
937
|
+
* Props passed to the time zone display in the popovers {@link EuiTimeZoneDisplayProps}
|
|
938
|
+
*
|
|
939
|
+
* Setting `timeZoneDisplayProps.timeZone` with a valid time zone name will make
|
|
940
|
+
* the time zone information be visible below the start and end input fields.
|
|
941
|
+
* This is informational only, it will not affect how date/times are handled.
|
|
942
|
+
*/
|
|
943
|
+
timeZoneDisplayProps: _propTypes.default.shape({
|
|
944
|
+
timeZone: _propTypes.default.string,
|
|
945
|
+
customRender: _propTypes.default.func,
|
|
946
|
+
date: _propTypes.default.any
|
|
947
|
+
})
|
|
856
948
|
};
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ZOOM_FACTOR_DEFAULT = exports.EuiTimeWindowButtons = void 0;
|
|
7
|
+
exports.useEuiTimeWindow = useEuiTimeWindow;
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _datemath = _interopRequireDefault(require("@elastic/datemath"));
|
|
10
|
+
var _moment = _interopRequireDefault(require("moment"));
|
|
11
|
+
var _pretty_interval = require("./pretty_interval");
|
|
12
|
+
var _relative_utils = require("./relative_utils");
|
|
13
|
+
var _button_group_button = require("../../button/button_group/button_group_button");
|
|
14
|
+
var _button_group = require("../../button/button_group/button_group.styles");
|
|
15
|
+
var _services = require("../../../services");
|
|
16
|
+
var _i18n = require("../../i18n");
|
|
17
|
+
var _react2 = require("@emotion/react");
|
|
18
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
19
|
+
/*
|
|
20
|
+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
21
|
+
* or more contributor license agreements. Licensed under the Elastic License
|
|
22
|
+
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
|
23
|
+
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
24
|
+
* Side Public License, v 1.
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
var ZOOM_FACTOR_DEFAULT = exports.ZOOM_FACTOR_DEFAULT = 0.5;
|
|
28
|
+
/**
|
|
29
|
+
* Button group with time window controls for shifting the time window
|
|
30
|
+
* forwards and backwards, and zooming out.
|
|
31
|
+
*/
|
|
32
|
+
var EuiTimeWindowButtons = exports.EuiTimeWindowButtons = function EuiTimeWindowButtons(_ref) {
|
|
33
|
+
var applyTime = _ref.applyTime,
|
|
34
|
+
start = _ref.start,
|
|
35
|
+
end = _ref.end,
|
|
36
|
+
compressed = _ref.compressed,
|
|
37
|
+
isDisabled = _ref.isDisabled,
|
|
38
|
+
_ref$showZoomOut = _ref.showZoomOut,
|
|
39
|
+
showZoomOut = _ref$showZoomOut === void 0 ? true : _ref$showZoomOut,
|
|
40
|
+
_ref$showShiftArrows = _ref.showShiftArrows,
|
|
41
|
+
showShiftArrows = _ref$showShiftArrows === void 0 ? true : _ref$showShiftArrows,
|
|
42
|
+
_ref$zoomFactor = _ref.zoomFactor,
|
|
43
|
+
zoomFactor = _ref$zoomFactor === void 0 ? ZOOM_FACTOR_DEFAULT : _ref$zoomFactor;
|
|
44
|
+
var buttonColor = 'text';
|
|
45
|
+
var buttonSize = compressed ? 's' : 'm';
|
|
46
|
+
var iconSize = compressed ? 's' : 'm';
|
|
47
|
+
var styles = (0, _services.useEuiMemoizedStyles)(_button_group.euiButtonGroupButtonsStyles);
|
|
48
|
+
var _useEuiTimeWindow = useEuiTimeWindow(start, end, applyTime, {
|
|
49
|
+
zoomFactor: zoomFactor
|
|
50
|
+
}),
|
|
51
|
+
displayInterval = _useEuiTimeWindow.displayInterval,
|
|
52
|
+
isInvalid = _useEuiTimeWindow.isInvalid,
|
|
53
|
+
stepForward = _useEuiTimeWindow.stepForward,
|
|
54
|
+
stepBackward = _useEuiTimeWindow.stepBackward,
|
|
55
|
+
expandWindow = _useEuiTimeWindow.expandWindow;
|
|
56
|
+
var invalidShiftDescription = (0, _i18n.useEuiI18n)('euiTimeWindowButtons.invalidShiftLabel', 'Cannot shift invalid time window');
|
|
57
|
+
var invalidZoomOutDescription = (0, _i18n.useEuiI18n)('euiTimeWindowButtons.invalidZoomOutLabel', 'Cannot zoom out invalid time window');
|
|
58
|
+
var previousId = (0, _services.useGeneratedHtmlId)({
|
|
59
|
+
prefix: 'previous'
|
|
60
|
+
});
|
|
61
|
+
var previousLabel = (0, _i18n.useEuiI18n)('euiTimeWindowButtons.previousLabel', 'Previous');
|
|
62
|
+
var previousTooltipContent = (0, _i18n.useEuiI18n)('euiTimeWindowButtons.previousDescription', 'Previous {displayInterval}', {
|
|
63
|
+
displayInterval: displayInterval
|
|
64
|
+
});
|
|
65
|
+
var zoomOutId = (0, _services.useGeneratedHtmlId)({
|
|
66
|
+
prefix: 'zoom_out'
|
|
67
|
+
});
|
|
68
|
+
var zoomOutLabel = (0, _i18n.useEuiI18n)('euiTimeWindowButtons.zoomOutLabel', 'Zoom out');
|
|
69
|
+
var zoomOutTooltipContent = isInvalid ? invalidZoomOutDescription : zoomOutLabel;
|
|
70
|
+
var nextId = (0, _services.useGeneratedHtmlId)({
|
|
71
|
+
prefix: 'next'
|
|
72
|
+
});
|
|
73
|
+
var nextLabel = (0, _i18n.useEuiI18n)('euiTimeWindowButtons.nextLabel', 'Next');
|
|
74
|
+
var nextTooltipContent = (0, _i18n.useEuiI18n)('euiTimeWindowButtons.nextDescription', 'Next {displayInterval}', {
|
|
75
|
+
displayInterval: displayInterval
|
|
76
|
+
});
|
|
77
|
+
if (!showZoomOut && !showShiftArrows) return null;
|
|
78
|
+
return (0, _react2.jsx)("div", {
|
|
79
|
+
className: "euiSuperDatePicker__timeWindowButtons",
|
|
80
|
+
css: [styles.euiButtonGroup__buttons, styles[buttonSize], ";label:EuiTimeWindowButtons;"],
|
|
81
|
+
"data-test-subj": "timeWindowButtons"
|
|
82
|
+
}, showShiftArrows && (0, _react2.jsx)(_button_group_button.EuiButtonGroupButton, {
|
|
83
|
+
id: previousId,
|
|
84
|
+
"data-test-subj": "timeWindowButtonsPrevious",
|
|
85
|
+
label: previousLabel,
|
|
86
|
+
title: "",
|
|
87
|
+
toolTipContent: !isDisabled && (isInvalid ? invalidShiftDescription : previousTooltipContent),
|
|
88
|
+
color: buttonColor,
|
|
89
|
+
size: buttonSize,
|
|
90
|
+
iconType: "arrowLeft",
|
|
91
|
+
iconSize: iconSize,
|
|
92
|
+
isIconOnly: true,
|
|
93
|
+
isSelected: false,
|
|
94
|
+
isDisabled: isDisabled,
|
|
95
|
+
onClick: stepBackward
|
|
96
|
+
}), showZoomOut && (0, _react2.jsx)(_button_group_button.EuiButtonGroupButton, {
|
|
97
|
+
id: zoomOutId,
|
|
98
|
+
"data-test-subj": "timeWindowButtonsZoomOut",
|
|
99
|
+
label: zoomOutLabel,
|
|
100
|
+
title: "",
|
|
101
|
+
toolTipContent: !isDisabled && zoomOutTooltipContent,
|
|
102
|
+
toolTipProps: {
|
|
103
|
+
disableScreenReaderOutput: zoomOutLabel === zoomOutTooltipContent
|
|
104
|
+
},
|
|
105
|
+
color: buttonColor,
|
|
106
|
+
size: buttonSize,
|
|
107
|
+
iconType: "magnifyWithMinus",
|
|
108
|
+
iconSize: iconSize,
|
|
109
|
+
isIconOnly: true,
|
|
110
|
+
isSelected: false,
|
|
111
|
+
isDisabled: isDisabled,
|
|
112
|
+
onClick: expandWindow
|
|
113
|
+
}), showShiftArrows && (0, _react2.jsx)(_button_group_button.EuiButtonGroupButton, {
|
|
114
|
+
id: nextId,
|
|
115
|
+
"data-test-subj": "timeWindowButtonsNext",
|
|
116
|
+
label: nextLabel,
|
|
117
|
+
title: "",
|
|
118
|
+
toolTipContent: !isDisabled && (isInvalid ? invalidShiftDescription : nextTooltipContent),
|
|
119
|
+
color: buttonColor,
|
|
120
|
+
size: buttonSize,
|
|
121
|
+
iconType: "arrowRight",
|
|
122
|
+
iconSize: iconSize,
|
|
123
|
+
isIconOnly: true,
|
|
124
|
+
isSelected: false,
|
|
125
|
+
isDisabled: isDisabled,
|
|
126
|
+
onClick: stepForward
|
|
127
|
+
}));
|
|
128
|
+
};
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* Partly adapted from date_picker/super_date_picker/quick_select_popover/quick_select.tsx
|
|
132
|
+
*/
|
|
133
|
+
function useEuiTimeWindow(start, end, apply, options) {
|
|
134
|
+
var _options$zoomFactor;
|
|
135
|
+
var min = _datemath.default.parse(start);
|
|
136
|
+
var max = _datemath.default.parse(end, {
|
|
137
|
+
roundUp: true
|
|
138
|
+
});
|
|
139
|
+
var isInvalid = !min || !min.isValid() || !max || !max.isValid();
|
|
140
|
+
var windowDuration = isInvalid ? 1 : max.diff(min);
|
|
141
|
+
var zoomFactor = getPercentageMultiplier((_options$zoomFactor = options === null || options === void 0 ? void 0 : options.zoomFactor) !== null && _options$zoomFactor !== void 0 ? _options$zoomFactor : ZOOM_FACTOR_DEFAULT);
|
|
142
|
+
var zoomAddition = windowDuration * (zoomFactor / 2); // Gets added to each end, that's why it's split in half
|
|
143
|
+
var prettyInterval = (0, _pretty_interval.usePrettyInterval)(false, windowDuration);
|
|
144
|
+
var displayInterval = isInvalid ? '' : prettyInterval;
|
|
145
|
+
if (!isInvalid && !(0, _relative_utils.isRelativeToNow)(start, end) && !isExactMinuteRange(windowDuration)) {
|
|
146
|
+
displayInterval = "~".concat(displayInterval);
|
|
147
|
+
}
|
|
148
|
+
return {
|
|
149
|
+
displayInterval: displayInterval,
|
|
150
|
+
isInvalid: isInvalid,
|
|
151
|
+
stepForward: stepForward,
|
|
152
|
+
stepBackward: stepBackward,
|
|
153
|
+
expandWindow: expandWindow
|
|
154
|
+
};
|
|
155
|
+
function stepForward() {
|
|
156
|
+
if (isInvalid) return;
|
|
157
|
+
apply({
|
|
158
|
+
start: (0, _moment.default)(max).toISOString(),
|
|
159
|
+
end: (0, _moment.default)(max).add(windowDuration, 'ms').toISOString()
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
function stepBackward() {
|
|
163
|
+
if (isInvalid) return;
|
|
164
|
+
apply({
|
|
165
|
+
start: (0, _moment.default)(min).subtract(windowDuration, 'ms').toISOString(),
|
|
166
|
+
end: (0, _moment.default)(min).toISOString()
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
function expandWindow() {
|
|
170
|
+
if (isInvalid) return;
|
|
171
|
+
apply({
|
|
172
|
+
start: (0, _moment.default)(min).subtract(zoomAddition, 'ms').toISOString(),
|
|
173
|
+
end: (0, _moment.default)(max).add(zoomAddition, 'ms').toISOString()
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
/**
|
|
179
|
+
* Get a number out of either 0.2 or "20%"
|
|
180
|
+
*/
|
|
181
|
+
function getPercentageMultiplier(value) {
|
|
182
|
+
var result = typeof value === 'number' ? value : parseFloat(String(value).replace('%', '').trim());
|
|
183
|
+
if (isNaN(result)) throw new TypeError('Please provide a valid number or percentage string e.g. "25%"');
|
|
184
|
+
return result > 1 ? result / 100 : result;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
/**
|
|
188
|
+
* Useful to determine whether to show the tilde in the display
|
|
189
|
+
*/
|
|
190
|
+
function isExactMinuteRange(diffMs) {
|
|
191
|
+
// 60 * 1000 = ms per minute
|
|
192
|
+
return diffMs % (60 * 1000) === 0;
|
|
193
|
+
}
|