kibana/x-pack/plugins/infra/types/eui.d.ts
Josh Dover 4d295c7923
Upgrade assistant - Phase 1 (#25168)
* Get basic scaffolding working

* Wire up cluster checkup data

* Add types for elasticsearch plugin

* Implement basics of checkup tab

* Update style of deprecations

* Add copy and reload button to checkup

* Add filtering by warning level

* Add deprecation logging tab

* Copy updates and cleanup

* Type cleanup

* Move deprecation logging to overview tab

* Make filters togglable

* Move sections into tabs and add support for grouping

* Cleanup and add clearer labels

* Use tables for message grouping

* Cleanup and small fixes

* Allow console to load relative URLs

* Add reindex in console button to reindex tasks

* Merge documentation UI and uiButtons

* Fix tests

* Filter bar tweaks

* Filter out index settings that can't be set

* Fix types

* Add tests for deprecation_logging

* Add tests for reindex templates

* Make KibanaConfig generic

* Simplify integration test

* Finish backend unit tests

* Fixup types

* Fix uiButton updating for reindex items

* Fixed background color stretching

* Pulling tabs out and re-ordering filter buttons

* Making accordions more item-list like

* Turned Healths into Badges

- Couldn’t do the conversion within the cell because it only passed color

* Fix overflow issue

* Optional filter and expand/collapse controls

* Reorganizing

- Added placeholder for moving action button up into accordion header
- Removed repetitive message name outputs
- Slightly better listing of each message when sorting by index
- Only showing number of severity when sorting by index
  - Still need to allow showing all severity levels
- Added indice count when sorting by issue

* Putting `Deprecation logging` in a `EuiDescribedFormGroup`

* Added some stats, empty prompts, and all clear prompt

* Added docs link

* Cleaned up sass files

* Revert changes to fake_deprecations

* Update blacklisted settings

* wip

* Move data fetching and tab control

* Wire up overview summary

* Cleanup docs/uiButtons + move actions to index table

* Add expand/collapse all functionality

* Wire up search box

* Wire up severity indicators

* Fix types

* Round out functional tests

* Fix fake data

* Remove info deprecation level

* Fix extra space on cluster tab control bar

* Cleanup code and localize majority of UI controls

* Change overview tab to steps layout

* Update copy

* Localize overview tab

* Complete localization of checkup tabs

* Make ES version dynamic based on branch

* Add pagination to checkup tabs

* Rename checkup -> assistant

* Cleanup filter and group by bars

* WIP UI unit tests

* Copy tweaks

* Fix i18n formatting issues

* Update tests for copy

* Add tests for remaining UI

* Fix pagination w/ filter changes + table button color

* Small cleanup

* Add reindex button to old index deprecations

* Add shrunken indices setting to copy settings blacklist for #18469

* Add next steps to overview tab + update copy

* Remove usage of migration assistance API

* Use all/critical toggle for filter buttons

* Cloud upgrade copy

* Translate reindex button

* Remove hacked EUI type

* Show incomplete banner on all tabs

* Update copy for waiting for next version

* Review comments

* Update deprecation level type

* Update checkup tab snapshots

* Remove dependencies on types from #25168

* Use types from new global type defs

* Remove 'Reindex in Console' button

* Remove unused variable
2018-12-18 17:08:06 -06:00

174 lines
4.9 KiB
TypeScript

/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License;
* you may not use this file except in compliance with the Elastic License.
*/
/**
* /!\ These type definitions are temporary until the upstream @elastic/eui
* package includes them.
*/
declare module '@elastic/eui' {
export const EuiWrappingPopover: React.SFC<any>;
}
import { EuiToolTipPosition, IconType } from '@elastic/eui';
import { CommonProps } from '@elastic/eui/src/components/common';
import moment from 'moment';
import { MouseEventHandler, ReactType, Ref } from 'react';
import { ReactDatePickerProps } from 'react-datepicker';
import { JsonObject } from '../common/typed_json';
declare module '@elastic/eui' {
export interface EuiBreadcrumbDefinition {
text: React.ReactNode;
href?: string;
onClick?: React.MouseEventHandler<any>;
}
type EuiBreadcrumbsProps = CommonProps & {
responsive?: boolean;
truncate?: boolean;
max?: number;
breadcrumbs: EuiBreadcrumbDefinition[];
};
type EuiHeaderProps = CommonProps;
export const EuiHeader: React.SFC<EuiHeaderProps>;
export type EuiHeaderSectionSide = 'left' | 'right';
type EuiHeaderSectionProps = CommonProps & {
side?: EuiHeaderSectionSide;
grow?: boolean;
};
export const EuiHeaderSection: React.SFC<EuiHeaderSectionProps>;
type EuiHeaderBreadcrumbsProps = EuiBreadcrumbsProps;
export const EuiHeaderBreadcrumbs: React.SFC<EuiHeaderBreadcrumbsProps>;
type EuiDatePickerProps = CommonProps &
Pick<
ReactDatePickerProps,
Exclude<
keyof ReactDatePickerProps,
| 'monthsShown'
| 'showWeekNumbers'
| 'fixedHeight'
| 'dropdownMode'
| 'useShortMonthInDropdown'
| 'todayButton'
| 'timeCaption'
| 'disabledKeyboardNavigation'
| 'isClearable'
| 'withPortal'
| 'ref'
| 'placeholderText'
| 'selected'
>
> & {
fullWidth?: boolean;
inputRef?: Ref<Element | ReactType>;
injectTimes?: moment.Moment[];
isInvalid?: boolean;
isLoading?: boolean;
selected?: moment.Moment | null | undefined;
placeholder?: string;
shadow?: boolean;
calendarContainer?: React.ReactNode;
onChange?: (date: moment.Moment | null) => void;
startDate?: moment.Moment | undefined;
endDate?: moment.Moment | undefined;
};
export const EuiDatePicker: React.SFC<EuiDatePickerProps>;
type EuiFilterGroupProps = CommonProps;
export const EuiFilterGroup: React.SFC<EuiFilterGroupProps>;
type EuiFilterButtonProps = CommonProps & {
color?: ButtonColor;
href?: string;
iconSide?: ButtonIconSide;
iconType?: IconType;
isDisabled?: boolean;
isSelected?: boolean;
onClick: MouseEventHandler<HTMLElement>;
rel?: string;
target?: string;
type?: string;
hasActiveFilters?: boolean;
numFilters?: number;
};
export const EuiFilterButton: React.SFC<EuiFilterButtonProps>;
interface EuiOutsideClickDetectorProps {
children: React.ReactNode;
isDisabled?: boolean;
onOutsideClick: React.MouseEventHandler<Element>;
}
export const EuiOutsideClickDetector: React.SFC<EuiOutsideClickDetectorProps>;
interface EuiFormControlLayoutIconProps {
type: IconType;
side?: 'left' | 'right';
onClick?: React.MouseEventHandler<Element>;
}
interface EuiFormControlLayoutClearIconProps {
onClick?: React.MouseEventHandler<Element>;
}
type EuiFormControlLayoutProps = CommonProps & {
icon?: string | EuiFormControlLayoutIconProps;
clear?: EuiFormControlLayoutClearIconProps;
fullWidth?: boolean;
isLoading?: boolean;
compressed?: boolean;
prepend?: React.ReactNode;
append?: React.ReactNode;
};
export const EuiFormControlLayout: React.SFC<EuiFormControlLayoutProps>;
type EuiSideNavProps = CommonProps & {
style?: any;
items: Array<{
id: string | number;
name: string;
items: Array<{
id: string;
name: string;
onClick: () => void;
}>;
}>;
mobileTitle?: React.ReactNode;
toggleOpenOnMobile?: () => void;
isOpenOnMobile?: boolean;
};
export const EuiSideNav: React.SFC<EuiSideNavProps>;
type EuiErrorBoundaryProps = CommonProps & {
children: React.ReactNode;
};
type EuiSizesResponsive = 'xs' | 's' | 'm' | 'l' | 'xl';
type EuiResponsiveProps = CommonProps & {
children: React.ReactNode;
sizes: EuiSizesResponsive[];
};
export const EuiHideFor: React.SFC<EuiResponsiveProps>;
export const EuiShowFor: React.SFC<EuiResponsiveProps>;
type EuiDatePickerRangeProps = CommonProps & {
startDateControl: React.ReactNode;
endDateControl: React.ReactNode;
iconType?: IconType | boolean;
fullWidth?: boolean;
disabled?: boolean;
isLoading?: boolean;
dateFormat?: string;
};
export const EuiDatePickerRange: React.SFC<EuiDatePickerRangeProps>;
}