texditor 2.0.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/LICENSE.md +9 -0
- package/README.md +232 -0
- package/dist/core/base/base-model.d.ts +160 -0
- package/dist/core/base/base-model.d.ts.map +1 -0
- package/dist/core/base/event-manager.d.ts +20 -0
- package/dist/core/base/event-manager.d.ts.map +1 -0
- package/dist/core/base/index.d.ts +3 -0
- package/dist/core/base/index.d.ts.map +1 -0
- package/dist/core/base.d.ts +2 -0
- package/dist/core/base.mjs +1 -0
- package/dist/core/block-manager.d.ts +91 -0
- package/dist/core/block-manager.d.ts.map +1 -0
- package/dist/core/commands.d.ts +73 -0
- package/dist/core/commands.d.ts.map +1 -0
- package/dist/core/config.d.ts +11 -0
- package/dist/core/config.d.ts.map +1 -0
- package/dist/core/events.d.ts +121 -0
- package/dist/core/events.d.ts.map +1 -0
- package/dist/core/extensions.d.ts +23 -0
- package/dist/core/extensions.d.ts.map +1 -0
- package/dist/core/history-manager.d.ts +76 -0
- package/dist/core/history-manager.d.ts.map +1 -0
- package/dist/core/i18n.d.ts +29 -0
- package/dist/core/i18n.d.ts.map +1 -0
- package/dist/core/models/action-model.d.ts +54 -0
- package/dist/core/models/action-model.d.ts.map +1 -0
- package/dist/core/models/block-model.d.ts +396 -0
- package/dist/core/models/block-model.d.ts.map +1 -0
- package/dist/core/models/extension-model.d.ts +25 -0
- package/dist/core/models/extension-model.d.ts.map +1 -0
- package/dist/core/models/file-action-model.d.ts +20 -0
- package/dist/core/models/file-action-model.d.ts.map +1 -0
- package/dist/core/models/index.d.ts +7 -0
- package/dist/core/models/index.d.ts.map +1 -0
- package/dist/core/models/tool-model.d.ts +69 -0
- package/dist/core/models/tool-model.d.ts.map +1 -0
- package/dist/core/models.d.ts +2 -0
- package/dist/core/models.mjs +6 -0
- package/dist/core/security/sanitizer.d.ts +65 -0
- package/dist/core/security/sanitizer.d.ts.map +1 -0
- package/dist/core/selection-api.d.ts +52 -0
- package/dist/core/selection-api.d.ts.map +1 -0
- package/dist/core/tools.d.ts +27 -0
- package/dist/core/tools.d.ts.map +1 -0
- package/dist/core/ui/slider.d.ts +50 -0
- package/dist/core/ui/slider.d.ts.map +1 -0
- package/dist/core/ui/toasts.d.ts +23 -0
- package/dist/core/ui/toasts.d.ts.map +1 -0
- package/dist/core/ui/virtual-selection.d.ts +171 -0
- package/dist/core/ui/virtual-selection.d.ts.map +1 -0
- package/dist/entities/actions/convert-action.d.ts +9 -0
- package/dist/entities/actions/convert-action.d.ts.map +1 -0
- package/dist/entities/actions/create-action.d.ts +8 -0
- package/dist/entities/actions/create-action.d.ts.map +1 -0
- package/dist/entities/actions/delete-action.d.ts +8 -0
- package/dist/entities/actions/delete-action.d.ts.map +1 -0
- package/dist/entities/actions/index.d.ts +7 -0
- package/dist/entities/actions/index.d.ts.map +1 -0
- package/dist/entities/actions/move-down-action.d.ts +9 -0
- package/dist/entities/actions/move-down-action.d.ts.map +1 -0
- package/dist/entities/actions/move-up-action.d.ts +9 -0
- package/dist/entities/actions/move-up-action.d.ts.map +1 -0
- package/dist/entities/actions.d.ts +2 -0
- package/dist/entities/actions.mjs +6 -0
- package/dist/entities/blocks/code/index.d.ts +48 -0
- package/dist/entities/blocks/code/index.d.ts.map +1 -0
- package/dist/entities/blocks/code/languages.d.ts +4 -0
- package/dist/entities/blocks/code/languages.d.ts.map +1 -0
- package/dist/entities/blocks/files/actions/DeleteFileAction.d.ts +7 -0
- package/dist/entities/blocks/files/actions/DeleteFileAction.d.ts.map +1 -0
- package/dist/entities/blocks/files/actions/DownloadFileAction.d.ts +12 -0
- package/dist/entities/blocks/files/actions/DownloadFileAction.d.ts.map +1 -0
- package/dist/entities/blocks/files/actions/EditFileAction.d.ts +32 -0
- package/dist/entities/blocks/files/actions/EditFileAction.d.ts.map +1 -0
- package/dist/entities/blocks/files/actions/MoveLeftFileAction.d.ts +8 -0
- package/dist/entities/blocks/files/actions/MoveLeftFileAction.d.ts.map +1 -0
- package/dist/entities/blocks/files/actions/MoveRightFileAction.d.ts +8 -0
- package/dist/entities/blocks/files/actions/MoveRightFileAction.d.ts.map +1 -0
- package/dist/entities/blocks/files/index.d.ts +185 -0
- package/dist/entities/blocks/files/index.d.ts.map +1 -0
- package/dist/entities/blocks/gallery/index.d.ts +60 -0
- package/dist/entities/blocks/gallery/index.d.ts.map +1 -0
- package/dist/entities/blocks/header/H1.d.ts +4 -0
- package/dist/entities/blocks/header/H1.d.ts.map +1 -0
- package/dist/entities/blocks/header/H2.d.ts +6 -0
- package/dist/entities/blocks/header/H2.d.ts.map +1 -0
- package/dist/entities/blocks/header/H3.d.ts +6 -0
- package/dist/entities/blocks/header/H3.d.ts.map +1 -0
- package/dist/entities/blocks/header/H4.d.ts +6 -0
- package/dist/entities/blocks/header/H4.d.ts.map +1 -0
- package/dist/entities/blocks/header/H5.d.ts +6 -0
- package/dist/entities/blocks/header/H5.d.ts.map +1 -0
- package/dist/entities/blocks/header/H6.d.ts +6 -0
- package/dist/entities/blocks/header/H6.d.ts.map +1 -0
- package/dist/entities/blocks/header/index.d.ts +6 -0
- package/dist/entities/blocks/header/index.d.ts.map +1 -0
- package/dist/entities/blocks/index.d.ts +14 -0
- package/dist/entities/blocks/index.d.ts.map +1 -0
- package/dist/entities/blocks/list/index.d.ts +6 -0
- package/dist/entities/blocks/list/index.d.ts.map +1 -0
- package/dist/entities/blocks/list/ol.d.ts +6 -0
- package/dist/entities/blocks/list/ol.d.ts.map +1 -0
- package/dist/entities/blocks/paragraph/index.d.ts +6 -0
- package/dist/entities/blocks/paragraph/index.d.ts.map +1 -0
- package/dist/entities/blocks.d.ts +2 -0
- package/dist/entities/blocks.mjs +13 -0
- package/dist/entities/extensions/delete-selected.d.ts +9 -0
- package/dist/entities/extensions/delete-selected.d.ts.map +1 -0
- package/dist/entities/extensions/index.d.ts +5 -0
- package/dist/entities/extensions/index.d.ts.map +1 -0
- package/dist/entities/extensions/redo.d.ts +8 -0
- package/dist/entities/extensions/redo.d.ts.map +1 -0
- package/dist/entities/extensions/undo.d.ts +8 -0
- package/dist/entities/extensions/undo.d.ts.map +1 -0
- package/dist/entities/extensions.d.ts +2 -0
- package/dist/entities/extensions.mjs +4 -0
- package/dist/entities/tools/bold.d.ts +6 -0
- package/dist/entities/tools/bold.d.ts.map +1 -0
- package/dist/entities/tools/clear-formatting.d.ts +7 -0
- package/dist/entities/tools/clear-formatting.d.ts.map +1 -0
- package/dist/entities/tools/index.d.ts +10 -0
- package/dist/entities/tools/index.d.ts.map +1 -0
- package/dist/entities/tools/inline-code.d.ts +6 -0
- package/dist/entities/tools/inline-code.d.ts.map +1 -0
- package/dist/entities/tools/italic.d.ts +6 -0
- package/dist/entities/tools/italic.d.ts.map +1 -0
- package/dist/entities/tools/link.d.ts +35 -0
- package/dist/entities/tools/link.d.ts.map +1 -0
- package/dist/entities/tools/marker.d.ts +6 -0
- package/dist/entities/tools/marker.d.ts.map +1 -0
- package/dist/entities/tools/subscript.d.ts +6 -0
- package/dist/entities/tools/subscript.d.ts.map +1 -0
- package/dist/entities/tools/superscript.d.ts +6 -0
- package/dist/entities/tools/superscript.d.ts.map +1 -0
- package/dist/entities/tools.d.ts +2 -0
- package/dist/entities/tools.mjs +9 -0
- package/dist/icons/index.d.ts +42 -0
- package/dist/icons/index.d.ts.map +1 -0
- package/dist/locales/en.d.ts +66 -0
- package/dist/locales/en.d.ts.map +1 -0
- package/dist/locales/index.d.ts +4 -0
- package/dist/locales/index.d.ts.map +1 -0
- package/dist/locales/ru.d.ts +66 -0
- package/dist/locales/ru.d.ts.map +1 -0
- package/dist/locales.d.ts +2 -0
- package/dist/locales.mjs +3 -0
- package/dist/main.d.ts +6 -0
- package/dist/node_modules/snappykit/dist/snappykit.mjs +440 -0
- package/dist/node_modules/sortum/dist/sortum.mjs +588 -0
- package/dist/src/core/base/base-model.mjs +184 -0
- package/dist/src/core/base/event-manager.mjs +31 -0
- package/dist/src/core/block-manager.mjs +499 -0
- package/dist/src/core/commands.mjs +311 -0
- package/dist/src/core/config.mjs +12 -0
- package/dist/src/core/events.mjs +369 -0
- package/dist/src/core/extensions.mjs +48 -0
- package/dist/src/core/history-manager.mjs +107 -0
- package/dist/src/core/i18n.mjs +25 -0
- package/dist/src/core/models/action-model.mjs +72 -0
- package/dist/src/core/models/block-model.mjs +619 -0
- package/dist/src/core/models/extension-model.mjs +28 -0
- package/dist/src/core/models/file-action-model.mjs +24 -0
- package/dist/src/core/models/tool-model.mjs +80 -0
- package/dist/src/core/security/sanitizer.mjs +130 -0
- package/dist/src/core/selection-api.mjs +202 -0
- package/dist/src/core/tools.mjs +88 -0
- package/dist/src/core/ui/slider.mjs +81 -0
- package/dist/src/core/ui/toasts.mjs +55 -0
- package/dist/src/core/ui/virtual-selection.mjs +205 -0
- package/dist/src/entities/actions/convert-action.mjs +43 -0
- package/dist/src/entities/actions/create-action.mjs +39 -0
- package/dist/src/entities/actions/delete-action.mjs +19 -0
- package/dist/src/entities/actions/move-down-action.mjs +22 -0
- package/dist/src/entities/actions/move-up-action.mjs +22 -0
- package/dist/src/entities/blocks/code/index.mjs +144 -0
- package/dist/src/entities/blocks/code/languages.mjs +54 -0
- package/dist/src/entities/blocks/files/actions/DeleteFileAction.mjs +21 -0
- package/dist/src/entities/blocks/files/actions/DownloadFileAction.mjs +44 -0
- package/dist/src/entities/blocks/files/actions/EditFileAction.mjs +111 -0
- package/dist/src/entities/blocks/files/actions/MoveLeftFileAction.mjs +24 -0
- package/dist/src/entities/blocks/files/actions/MoveRightFileAction.mjs +24 -0
- package/dist/src/entities/blocks/files/index.mjs +424 -0
- package/dist/src/entities/blocks/gallery/index.mjs +141 -0
- package/dist/src/entities/blocks/header/H1.mjs +5 -0
- package/dist/src/entities/blocks/header/H2.mjs +16 -0
- package/dist/src/entities/blocks/header/H3.mjs +16 -0
- package/dist/src/entities/blocks/header/H4.mjs +16 -0
- package/dist/src/entities/blocks/header/H5.mjs +16 -0
- package/dist/src/entities/blocks/header/H6.mjs +16 -0
- package/dist/src/entities/blocks/header/index.mjs +46 -0
- package/dist/src/entities/blocks/list/index.mjs +51 -0
- package/dist/src/entities/blocks/list/ol.mjs +16 -0
- package/dist/src/entities/blocks/paragraph/index.mjs +46 -0
- package/dist/src/entities/extensions/delete-selected.mjs +27 -0
- package/dist/src/entities/extensions/redo.mjs +22 -0
- package/dist/src/entities/extensions/undo.mjs +22 -0
- package/dist/src/entities/tools/bold.mjs +16 -0
- package/dist/src/entities/tools/clear-formatting.mjs +20 -0
- package/dist/src/entities/tools/inline-code.mjs +19 -0
- package/dist/src/entities/tools/italic.mjs +16 -0
- package/dist/src/entities/tools/link.mjs +89 -0
- package/dist/src/entities/tools/marker.mjs +17 -0
- package/dist/src/entities/tools/subscript.mjs +17 -0
- package/dist/src/entities/tools/superscript.mjs +18 -0
- package/dist/src/icons/index.mjs +4 -0
- package/dist/src/locales/en.mjs +68 -0
- package/dist/src/locales/ru.mjs +68 -0
- package/dist/src/store/currentStore.mjs +8 -0
- package/dist/src/store/mainStore.mjs +4 -0
- package/dist/src/utils/ajax.mjs +35 -0
- package/dist/src/utils/common.mjs +26 -0
- package/dist/src/utils/icon.mjs +12 -0
- package/dist/src/utils/sanitizer.mjs +20 -0
- package/dist/src/views/extensions.mjs +18 -0
- package/dist/src/views/main.mjs +19 -0
- package/dist/src/views/tools.mjs +9 -0
- package/dist/store/currentStore.d.ts +15 -0
- package/dist/store/currentStore.d.ts.map +1 -0
- package/dist/store/mainStore.d.ts +14 -0
- package/dist/store/mainStore.d.ts.map +1 -0
- package/dist/styles/animations.css +1 -0
- package/dist/styles/core/ui/selection.css +1 -0
- package/dist/styles/core/ui/slider.css +1 -0
- package/dist/styles/entities/blocks/code.css +1 -0
- package/dist/styles/entities/blocks/files.css +1 -0
- package/dist/styles/entities/blocks/gallery.css +1 -0
- package/dist/styles/entities/blocks/list.css +1 -0
- package/dist/styles/entities/blocks/paragraph.css +1 -0
- package/dist/styles/entities/tools/inline-code.css +1 -0
- package/dist/styles/entities/tools/link.css +1 -0
- package/dist/styles/texditor.css +1 -0
- package/dist/styles/theme.css +42 -0
- package/dist/texditor.d.ts +68 -0
- package/dist/texditor.d.ts.map +1 -0
- package/dist/texditor.mjs +138 -0
- package/dist/types/core/base/base-model.d.ts +212 -0
- package/dist/types/core/base/base-model.d.ts.map +1 -0
- package/dist/types/core/base/event-manager.d.ts +42 -0
- package/dist/types/core/base/event-manager.d.ts.map +1 -0
- package/dist/types/core/base/index.d.ts +3 -0
- package/dist/types/core/base/index.d.ts.map +1 -0
- package/dist/types/core/block-manager.d.ts +223 -0
- package/dist/types/core/block-manager.d.ts.map +1 -0
- package/dist/types/core/commands.d.ts +93 -0
- package/dist/types/core/commands.d.ts.map +1 -0
- package/dist/types/core/config.d.ts +86 -0
- package/dist/types/core/config.d.ts.map +1 -0
- package/dist/types/core/events.d.ts +58 -0
- package/dist/types/core/events.d.ts.map +1 -0
- package/dist/types/core/extensions.d.ts +19 -0
- package/dist/types/core/extensions.d.ts.map +1 -0
- package/dist/types/core/history-manager.d.ts +72 -0
- package/dist/types/core/history-manager.d.ts.map +1 -0
- package/dist/types/core/http/index.d.ts +2 -0
- package/dist/types/core/http/index.d.ts.map +1 -0
- package/dist/types/core/http/response.d.ts +6 -0
- package/dist/types/core/http/response.d.ts.map +1 -0
- package/dist/types/core/i18n.d.ts +40 -0
- package/dist/types/core/i18n.d.ts.map +1 -0
- package/dist/types/core/index.d.ts +15 -0
- package/dist/types/core/index.d.ts.map +1 -0
- package/dist/types/core/models/action-model.d.ts +46 -0
- package/dist/types/core/models/action-model.d.ts.map +1 -0
- package/dist/types/core/models/block-model.d.ts +404 -0
- package/dist/types/core/models/block-model.d.ts.map +1 -0
- package/dist/types/core/models/extension-model.d.ts +41 -0
- package/dist/types/core/models/extension-model.d.ts.map +1 -0
- package/dist/types/core/models/file-action-model.d.ts +36 -0
- package/dist/types/core/models/file-action-model.d.ts.map +1 -0
- package/dist/types/core/models/index.d.ts +7 -0
- package/dist/types/core/models/index.d.ts.map +1 -0
- package/dist/types/core/models/tool-model.d.ts +54 -0
- package/dist/types/core/models/tool-model.d.ts.map +1 -0
- package/dist/types/core/sanitizer.d.ts +27 -0
- package/dist/types/core/sanitizer.d.ts.map +1 -0
- package/dist/types/core/selection-api.d.ts +116 -0
- package/dist/types/core/selection-api.d.ts.map +1 -0
- package/dist/types/core/tools.d.ts +35 -0
- package/dist/types/core/tools.d.ts.map +1 -0
- package/dist/types/core/ui/index.d.ts +4 -0
- package/dist/types/core/ui/index.d.ts.map +1 -0
- package/dist/types/core/ui/slider.d.ts +45 -0
- package/dist/types/core/ui/slider.d.ts.map +1 -0
- package/dist/types/core/ui/toasts.d.ts +58 -0
- package/dist/types/core/ui/toasts.d.ts.map +1 -0
- package/dist/types/core/ui/virtual-selection.d.ts +83 -0
- package/dist/types/core/ui/virtual-selection.d.ts.map +1 -0
- package/dist/types/entities/blocks/code.d.ts +4 -0
- package/dist/types/entities/blocks/code.d.ts.map +1 -0
- package/dist/types/entities/blocks/files.d.ts +170 -0
- package/dist/types/entities/blocks/files.d.ts.map +1 -0
- package/dist/types/entities/blocks/gallery.d.ts +40 -0
- package/dist/types/entities/blocks/gallery.d.ts.map +1 -0
- package/dist/types/entities/blocks/header.d.ts +4 -0
- package/dist/types/entities/blocks/header.d.ts.map +1 -0
- package/dist/types/entities/blocks/index.d.ts +7 -0
- package/dist/types/entities/blocks/index.d.ts.map +1 -0
- package/dist/types/entities/blocks/list.d.ts +4 -0
- package/dist/types/entities/blocks/list.d.ts.map +1 -0
- package/dist/types/entities/blocks/paragraph.d.ts +4 -0
- package/dist/types/entities/blocks/paragraph.d.ts.map +1 -0
- package/dist/types/entities/index.d.ts +2 -0
- package/dist/types/entities/index.d.ts.map +1 -0
- package/dist/types/index.d.ts +5 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/texditor.d.ts +66 -0
- package/dist/types/texditor.d.ts.map +1 -0
- package/dist/types/utils/ajax.d.ts +31 -0
- package/dist/types/utils/ajax.d.ts.map +1 -0
- package/dist/types/utils/icon.d.ts +10 -0
- package/dist/types/utils/icon.d.ts.map +1 -0
- package/dist/types/utils/index.d.ts +3 -0
- package/dist/types/utils/index.d.ts.map +1 -0
- package/dist/utils/ajax.d.ts +9 -0
- package/dist/utils/ajax.d.ts.map +1 -0
- package/dist/utils/common.d.ts +28 -0
- package/dist/utils/common.d.ts.map +1 -0
- package/dist/utils/icon.d.ts +12 -0
- package/dist/utils/icon.d.ts.map +1 -0
- package/dist/utils/index.d.ts +5 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/sanitizer.d.ts +8 -0
- package/dist/utils/sanitizer.d.ts.map +1 -0
- package/dist/views/extensions.d.ts +3 -0
- package/dist/views/extensions.d.ts.map +1 -0
- package/dist/views/main.d.ts +3 -0
- package/dist/views/main.d.ts.map +1 -0
- package/dist/views/tools.d.ts +2 -0
- package/dist/views/tools.d.ts.map +1 -0
- package/package.json +75 -0
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Q as e, S as t, Te as n, b as r, g as i, m as a, y as o } from "../../node_modules/snappykit/dist/snappykit.mjs";
|
|
2
|
+
//#region src/core/extensions.ts
|
|
3
|
+
var s = class {
|
|
4
|
+
constructor(e) {
|
|
5
|
+
this.extensions = [], this.eventId = ".ext" + a(12), this.editor = e;
|
|
6
|
+
let t = this.editor.config.get("extensions", []);
|
|
7
|
+
t && t.length && t.forEach((e) => {
|
|
8
|
+
this.extensions.push(new e(this.editor));
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
getExtensions() {
|
|
12
|
+
return this.extensions;
|
|
13
|
+
}
|
|
14
|
+
refresh() {
|
|
15
|
+
this.getExtensions().forEach((e) => {
|
|
16
|
+
let t = e.getElement();
|
|
17
|
+
t && (e.isActive() ? r(t, "tex-extension-not-active") : o(t, "tex-extension-not-active"), e.isVisible() ? i(t, "display", "") : i(t, "display", "none"));
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
__apply() {
|
|
21
|
+
let { config: e } = this.editor, a = this.editor.getRoot();
|
|
22
|
+
if (e.get("extensionsFixed", !0)) {
|
|
23
|
+
let s = () => {
|
|
24
|
+
a && t(".tex", (n) => {
|
|
25
|
+
let a = window.pageYOffset || document.documentElement.scrollTop, s = n.getBoundingClientRect(), c = s.left, l = n.offsetWidth;
|
|
26
|
+
t(".tex-extensions", (t) => {
|
|
27
|
+
if (a >= s.top + a) {
|
|
28
|
+
o(t, "tex-extensions-fixed"), i(t, {
|
|
29
|
+
left: c,
|
|
30
|
+
width: l
|
|
31
|
+
});
|
|
32
|
+
let n = e.get("extensionsFixedStyle", !1);
|
|
33
|
+
n && i(t, n);
|
|
34
|
+
} else r(t, "tex-extensions-fixed"), t.removeAttribute("style");
|
|
35
|
+
}, n);
|
|
36
|
+
}, a);
|
|
37
|
+
}, c = this.eventId;
|
|
38
|
+
n(window, "scroll" + c, s), n(window, "load" + c, s), n(window, "resize" + c, s);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
destroy() {
|
|
42
|
+
this.extensions.forEach((e) => e.destroy());
|
|
43
|
+
let t = this.eventId;
|
|
44
|
+
e(window, "scroll" + t), e(window, "load" + t), e(window, "resize" + t);
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
//#endregion
|
|
48
|
+
export { s as default };
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
//#region src/core/history-manager.ts
|
|
2
|
+
var e = class {
|
|
3
|
+
constructor(e) {
|
|
4
|
+
this.history = [], this.future = [], this.maxHistorySize = 100, this.currentState = null, this.isRestoring = !1, this.saveInterval = 800, this.saveTimer = null, this.editor = e;
|
|
5
|
+
}
|
|
6
|
+
scheduleSave() {
|
|
7
|
+
this.isRestoring || (this.saveTimer &&= (clearTimeout(this.saveTimer), null), this.saveTimer = setTimeout(() => {
|
|
8
|
+
this.doSave();
|
|
9
|
+
}, this.saveInterval));
|
|
10
|
+
}
|
|
11
|
+
save() {
|
|
12
|
+
this.isRestoring || (this.saveTimer &&= (clearTimeout(this.saveTimer), null), this.doSave());
|
|
13
|
+
}
|
|
14
|
+
doSave() {
|
|
15
|
+
let { blockManager: e, events: t } = this.editor;
|
|
16
|
+
try {
|
|
17
|
+
let n = this.editor.getContent(), r = this.getEditorSelection(), i = e.getIndex(), a = e.getModel(), o = {
|
|
18
|
+
index: i,
|
|
19
|
+
...r
|
|
20
|
+
};
|
|
21
|
+
a?.isEditableItems() && (o.itemIndex = a.getItemIndex());
|
|
22
|
+
let s = {
|
|
23
|
+
content: n,
|
|
24
|
+
selection: o,
|
|
25
|
+
timestamp: Date.now()
|
|
26
|
+
};
|
|
27
|
+
(!this.currentState || !this.statesEqual(this.currentState, s)) && (this.currentState && (this.history.push(this.currentState), this.history.length > this.maxHistorySize && this.history.shift()), this.currentState = s, this.future = [], t.change({
|
|
28
|
+
type: "historySave",
|
|
29
|
+
state: this.currentState,
|
|
30
|
+
history: this.history,
|
|
31
|
+
future: this.future
|
|
32
|
+
}));
|
|
33
|
+
} catch (e) {
|
|
34
|
+
console.error("Error saving state:", e);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
statesEqual(e, t) {
|
|
38
|
+
return !e || !t ? !1 : this.isDeepEqual(e.content, t.content);
|
|
39
|
+
}
|
|
40
|
+
isDeepEqual(e, t) {
|
|
41
|
+
if (e === t) return !0;
|
|
42
|
+
if (typeof e != "object" || !e || typeof t != "object" || !t) return !1;
|
|
43
|
+
let n = Object.keys(e), r = Object.keys(t);
|
|
44
|
+
if (n.length !== r.length) return !1;
|
|
45
|
+
for (let i of n) {
|
|
46
|
+
if (!r.includes(i)) return !1;
|
|
47
|
+
let n = e[i], a = t[i];
|
|
48
|
+
if (typeof n == "object" && n && typeof a == "object" && a) {
|
|
49
|
+
if (!this.isDeepEqual(n, a)) return !1;
|
|
50
|
+
} else if (n !== a) return !1;
|
|
51
|
+
}
|
|
52
|
+
return !0;
|
|
53
|
+
}
|
|
54
|
+
undo() {
|
|
55
|
+
if (this.history.length === 0) return !1;
|
|
56
|
+
try {
|
|
57
|
+
return this.isRestoring = !0, this.currentState && this.future.push(this.currentState), this.currentState = this.history.pop(), this.restoreState("undo", this.currentState), !0;
|
|
58
|
+
} catch (e) {
|
|
59
|
+
return this.isRestoring = !1, console.error("Undo error:", e), !1;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
redo() {
|
|
63
|
+
if (this.future.length === 0) return !1;
|
|
64
|
+
try {
|
|
65
|
+
return this.isRestoring = !0, this.currentState && this.history.push(this.currentState), this.currentState = this.future.pop(), this.restoreState("redo", this.currentState), !0;
|
|
66
|
+
} catch (e) {
|
|
67
|
+
return this.isRestoring = !1, console.error("Redo error:", e), !1;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
clear() {
|
|
71
|
+
this.history = [], this.future = [], this.currentState = null, this.saveTimer &&= (clearTimeout(this.saveTimer), null);
|
|
72
|
+
}
|
|
73
|
+
getEditorSelection() {
|
|
74
|
+
let { selectionApi: e } = this.editor;
|
|
75
|
+
try {
|
|
76
|
+
let { position: t } = e.getState();
|
|
77
|
+
return {
|
|
78
|
+
start: t.start < 0 ? 0 : t.start,
|
|
79
|
+
end: t.end < 0 ? 0 : t.end
|
|
80
|
+
};
|
|
81
|
+
} catch (e) {
|
|
82
|
+
return console.warn(e), {
|
|
83
|
+
start: 0,
|
|
84
|
+
end: 0
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
restoreState(e, t) {
|
|
89
|
+
this.editor.setContent(t.content, t.selection.index || 0), this.isRestoring = !1, this.editor.events.change({
|
|
90
|
+
type: e,
|
|
91
|
+
state: this.currentState,
|
|
92
|
+
history: this.history,
|
|
93
|
+
future: this.future
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
canUndo() {
|
|
97
|
+
return this.history.length > 0;
|
|
98
|
+
}
|
|
99
|
+
canRedo() {
|
|
100
|
+
return this.future.length > 0;
|
|
101
|
+
}
|
|
102
|
+
setSaveInterval(e) {
|
|
103
|
+
this.saveInterval = e;
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
//#endregion
|
|
107
|
+
export { e as default };
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { EnLocale as e } from "../locales/en.mjs";
|
|
2
|
+
//#region src/core/i18n.ts
|
|
3
|
+
var t = class {
|
|
4
|
+
constructor(t) {
|
|
5
|
+
this.locale = "en", this.defaultLocale = "en", this.translations = {}, this.editor = t;
|
|
6
|
+
let { config: n } = this.editor;
|
|
7
|
+
this.defaultLocale = n.get("defaultLocale") || "en", this.locale = n.get("locale", this.defaultLocale) || "en", this.translations.en = e;
|
|
8
|
+
let r = n.get("locales");
|
|
9
|
+
Array.isArray(r) && r.forEach((e) => {
|
|
10
|
+
e.code && e.data && (this.translations[e.code] = e.data);
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
getLocale() {
|
|
14
|
+
return this.locale;
|
|
15
|
+
}
|
|
16
|
+
getDefaultLocale() {
|
|
17
|
+
return this.defaultLocale;
|
|
18
|
+
}
|
|
19
|
+
get(e, t = "") {
|
|
20
|
+
let n = this.getLocale(), r = this.getDefaultLocale(), i = this.translations[n], a = this.translations[r];
|
|
21
|
+
return i ? i[e] || a?.[e] || t || "" : a?.[e] || t || "";
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
//#endregion
|
|
25
|
+
export { t as default };
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { E as e, S as t, Z as n, g as r, ie as i, se as a, w as o, y as s } from "../../../node_modules/snappykit/dist/snappykit.mjs";
|
|
2
|
+
import { IconArrowRight as c } from "../../icons/index.mjs";
|
|
3
|
+
import { renderIcon as l } from "../../utils/icon.mjs";
|
|
4
|
+
import u from "../base/base-model.mjs";
|
|
5
|
+
//#region src/core/models/action-model.ts
|
|
6
|
+
var d = class extends u {
|
|
7
|
+
constructor(...e) {
|
|
8
|
+
super(...e), this.blockElement = null;
|
|
9
|
+
}
|
|
10
|
+
static setup(e) {
|
|
11
|
+
return super.setup(e);
|
|
12
|
+
}
|
|
13
|
+
getBlockElement() {
|
|
14
|
+
return this.blockElement;
|
|
15
|
+
}
|
|
16
|
+
parentConfig() {
|
|
17
|
+
return {
|
|
18
|
+
__modelCode: "action",
|
|
19
|
+
visibleTitle: !0,
|
|
20
|
+
menu: !1,
|
|
21
|
+
confirm: !1
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
parentOnCreateElement(e) {
|
|
25
|
+
this.isConfirm() && s(e, "tex-action-verifiable");
|
|
26
|
+
let t = i("span", (e) => {
|
|
27
|
+
a(e, l(c, {
|
|
28
|
+
width: 12,
|
|
29
|
+
height: 12
|
|
30
|
+
}));
|
|
31
|
+
});
|
|
32
|
+
this.isDropdown() && o(e, t);
|
|
33
|
+
}
|
|
34
|
+
confirm(t) {
|
|
35
|
+
let { events: o, i18n: c } = this.editor, u = this.getElement(), d = this.getIcon();
|
|
36
|
+
u && (r(u, "display", "none"), e(u, i("div", (e) => {
|
|
37
|
+
s(e, "tex-action tex-action-confirm tex-action-" + this.getName() + "-confirm"), d && a(e, l(d, {
|
|
38
|
+
width: 20,
|
|
39
|
+
height: 20
|
|
40
|
+
})), e.innerHTML += c.get("confirmAction", "Confirm action"), n(e, "click.am", () => {
|
|
41
|
+
this.onClick(t), e.remove(), r(u, "display", ""), o.refresh();
|
|
42
|
+
});
|
|
43
|
+
})));
|
|
44
|
+
}
|
|
45
|
+
parentOnClick(e) {
|
|
46
|
+
let { events: n, tools: r } = this.editor, i = this.getBlockElement();
|
|
47
|
+
if (i) {
|
|
48
|
+
if (this.isConfirm()) this.confirm(e);
|
|
49
|
+
else if (this.isDropdown()) {
|
|
50
|
+
let e = this.dropdown();
|
|
51
|
+
t(".tex-actions-content-body", (e) => a(e, ""), i), t(".tex-actions-content-dropdown", (t) => {
|
|
52
|
+
o(t, e), s(t, "tex-active");
|
|
53
|
+
}, i);
|
|
54
|
+
} else this.onClick(e), n.refresh();
|
|
55
|
+
r.hide();
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
dropdown() {
|
|
59
|
+
return i("div");
|
|
60
|
+
}
|
|
61
|
+
isDropdown() {
|
|
62
|
+
return this.getConfig("dropdown", !1);
|
|
63
|
+
}
|
|
64
|
+
isConfirm() {
|
|
65
|
+
return this.getConfig("confirm", !1);
|
|
66
|
+
}
|
|
67
|
+
__setBlockElement(e) {
|
|
68
|
+
this.blockElement = e;
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
//#endregion
|
|
72
|
+
export { d as default };
|