123456789101112131415161718192021222324252627282930313233343536373839 |
- import { ChtmlHighlighter } from './chtml_highlighter.js';
- import { ColorPicker } from './color_picker.js';
- import { CssHighlighter } from './css_highlighter.js';
- import { HtmlHighlighter } from './html_highlighter.js';
- import { MmlCssHighlighter } from './mml_css_highlighter.js';
- import { MmlHighlighter } from './mml_highlighter.js';
- import { SvgHighlighter } from './svg_highlighter.js';
- import { SvgV3Highlighter } from './svg_v3_highlighter.js';
- export function highlighter(back, fore, rendererInfo) {
- const colorPicker = new ColorPicker(back, fore);
- const renderer = rendererInfo.renderer === 'NativeMML' && rendererInfo.browser === 'Safari'
- ? 'MML-CSS'
- : rendererInfo.renderer === 'SVG' && rendererInfo.browser === 'v3'
- ? 'SVG-V3'
- : rendererInfo.renderer;
- const highlighter = new (highlighterMapping[renderer] ||
- highlighterMapping['NativeMML'])();
- highlighter.setColor(colorPicker);
- return highlighter;
- }
- export function update(back, fore, highlighter) {
- const colorPicker = new ColorPicker(back, fore);
- highlighter.setColor(colorPicker);
- }
- export function addEvents(node, events, rendererInfo) {
- const highlight = highlighterMapping[rendererInfo.renderer];
- if (highlight) {
- new highlight().addEvents(node, events);
- }
- }
- const highlighterMapping = {
- SVG: SvgHighlighter,
- 'SVG-V3': SvgV3Highlighter,
- NativeMML: MmlHighlighter,
- 'HTML-CSS': HtmlHighlighter,
- 'MML-CSS': MmlCssHighlighter,
- CommonHTML: CssHighlighter,
- CHTML: ChtmlHighlighter
- };
|