@lofcz/platejs-utils 53.0.0 → 53.2.1
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/dist/index.d.ts +21 -2
- package/dist/index.js +12 -3
- package/dist/react/index.js +4 -1
- package/package.json +3 -3
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as _platejs_core0 from "@platejs/core";
|
|
2
|
-
import { InsertExitBreakOptions, OverrideEditor, PluginConfig } from "@platejs/core";
|
|
2
|
+
import { InsertExitBreakOptions, OverrideEditor, PluginConfig, SlateEditor } from "@platejs/core";
|
|
3
3
|
import { Descendant, Path, QueryNodeOptions, TElement, TText } from "@platejs/slate";
|
|
4
4
|
import { UnknownObject } from "@udecode/utils";
|
|
5
5
|
|
|
@@ -510,7 +510,19 @@ declare const SingleBlockPlugin: _platejs_core0.SlatePlugin<_platejs_core0.Plugi
|
|
|
510
510
|
declare const SingleLinePlugin: _platejs_core0.SlatePlugin<_platejs_core0.PluginConfig<"singleLine", {}, {}, {}, {}>>;
|
|
511
511
|
//#endregion
|
|
512
512
|
//#region src/lib/plugins/trailing-block/TrailingBlockPlugin.d.ts
|
|
513
|
+
type TrailingBlockInsertOptions = {
|
|
514
|
+
at: Path;
|
|
515
|
+
insert: () => void;
|
|
516
|
+
type: string;
|
|
517
|
+
};
|
|
513
518
|
type TrailingBlockConfig = PluginConfig<'trailingBlock', {
|
|
519
|
+
/**
|
|
520
|
+
* Customize how the trailing block is inserted.
|
|
521
|
+
*
|
|
522
|
+
* Useful when another plugin needs to wrap the insertion, such as
|
|
523
|
+
* disabling suggestions during normalization-generated inserts.
|
|
524
|
+
*/
|
|
525
|
+
insert?: (editor: SlateEditor, options: TrailingBlockInsertOptions) => void;
|
|
514
526
|
/** Level where the trailing node should be, the first level being 0. */
|
|
515
527
|
level?: number;
|
|
516
528
|
/** Type of the trailing block */
|
|
@@ -520,6 +532,13 @@ type TrailingBlockConfig = PluginConfig<'trailingBlock', {
|
|
|
520
532
|
declare const TrailingBlockPlugin: _platejs_core0.SlatePlugin<PluginConfig<"trailingBlock", {
|
|
521
533
|
type: string;
|
|
522
534
|
} & {
|
|
535
|
+
/**
|
|
536
|
+
* Customize how the trailing block is inserted.
|
|
537
|
+
*
|
|
538
|
+
* Useful when another plugin needs to wrap the insertion, such as
|
|
539
|
+
* disabling suggestions during normalization-generated inserts.
|
|
540
|
+
*/
|
|
541
|
+
insert?: (editor: SlateEditor, options: TrailingBlockInsertOptions) => void;
|
|
523
542
|
/** Level where the trailing node should be, the first level being 0. */
|
|
524
543
|
level?: number;
|
|
525
544
|
/** Type of the trailing block */
|
|
@@ -533,4 +552,4 @@ declare const TrailingBlockPlugin: _platejs_core0.SlatePlugin<PluginConfig<"trai
|
|
|
533
552
|
*/
|
|
534
553
|
declare const withTrailingBlock: OverrideEditor<TrailingBlockConfig>;
|
|
535
554
|
//#endregion
|
|
536
|
-
export { EmptyText, ExitBreakPlugin, KEYS, NODES, NodeKey, NormalizeTypesConfig, NormalizeTypesPlugin, PlainText, PlateKey, STYLE_KEYS, SingleBlockPlugin, SingleLinePlugin, StyleKey, TAudioElement, TBasicMarks, TCalloutElement, TCaptionElement, TCaptionProps, TCodeBlockElement, TCodeSyntaxLeaf, TColumnElement, TColumnGroupElement, TComboboxInputElement, TCommentText, TDateElement, TEquationElement, TFileElement, TFontMarks, TIdElement, TIdProps, TImageElement, TIndentElement, TIndentProps, TInlineSuggestionData, TInsertSuggestionData, TLineHeightProps, TLinkElement, TListElement, TListProps, TMediaElement, TMediaEmbedElement, TMediaProps, TMentionElement, TNodeMap, TPlaceholderElement, TRemoveSuggestionData, TResizableElement, TResizableProps, TSuggestionData, TSuggestionElement, TSuggestionProps, TSuggestionText, TTableCellBorder, TTableCellElement, TTableElement, TTableRowElement, TTagElement, TTagProps, TTextAlignProps, TUpdateSuggestionData, TVideoElement, TrailingBlockConfig, TrailingBlockPlugin, withNormalizeTypes, withTrailingBlock };
|
|
555
|
+
export { EmptyText, ExitBreakPlugin, KEYS, NODES, NodeKey, NormalizeTypesConfig, NormalizeTypesPlugin, PlainText, PlateKey, STYLE_KEYS, SingleBlockPlugin, SingleLinePlugin, StyleKey, TAudioElement, TBasicMarks, TCalloutElement, TCaptionElement, TCaptionProps, TCodeBlockElement, TCodeSyntaxLeaf, TColumnElement, TColumnGroupElement, TComboboxInputElement, TCommentText, TDateElement, TEquationElement, TFileElement, TFontMarks, TIdElement, TIdProps, TImageElement, TIndentElement, TIndentProps, TInlineSuggestionData, TInsertSuggestionData, TLineHeightProps, TLinkElement, TListElement, TListProps, TMediaElement, TMediaEmbedElement, TMediaProps, TMentionElement, TNodeMap, TPlaceholderElement, TRemoveSuggestionData, TResizableElement, TResizableProps, TSuggestionData, TSuggestionElement, TSuggestionProps, TSuggestionText, TTableCellBorder, TTableCellElement, TTableElement, TTableRowElement, TTagElement, TTagProps, TTextAlignProps, TUpdateSuggestionData, TVideoElement, TrailingBlockConfig, TrailingBlockInsertOptions, TrailingBlockPlugin, withNormalizeTypes, withTrailingBlock };
|
package/dist/index.js
CHANGED
|
@@ -117,13 +117,22 @@ const SingleLinePlugin = createSlatePlugin({
|
|
|
117
117
|
* editor has .
|
|
118
118
|
*/
|
|
119
119
|
const withTrailingBlock = ({ editor, getOptions, tf: { normalizeNode } }) => ({ transforms: { normalizeNode([currentNode, currentPath]) {
|
|
120
|
-
const { level, type, ...query } = getOptions();
|
|
120
|
+
const { insert, level, type, ...query } = getOptions();
|
|
121
|
+
const trailingType = type ?? editor.getType(KEYS.p);
|
|
121
122
|
if (currentPath.length === 0) {
|
|
122
123
|
const lastChild = editor.api.last([], { level });
|
|
123
124
|
const lastChildNode = lastChild?.[0];
|
|
124
|
-
if (!lastChildNode || lastChildNode.type !==
|
|
125
|
+
if (!lastChildNode || lastChildNode.type !== trailingType && queryNode(lastChild, query)) {
|
|
125
126
|
const at = lastChild ? PathApi.next(lastChild[1]) : [0];
|
|
126
|
-
|
|
127
|
+
const insertTrailingBlock = () => {
|
|
128
|
+
editor.tf.insertNodes(editor.api.create.block({ type: trailingType }, at), { at });
|
|
129
|
+
};
|
|
130
|
+
if (insert) insert(editor, {
|
|
131
|
+
at,
|
|
132
|
+
insert: insertTrailingBlock,
|
|
133
|
+
type: trailingType
|
|
134
|
+
});
|
|
135
|
+
else insertTrailingBlock();
|
|
127
136
|
return;
|
|
128
137
|
}
|
|
129
138
|
}
|
package/dist/react/index.js
CHANGED
|
@@ -241,6 +241,7 @@ const BlockPlaceholderPlugin = createTPlatePlugin({
|
|
|
241
241
|
editOnly: true,
|
|
242
242
|
options: {
|
|
243
243
|
_target: null,
|
|
244
|
+
className: void 0,
|
|
244
245
|
placeholders: { [KEYS.p]: "Type something..." },
|
|
245
246
|
query: ({ path }) => path.length === 1
|
|
246
247
|
},
|
|
@@ -264,12 +265,14 @@ const BlockPlaceholderPlugin = createTPlatePlugin({
|
|
|
264
265
|
}
|
|
265
266
|
const { placeholders, query } = getOptions();
|
|
266
267
|
const [element, path] = entry;
|
|
268
|
+
const firstNode = editor.children[0];
|
|
269
|
+
const isPristineEmptyEditor = editor.children.length === 1 && editor.api.isEmpty(firstNode) && editor.api.isElementStateEmpty(firstNode);
|
|
267
270
|
const placeholder = Object.keys(placeholders).find((key) => editor.getType(key) === element.type);
|
|
268
271
|
if (query({
|
|
269
272
|
...ctx,
|
|
270
273
|
node: element,
|
|
271
274
|
path
|
|
272
|
-
}) && placeholder && editor.api.isEmpty(element) && !
|
|
275
|
+
}) && placeholder && editor.api.isEmpty(element) && !isPristineEmptyEditor) setOption("_target", {
|
|
273
276
|
node: element,
|
|
274
277
|
placeholder: placeholders[placeholder]
|
|
275
278
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lofcz/platejs-utils",
|
|
3
|
-
"version": "53.
|
|
3
|
+
"version": "53.2.1",
|
|
4
4
|
"description": "Plate utils",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"plate",
|
|
@@ -32,8 +32,8 @@
|
|
|
32
32
|
"clsx": "^2.1.1",
|
|
33
33
|
"lodash": "^4.17.21",
|
|
34
34
|
"react-compiler-runtime": "^1.0.0",
|
|
35
|
-
"@platejs/core": "npm:@lofcz/platejs-core@53.
|
|
36
|
-
"@platejs/slate": "npm:@lofcz/platejs-slate@53.
|
|
35
|
+
"@platejs/core": "npm:@lofcz/platejs-core@53.2.1",
|
|
36
|
+
"@platejs/slate": "npm:@lofcz/platejs-slate@53.1.7",
|
|
37
37
|
"@udecode/react-utils": "npm:@lofcz/udecode-react-utils@52.3.4",
|
|
38
38
|
"@udecode/utils": "npm:@lofcz/udecode-utils@52.3.4"
|
|
39
39
|
},
|