"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useBulkActions = void 0; var _react = _interopRequireWildcard(require("react")); var _use_delete_action = require("../actions/delete/use_delete_action"); var _use_severity_action = require("../actions/severity/use_severity_action"); var _use_status_action = require("../actions/status/use_status_action"); var _edit_tags_flyout = require("../actions/tags/edit_tags_flyout"); var _use_tags_action = require("../actions/tags/use_tags_action"); var _confirm_delete_case = require("../confirm_delete_case"); var _use_assignees_action = require("../actions/assignees/use_assignees_action"); var _edit_assignees_flyout = require("../actions/assignees/edit_assignees_flyout"); var i18n = _interopRequireWildcard(require("./translations")); 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; } /* * 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 useBulkActions = ({ selectedCases, onAction, onActionSuccess }) => { const isDisabled = selectedCases.length === 0; const deleteAction = (0, _use_delete_action.useDeleteAction)({ isDisabled, onAction, onActionSuccess }); const statusAction = (0, _use_status_action.useStatusAction)({ isDisabled, onAction, onActionSuccess }); const severityAction = (0, _use_severity_action.useSeverityAction)({ isDisabled, onAction, onActionSuccess }); const tagsAction = (0, _use_tags_action.useTagsAction)({ isDisabled, onAction, onActionSuccess }); const assigneesAction = (0, _use_assignees_action.useAssigneesAction)({ isDisabled: false, onAction, onActionSuccess }); const canDelete = deleteAction.canDelete; const canUpdate = statusAction.canUpdateStatus; const panels = (0, _react.useMemo)(() => { const mainPanelItems = []; const panelsToBuild = [{ id: 0, items: mainPanelItems, title: i18n.ACTIONS }]; if (canUpdate) { mainPanelItems.push({ name: i18n.STATUS, panel: 1, disabled: isDisabled, 'data-test-subj': 'case-bulk-action-status', key: 'case-bulk-action-status' }); mainPanelItems.push({ name: i18n.SEVERITY, panel: 2, disabled: isDisabled, 'data-test-subj': 'case-bulk-action-severity', key: 'case-bulk-action-severity' }); } /** * A separator is added if a) there is one item above * and b) there is an item below. For this to happen the * user has to have delete and update permissions */ if (canUpdate && canDelete) { mainPanelItems.push({ isSeparator: true, key: 'bulk-actions-separator', 'data-test-subj': 'bulk-actions-separator' }); } if (canUpdate) { mainPanelItems.push(tagsAction.getAction(selectedCases)); mainPanelItems.push(assigneesAction.getAction(selectedCases)); } if (canDelete) { mainPanelItems.push(deleteAction.getAction(selectedCases)); } if (canUpdate) { panelsToBuild.push({ id: 1, title: i18n.STATUS, items: statusAction.getActions(selectedCases) }); panelsToBuild.push({ id: 2, title: i18n.SEVERITY, items: severityAction.getActions(selectedCases) }); } return panelsToBuild; }, [canDelete, canUpdate, deleteAction, isDisabled, selectedCases, severityAction, statusAction, tagsAction, assigneesAction]); return { modals: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, deleteAction.isModalVisible ? /*#__PURE__*/_react.default.createElement(_confirm_delete_case.ConfirmDeleteCaseModal, { totalCasesToBeDeleted: selectedCases.length, onCancel: deleteAction.onCloseModal, onConfirm: deleteAction.onConfirmDeletion }) : null), flyouts: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, tagsAction.isFlyoutOpen ? /*#__PURE__*/_react.default.createElement(_edit_tags_flyout.EditTagsFlyout, { onClose: tagsAction.onFlyoutClosed, selectedCases: selectedCases, onSaveTags: tagsAction.onSaveTags }) : null, assigneesAction.isFlyoutOpen ? /*#__PURE__*/_react.default.createElement(_edit_assignees_flyout.EditAssigneesFlyout, { onClose: assigneesAction.onFlyoutClosed, selectedCases: selectedCases, onSaveAssignees: assigneesAction.onSaveAssignees }) : null), panels }; }; exports.useBulkActions = useBulkActions;