@lexical/hashtag 0.48.0 → 0.48.1-nightly.20260720.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/dist/LexicalHashtag.dev.js +4 -8
- package/dist/LexicalHashtag.dev.mjs +4 -8
- package/dist/LexicalHashtag.js.flow +1 -3
- package/dist/LexicalHashtag.prod.js +1 -1
- package/dist/LexicalHashtag.prod.mjs +1 -1
- package/dist/LexicalHashtagNode.d.ts +61 -4
- package/package.json +4 -4
- package/src/LexicalHashtagNode.ts +2 -11
|
@@ -22,20 +22,16 @@ var lexical = require('lexical');
|
|
|
22
22
|
|
|
23
23
|
/** @noInheritDoc */
|
|
24
24
|
class HashtagNode extends lexical.TextNode {
|
|
25
|
-
|
|
26
|
-
return 'hashtag'
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
return new HashtagNode(node.__text, node.__key);
|
|
25
|
+
$config() {
|
|
26
|
+
return this.config('hashtag', {
|
|
27
|
+
extends: lexical.TextNode
|
|
28
|
+
});
|
|
30
29
|
}
|
|
31
30
|
createDOM(config) {
|
|
32
31
|
const element = super.createDOM(config);
|
|
33
32
|
lexical.addClassNamesToElement(element, config.theme.hashtag);
|
|
34
33
|
return element;
|
|
35
34
|
}
|
|
36
|
-
static importJSON(serializedNode) {
|
|
37
|
-
return $createHashtagNode().updateFromJSON(serializedNode);
|
|
38
|
-
}
|
|
39
35
|
canInsertTextBefore() {
|
|
40
36
|
return false;
|
|
41
37
|
}
|
|
@@ -20,20 +20,16 @@ import { TextNode, addClassNamesToElement, $applyNodeReplacement, defineExtensio
|
|
|
20
20
|
|
|
21
21
|
/** @noInheritDoc */
|
|
22
22
|
class HashtagNode extends TextNode {
|
|
23
|
-
|
|
24
|
-
return 'hashtag'
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
return new HashtagNode(node.__text, node.__key);
|
|
23
|
+
$config() {
|
|
24
|
+
return this.config('hashtag', {
|
|
25
|
+
extends: TextNode
|
|
26
|
+
});
|
|
28
27
|
}
|
|
29
28
|
createDOM(config) {
|
|
30
29
|
const element = super.createDOM(config);
|
|
31
30
|
addClassNamesToElement(element, config.theme.hashtag);
|
|
32
31
|
return element;
|
|
33
32
|
}
|
|
34
|
-
static importJSON(serializedNode) {
|
|
35
|
-
return $createHashtagNode().updateFromJSON(serializedNode);
|
|
36
|
-
}
|
|
37
33
|
canInsertTextBefore() {
|
|
38
34
|
return false;
|
|
39
35
|
}
|
|
@@ -18,10 +18,8 @@ import type {
|
|
|
18
18
|
import {TextNode} from 'lexical';
|
|
19
19
|
|
|
20
20
|
declare export class HashtagNode extends TextNode {
|
|
21
|
-
static getType(): string;
|
|
22
|
-
static clone(node: HashtagNode): HashtagNode;
|
|
23
21
|
static importJSON(serializedNode: SerializedTextNode): HashtagNode;
|
|
24
|
-
constructor(text
|
|
22
|
+
constructor(text?: string, key?: NodeKey): void;
|
|
25
23
|
createDOM(config: EditorConfig): HTMLElement;
|
|
26
24
|
canInsertTextBefore(): boolean;
|
|
27
25
|
isTextEntity(): true;
|
|
@@ -6,4 +6,4 @@
|
|
|
6
6
|
*
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
-
"use strict";var e=require("@lexical/text"),t=require("lexical");class n extends t.TextNode{
|
|
9
|
+
"use strict";var e=require("@lexical/text"),t=require("lexical");class n extends t.TextNode{$config(){return this.config("hashtag",{extends:t.TextNode})}createDOM(e){const n=super.createDOM(e);return t.addClassNamesToElement(n,e.theme.hashtag),n}canInsertTextBefore(){return!1}isTextEntity(){return!0}}function a(e=""){return t.$applyNodeReplacement(new n(e))}const r=new RegExp(function(){const{alpha:e,alphanumeric:t,hashChars:n}=function(){const e=String.fromCharCode,t="A-Za-z\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u0241\u0250-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ee\u037a\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03ce\u03d0-\u03f5\u03f7-\u0481\u048a-\u04ce\u04d0-\u04f9\u0500-\u050f\u0531-\u0556\u0559\u0561-\u0587\u05d0-\u05ea\u05f0-\u05f2\u0621-\u063a\u0640-\u064a\u066e-\u066f\u0671-\u06d3\u06d5\u06e5-\u06e6\u06ee-\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u076d\u0780-\u07a5\u07b1\u0904-\u0939\u093d\u0950\u0958-\u0961\u097d\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc-\u09dd\u09df-\u09e1\u09f0-\u09f1\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0-\u0ae1\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3d\u0b5c-\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c33\u0c35-\u0c39\u0c60-\u0c61\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0-\u0ce1\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d28\u0d2a-\u0d39\u0d60-\u0d61\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32-\u0e33\u0e40-\u0e46\u0e81-\u0e82\u0e84\u0e87-\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa-\u0eab\u0ead-\u0eb0\u0eb2-\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edd\u0f00\u0f40-\u0f47\u0f49-\u0f6a\u0f88-\u0f8b\u1000-\u1021\u1023-\u1027\u1029-\u102a\u1050-\u1055\u10a0-\u10c5\u10d0-\u10fa\u10fc\u1100-\u1159\u115f-\u11a2\u11a8-\u11f9\u1200-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f4\u1401-\u166c\u166f-\u1676\u1681-\u169a\u16a0-\u16ea\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1877\u1880-\u18a8\u1900-\u191c\u1950-\u196d\u1970-\u1974\u1980-\u19a9\u19c1-\u19c7\u1a00-\u1a16\u1d00-\u1dbf\u1e00-\u1e9b\u1ea0-\u1ef9\u1f00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u2094\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2131\u2133-\u2139\u213c-\u213f\u2145-\u2149\u2c00-\u2c2e\u2c30-\u2c5e\u2c80-\u2ce4\u2d00-\u2d25\u2d30-\u2d65\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3006\u3031-\u3035\u303b-\u303c\u3041-\u3096\u309d-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312c\u3131-\u318e\u31a0-\u31b7\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fbb\ua000-\ua48c\ua800-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\uac00-\ud7a3\uf900-\ufa2d\ufa30-\ufa6a\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u024f\u0253-\u0254\u0256-\u0257\u0259\u025b\u0263\u0268\u026f\u0272\u0289\u028b\u02bb\u0300-\u036f\u1e00-\u1eff\u0400-\u04ff\u0500-\u0527\u2de0-\u2dff\ua640-\ua69f\u0591-\u05bf\u05c1-\u05c2\u05c4-\u05c5\u05c7\u05d0-\u05ea\u05f0-\u05f4\ufb12-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufb4f\u0610-\u061a\u0620-\u065f\u066e-\u06d3\u06d5-\u06dc\u06de-\u06e8\u06ea-\u06ef\u06fa-\u06fc\u06ff\u0750-\u077f\u08a0\u08a2-\u08ac\u08e4-\u08fe\ufb50-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\u200c-\u200c\u0e01-\u0e3a\u0e40-\u0e4e\u1100-\u11ff\u3130-\u3185\ua960-\ua97f\uac00-\ud7af\ud7b0-\ud7ff\uffa1-\uffdc\u30a1-\u30fa\u30fc-\u30fe\uff66-\uff9f\uff10-\uff19\uff21-\uff3a\uff41-\uff5a\u3041-\u3096\u3099-\u309e\u3400-\u4dbf\u4e00-\u9fff"+e(173824)+"-"+e(177983)+e(177984)+"-"+e(178207)+e(194560)+"-"+e(195103)+"\u3003\u3005\u303b";return{alpha:t,alphanumeric:t+"\u0300-\u036f\u0483-\u0486\u0591-\u05b9\u05bb-\u05bd\u05bf\u05c1-\u05c2\u05c4-\u05c5\u05c7\u0610-\u0615\u064b-\u065e\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7-\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u0901-\u0903\u093c\u093e-\u094d\u0951-\u0954\u0962-\u0963\u0981-\u0983\u09bc\u09be-\u09c4\u09c7-\u09c8\u09cb-\u09cd\u09d7\u09e2-\u09e3\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a70-\u0a71\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2-\u0ae3\u0b01-\u0b03\u0b3c\u0b3e-\u0b43\u0b47-\u0b48\u0b4b-\u0b4d\u0b56-\u0b57\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0c01-\u0c03\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c82-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0d02-\u0d03\u0d3e-\u0d43\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d82-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0df2-\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb-\u0ebc\u0ec8-\u0ecd\u0f18-\u0f19\u0f35\u0f37\u0f39\u0f3e-\u0f3f\u0f71-\u0f84\u0f86-\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102c-\u1032\u1036-\u1039\u1056-\u1059\u135f\u1712-\u1714\u1732-\u1734\u1752-\u1753\u1772-\u1773\u17b6-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u192b\u1930-\u193b\u19b0-\u19c0\u19c8-\u19c9\u1a17-\u1a1b\u1dc0-\u1dc3\u20d0-\u20dc\u20e1\u20e5-\u20eb\u302a-\u302f\u3099-\u309a\ua802\ua806\ua80b\ua823-\ua827\ufb1e\ufe00-\ufe0f\ufe20-\ufe230-9\u0660-\u0669\u06f0-\u06f9\u0966-\u096f\u09e6-\u09ef\u0a66-\u0a6f\u0ae6-\u0aef\u0b66-\u0b6f\u0be6-\u0bef\u0c66-\u0c6f\u0ce6-\u0cef\u0d66-\u0d6f\u0e50-\u0e59\u0ed0-\u0ed9\u0f20-\u0f29\u1040-\u1049\u17e0-\u17e9\u1810-\u1819\u1946-\u194f\u19d0-\u19d9\uff10-\uff19_",hashChars:"#\\uFF03"}}(),a="["+t+"]";return"("+("^|$|[^&/"+t+"]")+")("+("["+n+"]")+")("+a+"*"+("["+e+"]")+a+"*)"}(),"i");const s={getHashtagMatch:function(e){const t=r.exec(e);if(null===t)return null;const n=t[3].length+1,a=t.index+t[1].length;return{end:a+n,start:a}}};function o(r,o=s){return t.mergeRegister(...e.registerLexicalTextEntity(r,o.getHashtagMatch,n,e=>a(e.getTextContent())))}const i=/* @__PURE__ */t.defineExtension({config:s,name:"@lexical/hashtag/Hashtag",nodes:()=>[n],register:o});exports.$createHashtagNode=a,exports.$isHashtagNode=function(e){return e instanceof n},exports.HashtagExtension=i,exports.HashtagNode=n,exports.registerLexicalHashtag=o;
|
|
@@ -6,4 +6,4 @@
|
|
|
6
6
|
*
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
-
import{registerLexicalTextEntity as t}from"@lexical/text";import{TextNode as
|
|
9
|
+
import{registerLexicalTextEntity as t}from"@lexical/text";import{TextNode as n,addClassNamesToElement as e,$applyNodeReplacement as r,defineExtension as a,mergeRegister as c}from"lexical";class s extends n{$config(){return this.config("hashtag",{extends:n})}createDOM(t){const n=super.createDOM(t);return e(n,t.theme.hashtag),n}canInsertTextBefore(){return!1}isTextEntity(){return!0}}function o(t=""){return r(new s(t))}function h(t){return t instanceof s}const i=new RegExp(function(){const{alpha:t,alphanumeric:n,hashChars:e}=function(){const t=String.fromCharCode,n="A-Za-z\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u0241\u0250-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ee\u037a\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03ce\u03d0-\u03f5\u03f7-\u0481\u048a-\u04ce\u04d0-\u04f9\u0500-\u050f\u0531-\u0556\u0559\u0561-\u0587\u05d0-\u05ea\u05f0-\u05f2\u0621-\u063a\u0640-\u064a\u066e-\u066f\u0671-\u06d3\u06d5\u06e5-\u06e6\u06ee-\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u076d\u0780-\u07a5\u07b1\u0904-\u0939\u093d\u0950\u0958-\u0961\u097d\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc-\u09dd\u09df-\u09e1\u09f0-\u09f1\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0-\u0ae1\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3d\u0b5c-\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c33\u0c35-\u0c39\u0c60-\u0c61\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0-\u0ce1\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d28\u0d2a-\u0d39\u0d60-\u0d61\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32-\u0e33\u0e40-\u0e46\u0e81-\u0e82\u0e84\u0e87-\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa-\u0eab\u0ead-\u0eb0\u0eb2-\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edd\u0f00\u0f40-\u0f47\u0f49-\u0f6a\u0f88-\u0f8b\u1000-\u1021\u1023-\u1027\u1029-\u102a\u1050-\u1055\u10a0-\u10c5\u10d0-\u10fa\u10fc\u1100-\u1159\u115f-\u11a2\u11a8-\u11f9\u1200-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f4\u1401-\u166c\u166f-\u1676\u1681-\u169a\u16a0-\u16ea\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1877\u1880-\u18a8\u1900-\u191c\u1950-\u196d\u1970-\u1974\u1980-\u19a9\u19c1-\u19c7\u1a00-\u1a16\u1d00-\u1dbf\u1e00-\u1e9b\u1ea0-\u1ef9\u1f00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u2094\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2131\u2133-\u2139\u213c-\u213f\u2145-\u2149\u2c00-\u2c2e\u2c30-\u2c5e\u2c80-\u2ce4\u2d00-\u2d25\u2d30-\u2d65\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3006\u3031-\u3035\u303b-\u303c\u3041-\u3096\u309d-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312c\u3131-\u318e\u31a0-\u31b7\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fbb\ua000-\ua48c\ua800-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\uac00-\ud7a3\uf900-\ufa2d\ufa30-\ufa6a\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u024f\u0253-\u0254\u0256-\u0257\u0259\u025b\u0263\u0268\u026f\u0272\u0289\u028b\u02bb\u0300-\u036f\u1e00-\u1eff\u0400-\u04ff\u0500-\u0527\u2de0-\u2dff\ua640-\ua69f\u0591-\u05bf\u05c1-\u05c2\u05c4-\u05c5\u05c7\u05d0-\u05ea\u05f0-\u05f4\ufb12-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufb4f\u0610-\u061a\u0620-\u065f\u066e-\u06d3\u06d5-\u06dc\u06de-\u06e8\u06ea-\u06ef\u06fa-\u06fc\u06ff\u0750-\u077f\u08a0\u08a2-\u08ac\u08e4-\u08fe\ufb50-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\u200c-\u200c\u0e01-\u0e3a\u0e40-\u0e4e\u1100-\u11ff\u3130-\u3185\ua960-\ua97f\uac00-\ud7af\ud7b0-\ud7ff\uffa1-\uffdc\u30a1-\u30fa\u30fc-\u30fe\uff66-\uff9f\uff10-\uff19\uff21-\uff3a\uff41-\uff5a\u3041-\u3096\u3099-\u309e\u3400-\u4dbf\u4e00-\u9fff"+t(173824)+"-"+t(177983)+t(177984)+"-"+t(178207)+t(194560)+"-"+t(195103)+"\u3003\u3005\u303b";return{alpha:n,alphanumeric:n+"\u0300-\u036f\u0483-\u0486\u0591-\u05b9\u05bb-\u05bd\u05bf\u05c1-\u05c2\u05c4-\u05c5\u05c7\u0610-\u0615\u064b-\u065e\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7-\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u0901-\u0903\u093c\u093e-\u094d\u0951-\u0954\u0962-\u0963\u0981-\u0983\u09bc\u09be-\u09c4\u09c7-\u09c8\u09cb-\u09cd\u09d7\u09e2-\u09e3\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a70-\u0a71\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2-\u0ae3\u0b01-\u0b03\u0b3c\u0b3e-\u0b43\u0b47-\u0b48\u0b4b-\u0b4d\u0b56-\u0b57\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0c01-\u0c03\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c82-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0d02-\u0d03\u0d3e-\u0d43\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d82-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0df2-\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb-\u0ebc\u0ec8-\u0ecd\u0f18-\u0f19\u0f35\u0f37\u0f39\u0f3e-\u0f3f\u0f71-\u0f84\u0f86-\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102c-\u1032\u1036-\u1039\u1056-\u1059\u135f\u1712-\u1714\u1732-\u1734\u1752-\u1753\u1772-\u1773\u17b6-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u192b\u1930-\u193b\u19b0-\u19c0\u19c8-\u19c9\u1a17-\u1a1b\u1dc0-\u1dc3\u20d0-\u20dc\u20e1\u20e5-\u20eb\u302a-\u302f\u3099-\u309a\ua802\ua806\ua80b\ua823-\ua827\ufb1e\ufe00-\ufe0f\ufe20-\ufe230-9\u0660-\u0669\u06f0-\u06f9\u0966-\u096f\u09e6-\u09ef\u0a66-\u0a6f\u0ae6-\u0aef\u0b66-\u0b6f\u0be6-\u0bef\u0c66-\u0c6f\u0ce6-\u0cef\u0d66-\u0d6f\u0e50-\u0e59\u0ed0-\u0ed9\u0f20-\u0f29\u1040-\u1049\u17e0-\u17e9\u1810-\u1819\u1946-\u194f\u19d0-\u19d9\uff10-\uff19_",hashChars:"#\\uFF03"}}(),r="["+n+"]";return"("+("^|$|[^&/"+n+"]")+")("+("["+e+"]")+")("+r+"*"+("["+t+"]")+r+"*)"}(),"i");const u={getHashtagMatch:function(t){const n=i.exec(t);if(null===n)return null;const e=n[3].length+1,r=n.index+n[1].length;return{end:r+e,start:r}}};function g(n,e=u){return c(...t(n,e.getHashtagMatch,s,t=>o(t.getTextContent())))}const l=/* @__PURE__ */a({config:u,name:"@lexical/hashtag/Hashtag",nodes:()=>[s],register:g});export{o as $createHashtagNode,h as $isHashtagNode,l as HashtagExtension,s as HashtagNode,g as registerLexicalHashtag};
|
|
@@ -5,13 +5,70 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
7
|
*/
|
|
8
|
-
import { type EditorConfig, type LexicalNode,
|
|
8
|
+
import { type EditorConfig, type LexicalNode, TextNode } from 'lexical';
|
|
9
9
|
/** @noInheritDoc */
|
|
10
10
|
export declare class HashtagNode extends TextNode {
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
$config(): import("lexical").BaseStaticNodeConfig & {
|
|
12
|
+
readonly text?: {
|
|
13
|
+
readonly importDOM: {
|
|
14
|
+
readonly '#text': () => {
|
|
15
|
+
conversion: (domNode: Node) => import("lexical").DOMConversionOutput;
|
|
16
|
+
priority: 0;
|
|
17
|
+
};
|
|
18
|
+
readonly b: () => {
|
|
19
|
+
conversion: (domNode: HTMLElement) => import("lexical").DOMConversionOutput;
|
|
20
|
+
priority: 0;
|
|
21
|
+
};
|
|
22
|
+
readonly code: () => {
|
|
23
|
+
conversion: (domNode: HTMLElement) => import("lexical").DOMConversionOutput;
|
|
24
|
+
priority: 0;
|
|
25
|
+
};
|
|
26
|
+
readonly em: () => {
|
|
27
|
+
conversion: (domNode: HTMLElement) => import("lexical").DOMConversionOutput;
|
|
28
|
+
priority: 0;
|
|
29
|
+
};
|
|
30
|
+
readonly i: () => {
|
|
31
|
+
conversion: (domNode: HTMLElement) => import("lexical").DOMConversionOutput;
|
|
32
|
+
priority: 0;
|
|
33
|
+
};
|
|
34
|
+
readonly mark: () => {
|
|
35
|
+
conversion: (domNode: HTMLElement) => import("lexical").DOMConversionOutput;
|
|
36
|
+
priority: 0;
|
|
37
|
+
};
|
|
38
|
+
readonly s: () => {
|
|
39
|
+
conversion: (domNode: HTMLElement) => import("lexical").DOMConversionOutput;
|
|
40
|
+
priority: 0;
|
|
41
|
+
};
|
|
42
|
+
readonly span: () => {
|
|
43
|
+
conversion: (domNode: HTMLSpanElement) => import("lexical").DOMConversionOutput;
|
|
44
|
+
priority: 0;
|
|
45
|
+
};
|
|
46
|
+
readonly strong: () => {
|
|
47
|
+
conversion: (domNode: HTMLElement) => import("lexical").DOMConversionOutput;
|
|
48
|
+
priority: 0;
|
|
49
|
+
};
|
|
50
|
+
readonly sub: () => {
|
|
51
|
+
conversion: (domNode: HTMLElement) => import("lexical").DOMConversionOutput;
|
|
52
|
+
priority: 0;
|
|
53
|
+
};
|
|
54
|
+
readonly sup: () => {
|
|
55
|
+
conversion: (domNode: HTMLElement) => import("lexical").DOMConversionOutput;
|
|
56
|
+
priority: 0;
|
|
57
|
+
};
|
|
58
|
+
readonly u: () => {
|
|
59
|
+
conversion: (domNode: HTMLElement) => import("lexical").DOMConversionOutput;
|
|
60
|
+
priority: 0;
|
|
61
|
+
};
|
|
62
|
+
};
|
|
63
|
+
} | undefined;
|
|
64
|
+
} & {
|
|
65
|
+
readonly hashtag?: {
|
|
66
|
+
readonly extends: typeof TextNode;
|
|
67
|
+
} | undefined;
|
|
68
|
+
} & import("lexical").StaticNodeTypeAccessor<"hashtag"> & import("lexical").StaticNodeConfigAccessor<{
|
|
69
|
+
readonly extends: typeof TextNode;
|
|
70
|
+
}>;
|
|
13
71
|
createDOM(config: EditorConfig): HTMLElement;
|
|
14
|
-
static importJSON(serializedNode: SerializedTextNode): HashtagNode;
|
|
15
72
|
canInsertTextBefore(): boolean;
|
|
16
73
|
isTextEntity(): true;
|
|
17
74
|
}
|
package/package.json
CHANGED
|
@@ -8,13 +8,13 @@
|
|
|
8
8
|
"hashtag"
|
|
9
9
|
],
|
|
10
10
|
"license": "MIT",
|
|
11
|
-
"version": "0.48.0",
|
|
11
|
+
"version": "0.48.1-nightly.20260720.0",
|
|
12
12
|
"main": "./dist/LexicalHashtag.js",
|
|
13
13
|
"types": "./dist/typescript-too-old.d.ts",
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"@lexical/
|
|
16
|
-
"lexical": "0.48.0",
|
|
17
|
-
"@lexical/
|
|
15
|
+
"@lexical/utils": "0.48.1-nightly.20260720.0",
|
|
16
|
+
"lexical": "0.48.1-nightly.20260720.0",
|
|
17
|
+
"@lexical/text": "0.48.1-nightly.20260720.0"
|
|
18
18
|
},
|
|
19
19
|
"repository": {
|
|
20
20
|
"type": "git",
|
|
@@ -11,18 +11,13 @@ import {
|
|
|
11
11
|
addClassNamesToElement,
|
|
12
12
|
type EditorConfig,
|
|
13
13
|
type LexicalNode,
|
|
14
|
-
type SerializedTextNode,
|
|
15
14
|
TextNode,
|
|
16
15
|
} from 'lexical';
|
|
17
16
|
|
|
18
17
|
/** @noInheritDoc */
|
|
19
18
|
export class HashtagNode extends TextNode {
|
|
20
|
-
|
|
21
|
-
return 'hashtag';
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
static clone(node: HashtagNode): HashtagNode {
|
|
25
|
-
return new HashtagNode(node.__text, node.__key);
|
|
19
|
+
$config() {
|
|
20
|
+
return this.config('hashtag', {extends: TextNode});
|
|
26
21
|
}
|
|
27
22
|
|
|
28
23
|
createDOM(config: EditorConfig): HTMLElement {
|
|
@@ -31,10 +26,6 @@ export class HashtagNode extends TextNode {
|
|
|
31
26
|
return element;
|
|
32
27
|
}
|
|
33
28
|
|
|
34
|
-
static importJSON(serializedNode: SerializedTextNode): HashtagNode {
|
|
35
|
-
return $createHashtagNode().updateFromJSON(serializedNode);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
29
|
canInsertTextBefore(): boolean {
|
|
39
30
|
return false;
|
|
40
31
|
}
|