"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.getPopoverButtonStyles = exports.createUnmanagedDatasetsItem = exports.createIntegrationStatusItem = exports.createAllLogDatasetsItem = exports.buildIntegrationsTree = void 0; var _react = _interopRequireDefault(require("react")); var _eui = require("@elastic/eui"); var _public = require("@kbn/fleet-plugin/public"); var _datasets = require("../../../common/datasets"); var _constants = require("./constants"); var _dynamic = require("../../utils/dynamic"); function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } const IntegrationsListStatus = (0, _dynamic.dynamic)(() => Promise.resolve().then(() => _interopRequireWildcard(require('./sub_components/integrations_list_status')))); const getPopoverButtonStyles = ({ fullWidth }) => ({ maxWidth: fullWidth ? undefined : _constants.DATA_VIEW_POPOVER_CONTENT_WIDTH }); exports.getPopoverButtonStyles = getPopoverButtonStyles; /** * The `EuiContextMenu` component receives a list of panels, * each one with a pointer id which is used as a reference for the items to know * what panel they refer to. * This helper function, starting from a list of integrations, * generate the necessary item entries for each integration, * and also create a related panel that render the list of data streams for the integration. */ const buildIntegrationsTree = ({ integrations, onDatasetSelected, spyRef }) => { return integrations.reduce((integrationsTree, integration, pos) => { const { name, title, version, datasets, icons } = integration; const isLastIntegration = pos === integrations.length - 1; integrationsTree.items.push({ name: title, icon: /*#__PURE__*/_react.default.createElement(_public.PackageIcon, { packageName: name, version: version, size: "m", icons: icons, tryApi: true }), 'data-test-subj': integration.id, panel: integration.id, ...(isLastIntegration && { buttonRef: spyRef }) }); integrationsTree.panels.push({ id: integration.id, title, width: _constants.DATA_VIEW_POPOVER_CONTENT_WIDTH, items: datasets.map(dataset => ({ name: dataset.title, onClick: () => onDatasetSelected(dataset) })) }); return integrationsTree; }, { items: [], panels: [] }); }; exports.buildIntegrationsTree = buildIntegrationsTree; const createAllLogDatasetsItem = ({ onClick }) => { const allLogDataset = _datasets.Dataset.createAllLogsDataset(); return { name: allLogDataset.title, 'data-test-subj': 'allLogDatasets', icon: allLogDataset.iconType && /*#__PURE__*/_react.default.createElement(_eui.EuiIcon, { type: allLogDataset.iconType }), onClick }; }; exports.createAllLogDatasetsItem = createAllLogDatasetsItem; const createUnmanagedDatasetsItem = ({ onClick }) => { return { name: _constants.uncategorizedLabel, 'data-test-subj': 'unmanagedDatasets', icon: /*#__PURE__*/_react.default.createElement(_eui.EuiIcon, { type: "documents" }), onClick, panel: _constants.UNMANAGED_STREAMS_PANEL_ID }; }; exports.createUnmanagedDatasetsItem = createUnmanagedDatasetsItem; const createIntegrationStatusItem = props => { return { disabled: true, name: /*#__PURE__*/_react.default.createElement(IntegrationsListStatus, props), 'data-test-subj': 'integrationStatusItem' }; }; exports.createIntegrationStatusItem = createIntegrationStatusItem;