@brandup/ui-textbox 1.0.49 → 1.0.51
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 +4 -4
- package/package.json +4 -4
- package/source/textbox.less +0 -2
- package/source/textbox.ts +5 -2
package/README.md
CHANGED
|
@@ -56,7 +56,7 @@ textbox.on(CHANGE_EVENT, (data: ChangeEventData) => {
|
|
|
56
56
|
| `data-format` | Включает форматирование текста (только для `type="text"`) |
|
|
57
57
|
| `data-format-tools` | Состав инструментов форматирования через пробел (по умолчанию все): `bold italic strike underline spoiler code` |
|
|
58
58
|
| `data-editor-actions` | Кнопки действий в панели через пробел (по умолчанию нет): `erase undo redo` |
|
|
59
|
-
| `data-blocks` | Типы блоков многострочного поля через
|
|
59
|
+
| `data-blocks` | Типы блоков многострочного поля через пробел: `quote code`. Подключаются только объявлением — без атрибута поле остаётся обычным текстом, и панель не показывается |
|
|
60
60
|
| `data-format-storage` | Формат хранения значения: `html` (по умолчанию) или `markdown` |
|
|
61
61
|
| `data-format-md-<tool>` | Markdown-маркер инструмента: `bold` — `**`, `italic` — `_`, `strike` — `~`, `underline` — `__`, `spoiler` — `\|\|`, `code` — `` ` `` |
|
|
62
62
|
|
|
@@ -64,8 +64,6 @@ textbox.on(CHANGE_EVENT, (data: ChangeEventData) => {
|
|
|
64
64
|
|
|
65
65
|
Атрибут `data-format` включает панель форматирования с инструментами: жирный, курсив, зачёркивание, подчёркивание, спойлер, моноширинный. Панель всплывает над контролом, пока он в фокусе (класс состояния `focused`). Работает поверх существующего `contenteditable`-редактора, поэтому доступно только для текстового ввода (`type="text"` и `<textarea>`).
|
|
66
66
|
|
|
67
|
-
Кнопка спойлера в панели временно скрыта (см. [`@brandup/ui-richeditor`](../brandup-ui-richeditor)): сам инструмент работает — значение разбирается, показывается и сохраняется.
|
|
68
|
-
|
|
69
67
|
```html
|
|
70
68
|
<!-- все инструменты, хранение в HTML -->
|
|
71
69
|
<textarea data-content-script="textbox" data-format></textarea>
|
|
@@ -92,12 +90,14 @@ textbox.on(CHANGE_EVENT, (data: ChangeEventData) => {
|
|
|
92
90
|
|
|
93
91
|
### Блоки — `data-blocks`
|
|
94
92
|
|
|
95
|
-
В многострочном поле (`<textarea>`) верхний уровень состоит из блоков. Обычный текст доступен всегда, цитата (`quote`) и блок кода (`code`)
|
|
93
|
+
В многострочном поле (`<textarea>`) верхний уровень состоит из блоков. Обычный текст доступен всегда, а цитата (`quote`) и блок кода (`code`) подключаются явно — списком через пробел:
|
|
96
94
|
|
|
97
95
|
```html
|
|
98
96
|
<textarea data-content-script="textbox" data-format data-blocks="quote"></textarea>
|
|
99
97
|
```
|
|
100
98
|
|
|
99
|
+
Без атрибута поле остаётся обычным текстом, и панель форматирования сама по себе не появляется — как и действия, блоки включают объявлением. Пустое значение атрибута равносильно его отсутствию.
|
|
100
|
+
|
|
101
101
|
**Enter** внутри блока заканчивает его, **Shift+Enter** переносит строку внутри, **Backspace** в начале блока возвращает обычный текст. Разбор, хранение и правку блоков описывает [`@brandup/ui-richeditor`](../brandup-ui-richeditor).
|
|
102
102
|
|
|
103
103
|
### Применение формата
|
package/package.json
CHANGED
|
@@ -24,15 +24,15 @@
|
|
|
24
24
|
"email": "it@brandup.online"
|
|
25
25
|
},
|
|
26
26
|
"license": "Apache-2.0",
|
|
27
|
-
"version": "1.0.
|
|
27
|
+
"version": "1.0.51",
|
|
28
28
|
"main": "source/index.ts",
|
|
29
29
|
"types": "source/index.ts",
|
|
30
30
|
"dependencies": {
|
|
31
31
|
"@brandup/ui": "^2.0.9",
|
|
32
32
|
"@brandup/ui-helpers": "^2.0.9",
|
|
33
|
-
"@brandup/ui-input": "^1.0.
|
|
34
|
-
"@brandup/ui-kit": "^1.0.
|
|
35
|
-
"@brandup/ui-richeditor": "^1.0.
|
|
33
|
+
"@brandup/ui-input": "^1.0.51",
|
|
34
|
+
"@brandup/ui-kit": "^1.0.51",
|
|
35
|
+
"@brandup/ui-richeditor": "^1.0.51"
|
|
36
36
|
},
|
|
37
37
|
"files": [
|
|
38
38
|
"source",
|
package/source/textbox.less
CHANGED
package/source/textbox.ts
CHANGED
|
@@ -106,8 +106,11 @@ export default class TextBox extends EditorInputControl<RichEditor, ChangeEventD
|
|
|
106
106
|
const formatTools = format ? parseFormatTools(valueElem.dataset.formatTools ?? null) : [];
|
|
107
107
|
// кнопки действий панели (очистка формата, отмена, повтор) — подключаются явно
|
|
108
108
|
const editorActions = format ? parseEditorActions(valueElem.dataset.editorActions ?? null) : [];
|
|
109
|
-
//
|
|
110
|
-
|
|
109
|
+
// Типы блоков (цитата, блок кода) — тоже явно и только в многострочном поле. Без атрибута
|
|
110
|
+
// список пуст, а не «не задан»: незаданный редактор понимает как «все», и в поле без единого
|
|
111
|
+
// объявления всплывала бы панель с кнопками цитаты и кода.
|
|
112
|
+
const blocks =
|
|
113
|
+
multyline && valueElem.dataset.blocks !== undefined ? parseBlockTypes(valueElem.dataset.blocks) : [];
|
|
111
114
|
|
|
112
115
|
// markdown-маркеры с дефолтами, переопределяются атрибутами data-format-md-<tool>
|
|
113
116
|
const formatMarkers = defaultFormatMarkers();
|