import type { ToolbarConfig, ToolbarOption } from './richTextTypes'

export const tableTools: ToolbarConfig = [
	'mergeCells',
	'splitCells',
	'addRowBefore',
	'addRowAfter',
	'deleteRow',
	'insertColumnLeft',
	'insertColumnRight',
	'deleteColumn',
	'tableAlignLeft',
	'tableAlignCenter',
	'tableAlignRight',
	'tableAlignJustify',
	'deleteTable'
]

export const basicToolbarConfig: ToolbarConfig = [
	'h1',
	'h2',
	'h3',
	'h4',
	'h5',
	'h6',
	'separator',
	'p',
	'blockquote',
	'orderedList',
	'unorderedList',
	'separator',
	'bold',
	'italic',
	'underline',
	'separator',
	'alignMenu',
	'ltrDirection',
	'rtlDirection',
	'separator',
	'insertTable',
	'separator',
	'link',
	'image',
	'video',
	'embed',
	'clear',
	'separator',
	'undo',
	'redo',
	'separator',
	'splitView',
	'fullScreen',
]

export const fullToolbarConfig: ToolbarConfig = [
	'h1',
	'h2',
	'h3',
	'h4',
	'h5',
	'h6',
	'separator',
	'bold',
	'italic',
	'underline',
	'separator',
	'fontColor',
	'bgColor',
	'separator',
	'p',
	'blockquote',
	'orderedList',
	'unorderedList',
	'indent',
	'outdent',
	'separator',
	'link',
	'image',
	'video',
	'embed',
	'separator',
	'splitView',
	'clear',
	'insertTable',
	...tableTools,
	'separator',
	'undo',
	'redo',
	'fullScreen',
]

export const toolbarOptions: ToolbarOption[] = [
	{ name: 'headingsMenu', label: 'Headings', icon: 'title' },
	{ name: 'mediaMenu', label: 'Media', icon: 'perm_media' },
	{ name: 'alignMenu', label: 'Alignment', icon: 'format_align_left' },
	{ name: 'h1', label: 'Heading 1', icon: 'format_h1' },
	{ name: 'h2', label: 'Heading 2', icon: 'format_h2' },
	{ name: 'h3', label: 'Heading 3', icon: 'format_h3' },
	{ name: 'h4', label: 'Heading 4', icon: 'format_h4' },
	{ name: 'h5', label: 'Heading 5', icon: 'format_h5' },
	{ name: 'h6', label: 'Heading 6', icon: 'format_h6' },
	{ name: 'p', label: 'Paragraph', icon: 'format_paragraph' },
	{ name: 'blockquote', label: 'Blockquote', icon: 'format_quote' },
	{ name: 'bold', label: 'Bold', icon: 'format_bold' },
	{ name: 'italic', label: 'Italic', icon: 'format_italic' },
	{ name: 'underline', label: 'Underline', icon: 'format_underlined' },
	{ name: 'orderedList', label: 'Ordered List', icon: 'format_list_numbered' },
	{ name: 'unorderedList', label: 'Unordered List', icon: 'format_list_bulleted' },
	{ name: 'link', label: 'Link', icon: 'add_link' },
	{ name: 'image', label: 'Image', icon: 'add_photo_alternate' },
	{ name: 'video', label: 'Video', icon: 'play_circle' },
	{ name: 'embed', label: 'Embed', icon: 'media_link' },
	{ name: 'splitView', label: 'Split View', icon: 'code' },
	{ name: 'clear', label: 'Clear Formatting', icon: 'format_clear' },
	{ name: 'alignLeft', label: 'Align Left', icon: 'format_align_left' },
	{ name: 'alignCenter', label: 'Align Center', icon: 'format_align_center' },
	{ name: 'alignRight', label: 'Align Right', icon: 'format_align_right' },
	{ name: 'alignJustify', label: 'Align Justify', icon: 'format_align_justify' },
	{ name: 'tableAlignLeft', label: 'Table Align Left', icon: 'format_align_left' },
	{ name: 'tableAlignCenter', label: 'Table Align Center', icon: 'format_align_center' },
	{ name: 'tableAlignRight', label: 'Table Align Right', icon: 'format_align_right' },
	{ name: 'tableAlignJustify', label: 'Table Align Justify', icon: 'format_align_justify' },
	{ name: 'indent', label: 'Indent', icon: 'format_indent_increase' },
	{ name: 'outdent', label: 'Outdent', icon: 'format_indent_decrease' },
	{ name: 'fontColor', label: 'Font Color', icon: 'format_color_text' },
	{ name: 'bgColor', label: 'Background Color', icon: 'format_color_fill' },
	{ name: 'insertTable', label: 'Insert Table', icon: 'table' },
	{ name: 'deleteTable', label: 'Delete Table', icon: 'delete_sweep' },
	{ name: 'mergeCells', label: 'Merge Cells', icon: 'table_chart' },
	{ name: 'splitCells', label: 'Split Cells', icon: 'dashboard' },
	{ name: 'addRowBefore', label: 'Insert Row Above', icon: 'add_box' },
	{ name: 'addRowAfter', label: 'Insert Row Below', icon: 'vertical_align_bottom' },
	{ name: 'deleteRow', label: 'Delete Row', icon: 'remove' },
	{ name: 'insertColumnLeft', label: 'Insert Column Left', icon: 'format_indent_decrease' },
	{ name: 'insertColumnRight', label: 'Insert Column Right', icon: 'format_indent_increase' },
	{ name: 'deleteColumn', label: 'Delete Column', icon: 'view_week' },
	{ name: 'separator' },
	{ name: 'undo', label: 'Undo', icon: 'undo' },
	{ name: 'redo', label: 'Redo', icon: 'redo' },
	{ name: 'separator' },
	{ name: 'fullScreen', label: 'Full Screen', icon: 'fullscreen', class: 'ms-auto' },
	{ name: 'textDirection', label: 'Text Direction (RTL/LTR)', icon: 'format_textdirection_r_to_l' },
	{ name: 'ltrDirection', label: 'Left to Right', icon: 'format_textdirection_l_to_r' },
	{ name: 'rtlDirection', label: 'Right to Left', icon: 'format_textdirection_r_to_l' },
]
