highlighter_factory.js 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.highlighter = highlighter;
  4. exports.update = update;
  5. exports.addEvents = addEvents;
  6. const chtml_highlighter_js_1 = require("./chtml_highlighter.js");
  7. const color_picker_js_1 = require("./color_picker.js");
  8. const css_highlighter_js_1 = require("./css_highlighter.js");
  9. const html_highlighter_js_1 = require("./html_highlighter.js");
  10. const mml_css_highlighter_js_1 = require("./mml_css_highlighter.js");
  11. const mml_highlighter_js_1 = require("./mml_highlighter.js");
  12. const svg_highlighter_js_1 = require("./svg_highlighter.js");
  13. const svg_v3_highlighter_js_1 = require("./svg_v3_highlighter.js");
  14. function highlighter(back, fore, rendererInfo) {
  15. const colorPicker = new color_picker_js_1.ColorPicker(back, fore);
  16. const renderer = rendererInfo.renderer === 'NativeMML' && rendererInfo.browser === 'Safari'
  17. ? 'MML-CSS'
  18. : rendererInfo.renderer === 'SVG' && rendererInfo.browser === 'v3'
  19. ? 'SVG-V3'
  20. : rendererInfo.renderer;
  21. const highlighter = new (highlighterMapping[renderer] ||
  22. highlighterMapping['NativeMML'])();
  23. highlighter.setColor(colorPicker);
  24. return highlighter;
  25. }
  26. function update(back, fore, highlighter) {
  27. const colorPicker = new color_picker_js_1.ColorPicker(back, fore);
  28. highlighter.setColor(colorPicker);
  29. }
  30. function addEvents(node, events, rendererInfo) {
  31. const highlight = highlighterMapping[rendererInfo.renderer];
  32. if (highlight) {
  33. new highlight().addEvents(node, events);
  34. }
  35. }
  36. const highlighterMapping = {
  37. SVG: svg_highlighter_js_1.SvgHighlighter,
  38. 'SVG-V3': svg_v3_highlighter_js_1.SvgV3Highlighter,
  39. NativeMML: mml_highlighter_js_1.MmlHighlighter,
  40. 'HTML-CSS': html_highlighter_js_1.HtmlHighlighter,
  41. 'MML-CSS': mml_css_highlighter_js_1.MmlCssHighlighter,
  42. CommonHTML: css_highlighter_js_1.CssHighlighter,
  43. CHTML: chtml_highlighter_js_1.ChtmlHighlighter
  44. };