Upgrade EUI to v97.0.0 (#195525)

`v96.1.0``v97.0.0`

_[Questions? Please see our Kibana upgrade
FAQ.](https://github.com/elastic/eui/blob/main/wiki/eui-team-processes/upgrading-kibana.md#faq-for-kibana-teams)_

---

## [`v97.0.0`](https://github.com/elastic/eui/releases/v97.0.0)

**Breaking changes**

- EuiDataGrid's custom grid body (rendered via `renderCustomGridBody`)
no longer automatically renders the column header row or footer rows. It
instead now passes the `headerRow` and `footerRow` React elements, which
require manual rendering.
([#8028](https://github.com/elastic/eui/pull/8028))
- This change was made to allow consumers to sync header/footer rows
with their own custom virtualization libraries.
- To facilitate this, a `gridWidth` prop is now also passed to custom
grid body renderers.

**Bug fixes**

- Fixed inputs not taking the whole width when passing `fullWidth` as
`true` to EuiDatePickerRange component
([#8061](https://github.com/elastic/eui/pull/8061))

**Accessibility**

- Improved accessibility of `EuiExternalLinkIcon` by clarifying text for
Screen Reader users. ([#8065](https://github.com/elastic/eui/pull/8065))

---------

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
This commit is contained in:
Cee Chen 2024-10-14 04:35:35 -07:00 committed by GitHub
parent cc46549c2f
commit cd60c66d19
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
54 changed files with 228 additions and 246 deletions

View file

@ -119,7 +119,7 @@
"@elastic/ecs": "^8.11.1",
"@elastic/elasticsearch": "^8.15.0",
"@elastic/ems-client": "8.5.3",
"@elastic/eui": "96.1.0",
"@elastic/eui": "97.0.0",
"@elastic/filesaver": "1.1.2",
"@elastic/node-crypto": "1.2.1",
"@elastic/numeral": "^2.5.1",

View file

@ -140,8 +140,8 @@ exports[`#start() returns \`Context\` component 1`] = `
"euiDisplaySelector.rowHeightLabel": "Row height",
"euiDualRange.sliderScreenReaderInstructions": "You are in a custom range slider. Use the Up and Down arrow keys to change the minimum value. Press Tab to interact with the maximum value.",
"euiErrorBoundary.error": "Error",
"euiExternalLinkIcon.ariaLabel": "External link",
"euiExternalLinkIcon.newTarget.screenReaderOnlyText": "(opens in a new tab or window)",
"euiExternalLinkIcon.externalTarget.screenReaderOnlyText": "(external)",
"euiExternalLinkIcon.newTarget.screenReaderOnlyText": "(external, opens in a new tab or window)",
"euiFieldPassword.maskPassword": "Mask password",
"euiFieldPassword.showPassword": "Show password as plain text. Note: this will visually expose your password on the screen.",
"euiFieldSearch.clearSearchButtonLabel": "Clear search input",

View file

@ -860,13 +860,16 @@ export const getEuiContextMapping = (): EuiTokensObject => {
'core.euiInlineEditForm.saveButtonAriaLabel',
{ defaultMessage: 'Save edit' }
),
'euiExternalLinkIcon.ariaLabel': i18n.translate('core.euiExternalLinkIcon.ariaLabel', {
defaultMessage: 'External link',
}),
'euiExternalLinkIcon.externalTarget.screenReaderOnlyText': i18n.translate(
'core.euiExternalLinkIcon.externalTarget.screenReaderOnlyText',
{
defaultMessage: '(external)',
}
),
'euiExternalLinkIcon.newTarget.screenReaderOnlyText': i18n.translate(
'core.euiExternalLinkIcon.newTarget.screenReaderOnlyText',
{
defaultMessage: '(opens in a new tab or window)',
defaultMessage: '(external, opens in a new tab or window)',
}
),
'euiLoadingStrings.ariaLabel': i18n.translate('core.euiLoadingStrings.ariaLabel', {

View file

@ -53,5 +53,4 @@ export const getPaths = <A>(validation: t.Validation<A>): string[] => {
/**
* Convenience utility to remove text appended to links by EUI
*/
export const removeExternalLinkText = (str: string) =>
str.replace(/\(opens in a new tab or window\)/g, '');
export const removeExternalLinkText = (str: string) => str.replace(/\(external[^)]*\)/g, '');

View file

@ -157,7 +157,7 @@ describe('Unified data table cell rendering', function () {
/>
);
expect(component.html()).toMatchInlineSnapshot(
`"<div data-test-subj=\\"dataTableExpandCellActionPopover\\" class=\\"euiFlexGroup css-1h68cm-euiFlexGroup-none-flexStart-stretch-row\\"><div class=\\"euiFlexItem css-9sbomz-euiFlexItem-grow-1\\"><span class=\\"unifiedDataTable__cellPopoverValue eui-textBreakWord\\"><span>100</span></span></div><div class=\\"euiFlexItem css-kpsrin-euiFlexItem-growZero\\"><button class=\\"euiButtonIcon css-1gd56qr-euiButtonIcon-xs-empty-primary\\" type=\\"button\\" aria-label=\\"Close popover\\" data-test-subj=\\"docTableClosePopover\\"><span data-euiicon-type=\\"cross\\" class=\\"euiButtonIcon__icon\\" aria-hidden=\\"true\\" color=\\"inherit\\"></span></button></div></div>"`
`"<div data-test-subj=\\"dataTableExpandCellActionPopover\\" class=\\"euiFlexGroup css-1h68cm-euiFlexGroup-none-flexStart-stretch-row\\"><div class=\\"euiFlexItem css-9sbomz-euiFlexItem-grow-1\\"><span class=\\"unifiedDataTable__cellPopoverValue eui-textBreakWord\\"><span>100</span></span></div><div class=\\"euiFlexItem css-kpsrin-euiFlexItem-growZero\\"><button class=\\"euiButtonIcon css-w92548-euiButtonIcon-xs-empty-primary\\" type=\\"button\\" aria-label=\\"Close popover\\" data-test-subj=\\"docTableClosePopover\\"><span data-euiicon-type=\\"cross\\" class=\\"euiButtonIcon__icon\\" aria-hidden=\\"true\\" color=\\"inherit\\"></span></button></div></div>"`
);
});
@ -184,7 +184,7 @@ describe('Unified data table cell rendering', function () {
/>
);
expect(component.html()).toMatchInlineSnapshot(
`"<div data-test-subj=\\"dataTableExpandCellActionPopover\\" class=\\"euiFlexGroup css-1h68cm-euiFlexGroup-none-flexStart-stretch-row\\"><div class=\\"euiFlexItem css-9sbomz-euiFlexItem-grow-1\\"><span class=\\"unifiedDataTable__cellPopoverValue eui-textBreakWord\\"><span>100</span></span></div><div class=\\"euiFlexItem css-kpsrin-euiFlexItem-growZero\\"><button class=\\"euiButtonIcon css-1gd56qr-euiButtonIcon-xs-empty-primary\\" type=\\"button\\" aria-label=\\"Close popover\\" data-test-subj=\\"docTableClosePopover\\"><span data-euiicon-type=\\"cross\\" class=\\"euiButtonIcon__icon\\" aria-hidden=\\"true\\" color=\\"inherit\\"></span></button></div></div>"`
`"<div data-test-subj=\\"dataTableExpandCellActionPopover\\" class=\\"euiFlexGroup css-1h68cm-euiFlexGroup-none-flexStart-stretch-row\\"><div class=\\"euiFlexItem css-9sbomz-euiFlexItem-grow-1\\"><span class=\\"unifiedDataTable__cellPopoverValue eui-textBreakWord\\"><span>100</span></span></div><div class=\\"euiFlexItem css-kpsrin-euiFlexItem-growZero\\"><button class=\\"euiButtonIcon css-w92548-euiButtonIcon-xs-empty-primary\\" type=\\"button\\" aria-label=\\"Close popover\\" data-test-subj=\\"docTableClosePopover\\"><span data-euiicon-type=\\"cross\\" class=\\"euiButtonIcon__icon\\" aria-hidden=\\"true\\" color=\\"inherit\\"></span></button></div></div>"`
);
findTestSubject(component, 'docTableClosePopover').simulate('click');
expect(closePopoverMockFn).toHaveBeenCalledTimes(1);

View file

@ -87,7 +87,7 @@ export const LICENSE_OVERRIDES = {
'jsts@1.6.2': ['Eclipse Distribution License - v 1.0'], // cf. https://github.com/bjornharrtell/jsts
'@mapbox/jsonlint-lines-primitives@2.0.2': ['MIT'], // license in readme https://github.com/tmcw/jsonlint
'@elastic/ems-client@8.5.3': ['Elastic License 2.0'],
'@elastic/eui@96.1.0': ['Elastic License 2.0 OR AGPL-3.0-only OR SSPL-1.0'],
'@elastic/eui@97.0.0': ['Elastic License 2.0 OR AGPL-3.0-only OR SSPL-1.0'],
'language-subtag-registry@0.3.21': ['CC-BY-4.0'], // retired ODCBy license https://github.com/mattcg/language-subtag-registry
'buffers@0.1.1': ['MIT'], // license in importing module https://www.npmjs.com/package/binary
'@bufbuild/protobuf@1.2.1': ['Apache-2.0'], // license (Apache-2.0 AND BSD-3-Clause)

View file

@ -170,13 +170,12 @@ exports[`UrlFormatEditor should render normally 1`] = `
<span
class="emotion-EuiExternalLinkIcon"
data-euiicon-type="popout"
>
External link
</span>
role="presentation"
/>
<span
class="emotion-euiScreenReaderOnly"
>
(opens in a new tab or window)
(external, opens in a new tab or window)
</span>
</a>
</div>
@ -231,13 +230,12 @@ exports[`UrlFormatEditor should render normally 1`] = `
<span
class="emotion-EuiExternalLinkIcon"
data-euiicon-type="popout"
>
External link
</span>
role="presentation"
/>
<span
class="emotion-euiScreenReaderOnly"
>
(opens in a new tab or window)
(external, opens in a new tab or window)
</span>
</a>
</div>

View file

@ -42,13 +42,12 @@ test('ErrorEmbeddable renders an embeddable with markdown message', async () =>
<span
class="emotion-EuiExternalLinkIcon"
data-euiicon-type="popout"
>
External link
</span>
role="presentation"
/>
<span
class="emotion-euiScreenReaderOnly"
>
(opens in a new tab or window)
(external, opens in a new tab or window)
</span>
</a>
`);

View file

@ -10,7 +10,7 @@
import React from 'react';
import { DEFAULT_DASHBOARD_DRILLDOWN_OPTIONS } from '@kbn/presentation-util-plugin/public';
import { createEvent, fireEvent, render, screen, within } from '@testing-library/react';
import { createEvent, fireEvent, render, screen } from '@testing-library/react';
import userEvent from '@testing-library/user-event';
import { LINKS_VERTICAL_LAYOUT } from '../../../common/content_management';
@ -75,7 +75,7 @@ describe('Dashboard link component', () => {
expect(link).toHaveTextContent('Dashboard 1');
// does not render external link icon
const externalIcon = within(link).queryByText('External link');
const externalIcon = link.querySelector('[data-euiicon-type="popout"]');
expect(externalIcon).toBeNull();
// calls `navigate` on click
@ -122,8 +122,8 @@ describe('Dashboard link component', () => {
const link = screen.getByTestId('dashboardLink--foo');
expect(link).toBeInTheDocument();
// external link icon is rendered
const externalIcon = within(link).getByText('External link');
expect(externalIcon?.getAttribute('data-euiicon-type')).toBe('popout');
const externalIcon = link.querySelector('[data-euiicon-type="popout"]');
expect(externalIcon).toBeInTheDocument();
// calls `window.open`
await userEvent.click(link);

View file

@ -10,7 +10,7 @@
import React from 'react';
import userEvent from '@testing-library/user-event';
import { createEvent, fireEvent, render, screen, within } from '@testing-library/react';
import { createEvent, fireEvent, render, screen } from '@testing-library/react';
import { LINKS_VERTICAL_LAYOUT } from '../../../common/content_management';
import { ExternalLinkComponent } from './external_link_component';
import { coreServices } from '../../services/kibana_services';
@ -39,8 +39,8 @@ describe('external link component', () => {
const link = await screen.findByTestId('externalLink--foo');
expect(link).toBeInTheDocument();
const externalIcon = within(link).getByText('External link');
expect(externalIcon.getAttribute('data-euiicon-type')).toBe('popout');
const externalIcon = link.querySelector('[data-euiicon-type="popout"]');
expect(externalIcon).toBeInTheDocument();
await userEvent.click(link);
expect(window.open).toHaveBeenCalledWith('https://example.com', '_blank');
});
@ -52,8 +52,8 @@ describe('external link component', () => {
};
render(<ExternalLinkComponent link={linkInfo} layout={LINKS_VERTICAL_LAYOUT} />);
const link = await screen.findByTestId('externalLink--foo');
const externalIcon = within(link).getByText('External link');
expect(externalIcon?.getAttribute('data-euiicon-type')).toBe('popout');
const externalIcon = link.querySelector('[data-euiicon-type="popout"]');
expect(externalIcon).toBeInTheDocument();
});
test('modified click does not trigger event.preventDefault', async () => {

View file

@ -37,13 +37,12 @@ exports[`NotFoundErrors component renders correctly for index-pattern type 1`] =
<span
class="emotion-EuiExternalLinkIcon"
data-euiicon-type="popout"
>
External link
</span>
role="presentation"
/>
<span
class="emotion-euiScreenReaderOnly"
>
(opens in a new tab or window)
(external, opens in a new tab or window)
</span>
</a>
to fix it — otherwise click the delete button above.
@ -89,13 +88,12 @@ exports[`NotFoundErrors component renders correctly for index-pattern-field type
<span
class="emotion-EuiExternalLinkIcon"
data-euiicon-type="popout"
>
External link
</span>
role="presentation"
/>
<span
class="emotion-euiScreenReaderOnly"
>
(opens in a new tab or window)
(external, opens in a new tab or window)
</span>
</a>
to fix it — otherwise click the delete button above.
@ -141,13 +139,12 @@ exports[`NotFoundErrors component renders correctly for search type 1`] = `
<span
class="emotion-EuiExternalLinkIcon"
data-euiicon-type="popout"
>
External link
</span>
role="presentation"
/>
<span
class="emotion-euiScreenReaderOnly"
>
(opens in a new tab or window)
(external, opens in a new tab or window)
</span>
</a>
to fix it — otherwise click the delete button above.
@ -191,13 +188,12 @@ exports[`NotFoundErrors component renders correctly for unknown type 1`] = `
<span
class="emotion-EuiExternalLinkIcon"
data-euiicon-type="popout"
>
External link
</span>
role="presentation"
/>
<span
class="emotion-euiScreenReaderOnly"
>
(opens in a new tab or window)
(external, opens in a new tab or window)
</span>
</a>
to fix it — otherwise click the delete button above.

View file

@ -26,7 +26,7 @@ describe('NotFoundErrors component', () => {
const callOut = mounted.find('EuiCallOut');
expect(callOut.render()).toMatchSnapshot();
expect(mounted.text()).toMatchInlineSnapshot(
`"There is a problem with this saved objectThe saved search associated with this object no longer exists.If you know what this error means, you can use the Saved objects APIsExternal link(opens in a new tab or window) to fix it — otherwise click the delete button above."`
`"There is a problem with this saved objectThe saved search associated with this object no longer exists.If you know what this error means, you can use the Saved objects APIs(external, opens in a new tab or window) to fix it — otherwise click the delete button above."`
);
});
@ -35,7 +35,7 @@ describe('NotFoundErrors component', () => {
const callOut = mounted.find('EuiCallOut');
expect(callOut.render()).toMatchSnapshot();
expect(mounted.text()).toMatchInlineSnapshot(
`"There is a problem with this saved objectThe data view associated with this object no longer exists.If you know what this error means, you can use the Saved objects APIsExternal link(opens in a new tab or window) to fix it — otherwise click the delete button above."`
`"There is a problem with this saved objectThe data view associated with this object no longer exists.If you know what this error means, you can use the Saved objects APIs(external, opens in a new tab or window) to fix it — otherwise click the delete button above."`
);
});
@ -44,7 +44,7 @@ describe('NotFoundErrors component', () => {
const callOut = mounted.find('EuiCallOut');
expect(callOut.render()).toMatchSnapshot();
expect(mounted.text()).toMatchInlineSnapshot(
`"There is a problem with this saved objectA field associated with this object no longer exists in the data view.If you know what this error means, you can use the Saved objects APIsExternal link(opens in a new tab or window) to fix it — otherwise click the delete button above."`
`"There is a problem with this saved objectA field associated with this object no longer exists in the data view.If you know what this error means, you can use the Saved objects APIs(external, opens in a new tab or window) to fix it — otherwise click the delete button above."`
);
});
@ -53,7 +53,7 @@ describe('NotFoundErrors component', () => {
const callOut = mounted.find('EuiCallOut');
expect(callOut.render()).toMatchSnapshot();
expect(mounted.text()).toMatchInlineSnapshot(
`"There is a problem with this saved objectIf you know what this error means, you can use the Saved objects APIsExternal link(opens in a new tab or window) to fix it — otherwise click the delete button above."`
`"There is a problem with this saved objectIf you know what this error means, you can use the Saved objects APIs(external, opens in a new tab or window) to fix it — otherwise click the delete button above."`
);
});
});

View file

@ -2,4 +2,4 @@
exports[`VisLegend Component Legend closed should match the snapshot 1`] = `"<div class=\\"visLegend\\"><button type=\\"button\\" class=\\"visLegend__toggle kbn-resetFocusState\\" aria-label=\\"Toggle legend\\" aria-expanded=\\"false\\" aria-controls=\\"legendId\\" data-test-subj=\\"vislibToggleLegend\\" title=\\"Toggle legend\\"><span data-euiicon-type=\\"list\\" color=\\"text\\"></span></button></div>"`;
exports[`VisLegend Component Legend open should match the snapshot 1`] = `"<div class=\\"visLegend\\"><button type=\\"button\\" class=\\"visLegend__toggle kbn-resetFocusState visLegend__toggle--isOpen\\" aria-label=\\"Toggle legend\\" aria-expanded=\\"true\\" aria-controls=\\"legendId\\" data-test-subj=\\"vislibToggleLegend\\" title=\\"Toggle legend\\"><span data-euiicon-type=\\"list\\" color=\\"text\\"></span></button><ul class=\\"visLegend__list\\" id=\\"legendId\\"><li class=\\"visLegend__value\\"><div class=\\"euiPopover css-bvzum9-euiPopover-block\\"><button class=\\"euiButtonEmpty visLegend__button css-iy5vln-euiButtonDisplay-euiButtonEmpty-xs-empty-text-flush-left\\" type=\\"button\\" data-label=\\"A\\" title=\\"A\\" aria-label=\\"A, toggle options\\" data-test-subj=\\"legend-A\\"><span class=\\"euiButtonEmpty__content css-cf8eum-euiButtonDisplayContent\\"><span class=\\"eui-textTruncate euiButtonEmpty__text\\"><span data-euiicon-type=\\"dot\\" color=\\"red\\" data-test-subj=\\"legendSelectedColor-red\\"></span><span class=\\"visLegend__valueTitle\\">A</span></span></span></button></div></li><li class=\\"visLegend__value\\"><div class=\\"euiPopover css-bvzum9-euiPopover-block\\"><button class=\\"euiButtonEmpty visLegend__button css-iy5vln-euiButtonDisplay-euiButtonEmpty-xs-empty-text-flush-left\\" type=\\"button\\" data-label=\\"B\\" title=\\"B\\" aria-label=\\"B, toggle options\\" data-test-subj=\\"legend-B\\"><span class=\\"euiButtonEmpty__content css-cf8eum-euiButtonDisplayContent\\"><span class=\\"eui-textTruncate euiButtonEmpty__text\\"><span data-euiicon-type=\\"dot\\" color=\\"red\\" data-test-subj=\\"legendSelectedColor-red\\"></span><span class=\\"visLegend__valueTitle\\">B</span></span></span></button></div></li></ul></div>"`;
exports[`VisLegend Component Legend open should match the snapshot 1`] = `"<div class=\\"visLegend\\"><button type=\\"button\\" class=\\"visLegend__toggle kbn-resetFocusState visLegend__toggle--isOpen\\" aria-label=\\"Toggle legend\\" aria-expanded=\\"true\\" aria-controls=\\"legendId\\" data-test-subj=\\"vislibToggleLegend\\" title=\\"Toggle legend\\"><span data-euiicon-type=\\"list\\" color=\\"text\\"></span></button><ul class=\\"visLegend__list\\" id=\\"legendId\\"><li class=\\"visLegend__value\\"><div class=\\"euiPopover css-bvzum9-euiPopover-block\\"><button class=\\"euiButtonEmpty visLegend__button css-1d7o588-euiButtonDisplay-euiButtonEmpty-xs-empty-text-flush-left\\" type=\\"button\\" data-label=\\"A\\" title=\\"A\\" aria-label=\\"A, toggle options\\" data-test-subj=\\"legend-A\\"><span class=\\"euiButtonEmpty__content css-cf8eum-euiButtonDisplayContent\\"><span class=\\"eui-textTruncate euiButtonEmpty__text\\"><span data-euiicon-type=\\"dot\\" color=\\"red\\" data-test-subj=\\"legendSelectedColor-red\\"></span><span class=\\"visLegend__valueTitle\\">A</span></span></span></button></div></li><li class=\\"visLegend__value\\"><div class=\\"euiPopover css-bvzum9-euiPopover-block\\"><button class=\\"euiButtonEmpty visLegend__button css-1d7o588-euiButtonDisplay-euiButtonEmpty-xs-empty-text-flush-left\\" type=\\"button\\" data-label=\\"B\\" title=\\"B\\" aria-label=\\"B, toggle options\\" data-test-subj=\\"legend-B\\"><span class=\\"euiButtonEmpty__content css-cf8eum-euiButtonDisplayContent\\"><span class=\\"eui-textTruncate euiButtonEmpty__text\\"><span data-euiicon-type=\\"dot\\" color=\\"red\\" data-test-subj=\\"legendSelectedColor-red\\"></span><span class=\\"visLegend__valueTitle\\">B</span></span></span></button></div></li></ul></div>"`;

File diff suppressed because one or more lines are too long

View file

@ -18,7 +18,7 @@ import { EuiButton } from '@elastic/eui';
* Convenience utility to remove text appended to links by EUI
*/
export const removeExternalLinkText = (str: string | null) =>
str?.replace(/\(opens in a new tab or window\)/g, '');
str?.replace(/\(external[^)]*\)/g, '');
export async function waitForComponentToPaint<P = {}>(wrapper: ReactWrapper<P>, amount = 0) {
await act(async () => {

View file

@ -132,13 +132,12 @@ exports[`extend index management ilm summary extension should render a phase def
<span
class="emotion-EuiExternalLinkIcon"
data-euiicon-type="popout"
>
External link
</span>
role="presentation"
/>
<span
class="emotion-euiScreenReaderOnly"
>
(opens in a new tab or window)
(external, opens in a new tab or window)
</span>
</a>
</div>
@ -303,13 +302,12 @@ exports[`extend index management ilm summary extension should render a step info
<span
class="emotion-EuiExternalLinkIcon"
data-euiicon-type="popout"
>
External link
</span>
role="presentation"
/>
<span
class="emotion-euiScreenReaderOnly"
>
(opens in a new tab or window)
(external, opens in a new tab or window)
</span>
</a>
</div>
@ -470,13 +468,12 @@ exports[`extend index management ilm summary extension should render an error pa
<span
class="emotion-EuiExternalLinkIcon"
data-euiicon-type="popout"
>
External link
</span>
role="presentation"
/>
<span
class="emotion-euiScreenReaderOnly"
>
(opens in a new tab or window)
(external, opens in a new tab or window)
</span>
</a>
</div>
@ -638,13 +635,12 @@ exports[`extend index management ilm summary extension should render the tab whe
<span
class="emotion-EuiExternalLinkIcon"
data-euiicon-type="popout"
>
External link
</span>
role="presentation"
/>
<span
class="emotion-euiScreenReaderOnly"
>
(opens in a new tab or window)
(external, opens in a new tab or window)
</span>
</a>
</div>

View file

@ -40,13 +40,12 @@ exports[`RequestTrialExtension component should display when enterprise license
<span
class="emotion-EuiExternalLinkIcon"
data-euiicon-type="popout"
>
External link
</span>
role="presentation"
/>
<span
class="emotion-euiScreenReaderOnly"
>
(opens in a new tab or window)
(external, opens in a new tab or window)
</span>
</a>
, request an extension now.
@ -116,13 +115,12 @@ exports[`RequestTrialExtension component should display when license is active a
<span
class="emotion-EuiExternalLinkIcon"
data-euiicon-type="popout"
>
External link
</span>
role="presentation"
/>
<span
class="emotion-euiScreenReaderOnly"
>
(opens in a new tab or window)
(external, opens in a new tab or window)
</span>
</a>
, request an extension now.
@ -192,13 +190,12 @@ exports[`RequestTrialExtension component should display when license is not acti
<span
class="emotion-EuiExternalLinkIcon"
data-euiicon-type="popout"
>
External link
</span>
role="presentation"
/>
<span
class="emotion-euiScreenReaderOnly"
>
(opens in a new tab or window)
(external, opens in a new tab or window)
</span>
</a>
, request an extension now.
@ -268,13 +265,12 @@ exports[`RequestTrialExtension component should display when platinum license is
<span
class="emotion-EuiExternalLinkIcon"
data-euiicon-type="popout"
>
External link
</span>
role="presentation"
/>
<span
class="emotion-euiScreenReaderOnly"
>
(opens in a new tab or window)
(external, opens in a new tab or window)
</span>
</a>
, request an extension now.

View file

@ -40,13 +40,12 @@ exports[`RevertToBasic component should display when license is about to expire
<span
class="emotion-EuiExternalLinkIcon"
data-euiicon-type="popout"
>
External link
</span>
role="presentation"
/>
<span
class="emotion-euiScreenReaderOnly"
>
(opens in a new tab or window)
(external, opens in a new tab or window)
</span>
</a>
.
@ -114,13 +113,12 @@ exports[`RevertToBasic component should display when license is expired 1`] = `
<span
class="emotion-EuiExternalLinkIcon"
data-euiicon-type="popout"
>
External link
</span>
role="presentation"
/>
<span
class="emotion-euiScreenReaderOnly"
>
(opens in a new tab or window)
(external, opens in a new tab or window)
</span>
</a>
.
@ -188,13 +186,12 @@ exports[`RevertToBasic component should display when trial is active 1`] = `
<span
class="emotion-EuiExternalLinkIcon"
data-euiicon-type="popout"
>
External link
</span>
role="presentation"
/>
<span
class="emotion-euiScreenReaderOnly"
>
(opens in a new tab or window)
(external, opens in a new tab or window)
</span>
</a>
.

View file

@ -40,13 +40,12 @@ exports[`StartTrial component when trial is allowed display for basic license 1`
<span
class="emotion-EuiExternalLinkIcon"
data-euiicon-type="popout"
>
External link
</span>
role="presentation"
/>
<span
class="emotion-euiScreenReaderOnly"
>
(opens in a new tab or window)
(external, opens in a new tab or window)
</span>
</a>
have to offer.
@ -114,13 +113,12 @@ exports[`StartTrial component when trial is allowed should display for expired e
<span
class="emotion-EuiExternalLinkIcon"
data-euiicon-type="popout"
>
External link
</span>
role="presentation"
/>
<span
class="emotion-euiScreenReaderOnly"
>
(opens in a new tab or window)
(external, opens in a new tab or window)
</span>
</a>
have to offer.
@ -188,13 +186,12 @@ exports[`StartTrial component when trial is allowed should display for expired p
<span
class="emotion-EuiExternalLinkIcon"
data-euiicon-type="popout"
>
External link
</span>
role="presentation"
/>
<span
class="emotion-euiScreenReaderOnly"
>
(opens in a new tab or window)
(external, opens in a new tab or window)
</span>
</a>
have to offer.
@ -262,13 +259,12 @@ exports[`StartTrial component when trial is allowed should display for gold lice
<span
class="emotion-EuiExternalLinkIcon"
data-euiicon-type="popout"
>
External link
</span>
role="presentation"
/>
<span
class="emotion-euiScreenReaderOnly"
>
(opens in a new tab or window)
(external, opens in a new tab or window)
</span>
</a>
have to offer.

View file

@ -89,13 +89,12 @@ Array [
<span
class="emotion-EuiExternalLinkIcon"
data-euiicon-type="popout"
>
External link
</span>
role="presentation"
/>
<span
class="emotion-euiScreenReaderOnly"
>
(opens in a new tab or window)
(external, opens in a new tab or window)
</span>
</a>
Go to
@ -109,13 +108,12 @@ Array [
<span
class="emotion-EuiExternalLinkIcon"
data-euiicon-type="popout"
>
External link
</span>
role="presentation"
/>
<span
class="emotion-euiScreenReaderOnly"
>
(opens in a new tab or window)
(external, opens in a new tab or window)
</span>
</a>
section for a deployment to configure monitoring. For more information visit
@ -129,13 +127,12 @@ Array [
<span
class="emotion-EuiExternalLinkIcon"
data-euiicon-type="popout"
>
External link
</span>
role="presentation"
/>
<span
class="emotion-euiScreenReaderOnly"
>
(opens in a new tab or window)
(external, opens in a new tab or window)
</span>
</a>
</p>

View file

@ -156,13 +156,12 @@ Array [
<span
class="emotion-EuiExternalLinkIcon"
data-euiicon-type="popout"
>
External link
</span>
role="presentation"
/>
<span
class="emotion-euiScreenReaderOnly"
>
(opens in a new tab or window)
(external, opens in a new tab or window)
</span>
</a>
Go to
@ -176,13 +175,12 @@ Array [
<span
class="emotion-EuiExternalLinkIcon"
data-euiicon-type="popout"
>
External link
</span>
role="presentation"
/>
<span
class="emotion-euiScreenReaderOnly"
>
(opens in a new tab or window)
(external, opens in a new tab or window)
</span>
</a>
section for a deployment to configure monitoring. For more information visit
@ -196,13 +194,12 @@ Array [
<span
class="emotion-EuiExternalLinkIcon"
data-euiicon-type="popout"
>
External link
</span>
role="presentation"
/>
<span
class="emotion-euiScreenReaderOnly"
>
(opens in a new tab or window)
(external, opens in a new tab or window)
</span>
</a>
</p>

View file

@ -12,8 +12,7 @@ import * as stories from './link_preview.stories';
const { Example } = composeStories(stories);
export const removeExternalLinkText = (str: string) =>
str.replace(/\(opens in a new tab or window\)/g, '');
export const removeExternalLinkText = (str: string) => str.replace(/\(external[^)]*\)/g, '');
describe('LinkPreview', () => {
const getElementValue = (container: HTMLElement, id: string) =>

View file

@ -43,13 +43,13 @@ journey('AlertingDefaults', async ({ page, params }) => {
await page.press('input[type="text"]', 'Tab');
});
step(
'Fill text=Webhook URLCreate a Slack Webhook URL(opens in a new tab or window) >> input[type="text"]',
'Fill text=Webhook URLCreate a Slack Webhook URL(external, opens in a new tab or window) >> input[type="text"]',
async () => {
if (await page.isVisible(byTestId('webhookButton'))) {
await page.click(byTestId('webhookButton'));
}
await page.fill(
'text=Webhook URLCreate a Slack Webhook URL(opens in a new tab or window) >> input[type="text"]',
'text=Webhook URLCreate a Slack Webhook URL(external, opens in a new tab or window) >> input[type="text"]',
'https://www.slack.com'
);
await page.click('button:has-text("Save")');
@ -74,10 +74,10 @@ journey('AlertingDefaults', async ({ page, params }) => {
await page.fill('input[type="password"]', 'changeme');
await page.click('button:has-text("Save")');
await page.click(
'text=Sender is required.Configure email accounts(opens in a new tab or window) >> input[type="text"]'
'text=Sender is required.Configure email accounts(external, opens in a new tab or window) >> input[type="text"]'
);
await page.fill(
'text=Sender is required.Configure email accounts(opens in a new tab or window) >> input[type="text"]',
'text=Sender is required.Configure email accounts(external, opens in a new tab or window) >> input[type="text"]',
'test@gmail.com'
);
await page.click('button:has-text("Save")');

View file

@ -36,7 +36,7 @@ journey(`DataRetentionPage`, async ({ page, params }) => {
await page.click(':nth-match(:text("365 days + rollover"), 2)');
await page.click(':nth-match(:text("365 days + rollover"), 3)');
await page.click(':nth-match(:text("365 days + rollover"), 4)');
await page.click('tbody div:has-text("synthetics(opens in a new tab or window)")');
await page.click('tbody div:has-text("synthetics(external, opens in a new tab or window)")');
});
step('validate data sizes', async () => {
@ -60,7 +60,7 @@ journey(`DataRetentionPage`, async ({ page, params }) => {
[page1] = await Promise.all([
page.waitForEvent('popup'),
page.click(
'tbody div:has-text("synthetics-synthetics.browser-default_policy(opens in a new tab or window)")'
'tbody div:has-text("synthetics-synthetics.browser-default_policy(external, opens in a new tab or window)")'
),
]);
recordVideo(page1, 'data_retention_policy_change');
@ -98,7 +98,7 @@ journey(`DataRetentionPage`, async ({ page, params }) => {
await page.reload();
await page.click('tbody div:has-text("synthetics(opens in a new tab or window)")');
await page.click('tbody div:has-text("synthetics(external, opens in a new tab or window)")');
await page1.close();
await assertText({ page, text: '10000 days + rollover' });

View file

@ -180,13 +180,12 @@ exports[`PingListExpandedRow renders link to docs if body is not recorded but it
<span
class="emotion-EuiExternalLinkIcon"
data-euiicon-type="popout"
>
External link
</span>
role="presentation"
/>
<span
class="emotion-euiScreenReaderOnly"
>
(opens in a new tab or window)
(external, opens in a new tab or window)
</span>
</a>
for more information on recording response bodies.

View file

@ -16,7 +16,7 @@ describe('PingListExpandedRow', () => {
expect(screen.getByText(/Body not recorded. Read our/));
expect(
screen.getByRole('link', { name: 'docs External link (opens in a new tab or window)' })
screen.getByRole('link', { name: 'docs (external, opens in a new tab or window)' })
).toBeInTheDocument();
expect(screen.getByText(/for more information on recording response bodies./));
});

View file

@ -67,13 +67,12 @@ Array [
<span
class="emotion-EuiExternalLinkIcon"
data-euiicon-type="popout"
>
External link
</span>
role="presentation"
/>
<span
class="emotion-euiScreenReaderOnly"
>
(opens in a new tab or window)
(external, opens in a new tab or window)
</span>
</a>
</dd>

View file

@ -1,5 +1,5 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`UnauthenticatedPage renders as expected 1`] = `"<html lang=\\"en\\"><head><title>Elastic</title><style></style><style data-emotion=\\"eui \\"></style></style><link href=\\"/bundles/kbn-ui-shared-deps-src/kbn-ui-shared-deps-src.css\\" rel=\\"stylesheet\\"/>MockedFonts<link rel=\\"alternate icon\\" type=\\"image/png\\" href=\\"/ui/favicons/favicon.png\\"/><link rel=\\"icon\\" type=\\"image/svg+xml\\" href=\\"/ui/favicons/favicon.svg\\"/><meta name=\\"theme-color\\" content=\\"#ffffff\\"/><meta name=\\"color-scheme\\" content=\\"light dark\\"/></head><body><div data-test-subj=\\"promptPage\\" style=\\"min-block-size:max(460px, 100vh);padding-block-start:var(--euiFixedHeadersOffset, 0)\\" class=\\"euiPageTemplate eui-cjgvy1-euiPageOuter-row-grow\\"><main id=\\"EuiPageTemplateInner_generated-id\\" class=\\"eui-nq554q-euiPageInner\\"><section class=\\"eui-j6zf49-euiPageSection-grow-l-center-transparent\\"><div class=\\"eui-1oc2fb7-euiPageSection__content-l-center\\"><div class=\\"euiPanel euiPanel--plain euiEmptyPrompt eui-1is22ji-euiPanel-m-plain-hasShadow-euiEmptyPrompt-vertical\\"><div class=\\"euiEmptyPrompt__main eui-1s4ogs-euiEmptyPrompt__main-vertical-l\\"><div class=\\"euiEmptyPrompt__icon eui-1ysd0i8-euiEmptyPrompt__icon-vertical\\"><span data-euiicon-type=\\"warning\\" color=\\"danger\\"></span></div><div class=\\"euiEmptyPrompt__content eui-1cebog9-euiEmptyPrompt__content-vertical\\"><h2 class=\\"euiTitle eui-smz32e-euiTitle-m\\">We hit an authentication error</h2><div class=\\"euiSpacer euiSpacer--m eui-jv9za2-euiSpacer-m\\"></div><div class=\\"euiText eui-k2mw53-euiText-m-euiTextColor-subdued\\"><p>Try logging in again, and if the problem persists, contact your system administrator.</p></div><div class=\\"euiSpacer euiSpacer--l eui-p2o3x6-euiSpacer-l\\"></div><div class=\\"euiFlexGroup euiEmptyPrompt__actions eui-1rkti4c-euiFlexGroup-m-center-center-column-euiEmptyPrompt__actions-vertical\\"><div class=\\"euiFlexItem eui-kpsrin-euiFlexItem-growZero\\"><a href=\\"/some/url?some-query=some-value#some-hash\\" rel=\\"noreferrer\\" class=\\"euiButton eui-1ew06m2-euiButtonDisplay-m-defaultMinWidth-fill-primary\\" data-test-subj=\\"logInButton\\"><span class=\\"eui-cf8eum-euiButtonDisplayContent\\">Log in</span></a></div></div></div></div></div></div></section></main></div></body></html>"`;
exports[`UnauthenticatedPage renders as expected 1`] = `"<html lang=\\"en\\"><head><title>Elastic</title><style></style><style data-emotion=\\"eui \\"></style></style><link href=\\"/bundles/kbn-ui-shared-deps-src/kbn-ui-shared-deps-src.css\\" rel=\\"stylesheet\\"/>MockedFonts<link rel=\\"alternate icon\\" type=\\"image/png\\" href=\\"/ui/favicons/favicon.png\\"/><link rel=\\"icon\\" type=\\"image/svg+xml\\" href=\\"/ui/favicons/favicon.svg\\"/><meta name=\\"theme-color\\" content=\\"#ffffff\\"/><meta name=\\"color-scheme\\" content=\\"light dark\\"/></head><body><div data-test-subj=\\"promptPage\\" style=\\"min-block-size:max(460px, 100vh);padding-block-start:var(--euiFixedHeadersOffset, 0)\\" class=\\"euiPageTemplate eui-cjgvy1-euiPageOuter-row-grow\\"><main id=\\"EuiPageTemplateInner_generated-id\\" class=\\"eui-nq554q-euiPageInner\\"><section class=\\"eui-j6zf49-euiPageSection-grow-l-center-transparent\\"><div class=\\"eui-1oc2fb7-euiPageSection__content-l-center\\"><div class=\\"euiPanel euiPanel--plain euiEmptyPrompt eui-1is22ji-euiPanel-m-plain-hasShadow-euiEmptyPrompt-vertical\\"><div class=\\"euiEmptyPrompt__main eui-1s4ogs-euiEmptyPrompt__main-vertical-l\\"><div class=\\"euiEmptyPrompt__icon eui-1ysd0i8-euiEmptyPrompt__icon-vertical\\"><span data-euiicon-type=\\"warning\\" color=\\"danger\\"></span></div><div class=\\"euiEmptyPrompt__content eui-1cebog9-euiEmptyPrompt__content-vertical\\"><h2 class=\\"euiTitle eui-smz32e-euiTitle-m\\">We hit an authentication error</h2><div class=\\"euiSpacer euiSpacer--m eui-jv9za2-euiSpacer-m\\"></div><div class=\\"euiText eui-k2mw53-euiText-m-euiTextColor-subdued\\"><p>Try logging in again, and if the problem persists, contact your system administrator.</p></div><div class=\\"euiSpacer euiSpacer--l eui-p2o3x6-euiSpacer-l\\"></div><div class=\\"euiFlexGroup euiEmptyPrompt__actions eui-1rkti4c-euiFlexGroup-m-center-center-column-euiEmptyPrompt__actions-vertical\\"><div class=\\"euiFlexItem eui-kpsrin-euiFlexItem-growZero\\"><a href=\\"/some/url?some-query=some-value#some-hash\\" rel=\\"noreferrer\\" class=\\"euiButton eui-4wl8yg-euiButtonDisplay-m-defaultMinWidth-fill-primary\\" data-test-subj=\\"logInButton\\"><span class=\\"eui-cf8eum-euiButtonDisplayContent\\">Log in</span></a></div></div></div></div></div></div></section></main></div></body></html>"`;
exports[`UnauthenticatedPage renders as expected with custom title 1`] = `"<html lang=\\"en\\"><head><title>My Company Name</title><style></style><style data-emotion=\\"eui \\"></style></style><link href=\\"/bundles/kbn-ui-shared-deps-src/kbn-ui-shared-deps-src.css\\" rel=\\"stylesheet\\"/>MockedFonts<link rel=\\"alternate icon\\" type=\\"image/png\\" href=\\"/ui/favicons/favicon.png\\"/><link rel=\\"icon\\" type=\\"image/svg+xml\\" href=\\"/ui/favicons/favicon.svg\\"/><meta name=\\"theme-color\\" content=\\"#ffffff\\"/><meta name=\\"color-scheme\\" content=\\"light dark\\"/></head><body><div data-test-subj=\\"promptPage\\" style=\\"min-block-size:max(460px, 100vh);padding-block-start:var(--euiFixedHeadersOffset, 0)\\" class=\\"euiPageTemplate eui-cjgvy1-euiPageOuter-row-grow\\"><main id=\\"EuiPageTemplateInner_generated-id\\" class=\\"eui-nq554q-euiPageInner\\"><section class=\\"eui-j6zf49-euiPageSection-grow-l-center-transparent\\"><div class=\\"eui-1oc2fb7-euiPageSection__content-l-center\\"><div class=\\"euiPanel euiPanel--plain euiEmptyPrompt eui-1is22ji-euiPanel-m-plain-hasShadow-euiEmptyPrompt-vertical\\"><div class=\\"euiEmptyPrompt__main eui-1s4ogs-euiEmptyPrompt__main-vertical-l\\"><div class=\\"euiEmptyPrompt__icon eui-1ysd0i8-euiEmptyPrompt__icon-vertical\\"><span data-euiicon-type=\\"warning\\" color=\\"danger\\"></span></div><div class=\\"euiEmptyPrompt__content eui-1cebog9-euiEmptyPrompt__content-vertical\\"><h2 class=\\"euiTitle eui-smz32e-euiTitle-m\\">We hit an authentication error</h2><div class=\\"euiSpacer euiSpacer--m eui-jv9za2-euiSpacer-m\\"></div><div class=\\"euiText eui-k2mw53-euiText-m-euiTextColor-subdued\\"><p>Try logging in again, and if the problem persists, contact your system administrator.</p></div><div class=\\"euiSpacer euiSpacer--l eui-p2o3x6-euiSpacer-l\\"></div><div class=\\"euiFlexGroup euiEmptyPrompt__actions eui-1rkti4c-euiFlexGroup-m-center-center-column-euiEmptyPrompt__actions-vertical\\"><div class=\\"euiFlexItem eui-kpsrin-euiFlexItem-growZero\\"><a href=\\"/some/url?some-query=some-value#some-hash\\" rel=\\"noreferrer\\" class=\\"euiButton eui-1ew06m2-euiButtonDisplay-m-defaultMinWidth-fill-primary\\" data-test-subj=\\"logInButton\\"><span class=\\"eui-cf8eum-euiButtonDisplayContent\\">Log in</span></a></div></div></div></div></div></div></section></main></div></body></html>"`;
exports[`UnauthenticatedPage renders as expected with custom title 1`] = `"<html lang=\\"en\\"><head><title>My Company Name</title><style></style><style data-emotion=\\"eui \\"></style></style><link href=\\"/bundles/kbn-ui-shared-deps-src/kbn-ui-shared-deps-src.css\\" rel=\\"stylesheet\\"/>MockedFonts<link rel=\\"alternate icon\\" type=\\"image/png\\" href=\\"/ui/favicons/favicon.png\\"/><link rel=\\"icon\\" type=\\"image/svg+xml\\" href=\\"/ui/favicons/favicon.svg\\"/><meta name=\\"theme-color\\" content=\\"#ffffff\\"/><meta name=\\"color-scheme\\" content=\\"light dark\\"/></head><body><div data-test-subj=\\"promptPage\\" style=\\"min-block-size:max(460px, 100vh);padding-block-start:var(--euiFixedHeadersOffset, 0)\\" class=\\"euiPageTemplate eui-cjgvy1-euiPageOuter-row-grow\\"><main id=\\"EuiPageTemplateInner_generated-id\\" class=\\"eui-nq554q-euiPageInner\\"><section class=\\"eui-j6zf49-euiPageSection-grow-l-center-transparent\\"><div class=\\"eui-1oc2fb7-euiPageSection__content-l-center\\"><div class=\\"euiPanel euiPanel--plain euiEmptyPrompt eui-1is22ji-euiPanel-m-plain-hasShadow-euiEmptyPrompt-vertical\\"><div class=\\"euiEmptyPrompt__main eui-1s4ogs-euiEmptyPrompt__main-vertical-l\\"><div class=\\"euiEmptyPrompt__icon eui-1ysd0i8-euiEmptyPrompt__icon-vertical\\"><span data-euiicon-type=\\"warning\\" color=\\"danger\\"></span></div><div class=\\"euiEmptyPrompt__content eui-1cebog9-euiEmptyPrompt__content-vertical\\"><h2 class=\\"euiTitle eui-smz32e-euiTitle-m\\">We hit an authentication error</h2><div class=\\"euiSpacer euiSpacer--m eui-jv9za2-euiSpacer-m\\"></div><div class=\\"euiText eui-k2mw53-euiText-m-euiTextColor-subdued\\"><p>Try logging in again, and if the problem persists, contact your system administrator.</p></div><div class=\\"euiSpacer euiSpacer--l eui-p2o3x6-euiSpacer-l\\"></div><div class=\\"euiFlexGroup euiEmptyPrompt__actions eui-1rkti4c-euiFlexGroup-m-center-center-column-euiEmptyPrompt__actions-vertical\\"><div class=\\"euiFlexItem eui-kpsrin-euiFlexItem-growZero\\"><a href=\\"/some/url?some-query=some-value#some-hash\\" rel=\\"noreferrer\\" class=\\"euiButton eui-4wl8yg-euiButtonDisplay-m-defaultMinWidth-fill-primary\\" data-test-subj=\\"logInButton\\"><span class=\\"eui-cf8eum-euiButtonDisplayContent\\">Log in</span></a></div></div></div></div></div></div></section></main></div></body></html>"`;

View file

@ -1,5 +1,5 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`ResetSessionPage renders as expected 1`] = `"<html lang=\\"en\\"><head><title>Elastic</title><style></style><style data-emotion=\\"eui \\"></style></style><link href=\\"/bundles/kbn-ui-shared-deps-src/kbn-ui-shared-deps-src.css\\" rel=\\"stylesheet\\"/>MockedFonts<link rel=\\"alternate icon\\" type=\\"image/png\\" href=\\"/ui/favicons/favicon.png\\"/><link rel=\\"icon\\" type=\\"image/svg+xml\\" href=\\"/ui/favicons/favicon.svg\\"/><script src=\\"/mock-basepath/internal/security/reset_session_page.js\\"></script><meta name=\\"theme-color\\" content=\\"#ffffff\\"/><meta name=\\"color-scheme\\" content=\\"light dark\\"/></head><body><div data-test-subj=\\"promptPage\\" style=\\"min-block-size:max(460px, 100vh);padding-block-start:var(--euiFixedHeadersOffset, 0)\\" class=\\"euiPageTemplate eui-cjgvy1-euiPageOuter-row-grow\\"><main id=\\"EuiPageTemplateInner_generated-id\\" class=\\"eui-nq554q-euiPageInner\\"><section class=\\"eui-j6zf49-euiPageSection-grow-l-center-transparent\\"><div class=\\"eui-1oc2fb7-euiPageSection__content-l-center\\"><div class=\\"euiPanel euiPanel--plain euiEmptyPrompt eui-1is22ji-euiPanel-m-plain-hasShadow-euiEmptyPrompt-vertical\\"><div class=\\"euiEmptyPrompt__main eui-1s4ogs-euiEmptyPrompt__main-vertical-l\\"><div class=\\"euiEmptyPrompt__icon eui-1ysd0i8-euiEmptyPrompt__icon-vertical\\"><span data-euiicon-type=\\"warning\\" color=\\"danger\\"></span></div><div class=\\"euiEmptyPrompt__content eui-1cebog9-euiEmptyPrompt__content-vertical\\"><h2 class=\\"euiTitle eui-smz32e-euiTitle-m\\">You do not have permission to access the requested page</h2><div class=\\"euiSpacer euiSpacer--m eui-jv9za2-euiSpacer-m\\"></div><div class=\\"euiText eui-k2mw53-euiText-m-euiTextColor-subdued\\"><p>Either go back to the previous page or log in as a different user.</p></div><div class=\\"euiSpacer euiSpacer--l eui-p2o3x6-euiSpacer-l\\"></div><div class=\\"euiFlexGroup euiEmptyPrompt__actions eui-1rkti4c-euiFlexGroup-m-center-center-column-euiEmptyPrompt__actions-vertical\\"><div class=\\"euiFlexItem eui-kpsrin-euiFlexItem-growZero\\"><a href=\\"/path/to/logout\\" rel=\\"noreferrer\\" class=\\"euiButton eui-1ew06m2-euiButtonDisplay-m-defaultMinWidth-fill-primary\\" data-test-subj=\\"ResetSessionButton\\"><span class=\\"eui-cf8eum-euiButtonDisplayContent\\">Log in as different user</span></a></div><div class=\\"euiFlexItem eui-kpsrin-euiFlexItem-growZero\\"><button class=\\"euiButtonEmpty eui-vdbxne-euiButtonDisplay-euiButtonEmpty-m-empty-primary\\" type=\\"button\\" id=\\"goBackButton\\"><span class=\\"euiButtonEmpty__content eui-cf8eum-euiButtonDisplayContent\\"><span class=\\"eui-textTruncate euiButtonEmpty__text\\">Go back</span></span></button></div></div></div></div></div></div></section></main></div></body></html>"`;
exports[`ResetSessionPage renders as expected 1`] = `"<html lang=\\"en\\"><head><title>Elastic</title><style></style><style data-emotion=\\"eui \\"></style></style><link href=\\"/bundles/kbn-ui-shared-deps-src/kbn-ui-shared-deps-src.css\\" rel=\\"stylesheet\\"/>MockedFonts<link rel=\\"alternate icon\\" type=\\"image/png\\" href=\\"/ui/favicons/favicon.png\\"/><link rel=\\"icon\\" type=\\"image/svg+xml\\" href=\\"/ui/favicons/favicon.svg\\"/><script src=\\"/mock-basepath/internal/security/reset_session_page.js\\"></script><meta name=\\"theme-color\\" content=\\"#ffffff\\"/><meta name=\\"color-scheme\\" content=\\"light dark\\"/></head><body><div data-test-subj=\\"promptPage\\" style=\\"min-block-size:max(460px, 100vh);padding-block-start:var(--euiFixedHeadersOffset, 0)\\" class=\\"euiPageTemplate eui-cjgvy1-euiPageOuter-row-grow\\"><main id=\\"EuiPageTemplateInner_generated-id\\" class=\\"eui-nq554q-euiPageInner\\"><section class=\\"eui-j6zf49-euiPageSection-grow-l-center-transparent\\"><div class=\\"eui-1oc2fb7-euiPageSection__content-l-center\\"><div class=\\"euiPanel euiPanel--plain euiEmptyPrompt eui-1is22ji-euiPanel-m-plain-hasShadow-euiEmptyPrompt-vertical\\"><div class=\\"euiEmptyPrompt__main eui-1s4ogs-euiEmptyPrompt__main-vertical-l\\"><div class=\\"euiEmptyPrompt__icon eui-1ysd0i8-euiEmptyPrompt__icon-vertical\\"><span data-euiicon-type=\\"warning\\" color=\\"danger\\"></span></div><div class=\\"euiEmptyPrompt__content eui-1cebog9-euiEmptyPrompt__content-vertical\\"><h2 class=\\"euiTitle eui-smz32e-euiTitle-m\\">You do not have permission to access the requested page</h2><div class=\\"euiSpacer euiSpacer--m eui-jv9za2-euiSpacer-m\\"></div><div class=\\"euiText eui-k2mw53-euiText-m-euiTextColor-subdued\\"><p>Either go back to the previous page or log in as a different user.</p></div><div class=\\"euiSpacer euiSpacer--l eui-p2o3x6-euiSpacer-l\\"></div><div class=\\"euiFlexGroup euiEmptyPrompt__actions eui-1rkti4c-euiFlexGroup-m-center-center-column-euiEmptyPrompt__actions-vertical\\"><div class=\\"euiFlexItem eui-kpsrin-euiFlexItem-growZero\\"><a href=\\"/path/to/logout\\" rel=\\"noreferrer\\" class=\\"euiButton eui-4wl8yg-euiButtonDisplay-m-defaultMinWidth-fill-primary\\" data-test-subj=\\"ResetSessionButton\\"><span class=\\"eui-cf8eum-euiButtonDisplayContent\\">Log in as different user</span></a></div><div class=\\"euiFlexItem eui-kpsrin-euiFlexItem-growZero\\"><button class=\\"euiButtonEmpty eui-7vyy05-euiButtonDisplay-euiButtonEmpty-m-empty-primary\\" type=\\"button\\" id=\\"goBackButton\\"><span class=\\"euiButtonEmpty__content eui-cf8eum-euiButtonDisplayContent\\"><span class=\\"eui-textTruncate euiButtonEmpty__text\\">Go back</span></span></button></div></div></div></div></div></div></section></main></div></body></html>"`;
exports[`ResetSessionPage renders as expected with custom page title 1`] = `"<html lang=\\"en\\"><head><title>My Company Name</title><style></style><style data-emotion=\\"eui \\"></style></style><link href=\\"/bundles/kbn-ui-shared-deps-src/kbn-ui-shared-deps-src.css\\" rel=\\"stylesheet\\"/>MockedFonts<link rel=\\"alternate icon\\" type=\\"image/png\\" href=\\"/ui/favicons/favicon.png\\"/><link rel=\\"icon\\" type=\\"image/svg+xml\\" href=\\"/ui/favicons/favicon.svg\\"/><script src=\\"/mock-basepath/internal/security/reset_session_page.js\\"></script><meta name=\\"theme-color\\" content=\\"#ffffff\\"/><meta name=\\"color-scheme\\" content=\\"light dark\\"/></head><body><div data-test-subj=\\"promptPage\\" style=\\"min-block-size:max(460px, 100vh);padding-block-start:var(--euiFixedHeadersOffset, 0)\\" class=\\"euiPageTemplate eui-cjgvy1-euiPageOuter-row-grow\\"><main id=\\"EuiPageTemplateInner_generated-id\\" class=\\"eui-nq554q-euiPageInner\\"><section class=\\"eui-j6zf49-euiPageSection-grow-l-center-transparent\\"><div class=\\"eui-1oc2fb7-euiPageSection__content-l-center\\"><div class=\\"euiPanel euiPanel--plain euiEmptyPrompt eui-1is22ji-euiPanel-m-plain-hasShadow-euiEmptyPrompt-vertical\\"><div class=\\"euiEmptyPrompt__main eui-1s4ogs-euiEmptyPrompt__main-vertical-l\\"><div class=\\"euiEmptyPrompt__icon eui-1ysd0i8-euiEmptyPrompt__icon-vertical\\"><span data-euiicon-type=\\"warning\\" color=\\"danger\\"></span></div><div class=\\"euiEmptyPrompt__content eui-1cebog9-euiEmptyPrompt__content-vertical\\"><h2 class=\\"euiTitle eui-smz32e-euiTitle-m\\">You do not have permission to access the requested page</h2><div class=\\"euiSpacer euiSpacer--m eui-jv9za2-euiSpacer-m\\"></div><div class=\\"euiText eui-k2mw53-euiText-m-euiTextColor-subdued\\"><p>Either go back to the previous page or log in as a different user.</p></div><div class=\\"euiSpacer euiSpacer--l eui-p2o3x6-euiSpacer-l\\"></div><div class=\\"euiFlexGroup euiEmptyPrompt__actions eui-1rkti4c-euiFlexGroup-m-center-center-column-euiEmptyPrompt__actions-vertical\\"><div class=\\"euiFlexItem eui-kpsrin-euiFlexItem-growZero\\"><a href=\\"/path/to/logout\\" rel=\\"noreferrer\\" class=\\"euiButton eui-1ew06m2-euiButtonDisplay-m-defaultMinWidth-fill-primary\\" data-test-subj=\\"ResetSessionButton\\"><span class=\\"eui-cf8eum-euiButtonDisplayContent\\">Log in as different user</span></a></div><div class=\\"euiFlexItem eui-kpsrin-euiFlexItem-growZero\\"><button class=\\"euiButtonEmpty eui-vdbxne-euiButtonDisplay-euiButtonEmpty-m-empty-primary\\" type=\\"button\\" id=\\"goBackButton\\"><span class=\\"euiButtonEmpty__content eui-cf8eum-euiButtonDisplayContent\\"><span class=\\"eui-textTruncate euiButtonEmpty__text\\">Go back</span></span></button></div></div></div></div></div></div></section></main></div></body></html>"`;
exports[`ResetSessionPage renders as expected with custom page title 1`] = `"<html lang=\\"en\\"><head><title>My Company Name</title><style></style><style data-emotion=\\"eui \\"></style></style><link href=\\"/bundles/kbn-ui-shared-deps-src/kbn-ui-shared-deps-src.css\\" rel=\\"stylesheet\\"/>MockedFonts<link rel=\\"alternate icon\\" type=\\"image/png\\" href=\\"/ui/favicons/favicon.png\\"/><link rel=\\"icon\\" type=\\"image/svg+xml\\" href=\\"/ui/favicons/favicon.svg\\"/><script src=\\"/mock-basepath/internal/security/reset_session_page.js\\"></script><meta name=\\"theme-color\\" content=\\"#ffffff\\"/><meta name=\\"color-scheme\\" content=\\"light dark\\"/></head><body><div data-test-subj=\\"promptPage\\" style=\\"min-block-size:max(460px, 100vh);padding-block-start:var(--euiFixedHeadersOffset, 0)\\" class=\\"euiPageTemplate eui-cjgvy1-euiPageOuter-row-grow\\"><main id=\\"EuiPageTemplateInner_generated-id\\" class=\\"eui-nq554q-euiPageInner\\"><section class=\\"eui-j6zf49-euiPageSection-grow-l-center-transparent\\"><div class=\\"eui-1oc2fb7-euiPageSection__content-l-center\\"><div class=\\"euiPanel euiPanel--plain euiEmptyPrompt eui-1is22ji-euiPanel-m-plain-hasShadow-euiEmptyPrompt-vertical\\"><div class=\\"euiEmptyPrompt__main eui-1s4ogs-euiEmptyPrompt__main-vertical-l\\"><div class=\\"euiEmptyPrompt__icon eui-1ysd0i8-euiEmptyPrompt__icon-vertical\\"><span data-euiicon-type=\\"warning\\" color=\\"danger\\"></span></div><div class=\\"euiEmptyPrompt__content eui-1cebog9-euiEmptyPrompt__content-vertical\\"><h2 class=\\"euiTitle eui-smz32e-euiTitle-m\\">You do not have permission to access the requested page</h2><div class=\\"euiSpacer euiSpacer--m eui-jv9za2-euiSpacer-m\\"></div><div class=\\"euiText eui-k2mw53-euiText-m-euiTextColor-subdued\\"><p>Either go back to the previous page or log in as a different user.</p></div><div class=\\"euiSpacer euiSpacer--l eui-p2o3x6-euiSpacer-l\\"></div><div class=\\"euiFlexGroup euiEmptyPrompt__actions eui-1rkti4c-euiFlexGroup-m-center-center-column-euiEmptyPrompt__actions-vertical\\"><div class=\\"euiFlexItem eui-kpsrin-euiFlexItem-growZero\\"><a href=\\"/path/to/logout\\" rel=\\"noreferrer\\" class=\\"euiButton eui-4wl8yg-euiButtonDisplay-m-defaultMinWidth-fill-primary\\" data-test-subj=\\"ResetSessionButton\\"><span class=\\"eui-cf8eum-euiButtonDisplayContent\\">Log in as different user</span></a></div><div class=\\"euiFlexItem eui-kpsrin-euiFlexItem-growZero\\"><button class=\\"euiButtonEmpty eui-7vyy05-euiButtonDisplay-euiButtonEmpty-m-empty-primary\\" type=\\"button\\" id=\\"goBackButton\\"><span class=\\"euiButtonEmpty__content eui-cf8eum-euiButtonDisplayContent\\"><span class=\\"eui-textTruncate euiButtonEmpty__text\\">Go back</span></span></button></div></div></div></div></div></div></section></main></div></body></html>"`;

View file

@ -17,7 +17,7 @@ import { useInvestigationGuide } from '../../shared/hooks/use_investigation_guid
jest.mock('../../shared/hooks/use_investigation_guide');
const NO_DATA_TEXT =
"There's no investigation guide for this rule. Edit the rule's settingsExternal link(opens in a new tab or window) to add one.";
"There's no investigation guide for this rule. Edit the rule's settings(external, opens in a new tab or window) to add one.";
const PREVIEW_MESSAGE = 'Investigation guide is not available in alert preview.';
const renderInvestigationGuide = (context: DocumentDetailsContext = mockContextValue) => (

View file

@ -59,7 +59,7 @@ jest.mock('../../../../common/lib/kibana', () => {
});
const NO_DATA_MESSAGE =
"There are no response actions defined for this event. To add some, edit the rule's settings and set up response actionsExternal link(opens in a new tab or window).";
"There are no response actions defined for this event. To add some, edit the rule's settings and set up response actions(external, opens in a new tab or window).";
const PREVIEW_MESSAGE = 'Response is not available in alert preview.';
const defaultContextValue = {

View file

@ -31,7 +31,7 @@ jest.mock('../../../../common/hooks/use_license');
jest.mock('../../../../sourcerer/containers');
const NO_DATA_MESSAGE =
'You can only view Linux session details if youve enabled the Include session data setting in your Elastic Defend integration policy. Refer to Enable Session View dataExternal link(opens in a new tab or window) for more information.';
'You can only view Linux session details if youve enabled the Include session data setting in your Elastic Defend integration policy. Refer to Enable Session View data(external, opens in a new tab or window) for more information.';
const UPSELL_TEXT = 'This feature requires an Enterprise subscription';

View file

@ -68,7 +68,7 @@ jest.mock('@kbn/kibana-react-plugin/public', () => {
});
const NO_ANALYZER_MESSAGE =
'You can only visualize events triggered by hosts configured with the Elastic Defend integration or any sysmon data from winlogbeat. Refer to Visual event analyzerExternal link(opens in a new tab or window) for more information.';
'You can only visualize events triggered by hosts configured with the Elastic Defend integration or any sysmon data from winlogbeat. Refer to Visual event analyzer(external, opens in a new tab or window) for more information.';
const renderAnalyzerPreview = (context = mockContextValue) =>
render(

View file

@ -40,7 +40,7 @@ jest.mock('@kbn/kibana-react-plugin/public', () => {
});
const NO_DATA_MESSAGE =
'You can only view Linux session details if youve enabled the Include session data setting in your Elastic Defend integration policy. Refer to Enable Session View dataExternal link(opens in a new tab or window) for more information.';
'You can only view Linux session details if youve enabled the Include session data setting in your Elastic Defend integration policy. Refer to Enable Session View data(external, opens in a new tab or window) for more information.';
const UPSELL_TEXT = 'This feature requires an Enterprise subscription';

View file

@ -13,7 +13,7 @@ import { SESSION_VIEW_UPSELL_TEST_ID, SESSION_VIEW_NO_DATA_TEST_ID } from './tes
import { SessionViewNoDataMessage } from './session_view_no_data_message';
const NO_DATA_MESSAGE =
'You can only view Linux session details if youve enabled the Include session data setting in your Elastic Defend integration policy. Refer to Enable Session View dataExternal link(opens in a new tab or window) for more information.';
'You can only view Linux session details if youve enabled the Include session data setting in your Elastic Defend integration policy. Refer to Enable Session View data(external, opens in a new tab or window) for more information.';
const UPSELL_TEXT = 'This feature requires an Enterprise subscription';

View file

@ -69,7 +69,7 @@ describe('When rendering the command list (help output)', () => {
expect(renderResult.getByTestId('test-commandList-helpfulTips')).toHaveTextContent(
'Helpful tips:You can enter consecutive response actions — no need to wait for previous ' +
'actions to complete.Leaving the response console does not terminate any actions that have ' +
'been submitted.Learn moreExternal link(opens in a new tab or window) about response actions ' +
'been submitted.Learn more(external, opens in a new tab or window) about response actions ' +
'and using the console.'
);

View file

@ -29,7 +29,7 @@ describe('Policy form RelatedDetectionRulesCallout component', () => {
expect(renderResult.getByTestId('test')).toHaveTextContent(
exactMatchText(
'The Endpoint Security detection rule is enabled automatically with Elastic Defend. This rule must remain enabled to receive Endpoint alerts. Learn MoreExternal link(opens in a new tab or window).'
'The Endpoint Security detection rule is enabled automatically with Elastic Defend. This rule must remain enabled to receive Endpoint alerts. Learn More(external, opens in a new tab or window).'
)
);
});

View file

@ -41,7 +41,7 @@ describe('Policy form SettingLockedCard component', () => {
'To turn on this protection, you must upgrade your license to Platinum, start a free 30-day ' +
'trial, or spin up a ' +
'cloud deployment' +
'External link(opens in a new tab or window) ' +
'(external, opens in a new tab or window) ' +
'on AWS, GCP, or Azure.Platinum'
)
);

View file

@ -276,13 +276,12 @@ exports[`Field Renderers #whoisRenderer it renders correctly against snapshot 1`
<span
class="emotion-EuiExternalLinkIcon"
data-euiicon-type="popout"
>
External link
</span>
role="presentation"
/>
<span
class="emotion-euiScreenReaderOnly"
>
(opens in a new tab or window)
(external, opens in a new tab or window)
</span>
</a>
</span>

View file

@ -1012,13 +1012,12 @@ tr:hover .c3:focus::before {
<span
class="emotion-EuiExternalLinkIcon"
data-euiicon-type="popout"
>
External link
</span>
role="presentation"
/>
<span
class="emotion-euiScreenReaderOnly"
>
(opens in a new tab or window)
(external, opens in a new tab or window)
</span>
</a>
</div>
@ -1755,13 +1754,12 @@ tr:hover .c3:focus::before {
<span
class="emotion-EuiExternalLinkIcon"
data-euiicon-type="popout"
>
External link
</span>
role="presentation"
/>
<span
class="emotion-euiScreenReaderOnly"
>
(opens in a new tab or window)
(external, opens in a new tab or window)
</span>
</a>
</div>
@ -2135,13 +2133,12 @@ tr:hover .c3:focus::before {
<span
class="emotion-EuiExternalLinkIcon"
data-euiicon-type="popout"
>
External link
</span>
role="presentation"
/>
<span
class="emotion-euiScreenReaderOnly"
>
(opens in a new tab or window)
(external, opens in a new tab or window)
</span>
</a>
</span>
@ -2221,13 +2218,12 @@ tr:hover .c3:focus::before {
<span
class="emotion-EuiExternalLinkIcon"
data-euiicon-type="popout"
>
External link
</span>
role="presentation"
/>
<span
class="emotion-euiScreenReaderOnly"
>
(opens in a new tab or window)
(external, opens in a new tab or window)
</span>
</a>
</span>
@ -2307,13 +2303,12 @@ tr:hover .c3:focus::before {
<span
class="emotion-EuiExternalLinkIcon"
data-euiicon-type="popout"
>
External link
</span>
role="presentation"
/>
<span
class="emotion-euiScreenReaderOnly"
>
(opens in a new tab or window)
(external, opens in a new tab or window)
</span>
</a>
</span>

View file

@ -1202,13 +1202,12 @@ tr:hover .c5:focus::before {
<span
class="emotion-EuiExternalLinkIcon"
data-euiicon-type="popout"
>
External link
</span>
role="presentation"
/>
<span
class="emotion-euiScreenReaderOnly"
>
(opens in a new tab or window)
(external, opens in a new tab or window)
</span>
</a>
</div>
@ -2106,13 +2105,12 @@ tr:hover .c5:focus::before {
<span
class="emotion-EuiExternalLinkIcon"
data-euiicon-type="popout"
>
External link
</span>
role="presentation"
/>
<span
class="emotion-euiScreenReaderOnly"
>
(opens in a new tab or window)
(external, opens in a new tab or window)
</span>
</a>
</div>
@ -2556,13 +2554,12 @@ tr:hover .c5:focus::before {
<span
class="emotion-EuiExternalLinkIcon"
data-euiicon-type="popout"
>
External link
</span>
role="presentation"
/>
<span
class="emotion-euiScreenReaderOnly"
>
(opens in a new tab or window)
(external, opens in a new tab or window)
</span>
</a>
</span>
@ -2652,13 +2649,12 @@ tr:hover .c5:focus::before {
<span
class="emotion-EuiExternalLinkIcon"
data-euiicon-type="popout"
>
External link
</span>
role="presentation"
/>
<span
class="emotion-euiScreenReaderOnly"
>
(opens in a new tab or window)
(external, opens in a new tab or window)
</span>
</a>
</span>
@ -2748,13 +2744,12 @@ tr:hover .c5:focus::before {
<span
class="emotion-EuiExternalLinkIcon"
data-euiicon-type="popout"
>
External link
</span>
role="presentation"
/>
<span
class="emotion-euiScreenReaderOnly"
>
(opens in a new tab or window)
(external, opens in a new tab or window)
</span>
</a>
</span>

View file

@ -46,6 +46,9 @@ const defaultProps: CustomTimelineDataGridBodyProps = {
enabledRowRenderers: [],
setCustomGridBodyProps: jest.fn(),
visibleColumns: mockVisibleColumns,
headerRow: <></>,
footerRow: null,
gridWidth: 0,
};
const renderTestComponents = (props?: CustomTimelineDataGridBodyProps) => {

View file

@ -42,8 +42,17 @@ const DEFAULT_UDT_ROW_HEIGHT = 34;
* */
export const CustomTimelineDataGridBody: FC<CustomTimelineDataGridBodyProps> = memo(
function CustomTimelineDataGridBody(props) {
const { Cell, visibleColumns, visibleRowData, rows, rowHeight, enabledRowRenderers, refetch } =
props;
const {
Cell,
headerRow,
footerRow,
visibleColumns,
visibleRowData,
rows,
rowHeight,
enabledRowRenderers,
refetch,
} = props;
const visibleRows = useMemo(
() => (rows ?? []).slice(visibleRowData.startRow, visibleRowData.endRow),
@ -52,6 +61,7 @@ export const CustomTimelineDataGridBody: FC<CustomTimelineDataGridBodyProps> = m
return (
<>
{headerRow}
{visibleRows.map((row, rowIndex) => {
return (
<CustomDataGridSingleRow
@ -66,6 +76,7 @@ export const CustomTimelineDataGridBody: FC<CustomTimelineDataGridBodyProps> = m
/>
);
})}
{footerRow}
</>
);
}

View file

@ -331,15 +331,21 @@ export const TimelineDataTableComponent: React.FC<DataTableProps> = memo(
visibleRowData,
visibleColumns,
setCustomGridBodyProps,
gridWidth,
headerRow,
footerRow,
}: EuiDataGridCustomBodyProps) => (
<CustomTimelineDataGridBody
rows={tableRows}
Cell={Cell}
visibleColumns={visibleColumns}
visibleRowData={visibleRowData}
headerRow={headerRow}
footerRow={footerRow}
setCustomGridBodyProps={setCustomGridBodyProps}
enabledRowRenderers={enabledRowRenderers}
rowHeight={rowHeight}
gridWidth={gridWidth}
refetch={refetch}
/>
),

View file

@ -720,7 +720,6 @@
"core.euiDisplaySelector.rowHeightLabel": "Hauteur de la ligne",
"core.euiDualRange.sliderScreenReaderInstructions": "Vous êtes dans un curseur de plage personnalisé. Utilisez les flèches vers le haut et vers le bas pour modifier la valeur minimale. Appuyez sur Tabulation pour interagir avec la valeur maximale.",
"core.euiErrorBoundary.error": "Erreur",
"core.euiExternalLinkIcon.ariaLabel": "Lien externe",
"core.euiExternalLinkIcon.newTarget.screenReaderOnlyText": "(souvre dans un nouvel onglet ou une nouvelle fenêtre)",
"core.euiFieldPassword.maskPassword": "Masquer le mot de passe",
"core.euiFieldPassword.showPassword": "Afficher le mot de passe en texte brut. Remarque : votre mot de passe sera visible à l'écran.",

View file

@ -721,7 +721,6 @@
"core.euiDisplaySelector.rowHeightLabel": "行高さ",
"core.euiDualRange.sliderScreenReaderInstructions": "カスタム範囲スライダーを操作しています。上下矢印キーを使用すると、最小値を変更できます。Tabを押すと、最大値を操作できます。",
"core.euiErrorBoundary.error": "エラー",
"core.euiExternalLinkIcon.ariaLabel": "外部リンク",
"core.euiExternalLinkIcon.newTarget.screenReaderOnlyText": "(新しいタブまたはウィンドウで開く)",
"core.euiFieldPassword.maskPassword": "パスワードをマスク",
"core.euiFieldPassword.showPassword": "プレーンテキストとしてパスワードを表示します。注記:パスワードは画面上に見えるように表示されます。",

View file

@ -720,7 +720,6 @@
"core.euiDisplaySelector.rowHeightLabel": "行高",
"core.euiDualRange.sliderScreenReaderInstructions": "您正使用定制范围滑块。使用向上和向下箭头键可更改最小值。按 Tab 键与最大值进行交互。",
"core.euiErrorBoundary.error": "错误",
"core.euiExternalLinkIcon.ariaLabel": "外部链接",
"core.euiExternalLinkIcon.newTarget.screenReaderOnlyText": "(在新选项卡或窗口中打开)",
"core.euiFieldPassword.maskPassword": "屏蔽密码",
"core.euiFieldPassword.showPassword": "将密码显示为纯文本。注意:这会将您的密码暴露在屏幕上。",

View file

@ -115,11 +115,11 @@ describe('health check', () => {
const [action] = queryAllByText(/Learn more/i);
expect(description.textContent).toMatchInlineSnapshot(
`"You must enable API keys to use Alerting. Learn more.External link(opens in a new tab or window)"`
`"You must enable API keys to use Alerting. Learn more.(external, opens in a new tab or window)"`
);
expect(action.textContent).toMatchInlineSnapshot(
`"Learn more.External link(opens in a new tab or window)"`
`"Learn more.(external, opens in a new tab or window)"`
);
expect(action.getAttribute('href')).toMatchInlineSnapshot(
@ -153,12 +153,12 @@ describe('health check', () => {
const description = queryByRole(/banner/i);
expect(description!.textContent).toMatchInlineSnapshot(
`"You must configure an encryption key to use Alerting. Learn more.External link(opens in a new tab or window)"`
`"You must configure an encryption key to use Alerting. Learn more.(external, opens in a new tab or window)"`
);
const action = queryByText(/Learn/i);
expect(action!.textContent).toMatchInlineSnapshot(
`"Learn more.External link(opens in a new tab or window)"`
`"Learn more.(external, opens in a new tab or window)"`
);
expect(action!.getAttribute('href')).toMatchInlineSnapshot(
`"https://www.elastic.co/guide/en/kibana/mocked-test-branch/alert-action-settings-kb.html#general-alert-action-settings"`
@ -193,12 +193,12 @@ describe('health check', () => {
const description = queryByText(/You must enable/i);
expect(description!.textContent).toMatchInlineSnapshot(
`"You must enable API keys and configure an encryption key to use Alerting. Learn more.External link(opens in a new tab or window)"`
`"You must enable API keys and configure an encryption key to use Alerting. Learn more.(external, opens in a new tab or window)"`
);
const action = queryByText(/Learn/i);
expect(action!.textContent).toMatchInlineSnapshot(
`"Learn more.External link(opens in a new tab or window)"`
`"Learn more.(external, opens in a new tab or window)"`
);
expect(action!.getAttribute('href')).toMatchInlineSnapshot(
`"https://www.elastic.co/guide/en/kibana/mocked-test-branch/alerting-setup.html#alerting-prerequisites"`

View file

@ -683,17 +683,21 @@ const AlertsTable: React.FunctionComponent<AlertsTableProps> = memo((props: Aler
}, [props.gridStyle, mergedGridStyle]);
const renderCustomGridBody = useCallback<NonNullable<EuiDataGridProps['renderCustomGridBody']>>(
({ visibleColumns: _visibleColumns, Cell }) => (
<CustomGridBody
visibleColumns={_visibleColumns}
Cell={Cell}
actualGridStyle={actualGridStyle}
alertsData={oldAlertsData}
pageIndex={pageIndex}
pageSize={pageSize}
isLoading={isLoading}
stripes={props.gridStyle?.stripes}
/>
({ visibleColumns: _visibleColumns, Cell, headerRow, footerRow }) => (
<>
{headerRow}
<CustomGridBody
visibleColumns={_visibleColumns}
Cell={Cell}
actualGridStyle={actualGridStyle}
alertsData={oldAlertsData}
pageIndex={pageIndex}
pageSize={pageSize}
isLoading={isLoading}
stripes={props.gridStyle?.stripes}
/>
{footerRow}
</>
),
[actualGridStyle, oldAlertsData, pageIndex, pageSize, isLoading, props.gridStyle?.stripes]
);

View file

@ -45,7 +45,7 @@ describe(
cy.get(DOCUMENT_DETAILS_FLYOUT_RESPONSE_EMPTY).and(
'contain.text',
"There are no response actions defined for this event. To add some, edit the rule's settings and set up response actions(opens in a new tab or window)."
"There are no response actions defined for this event. To add some, edit the rule's settings and set up response actions(external, opens in a new tab or window)."
);
});
}

View file

@ -163,7 +163,7 @@ describe(
cy.get(DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_SESSION_PREVIEW_CONTAINER).should(
'contain.text',
'You can only view Linux session details if youve enabled the Include session data setting in your Elastic Defend integration policy. Refer to Enable Session View data(opens in a new tab or window) for more information.'
'You can only view Linux session details if youve enabled the Include session data setting in your Elastic Defend integration policy. Refer to Enable Session View data(external, opens in a new tab or window) for more information.'
);
cy.log('analyzer graph preview');

View file

@ -72,7 +72,9 @@ describe('Timeline notes tab', { tags: ['@ess', '@serverless'] }, () => {
it('should be able to render a link', () => {
addNotesToTimeline(`[${author}](${link})`);
cy.get(NOTES_LINK).last().should('have.text', `${author}(opens in a new tab or window)`);
cy.get(NOTES_LINK)
.last()
.should('have.text', `${author}(external, opens in a new tab or window)`);
cy.get(NOTES_LINK).last().click();
});

View file

@ -138,8 +138,7 @@ export const TIMELINE_FIELD = (field: string) => {
return `[data-test-subj="formatted-field-${field}"]`;
};
export const removeExternalLinkText = (str: string) =>
str.replace(/\(opens in a new tab or window\)/g, '');
export const removeExternalLinkText = (str: string) => str.replace(/\(external[^)]*\)/g, '');
export const DEFINE_RULE_PANEL_PROGRESS =
'[data-test-subj="defineRule"] [data-test-subj="stepPanelProgress"]';

View file

@ -1753,10 +1753,10 @@
resolved "https://registry.yarnpkg.com/@elastic/eslint-plugin-eui/-/eslint-plugin-eui-0.0.2.tgz#56b9ef03984a05cc213772ae3713ea8ef47b0314"
integrity sha512-IoxURM5zraoQ7C8f+mJb9HYSENiZGgRVcG4tLQxE61yHNNRDXtGDWTZh8N1KIHcsqN1CEPETjuzBXkJYF/fDiQ==
"@elastic/eui@96.1.0":
version "96.1.0"
resolved "https://registry.yarnpkg.com/@elastic/eui/-/eui-96.1.0.tgz#cd75f2a7a2ca07df6fb8f9af985dff3f05172fb6"
integrity sha512-LmB92xr704Dfth9UnxCOm4b63lghb/7svXsnd0zcbSQA/BPqktUm1evZjWYIWFIek5D4JI4dmM+ygXLWdKSM+Q==
"@elastic/eui@97.0.0":
version "97.0.0"
resolved "https://registry.yarnpkg.com/@elastic/eui/-/eui-97.0.0.tgz#b7828b8818de1328e47b4c47024d8455a5795f23"
integrity sha512-ha7oer/0ou0MnZMgwZzqKE97tx/IPhQtb04nNLZvwOiBAH+ANtUqohYSM/3VxLuJT13cxbsLC2CLT0Ktcibo4w==
dependencies:
"@hello-pangea/dnd" "^16.6.0"
"@types/lodash" "^4.14.202"