"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.useAlertDataView = useAlertDataView; var _public = require("@kbn/kibana-react-plugin/public"); var _common = require("@kbn/rule-registry-plugin/common"); var _useAsync = _interopRequireDefault(require("react-use/lib/useAsync")); var _react = require("react"); /* * 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. */ function useAlertDataView(featureIds) { const { http } = (0, _public.useKibana)().services; const features = featureIds.sort().join(','); const indexNames = (0, _useAsync.default)(async () => { const { index_name: indexNamesStr } = await http.get(`${_common.BASE_RAC_ALERTS_API_PATH}/index`, { query: { features } }); return indexNamesStr; }, [features]); const fields = (0, _useAsync.default)(async () => { const { fields: alertFields } = await http.get(`${_common.BASE_RAC_ALERTS_API_PATH}/browser_fields`, { query: { featureIds } }); return alertFields; }, [features]); const dataview = (0, _react.useMemo)(() => { var _indexNames$value, _ref, _fields$value; return !fields.loading && !indexNames.loading && fields.error === undefined && indexNames.error === undefined ? [{ title: ((_indexNames$value = indexNames.value) !== null && _indexNames$value !== void 0 ? _indexNames$value : []).join(','), fieldFormatMap: {}, fields: (_ref = (_fields$value = fields.value) !== null && _fields$value !== void 0 ? _fields$value : []) === null || _ref === void 0 ? void 0 : _ref.map(field => { return { ...field, ...(field.esTypes && field.esTypes.includes('flattened') ? { type: 'string' } : {}) }; }) }] : undefined; }, [fields, indexNames]); return { value: dataview, loading: fields.loading || indexNames.loading, error: fields.error ? fields.error : indexNames.error }; }