gradio/frontend
1442k
1export function toggle_header_menu(2 event: MouseEvent,3 col: number,4 active_header_menu: { col: number; x: number; y: number } | null,5 set_active_header_menu: (6 menu: { col: number; x: number; y: number } | null7 ) => void8): void {9 event.stopPropagation();10 if (active_header_menu && active_header_menu.col === col) {11 set_active_header_menu(null);12 } else {13 const header = (event.target as HTMLElement).closest("th");14 if (header) {15 const rect = header.getBoundingClientRect();16 set_active_header_menu({ col, x: rect.right, y: rect.bottom });17 }18 }19}20 21export function toggle_cell_menu(22 event: MouseEvent,23 row: number,24 col: number,25 active_cell_menu: { row: number; col: number; x: number; y: number } | null,26 set_active_cell_menu: (27 menu: { row: number; col: number; x: number; y: number } | null28 ) => void29): void {30 event.stopPropagation();31 if (32 active_cell_menu &&33 active_cell_menu.row === row &&34 active_cell_menu.col === col35 ) {36 set_active_cell_menu(null);37 } else {38 const cell = (event.target as HTMLElement).closest("td");39 if (cell) {40 const rect = cell.getBoundingClientRect();41 set_active_cell_menu({ row, col, x: rect.right, y: rect.bottom });42 }43 }44}45 46export function add_row_at(47 index: number,48 position: "above" | "below",49 add_row: (index?: number) => void,50 clear_menus: () => void51): void {52 const row_index = position === "above" ? index : index + 1;53 add_row(row_index);54 clear_menus();55}56 57export function add_col_at(58 index: number,59 position: "left" | "right",60 add_col: (index?: number) => void,61 clear_menus: () => void62): void {63 const col_index = position === "left" ? index : index + 1;64 add_col(col_index);65 clear_menus();66}67 68export function delete_row_at(69 index: number,70 delete_row: (index: number) => void,71 clear_menus: () => void72): void {73 delete_row(index);74 clear_menus();75}76 77export function delete_col_at(78 index: number,79 delete_col: (index: number) => void,80 clear_menus: () => void81): void {82 delete_col(index);83 clear_menus();84}85 86export function toggle_header_button(87 col: number,88 active_button: { type: "header" | "cell"; row?: number; col: number } | null,89 set_active_button: (90 button: { type: "header" | "cell"; row?: number; col: number } | null91 ) => void92): void {93 set_active_button(94 active_button?.type === "header" && active_button.col === col95 ? null96 : { type: "header", col }97 );98}99 100export function toggle_cell_button(101 row: number,102 col: number,103 active_button: { type: "header" | "cell"; row?: number; col: number } | null,104 set_active_button: (105 button: { type: "header" | "cell"; row?: number; col: number } | null106 ) => void107): void {108 set_active_button(109 active_button?.type === "cell" &&110 active_button.row === row &&111 active_button.col === col112 ? null113 : { type: "cell", row, col }114 );115}116 