+ {values.map((item, index) => (
+
+
+
+ {index === 0 ? (
+
+ <>{getSelectTactic(item.tactic.name, index, isDisabled)}>
+
+ ) : (
+ getSelectTactic(item.tactic.name, index, isDisabled)
+ )}
+
+
+ {index === 0 ? (
+
+ <>{getSelectTechniques(item, index, isDisabled)}>
+
+ ) : (
+ getSelectTechniques(item, index, isDisabled)
+ )}
+
+
+ {values.length - 1 !== index && }
+
+ ))}
+
+ {i18n.ADD_MITRE_ATTACK}
+
+
);
};
diff --git a/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/components/mitre/translations.ts b/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/components/mitre/translations.ts
index 22ee6cc3ef911..dd4c55c1503ec 100644
--- a/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/components/mitre/translations.ts
+++ b/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/components/mitre/translations.ts
@@ -7,13 +7,13 @@
import { i18n } from '@kbn/i18n';
export const TACTIC = i18n.translate('xpack.siem.detectionEngine.mitreAttack.tacticsDescription', {
- defaultMessage: 'Tactic',
+ defaultMessage: 'tactic',
});
-export const TECHNIQUES = i18n.translate(
+export const TECHNIQUE = i18n.translate(
'xpack.siem.detectionEngine.mitreAttack.techniquesDescription',
{
- defaultMessage: 'Techniques',
+ defaultMessage: 'technique',
}
);
diff --git a/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/components/pick_timeline/index.tsx b/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/components/pick_timeline/index.tsx
new file mode 100644
index 0000000000000..873e0c2184c61
--- /dev/null
+++ b/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/components/pick_timeline/index.tsx
@@ -0,0 +1,74 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License;
+ * you may not use this file except in compliance with the Elastic License.
+ */
+
+import { EuiFormRow } from '@elastic/eui';
+import React, { useCallback, useEffect, useState } from 'react';
+
+import { SearchTimelineSuperSelect } from '../../../../../components/timeline/search_super_select';
+import { FieldHook, getFieldValidityAndErrorMessage } from '../shared_imports';
+
+export interface FieldValueTimeline {
+ id: string | null;
+ title: string | null;
+}
+
+interface QueryBarDefineRuleProps {
+ dataTestSubj: string;
+ field: FieldHook;
+ idAria: string;
+ isDisabled: boolean;
+}
+
+export const PickTimeline = ({
+ dataTestSubj,
+ field,
+ idAria,
+ isDisabled = false,
+}: QueryBarDefineRuleProps) => {
+ const [timelineId, setTimelineId] = useState