"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = exports.AssetDetails = void 0; var _react = _interopRequireDefault(require("react")); var _eui = require("@elastic/eui"); var _useEffectOnce = _interopRequireDefault(require("react-use/lib/useEffectOnce")); var _content = require("./content/content"); var _header = require("./header/header"); var _use_tab_switcher = require("./hooks/use_tab_switcher"); var _use_asset_details_state = require("./hooks/use_asset_details_state"); var _use_kibana = require("../../hooks/use_kibana"); var _constants = require("./constants"); /* * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one * or more contributor license agreements. Licensed under the Elastic License * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ const ContentTemplate = ({ header, body, renderMode }) => { const { assetType } = (0, _use_asset_details_state.useAssetDetailsStateContext)(); const { initialActiveTabId } = (0, _use_tab_switcher.useTabSwitcherContext)(); const { services: { telemetry } } = (0, _use_kibana.useKibanaContextForPlugin)(); (0, _useEffectOnce.default)(() => { telemetry.reportAssetDetailsFlyoutViewed({ componentName: _constants.ASSET_DETAILS_FLYOUT_COMPONENT_NAME, assetType, tabId: initialActiveTabId }); }); return renderMode.mode === 'flyout' ? /*#__PURE__*/_react.default.createElement(_eui.EuiFlyout, { onClose: renderMode.closeFlyout, ownFocus: false, "data-component-name": _constants.ASSET_DETAILS_FLYOUT_COMPONENT_NAME, "data-asset-type": assetType }, /*#__PURE__*/_react.default.createElement(_eui.EuiFlyoutHeader, { hasBorder: true }, header), /*#__PURE__*/_react.default.createElement(_eui.EuiFlyoutBody, null, body)) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, header, body); }; const AssetDetails = ({ asset, dateRange, activeTabId, overrides, onTabsStateChange, tabs = [], links = [], assetType = 'host', renderMode = { mode: 'page' } }) => { return /*#__PURE__*/_react.default.createElement(_use_asset_details_state.AssetDetailsStateProvider, { state: { asset, assetType, overrides, onTabsStateChange, dateRange, renderMode } }, /*#__PURE__*/_react.default.createElement(_use_tab_switcher.TabSwitcherProvider, { initialActiveTabId: tabs.length > 0 ? activeTabId !== null && activeTabId !== void 0 ? activeTabId : tabs[0].id : undefined }, /*#__PURE__*/_react.default.createElement(ContentTemplate, { header: /*#__PURE__*/_react.default.createElement(_header.Header, { compact: renderMode.mode === 'flyout', tabs: tabs, links: links }), body: /*#__PURE__*/_react.default.createElement(_content.Content, null), renderMode: renderMode }))); }; // Allow for lazy loading // eslint-disable-next-line import/no-default-export exports.AssetDetails = AssetDetails; var _default = AssetDetails; exports.default = _default;