@formulaxjs/kity-runtime 0.1.0 → 0.3.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 +3 -4
- package/dist/{chunk-EKIJQ64F.js → chunk-AOMNUFFB.js} +73 -19
- package/dist/chunk-AOMNUFFB.js.map +1 -0
- package/dist/index.cjs +389 -131
- package/dist/index.cjs.map +1 -1
- package/dist/index.global.js +369 -160
- package/dist/index.global.js.map +1 -1
- package/dist/index.js +186 -54
- package/dist/index.js.map +1 -1
- package/dist/{install-ARHGHFNJ.js → install-TIZBWEFU.js} +62 -45
- package/dist/install-TIZBWEFU.js.map +1 -0
- package/dist/{start-GQH6XUBI.js → start-LTYA5XON.js} +2 -2
- package/package.json +9 -5
- package/public/assets/images/scrollbar/custom/bar-bg.png +0 -0
- package/public/assets/images/scrollbar/custom/bar.png +0 -0
- package/public/assets/images/scrollbar/custom/bg.png +0 -0
- package/public/assets/images/scrollbar/custom/bottom.png +0 -0
- package/public/assets/images/scrollbar/custom/btn.png +0 -0
- package/public/assets/images/scrollbar/custom/down.png +0 -0
- package/public/assets/images/scrollbar/custom/top.png +0 -0
- package/public/assets/images/scrollbar/custom/up.png +0 -0
- package/public/assets/images/scrollbar/edit/bar-bg.png +0 -0
- package/public/assets/images/scrollbar/edit/bar-left.png +0 -0
- package/public/assets/images/scrollbar/edit/bar-right.png +0 -0
- package/public/assets/images/scrollbar/edit/thumb-bg.png +0 -0
- package/public/assets/images/scrollbar/edit/thumb-left.png +0 -0
- package/public/assets/images/scrollbar/edit/thumb-right.png +0 -0
- package/public/assets/images/toolbar/btn.png +0 -0
- package/public/assets/images/toolbar/other.png +0 -0
- package/public/assets/styles/base.css +47 -0
- package/public/assets/styles/editor.css +3 -0
- package/public/assets/styles/page.css +12 -0
- package/public/assets/styles/scrollbar.css +78 -0
- package/public/assets/styles/ui.css +593 -0
- package/public/assets/theme/default/fui.css +540 -0
- package/public/assets/theme/default/images/close.png +0 -0
- package/public/assets/theme/default/images/down.png +0 -0
- package/public/assets/theme/default/images/open.png +0 -0
- package/public/assets/theme/default/images/up.png +0 -0
- package/public/resource/KF_AMS_BB.woff +0 -0
- package/public/resource/KF_AMS_CAL.woff +0 -0
- package/public/resource/KF_AMS_FRAK.woff +0 -0
- package/public/resource/KF_AMS_MAIN.woff +0 -0
- package/public/resource/KF_AMS_ROMAN.woff +0 -0
- package/dist/chunk-EKIJQ64F.js.map +0 -1
- package/dist/install-ARHGHFNJ.js.map +0 -1
- /package/dist/{start-GQH6XUBI.js.map → start-LTYA5XON.js.map} +0 -0
package/README.md
CHANGED
|
@@ -2,21 +2,20 @@
|
|
|
2
2
|
|
|
3
3
|
Legacy KityFormula runtime adapter for FormulaX.
|
|
4
4
|
|
|
5
|
-
`@formulaxjs/kity-runtime` packages the compatibility runtime that powers FormulaX's Kity-based editing and rendering flows. It
|
|
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
6
|
|
|
7
7
|
> Status: experimental. Public APIs may change before the first stable release.
|
|
8
8
|
|
|
9
9
|
## Install
|
|
10
10
|
|
|
11
11
|
```bash
|
|
12
|
-
pnpm add @formulaxjs/kity-runtime
|
|
12
|
+
pnpm add @formulaxjs/kity-runtime
|
|
13
13
|
```
|
|
14
14
|
|
|
15
15
|
## Highlights
|
|
16
16
|
|
|
17
17
|
- `ensureKityRuntime` for lazy runtime bootstrapping
|
|
18
18
|
- `createKityEditor` and `mountKityEditor` for mounting a Kity editor into the DOM
|
|
19
|
-
- `FormulaXEditor` as a small wrapper around the mounted runtime
|
|
20
19
|
- Legacy compatibility exports used by existing KityFormula-oriented integrations
|
|
21
20
|
|
|
22
21
|
## Example
|
|
@@ -39,4 +38,4 @@ console.log(handle.getLatex());
|
|
|
39
38
|
|
|
40
39
|
## Package role
|
|
41
40
|
|
|
42
|
-
Use this package when you need the legacy Kity editing
|
|
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.
|
|
@@ -1,3 +1,48 @@
|
|
|
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
|
+
// src/asset-manifest.ts
|
|
26
|
+
var kityFontAssets = {
|
|
27
|
+
KF_AMS_BB: KF_AMS_BB_default,
|
|
28
|
+
KF_AMS_CAL: KF_AMS_CAL_default,
|
|
29
|
+
KF_AMS_FRAK: KF_AMS_FRAK_default,
|
|
30
|
+
KF_AMS_MAIN: KF_AMS_MAIN_default,
|
|
31
|
+
KF_AMS_ROMAN: KF_AMS_ROMAN_default
|
|
32
|
+
};
|
|
33
|
+
var kityToolbarAssets = {
|
|
34
|
+
btn: btn_default,
|
|
35
|
+
other: other_default
|
|
36
|
+
};
|
|
37
|
+
var kityStyleAssets = {
|
|
38
|
+
editor: editor_default
|
|
39
|
+
};
|
|
40
|
+
var kityAssetManifest = {
|
|
41
|
+
fonts: kityFontAssets,
|
|
42
|
+
toolbar: kityToolbarAssets,
|
|
43
|
+
styles: kityStyleAssets
|
|
44
|
+
};
|
|
45
|
+
|
|
1
46
|
// src/vendor/legacy-box-type.ts
|
|
2
47
|
var legacyBoxType = {
|
|
3
48
|
DETACHED: 1,
|
|
@@ -385,24 +430,25 @@ function getClassList(node) {
|
|
|
385
430
|
}
|
|
386
431
|
|
|
387
432
|
// src/vendor/legacy-ui-utils.ts
|
|
433
|
+
var legacyUiUtils = {
|
|
434
|
+
ele: createElement,
|
|
435
|
+
getRectBox,
|
|
436
|
+
on(target, type, fn) {
|
|
437
|
+
addEvent(target, type, fn);
|
|
438
|
+
return this;
|
|
439
|
+
},
|
|
440
|
+
delegate(target, selector, type, fn) {
|
|
441
|
+
delegateEvent(target, selector, type, fn);
|
|
442
|
+
return this;
|
|
443
|
+
},
|
|
444
|
+
publish(topic, ...args) {
|
|
445
|
+
publish(topic, ...args);
|
|
446
|
+
},
|
|
447
|
+
subscribe,
|
|
448
|
+
getClassList
|
|
449
|
+
};
|
|
388
450
|
function createLegacyUiUtils() {
|
|
389
|
-
return
|
|
390
|
-
ele: createElement,
|
|
391
|
-
getRectBox,
|
|
392
|
-
on(target, type, fn) {
|
|
393
|
-
addEvent(target, type, fn);
|
|
394
|
-
return this;
|
|
395
|
-
},
|
|
396
|
-
delegate(target, selector, type, fn) {
|
|
397
|
-
delegateEvent(target, selector, type, fn);
|
|
398
|
-
return this;
|
|
399
|
-
},
|
|
400
|
-
publish(topic, ...args) {
|
|
401
|
-
publish(topic, ...args);
|
|
402
|
-
},
|
|
403
|
-
subscribe,
|
|
404
|
-
getClassList
|
|
405
|
-
};
|
|
451
|
+
return legacyUiUtils;
|
|
406
452
|
}
|
|
407
453
|
|
|
408
454
|
// src/vendor/other-position.ts
|
|
@@ -850,7 +896,10 @@ var legacyOtherPosition = {
|
|
|
850
896
|
};
|
|
851
897
|
|
|
852
898
|
// src/toolbar-assets.ts
|
|
853
|
-
var toolbarAssetFileMap = {
|
|
899
|
+
var toolbarAssetFileMap = {
|
|
900
|
+
"btn.png": kityToolbarAssets.btn,
|
|
901
|
+
"other.png": kityToolbarAssets.other
|
|
902
|
+
};
|
|
854
903
|
function setToolbarAssetUrls(assets) {
|
|
855
904
|
toolbarAssetFileMap = {
|
|
856
905
|
"btn.png": assets.btn,
|
|
@@ -867,6 +916,10 @@ function resolveToolbarAssetPath(fileName, preferSvg = false) {
|
|
|
867
916
|
}
|
|
868
917
|
|
|
869
918
|
export {
|
|
919
|
+
kityFontAssets,
|
|
920
|
+
kityToolbarAssets,
|
|
921
|
+
kityStyleAssets,
|
|
922
|
+
kityAssetManifest,
|
|
870
923
|
legacyBoxType,
|
|
871
924
|
legacyOtherPosition,
|
|
872
925
|
utils_default,
|
|
@@ -889,8 +942,9 @@ export {
|
|
|
889
942
|
subscribe,
|
|
890
943
|
getRectBox,
|
|
891
944
|
getClassList,
|
|
945
|
+
legacyUiUtils,
|
|
892
946
|
createLegacyUiUtils,
|
|
893
947
|
setToolbarAssetUrls,
|
|
894
948
|
resolveToolbarAssetPath
|
|
895
949
|
};
|
|
896
|
-
//# sourceMappingURL=chunk-
|
|
950
|
+
//# sourceMappingURL=chunk-AOMNUFFB.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/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\nexport type KityFontAssets = {\n KF_AMS_BB: string;\n KF_AMS_CAL: string;\n KF_AMS_FRAK: string;\n KF_AMS_MAIN: string;\n KF_AMS_ROMAN: string;\n};\n\nexport type KityToolbarAssets = {\n btn: string;\n other: string;\n};\n\nexport type KityStyleAssets = {\n editor: string;\n};\n\nexport type KityAssetManifest = {\n fonts: KityFontAssets;\n toolbar: KityToolbarAssets;\n styles: KityStyleAssets;\n};\n\nexport const kityFontAssets = {\n KF_AMS_BB: kfAmsBbUrl,\n KF_AMS_CAL: kfAmsCalUrl,\n KF_AMS_FRAK: kfAmsFrakUrl,\n KF_AMS_MAIN: kfAmsMainUrl,\n KF_AMS_ROMAN: kfAmsRomanUrl,\n} satisfies KityFontAssets;\n\nexport const kityToolbarAssets = {\n btn: btnUrl,\n other: otherUrl,\n} satisfies KityToolbarAssets;\n\nexport const kityStyleAssets = {\n editor: editorCssUrl,\n} satisfies KityStyleAssets;\n\nexport const kityAssetManifest = {\n fonts: kityFontAssets,\n toolbar: kityToolbarAssets,\n styles: kityStyleAssets,\n} satisfies KityAssetManifest;\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} as const;\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 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"]}
|