+ );
+ }
+ export default SkillTree;
\ No newline at end of file
diff --git a/frontend/src/components/shared/ui/switch.tsx b/frontend/src/components/shared/ui/switch.tsx
new file mode 100644
index 0000000..2b2486f
--- /dev/null
+++ b/frontend/src/components/shared/ui/switch.tsx
@@ -0,0 +1,29 @@
+"use client"
+
+import * as React from "react"
+import * as SwitchPrimitives from "@radix-ui/react-switch"
+
+import { cn } from "../../../../lib/utils"
+
+const Switch = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef
+>(({ className, ...props }, ref) => (
+
+
+
+))
+Switch.displayName = SwitchPrimitives.Root.displayName
+
+export { Switch }
diff --git a/frontend/src/i18n.ts b/frontend/src/i18n.ts
index 5e2d873..f763b52 100644
--- a/frontend/src/i18n.ts
+++ b/frontend/src/i18n.ts
@@ -43,7 +43,8 @@ i18n
download: "Скачать",
descDownload: "Скачать XLS таблицу",
open: "Открыть",
-
+ createEvent: "Создать ивент",
+
}
},
@@ -80,7 +81,7 @@ i18n
download: "Download",
descDownload: "Download the XLS table",
open: "Open",
-
+ createEvent: "Сreate Event",
}
},
zh: {
@@ -115,6 +116,8 @@ i18n
download: "下载",
descDownload: "下载XLS表",
open: "打开",
+ createEvent: "创建一个事件",
+
}
},
}
diff --git a/frontend/src/orgchart.d.ts b/frontend/src/orgchart.d.ts
new file mode 100644
index 0000000..cf70fec
--- /dev/null
+++ b/frontend/src/orgchart.d.ts
@@ -0,0 +1,2704 @@
+
+
+declare class OrgChart extends OrgChartBase {
+ nodes: { [key in any]: OrgChart.node };
+ isVisible: boolean;
+ visibleNodeIds: Array;
+
+ /**
+ * @param element HTML element or string selector for example '#tree'
+ * @param options configuration options
+ */
+ constructor(element: HTMLElement | string, options?: OrgChart.options);
+
+
+ /**
+ * Updates the node data
+ * @param newData node data
+ */
+ update(newData: object): OrgChart;
+
+ /**
+ * Removes specified node from nodes collection
+ * @param id identification number of the node
+ */
+ remove(id: string | number): OrgChart;
+ /**
+ * Adds new node to the nodes collection
+ * @param data node data
+ */
+ add(data: object): OrgChart;
+ /**
+ * Gets node data.
+ * @param id identification number of the node
+ */
+ get(id: string | number): OrgChart.node;
+ /**
+ * If specified node has assistant/s or partner/s as children will return false.
+ * @param id identification number of the node
+ */
+ canRemove(id: string | number): boolean;
+ /**
+ * Expands specified nodes.
+ * @param id the id of the node that will not move during the animation
+ * @param ids node ids that will be expanded
+ * @param callback called after the animation completes
+ */
+ expand(id: string | number, ids: Array, callback?: () => void): void;
+ /**
+ * Collapses specified nodes.
+ * @param id the id of the node that will not move
+ * @param ids node ids that will be collapsed
+ * @param callback called after the animation completes
+ */
+ collapse(id: string | number, ids: Array, callback?: () => void): void;
+ /**
+ * Expand/Collapse lists of nodes.
+ * @param id the id of the node that will not move
+ * @param expandIds expand all nodes with ids
+ * @param collapseIds collpase all nodes with ids
+ * @param callback called after the animation completes
+ */
+ expandCollapse(id: string | number, expandIds: Array, collapseIds: Array, callback?: () => void): void;
+ /**
+ * Changes roots order.
+ * @param id id of a node that will not change is position, can be null
+ * @param roots roots id array in the required order
+ * @param callback called after the roots are changed and animation completes
+ */
+ changeRoots(id: string | number, roots: Array, callback?: () => void): void;
+ /**
+ * Maximize the node. Without parameters maximize all nodes.
+ * @param id the id of the node, if id is null, undefined ot empty string will maximize all nodes
+ * @param horizontalCenter center horizontally
+ * @param verticalCenter center vertically
+ * @param callback called when the animation completes
+ */
+ maximize(id?: string | number, horizontalCenter?: boolean, verticalCenter?: boolean, callback?: () => void): void;
+ /**
+ * Minimize the node. Without parameters minimize all nodes.
+ * @param id the id of the node, if id is null, undefined ot empty string will minimize all nodes
+ * @param callback called when the animation completes
+ */
+ minimize(id?: string | number, callback?: () => void): void;
+ /**
+ * Load nodes data.
+ * @param data node data array
+ * @param callback function called after the load
+ */
+ load(data: Array