+
+
+
+
+
+
+ {{ option.name }}
+
+
+
+
diff --git a/client/src/components/Form/Elements/FormDrilldown/utilities.test.js b/client/src/components/Form/Elements/FormDrilldown/utilities.test.js
new file mode 100644
index 00000000000..e7851d8db81
--- /dev/null
+++ b/client/src/components/Form/Elements/FormDrilldown/utilities.test.js
@@ -0,0 +1,66 @@
+import { getAllValues } from "./utilities";
+
+describe("drilldown component utilities", () => {
+ it("get all values", () => {
+ const options = [
+ {
+ value: "a",
+ options: [
+ {
+ value: "aa",
+ options: [],
+ },
+ {
+ value: "ab",
+ options: [
+ {
+ value: "aba",
+ options: [
+ {
+ value: "abaa",
+ options: [],
+ },
+ ],
+ },
+ {
+ value: "abb",
+ options: [
+ {
+ value: "abba",
+ options: [],
+ },
+ ],
+ },
+ ],
+ },
+ ],
+ },
+ {
+ value: "b",
+ options: [
+ {
+ value: "ba",
+ options: [],
+ },
+ {
+ value: "bb",
+ options: [
+ {
+ value: "bba",
+ options: [
+ {
+ value: "bbaa",
+ options: [],
+ },
+ ],
+ },
+ ],
+ },
+ ],
+ },
+ ];
+ expect(String(getAllValues(options))).toBe(
+ String(["a", "b", "ba", "bb", "bba", "bbaa", "aa", "ab", "aba", "abb", "abba", "abaa"])
+ );
+ });
+});
diff --git a/client/src/components/Form/Elements/FormDrilldown/utilities.ts b/client/src/components/Form/Elements/FormDrilldown/utilities.ts
new file mode 100644
index 00000000000..887f6375cdc
--- /dev/null
+++ b/client/src/components/Form/Elements/FormDrilldown/utilities.ts
@@ -0,0 +1,29 @@
+export interface Option {
+ name: string;
+ value: string;
+ options: Array