phx-react 1.3.125 → 1.3.129

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.
Files changed (59) hide show
  1. package/dist/cjs/components/MainWrap/MainWrap.js +1 -1
  2. package/dist/cjs/components/MainWrap/MainWrap.js.map +1 -1
  3. package/dist/cjs/components/Table/Table.d.ts +3 -1
  4. package/dist/cjs/components/Table/Table.js +25 -3
  5. package/dist/cjs/components/Table/Table.js.map +1 -1
  6. package/dist/cjs/components/TextEditor/index.d.ts +1 -0
  7. package/dist/cjs/components/TextEditor/index.js +5 -0
  8. package/dist/cjs/components/TextEditor/index.js.map +1 -0
  9. package/dist/cjs/components/TextEditor/plugins/AutoLinkPlugin.d.ts +2 -0
  10. package/dist/cjs/components/TextEditor/plugins/AutoLinkPlugin.js +32 -0
  11. package/dist/cjs/components/TextEditor/plugins/AutoLinkPlugin.js.map +1 -0
  12. package/dist/cjs/components/TextEditor/plugins/CodeHighlightPlugin.d.ts +1 -0
  13. package/dist/cjs/components/TextEditor/plugins/CodeHighlightPlugin.js +12 -0
  14. package/dist/cjs/components/TextEditor/plugins/CodeHighlightPlugin.js.map +1 -0
  15. package/dist/cjs/components/TextEditor/plugins/ListMaxIndentLevelPlugin.d.ts +1 -0
  16. package/dist/cjs/components/TextEditor/plugins/ListMaxIndentLevelPlugin.js +46 -0
  17. package/dist/cjs/components/TextEditor/plugins/ListMaxIndentLevelPlugin.js.map +1 -0
  18. package/dist/cjs/components/TextEditor/plugins/ToolbarPlugin.d.ts +2 -0
  19. package/dist/cjs/components/TextEditor/plugins/ToolbarPlugin.js +460 -0
  20. package/dist/cjs/components/TextEditor/plugins/ToolbarPlugin.js.map +1 -0
  21. package/dist/cjs/components/TextEditor/textEditor.d.ts +2 -0
  22. package/dist/cjs/components/TextEditor/textEditor.js +86 -0
  23. package/dist/cjs/components/TextEditor/textEditor.js.map +1 -0
  24. package/dist/cjs/components/TextEditor/themes/ExampleTheme.d.ts +68 -0
  25. package/dist/cjs/components/TextEditor/themes/ExampleTheme.js +71 -0
  26. package/dist/cjs/components/TextEditor/themes/ExampleTheme.js.map +1 -0
  27. package/dist/cjs/index.d.ts +2 -1
  28. package/dist/cjs/index.js +3 -1
  29. package/dist/cjs/index.js.map +1 -1
  30. package/dist/esm/components/MainWrap/MainWrap.js +1 -1
  31. package/dist/esm/components/MainWrap/MainWrap.js.map +1 -1
  32. package/dist/esm/components/Table/Table.d.ts +3 -1
  33. package/dist/esm/components/Table/Table.js +25 -3
  34. package/dist/esm/components/Table/Table.js.map +1 -1
  35. package/dist/esm/components/TextEditor/index.d.ts +1 -0
  36. package/dist/esm/components/TextEditor/index.js +2 -0
  37. package/dist/esm/components/TextEditor/index.js.map +1 -0
  38. package/dist/esm/components/TextEditor/plugins/AutoLinkPlugin.d.ts +2 -0
  39. package/dist/esm/components/TextEditor/plugins/AutoLinkPlugin.js +28 -0
  40. package/dist/esm/components/TextEditor/plugins/AutoLinkPlugin.js.map +1 -0
  41. package/dist/esm/components/TextEditor/plugins/CodeHighlightPlugin.d.ts +1 -0
  42. package/dist/esm/components/TextEditor/plugins/CodeHighlightPlugin.js +9 -0
  43. package/dist/esm/components/TextEditor/plugins/CodeHighlightPlugin.js.map +1 -0
  44. package/dist/esm/components/TextEditor/plugins/ListMaxIndentLevelPlugin.d.ts +1 -0
  45. package/dist/esm/components/TextEditor/plugins/ListMaxIndentLevelPlugin.js +43 -0
  46. package/dist/esm/components/TextEditor/plugins/ListMaxIndentLevelPlugin.js.map +1 -0
  47. package/dist/esm/components/TextEditor/plugins/ToolbarPlugin.d.ts +2 -0
  48. package/dist/esm/components/TextEditor/plugins/ToolbarPlugin.js +456 -0
  49. package/dist/esm/components/TextEditor/plugins/ToolbarPlugin.js.map +1 -0
  50. package/dist/esm/components/TextEditor/textEditor.d.ts +2 -0
  51. package/dist/esm/components/TextEditor/textEditor.js +81 -0
  52. package/dist/esm/components/TextEditor/textEditor.js.map +1 -0
  53. package/dist/esm/components/TextEditor/themes/ExampleTheme.d.ts +68 -0
  54. package/dist/esm/components/TextEditor/themes/ExampleTheme.js +69 -0
  55. package/dist/esm/components/TextEditor/themes/ExampleTheme.js.map +1 -0
  56. package/dist/esm/index.d.ts +2 -1
  57. package/dist/esm/index.js +2 -1
  58. package/dist/esm/index.js.map +1 -1
  59. package/package.json +16 -15
@@ -0,0 +1,460 @@
1
+ "use strict";
2
+ exports.__esModule = true;
3
+ var tslib_1 = require("tslib");
4
+ var react_1 = tslib_1.__importDefault(require("react"));
5
+ var code_1 = require("@lexical/code");
6
+ var link_1 = require("@lexical/link");
7
+ var list_1 = require("@lexical/list");
8
+ var LexicalComposerContext_1 = require("@lexical/react/LexicalComposerContext");
9
+ var rich_text_1 = require("@lexical/rich-text");
10
+ var selection_1 = require("@lexical/selection");
11
+ var utils_1 = require("@lexical/utils");
12
+ var lexical_1 = require("lexical");
13
+ var react_2 = require("react");
14
+ var react_dom_1 = require("react-dom");
15
+ var LowPriority = 1;
16
+ var supportedBlockTypes = new Set(['paragraph', 'quote', 'code', 'h1', 'h2', 'ul', 'ol']);
17
+ var blockTypeToBlockName = {
18
+ code: 'Code Block',
19
+ h1: 'Large Heading',
20
+ h2: 'Small Heading',
21
+ h3: 'Heading',
22
+ h4: 'Heading',
23
+ h5: 'Heading',
24
+ ol: 'Numbered List',
25
+ paragraph: 'Normal',
26
+ quote: 'Quote',
27
+ ul: 'Bulleted List'
28
+ };
29
+ function Divider() {
30
+ return react_1["default"].createElement("div", { className: 'divider' });
31
+ }
32
+ function positionEditorElement(editor, rect) {
33
+ if (rect === null) {
34
+ editor.style.opacity = '0';
35
+ editor.style.top = '-1000px';
36
+ editor.style.left = '-1000px';
37
+ }
38
+ else {
39
+ editor.style.opacity = '1';
40
+ // eslint-disable-next-line no-undef
41
+ editor.style.top = "".concat(rect.top + rect.height + window.pageYOffset + 10, "px");
42
+ editor.style.left = "".concat(
43
+ // eslint-disable-next-line no-undef
44
+ rect.left + window.pageXOffset - editor.offsetWidth / 2 + rect.width / 2, "px");
45
+ }
46
+ }
47
+ // eslint-disable-next-line react/prop-types
48
+ function FloatingLinkEditor(_a) {
49
+ var editor = _a.editor;
50
+ var editorRef = (0, react_2.useRef)(null);
51
+ var inputRef = (0, react_2.useRef)(null);
52
+ var mouseDownRef = (0, react_2.useRef)(false);
53
+ var _b = (0, react_2.useState)(''), linkUrl = _b[0], setLinkUrl = _b[1];
54
+ var _c = (0, react_2.useState)(false), isEditMode = _c[0], setEditMode = _c[1];
55
+ var _d = (0, react_2.useState)(null), lastSelection = _d[0], setLastSelection = _d[1];
56
+ var updateLinkEditor = (0, react_2.useCallback)(function () {
57
+ var selection = (0, lexical_1.$getSelection)();
58
+ if ((0, lexical_1.$isRangeSelection)(selection)) {
59
+ var node = getSelectedNode(selection);
60
+ var parent_1 = node.getParent();
61
+ if ((0, link_1.$isLinkNode)(parent_1)) {
62
+ setLinkUrl(parent_1.getURL());
63
+ }
64
+ else if ((0, link_1.$isLinkNode)(node)) {
65
+ setLinkUrl(node.getURL());
66
+ }
67
+ else {
68
+ setLinkUrl('');
69
+ }
70
+ }
71
+ var editorElem = editorRef.current;
72
+ // eslint-disable-next-line no-undef
73
+ var nativeSelection = window.getSelection();
74
+ // eslint-disable-next-line no-undef
75
+ var activeElement = document.activeElement;
76
+ if (editorElem === null) {
77
+ return;
78
+ }
79
+ // eslint-disable-next-line react/prop-types
80
+ var rootElement = editor.getRootElement();
81
+ if (selection !== null &&
82
+ !nativeSelection.isCollapsed &&
83
+ rootElement !== null &&
84
+ rootElement.contains(nativeSelection.anchorNode)) {
85
+ var domRange = nativeSelection.getRangeAt(0);
86
+ var rect = void 0;
87
+ if (nativeSelection.anchorNode === rootElement) {
88
+ var inner = rootElement;
89
+ while (inner.firstElementChild != null) {
90
+ inner = inner.firstElementChild;
91
+ }
92
+ rect = inner.getBoundingClientRect();
93
+ }
94
+ else {
95
+ rect = domRange.getBoundingClientRect();
96
+ }
97
+ if (!mouseDownRef.current) {
98
+ positionEditorElement(editorElem, rect);
99
+ }
100
+ setLastSelection(selection);
101
+ }
102
+ else if (!activeElement || activeElement.className !== 'link-input') {
103
+ positionEditorElement(editorElem, null);
104
+ setLastSelection(null);
105
+ setEditMode(false);
106
+ setLinkUrl('');
107
+ }
108
+ return true;
109
+ }, [editor]);
110
+ (0, react_2.useEffect)(function () {
111
+ return (0, utils_1.mergeRegister)(editor.registerUpdateListener(function (_a) {
112
+ var editorState = _a.editorState;
113
+ editorState.read(function () {
114
+ updateLinkEditor();
115
+ });
116
+ }), editor.registerCommand(lexical_1.SELECTION_CHANGE_COMMAND, function () {
117
+ updateLinkEditor();
118
+ return true;
119
+ }, LowPriority));
120
+ }, [editor, updateLinkEditor]);
121
+ (0, react_2.useEffect)(function () {
122
+ editor.getEditorState().read(function () {
123
+ updateLinkEditor();
124
+ });
125
+ }, [editor, updateLinkEditor]);
126
+ (0, react_2.useEffect)(function () {
127
+ if (isEditMode && inputRef.current) {
128
+ inputRef.current.focus();
129
+ }
130
+ }, [isEditMode]);
131
+ return (react_1["default"].createElement("div", { ref: editorRef, className: 'link-editor' }, isEditMode ? (react_1["default"].createElement("input", { ref: inputRef, className: 'link-input', onChange: function (event) {
132
+ setLinkUrl(event.target.value);
133
+ }, onKeyDown: function (event) {
134
+ if (event.key === 'Enter') {
135
+ event.preventDefault();
136
+ if (lastSelection !== null) {
137
+ if (linkUrl !== '') {
138
+ editor.dispatchCommand(link_1.TOGGLE_LINK_COMMAND, linkUrl);
139
+ }
140
+ setEditMode(false);
141
+ }
142
+ }
143
+ else if (event.key === 'Escape') {
144
+ event.preventDefault();
145
+ setEditMode(false);
146
+ }
147
+ }, value: linkUrl })) : (react_1["default"].createElement(react_1["default"].Fragment, null,
148
+ react_1["default"].createElement("div", { className: 'link-input' },
149
+ react_1["default"].createElement("a", { href: linkUrl, rel: 'noopener noreferrer', target: '_blank' }, linkUrl),
150
+ react_1["default"].createElement("div", { className: 'link-edit', onClick: function () {
151
+ setEditMode(true);
152
+ }, onMouseDown: function (event) { return event.preventDefault(); }, role: 'button', tabIndex: 0 }))))));
153
+ }
154
+ function Select(_a) {
155
+ var className = _a.className, onChange = _a.onChange, options = _a.options, value = _a.value;
156
+ return (react_1["default"].createElement("select", { className: className, onChange: onChange, value: value },
157
+ react_1["default"].createElement("option", { hidden: true, value: '' }),
158
+ options.map(function (option) { return (react_1["default"].createElement("option", { key: option, value: option }, option)); })));
159
+ }
160
+ function getSelectedNode(selection) {
161
+ var anchor = selection.anchor;
162
+ var focus = selection.focus;
163
+ var anchorNode = selection.anchor.getNode();
164
+ var focusNode = selection.focus.getNode();
165
+ if (anchorNode === focusNode) {
166
+ return anchorNode;
167
+ }
168
+ var isBackward = selection.isBackward();
169
+ if (isBackward) {
170
+ return (0, selection_1.$isAtNodeEnd)(focus) ? anchorNode : focusNode;
171
+ }
172
+ else {
173
+ return (0, selection_1.$isAtNodeEnd)(anchor) ? focusNode : anchorNode;
174
+ }
175
+ }
176
+ function BlockOptionsDropdownList(_a) {
177
+ var blockType = _a.blockType, editor = _a.editor, setShowBlockOptionsDropDown = _a.setShowBlockOptionsDropDown, toolbarRef = _a.toolbarRef;
178
+ var dropDownRef = (0, react_2.useRef)(null);
179
+ (0, react_2.useEffect)(function () {
180
+ var toolbar = toolbarRef.current;
181
+ var dropDown = dropDownRef.current;
182
+ if (toolbar !== null && dropDown !== null) {
183
+ var _a = toolbar.getBoundingClientRect(), left = _a.left, top_1 = _a.top;
184
+ dropDown.style.top = "".concat(top_1 + 40, "px");
185
+ dropDown.style.left = "".concat(left, "px");
186
+ }
187
+ }, [dropDownRef, toolbarRef]);
188
+ (0, react_2.useEffect)(function () {
189
+ var dropDown = dropDownRef.current;
190
+ var toolbar = toolbarRef.current;
191
+ if (dropDown !== null && toolbar !== null) {
192
+ var handle = function (event) {
193
+ var target = event.target;
194
+ if (!dropDown.contains(target) && !toolbar.contains(target)) {
195
+ setShowBlockOptionsDropDown(false);
196
+ }
197
+ };
198
+ document.addEventListener('click', handle);
199
+ }
200
+ }, [dropDownRef, setShowBlockOptionsDropDown, toolbarRef]);
201
+ var formatParagraph = function () {
202
+ if (blockType !== 'paragraph') {
203
+ editor.update(function () {
204
+ var selection = (0, lexical_1.$getSelection)();
205
+ if ((0, lexical_1.$isRangeSelection)(selection)) {
206
+ (0, selection_1.$wrapNodes)(selection, function () { return (0, lexical_1.$createParagraphNode)(); });
207
+ }
208
+ });
209
+ }
210
+ setShowBlockOptionsDropDown(false);
211
+ };
212
+ var formatLargeHeading = function () {
213
+ if (blockType !== 'h1') {
214
+ editor.update(function () {
215
+ var selection = (0, lexical_1.$getSelection)();
216
+ if ((0, lexical_1.$isRangeSelection)(selection)) {
217
+ (0, selection_1.$wrapNodes)(selection, function () { return (0, rich_text_1.$createHeadingNode)('h1'); });
218
+ }
219
+ });
220
+ }
221
+ setShowBlockOptionsDropDown(false);
222
+ };
223
+ var formatSmallHeading = function () {
224
+ if (blockType !== 'h2') {
225
+ editor.update(function () {
226
+ var selection = (0, lexical_1.$getSelection)();
227
+ if ((0, lexical_1.$isRangeSelection)(selection)) {
228
+ (0, selection_1.$wrapNodes)(selection, function () { return (0, rich_text_1.$createHeadingNode)('h2'); });
229
+ }
230
+ });
231
+ }
232
+ setShowBlockOptionsDropDown(false);
233
+ };
234
+ var formatBulletList = function () {
235
+ if (blockType !== 'ul') {
236
+ editor.dispatchCommand(list_1.INSERT_UNORDERED_LIST_COMMAND);
237
+ }
238
+ else {
239
+ editor.dispatchCommand(list_1.REMOVE_LIST_COMMAND);
240
+ }
241
+ setShowBlockOptionsDropDown(false);
242
+ };
243
+ var formatNumberedList = function () {
244
+ if (blockType !== 'ol') {
245
+ editor.dispatchCommand(list_1.INSERT_ORDERED_LIST_COMMAND);
246
+ }
247
+ else {
248
+ editor.dispatchCommand(list_1.REMOVE_LIST_COMMAND);
249
+ }
250
+ setShowBlockOptionsDropDown(false);
251
+ };
252
+ var formatQuote = function () {
253
+ if (blockType !== 'quote') {
254
+ editor.update(function () {
255
+ var selection = (0, lexical_1.$getSelection)();
256
+ if ((0, lexical_1.$isRangeSelection)(selection)) {
257
+ (0, selection_1.$wrapNodes)(selection, function () { return (0, rich_text_1.$createQuoteNode)(); });
258
+ }
259
+ });
260
+ }
261
+ setShowBlockOptionsDropDown(false);
262
+ };
263
+ var formatCode = function () {
264
+ if (blockType !== 'code') {
265
+ editor.update(function () {
266
+ var selection = (0, lexical_1.$getSelection)();
267
+ if ((0, lexical_1.$isRangeSelection)(selection)) {
268
+ (0, selection_1.$wrapNodes)(selection, function () { return (0, code_1.$createCodeNode)(); });
269
+ }
270
+ });
271
+ }
272
+ setShowBlockOptionsDropDown(false);
273
+ };
274
+ return (react_1["default"].createElement("div", { ref: dropDownRef, className: 'dropdown' },
275
+ react_1["default"].createElement("button", { className: 'item', onClick: formatParagraph },
276
+ react_1["default"].createElement("span", { className: 'icon paragraph' }),
277
+ react_1["default"].createElement("span", { className: 'text' }, "Normal"),
278
+ blockType === 'paragraph' && react_1["default"].createElement("span", { className: 'active' })),
279
+ react_1["default"].createElement("button", { className: 'item', onClick: formatLargeHeading },
280
+ react_1["default"].createElement("span", { className: 'icon large-heading' }),
281
+ react_1["default"].createElement("span", { className: 'text' }, "Large Heading"),
282
+ blockType === 'h1' && react_1["default"].createElement("span", { className: 'active' })),
283
+ react_1["default"].createElement("button", { className: 'item', onClick: formatSmallHeading },
284
+ react_1["default"].createElement("span", { className: 'icon small-heading' }),
285
+ react_1["default"].createElement("span", { className: 'text' }, "Small Heading"),
286
+ blockType === 'h2' && react_1["default"].createElement("span", { className: 'active' })),
287
+ react_1["default"].createElement("button", { className: 'item', onClick: formatBulletList },
288
+ react_1["default"].createElement("span", { className: 'icon bullet-list' }),
289
+ react_1["default"].createElement("span", { className: 'text' }, "Bullet List"),
290
+ blockType === 'ul' && react_1["default"].createElement("span", { className: 'active' })),
291
+ react_1["default"].createElement("button", { className: 'item', onClick: formatNumberedList },
292
+ react_1["default"].createElement("span", { className: 'icon numbered-list' }),
293
+ react_1["default"].createElement("span", { className: 'text' }, "Numbered List"),
294
+ blockType === 'ol' && react_1["default"].createElement("span", { className: 'active' })),
295
+ react_1["default"].createElement("button", { className: 'item', onClick: formatQuote },
296
+ react_1["default"].createElement("span", { className: 'icon quote' }),
297
+ react_1["default"].createElement("span", { className: 'text' }, "Quote"),
298
+ blockType === 'quote' && react_1["default"].createElement("span", { className: 'active' })),
299
+ react_1["default"].createElement("button", { className: 'item', onClick: formatCode },
300
+ react_1["default"].createElement("span", { className: 'icon code' }),
301
+ react_1["default"].createElement("span", { className: 'text' }, "Code Block"),
302
+ blockType === 'code' && react_1["default"].createElement("span", { className: 'active' }))));
303
+ }
304
+ function ToolbarPlugin() {
305
+ var editor = (0, LexicalComposerContext_1.useLexicalComposerContext)()[0];
306
+ var toolbarRef = (0, react_2.useRef)(null);
307
+ var _a = (0, react_2.useState)(false), canUndo = _a[0], setCanUndo = _a[1];
308
+ var _b = (0, react_2.useState)(false), canRedo = _b[0], setCanRedo = _b[1];
309
+ var _c = (0, react_2.useState)('paragraph'), blockType = _c[0], setBlockType = _c[1];
310
+ var _d = (0, react_2.useState)(null), selectedElementKey = _d[0], setSelectedElementKey = _d[1];
311
+ var _e = (0, react_2.useState)(false), showBlockOptionsDropDown = _e[0], setShowBlockOptionsDropDown = _e[1];
312
+ var _f = (0, react_2.useState)(''), codeLanguage = _f[0], setCodeLanguage = _f[1];
313
+ var _g = (0, react_2.useState)(false), setIsRTL = _g[1];
314
+ var _h = (0, react_2.useState)(false), isLink = _h[0], setIsLink = _h[1];
315
+ var _j = (0, react_2.useState)(false), isBold = _j[0], setIsBold = _j[1];
316
+ var _k = (0, react_2.useState)(false), isItalic = _k[0], setIsItalic = _k[1];
317
+ var _l = (0, react_2.useState)(false), isUnderline = _l[0], setIsUnderline = _l[1];
318
+ var _m = (0, react_2.useState)(false), isStrikethrough = _m[0], setIsStrikethrough = _m[1];
319
+ var _o = (0, react_2.useState)(false), isCode = _o[0], setIsCode = _o[1];
320
+ var updateToolbar = (0, react_2.useCallback)(function () {
321
+ var selection = (0, lexical_1.$getSelection)();
322
+ if ((0, lexical_1.$isRangeSelection)(selection)) {
323
+ var anchorNode = selection.anchor.getNode();
324
+ var element = anchorNode.getKey() === 'root' ? anchorNode : anchorNode.getTopLevelElementOrThrow();
325
+ var elementKey = element.getKey();
326
+ var elementDOM = editor.getElementByKey(elementKey);
327
+ if (elementDOM !== null) {
328
+ setSelectedElementKey(elementKey);
329
+ if ((0, list_1.$isListNode)(element)) {
330
+ var parentList = (0, utils_1.$getNearestNodeOfType)(anchorNode, list_1.ListNode);
331
+ var type = parentList ? parentList.getTag() : element.getTag();
332
+ setBlockType(type);
333
+ }
334
+ else {
335
+ var type = (0, rich_text_1.$isHeadingNode)(element) ? element.getTag() : element.getType();
336
+ setBlockType(type);
337
+ if ((0, code_1.$isCodeNode)(element)) {
338
+ setCodeLanguage(element.getLanguage() || (0, code_1.getDefaultCodeLanguage)());
339
+ }
340
+ }
341
+ }
342
+ // Update text format
343
+ setIsBold(selection.hasFormat('bold'));
344
+ setIsItalic(selection.hasFormat('italic'));
345
+ setIsUnderline(selection.hasFormat('underline'));
346
+ setIsStrikethrough(selection.hasFormat('strikethrough'));
347
+ setIsCode(selection.hasFormat('code'));
348
+ setIsRTL((0, selection_1.$isParentElementRTL)(selection));
349
+ // Update links
350
+ var node = getSelectedNode(selection);
351
+ var parent_2 = node.getParent();
352
+ if ((0, link_1.$isLinkNode)(parent_2) || (0, link_1.$isLinkNode)(node)) {
353
+ setIsLink(true);
354
+ }
355
+ else {
356
+ setIsLink(false);
357
+ }
358
+ }
359
+ }, [editor]);
360
+ (0, react_2.useEffect)(function () {
361
+ return (0, utils_1.mergeRegister)(editor.registerUpdateListener(function (_a) {
362
+ var editorState = _a.editorState;
363
+ editorState.read(function () {
364
+ updateToolbar();
365
+ });
366
+ }), editor.registerCommand(lexical_1.SELECTION_CHANGE_COMMAND, function () {
367
+ updateToolbar();
368
+ return false;
369
+ }, LowPriority), editor.registerCommand(lexical_1.CAN_UNDO_COMMAND, function (payload) {
370
+ setCanUndo(payload);
371
+ return false;
372
+ }, LowPriority), editor.registerCommand(lexical_1.CAN_REDO_COMMAND, function (payload) {
373
+ setCanRedo(payload);
374
+ return false;
375
+ }, LowPriority));
376
+ }, [editor, updateToolbar]);
377
+ var codeLanguges = (0, react_2.useMemo)(function () { return (0, code_1.getCodeLanguages)(); }, []);
378
+ var onCodeLanguageSelect = (0, react_2.useCallback)(function (e) {
379
+ editor.update(function () {
380
+ if (selectedElementKey !== null) {
381
+ var node = (0, lexical_1.$getNodeByKey)(selectedElementKey);
382
+ if ((0, code_1.$isCodeNode)(node)) {
383
+ node.setLanguage(e.target.value);
384
+ }
385
+ }
386
+ });
387
+ }, [editor, selectedElementKey]);
388
+ var insertLink = (0, react_2.useCallback)(function () {
389
+ if (!isLink) {
390
+ editor.dispatchCommand(link_1.TOGGLE_LINK_COMMAND, 'https://');
391
+ }
392
+ else {
393
+ editor.dispatchCommand(link_1.TOGGLE_LINK_COMMAND, null);
394
+ }
395
+ }, [editor, isLink]);
396
+ return (react_1["default"].createElement("div", { ref: toolbarRef, className: 'toolbar' },
397
+ react_1["default"].createElement("button", { type: 'button', "aria-label": 'Undo', className: 'toolbar-item spaced', disabled: !canUndo, onClick: function () {
398
+ editor.dispatchCommand(lexical_1.UNDO_COMMAND);
399
+ } },
400
+ react_1["default"].createElement("i", { className: 'format undo' })),
401
+ react_1["default"].createElement("button", { type: 'button', "aria-label": 'Redo', className: 'toolbar-item', disabled: !canRedo, onClick: function () {
402
+ editor.dispatchCommand(lexical_1.REDO_COMMAND);
403
+ } },
404
+ react_1["default"].createElement("i", { className: 'format redo' })),
405
+ react_1["default"].createElement(Divider, null),
406
+ supportedBlockTypes.has(blockType) && (react_1["default"].createElement(react_1["default"].Fragment, null,
407
+ react_1["default"].createElement("button", { "aria-label": 'Formatting Options', className: 'toolbar-item block-controls', onClick: function () { return setShowBlockOptionsDropDown(!showBlockOptionsDropDown); }, type: 'button' },
408
+ react_1["default"].createElement("span", { className: 'icon block-type ' + blockType }),
409
+ react_1["default"].createElement("span", { className: 'text' }, blockTypeToBlockName[blockType]),
410
+ react_1["default"].createElement("i", { className: 'chevron-down' })),
411
+ showBlockOptionsDropDown &&
412
+ (0, react_dom_1.createPortal)(react_1["default"].createElement(BlockOptionsDropdownList, { blockType: blockType, editor: editor, setShowBlockOptionsDropDown: setShowBlockOptionsDropDown, toolbarRef: toolbarRef }), document.body),
413
+ react_1["default"].createElement(Divider, null))),
414
+ blockType === 'code' ? (react_1["default"].createElement(react_1["default"].Fragment, null,
415
+ react_1["default"].createElement(Select, { className: 'toolbar-item code-language', onChange: onCodeLanguageSelect, options: codeLanguges, value: codeLanguage }),
416
+ react_1["default"].createElement("i", { className: 'chevron-down inside' }))) : (react_1["default"].createElement(react_1["default"].Fragment, null,
417
+ react_1["default"].createElement("button", { "aria-label": 'Format Bold', className: 'toolbar-item spaced ' + (isBold ? 'active' : ''), onClick: function () {
418
+ editor.dispatchCommand(lexical_1.FORMAT_TEXT_COMMAND, 'bold');
419
+ }, type: 'button' },
420
+ react_1["default"].createElement("i", { className: 'format bold' })),
421
+ react_1["default"].createElement("button", { "aria-label": 'Format Italics', className: 'toolbar-item spaced ' + (isItalic ? 'active' : ''), onClick: function () {
422
+ editor.dispatchCommand(lexical_1.FORMAT_TEXT_COMMAND, 'italic');
423
+ }, type: 'button' },
424
+ react_1["default"].createElement("i", { className: 'format italic' })),
425
+ react_1["default"].createElement("button", { "aria-label": 'Format Underline', className: 'toolbar-item spaced ' + (isUnderline ? 'active' : ''), onClick: function () {
426
+ editor.dispatchCommand(lexical_1.FORMAT_TEXT_COMMAND, 'underline');
427
+ }, type: 'button' },
428
+ react_1["default"].createElement("i", { className: 'format underline' })),
429
+ react_1["default"].createElement("button", { "aria-label": 'Format Strikethrough', className: 'toolbar-item spaced ' + (isStrikethrough ? 'active' : ''), onClick: function () {
430
+ editor.dispatchCommand(lexical_1.FORMAT_TEXT_COMMAND, 'strikethrough');
431
+ }, type: 'button' },
432
+ react_1["default"].createElement("i", { className: 'format strikethrough' })),
433
+ react_1["default"].createElement("button", { "aria-label": 'Insert Code', className: 'toolbar-item spaced ' + (isCode ? 'active' : ''), onClick: function () {
434
+ editor.dispatchCommand(lexical_1.FORMAT_TEXT_COMMAND, 'code');
435
+ }, type: 'button' },
436
+ react_1["default"].createElement("i", { className: 'format code' })),
437
+ react_1["default"].createElement("button", { "aria-label": 'Insert Link', className: 'toolbar-item spaced ' + (isLink ? 'active' : ''), onClick: insertLink, type: 'button' },
438
+ react_1["default"].createElement("i", { className: 'format link' })),
439
+ isLink && (0, react_dom_1.createPortal)(react_1["default"].createElement(FloatingLinkEditor, { editor: editor }), document.body),
440
+ react_1["default"].createElement(Divider, null),
441
+ react_1["default"].createElement("button", { "aria-label": 'Left Align', className: 'toolbar-item spaced', onClick: function () {
442
+ editor.dispatchCommand(lexical_1.FORMAT_ELEMENT_COMMAND, 'left');
443
+ }, type: 'button' },
444
+ react_1["default"].createElement("i", { className: 'format left-align' })),
445
+ react_1["default"].createElement("button", { "aria-label": 'Center Align', className: 'toolbar-item spaced', onClick: function () {
446
+ editor.dispatchCommand(lexical_1.FORMAT_ELEMENT_COMMAND, 'center');
447
+ }, type: 'button' },
448
+ react_1["default"].createElement("i", { className: 'format center-align' })),
449
+ react_1["default"].createElement("button", { "aria-label": 'Right Align', className: 'toolbar-item spaced', onClick: function () {
450
+ editor.dispatchCommand(lexical_1.FORMAT_ELEMENT_COMMAND, 'right');
451
+ }, type: 'button' },
452
+ react_1["default"].createElement("i", { className: 'format right-align' })),
453
+ react_1["default"].createElement("button", { "aria-label": 'Justify Align', className: 'toolbar-item', onClick: function () {
454
+ editor.dispatchCommand(lexical_1.FORMAT_ELEMENT_COMMAND, 'justify');
455
+ }, type: 'button' },
456
+ react_1["default"].createElement("i", { className: 'format justify-align' })),
457
+ ' '))));
458
+ }
459
+ exports["default"] = ToolbarPlugin;
460
+ //# sourceMappingURL=ToolbarPlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolbarPlugin.js","sourceRoot":"","sources":["../../../../../src/components/TextEditor/plugins/ToolbarPlugin.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export declare const PHXTextEditor: ({ onChangeEditor, value }: any) => JSX.Element;
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ exports.__esModule = true;
3
+ exports.PHXTextEditor = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var code_1 = require("@lexical/code");
6
+ var link_1 = require("@lexical/link");
7
+ var list_1 = require("@lexical/list");
8
+ var markdown_1 = require("@lexical/markdown");
9
+ var LexicalAutoFocusPlugin_1 = require("@lexical/react/LexicalAutoFocusPlugin");
10
+ var LexicalComposer_1 = require("@lexical/react/LexicalComposer");
11
+ var LexicalContentEditable_1 = require("@lexical/react/LexicalContentEditable");
12
+ var LexicalErrorBoundary_1 = tslib_1.__importDefault(require("@lexical/react/LexicalErrorBoundary"));
13
+ var LexicalHistoryPlugin_1 = require("@lexical/react/LexicalHistoryPlugin");
14
+ var LexicalLinkPlugin_1 = require("@lexical/react/LexicalLinkPlugin");
15
+ var LexicalListPlugin_1 = require("@lexical/react/LexicalListPlugin");
16
+ var LexicalMarkdownShortcutPlugin_1 = require("@lexical/react/LexicalMarkdownShortcutPlugin");
17
+ var LexicalOnChangePlugin_1 = require("@lexical/react/LexicalOnChangePlugin");
18
+ var LexicalRichTextPlugin_1 = require("@lexical/react/LexicalRichTextPlugin");
19
+ var rich_text_1 = require("@lexical/rich-text");
20
+ var table_1 = require("@lexical/table");
21
+ var lexical_1 = require("lexical");
22
+ var react_1 = tslib_1.__importDefault(require("react"));
23
+ var AutoLinkPlugin_1 = tslib_1.__importDefault(require("./plugins/AutoLinkPlugin"));
24
+ var CodeHighlightPlugin_1 = tslib_1.__importDefault(require("./plugins/CodeHighlightPlugin"));
25
+ var ListMaxIndentLevelPlugin_1 = tslib_1.__importDefault(require("./plugins/ListMaxIndentLevelPlugin"));
26
+ var ToolbarPlugin_1 = tslib_1.__importDefault(require("./plugins/ToolbarPlugin"));
27
+ var ExampleTheme_1 = tslib_1.__importDefault(require("./themes/ExampleTheme"));
28
+ function Placeholder() {
29
+ return react_1["default"].createElement("div", { className: 'editor-placeholder' }, "Enter some rich text...");
30
+ }
31
+ var PHXTextEditor = function (_a) {
32
+ var onChangeEditor = _a.onChangeEditor, value = _a.value;
33
+ function prepopulatedRichText() {
34
+ var root = (0, lexical_1.$getRoot)();
35
+ if (root.getFirstChild() === null) {
36
+ var paragraph = (0, lexical_1.$createParagraphNode)();
37
+ paragraph.append((0, lexical_1.$createTextNode)(value));
38
+ root.append(paragraph);
39
+ }
40
+ }
41
+ var editorConfig = {
42
+ // The editor theme
43
+ theme: ExampleTheme_1["default"],
44
+ editorState: prepopulatedRichText,
45
+ // Handling of errors during update
46
+ onError: function (error) {
47
+ throw error;
48
+ },
49
+ // Any custom nodes go here
50
+ nodes: [
51
+ rich_text_1.HeadingNode,
52
+ list_1.ListNode,
53
+ list_1.ListItemNode,
54
+ rich_text_1.QuoteNode,
55
+ code_1.CodeNode,
56
+ code_1.CodeHighlightNode,
57
+ table_1.TableNode,
58
+ table_1.TableCellNode,
59
+ table_1.TableRowNode,
60
+ link_1.AutoLinkNode,
61
+ link_1.LinkNode,
62
+ ]
63
+ };
64
+ var onChange = function (editorState) {
65
+ editorState.read(function () {
66
+ var markdown = (0, markdown_1.$convertToMarkdownString)(markdown_1.TRANSFORMERS);
67
+ onChangeEditor(markdown);
68
+ });
69
+ };
70
+ return (react_1["default"].createElement(LexicalComposer_1.LexicalComposer, { initialConfig: editorConfig },
71
+ react_1["default"].createElement("div", { className: 'editor-container' },
72
+ react_1["default"].createElement(ToolbarPlugin_1["default"], null),
73
+ react_1["default"].createElement("div", { className: 'editor-inner' },
74
+ react_1["default"].createElement(LexicalRichTextPlugin_1.RichTextPlugin, { contentEditable: react_1["default"].createElement(LexicalContentEditable_1.ContentEditable, { className: 'editor-input' }), ErrorBoundary: LexicalErrorBoundary_1["default"], placeholder: react_1["default"].createElement(Placeholder, null) }),
75
+ react_1["default"].createElement(LexicalOnChangePlugin_1.OnChangePlugin, { onChange: onChange }),
76
+ react_1["default"].createElement(LexicalHistoryPlugin_1.HistoryPlugin, null),
77
+ react_1["default"].createElement(LexicalAutoFocusPlugin_1.AutoFocusPlugin, null),
78
+ react_1["default"].createElement(CodeHighlightPlugin_1["default"], null),
79
+ react_1["default"].createElement(LexicalListPlugin_1.ListPlugin, null),
80
+ react_1["default"].createElement(LexicalLinkPlugin_1.LinkPlugin, null),
81
+ react_1["default"].createElement(AutoLinkPlugin_1["default"], null),
82
+ react_1["default"].createElement(ListMaxIndentLevelPlugin_1["default"], { maxDepth: 7 }),
83
+ react_1["default"].createElement(LexicalMarkdownShortcutPlugin_1.MarkdownShortcutPlugin, { transformers: markdown_1.TRANSFORMERS })))));
84
+ };
85
+ exports.PHXTextEditor = PHXTextEditor;
86
+ //# sourceMappingURL=textEditor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textEditor.js","sourceRoot":"","sources":["../../../../src/components/TextEditor/textEditor.tsx"],"names":[],"mappings":";;;;AAAA,sCAA2D;AAC3D,sCAAsD;AACtD,sCAAsD;AACtD,8CAA0E;AAC1E,gFAAuE;AACvE,kEAAgE;AAChE,gFAAuE;AACvE,qGAAsE;AACtE,4EAAmE;AACnE,sEAA6D;AAC7D,sEAA6D;AAC7D,8FAAqF;AACrF,8EAAqE;AACrE,8EAAqE;AACrE,gDAA2D;AAC3D,wCAAuE;AACvE,mCAAyE;AACzE,wDAAyB;AACzB,oFAAqD;AACrD,8FAA+D;AAC/D,wGAAyE;AACzE,kFAAmD;AACnD,+EAAgD;AAEhD,SAAS,WAAW;IAClB,OAAO,0CAAK,SAAS,EAAC,oBAAoB,8BAA8B,CAAA;AAC1E,CAAC;AAEM,IAAM,aAAa,GAAG,UAAC,EAA8B;QAA5B,cAAc,oBAAA,EAAE,KAAK,WAAA;IACnD,SAAS,oBAAoB;QAC3B,IAAM,IAAI,GAAG,IAAA,kBAAQ,GAAE,CAAA;QACvB,IAAI,IAAI,CAAC,aAAa,EAAE,KAAK,IAAI,EAAE;YACjC,IAAM,SAAS,GAAG,IAAA,8BAAoB,GAAE,CAAA;YACxC,SAAS,CAAC,MAAM,CAAC,IAAA,yBAAe,EAAC,KAAK,CAAC,CAAC,CAAA;YACxC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;SACvB;IACH,CAAC;IACD,IAAM,YAAY,GAAQ;QACxB,mBAAmB;QACnB,KAAK,EAAE,yBAAY;QACnB,WAAW,EAAE,oBAAoB;QACjC,mCAAmC;QACnC,OAAO,EAAP,UAAQ,KAAU;YAChB,MAAM,KAAK,CAAA;QACb,CAAC;QACD,2BAA2B;QAC3B,KAAK,EAAE;YACL,uBAAW;YACX,eAAQ;YACR,mBAAY;YACZ,qBAAS;YACT,eAAQ;YACR,wBAAiB;YACjB,iBAAS;YACT,qBAAa;YACb,oBAAY;YACZ,mBAAY;YACZ,eAAQ;SACT;KACF,CAAA;IACD,IAAM,QAAQ,GAAG,UAAC,WAAgB;QAChC,WAAW,CAAC,IAAI,CAAC;YACf,IAAM,QAAQ,GAAG,IAAA,mCAAwB,EAAC,uBAAY,CAAC,CAAA;YACvD,cAAc,CAAC,QAAQ,CAAC,CAAA;QAC1B,CAAC,CAAC,CAAA;IACJ,CAAC,CAAA;IACD,OAAO,CACL,iCAAC,iCAAe,IAAC,aAAa,EAAE,YAAY;QAC1C,0CAAK,SAAS,EAAC,kBAAkB;YAC/B,iCAAC,0BAAa,OAAG;YACjB,0CAAK,SAAS,EAAC,cAAc;gBAC3B,iCAAC,sCAAc,IACb,eAAe,EAAE,iCAAC,wCAAe,IAAC,SAAS,EAAC,cAAc,GAAG,EAC7D,aAAa,EAAE,iCAAoB,EACnC,WAAW,EAAE,iCAAC,WAAW,OAAG,GAC5B;gBACF,iCAAC,sCAAc,IAAC,QAAQ,EAAE,QAAQ,GAAI;gBACtC,iCAAC,oCAAa,OAAG;gBACjB,iCAAC,wCAAe,OAAG;gBACnB,iCAAC,gCAAmB,OAAG;gBACvB,iCAAC,8BAAU,OAAG;gBACd,iCAAC,8BAAU,OAAG;gBACd,iCAAC,2BAAc,OAAG;gBAClB,iCAAC,qCAAwB,IAAC,QAAQ,EAAE,CAAC,GAAI;gBACzC,iCAAC,sDAAsB,IAAC,YAAY,EAAE,uBAAY,GAAI,CAClD,CACF,CACU,CACnB,CAAA;AACH,CAAC,CAAA;AA7DY,QAAA,aAAa,iBA6DzB"}