CoolFace
Datasetpublic

gradio/frontend

sourceHugging Faceupdated 23h agoView on Hugging Face
1likes442kdownloads
menu_utils.ts116 linesDownload Raw Back to utils
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 
gradio/frontend · CoolFace