@revideo/2d 0.10.4 → 0.10.5-alpha.1129

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"Latex.d.ts","sourceRoot":"","sources":["../../src/lib/components/Latex.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAE,YAAY,EAAC,MAAM,eAAe,CAAC;AAQ7D,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,8BAA8B,CAAC;AAE7D,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,OAAO,CAAC;AACpC,OAAO,EAAC,GAAG,EAAC,MAAM,OAAO,CAAC;AAY1B,MAAM,WAAW,UAAW,SAAQ,QAAQ;IAC1C,GAAG,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC1B,WAAW,CAAC,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;CACvC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,KAAM,SAAQ,GAAG;IAC5B,OAAO,CAAC,MAAM,CAAC,eAAe,CAA8B;IAE5D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAiC;IAE9D,SAEwB,OAAO,EAAE,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAEhE,SACwB,GAAG,EAAE,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBAErC,KAAK,EAAE,UAAU;cAIjB,KAAK,IAAI,gBAAgB;CA8C7C"}
1
+ {"version":3,"file":"Latex.d.ts","sourceRoot":"","sources":["../../src/lib/components/Latex.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAE,YAAY,EAAC,MAAM,eAAe,CAAC;AAU7D,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,8BAA8B,CAAC;AAE7D,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,OAAO,CAAC;AACpC,OAAO,EAAC,GAAG,EAAC,MAAM,OAAO,CAAC;AAE1B,MAAM,WAAW,UAAW,SAAQ,QAAQ;IAC1C,GAAG,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC1B,WAAW,CAAC,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;CACvC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,KAAM,SAAQ,GAAG;IAC5B,OAAO,CAAC,MAAM,CAAC,eAAe,CAA8B;IAC5D,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAS;IAC1C,OAAO,CAAC,MAAM,CAAC,OAAO,CAAc;IACpC,OAAO,CAAC,MAAM,CAAC,WAAW,CAA0C;IAEpE,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAehC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAiC;IAE9D,SAEwB,OAAO,EAAE,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAEhE,SACwB,GAAG,EAAE,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBAErC,KAAK,EAAE,UAAU;cAKjB,KAAK,IAAI,gBAAgB;CAgD7C"}
@@ -13,14 +13,6 @@ import { mathjax } from 'mathjax-full/js/mathjax';
13
13
  import { SVG } from 'mathjax-full/js/output/svg';
14
14
  import { initial, signal } from '../decorators';
15
15
  import { Img } from './Img';
16
- const Adaptor = liteAdaptor();
17
- RegisterHTMLHandler(Adaptor);
18
- const JaxDocument = mathjax.document('', {
19
- // eslint-disable-next-line @typescript-eslint/naming-convention
20
- InputJax: new TeX({ packages: AllPackages }),
21
- // eslint-disable-next-line @typescript-eslint/naming-convention
22
- OutputJax: new SVG({ fontCache: 'local' }),
23
- });
24
16
  /**
25
17
  * A node for rendering equations with LaTeX.
26
18
  *
@@ -40,9 +32,24 @@ const JaxDocument = mathjax.document('', {
40
32
  * ```
41
33
  */
42
34
  export class Latex extends Img {
35
+ static initializeMathJax() {
36
+ if (this.mathJaxInitialized) {
37
+ return;
38
+ }
39
+ this.adaptor = liteAdaptor();
40
+ RegisterHTMLHandler(this.adaptor);
41
+ this.jaxDocument = mathjax.document('', {
42
+ // eslint-disable-next-line @typescript-eslint/naming-convention
43
+ InputJax: new TeX({ packages: AllPackages }),
44
+ // eslint-disable-next-line @typescript-eslint/naming-convention
45
+ OutputJax: new SVG({ fontCache: 'local' }),
46
+ });
47
+ this.mathJaxInitialized = true;
48
+ }
43
49
  constructor(props) {
44
50
  super({ ...props, src: null });
45
51
  this.imageElement = document.createElement('img');
52
+ Latex.initializeMathJax();
46
53
  }
47
54
  image() {
48
55
  // Render props may change the look of the TeX, so we need to cache both
@@ -60,7 +67,7 @@ export class Latex extends Img {
60
67
  }
61
68
  // Convert to TeX, look for any errors
62
69
  const tex = this.tex();
63
- const svg = Adaptor.innerHTML(JaxDocument.convert(tex, this.options()));
70
+ const svg = Latex.adaptor.innerHTML(Latex.jaxDocument.convert(tex, this.options()));
64
71
  if (svg.includes('data-mjx-error')) {
65
72
  const errors = svg.match(/data-mjx-error="(.*?)"/);
66
73
  if (errors && errors.length > 0) {
@@ -83,6 +90,7 @@ export class Latex extends Img {
83
90
  }
84
91
  }
85
92
  Latex.svgContentsPool = {};
93
+ Latex.mathJaxInitialized = false;
86
94
  __decorate([
87
95
  initial({}),
88
96
  signal()
@@ -90,4 +98,4 @@ __decorate([
90
98
  __decorate([
91
99
  signal()
92
100
  ], Latex.prototype, "tex", void 0);
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGF0ZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvTGF0ZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsT0FBTyxFQUFDLGlCQUFpQixFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDakUsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzlDLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUNsRSxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDaEQsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBRS9DLE9BQU8sRUFBQyxPQUFPLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTlDLE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxPQUFPLENBQUM7QUFFMUIsTUFBTSxPQUFPLEdBQUcsV0FBVyxFQUFFLENBQUM7QUFDOUIsbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUM7QUFFN0IsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUU7SUFDdkMsZ0VBQWdFO0lBQ2hFLFFBQVEsRUFBRSxJQUFJLEdBQUcsQ0FBQyxFQUFDLFFBQVEsRUFBRSxXQUFXLEVBQUMsQ0FBQztJQUMxQyxnRUFBZ0U7SUFDaEUsU0FBUyxFQUFFLElBQUksR0FBRyxDQUFDLEVBQUMsU0FBUyxFQUFFLE9BQU8sRUFBQyxDQUFDO0NBQ3pDLENBQUMsQ0FBQztBQU9IOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQUNILE1BQU0sT0FBTyxLQUFNLFNBQVEsR0FBRztJQVk1QixZQUFtQixLQUFpQjtRQUNsQyxLQUFLLENB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
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGF0ZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvTGF0ZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsT0FBTyxFQUFDLGlCQUFpQixFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUUzRCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFFakUsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzlDLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUNsRSxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDaEQsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBRS9DLE9BQU8sRUFBQyxPQUFPLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTlDLE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxPQUFPLENBQUM7QUFPMUI7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJHO0FBQ0gsTUFBTSxPQUFPLEtBQU0sU0FBUSxHQUFHO0lBTXBCLE1BQU0sQ0FBQyxpQkFBaUI7UUFDOUIsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUM1QixPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxPQUFPLEdBQUcsV0FBVyxFQUFFLENBQUM7UUFDN0IsbUJBQW1CLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUU7WUFDdEMsZ0VBQWdFO1lBQ2hFLFFBQVEsRUFBRSxJQUFJLEdBQUcsQ0FBQyxFQUFDLFFBQVEsRUFBRSxXQUFXLEVBQUMsQ0FBQztZQUMxQyxnRUFBZ0U7WUFDaEUs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