import Quill from "quill";
interface TooltipOptions {
tooltips?: { [key: string]: string };
}
class TooltipModule {
private quill: Quill;
private options: TooltipOptions;
constructor(quill: Quill, options: TooltipOptions = {}) {
this.quill = quill;
this.options = options;
// Set default tooltips if not provided
if (!this.options.tooltips) {
this.options.tooltips = {
bold: 'Bold',
italic: 'Italic',
underline: 'Underline',
header: 'Header',
list: 'List',
align: 'Align',
link: 'Link',
image: 'Image',
video: 'Video',
clean: 'Remove Formatting',
};
}
this.addToolTips();
}
addToolTips() {
const toolbarButtons = this.quill.container.querySelectorAll('.ql-toolbar button, .ql-toolbar .ql-picker');
toolbarButtons.forEach((button) => {
const buttonClass = button.classList[0];
const buttonName = buttonClass.replace('ql-', '');
const tooltipText = this.options.tooltips[buttonName] || buttonName.charAt(0).toUpperCase() + buttonName.slice(1);
button.setAttribute('title', tooltipText);
});
}
}
// Register the TooltipModule
Quill.register('modules/tooltipModule', TooltipModule);
'✘✘✘ Javascript > Quill' 카테고리의 다른 글
[quill] setContents does not work on image attributes? (0) | 2023.05.06 |
---|---|
[Quill] innerHTML = content 사용 시 생기는 문제점 (0) | 2023.05.04 |
[Quill] Quill.prototype.focus(): 스크롤 최상단 초기화 (0) | 2023.04.14 |
[Quill] link에 https protocol Sanitization (http/https 붙이기) (0) | 2023.04.05 |
댓글