@chaitrabhairappa/react-native-rich-text-editor 1.0.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.
@@ -0,0 +1,45 @@
1
+ #import <React/RCTViewManager.h>
2
+
3
+ @interface RCT_EXTERN_MODULE(RichTextEditorViewManager, RCTViewManager)
4
+
5
+ RCT_EXPORT_VIEW_PROPERTY(placeholder, NSString)
6
+ RCT_EXPORT_VIEW_PROPERTY(editable, BOOL)
7
+ RCT_EXPORT_VIEW_PROPERTY(maxHeight, CGFloat)
8
+ RCT_EXPORT_VIEW_PROPERTY(showToolbar, BOOL)
9
+ RCT_EXPORT_VIEW_PROPERTY(toolbarOptions, NSArray)
10
+ RCT_EXPORT_VIEW_PROPERTY(initialContent, NSArray)
11
+ RCT_EXPORT_VIEW_PROPERTY(variant, NSString)
12
+ RCT_EXPORT_VIEW_PROPERTY(onContentChange, RCTDirectEventBlock)
13
+ RCT_EXPORT_VIEW_PROPERTY(onSelectionChange, RCTDirectEventBlock)
14
+ RCT_EXPORT_VIEW_PROPERTY(onEditorFocus, RCTDirectEventBlock)
15
+ RCT_EXPORT_VIEW_PROPERTY(onEditorBlur, RCTDirectEventBlock)
16
+ RCT_EXPORT_VIEW_PROPERTY(onSizeChange, RCTDirectEventBlock)
17
+
18
+ RCT_EXTERN_METHOD(setContent:(nonnull NSNumber *)node blocks:(nonnull NSArray *)blocks)
19
+ RCT_EXTERN_METHOD(getText:(nonnull NSNumber *)node resolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject)
20
+ RCT_EXTERN_METHOD(getBlocks:(nonnull NSNumber *)node resolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject)
21
+ RCT_EXTERN_METHOD(clear:(nonnull NSNumber *)node)
22
+ RCT_EXTERN_METHOD(focus:(nonnull NSNumber *)node)
23
+ RCT_EXTERN_METHOD(blur:(nonnull NSNumber *)node)
24
+ RCT_EXTERN_METHOD(insertLink:(nonnull NSNumber *)node url:(nonnull NSString *)url text:(nonnull NSString *)text)
25
+ RCT_EXTERN_METHOD(undo:(nonnull NSNumber *)node)
26
+ RCT_EXTERN_METHOD(redo:(nonnull NSNumber *)node)
27
+ RCT_EXTERN_METHOD(toggleBold:(nonnull NSNumber *)node)
28
+ RCT_EXTERN_METHOD(toggleItalic:(nonnull NSNumber *)node)
29
+ RCT_EXTERN_METHOD(toggleUnderline:(nonnull NSNumber *)node)
30
+ RCT_EXTERN_METHOD(toggleStrikethrough:(nonnull NSNumber *)node)
31
+ RCT_EXTERN_METHOD(toggleCode:(nonnull NSNumber *)node)
32
+ RCT_EXTERN_METHOD(toggleHighlight:(nonnull NSNumber *)node color:(NSString *)color)
33
+ RCT_EXTERN_METHOD(setHeading:(nonnull NSNumber *)node)
34
+ RCT_EXTERN_METHOD(setBulletList:(nonnull NSNumber *)node)
35
+ RCT_EXTERN_METHOD(setNumberedList:(nonnull NSNumber *)node)
36
+ RCT_EXTERN_METHOD(setQuote:(nonnull NSNumber *)node)
37
+ RCT_EXTERN_METHOD(setChecklist:(nonnull NSNumber *)node)
38
+ RCT_EXTERN_METHOD(setParagraph:(nonnull NSNumber *)node)
39
+ RCT_EXTERN_METHOD(clearFormatting:(nonnull NSNumber *)node)
40
+ RCT_EXTERN_METHOD(indent:(nonnull NSNumber *)node)
41
+ RCT_EXTERN_METHOD(outdent:(nonnull NSNumber *)node)
42
+ RCT_EXTERN_METHOD(setAlignment:(nonnull NSNumber *)node alignment:(nonnull NSString *)alignment)
43
+ RCT_EXTERN_METHOD(toggleChecklistItem:(nonnull NSNumber *)node)
44
+
45
+ @end
@@ -0,0 +1,235 @@
1
+ import React
2
+
3
+ @objc(RichTextEditorViewManager)
4
+ class RichTextEditorViewManager: RCTViewManager {
5
+
6
+ override func view() -> UIView! {
7
+ return RichTextEditorView()
8
+ }
9
+
10
+ override static func requiresMainQueueSetup() -> Bool {
11
+ return true
12
+ }
13
+
14
+ @objc func setContent(_ node: NSNumber, blocks: NSArray) {
15
+ DispatchQueue.main.async {
16
+ if let view = self.bridge?.uiManager.view(forReactTag: node) as? RichTextEditorView,
17
+ let blocksArray = blocks as? [[String: Any]] {
18
+ view.setContent(blocks: blocksArray)
19
+ }
20
+ }
21
+ }
22
+
23
+ @objc func getText(_ node: NSNumber, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock) {
24
+ DispatchQueue.main.async {
25
+ if let view = self.bridge?.uiManager.view(forReactTag: node) as? RichTextEditorView {
26
+ resolve(view.getText())
27
+ } else {
28
+ reject("ERROR", "View not found", nil)
29
+ }
30
+ }
31
+ }
32
+
33
+ @objc func getBlocks(_ node: NSNumber, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock) {
34
+ DispatchQueue.main.async {
35
+ if let view = self.bridge?.uiManager.view(forReactTag: node) as? RichTextEditorView {
36
+ resolve(view.getBlocksArray())
37
+ } else {
38
+ reject("ERROR", "View not found", nil)
39
+ }
40
+ }
41
+ }
42
+
43
+ @objc func clear(_ node: NSNumber) {
44
+ DispatchQueue.main.async {
45
+ if let view = self.bridge?.uiManager.view(forReactTag: node) as? RichTextEditorView {
46
+ view.clear()
47
+ }
48
+ }
49
+ }
50
+
51
+ @objc func focus(_ node: NSNumber) {
52
+ DispatchQueue.main.async {
53
+ if let view = self.bridge?.uiManager.view(forReactTag: node) as? RichTextEditorView {
54
+ view.focus()
55
+ }
56
+ }
57
+ }
58
+
59
+ @objc func blur(_ node: NSNumber) {
60
+ DispatchQueue.main.async {
61
+ if let view = self.bridge?.uiManager.view(forReactTag: node) as? RichTextEditorView {
62
+ view.blur()
63
+ }
64
+ }
65
+ }
66
+
67
+ @objc func insertLink(_ node: NSNumber, url: NSString, text: NSString) {
68
+ DispatchQueue.main.async {
69
+ if let view = self.bridge?.uiManager.view(forReactTag: node) as? RichTextEditorView {
70
+ view.insertLink(url: url as String, text: text as String)
71
+ }
72
+ }
73
+ }
74
+
75
+ @objc func undo(_ node: NSNumber) {
76
+ DispatchQueue.main.async {
77
+ if let view = self.bridge?.uiManager.view(forReactTag: node) as? RichTextEditorView {
78
+ view.undo()
79
+ }
80
+ }
81
+ }
82
+
83
+ @objc func redo(_ node: NSNumber) {
84
+ DispatchQueue.main.async {
85
+ if let view = self.bridge?.uiManager.view(forReactTag: node) as? RichTextEditorView {
86
+ view.redo()
87
+ }
88
+ }
89
+ }
90
+
91
+ @objc func toggleBold(_ node: NSNumber) {
92
+ DispatchQueue.main.async {
93
+ if let view = self.bridge?.uiManager.view(forReactTag: node) as? RichTextEditorView {
94
+ view.toggleBold()
95
+ }
96
+ }
97
+ }
98
+
99
+ @objc func toggleItalic(_ node: NSNumber) {
100
+ DispatchQueue.main.async {
101
+ if let view = self.bridge?.uiManager.view(forReactTag: node) as? RichTextEditorView {
102
+ view.toggleItalic()
103
+ }
104
+ }
105
+ }
106
+
107
+ @objc func toggleUnderline(_ node: NSNumber) {
108
+ DispatchQueue.main.async {
109
+ if let view = self.bridge?.uiManager.view(forReactTag: node) as? RichTextEditorView {
110
+ view.toggleUnderline()
111
+ }
112
+ }
113
+ }
114
+
115
+ @objc func toggleStrikethrough(_ node: NSNumber) {
116
+ DispatchQueue.main.async {
117
+ if let view = self.bridge?.uiManager.view(forReactTag: node) as? RichTextEditorView {
118
+ view.toggleStrikethrough()
119
+ }
120
+ }
121
+ }
122
+
123
+ @objc func toggleCode(_ node: NSNumber) {
124
+ DispatchQueue.main.async {
125
+ if let view = self.bridge?.uiManager.view(forReactTag: node) as? RichTextEditorView {
126
+ view.toggleCode()
127
+ }
128
+ }
129
+ }
130
+
131
+ @objc func toggleHighlight(_ node: NSNumber, color: NSString?) {
132
+ DispatchQueue.main.async {
133
+ if let view = self.bridge?.uiManager.view(forReactTag: node) as? RichTextEditorView {
134
+ view.toggleHighlight(color: color as String?)
135
+ }
136
+ }
137
+ }
138
+
139
+ @objc func setHeading(_ node: NSNumber) {
140
+ DispatchQueue.main.async {
141
+ if let view = self.bridge?.uiManager.view(forReactTag: node) as? RichTextEditorView {
142
+ view.setHeading()
143
+ }
144
+ }
145
+ }
146
+
147
+ @objc func setBulletList(_ node: NSNumber) {
148
+ DispatchQueue.main.async {
149
+ if let view = self.bridge?.uiManager.view(forReactTag: node) as? RichTextEditorView {
150
+ view.toggleBulletList()
151
+ }
152
+ }
153
+ }
154
+
155
+ @objc func setNumberedList(_ node: NSNumber) {
156
+ DispatchQueue.main.async {
157
+ if let view = self.bridge?.uiManager.view(forReactTag: node) as? RichTextEditorView {
158
+ view.toggleNumberedList()
159
+ }
160
+ }
161
+ }
162
+
163
+ @objc func setQuote(_ node: NSNumber) {
164
+ DispatchQueue.main.async {
165
+ if let view = self.bridge?.uiManager.view(forReactTag: node) as? RichTextEditorView {
166
+ view.setQuote()
167
+ }
168
+ }
169
+ }
170
+
171
+ @objc func setChecklist(_ node: NSNumber) {
172
+ DispatchQueue.main.async {
173
+ if let view = self.bridge?.uiManager.view(forReactTag: node) as? RichTextEditorView {
174
+ view.setChecklist()
175
+ }
176
+ }
177
+ }
178
+
179
+ @objc func setParagraph(_ node: NSNumber) {
180
+ DispatchQueue.main.async {
181
+ if let view = self.bridge?.uiManager.view(forReactTag: node) as? RichTextEditorView {
182
+ view.setParagraph()
183
+ }
184
+ }
185
+ }
186
+
187
+ @objc func clearFormatting(_ node: NSNumber) {
188
+ DispatchQueue.main.async {
189
+ if let view = self.bridge?.uiManager.view(forReactTag: node) as? RichTextEditorView {
190
+ view.clearFormatting()
191
+ }
192
+ }
193
+ }
194
+
195
+ @objc func indent(_ node: NSNumber) {
196
+ DispatchQueue.main.async {
197
+ if let view = self.bridge?.uiManager.view(forReactTag: node) as? RichTextEditorView {
198
+ view.indent()
199
+ }
200
+ }
201
+ }
202
+
203
+ @objc func outdent(_ node: NSNumber) {
204
+ DispatchQueue.main.async {
205
+ if let view = self.bridge?.uiManager.view(forReactTag: node) as? RichTextEditorView {
206
+ view.outdent()
207
+ }
208
+ }
209
+ }
210
+
211
+ @objc func setAlignment(_ node: NSNumber, alignment: NSString) {
212
+ DispatchQueue.main.async {
213
+ if let view = self.bridge?.uiManager.view(forReactTag: node) as? RichTextEditorView {
214
+ let alignmentValue: NSTextAlignment
215
+ switch alignment as String {
216
+ case "center":
217
+ alignmentValue = .center
218
+ case "right":
219
+ alignmentValue = .right
220
+ default:
221
+ alignmentValue = .left
222
+ }
223
+ view.setAlignment(alignmentValue)
224
+ }
225
+ }
226
+ }
227
+
228
+ @objc func toggleChecklistItem(_ node: NSNumber) {
229
+ DispatchQueue.main.async {
230
+ if let view = self.bridge?.uiManager.view(forReactTag: node) as? RichTextEditorView {
231
+ view.toggleChecklistItem()
232
+ }
233
+ }
234
+ }
235
+ }
@@ -0,0 +1,156 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "DEFAULT_TOOLBAR_OPTIONS", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _types.DEFAULT_TOOLBAR_OPTIONS;
10
+ }
11
+ });
12
+ exports.default = void 0;
13
+ var _react = _interopRequireWildcard(require("react"));
14
+ var _reactNative = require("react-native");
15
+ var _types = require("./types");
16
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
17
+ const COMPONENT_NAME = 'RichTextEditorView';
18
+ const RichTextEditorViewNative = (0, _reactNative.requireNativeComponent)(COMPONENT_NAME);
19
+ const RichTextEditor = /*#__PURE__*/(0, _react.forwardRef)((props, ref) => {
20
+ const nativeRef = (0, _react.useRef)(null);
21
+ const [height, setHeight] = (0, _react.useState)(44);
22
+ const handleSizeChange = (0, _react.useCallback)(event => {
23
+ const newHeight = event.nativeEvent?.height;
24
+ if (newHeight && newHeight > 0) {
25
+ setHeight(newHeight);
26
+ }
27
+ }, []);
28
+ const dispatchCommand = (0, _react.useCallback)((command, args = []) => {
29
+ const handle = (0, _reactNative.findNodeHandle)(nativeRef.current);
30
+ if (handle) {
31
+ const commands = _reactNative.UIManager.getViewManagerConfig(COMPONENT_NAME)?.Commands;
32
+ const commandId = commands?.[command];
33
+ if (commandId !== undefined) {
34
+ _reactNative.UIManager.dispatchViewManagerCommand(handle, commandId, args);
35
+ }
36
+ }
37
+ }, []);
38
+ (0, _react.useImperativeHandle)(ref, () => ({
39
+ setContent: blocks => {
40
+ dispatchCommand('setContent', [blocks]);
41
+ },
42
+ getText: async () => {
43
+ return new Promise(resolve => {
44
+ resolve('');
45
+ });
46
+ },
47
+ getBlocks: async () => {
48
+ return new Promise(resolve => {
49
+ resolve([]);
50
+ });
51
+ },
52
+ clear: () => {
53
+ dispatchCommand('clear');
54
+ },
55
+ focus: () => {
56
+ dispatchCommand('focus');
57
+ },
58
+ blur: () => {
59
+ dispatchCommand('blur');
60
+ },
61
+ toggleBold: () => {
62
+ dispatchCommand('toggleBold');
63
+ },
64
+ toggleItalic: () => {
65
+ dispatchCommand('toggleItalic');
66
+ },
67
+ toggleUnderline: () => {
68
+ dispatchCommand('toggleUnderline');
69
+ },
70
+ toggleStrikethrough: () => {
71
+ dispatchCommand('toggleStrikethrough');
72
+ },
73
+ toggleCode: () => {
74
+ dispatchCommand('toggleCode');
75
+ },
76
+ toggleHighlight: color => {
77
+ dispatchCommand('toggleHighlight', color ? [color] : []);
78
+ },
79
+ setHeading: () => {
80
+ dispatchCommand('setHeading');
81
+ },
82
+ setBulletList: () => {
83
+ dispatchCommand('setBulletList');
84
+ },
85
+ setNumberedList: () => {
86
+ dispatchCommand('setNumberedList');
87
+ },
88
+ setQuote: () => {
89
+ dispatchCommand('setQuote');
90
+ },
91
+ setChecklist: () => {
92
+ dispatchCommand('setChecklist');
93
+ },
94
+ setParagraph: () => {
95
+ dispatchCommand('setParagraph');
96
+ },
97
+ insertLink: (url, text) => {
98
+ dispatchCommand('insertLink', [url, text]);
99
+ },
100
+ undo: () => {
101
+ dispatchCommand('undo');
102
+ },
103
+ redo: () => {
104
+ dispatchCommand('redo');
105
+ },
106
+ clearFormatting: () => {
107
+ dispatchCommand('clearFormatting');
108
+ },
109
+ indent: () => {
110
+ dispatchCommand('indent');
111
+ },
112
+ outdent: () => {
113
+ dispatchCommand('outdent');
114
+ },
115
+ setAlignment: alignment => {
116
+ dispatchCommand('setAlignment', [alignment]);
117
+ },
118
+ toggleChecklistItem: () => {
119
+ dispatchCommand('toggleChecklistItem');
120
+ }
121
+ }));
122
+ const handleContentChange = (0, _react.useCallback)(event => {
123
+ props.onContentChange?.(event);
124
+ }, [props.onContentChange]);
125
+ const handleSelectionChange = (0, _react.useCallback)(event => {
126
+ props.onSelectionChange?.(event);
127
+ }, [props.onSelectionChange]);
128
+ const handleFocus = (0, _react.useCallback)(() => {
129
+ props.onFocus?.();
130
+ }, [props.onFocus]);
131
+ const handleBlur = (0, _react.useCallback)(() => {
132
+ props.onBlur?.();
133
+ }, [props.onBlur]);
134
+ const combinedStyle = _reactNative.StyleSheet.flatten([props.style, {
135
+ height
136
+ }]);
137
+ return /*#__PURE__*/_react.default.createElement(RichTextEditorViewNative, {
138
+ ref: nativeRef,
139
+ style: combinedStyle,
140
+ placeholder: props.placeholder,
141
+ initialContent: props.initialContent,
142
+ editable: props.readOnly !== undefined ? !props.readOnly : true,
143
+ maxHeight: props.maxHeight,
144
+ showToolbar: props.readOnly ? false : props.showToolbar ?? true,
145
+ toolbarOptions: props.toolbarOptions,
146
+ variant: props.variant ?? 'outlined',
147
+ onContentChange: handleContentChange,
148
+ onSelectionChange: handleSelectionChange,
149
+ onEditorFocus: handleFocus,
150
+ onEditorBlur: handleBlur,
151
+ onSizeChange: handleSizeChange
152
+ });
153
+ });
154
+ RichTextEditor.displayName = 'RichTextEditor';
155
+ var _default = exports.default = RichTextEditor;
156
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_types","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","COMPONENT_NAME","RichTextEditorViewNative","requireNativeComponent","RichTextEditor","forwardRef","props","ref","nativeRef","useRef","height","setHeight","useState","handleSizeChange","useCallback","event","newHeight","nativeEvent","dispatchCommand","command","args","handle","findNodeHandle","current","commands","UIManager","getViewManagerConfig","Commands","commandId","undefined","dispatchViewManagerCommand","useImperativeHandle","setContent","blocks","getText","Promise","resolve","getBlocks","clear","focus","blur","toggleBold","toggleItalic","toggleUnderline","toggleStrikethrough","toggleCode","toggleHighlight","color","setHeading","setBulletList","setNumberedList","setQuote","setChecklist","setParagraph","insertLink","url","text","undo","redo","clearFormatting","indent","outdent","setAlignment","alignment","toggleChecklistItem","handleContentChange","onContentChange","handleSelectionChange","onSelectionChange","handleFocus","onFocus","handleBlur","onBlur","combinedStyle","StyleSheet","flatten","style","createElement","placeholder","initialContent","editable","readOnly","maxHeight","showToolbar","toolbarOptions","variant","onEditorFocus","onEditorBlur","onSizeChange","displayName","_default","exports"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.DEFAULT_TOOLBAR_OPTIONS = void 0;
7
+ const DEFAULT_TOOLBAR_OPTIONS = exports.DEFAULT_TOOLBAR_OPTIONS = ['bold', 'italic', 'underline', 'strikethrough', 'code', 'highlight', 'heading', 'bullet', 'numbered', 'quote', 'checklist', 'link', 'undo', 'redo', 'clearFormatting', 'indent', 'outdent', 'alignLeft', 'alignCenter', 'alignRight'];
8
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DEFAULT_TOOLBAR_OPTIONS","exports"],"sourceRoot":"../../src","sources":["types.ts"],"mappings":";;;;;;AA2DO,MAAMA,uBAAwC,GAAAC,OAAA,CAAAD,uBAAA,GAAG,CACtD,MAAM,EACN,QAAQ,EACR,WAAW,EACX,eAAe,EACf,MAAM,EACN,WAAW,EACX,SAAS,EACT,QAAQ,EACR,UAAU,EACV,OAAO,EACP,WAAW,EACX,MAAM,EACN,MAAM,EACN,MAAM,EACN,iBAAiB,EACjB,QAAQ,EACR,SAAS,EACT,WAAW,EACX,aAAa,EACb,YAAY,CACb","ignoreList":[]}
@@ -0,0 +1,143 @@
1
+ import React, { forwardRef, useImperativeHandle, useRef, useCallback, useState } from 'react';
2
+ import { requireNativeComponent, UIManager, findNodeHandle, StyleSheet } from 'react-native';
3
+ const COMPONENT_NAME = 'RichTextEditorView';
4
+ const RichTextEditorViewNative = requireNativeComponent(COMPONENT_NAME);
5
+ const RichTextEditor = /*#__PURE__*/forwardRef((props, ref) => {
6
+ const nativeRef = useRef(null);
7
+ const [height, setHeight] = useState(44);
8
+ const handleSizeChange = useCallback(event => {
9
+ const newHeight = event.nativeEvent?.height;
10
+ if (newHeight && newHeight > 0) {
11
+ setHeight(newHeight);
12
+ }
13
+ }, []);
14
+ const dispatchCommand = useCallback((command, args = []) => {
15
+ const handle = findNodeHandle(nativeRef.current);
16
+ if (handle) {
17
+ const commands = UIManager.getViewManagerConfig(COMPONENT_NAME)?.Commands;
18
+ const commandId = commands?.[command];
19
+ if (commandId !== undefined) {
20
+ UIManager.dispatchViewManagerCommand(handle, commandId, args);
21
+ }
22
+ }
23
+ }, []);
24
+ useImperativeHandle(ref, () => ({
25
+ setContent: blocks => {
26
+ dispatchCommand('setContent', [blocks]);
27
+ },
28
+ getText: async () => {
29
+ return new Promise(resolve => {
30
+ resolve('');
31
+ });
32
+ },
33
+ getBlocks: async () => {
34
+ return new Promise(resolve => {
35
+ resolve([]);
36
+ });
37
+ },
38
+ clear: () => {
39
+ dispatchCommand('clear');
40
+ },
41
+ focus: () => {
42
+ dispatchCommand('focus');
43
+ },
44
+ blur: () => {
45
+ dispatchCommand('blur');
46
+ },
47
+ toggleBold: () => {
48
+ dispatchCommand('toggleBold');
49
+ },
50
+ toggleItalic: () => {
51
+ dispatchCommand('toggleItalic');
52
+ },
53
+ toggleUnderline: () => {
54
+ dispatchCommand('toggleUnderline');
55
+ },
56
+ toggleStrikethrough: () => {
57
+ dispatchCommand('toggleStrikethrough');
58
+ },
59
+ toggleCode: () => {
60
+ dispatchCommand('toggleCode');
61
+ },
62
+ toggleHighlight: color => {
63
+ dispatchCommand('toggleHighlight', color ? [color] : []);
64
+ },
65
+ setHeading: () => {
66
+ dispatchCommand('setHeading');
67
+ },
68
+ setBulletList: () => {
69
+ dispatchCommand('setBulletList');
70
+ },
71
+ setNumberedList: () => {
72
+ dispatchCommand('setNumberedList');
73
+ },
74
+ setQuote: () => {
75
+ dispatchCommand('setQuote');
76
+ },
77
+ setChecklist: () => {
78
+ dispatchCommand('setChecklist');
79
+ },
80
+ setParagraph: () => {
81
+ dispatchCommand('setParagraph');
82
+ },
83
+ insertLink: (url, text) => {
84
+ dispatchCommand('insertLink', [url, text]);
85
+ },
86
+ undo: () => {
87
+ dispatchCommand('undo');
88
+ },
89
+ redo: () => {
90
+ dispatchCommand('redo');
91
+ },
92
+ clearFormatting: () => {
93
+ dispatchCommand('clearFormatting');
94
+ },
95
+ indent: () => {
96
+ dispatchCommand('indent');
97
+ },
98
+ outdent: () => {
99
+ dispatchCommand('outdent');
100
+ },
101
+ setAlignment: alignment => {
102
+ dispatchCommand('setAlignment', [alignment]);
103
+ },
104
+ toggleChecklistItem: () => {
105
+ dispatchCommand('toggleChecklistItem');
106
+ }
107
+ }));
108
+ const handleContentChange = useCallback(event => {
109
+ props.onContentChange?.(event);
110
+ }, [props.onContentChange]);
111
+ const handleSelectionChange = useCallback(event => {
112
+ props.onSelectionChange?.(event);
113
+ }, [props.onSelectionChange]);
114
+ const handleFocus = useCallback(() => {
115
+ props.onFocus?.();
116
+ }, [props.onFocus]);
117
+ const handleBlur = useCallback(() => {
118
+ props.onBlur?.();
119
+ }, [props.onBlur]);
120
+ const combinedStyle = StyleSheet.flatten([props.style, {
121
+ height
122
+ }]);
123
+ return /*#__PURE__*/React.createElement(RichTextEditorViewNative, {
124
+ ref: nativeRef,
125
+ style: combinedStyle,
126
+ placeholder: props.placeholder,
127
+ initialContent: props.initialContent,
128
+ editable: props.readOnly !== undefined ? !props.readOnly : true,
129
+ maxHeight: props.maxHeight,
130
+ showToolbar: props.readOnly ? false : props.showToolbar ?? true,
131
+ toolbarOptions: props.toolbarOptions,
132
+ variant: props.variant ?? 'outlined',
133
+ onContentChange: handleContentChange,
134
+ onSelectionChange: handleSelectionChange,
135
+ onEditorFocus: handleFocus,
136
+ onEditorBlur: handleBlur,
137
+ onSizeChange: handleSizeChange
138
+ });
139
+ });
140
+ RichTextEditor.displayName = 'RichTextEditor';
141
+ export default RichTextEditor;
142
+ export { DEFAULT_TOOLBAR_OPTIONS } from './types';
143
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","forwardRef","useImperativeHandle","useRef","useCallback","useState","requireNativeComponent","UIManager","findNodeHandle","StyleSheet","COMPONENT_NAME","RichTextEditorViewNative","RichTextEditor","props","ref","nativeRef","height","setHeight","handleSizeChange","event","newHeight","nativeEvent","dispatchCommand","command","args","handle","current","commands","getViewManagerConfig","Commands","commandId","undefined","dispatchViewManagerCommand","setContent","blocks","getText","Promise","resolve","getBlocks","clear","focus","blur","toggleBold","toggleItalic","toggleUnderline","toggleStrikethrough","toggleCode","toggleHighlight","color","setHeading","setBulletList","setNumberedList","setQuote","setChecklist","setParagraph","insertLink","url","text","undo","redo","clearFormatting","indent","outdent","setAlignment","alignment","toggleChecklistItem","handleContentChange","onContentChange","handleSelectionChange","onSelectionChange","handleFocus","onFocus","handleBlur","onBlur","combinedStyle","flatten","style","createElement","placeholder","initialContent","editable","readOnly","maxHeight","showToolbar","toolbarOptions","variant","onEditorFocus","onEditorBlur","onSizeChange","displayName","DEFAULT_TOOLBAR_OPTIONS"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export const DEFAULT_TOOLBAR_OPTIONS = ['bold', 'italic', 'underline', 'strikethrough', 'code', 'highlight', 'heading', 'bullet', 'numbered', 'quote', 'checklist', 'link', 'undo', 'redo', 'clearFormatting', 'indent', 'outdent', 'alignLeft', 'alignCenter', 'alignRight'];
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DEFAULT_TOOLBAR_OPTIONS"],"sourceRoot":"../../src","sources":["types.ts"],"mappings":"AA2DA,OAAO,MAAMA,uBAAwC,GAAG,CACtD,MAAM,EACN,QAAQ,EACR,WAAW,EACX,eAAe,EACf,MAAM,EACN,WAAW,EACX,SAAS,EACT,QAAQ,EACR,UAAU,EACV,OAAO,EACP,WAAW,EACX,MAAM,EACN,MAAM,EACN,MAAM,EACN,iBAAiB,EACjB,QAAQ,EACR,SAAS,EACT,WAAW,EACX,aAAa,EACb,YAAY,CACb","ignoreList":[]}
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import type { RichTextEditorProps, RichTextEditorRef } from './types';
3
+ declare const RichTextEditor: React.ForwardRefExoticComponent<RichTextEditorProps & React.RefAttributes<RichTextEditorRef>>;
4
+ export default RichTextEditor;
5
+ export { DEFAULT_TOOLBAR_OPTIONS } from './types';
6
+ export type { Block, BlockType, StyleRange, TextAlignment, EditorVariant, ContentChangeEvent, SelectionChangeEvent, RichTextEditorRef, RichTextEditorProps, ToolbarOption, } from './types';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyE,MAAM,OAAO,CAAC;AAE9F,OAAO,KAAK,EAKV,mBAAmB,EACnB,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAqBjB,QAAA,MAAM,cAAc,+FAuJnB,CAAC;AAIF,eAAe,cAAc,CAAC;AAC9B,OAAO,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAClD,YAAY,EACV,KAAK,EACL,SAAS,EACT,UAAU,EACV,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,aAAa,GACd,MAAM,SAAS,CAAC"}