@wangeditor-next/editor-for-react 1.0.8 → 1.0.9
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 +52 -52
- package/dist/index.esm.js +1 -1
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +98 -98
package/README.md
CHANGED
|
@@ -1,52 +1,52 @@
|
|
|
1
|
-
# wangEditor for React
|
|
2
|
-
|
|
3
|
-
<!-- Badge -->
|
|
4
|
-

|
|
5
|
-

|
|
6
|
-
|
|
7
|
-
[English documentation](./README-en.md)
|
|
8
|
-
|
|
9
|
-
## 介绍
|
|
10
|
-
基于[wangEditor](https://www.wangeditor.com/) 封装的React组件。
|
|
11
|
-
|
|
12
|
-
## 安装
|
|
13
|
-
|
|
14
|
-
1. 安装组件包
|
|
15
|
-
|
|
16
|
-
```shell
|
|
17
|
-
yarn add @wangeditor-next/editor-for-react
|
|
18
|
-
# 或者npm install @wangeditor-next/editor-for-react --save
|
|
19
|
-
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
2. 安装核心包
|
|
23
|
-
|
|
24
|
-
```shell
|
|
25
|
-
yarn add @wangeditor-next/editor
|
|
26
|
-
|
|
27
|
-
# 或者 npm install @wangeditor-next/editor --save
|
|
28
|
-
```
|
|
29
|
-
3. 导入组件
|
|
30
|
-
|
|
31
|
-
```ts
|
|
32
|
-
import { Editor, Toolbar } from '@wangeditor-next/editor-for-react'
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
## 使用
|
|
36
|
-
|
|
37
|
-
详情参考[wangEditor react使用文档](https://www.wangeditor.com/v5/for-frame.html#react)。
|
|
38
|
-
|
|
39
|
-
### 在Next.js下使用
|
|
40
|
-
```js
|
|
41
|
-
import dynamic from 'next/dynamic'
|
|
42
|
-
const WangEditor = dynamic(
|
|
43
|
-
// 引入对应的组件 设置的组件参考上面的wangEditor react使用文档
|
|
44
|
-
() => import('../components/myEditor'),
|
|
45
|
-
{ssr: false}
|
|
46
|
-
)
|
|
47
|
-
|
|
48
|
-
export default function Home() {
|
|
49
|
-
return <WangEditor />
|
|
50
|
-
}
|
|
51
|
-
```
|
|
52
|
-
使用案例可以参考[wangeditorV5-nextjs-demo](https://github.com/hahaaha/wangeditorV5-nextjs-demo)
|
|
1
|
+
# wangEditor for React
|
|
2
|
+
|
|
3
|
+
<!-- Badge -->
|
|
4
|
+

|
|
5
|
+

|
|
6
|
+
|
|
7
|
+
[English documentation](./README-en.md)
|
|
8
|
+
|
|
9
|
+
## 介绍
|
|
10
|
+
基于[wangEditor](https://www.wangeditor.com/) 封装的React组件。
|
|
11
|
+
|
|
12
|
+
## 安装
|
|
13
|
+
|
|
14
|
+
1. 安装组件包
|
|
15
|
+
|
|
16
|
+
```shell
|
|
17
|
+
yarn add @wangeditor-next/editor-for-react
|
|
18
|
+
# 或者npm install @wangeditor-next/editor-for-react --save
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
2. 安装核心包
|
|
23
|
+
|
|
24
|
+
```shell
|
|
25
|
+
yarn add @wangeditor-next/editor
|
|
26
|
+
|
|
27
|
+
# 或者 npm install @wangeditor-next/editor --save
|
|
28
|
+
```
|
|
29
|
+
3. 导入组件
|
|
30
|
+
|
|
31
|
+
```ts
|
|
32
|
+
import { Editor, Toolbar } from '@wangeditor-next/editor-for-react'
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## 使用
|
|
36
|
+
|
|
37
|
+
详情参考[wangEditor react使用文档](https://www.wangeditor.com/v5/for-frame.html#react)。
|
|
38
|
+
|
|
39
|
+
### 在Next.js下使用
|
|
40
|
+
```js
|
|
41
|
+
import dynamic from 'next/dynamic'
|
|
42
|
+
const WangEditor = dynamic(
|
|
43
|
+
// 引入对应的组件 设置的组件参考上面的wangEditor react使用文档
|
|
44
|
+
() => import('../components/myEditor'),
|
|
45
|
+
{ssr: false}
|
|
46
|
+
)
|
|
47
|
+
|
|
48
|
+
export default function Home() {
|
|
49
|
+
return <WangEditor />
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
使用案例可以参考[wangeditorV5-nextjs-demo](https://github.com/hahaaha/wangeditorV5-nextjs-demo)
|
package/dist/index.esm.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import e,{useRef as
|
|
1
|
+
import e,{useRef as t,useState as r,useEffect as n}from"react";import*as o from"@wangeditor-next/editor";import{createEditor as l}from"@wangeditor-next/editor";var a=function(){return a=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},a.apply(this,arguments)};function i(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,l=r.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(n=l.next()).done;)a.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=l.return)&&r.call(l)}finally{if(o)throw o.error}}return a}function u(o){var u=o.defaultContent,c=void 0===u?[]:u,d=o.onCreated,f=o.defaultHtml,v=void 0===f?"":f,s=o.value,m=void 0===s?"":s,y=o.onChange,g=o.defaultConfig,p=void 0===g?{}:g,h=o.mode,b=void 0===h?"default":h,C=o.style,_=void 0===C?{}:C,w=o.className,x=t(null),E=i(r(null),2),N=E[0],S=E[1],H=i(r(""),2),O=H[0],j=H[1],A=function(e){d&&d(e);var t=p.onCreated;t&&t(e)},D=function(e){var t=p.onDestroyed;S(null),t&&t(e)};return n((function(){null!=N&&(N.__react_on_change=function(e){j(e.getHtml()),y&&y(e);var t=p.onChange;t&&t(e)})}),[N,p]),n((function(){if(null!=N&&m!==O)try{N.setHtml(m)}catch(e){console.error(e)}}),[m]),n((function(){var e;if(null!=x.current&&null==N&&!(null===(e=x.current)||void 0===e?void 0:e.getAttribute("data-w-e-textarea"))){var t=l({selector:x.current,config:a(a({},p),{onCreated:A,onChange:function(e){var r;return null===(r=null==t?void 0:t.__react_on_change)||void 0===r?void 0:r.call(t,e)},onDestroyed:D}),content:c,html:v||m,mode:b});S(t)}}),[N]),e.createElement("div",{style:_,ref:x,className:w})}function c(r){var l=r.editor,a=r.defaultConfig,i=void 0===a?{}:a,u=r.mode,c=void 0===u?"default":u,d=r.style,f=void 0===d?{}:d,v=r.className,s=t(null);return n((function(){var e;null!=s.current&&null!=l&&((null===(e=s.current)||void 0===e?void 0:e.getAttribute("data-w-e-toolbar"))||o.createToolbar({editor:l,selector:s.current,config:i,mode:c}))}),[l]),e.createElement("div",{style:f,ref:s,className:v})}"function"==typeof SuppressedError&&SuppressedError;export{u as Editor,c as Toolbar};
|
|
2
2
|
//# sourceMappingURL=index.esm.js.map
|
package/dist/index.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../src/components/Editor.tsx","../src/components/Toolbar.tsx"],"sourcesContent":["/**\n * @description editor react component\n * @author wangfupeng\n */\n\nimport React, { useRef, useEffect, useState } from 'react'\nimport {SlateDescendant, IEditorConfig, createEditor, IDomEditor, SlateEditor, SlateTransforms } from '@wangeditor-next/editor'\n\ninterface IProps {\n defaultContent?: SlateDescendant[]\n onCreated?: (editor: IDomEditor) => void\n defaultHtml?: string\n value?: string\n onChange: (editor: IDomEditor) => void\n defaultConfig: Partial<IEditorConfig>\n mode?: string\n style?: React.CSSProperties\n className?: string\n}\n\ninterface ICustomDomEditor extends IDomEditor {\n __react_on_change?: (editor: ICustomDomEditor) => void;\n}\n\nfunction EditorComponent(props: Partial<IProps>) {\n const { defaultContent = [], onCreated, defaultHtml = '', value = '', onChange, defaultConfig = {}, mode = 'default', style = {}, className } = props\n const ref = useRef<HTMLDivElement>(null)\n const [editor, setEditor] = useState<ICustomDomEditor | null>(null)\n const [curValue, setCurValue] = useState('')\n\n const handleCreated = (editor: IDomEditor) => {\n // 组件属性 onCreated\n if (onCreated) onCreated(editor)\n\n // 编辑器 配置 onCreated\n const { onCreated: onCreatedFromConfig } = defaultConfig\n if (onCreatedFromConfig) onCreatedFromConfig(editor)\n }\n\n const handleDestroyed = (editor: IDomEditor) => {\n const { onDestroyed } = defaultConfig\n setEditor(null)\n if(onDestroyed) {\n onDestroyed(editor)\n }\n }\n\n useEffect(() => {\n if (editor == null) return\n\n editor.__react_on_change = (e: IDomEditor) => {\n setCurValue(e.getHtml()) // 记录当前 html 值\n \n // 组件属性 onChange\n if (onChange) onChange(e)\n \n // 编辑器 配置 onChange\n const { onChange: onChangeFromConfig } = defaultConfig\n if (onChangeFromConfig) onChangeFromConfig(e)\n }\n }, [editor, defaultConfig])\n\n // value 变化,重置 HTML\n useEffect(() => {\n if (editor == null) return\n\n if (value === curValue) return // 如果和当前 html 值相等,则忽略\n\n // ------ 重新设置 HTML ------\n try {\n editor.setHtml(value)\n } catch (error) {\n console.error(error)\n }\n\n }, [value])\n\n useEffect(() => {\n if (ref.current == null) return\n if (editor != null) return\n // 防止重复渲染 当编辑器已经创建就不在创建了\n if (ref.current?.getAttribute('data-w-e-textarea')) return\n\n const newEditor = createEditor({\n selector: ref.current,\n config: {\n ...defaultConfig,\n onCreated: handleCreated,\n onChange: (e: IDomEditor)=> newEditor?.__react_on_change?.(e),\n onDestroyed: handleDestroyed,\n },\n content: defaultContent,\n html: defaultHtml || value,\n mode,\n })as ICustomDomEditor\n setEditor(newEditor)\n }, [editor])\n\n return <div style={style} ref={ref} className={className}></div>\n}\n\nexport default EditorComponent\n","/**\n * @description toolbar react component\n * @author wangfupeng\n */\n\nimport React, { useRef, useEffect } from 'react'\nimport * as wangEditor from '@wangeditor-next/editor'\n\ninterface IProps {\n editor: wangEditor.IDomEditor | null\n defaultConfig?: Partial<wangEditor.IToolbarConfig>\n mode?: string\n style?: object\n className?: string\n}\n\nfunction ToolbarComponent(props: IProps) {\n const { editor, defaultConfig = {}, mode = 'default', style = {}, className } = props\n const ref = useRef<HTMLDivElement>(null)\n\n useEffect(() => {\n if (ref.current == null) return\n if (editor == null) return\n\n wangEditor.createToolbar({\n editor,\n selector: ref.current,\n config: defaultConfig,\n mode,\n })\n }, [editor])\n\n return <div style={style} ref={ref} className={className}></div>\n}\n\nexport default ToolbarComponent\n"],"names":["EditorComponent","props","_a","defaultContent","onCreated","_b","defaultHtml","_c","value","onChange","_d","defaultConfig","_e","mode","_f","style","className","ref","useRef","_g","__read","useState","editor","setEditor","_h","curValue","setCurValue","handleCreated","onCreatedFromConfig","handleDestroyed","onDestroyed","useEffect","__react_on_change","e","getHtml","onChangeFromConfig","setHtml","error","console","current","getAttribute","newEditor","createEditor","selector","config","__assign","call","content","html","React","createElement","ToolbarComponent","wangEditor","createToolbar"],"mappings":"6oBAwBA,SAASA,EAAgBC,GACf,IAAAC,EAAwID,EAArHE,eAAnBA,OAAiB,IAAAD,EAAA,GAAEA,EAAEE,EAAmHH,EAAKG,UAA7GC,EAAwGJ,EAAxFK,YAAhBA,OAAW,IAAAD,EAAG,GAAEA,EAAEE,EAAsFN,EAA5EO,MAAVA,OAAK,IAAAD,EAAG,GAAEA,EAAEE,EAA0ER,EAAKQ,SAArEC,EAAgET,EAAKU,cAArEA,OAAa,IAAAD,EAAG,CAAE,EAAAA,EAAEE,EAA4CX,EAAKY,KAAjDA,OAAI,IAAAD,EAAG,UAASA,EAAEE,EAA0Bb,EAAKc,MAA/BA,OAAK,IAAAD,EAAG,CAAE,EAAAA,EAAEE,EAAcf,YAC1IgB,EAAMC,EAAuB,MAC7BC,EAAAC,EAAsBC,EAAkC,MAAK,GAA5DC,EAAMH,EAAA,GAAEI,OACTC,EAAAJ,EAA0BC,EAAS,IAAG,GAArCI,EAAQD,EAAA,GAAEE,OAEXC,EAAgB,SAACL,GAEjBlB,GAAWA,EAAUkB,GAGjB,IAAWM,EAAwBjB,EAAaP,UACpDwB,GAAqBA,EAAoBN,IAGzCO,EAAkB,SAACP,GACf,IAAAQ,EAAgBnB,EAAamB,YACrCP,EAAU,MACPO,GACDA,EAAYR,IAuDhB,OAnDAS,GAAU,WACM,MAAVT,IAEJA,EAAOU,kBAAoB,SAACC,GAC1BP,EAAYO,EAAEC,WAGVzB,GAAUA,EAASwB,GAGf,IAAUE,EAAuBxB,EAAaF,SAClD0B,GAAoBA,EAAmBF,IAE/C,GAAG,CAACX,EAAQX,IAGZoB,GAAU,WACR,GAAc,MAAVT,GAEAd,IAAUiB,EAGd,IACEH,EAAOc,QAAQ5B,EAChB,CAAC,MAAO6B,GACPC,QAAQD,MAAMA,EACf,CAEH,GAAG,CAAC7B,IAEJuB,GAAU,iBACR,GAAmB,MAAfd,EAAIsB,SACM,MAAVjB,aAEApB,EAAAe,EAAIsB,8BAASC,aAAa,sBAA9B,CAEA,IAAMC,EAAYC,EAAa,CAC7BC,SAAU1B,EAAIsB,QACdK,OACKC,EAAAA,EAAA,CAAA,EAAAlC,GACH,CAAAP,UAAWuB,EACXlB,SAAU,SAACwB,GAAa,IAAA/B,EAAI,OAA+B,QAA/BA,EAAAuC,aAAA,EAAAA,EAAWT,yBAAoB,IAAA9B,OAAA,EAAAA,EAAA4C,KAAAL,EAAAR,EAAE,EAC7DH,YAAaD,IAEfkB,QAAS5C,EACT6C,KAAM1C,GAAeE,EACrBK,KAAIA,IAENU,EAAUkB,EAd0C,CAetD,GAAG,CAACnB,IAEG2B,EAAKC,cAAA,MAAA,CAAAnC,MAAOA,EAAOE,IAAKA,EAAKD,UAAWA,GACjD,CCnFA,SAASmC,EAAiBlD,GAChB,IAAAqB,EAAwErB,EAAlEqB,OAAEpB,EAAgED,EAAKU,cAArEA,aAAgB,CAAE,EAAAT,EAAEG,EAA4CJ,EAA5BY,KAAhBA,OAAI,IAAAR,EAAG,UAASA,EAAEE,EAA0BN,QAA1Bc,OAAQ,IAAAR,EAAA,CAAE,IAAES,EAAcf,YAC1EgB,EAAMC,EAAuB,
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../src/components/Editor.tsx","../src/components/Toolbar.tsx"],"sourcesContent":["/**\r\n * @description editor react component\r\n * @author wangfupeng\r\n */\r\n\r\nimport React, { useRef, useEffect, useState } from 'react'\r\nimport {SlateDescendant, IEditorConfig, createEditor, IDomEditor, SlateEditor, SlateTransforms } from '@wangeditor-next/editor'\r\n\r\ninterface IProps {\r\n defaultContent?: SlateDescendant[]\r\n onCreated?: (editor: IDomEditor) => void\r\n defaultHtml?: string\r\n value?: string\r\n onChange: (editor: IDomEditor) => void\r\n defaultConfig: Partial<IEditorConfig>\r\n mode?: string\r\n style?: React.CSSProperties\r\n className?: string\r\n}\r\n\r\ninterface ICustomDomEditor extends IDomEditor {\r\n __react_on_change?: (editor: ICustomDomEditor) => void;\r\n}\r\n\r\nfunction EditorComponent(props: Partial<IProps>) {\r\n const { defaultContent = [], onCreated, defaultHtml = '', value = '', onChange, defaultConfig = {}, mode = 'default', style = {}, className } = props\r\n const ref = useRef<HTMLDivElement>(null)\r\n const [editor, setEditor] = useState<ICustomDomEditor | null>(null)\r\n const [curValue, setCurValue] = useState('')\r\n\r\n const handleCreated = (editor: IDomEditor) => {\r\n // 组件属性 onCreated\r\n if (onCreated) onCreated(editor)\r\n\r\n // 编辑器 配置 onCreated\r\n const { onCreated: onCreatedFromConfig } = defaultConfig\r\n if (onCreatedFromConfig) onCreatedFromConfig(editor)\r\n }\r\n\r\n const handleDestroyed = (editor: IDomEditor) => {\r\n const { onDestroyed } = defaultConfig\r\n setEditor(null)\r\n if(onDestroyed) {\r\n onDestroyed(editor)\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n if (editor == null) return\r\n\r\n editor.__react_on_change = (e: IDomEditor) => {\r\n setCurValue(e.getHtml()) // 记录当前 html 值\r\n \r\n // 组件属性 onChange\r\n if (onChange) onChange(e)\r\n \r\n // 编辑器 配置 onChange\r\n const { onChange: onChangeFromConfig } = defaultConfig\r\n if (onChangeFromConfig) onChangeFromConfig(e)\r\n }\r\n }, [editor, defaultConfig])\r\n\r\n // value 变化,重置 HTML\r\n useEffect(() => {\r\n if (editor == null) return\r\n\r\n if (value === curValue) return // 如果和当前 html 值相等,则忽略\r\n\r\n // ------ 重新设置 HTML ------\r\n try {\r\n editor.setHtml(value)\r\n } catch (error) {\r\n console.error(error)\r\n }\r\n\r\n }, [value])\r\n\r\n useEffect(() => {\r\n if (ref.current == null) return\r\n if (editor != null) return\r\n // 防止重复渲染 当编辑器已经创建就不在创建了\r\n if (ref.current?.getAttribute('data-w-e-textarea')) return\r\n\r\n const newEditor = createEditor({\r\n selector: ref.current,\r\n config: {\r\n ...defaultConfig,\r\n onCreated: handleCreated,\r\n onChange: (e: IDomEditor)=> newEditor?.__react_on_change?.(e),\r\n onDestroyed: handleDestroyed,\r\n },\r\n content: defaultContent,\r\n html: defaultHtml || value,\r\n mode,\r\n })as ICustomDomEditor\r\n setEditor(newEditor)\r\n }, [editor])\r\n\r\n return <div style={style} ref={ref} className={className}></div>\r\n}\r\n\r\nexport default EditorComponent\r\n","/**\r\n * @description toolbar react component\r\n * @author wangfupeng\r\n */\r\n\r\nimport React, { useRef, useEffect } from 'react'\r\nimport * as wangEditor from '@wangeditor-next/editor'\r\n\r\ninterface IProps {\r\n editor: wangEditor.IDomEditor | null\r\n defaultConfig?: Partial<wangEditor.IToolbarConfig>\r\n mode?: string\r\n style?: object\r\n className?: string\r\n}\r\n\r\nfunction ToolbarComponent(props: IProps) {\r\n const { editor, defaultConfig = {}, mode = 'default', style = {}, className } = props\r\n const ref = useRef<HTMLDivElement>(null)\r\n\r\n useEffect(() => {\r\n if (ref.current == null) return\r\n if (editor == null) return\r\n if (ref.current?.getAttribute('data-w-e-toolbar')) return\r\n\r\n wangEditor.createToolbar({\r\n editor,\r\n selector: ref.current,\r\n config: defaultConfig,\r\n mode,\r\n })\r\n }, [editor])\r\n\r\n return <div style={style} ref={ref} className={className}></div>\r\n}\r\n\r\nexport default ToolbarComponent\r\n"],"names":["EditorComponent","props","_a","defaultContent","onCreated","_b","defaultHtml","_c","value","onChange","_d","defaultConfig","_e","mode","_f","style","className","ref","useRef","_g","__read","useState","editor","setEditor","_h","curValue","setCurValue","handleCreated","onCreatedFromConfig","handleDestroyed","onDestroyed","useEffect","__react_on_change","e","getHtml","onChangeFromConfig","setHtml","error","console","current","getAttribute","newEditor","createEditor","selector","config","__assign","call","content","html","React","createElement","ToolbarComponent","wangEditor","createToolbar"],"mappings":"6oBAwBA,SAASA,EAAgBC,GACf,IAAAC,EAAwID,EAArHE,eAAnBA,OAAiB,IAAAD,EAAA,GAAEA,EAAEE,EAAmHH,EAAKG,UAA7GC,EAAwGJ,EAAxFK,YAAhBA,OAAW,IAAAD,EAAG,GAAEA,EAAEE,EAAsFN,EAA5EO,MAAVA,OAAK,IAAAD,EAAG,GAAEA,EAAEE,EAA0ER,EAAKQ,SAArEC,EAAgET,EAAKU,cAArEA,OAAa,IAAAD,EAAG,CAAE,EAAAA,EAAEE,EAA4CX,EAAKY,KAAjDA,OAAI,IAAAD,EAAG,UAASA,EAAEE,EAA0Bb,EAAKc,MAA/BA,OAAK,IAAAD,EAAG,CAAE,EAAAA,EAAEE,EAAcf,YAC1IgB,EAAMC,EAAuB,MAC7BC,EAAAC,EAAsBC,EAAkC,MAAK,GAA5DC,EAAMH,EAAA,GAAEI,OACTC,EAAAJ,EAA0BC,EAAS,IAAG,GAArCI,EAAQD,EAAA,GAAEE,OAEXC,EAAgB,SAACL,GAEjBlB,GAAWA,EAAUkB,GAGjB,IAAWM,EAAwBjB,EAAaP,UACpDwB,GAAqBA,EAAoBN,IAGzCO,EAAkB,SAACP,GACf,IAAAQ,EAAgBnB,EAAamB,YACrCP,EAAU,MACPO,GACDA,EAAYR,IAuDhB,OAnDAS,GAAU,WACM,MAAVT,IAEJA,EAAOU,kBAAoB,SAACC,GAC1BP,EAAYO,EAAEC,WAGVzB,GAAUA,EAASwB,GAGf,IAAUE,EAAuBxB,EAAaF,SAClD0B,GAAoBA,EAAmBF,IAE/C,GAAG,CAACX,EAAQX,IAGZoB,GAAU,WACR,GAAc,MAAVT,GAEAd,IAAUiB,EAGd,IACEH,EAAOc,QAAQ5B,EAChB,CAAC,MAAO6B,GACPC,QAAQD,MAAMA,EACf,CAEH,GAAG,CAAC7B,IAEJuB,GAAU,iBACR,GAAmB,MAAfd,EAAIsB,SACM,MAAVjB,aAEApB,EAAAe,EAAIsB,8BAASC,aAAa,sBAA9B,CAEA,IAAMC,EAAYC,EAAa,CAC7BC,SAAU1B,EAAIsB,QACdK,OACKC,EAAAA,EAAA,CAAA,EAAAlC,GACH,CAAAP,UAAWuB,EACXlB,SAAU,SAACwB,GAAa,IAAA/B,EAAI,OAA+B,QAA/BA,EAAAuC,aAAA,EAAAA,EAAWT,yBAAoB,IAAA9B,OAAA,EAAAA,EAAA4C,KAAAL,EAAAR,EAAE,EAC7DH,YAAaD,IAEfkB,QAAS5C,EACT6C,KAAM1C,GAAeE,EACrBK,KAAIA,IAENU,EAAUkB,EAd0C,CAetD,GAAG,CAACnB,IAEG2B,EAAKC,cAAA,MAAA,CAAAnC,MAAOA,EAAOE,IAAKA,EAAKD,UAAWA,GACjD,CCnFA,SAASmC,EAAiBlD,GAChB,IAAAqB,EAAwErB,EAAlEqB,OAAEpB,EAAgED,EAAKU,cAArEA,aAAgB,CAAE,EAAAT,EAAEG,EAA4CJ,EAA5BY,KAAhBA,OAAI,IAAAR,EAAG,UAASA,EAAEE,EAA0BN,QAA1Bc,OAAQ,IAAAR,EAAA,CAAE,IAAES,EAAcf,YAC1EgB,EAAMC,EAAuB,MAenC,OAbAa,GAAU,iBACW,MAAfd,EAAIsB,SACM,MAAVjB,aACApB,EAAAe,EAAIsB,8BAASC,aAAa,sBAE9BY,EAAWC,cAAc,CACvB/B,OAAMA,EACNqB,SAAU1B,EAAIsB,QACdK,OAAQjC,EACRE,KAAIA,IAER,GAAG,CAACS,IAEG2B,EAAKC,cAAA,MAAA,CAAAnC,MAAOA,EAAOE,IAAKA,EAAKD,UAAWA,GACjD"}
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react"),require("@wangeditor-next/editor")):"function"==typeof define&&define.amd?define(["exports","react","@wangeditor-next/editor"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).WangEditorForReact={},e.React,e.wangEditor)}(this,(function(e,t,r){"use strict";function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function o(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var u=n(t),
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react"),require("@wangeditor-next/editor")):"function"==typeof define&&define.amd?define(["exports","react","@wangeditor-next/editor"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).WangEditorForReact={},e.React,e.wangEditor)}(this,(function(e,t,r){"use strict";function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function o(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var u=n(t),a=o(r),l=function(){return l=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},l.apply(this,arguments)};function i(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,u=r.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(n=u.next()).done;)a.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=u.return)&&r.call(u)}finally{if(o)throw o.error}}return a}"function"==typeof SuppressedError&&SuppressedError,e.Editor=function(e){var n=e.defaultContent,o=void 0===n?[]:n,a=e.onCreated,f=e.defaultHtml,c=void 0===f?"":f,d=e.value,s=void 0===d?"":d,v=e.onChange,y=e.defaultConfig,p=void 0===y?{}:y,g=e.mode,b=void 0===g?"default":g,m=e.style,h=void 0===m?{}:m,E=e.className,_=t.useRef(null),j=i(t.useState(null),2),O=j[0],C=j[1],w=i(t.useState(""),2),x=w[0],S=w[1],N=function(e){a&&a(e);var t=p.onCreated;t&&t(e)},P=function(e){var t=p.onDestroyed;C(null),t&&t(e)};return t.useEffect((function(){null!=O&&(O.__react_on_change=function(e){S(e.getHtml()),v&&v(e);var t=p.onChange;t&&t(e)})}),[O,p]),t.useEffect((function(){if(null!=O&&s!==x)try{O.setHtml(s)}catch(e){console.error(e)}}),[s]),t.useEffect((function(){var e;if(null!=_.current&&null==O&&!(null===(e=_.current)||void 0===e?void 0:e.getAttribute("data-w-e-textarea"))){var t=r.createEditor({selector:_.current,config:l(l({},p),{onCreated:N,onChange:function(e){var r;return null===(r=null==t?void 0:t.__react_on_change)||void 0===r?void 0:r.call(t,e)},onDestroyed:P}),content:o,html:c||s,mode:b});C(t)}}),[O]),u.default.createElement("div",{style:h,ref:_,className:E})},e.Toolbar=function(e){var r=e.editor,n=e.defaultConfig,o=void 0===n?{}:n,l=e.mode,i=void 0===l?"default":l,f=e.style,c=void 0===f?{}:f,d=e.className,s=t.useRef(null);return t.useEffect((function(){var e;null!=s.current&&null!=r&&((null===(e=s.current)||void 0===e?void 0:e.getAttribute("data-w-e-toolbar"))||a.createToolbar({editor:r,selector:s.current,config:o,mode:i}))}),[r]),u.default.createElement("div",{style:c,ref:s,className:d})},Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/components/Editor.tsx","../src/components/Toolbar.tsx"],"sourcesContent":["/**\n * @description editor react component\n * @author wangfupeng\n */\n\nimport React, { useRef, useEffect, useState } from 'react'\nimport {SlateDescendant, IEditorConfig, createEditor, IDomEditor, SlateEditor, SlateTransforms } from '@wangeditor-next/editor'\n\ninterface IProps {\n defaultContent?: SlateDescendant[]\n onCreated?: (editor: IDomEditor) => void\n defaultHtml?: string\n value?: string\n onChange: (editor: IDomEditor) => void\n defaultConfig: Partial<IEditorConfig>\n mode?: string\n style?: React.CSSProperties\n className?: string\n}\n\ninterface ICustomDomEditor extends IDomEditor {\n __react_on_change?: (editor: ICustomDomEditor) => void;\n}\n\nfunction EditorComponent(props: Partial<IProps>) {\n const { defaultContent = [], onCreated, defaultHtml = '', value = '', onChange, defaultConfig = {}, mode = 'default', style = {}, className } = props\n const ref = useRef<HTMLDivElement>(null)\n const [editor, setEditor] = useState<ICustomDomEditor | null>(null)\n const [curValue, setCurValue] = useState('')\n\n const handleCreated = (editor: IDomEditor) => {\n // 组件属性 onCreated\n if (onCreated) onCreated(editor)\n\n // 编辑器 配置 onCreated\n const { onCreated: onCreatedFromConfig } = defaultConfig\n if (onCreatedFromConfig) onCreatedFromConfig(editor)\n }\n\n const handleDestroyed = (editor: IDomEditor) => {\n const { onDestroyed } = defaultConfig\n setEditor(null)\n if(onDestroyed) {\n onDestroyed(editor)\n }\n }\n\n useEffect(() => {\n if (editor == null) return\n\n editor.__react_on_change = (e: IDomEditor) => {\n setCurValue(e.getHtml()) // 记录当前 html 值\n \n // 组件属性 onChange\n if (onChange) onChange(e)\n \n // 编辑器 配置 onChange\n const { onChange: onChangeFromConfig } = defaultConfig\n if (onChangeFromConfig) onChangeFromConfig(e)\n }\n }, [editor, defaultConfig])\n\n // value 变化,重置 HTML\n useEffect(() => {\n if (editor == null) return\n\n if (value === curValue) return // 如果和当前 html 值相等,则忽略\n\n // ------ 重新设置 HTML ------\n try {\n editor.setHtml(value)\n } catch (error) {\n console.error(error)\n }\n\n }, [value])\n\n useEffect(() => {\n if (ref.current == null) return\n if (editor != null) return\n // 防止重复渲染 当编辑器已经创建就不在创建了\n if (ref.current?.getAttribute('data-w-e-textarea')) return\n\n const newEditor = createEditor({\n selector: ref.current,\n config: {\n ...defaultConfig,\n onCreated: handleCreated,\n onChange: (e: IDomEditor)=> newEditor?.__react_on_change?.(e),\n onDestroyed: handleDestroyed,\n },\n content: defaultContent,\n html: defaultHtml || value,\n mode,\n })as ICustomDomEditor\n setEditor(newEditor)\n }, [editor])\n\n return <div style={style} ref={ref} className={className}></div>\n}\n\nexport default EditorComponent\n","/**\n * @description toolbar react component\n * @author wangfupeng\n */\n\nimport React, { useRef, useEffect } from 'react'\nimport * as wangEditor from '@wangeditor-next/editor'\n\ninterface IProps {\n editor: wangEditor.IDomEditor | null\n defaultConfig?: Partial<wangEditor.IToolbarConfig>\n mode?: string\n style?: object\n className?: string\n}\n\nfunction ToolbarComponent(props: IProps) {\n const { editor, defaultConfig = {}, mode = 'default', style = {}, className } = props\n const ref = useRef<HTMLDivElement>(null)\n\n useEffect(() => {\n if (ref.current == null) return\n if (editor == null) return\n\n wangEditor.createToolbar({\n editor,\n selector: ref.current,\n config: defaultConfig,\n mode,\n })\n }, [editor])\n\n return <div style={style} ref={ref} className={className}></div>\n}\n\nexport default ToolbarComponent\n"],"names":["props","_a","defaultContent","onCreated","_b","defaultHtml","_c","value","onChange","_d","defaultConfig","_e","mode","_f","style","className","ref","useRef","_g","__read","useState","editor","setEditor","_h","curValue","setCurValue","handleCreated","onCreatedFromConfig","handleDestroyed","onDestroyed","useEffect","__react_on_change","e","getHtml","onChangeFromConfig","setHtml","error","console","current","getAttribute","newEditor","createEditor","selector","config","__assign","call","content","html","React","createElement","wangEditor","createToolbar"],"mappings":"wwCAwBA,SAAyBA,GACf,IAAAC,EAAwID,EAArHE,eAAnBA,OAAiB,IAAAD,EAAA,GAAEA,EAAEE,EAAmHH,EAAKG,UAA7GC,EAAwGJ,EAAxFK,YAAhBA,OAAW,IAAAD,EAAG,GAAEA,EAAEE,EAAsFN,EAA5EO,MAAVA,OAAK,IAAAD,EAAG,GAAEA,EAAEE,EAA0ER,EAAKQ,SAArEC,EAAgET,EAAKU,cAArEA,OAAa,IAAAD,EAAG,CAAE,EAAAA,EAAEE,EAA4CX,EAAKY,KAAjDA,OAAI,IAAAD,EAAG,UAASA,EAAEE,EAA0Bb,EAAKc,MAA/BA,OAAK,IAAAD,EAAG,CAAE,EAAAA,EAAEE,EAAcf,YAC1IgB,EAAMC,SAAuB,MAC7BC,EAAAC,EAAsBC,EAAQA,SAA0B,MAAK,GAA5DC,EAAMH,EAAA,GAAEI,OACTC,EAAAJ,EAA0BC,EAAQA,SAAC,IAAG,GAArCI,EAAQD,EAAA,GAAEE,OAEXC,EAAgB,SAACL,GAEjBlB,GAAWA,EAAUkB,GAGjB,IAAWM,EAAwBjB,EAAaP,UACpDwB,GAAqBA,EAAoBN,IAGzCO,EAAkB,SAACP,GACf,IAAAQ,EAAgBnB,EAAamB,YACrCP,EAAU,MACPO,GACDA,EAAYR,IAuDhB,OAnDAS,EAAAA,WAAU,WACM,MAAVT,IAEJA,EAAOU,kBAAoB,SAACC,GAC1BP,EAAYO,EAAEC,WAGVzB,GAAUA,EAASwB,GAGf,IAAUE,EAAuBxB,EAAaF,SAClD0B,GAAoBA,EAAmBF,IAE/C,GAAG,CAACX,EAAQX,IAGZoB,EAAAA,WAAU,WACR,GAAc,MAAVT,GAEAd,IAAUiB,EAGd,IACEH,EAAOc,QAAQ5B,EAChB,CAAC,MAAO6B,GACPC,QAAQD,MAAMA,EACf,CAEH,GAAG,CAAC7B,IAEJuB,EAAAA,WAAU,iBACR,GAAmB,MAAfd,EAAIsB,SACM,MAAVjB,aAEApB,EAAAe,EAAIsB,8BAASC,aAAa,sBAA9B,CAEA,IAAMC,EAAYC,EAAAA,aAAa,CAC7BC,SAAU1B,EAAIsB,QACdK,OACKC,EAAAA,EAAA,CAAA,EAAAlC,GACH,CAAAP,UAAWuB,EACXlB,SAAU,SAACwB,GAAa,IAAA/B,EAAI,OAA+B,QAA/BA,EAAAuC,aAAA,EAAAA,EAAWT,yBAAoB,IAAA9B,OAAA,EAAAA,EAAA4C,KAAAL,EAAAR,EAAE,EAC7DH,YAAaD,IAEfkB,QAAS5C,EACT6C,KAAM1C,GAAeE,EACrBK,KAAIA,IAENU,EAAUkB,EAd0C,CAetD,GAAG,CAACnB,IAEG2B,EAAK,QAAAC,cAAA,MAAA,CAAAnC,MAAOA,EAAOE,IAAKA,EAAKD,UAAWA,GACjD,YCnFA,SAA0Bf,GAChB,IAAAqB,EAAwErB,EAAlEqB,OAAEpB,EAAgED,EAAKU,cAArEA,aAAgB,CAAE,EAAAT,EAAEG,EAA4CJ,EAA5BY,KAAhBA,OAAI,IAAAR,EAAG,UAASA,EAAEE,EAA0BN,QAA1Bc,OAAQ,IAAAR,EAAA,CAAE,IAAES,EAAcf,YAC1EgB,EAAMC,SAAuB,
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/components/Editor.tsx","../src/components/Toolbar.tsx"],"sourcesContent":["/**\r\n * @description editor react component\r\n * @author wangfupeng\r\n */\r\n\r\nimport React, { useRef, useEffect, useState } from 'react'\r\nimport {SlateDescendant, IEditorConfig, createEditor, IDomEditor, SlateEditor, SlateTransforms } from '@wangeditor-next/editor'\r\n\r\ninterface IProps {\r\n defaultContent?: SlateDescendant[]\r\n onCreated?: (editor: IDomEditor) => void\r\n defaultHtml?: string\r\n value?: string\r\n onChange: (editor: IDomEditor) => void\r\n defaultConfig: Partial<IEditorConfig>\r\n mode?: string\r\n style?: React.CSSProperties\r\n className?: string\r\n}\r\n\r\ninterface ICustomDomEditor extends IDomEditor {\r\n __react_on_change?: (editor: ICustomDomEditor) => void;\r\n}\r\n\r\nfunction EditorComponent(props: Partial<IProps>) {\r\n const { defaultContent = [], onCreated, defaultHtml = '', value = '', onChange, defaultConfig = {}, mode = 'default', style = {}, className } = props\r\n const ref = useRef<HTMLDivElement>(null)\r\n const [editor, setEditor] = useState<ICustomDomEditor | null>(null)\r\n const [curValue, setCurValue] = useState('')\r\n\r\n const handleCreated = (editor: IDomEditor) => {\r\n // 组件属性 onCreated\r\n if (onCreated) onCreated(editor)\r\n\r\n // 编辑器 配置 onCreated\r\n const { onCreated: onCreatedFromConfig } = defaultConfig\r\n if (onCreatedFromConfig) onCreatedFromConfig(editor)\r\n }\r\n\r\n const handleDestroyed = (editor: IDomEditor) => {\r\n const { onDestroyed } = defaultConfig\r\n setEditor(null)\r\n if(onDestroyed) {\r\n onDestroyed(editor)\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n if (editor == null) return\r\n\r\n editor.__react_on_change = (e: IDomEditor) => {\r\n setCurValue(e.getHtml()) // 记录当前 html 值\r\n \r\n // 组件属性 onChange\r\n if (onChange) onChange(e)\r\n \r\n // 编辑器 配置 onChange\r\n const { onChange: onChangeFromConfig } = defaultConfig\r\n if (onChangeFromConfig) onChangeFromConfig(e)\r\n }\r\n }, [editor, defaultConfig])\r\n\r\n // value 变化,重置 HTML\r\n useEffect(() => {\r\n if (editor == null) return\r\n\r\n if (value === curValue) return // 如果和当前 html 值相等,则忽略\r\n\r\n // ------ 重新设置 HTML ------\r\n try {\r\n editor.setHtml(value)\r\n } catch (error) {\r\n console.error(error)\r\n }\r\n\r\n }, [value])\r\n\r\n useEffect(() => {\r\n if (ref.current == null) return\r\n if (editor != null) return\r\n // 防止重复渲染 当编辑器已经创建就不在创建了\r\n if (ref.current?.getAttribute('data-w-e-textarea')) return\r\n\r\n const newEditor = createEditor({\r\n selector: ref.current,\r\n config: {\r\n ...defaultConfig,\r\n onCreated: handleCreated,\r\n onChange: (e: IDomEditor)=> newEditor?.__react_on_change?.(e),\r\n onDestroyed: handleDestroyed,\r\n },\r\n content: defaultContent,\r\n html: defaultHtml || value,\r\n mode,\r\n })as ICustomDomEditor\r\n setEditor(newEditor)\r\n }, [editor])\r\n\r\n return <div style={style} ref={ref} className={className}></div>\r\n}\r\n\r\nexport default EditorComponent\r\n","/**\r\n * @description toolbar react component\r\n * @author wangfupeng\r\n */\r\n\r\nimport React, { useRef, useEffect } from 'react'\r\nimport * as wangEditor from '@wangeditor-next/editor'\r\n\r\ninterface IProps {\r\n editor: wangEditor.IDomEditor | null\r\n defaultConfig?: Partial<wangEditor.IToolbarConfig>\r\n mode?: string\r\n style?: object\r\n className?: string\r\n}\r\n\r\nfunction ToolbarComponent(props: IProps) {\r\n const { editor, defaultConfig = {}, mode = 'default', style = {}, className } = props\r\n const ref = useRef<HTMLDivElement>(null)\r\n\r\n useEffect(() => {\r\n if (ref.current == null) return\r\n if (editor == null) return\r\n if (ref.current?.getAttribute('data-w-e-toolbar')) return\r\n\r\n wangEditor.createToolbar({\r\n editor,\r\n selector: ref.current,\r\n config: defaultConfig,\r\n mode,\r\n })\r\n }, [editor])\r\n\r\n return <div style={style} ref={ref} className={className}></div>\r\n}\r\n\r\nexport default ToolbarComponent\r\n"],"names":["props","_a","defaultContent","onCreated","_b","defaultHtml","_c","value","onChange","_d","defaultConfig","_e","mode","_f","style","className","ref","useRef","_g","__read","useState","editor","setEditor","_h","curValue","setCurValue","handleCreated","onCreatedFromConfig","handleDestroyed","onDestroyed","useEffect","__react_on_change","e","getHtml","onChangeFromConfig","setHtml","error","console","current","getAttribute","newEditor","createEditor","selector","config","__assign","call","content","html","React","createElement","wangEditor","createToolbar"],"mappings":"wwCAwBA,SAAyBA,GACf,IAAAC,EAAwID,EAArHE,eAAnBA,OAAiB,IAAAD,EAAA,GAAEA,EAAEE,EAAmHH,EAAKG,UAA7GC,EAAwGJ,EAAxFK,YAAhBA,OAAW,IAAAD,EAAG,GAAEA,EAAEE,EAAsFN,EAA5EO,MAAVA,OAAK,IAAAD,EAAG,GAAEA,EAAEE,EAA0ER,EAAKQ,SAArEC,EAAgET,EAAKU,cAArEA,OAAa,IAAAD,EAAG,CAAE,EAAAA,EAAEE,EAA4CX,EAAKY,KAAjDA,OAAI,IAAAD,EAAG,UAASA,EAAEE,EAA0Bb,EAAKc,MAA/BA,OAAK,IAAAD,EAAG,CAAE,EAAAA,EAAEE,EAAcf,YAC1IgB,EAAMC,SAAuB,MAC7BC,EAAAC,EAAsBC,EAAQA,SAA0B,MAAK,GAA5DC,EAAMH,EAAA,GAAEI,OACTC,EAAAJ,EAA0BC,EAAQA,SAAC,IAAG,GAArCI,EAAQD,EAAA,GAAEE,OAEXC,EAAgB,SAACL,GAEjBlB,GAAWA,EAAUkB,GAGjB,IAAWM,EAAwBjB,EAAaP,UACpDwB,GAAqBA,EAAoBN,IAGzCO,EAAkB,SAACP,GACf,IAAAQ,EAAgBnB,EAAamB,YACrCP,EAAU,MACPO,GACDA,EAAYR,IAuDhB,OAnDAS,EAAAA,WAAU,WACM,MAAVT,IAEJA,EAAOU,kBAAoB,SAACC,GAC1BP,EAAYO,EAAEC,WAGVzB,GAAUA,EAASwB,GAGf,IAAUE,EAAuBxB,EAAaF,SAClD0B,GAAoBA,EAAmBF,IAE/C,GAAG,CAACX,EAAQX,IAGZoB,EAAAA,WAAU,WACR,GAAc,MAAVT,GAEAd,IAAUiB,EAGd,IACEH,EAAOc,QAAQ5B,EAChB,CAAC,MAAO6B,GACPC,QAAQD,MAAMA,EACf,CAEH,GAAG,CAAC7B,IAEJuB,EAAAA,WAAU,iBACR,GAAmB,MAAfd,EAAIsB,SACM,MAAVjB,aAEApB,EAAAe,EAAIsB,8BAASC,aAAa,sBAA9B,CAEA,IAAMC,EAAYC,EAAAA,aAAa,CAC7BC,SAAU1B,EAAIsB,QACdK,OACKC,EAAAA,EAAA,CAAA,EAAAlC,GACH,CAAAP,UAAWuB,EACXlB,SAAU,SAACwB,GAAa,IAAA/B,EAAI,OAA+B,QAA/BA,EAAAuC,aAAA,EAAAA,EAAWT,yBAAoB,IAAA9B,OAAA,EAAAA,EAAA4C,KAAAL,EAAAR,EAAE,EAC7DH,YAAaD,IAEfkB,QAAS5C,EACT6C,KAAM1C,GAAeE,EACrBK,KAAIA,IAENU,EAAUkB,EAd0C,CAetD,GAAG,CAACnB,IAEG2B,EAAK,QAAAC,cAAA,MAAA,CAAAnC,MAAOA,EAAOE,IAAKA,EAAKD,UAAWA,GACjD,YCnFA,SAA0Bf,GAChB,IAAAqB,EAAwErB,EAAlEqB,OAAEpB,EAAgED,EAAKU,cAArEA,aAAgB,CAAE,EAAAT,EAAEG,EAA4CJ,EAA5BY,KAAhBA,OAAI,IAAAR,EAAG,UAASA,EAAEE,EAA0BN,QAA1Bc,OAAQ,IAAAR,EAAA,CAAE,IAAES,EAAcf,YAC1EgB,EAAMC,SAAuB,MAenC,OAbAa,EAAAA,WAAU,iBACW,MAAfd,EAAIsB,SACM,MAAVjB,aACApB,EAAAe,EAAIsB,8BAASC,aAAa,sBAE9BW,EAAWC,cAAc,CACvB9B,OAAMA,EACNqB,SAAU1B,EAAIsB,QACdK,OAAQjC,EACRE,KAAIA,IAER,GAAG,CAACS,IAEG2B,EAAK,QAAAC,cAAA,MAAA,CAAAnC,MAAOA,EAAOE,IAAKA,EAAKD,UAAWA,GACjD"}
|
package/package.json
CHANGED
|
@@ -1,98 +1,98 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@wangeditor-next/editor-for-react",
|
|
3
|
-
"version": "1.0.
|
|
4
|
-
"description": "wangEditor component for React",
|
|
5
|
-
"author": "hahaaha <390519764@qq.com>",
|
|
6
|
-
"contributors": [],
|
|
7
|
-
"
|
|
8
|
-
"
|
|
9
|
-
"
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
"
|
|
15
|
-
},
|
|
16
|
-
"keywords": [
|
|
17
|
-
"wangEditor",
|
|
18
|
-
"wangEditor-next",
|
|
19
|
-
"富文本编辑器",
|
|
20
|
-
"富文本",
|
|
21
|
-
"react"
|
|
22
|
-
],
|
|
23
|
-
"
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
"dist"
|
|
29
|
-
|
|
30
|
-
"
|
|
31
|
-
"
|
|
32
|
-
"
|
|
33
|
-
},
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
"
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
-
"dev
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
"
|
|
47
|
-
},
|
|
48
|
-
"peerDependencies": {
|
|
49
|
-
"@wangeditor-next/core": ">=1.5.5",
|
|
50
|
-
"@wangeditor-next/editor": ">=5.3.12",
|
|
51
|
-
"react": ">=17.0.2",
|
|
52
|
-
"react-dom": ">=17.0.2"
|
|
53
|
-
},
|
|
54
|
-
"devDependencies": {
|
|
55
|
-
"@
|
|
56
|
-
"@babel/
|
|
57
|
-
"@babel/
|
|
58
|
-
"@babel/preset-
|
|
59
|
-
"@babel/preset-
|
|
60
|
-
"@
|
|
61
|
-
"@rollup/plugin-
|
|
62
|
-
"@rollup/plugin-
|
|
63
|
-
"@rollup/plugin-
|
|
64
|
-
"@rollup/plugin-
|
|
65
|
-
"@
|
|
66
|
-
"@testing-library/
|
|
67
|
-
"@
|
|
68
|
-
"@types/
|
|
69
|
-
"@types/react
|
|
70
|
-
"@
|
|
71
|
-
"@wangeditor-next/
|
|
72
|
-
"
|
|
73
|
-
"
|
|
74
|
-
"
|
|
75
|
-
"
|
|
76
|
-
"
|
|
77
|
-
"
|
|
78
|
-
"
|
|
79
|
-
"
|
|
80
|
-
"
|
|
81
|
-
"
|
|
82
|
-
"
|
|
83
|
-
"rollup
|
|
84
|
-
"rollup-plugin-
|
|
85
|
-
"rollup-plugin-
|
|
86
|
-
"rollup-plugin-
|
|
87
|
-
"rollup-plugin-
|
|
88
|
-
"rollup-plugin-
|
|
89
|
-
"rollup-plugin-
|
|
90
|
-
"rollup-plugin-
|
|
91
|
-
"rollup-plugin-
|
|
92
|
-
"
|
|
93
|
-
"
|
|
94
|
-
"
|
|
95
|
-
"
|
|
96
|
-
},
|
|
97
|
-
"
|
|
98
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@wangeditor-next/editor-for-react",
|
|
3
|
+
"version": "1.0.9",
|
|
4
|
+
"description": "wangEditor component for React",
|
|
5
|
+
"author": "hahaaha <390519764@qq.com>",
|
|
6
|
+
"contributors": [],
|
|
7
|
+
"license": "MIT",
|
|
8
|
+
"homepage": "https://github.com/cycleccc/wangEditor-for-react#readme",
|
|
9
|
+
"repository": {
|
|
10
|
+
"type": "git",
|
|
11
|
+
"url": "git+https://github.com/cycleccc/wangEditor-for-react.git"
|
|
12
|
+
},
|
|
13
|
+
"bugs": {
|
|
14
|
+
"url": "https://github.com/cycleccc/wangEditor-for-react/issues"
|
|
15
|
+
},
|
|
16
|
+
"keywords": [
|
|
17
|
+
"wangEditor",
|
|
18
|
+
"wangEditor-next",
|
|
19
|
+
"富文本编辑器",
|
|
20
|
+
"富文本",
|
|
21
|
+
"react"
|
|
22
|
+
],
|
|
23
|
+
"main": "dist/index.js",
|
|
24
|
+
"module": "dist/index.esm.js",
|
|
25
|
+
"types": "dist/index.d.ts",
|
|
26
|
+
"browser": {
|
|
27
|
+
"./dist/index.esm.js": "./dist/index.esm.js",
|
|
28
|
+
"./dist/index.js": "./dist/index.js"
|
|
29
|
+
},
|
|
30
|
+
"directories": {
|
|
31
|
+
"lib": "dist",
|
|
32
|
+
"test": "__tests__"
|
|
33
|
+
},
|
|
34
|
+
"files": [
|
|
35
|
+
"dist"
|
|
36
|
+
],
|
|
37
|
+
"scripts": {
|
|
38
|
+
"test": "jest",
|
|
39
|
+
"test-c": "jest --coverage",
|
|
40
|
+
"example": "cross-env NODE_ENV=development:example rollup -c rollup.example.config.js -w",
|
|
41
|
+
"dev": "cross-env NODE_ENV=development rollup -c rollup.config.js",
|
|
42
|
+
"dev-watch": "cross-env NODE_ENV=development rollup -c rollup.config.js -w",
|
|
43
|
+
"build": "cross-env NODE_ENV=production rollup -c rollup.config.js",
|
|
44
|
+
"dev-size-stats": "cross-env NODE_ENV=development:size_stats rollup -c rollup.config.js",
|
|
45
|
+
"size-stats": "cross-env NODE_ENV=production:size_stats rollup -c rollup.config.js",
|
|
46
|
+
"release": "release-it"
|
|
47
|
+
},
|
|
48
|
+
"peerDependencies": {
|
|
49
|
+
"@wangeditor-next/core": ">=1.5.5",
|
|
50
|
+
"@wangeditor-next/editor": ">=5.3.12",
|
|
51
|
+
"react": ">=17.0.2",
|
|
52
|
+
"react-dom": ">=17.0.2"
|
|
53
|
+
},
|
|
54
|
+
"devDependencies": {
|
|
55
|
+
"@antfu/eslint-config": "^2.23.2",
|
|
56
|
+
"@babel/core": "^7.16.0",
|
|
57
|
+
"@babel/plugin-transform-runtime": "^7.16.0",
|
|
58
|
+
"@babel/preset-env": "^7.16.0",
|
|
59
|
+
"@babel/preset-react": "^7.16.0",
|
|
60
|
+
"@babel/preset-typescript": "^7.16.0",
|
|
61
|
+
"@rollup/plugin-babel": "^5.3.0",
|
|
62
|
+
"@rollup/plugin-commonjs": "^21.0.1",
|
|
63
|
+
"@rollup/plugin-json": "^4.1.0",
|
|
64
|
+
"@rollup/plugin-node-resolve": "^13.0.6",
|
|
65
|
+
"@rollup/plugin-replace": "^3.0.0",
|
|
66
|
+
"@testing-library/jest-dom": "^5.15.0",
|
|
67
|
+
"@testing-library/react": "^12.1.2",
|
|
68
|
+
"@types/jest": "^27.0.3",
|
|
69
|
+
"@types/react": "^17.0.13",
|
|
70
|
+
"@types/react-dom": "^17.0.8",
|
|
71
|
+
"@wangeditor-next/core": "^1.5.5",
|
|
72
|
+
"@wangeditor-next/editor": "^5.3.12",
|
|
73
|
+
"autoprefixer": "^10.4.0",
|
|
74
|
+
"babel-jest": "^27.3.1",
|
|
75
|
+
"cross-env": "^7.0.3",
|
|
76
|
+
"eslint": "9.5.0",
|
|
77
|
+
"jest": "^27.3.1",
|
|
78
|
+
"lodash": "^4.17.21",
|
|
79
|
+
"postcss": "^8.3.11",
|
|
80
|
+
"react": "^17.0.2",
|
|
81
|
+
"react-dom": "^17.0.2",
|
|
82
|
+
"release-it": "^14.11.8",
|
|
83
|
+
"rollup": "^2.59.0",
|
|
84
|
+
"rollup-plugin-cleanup": "^3.2.1",
|
|
85
|
+
"rollup-plugin-copy": "^3.4.0",
|
|
86
|
+
"rollup-plugin-delete": "^2.0.0",
|
|
87
|
+
"rollup-plugin-generate-html-template": "^1.7.0",
|
|
88
|
+
"rollup-plugin-peer-deps-external": "^2.2.4",
|
|
89
|
+
"rollup-plugin-postcss": "^4.0.1",
|
|
90
|
+
"rollup-plugin-serve": "^1.1.0",
|
|
91
|
+
"rollup-plugin-terser": "^7.0.2",
|
|
92
|
+
"rollup-plugin-typescript2": "^0.31.0",
|
|
93
|
+
"rollup-plugin-visualizer": "^5.5.2",
|
|
94
|
+
"ts-jest": "^27.0.7",
|
|
95
|
+
"typescript": "^4.4.4"
|
|
96
|
+
},
|
|
97
|
+
"packageManager": "yarn@4.5.1+sha512.341db9396b6e289fecc30cd7ab3af65060e05ebff4b3b47547b278b9e67b08f485ecd8c79006b405446262142c7a38154445ef7f17c1d5d1de7d90bf9ce7054d"
|
|
98
|
+
}
|