diff --git a/client/src/components/Form/Elements/FormDrilldown/FormDrilldown.vue b/client/src/components/Form/Elements/FormDrilldown/FormDrilldown.vue new file mode 100644 index 00000000000..3bedbf123be --- /dev/null +++ b/client/src/components/Form/Elements/FormDrilldown/FormDrilldown.vue @@ -0,0 +1,96 @@ + + + diff --git a/client/src/components/Form/Elements/FormDrilldown/FormDrilldownList.vue b/client/src/components/Form/Elements/FormDrilldown/FormDrilldownList.vue new file mode 100644 index 00000000000..1607b2bad52 --- /dev/null +++ b/client/src/components/Form/Elements/FormDrilldown/FormDrilldownList.vue @@ -0,0 +1,23 @@ + + + diff --git a/client/src/components/Form/Elements/FormDrilldown/FormDrilldownOption.vue b/client/src/components/Form/Elements/FormDrilldown/FormDrilldownOption.vue new file mode 100644 index 00000000000..16bbcd0571b --- /dev/null +++ b/client/src/components/Form/Elements/FormDrilldown/FormDrilldownOption.vue @@ -0,0 +1,72 @@ + + + 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