@formulaxjs/kity-runtime 0.3.0 → 0.5.0
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.
- package/README.md +33 -30
- package/README.zh-CN.md +44 -0
- package/dist/base.css +47 -0
- package/dist/{chunk-AOMNUFFB.js → chunk-EQCAHDH7.js} +98 -34
- package/dist/chunk-EQCAHDH7.js.map +1 -0
- package/dist/images/scrollbar/custom/bar-bg.png +0 -0
- package/dist/images/scrollbar/custom/bar.png +0 -0
- package/dist/images/scrollbar/custom/bg.png +0 -0
- package/dist/images/scrollbar/custom/bottom.png +0 -0
- package/dist/images/scrollbar/custom/btn.png +0 -0
- package/dist/images/scrollbar/custom/down.png +0 -0
- package/dist/images/scrollbar/custom/top.png +0 -0
- package/dist/images/scrollbar/custom/up.png +0 -0
- package/dist/images/scrollbar/edit/bar-bg.png +0 -0
- package/dist/images/scrollbar/edit/bar-left.png +0 -0
- package/dist/images/scrollbar/edit/bar-right.png +0 -0
- package/dist/images/scrollbar/edit/thumb-bg.png +0 -0
- package/dist/images/scrollbar/edit/thumb-left.png +0 -0
- package/dist/images/scrollbar/edit/thumb-right.png +0 -0
- package/dist/images/toolbar/btn.png +0 -0
- package/dist/index.cjs +270 -186
- package/dist/index.cjs.map +1 -1
- package/dist/index.global.js +270 -185
- package/dist/index.global.js.map +1 -1
- package/dist/index.js +19 -4
- package/dist/index.js.map +1 -1
- package/dist/{install-TIZBWEFU.js → install-WDCVVIMM.js} +34 -61
- package/dist/install-WDCVVIMM.js.map +1 -0
- package/dist/other.png +0 -0
- package/dist/scrollbar.css +78 -0
- package/dist/{start-LTYA5XON.js → start-N66J24A5.js} +88 -21
- package/dist/start-N66J24A5.js.map +1 -0
- package/dist/ui.css +625 -0
- package/package.json +7 -2
- package/public/assets/styles/ui.css +58 -26
- package/dist/chunk-AOMNUFFB.js.map +0 -1
- package/dist/install-TIZBWEFU.js.map +0 -1
- package/dist/start-LTYA5XON.js.map +0 -1
- /package/dist/{KF_AMS_BB-5QF7FUSO.woff → KF_AMS_BB.woff} +0 -0
- /package/dist/{KF_AMS_CAL-NXRNLAZN.woff → KF_AMS_CAL.woff} +0 -0
- /package/dist/{KF_AMS_FRAK-CO33WWN4.woff → KF_AMS_FRAK.woff} +0 -0
- /package/dist/{KF_AMS_MAIN-25QJVAWY.woff → KF_AMS_MAIN.woff} +0 -0
- /package/dist/{KF_AMS_ROMAN-243BR7HH.woff → KF_AMS_ROMAN.woff} +0 -0
- /package/dist/{btn-5DANP6JY.png → btn.png} +0 -0
- /package/dist/{editor-JT5KLVXX.css → editor.css} +0 -0
- /package/dist/{other-OMWJFGL5.png → images/toolbar/other.png} +0 -0
package/README.md
CHANGED
|
@@ -1,41 +1,44 @@
|
|
|
1
1
|
# @formulaxjs/kity-runtime
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
`@formulaxjs/kity-runtime` packages the compatibility runtime that powers FormulaX's Kity-based editing and rendering flows. It now includes the legacy fonts, toolbar images, and stylesheet assets needed by the runtime, and provides low-level helpers for mounting the editor in browser applications.
|
|
6
|
-
|
|
7
|
-
> Status: experimental. Public APIs may change before the first stable release.
|
|
8
|
-
|
|
9
|
-
## Install
|
|
10
|
-
|
|
11
|
-
```bash
|
|
12
|
-
pnpm add @formulaxjs/kity-runtime
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
## Highlights
|
|
16
|
-
|
|
17
|
-
- `ensureKityRuntime` for lazy runtime bootstrapping
|
|
18
|
-
- `createKityEditor` and `mountKityEditor` for mounting a Kity editor into the DOM
|
|
19
|
-
- Legacy compatibility exports used by existing KityFormula-oriented integrations
|
|
20
|
-
|
|
21
|
-
## Example
|
|
22
|
-
|
|
23
|
-
```ts
|
|
24
|
-
import { mountKityEditor } from '@formulaxjs/kity-runtime';
|
|
25
|
-
|
|
26
|
-
const root = document.getElementById('editor');
|
|
27
|
-
|
|
28
|
-
if (!root) {
|
|
29
|
-
throw new Error('Missing #editor');
|
|
30
|
-
}
|
|
3
|
+
English | [简体中文](https://github.com/vndmea/formulaX/blob/main/packages/kity-runtime/README.zh-CN.md)
|
|
31
4
|
|
|
5
|
+
Legacy KityFormula runtime adapter for FormulaX.
|
|
6
|
+
|
|
7
|
+
`@formulaxjs/kity-runtime` packages the compatibility runtime that powers FormulaX's Kity-based editing and rendering flows. It now includes the legacy fonts, toolbar images, and stylesheet assets needed by the runtime, and provides low-level helpers for mounting the editor in browser applications.
|
|
8
|
+
|
|
9
|
+
> Status: experimental. Public APIs may change before the first stable release.
|
|
10
|
+
|
|
11
|
+
## Install
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
npm install @formulaxjs/kity-runtime
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Highlights
|
|
18
|
+
|
|
19
|
+
- `ensureKityRuntime` for lazy runtime bootstrapping
|
|
20
|
+
- `createKityEditor` and `mountKityEditor` for mounting a Kity editor into the DOM
|
|
21
|
+
- Legacy compatibility exports used by existing KityFormula-oriented integrations
|
|
22
|
+
|
|
23
|
+
## Example
|
|
24
|
+
|
|
25
|
+
```ts
|
|
26
|
+
import { mountKityEditor } from '@formulaxjs/kity-runtime';
|
|
27
|
+
|
|
28
|
+
const root = document.getElementById('editor');
|
|
29
|
+
|
|
30
|
+
if (!root) {
|
|
31
|
+
throw new Error('Missing #editor');
|
|
32
|
+
}
|
|
33
|
+
|
|
32
34
|
const handle = await mountKityEditor(root, {
|
|
33
35
|
value: 'x=\\frac{-b\\pm\\sqrt{b^2-4ac}}{2a}',
|
|
36
|
+
locale: 'zh_CN', // optional, defaults to en_US
|
|
34
37
|
});
|
|
35
38
|
|
|
36
39
|
console.log(handle.getLatex());
|
|
37
40
|
```
|
|
38
41
|
|
|
39
42
|
## Package role
|
|
40
|
-
|
|
41
|
-
Use this package when you need the low-level legacy Kity editing runtime or compatibility with historical KityFormula behavior. For application-facing editor usage, prefer importing `FormulaXEditor` from `@formulaxjs/editor`. For host-editor integrations, prefer the dedicated adapter packages that already depend on this runtime.
|
|
43
|
+
|
|
44
|
+
Use this package when you need the low-level legacy Kity editing runtime or compatibility with historical KityFormula behavior. For application-facing editor usage, prefer importing `FormulaXEditor` from `@formulaxjs/editor`. For host-editor integrations, prefer the dedicated adapter packages that already depend on this runtime.
|
package/README.zh-CN.md
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# @formulaxjs/kity-runtime
|
|
2
|
+
|
|
3
|
+
[English](https://github.com/vndmea/formulaX/blob/main/packages/kity-runtime/README.md) | 简体中文
|
|
4
|
+
|
|
5
|
+
FormulaX 的旧版 KityFormula runtime 适配层。
|
|
6
|
+
|
|
7
|
+
`@formulaxjs/kity-runtime` 打包了支撑 FormulaX Kity 编辑与渲染流程的兼容 runtime。它同时包含 runtime 所需的旧版字体、工具栏图片和样式资源,并提供在浏览器应用中挂载编辑器的低层 helper。
|
|
8
|
+
|
|
9
|
+
> 状态:实验阶段。在首个稳定版本发布前,公共 API 仍可能调整。
|
|
10
|
+
|
|
11
|
+
## 安装
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
npm install @formulaxjs/kity-runtime
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## 功能概览
|
|
18
|
+
|
|
19
|
+
- `ensureKityRuntime`,用于懒加载 runtime 初始化
|
|
20
|
+
- `createKityEditor` 与 `mountKityEditor`,用于将 Kity 编辑器挂载到 DOM
|
|
21
|
+
- 面向既有 KityFormula 集成保留的兼容性导出
|
|
22
|
+
|
|
23
|
+
## 示例
|
|
24
|
+
|
|
25
|
+
```ts
|
|
26
|
+
import { mountKityEditor } from '@formulaxjs/kity-runtime';
|
|
27
|
+
|
|
28
|
+
const root = document.getElementById('editor');
|
|
29
|
+
|
|
30
|
+
if (!root) {
|
|
31
|
+
throw new Error('Missing #editor');
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
const handle = await mountKityEditor(root, {
|
|
35
|
+
value: 'x=\\frac{-b\\pm\\sqrt{b^2-4ac}}{2a}',
|
|
36
|
+
locale: 'zh_CN', // 可选,默认 en_US
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
console.log(handle.getLatex());
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## 包职责
|
|
43
|
+
|
|
44
|
+
当你需要低层旧版 Kity 编辑 runtime,或者需要兼容历史 KityFormula 行为时,请使用这个包。面向应用层的编辑器使用方式,更推荐从 `@formulaxjs/editor` 引入 `FormulaXEditor`;宿主编辑器集成则优先使用已经依赖该 runtime 的专用 adapter 包。
|
package/dist/base.css
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
|
|
2
|
+
.kf-editor {
|
|
3
|
+
width: 100%;
|
|
4
|
+
height: 100%;
|
|
5
|
+
display: flex;
|
|
6
|
+
flex-direction: column;
|
|
7
|
+
border: 1px solid #e0e0e0;
|
|
8
|
+
position: relative;
|
|
9
|
+
top: 0;
|
|
10
|
+
left: 0;
|
|
11
|
+
|
|
12
|
+
overflow: visible;
|
|
13
|
+
z-index: 2;
|
|
14
|
+
background-color: #f6f5ee;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.kf-editor-edit-area {
|
|
18
|
+
width: 100%;
|
|
19
|
+
position: relative;
|
|
20
|
+
top: 0;
|
|
21
|
+
left: 0;
|
|
22
|
+
|
|
23
|
+
display: block;
|
|
24
|
+
z-index: 1;
|
|
25
|
+
flex: 1 1 auto;
|
|
26
|
+
min-height: 100px;
|
|
27
|
+
height: 100px;
|
|
28
|
+
overflow: hidden;
|
|
29
|
+
background-color: white;
|
|
30
|
+
/*background-color: white;*/
|
|
31
|
+
/*background-size: 21px 21px;*/
|
|
32
|
+
/*background-position: 0 0,10px 10px;*/
|
|
33
|
+
/*background-image: -webkit-linear-gradient(45deg,#efefef 25%,transparent 25%,transparent 75%,#efefef 75%,#efefef),-webkit-linear-gradient(45deg,#efefef 25%,transparent 25%,transparent 75%,#efefef 75%,#efefef);*/
|
|
34
|
+
/*background-image: linear-gradient(45deg,#efefef 25%,transparent 25%,transparent 75%,#efefef 75%,#efefef),linear-gradient(45deg,#efefef 25%,transparent 25%,transparent 75%,#efefef 75%,#efefef);*/
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.kf-editor-canvas-container {
|
|
38
|
+
width: 100%;
|
|
39
|
+
height: 100%;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.kf-editor-input-box {
|
|
43
|
+
position: fixed;
|
|
44
|
+
top: 0;
|
|
45
|
+
left: -99999999px;
|
|
46
|
+
z-index: 999999;
|
|
47
|
+
}
|
|
@@ -1,41 +1,25 @@
|
|
|
1
|
-
// public/assets/images/toolbar/btn.png
|
|
2
|
-
var btn_default = "./btn-5DANP6JY.png";
|
|
3
|
-
|
|
4
|
-
// public/assets/images/toolbar/other.png
|
|
5
|
-
var other_default = "./other-OMWJFGL5.png";
|
|
6
|
-
|
|
7
|
-
// public/assets/styles/editor.css?url
|
|
8
|
-
var editor_default = "./editor-JT5KLVXX.css?url";
|
|
9
|
-
|
|
10
|
-
// public/resource/KF_AMS_BB.woff
|
|
11
|
-
var KF_AMS_BB_default = "./KF_AMS_BB-5QF7FUSO.woff";
|
|
12
|
-
|
|
13
|
-
// public/resource/KF_AMS_CAL.woff
|
|
14
|
-
var KF_AMS_CAL_default = "./KF_AMS_CAL-NXRNLAZN.woff";
|
|
15
|
-
|
|
16
|
-
// public/resource/KF_AMS_FRAK.woff
|
|
17
|
-
var KF_AMS_FRAK_default = "./KF_AMS_FRAK-CO33WWN4.woff";
|
|
18
|
-
|
|
19
|
-
// public/resource/KF_AMS_MAIN.woff
|
|
20
|
-
var KF_AMS_MAIN_default = "./KF_AMS_MAIN-25QJVAWY.woff";
|
|
21
|
-
|
|
22
|
-
// public/resource/KF_AMS_ROMAN.woff
|
|
23
|
-
var KF_AMS_ROMAN_default = "./KF_AMS_ROMAN-243BR7HH.woff";
|
|
24
|
-
|
|
25
1
|
// src/asset-manifest.ts
|
|
2
|
+
import btnUrl from "./btn.png";
|
|
3
|
+
import otherUrl from "./other.png";
|
|
4
|
+
import editorCssUrl from "./editor.css?url";
|
|
5
|
+
import kfAmsBbUrl from "./KF_AMS_BB.woff";
|
|
6
|
+
import kfAmsCalUrl from "./KF_AMS_CAL.woff";
|
|
7
|
+
import kfAmsFrakUrl from "./KF_AMS_FRAK.woff";
|
|
8
|
+
import kfAmsMainUrl from "./KF_AMS_MAIN.woff";
|
|
9
|
+
import kfAmsRomanUrl from "./KF_AMS_ROMAN.woff";
|
|
26
10
|
var kityFontAssets = {
|
|
27
|
-
KF_AMS_BB:
|
|
28
|
-
KF_AMS_CAL:
|
|
29
|
-
KF_AMS_FRAK:
|
|
30
|
-
KF_AMS_MAIN:
|
|
31
|
-
KF_AMS_ROMAN:
|
|
11
|
+
KF_AMS_BB: kfAmsBbUrl,
|
|
12
|
+
KF_AMS_CAL: kfAmsCalUrl,
|
|
13
|
+
KF_AMS_FRAK: kfAmsFrakUrl,
|
|
14
|
+
KF_AMS_MAIN: kfAmsMainUrl,
|
|
15
|
+
KF_AMS_ROMAN: kfAmsRomanUrl
|
|
32
16
|
};
|
|
33
17
|
var kityToolbarAssets = {
|
|
34
|
-
btn:
|
|
35
|
-
other:
|
|
18
|
+
btn: btnUrl,
|
|
19
|
+
other: otherUrl
|
|
36
20
|
};
|
|
37
21
|
var kityStyleAssets = {
|
|
38
|
-
editor:
|
|
22
|
+
editor: editorCssUrl
|
|
39
23
|
};
|
|
40
24
|
var kityAssetManifest = {
|
|
41
25
|
fonts: kityFontAssets,
|
|
@@ -451,6 +435,81 @@ function createLegacyUiUtils() {
|
|
|
451
435
|
return legacyUiUtils;
|
|
452
436
|
}
|
|
453
437
|
|
|
438
|
+
// src/i18n.ts
|
|
439
|
+
var FORMULAX_LOCALES = ["en_US", "zh_CN"];
|
|
440
|
+
var DEFAULT_FORMULAX_LOCALE = "en_US";
|
|
441
|
+
var FORMULAX_TRANSLATIONS = {
|
|
442
|
+
en_US: {
|
|
443
|
+
toolbar: {
|
|
444
|
+
\u9884\u8BBE: "Presets",
|
|
445
|
+
\u9884\u8BBE\u516C\u5F0F: "Presets",
|
|
446
|
+
\u4E8C\u6B21\u516C\u5F0F: "Quadratic",
|
|
447
|
+
\u4E8C\u9879\u5F0F\u5B9A\u7406: "Binomial",
|
|
448
|
+
\u52FE\u80A1\u5B9A\u7406: "Pythagorean",
|
|
449
|
+
\u57FA\u7840\u6570\u5B66: "Basic math",
|
|
450
|
+
\u5E0C\u814A\u5B57\u6BCD: "Greek",
|
|
451
|
+
\u6C42\u53CD\u5173\u7CFB\u8FD0\u7B97\u7B26: "Negated operators",
|
|
452
|
+
\u5B57\u6BCD\u7C7B\u7B26\u53F7: "Letter symbols",
|
|
453
|
+
\u7BAD\u5934: "Arrows",
|
|
454
|
+
\u624B\u5199\u4F53: "Script",
|
|
455
|
+
\u5206\u6570: "Fraction",
|
|
456
|
+
\u5E38\u7528\u5206\u6570: "Common fractions",
|
|
457
|
+
\u4E0A\u4E0B\u6807: "Scripts",
|
|
458
|
+
\u4E0A\u6807\u548C\u4E0B\u6807: "Super/subscripts",
|
|
459
|
+
\u5E38\u7528\u7684\u4E0A\u6807\u548C\u4E0B\u6807: "Common super/subscripts",
|
|
460
|
+
\u6839\u5F0F: "Radicals",
|
|
461
|
+
\u5E38\u7528\u6839\u5F0F: "Common radicals",
|
|
462
|
+
\u79EF\u5206: "Integrals",
|
|
463
|
+
\u5927\u578B\u8FD0\u7B97\u7B26: "Large<br/>ops",
|
|
464
|
+
\u6C42\u548C: "Summations",
|
|
465
|
+
\u62EC\u53F7: "Brackets",
|
|
466
|
+
\u65B9\u62EC\u53F7: "Brackets",
|
|
467
|
+
\u51FD\u6570: "Functions",
|
|
468
|
+
\u4E09\u89D2\u51FD\u6570: "Trig functions",
|
|
469
|
+
\u5E38\u7528\u51FD\u6570: "Common functions",
|
|
470
|
+
\u5C0F\u5199: "Lowercase",
|
|
471
|
+
\u5927\u5199: "Uppercase",
|
|
472
|
+
\u53D8\u4F53: "Variants",
|
|
473
|
+
\u82B1\u4F53: "Fraktur",
|
|
474
|
+
\u53CC\u7EBF: "Double-struck",
|
|
475
|
+
\u7F57\u9A6C: "Roman"
|
|
476
|
+
}
|
|
477
|
+
}
|
|
478
|
+
};
|
|
479
|
+
var FORMULAX_RUNTIME_MESSAGES = {
|
|
480
|
+
en_US: {
|
|
481
|
+
"editor.placeholder.root": "Type formula here"
|
|
482
|
+
},
|
|
483
|
+
zh_CN: {
|
|
484
|
+
"editor.placeholder.root": "\u8BF7\u8F93\u5165\u516C\u5F0F"
|
|
485
|
+
}
|
|
486
|
+
};
|
|
487
|
+
function normalizeFormulaXLocale(locale) {
|
|
488
|
+
if (locale === "zh_CN") {
|
|
489
|
+
return "zh_CN";
|
|
490
|
+
}
|
|
491
|
+
return DEFAULT_FORMULAX_LOCALE;
|
|
492
|
+
}
|
|
493
|
+
function translateFormulaXText(namespace, value, locale) {
|
|
494
|
+
if (locale === "zh_CN") {
|
|
495
|
+
return value;
|
|
496
|
+
}
|
|
497
|
+
const normalizedValue = value.replace(/<br\s*\/?>/gi, "").trim();
|
|
498
|
+
const translatedValue = FORMULAX_TRANSLATIONS[locale]?.[namespace]?.[normalizedValue];
|
|
499
|
+
if (!translatedValue) {
|
|
500
|
+
return value;
|
|
501
|
+
}
|
|
502
|
+
const lineBreakMatch = value.match(/<br\s*\/?>/i);
|
|
503
|
+
if (/<br\s*\/?>/i.test(translatedValue)) {
|
|
504
|
+
return translatedValue;
|
|
505
|
+
}
|
|
506
|
+
return lineBreakMatch ? `${translatedValue}${lineBreakMatch[0]}` : translatedValue;
|
|
507
|
+
}
|
|
508
|
+
function getFormulaXRuntimeMessage(key, locale = DEFAULT_FORMULAX_LOCALE) {
|
|
509
|
+
const normalizedLocale = normalizeFormulaXLocale(locale);
|
|
510
|
+
return FORMULAX_RUNTIME_MESSAGES[normalizedLocale][key] ?? FORMULAX_RUNTIME_MESSAGES[DEFAULT_FORMULAX_LOCALE][key];
|
|
511
|
+
}
|
|
512
|
+
|
|
454
513
|
// src/vendor/other-position.ts
|
|
455
514
|
var legacyOtherPosition = {
|
|
456
515
|
"x=\\frac {-b\\pm\\sqrt {b^2-4ac}}{2a}": {
|
|
@@ -945,6 +1004,11 @@ export {
|
|
|
945
1004
|
legacyUiUtils,
|
|
946
1005
|
createLegacyUiUtils,
|
|
947
1006
|
setToolbarAssetUrls,
|
|
948
|
-
resolveToolbarAssetPath
|
|
1007
|
+
resolveToolbarAssetPath,
|
|
1008
|
+
FORMULAX_LOCALES,
|
|
1009
|
+
DEFAULT_FORMULAX_LOCALE,
|
|
1010
|
+
normalizeFormulaXLocale,
|
|
1011
|
+
translateFormulaXText,
|
|
1012
|
+
getFormulaXRuntimeMessage
|
|
949
1013
|
};
|
|
950
|
-
//# sourceMappingURL=chunk-
|
|
1014
|
+
//# sourceMappingURL=chunk-EQCAHDH7.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/asset-manifest.ts","../src/vendor/legacy-box-type.ts","../src/vendor/legacy-kfevent.ts","../src/vendor/legacy-event.ts","../src/vendor/legacy-utils.ts","../src/kity/utils.ts","../src/vendor/legacy-component.ts","../src/vendor/legacy-ele-type.ts","../src/vendor/legacy-group-type.ts","../src/vendor/legacy-input-filter.ts","../src/vendor/legacy-item-type.ts","../src/vendor/legacy-kf-ext-def.ts","../src/vendor/legacy-sysconf.ts","../src/vendor/legacy-ui-def.ts","../src/dom-utils.ts","../src/vendor/legacy-ui-utils.ts","../src/i18n.ts","../src/vendor/other-position.ts","../src/toolbar-assets.ts"],"sourcesContent":["import btnUrl from '../public/assets/images/toolbar/btn.png';\nimport otherUrl from '../public/assets/images/toolbar/other.png';\nimport editorCssUrl from '../public/assets/styles/editor.css?url';\nimport kfAmsBbUrl from '../public/resource/KF_AMS_BB.woff';\nimport kfAmsCalUrl from '../public/resource/KF_AMS_CAL.woff';\nimport kfAmsFrakUrl from '../public/resource/KF_AMS_FRAK.woff';\nimport kfAmsMainUrl from '../public/resource/KF_AMS_MAIN.woff';\nimport kfAmsRomanUrl from '../public/resource/KF_AMS_ROMAN.woff';\n\r\nexport type KityFontAssets = {\r\n KF_AMS_BB: string;\r\n KF_AMS_CAL: string;\r\n KF_AMS_FRAK: string;\r\n KF_AMS_MAIN: string;\r\n KF_AMS_ROMAN: string;\r\n};\r\n\r\nexport type KityToolbarAssets = {\r\n btn: string;\r\n other: string;\r\n};\r\n\r\nexport type KityStyleAssets = {\r\n editor: string;\r\n};\r\n\r\nexport type KityAssetManifest = {\r\n fonts: KityFontAssets;\r\n toolbar: KityToolbarAssets;\r\n styles: KityStyleAssets;\r\n};\r\n\r\nexport const kityFontAssets = {\r\n KF_AMS_BB: kfAmsBbUrl,\r\n KF_AMS_CAL: kfAmsCalUrl,\r\n KF_AMS_FRAK: kfAmsFrakUrl,\r\n KF_AMS_MAIN: kfAmsMainUrl,\r\n KF_AMS_ROMAN: kfAmsRomanUrl,\r\n} satisfies KityFontAssets;\r\n\r\nexport const kityToolbarAssets = {\r\n btn: btnUrl,\r\n other: otherUrl,\r\n} satisfies KityToolbarAssets;\r\n\r\nexport const kityStyleAssets = {\r\n editor: editorCssUrl,\r\n} satisfies KityStyleAssets;\r\n\r\nexport const kityAssetManifest = {\r\n fonts: kityFontAssets,\r\n toolbar: kityToolbarAssets,\r\n styles: kityStyleAssets,\r\n} satisfies KityAssetManifest;\r\n","export const legacyBoxType = {\n DETACHED: 1,\n OVERLAP: 2,\n} as const;\n","export const legacyKfEvent = {\n createEvent(type: string) {\n return new Event(type, {\n bubbles: true,\n cancelable: true,\n });\n },\n};\n","import { legacyKfEvent } from './legacy-kfevent';\n\ntype KfEventHandler<T extends Event = Event> = (event: T) => boolean | void;\nconst eventListenerStore: Record<number, Record<string, any[]>> = {};\nlet eventId = 0;\nlet beforeResult = true;\n\ntype LegacyEventTarget = EventTarget & {\n __kfeEventId?: number;\n __kfe_eid?: number;\n};\n\nfunction getLegacyEventId(target: LegacyEventTarget) {\n return target.__kfeEventId ?? target.__kfe_eid;\n}\n\nfunction setLegacyEventId(target: LegacyEventTarget, resolvedEventId: number) {\n target.__kfeEventId = resolvedEventId;\n\n if (Object.prototype.hasOwnProperty.call(target, '__kfe_eid')) {\n target.__kfe_eid = resolvedEventId;\n return;\n }\n\n Object.defineProperty(target, '__kfe_eid', {\n configurable: true,\n enumerable: true,\n get() {\n return target.__kfeEventId;\n },\n set(value: number) {\n target.__kfeEventId = value;\n },\n });\n}\n\nconst eventHandler = function eventHandler(this: LegacyEventTarget, event: Event) {\n const type = event.type;\n const target = event.target as EventTarget;\n const eid = getLegacyEventId(this) as number;\n const hasAutoTrigger = /^(?:before|after)/.test(type);\n const handlerList: KfEventHandler[] = eventListenerStore[eid]?.[type] ?? [];\n\n if (!hasAutoTrigger) {\n legacyEventListener.trigger(target, `before${type}`);\n\n if (beforeResult === false) {\n beforeResult = true;\n return false;\n }\n }\n\n for (const handler of handlerList) {\n if (handler.call(target, event) === false) {\n beforeResult = false;\n break;\n }\n }\n\n if (!hasAutoTrigger) {\n legacyEventListener.trigger(target, `after${type}`);\n }\n\n return true;\n};\n\nexport const legacyEventListener = {\n addEvent<T extends Event = Event>(target: LegacyEventTarget, type: string, handler: (event: T) => boolean | void) {\n let hasHandler = true;\n\n if (!getLegacyEventId(target)) {\n hasHandler = false;\n setLegacyEventId(target, ++eventId);\n eventListenerStore[getLegacyEventId(target) as number] = {};\n }\n\n const eventCache = eventListenerStore[getLegacyEventId(target) as number];\n\n if (!eventCache[type]) {\n hasHandler = false;\n eventCache[type] = [];\n }\n\n eventCache[type].push(handler);\n\n if (hasHandler) {\n return;\n }\n\n target.addEventListener(type, eventHandler as EventListener, false);\n },\n\n trigger(target: EventTarget, type: string, event?: Event) {\n const resolvedEvent = event || legacyKfEvent.createEvent(type);\n target.dispatchEvent(resolvedEvent);\n },\n};\n","import { bind, isArray, isString } from 'lodash-es';\nimport utils from '../kity/utils';\nimport { legacyEventListener } from './legacy-event';\n\nexport type LegacyBaseUtils = {\n addEvent: typeof legacyEventListener.addEvent;\n trigger: typeof legacyEventListener.trigger;\n each: typeof utils.each;\n extend: typeof utils.extend;\n clone: typeof utils.clone;\n copy: typeof utils.copy;\n isArray: typeof isArray;\n isString: typeof isString;\n proxy: typeof bind;\n contains(parent: Node, target: Node): boolean;\n getRect(node: Element): DOMRect;\n};\n\nconst legacyBaseUtils: LegacyBaseUtils = {\n addEvent: legacyEventListener.addEvent,\n trigger: legacyEventListener.trigger,\n each: utils.each,\n extend: utils.extend,\n clone: utils.clone,\n copy: utils.copy,\n isArray,\n isString,\n proxy: bind,\n contains(parent: Node, target: Node) {\n if (parent.contains) {\n return parent.contains(target);\n }\n if (parent.compareDocumentPosition) {\n return !!(parent.compareDocumentPosition(target) & 16);\n }\n return false;\n },\n getRect(node: Element) {\n return node.getBoundingClientRect();\n },\n};\n\nexport { legacyBaseUtils };\n","import {\n assign,\n cloneDeep,\n forEach,\n isArray,\n isBoolean,\n isFunction,\n isNumber,\n isObject,\n isRegExp,\n isString,\n flattenDeep,\n get,\n defaultTo,\n merge,\n} from 'lodash-es';\n\nexport type KityUtils = {\n each: typeof forEach;\n extend: typeof assign;\n deepExtend: typeof merge;\n clone: typeof cloneDeep;\n copy: typeof cloneDeep;\n queryPath: typeof get;\n getValue: typeof defaultTo;\n flatten: typeof flattenDeep;\n parallel: (v1: unknown, v2: unknown, op: (a: unknown, b: unknown) => unknown) => unknown;\n paralle: (v1: unknown, v2: unknown, op: (a: unknown, b: unknown) => unknown) => unknown;\n parallelize: (op: (a: unknown, b: unknown) => unknown) => (v1: unknown, v2: unknown) => unknown;\n isString: typeof isString;\n isFunction: typeof isFunction;\n isArray: typeof isArray;\n isNumber: typeof isNumber;\n isRegExp: typeof isRegExp;\n isObject: typeof isObject;\n isBoolean: typeof isBoolean;\n};\n\nconst utils: KityUtils = {\n each: forEach,\n extend: assign,\n deepExtend: merge,\n clone: cloneDeep,\n copy: cloneDeep,\n queryPath: get,\n getValue: defaultTo,\n flatten: flattenDeep,\n\n parallel: function parallel(v1: unknown, v2: unknown, op: (a: unknown, b: unknown) => unknown): unknown {\n if (isArray(v1) && isArray(v2)) {\n return (v1 as unknown[]).map((item, i) => parallel(item, (v2 as unknown[])[i], op));\n }\n\n if (isObject(v1) && isObject(v1) && isObject(v2)) {\n const Class = (v1 as { getClass?: () => { parse?: (val: unknown) => unknown } }).getClass?.();\n if (Class?.parse) {\n const v1Val = (v1 as { valueOf: () => unknown[] }).valueOf();\n const v2Val = (v2 as { valueOf: () => unknown[] }).valueOf();\n const result = parallel(v1Val, v2Val, op);\n return Class.parse(result);\n }\n const result: Record<string, unknown> = {};\n for (const name in v1 as object) {\n if (\n Object.prototype.hasOwnProperty.call(v1, name) &&\n Object.prototype.hasOwnProperty.call(v2, name)\n ) {\n result[name] = parallel(\n (v1 as Record<string, unknown>)[name],\n (v2 as Record<string, unknown>)[name],\n op,\n );\n }\n }\n return result;\n }\n\n if (!isNaN(Number(v1))) {\n return op(v1, v2);\n }\n\n return undefined;\n },\n\n paralle: null as unknown as KityUtils['paralle'],\n\n parallelize(op: (a: unknown, b: unknown) => unknown) {\n return (v1: unknown, v2: unknown) => utils.parallel(v1, v2, op);\n },\n\n isString,\n isFunction,\n isArray,\n isNumber,\n isRegExp,\n isObject,\n isBoolean,\n};\n\nutils.paralle = utils.parallel;\n\nexport default utils;\n","export function createLegacyBaseComponent(kity: { createClass: (name: string, definition: object) => unknown }) {\r\n return kity.createClass('Component', {\r\n constructor() {},\r\n });\r\n}\r\n","export const legacyEleType = {\n DRAPDOWN_BOX: 1,\n AREA: 2,\n DELIMITER: 3,\n} as const;\n","export const legacyGroupType = {\n GROUP: 'kf-editor-group',\n VIRTUAL: 'kf-editor-virtual-group',\n} as const;\n","const replacementMap: Record<string, string> = {\n '32': '\\\\,',\n 's+219': '\\\\{',\n 's+221': '\\\\}',\n '220': '\\\\backslash',\n 's+51': '\\\\#',\n 's+52': '\\\\$',\n 's+53': '\\\\%',\n 's+54': '\\\\^',\n 's+55': '\\\\&',\n 's+189': '\\\\_',\n 's+192': '\\\\~',\n};\n\nexport const legacyInputFilter = {\n getReplaceString(key: string | number) {\n return replacementMap[String(key)] || null;\n },\n};\n","export const legacyItemType = {\n BIG: 1,\n SMALL: 2,\n} as const;\n","export const legacyKfExtDef = {\n selectColor: 'rgba(42, 106, 189, 0.2)',\n allSelectColor: 'rgba(42, 106, 189, 0.6)',\n} as const;\n","export const legacySysconf = {\n cursorCharacter: '\\uF155',\n rootPlaceholder: {\n color: '#666',\n content: 'Type formula here',\n fontsize: 16,\n },\n scrollbar: {\n padding: 5,\n step: 150,\n },\n};\n","export const legacyUiDef = {\n VIEW_STATE: {\n NO_OVERFLOW: 0,\n OVERFLOW: 1,\n },\n scrollbar: {\n step: 50,\n thumbMinSize: 50,\n },\n} as const;\n","export type TopicCallback = (...args: unknown[]) => void;\r\n\r\nexport type ElementOptions =\r\n | string\r\n | {\r\n className?: string;\r\n content?: string;\r\n };\r\n\r\nexport type NormalizedMouseEvent = MouseEvent & {\r\n originalEvent: MouseEvent | WheelEvent;\r\n wheelDelta: number;\r\n which: number;\r\n};\r\n\r\nconst topicPool = new Map<string, TopicCallback[]>();\r\n\r\nfunction getMouseButtonCode(event: MouseEvent | WheelEvent) {\r\n if (typeof event.which === 'number' && event.which > 0) {\r\n return event.which;\r\n }\r\n\r\n switch (event.button) {\r\n case 0:\r\n return 1;\r\n case 1:\r\n return 2;\r\n case 2:\r\n return 3;\r\n default:\r\n return 0;\r\n }\r\n}\r\n\r\nfunction getWheelDelta(event: MouseEvent | WheelEvent) {\r\n if ('wheelDelta' in event && typeof event.wheelDelta === 'number') {\r\n return event.wheelDelta;\r\n }\r\n\r\n if ('deltaY' in event && typeof event.deltaY === 'number') {\r\n return -event.deltaY * 40;\r\n }\r\n\r\n return 0;\r\n}\r\n\r\nexport function normalizeMouseEvent(event: MouseEvent | WheelEvent): NormalizedMouseEvent {\r\n const wrappedEvent = Object.create(event) as NormalizedMouseEvent;\r\n\r\n Object.defineProperties(wrappedEvent, {\r\n originalEvent: {\r\n value: event,\r\n enumerable: false,\r\n configurable: true,\r\n },\r\n wheelDelta: {\r\n value: getWheelDelta(event),\r\n enumerable: false,\r\n configurable: true,\r\n },\r\n which: {\r\n value: getMouseButtonCode(event),\r\n enumerable: false,\r\n configurable: true,\r\n },\r\n preventDefault: {\r\n value: event.preventDefault.bind(event),\r\n enumerable: false,\r\n configurable: true,\r\n },\r\n stopPropagation: {\r\n value: event.stopPropagation.bind(event),\r\n enumerable: false,\r\n configurable: true,\r\n },\r\n stopImmediatePropagation: {\r\n value: event.stopImmediatePropagation.bind(event),\r\n enumerable: false,\r\n configurable: true,\r\n },\r\n });\r\n\r\n return wrappedEvent;\r\n}\r\n\r\nexport function createElement(doc: Document, name: 'text', options: string): Text;\r\n// eslint-disable-next-line no-redeclare\r\nexport function createElement(doc: Document, name: string, options?: Exclude<ElementOptions, string>): HTMLElement;\r\n// eslint-disable-next-line no-redeclare\r\nexport function createElement(doc: Document, name: string, options?: ElementOptions) {\r\n if (name === 'text') {\r\n return doc.createTextNode(typeof options === 'string' ? options : '');\r\n }\r\n\r\n const node = doc.createElement(name);\r\n\r\n if (options && typeof options !== 'string') {\r\n if (options.className) {\r\n node.className = options.className;\r\n }\r\n\r\n if (options.content) {\r\n node.innerHTML = options.content;\r\n }\r\n }\r\n\r\n return node;\r\n}\r\n\r\nexport function addEvent(target: EventTarget | null, type: string, listener: (event: NormalizedMouseEvent) => void) {\r\n if (!target) {\r\n return;\r\n }\r\n\r\n target.addEventListener(type, (event) => {\r\n listener(normalizeMouseEvent(event as MouseEvent | WheelEvent));\r\n });\r\n}\r\n\r\nexport function delegateEvent(\r\n target: EventTarget | null,\r\n selector: string,\r\n type: string,\r\n listener: (this: Element, event: NormalizedMouseEvent) => void,\r\n) {\r\n if (!target) {\r\n return;\r\n }\r\n\r\n target.addEventListener(type, (event) => {\r\n const normalizedEvent = normalizeMouseEvent(event as MouseEvent | WheelEvent);\r\n let current = event.target instanceof Element ? event.target : null;\r\n\r\n while (current && current !== target) {\r\n if (current.matches(selector)) {\r\n listener.call(current, normalizedEvent);\r\n return;\r\n }\r\n current = current.parentElement;\r\n }\r\n });\r\n}\r\n\r\nexport function publish(topic: string, ...args: unknown[]) {\r\n const callbackList = topicPool.get(topic);\r\n\r\n if (!callbackList) {\r\n return;\r\n }\r\n\r\n callbackList.forEach((callback) => callback(...args));\r\n}\r\n\r\nexport function subscribe(topic: string, callback: TopicCallback) {\r\n const callbackList = topicPool.get(topic) ?? [];\r\n callbackList.push(callback);\r\n topicPool.set(topic, callbackList);\r\n}\r\n\r\nexport function getRectBox(node: Element) {\r\n return node.getBoundingClientRect();\r\n}\r\n\r\nexport function getClassList(node: Element) {\r\n return node.classList;\r\n}\r\n","import { addEvent, createElement, delegateEvent, getClassList, getRectBox, publish, subscribe } from '../dom-utils';\n\nexport const legacyUiUtils = {\n ele: createElement,\n getRectBox,\n on(target: EventTarget | null, type: string, fn: (event: Event) => void) {\n addEvent(target, type, fn);\n return this;\n },\n delegate(target: EventTarget | null, selector: string, type: string, fn: (event: Event) => void) {\n delegateEvent(target, selector, type, fn);\n return this;\n },\n publish(topic: string, ...args: unknown[]) {\n publish(topic, ...args);\n },\n subscribe,\n getClassList,\n};\n\nexport function createLegacyUiUtils() {\n return legacyUiUtils;\n}\n","export const FORMULAX_LOCALES = ['en_US', 'zh_CN'] as const;\n\nexport type FormulaXLocale = (typeof FORMULAX_LOCALES)[number];\nexport type FormulaXI18nNamespace = 'toolbar';\nexport type FormulaXRuntimeMessageKey = 'editor.placeholder.root';\n\nexport const DEFAULT_FORMULAX_LOCALE: FormulaXLocale = 'en_US';\n\nconst FORMULAX_TRANSLATIONS: Partial<Record<FormulaXLocale, Record<FormulaXI18nNamespace, Record<string, string>>>> = {\n en_US: {\n toolbar: {\n 预设: 'Presets',\n 预设公式: 'Presets',\n 二次公式: 'Quadratic',\n 二项式定理: 'Binomial',\n 勾股定理: 'Pythagorean',\n 基础数学: 'Basic math',\n 希腊字母: 'Greek',\n 求反关系运算符: 'Negated operators',\n 字母类符号: 'Letter symbols',\n 箭头: 'Arrows',\n 手写体: 'Script',\n 分数: 'Fraction',\n 常用分数: 'Common fractions',\n 上下标: 'Scripts',\n 上标和下标: 'Super/subscripts',\n 常用的上标和下标: 'Common super/subscripts',\n 根式: 'Radicals',\n 常用根式: 'Common radicals',\n 积分: 'Integrals',\n 大型运算符: 'Large<br/>ops',\n 求和: 'Summations',\n 括号: 'Brackets',\n 方括号: 'Brackets',\n 函数: 'Functions',\n 三角函数: 'Trig functions',\n 常用函数: 'Common functions',\n 小写: 'Lowercase',\n 大写: 'Uppercase',\n 变体: 'Variants',\n 花体: 'Fraktur',\n 双线: 'Double-struck',\n 罗马: 'Roman',\n },\n },\n};\n\nconst FORMULAX_RUNTIME_MESSAGES: Record<FormulaXLocale, Record<FormulaXRuntimeMessageKey, string>> = {\n en_US: {\n 'editor.placeholder.root': 'Type formula here',\n },\n zh_CN: {\n 'editor.placeholder.root': '请输入公式',\n },\n};\n\nexport function normalizeFormulaXLocale(locale?: string): FormulaXLocale {\n if (locale === 'zh_CN') {\n return 'zh_CN';\n }\n\n return DEFAULT_FORMULAX_LOCALE;\n}\n\nexport function translateFormulaXText(\n namespace: FormulaXI18nNamespace,\n value: string,\n locale: FormulaXLocale,\n): string {\n if (locale === 'zh_CN') {\n return value;\n }\n\n const normalizedValue = value.replace(/<br\\s*\\/?>/gi, '').trim();\n const translatedValue = FORMULAX_TRANSLATIONS[locale]?.[namespace]?.[normalizedValue];\n\n if (!translatedValue) {\n return value;\n }\n\n const lineBreakMatch = value.match(/<br\\s*\\/?>/i);\n if (/<br\\s*\\/?>/i.test(translatedValue)) {\n return translatedValue;\n }\n\n return lineBreakMatch ? `${translatedValue}${lineBreakMatch[0]}` : translatedValue;\n}\n\nexport function getFormulaXRuntimeMessage(\n key: FormulaXRuntimeMessageKey,\n locale: FormulaXLocale = DEFAULT_FORMULAX_LOCALE,\n): string {\n const normalizedLocale = normalizeFormulaXLocale(locale);\n return FORMULAX_RUNTIME_MESSAGES[normalizedLocale][key]\n ?? FORMULAX_RUNTIME_MESSAGES[DEFAULT_FORMULAX_LOCALE][key];\n}\n","export const legacyOtherPosition = {\r\n \"x=\\\\frac {-b\\\\pm\\\\sqrt {b^2-4ac}}{2a}\": {\r\n \"pos\": {\r\n \"x\": 0,\r\n \"y\": 0\r\n },\r\n \"size\": {\r\n \"width\": 310,\r\n \"height\": 73\r\n }\r\n },\r\n \"{\\\\placeholder/\\\\placeholder}\": {\r\n \"pos\": {\r\n \"x\": 315,\r\n \"y\": 0\r\n },\r\n \"size\": {\r\n \"width\": 56,\r\n \"height\": 75\r\n }\r\n },\r\n \"\\\\frac \\\\placeholder\\\\placeholder\": {\r\n \"pos\": {\r\n \"x\": 376,\r\n \"y\": 0\r\n },\r\n \"size\": {\r\n \"width\": 56,\r\n \"height\": 75\r\n }\r\n },\r\n \"a^2+b^2=c^2\": {\r\n \"pos\": {\r\n \"x\": 437,\r\n \"y\": 0\r\n },\r\n \"size\": {\r\n \"width\": 310,\r\n \"height\": 73\r\n }\r\n },\r\n \"{\\\\left(x+a\\\\right)}^2=\\\\sum^n_{k=0}{\\\\left(^n_k\\\\right)x^ka^{n-k}}\": {\r\n \"pos\": {\r\n \"x\": 752,\r\n \"y\": 0\r\n },\r\n \"size\": {\r\n \"width\": 310,\r\n \"height\": 73\r\n }\r\n },\r\n \"\\\\frac {dy}{dx}\": {\r\n \"pos\": {\r\n \"x\": 1067,\r\n \"y\": 0\r\n },\r\n \"size\": {\r\n \"width\": 56,\r\n \"height\": 75\r\n }\r\n },\r\n \"\\\\frac {\\\\Delta y}{\\\\Delta x}\": {\r\n \"pos\": {\r\n \"x\": 1128,\r\n \"y\": 0\r\n },\r\n \"size\": {\r\n \"width\": 56,\r\n \"height\": 75\r\n }\r\n },\r\n \"\\\\frac {\\\\delta y}{\\\\delta x}\": {\r\n \"pos\": {\r\n \"x\": 1189,\r\n \"y\": 0\r\n },\r\n \"size\": {\r\n \"width\": 56,\r\n \"height\": 75\r\n }\r\n },\r\n \"\\\\frac \\\\pi 2\": {\r\n \"pos\": {\r\n \"x\": 1250,\r\n \"y\": 0\r\n },\r\n \"size\": {\r\n \"width\": 56,\r\n \"height\": 75\r\n }\r\n },\r\n \"\\\\placeholder^\\\\placeholder\": {\r\n \"pos\": {\r\n \"x\": 1311,\r\n \"y\": 0\r\n },\r\n \"size\": {\r\n \"width\": 56,\r\n \"height\": 75\r\n }\r\n },\r\n \"\\\\placeholder^\\\\placeholder_\\\\placeholder\": {\r\n \"pos\": {\r\n \"x\": 1372,\r\n \"y\": 0\r\n },\r\n \"size\": {\r\n \"width\": 56,\r\n \"height\": 75\r\n }\r\n },\r\n \"\\\\placeholder_\\\\placeholder\": {\r\n \"pos\": {\r\n \"x\": 1433,\r\n \"y\": 0\r\n },\r\n \"size\": {\r\n \"width\": 56,\r\n \"height\": 75\r\n }\r\n },\r\n \"{^\\\\placeholder_\\\\placeholder\\\\placeholder}\": {\r\n \"pos\": {\r\n \"x\": 1494,\r\n \"y\": 0\r\n },\r\n \"size\": {\r\n \"width\": 56,\r\n \"height\": 75\r\n }\r\n },\r\n \"e^{-i\\\\omega t}\": {\r\n \"pos\": {\r\n \"x\": 1555,\r\n \"y\": 0\r\n },\r\n \"size\": {\r\n \"width\": 56,\r\n \"height\": 75\r\n }\r\n },\r\n \"x^2\": {\r\n \"pos\": {\r\n \"x\": 1616,\r\n \"y\": 0\r\n },\r\n \"size\": {\r\n \"width\": 56,\r\n \"height\": 75\r\n }\r\n },\r\n \"{}^n_1Y\": {\r\n \"pos\": {\r\n \"x\": 1677,\r\n \"y\": 0\r\n },\r\n \"size\": {\r\n \"width\": 56,\r\n \"height\": 75\r\n }\r\n },\r\n \"\\\\sqrt \\\\placeholder\": {\r\n \"pos\": {\r\n \"x\": 1738,\r\n \"y\": 0\r\n },\r\n \"size\": {\r\n \"width\": 56,\r\n \"height\": 75\r\n }\r\n },\r\n \"\\\\sqrt [\\\\placeholder] \\\\placeholder\": {\r\n \"pos\": {\r\n \"x\": 1799,\r\n \"y\": 0\r\n },\r\n \"size\": {\r\n \"width\": 56,\r\n \"height\": 75\r\n }\r\n },\r\n \"\\\\sqrt [2] \\\\placeholder\": {\r\n \"pos\": {\r\n \"x\": 1860,\r\n \"y\": 0\r\n },\r\n \"size\": {\r\n \"width\": 56,\r\n \"height\": 75\r\n }\r\n },\r\n \"\\\\sqrt [3] \\\\placeholder\": {\r\n \"pos\": {\r\n \"x\": 1921,\r\n \"y\": 0\r\n },\r\n \"size\": {\r\n \"width\": 56,\r\n \"height\": 75\r\n }\r\n },\r\n \"\\\\frac {-b\\\\pm\\\\sqrt{b^2-4ac}}{2a}\": {\r\n \"pos\": {\r\n \"x\": 1982,\r\n \"y\": 0\r\n },\r\n \"size\": {\r\n \"width\": 137,\r\n \"height\": 75\r\n }\r\n },\r\n \"\\\\sqrt {a^2+b^2}\": {\r\n \"pos\": {\r\n \"x\": 2124,\r\n \"y\": 0\r\n },\r\n \"size\": {\r\n \"width\": 137,\r\n \"height\": 75\r\n }\r\n },\r\n \"\\\\int \\\\placeholder\": {\r\n \"pos\": {\r\n \"x\": 2266,\r\n \"y\": 0\r\n },\r\n \"size\": {\r\n \"width\": 56,\r\n \"height\": 75\r\n }\r\n },\r\n \"\\\\int^\\\\placeholder_\\\\placeholder\\\\placeholder\": {\r\n \"pos\": {\r\n \"x\": 2327,\r\n \"y\": 0\r\n },\r\n \"size\": {\r\n \"width\": 56,\r\n \"height\": 75\r\n }\r\n },\r\n \"\\\\iint\\\\placeholder\": {\r\n \"pos\": {\r\n \"x\": 2388,\r\n \"y\": 0\r\n },\r\n \"size\": {\r\n \"width\": 56,\r\n \"height\": 75\r\n }\r\n },\r\n \"\\\\iint^\\\\placeholder_\\\\placeholder\\\\placeholder\": {\r\n \"pos\": {\r\n \"x\": 2449,\r\n \"y\": 0\r\n },\r\n \"size\": {\r\n \"width\": 56,\r\n \"height\": 75\r\n }\r\n },\r\n \"\\\\iiint\\\\placeholder\": {\r\n \"pos\": {\r\n \"x\": 2510,\r\n \"y\": 0\r\n },\r\n \"size\": {\r\n \"width\": 56,\r\n \"height\": 75\r\n }\r\n },\r\n \"\\\\iiint^\\\\placeholder_\\\\placeholder\\\\placeholder\": {\r\n \"pos\": {\r\n \"x\": 2571,\r\n \"y\": 0\r\n },\r\n \"size\": {\r\n \"width\": 56,\r\n \"height\": 75\r\n }\r\n },\r\n \"\\\\sum\\\\placeholder\": {\r\n \"pos\": {\r\n \"x\": 2632,\r\n \"y\": 0\r\n },\r\n \"size\": {\r\n \"width\": 56,\r\n \"height\": 75\r\n }\r\n },\r\n \"\\\\sum^\\\\placeholder_\\\\placeholder\\\\placeholder\": {\r\n \"pos\": {\r\n \"x\": 2693,\r\n \"y\": 0\r\n },\r\n \"size\": {\r\n \"width\": 56,\r\n \"height\": 75\r\n }\r\n },\r\n \"\\\\sum_\\\\placeholder\\\\placeholder\": {\r\n \"pos\": {\r\n \"x\": 2754,\r\n \"y\": 0\r\n },\r\n \"size\": {\r\n \"width\": 56,\r\n \"height\": 75\r\n }\r\n },\r\n \"\\\\left(\\\\placeholder\\\\right)\": {\r\n \"pos\": {\r\n \"x\": 2815,\r\n \"y\": 0\r\n },\r\n \"size\": {\r\n \"width\": 56,\r\n \"height\": 75\r\n }\r\n },\r\n \"\\\\left[\\\\placeholder\\\\right]\": {\r\n \"pos\": {\r\n \"x\": 2876,\r\n \"y\": 0\r\n },\r\n \"size\": {\r\n \"width\": 56,\r\n \"height\": 75\r\n }\r\n },\r\n \"\\\\left\\\\{\\\\placeholder\\\\right\\\\}\": {\r\n \"pos\": {\r\n \"x\": 2937,\r\n \"y\": 0\r\n },\r\n \"size\": {\r\n \"width\": 56,\r\n \"height\": 75\r\n }\r\n },\r\n \"\\\\left|\\\\placeholder\\\\right|\": {\r\n \"pos\": {\r\n \"x\": 2998,\r\n \"y\": 0\r\n },\r\n \"size\": {\r\n \"width\": 56,\r\n \"height\": 75\r\n }\r\n },\r\n \"\\\\sin\\\\placeholder\": {\r\n \"pos\": {\r\n \"x\": 3059,\r\n \"y\": 0\r\n },\r\n \"size\": {\r\n \"width\": 56,\r\n \"height\": 75\r\n }\r\n },\r\n \"\\\\cos\\\\placeholder\": {\r\n \"pos\": {\r\n \"x\": 3120,\r\n \"y\": 0\r\n },\r\n \"size\": {\r\n \"width\": 56,\r\n \"height\": 75\r\n }\r\n },\r\n \"\\\\tan\\\\placeholder\": {\r\n \"pos\": {\r\n \"x\": 3181,\r\n \"y\": 0\r\n },\r\n \"size\": {\r\n \"width\": 56,\r\n \"height\": 75\r\n }\r\n },\r\n \"\\\\csc\\\\placeholder\": {\r\n \"pos\": {\r\n \"x\": 3242,\r\n \"y\": 0\r\n },\r\n \"size\": {\r\n \"width\": 56,\r\n \"height\": 75\r\n }\r\n },\r\n \"\\\\sec\\\\placeholder\": {\r\n \"pos\": {\r\n \"x\": 3303,\r\n \"y\": 0\r\n },\r\n \"size\": {\r\n \"width\": 56,\r\n \"height\": 75\r\n }\r\n },\r\n \"\\\\cot\\\\placeholder\": {\r\n \"pos\": {\r\n \"x\": 3364,\r\n \"y\": 0\r\n },\r\n \"size\": {\r\n \"width\": 56,\r\n \"height\": 75\r\n }\r\n },\r\n \"\\\\sin\\\\theta\": {\r\n \"pos\": {\r\n \"x\": 3425,\r\n \"y\": 0\r\n },\r\n \"size\": {\r\n \"width\": 56,\r\n \"height\": 75\r\n }\r\n },\r\n \"\\\\cos{2x}\": {\r\n \"pos\": {\r\n \"x\": 3486,\r\n \"y\": 0\r\n },\r\n \"size\": {\r\n \"width\": 56,\r\n \"height\": 75\r\n }\r\n },\r\n \"\\\\tan\\\\theta=\\\\frac {\\\\sin\\\\theta}{\\\\cos\\\\theta}\": {\r\n \"pos\": {\r\n \"x\": 3547,\r\n \"y\": 0\r\n },\r\n \"size\": {\r\n \"width\": 137,\r\n \"height\": 75\r\n }\r\n }\r\n } as const;\r\n","import { kityToolbarAssets } from './asset-manifest';\n\nlet toolbarAssetFileMap: Record<string, string> = {\n 'btn.png': kityToolbarAssets.btn,\n 'other.png': kityToolbarAssets.other,\n};\n\nexport function setToolbarAssetUrls(assets: { btn: string; other: string }): void {\n toolbarAssetFileMap = {\n 'btn.png': assets.btn,\n 'other.png': assets.other,\n };\n}\n\nexport function resolveToolbarAssetPath(fileName: string, preferSvg = false): string {\n const normalizedFileName =\n preferSvg && fileName.toLowerCase().endsWith('.png')\n ? `${fileName.slice(0, -4)}.svg`\n : fileName;\n\n const mapped = toolbarAssetFileMap[normalizedFileName];\n if (mapped) {\n return mapped;\n }\n\n throw new Error(`Missing Kity toolbar asset URL for \"${normalizedFileName}\".`);\n}\n"],"mappings":"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","names":["eventHandler","isArray","isString","result","isArray","isString"]}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|