/* * Copyright OpenSearch Contributors * SPDX-License-Identifier: Apache-2.0 */ import React from 'react'; import { i18n } from '@osd/i18n'; import { EuiIconType } from '@elastic/eui'; import { toMountPoint } from '../../../../../src/plugins/opensearch_dashboards_react/public'; import { Action } from '../../../../../src/plugins/ui_actions/public'; import { createADAction } from '../../action/ad_dashboard_action'; import AnywhereParentFlyout from '../../components/FeatureAnywhereContextMenu/AnywhereParentFlyout'; import { Provider } from 'react-redux'; import configureStore from '../../redux/configureStore'; import DocumentationTitle from '../../components/FeatureAnywhereContextMenu/DocumentationTitle/containers/DocumentationTitle'; import { AD_FEATURE_ANYWHERE_LINK, ANOMALY_DETECTION_ICON } from '../constants'; import { getClient, getOverlays } from '../../../public/services'; import { FLYOUT_MODES } from '../../../public/components/FeatureAnywhereContextMenu/AnywhereParentFlyout/constants'; // This is used to create all actions in the same context menu const grouping: Action['grouping'] = [ { id: 'ad-dashboard-context-menu', getDisplayName: () => 'Anomaly Detection', getIconType: () => ANOMALY_DETECTION_ICON, category: 'vis_augmenter', order: 20, }, ]; export const getActions = () => { const getOnClick = (startingFlyout) => async ({ embeddable }) => { const overlayService = getOverlays(); const openFlyout = overlayService.openFlyout; const store = configureStore(getClient()); const overlay = openFlyout( toMountPoint( overlay.close()} /> ), { size: 'm', className: 'context-menu__flyout' } ); }; return [ { grouping, id: 'createAnomalyDetector', title: i18n.translate( 'dashboard.actions.adMenuItem.createAnomalyDetector.displayName', { defaultMessage: 'Add anomaly detector', } ), icon: 'plusInCircle' as EuiIconType, order: 100, onClick: getOnClick(FLYOUT_MODES.create), }, { grouping, id: 'associatedAnomalyDetector', title: i18n.translate( 'dashboard.actions.adMenuItem.associatedAnomalyDetector.displayName', { defaultMessage: 'Associated detectors', } ), icon: 'kqlSelector' as EuiIconType, order: 99, onClick: getOnClick(FLYOUT_MODES.associated), }, { id: 'documentationAnomalyDetector', title: , icon: 'documentation' as EuiIconType, order: 98, onClick: () => { window.open(AD_FEATURE_ANYWHERE_LINK, '_blank'); }, }, ].map((options) => createADAction({ ...options, grouping })); };