@brandup/ui-richeditor 1.0.42 → 1.0.43
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 +1 -1
- package/package.json +2 -2
- package/source/richeditor.ts +5 -4
- package/source/selection.ts +5 -3
package/README.md
CHANGED
|
@@ -151,7 +151,7 @@ new RichEditor(elem, { format: true, actions: ["emoji", "erase", "undo", "redo"]
|
|
|
151
151
|
- **Shift+Enter** или **Ctrl/Cmd+Enter** → мягкий перенос (`<br>`) внутри абзаца;
|
|
152
152
|
- блуждающий текст и `<div>` нормализуются в `<p>` при вводе.
|
|
153
153
|
|
|
154
|
-
Опция `paragraph: "break"` меняет
|
|
154
|
+
Опция `paragraph: "break"` меняет это: Enter даёт мягкий перенос, а модификатор в этом режиме ничего не меняет — пустая строка набирается двумя переносами, как в мессенджерах (отдельный абзац дал бы в значении ровно её же). Это важно при `storage: "markdown"`: в режиме по умолчанию каждый Enter уходит в значение пустой строкой (`\n\n`), а в `break` — одним переносом (`\n`).
|
|
155
155
|
|
|
156
156
|
В этом режиме абзацных блоков в содержимом нет вовсе: значение загружается плоским текстом, где каждый `\n` становится `<br>` внутри единственного `<p>`. Иначе два переноса рисовались бы двумя абзацами, а у хоста без отступов между ними это неотличимо от одного переноса — значение расходилось бы с видимым текстом.
|
|
157
157
|
|
package/package.json
CHANGED
|
@@ -27,12 +27,12 @@
|
|
|
27
27
|
"email": "it@brandup.online"
|
|
28
28
|
},
|
|
29
29
|
"license": "Apache-2.0",
|
|
30
|
-
"version": "1.0.
|
|
30
|
+
"version": "1.0.43",
|
|
31
31
|
"main": "source/index.ts",
|
|
32
32
|
"types": "source/index.ts",
|
|
33
33
|
"dependencies": {
|
|
34
34
|
"@brandup/ui": "^2.0.7",
|
|
35
|
-
"@brandup/ui-kit": "^1.0.
|
|
35
|
+
"@brandup/ui-kit": "^1.0.43"
|
|
36
36
|
},
|
|
37
37
|
"files": [
|
|
38
38
|
"source",
|
package/source/richeditor.ts
CHANGED
|
@@ -1047,14 +1047,15 @@ export default class RichEditor extends UIElementBound<RichEditorEvents> {
|
|
|
1047
1047
|
if (this.readonly) return;
|
|
1048
1048
|
|
|
1049
1049
|
// В режиме block Enter — новый абзац (<p>), модификатор — мягкий перенос (<br>).
|
|
1050
|
-
// В режиме break
|
|
1051
|
-
//
|
|
1052
|
-
//
|
|
1050
|
+
// В режиме break строку переносят оба нажатия: пустая строка набирается двумя
|
|
1051
|
+
// переносами, как в мессенджерах, и отдельный абзац дал бы в значении ровно её же.
|
|
1052
|
+
// Внутри блока правило берётся у его типа: из цитаты и кода Enter выходит,
|
|
1053
|
+
// а модификатор переносит строку внутри.
|
|
1053
1054
|
const withModifier = e.shiftKey || e.ctrlKey || e.metaKey;
|
|
1054
1055
|
const current = this.currentBlock;
|
|
1055
1056
|
const breaks =
|
|
1056
1057
|
current === DEFAULT_BLOCK ? this.paragraph === "break" : BLOCK_TYPES[current].enter === "break";
|
|
1057
|
-
const soft = breaks
|
|
1058
|
+
const soft = breaks || withModifier;
|
|
1058
1059
|
|
|
1059
1060
|
this.__history?.record("op");
|
|
1060
1061
|
// Из блока выходят тем же нажатием, что делит его: продолжать цитату или код
|
package/source/selection.ts
CHANGED
|
@@ -462,12 +462,14 @@ export function cleanupFormatting(root: HTMLElement) {
|
|
|
462
462
|
const el = queue.pop()!;
|
|
463
463
|
if (!el.isConnected || !root.contains(el)) continue;
|
|
464
464
|
|
|
465
|
-
//
|
|
466
|
-
//
|
|
465
|
+
// Тег без текста: оформлять в нём нечего. Разворачиваем, а не удаляем — внутри может
|
|
466
|
+
// лежать перенос строки, и вместе с тегом он унёс бы разделение строк (снятие формата
|
|
467
|
+
// с нескольких строк схлопывало их в одну). Пустой совсем — исчезнет и так.
|
|
468
|
+
// После правки соседи могут стать смежными одинаковыми, а родитель — опустеть.
|
|
467
469
|
if (el.textContent === "") {
|
|
468
470
|
enqueue(el.nextSibling);
|
|
469
471
|
enqueue(el.parentElement);
|
|
470
|
-
el
|
|
472
|
+
unwrapElement(el);
|
|
471
473
|
continue;
|
|
472
474
|
}
|
|
473
475
|
|