@elliemae/ds-wysiwygeditor 2.3.1 → 3.0.0-alpha.3

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 (120) hide show
  1. package/dist/cjs/DSWYSIWYGEditor.js +128 -0
  2. package/dist/cjs/DSWYSIWYGEditor.js.map +7 -0
  3. package/dist/cjs/components/CustomImageUploader.js +123 -0
  4. package/dist/cjs/components/CustomImageUploader.js.map +7 -0
  5. package/dist/cjs/components/CustomToolbar.js +261 -0
  6. package/dist/cjs/components/CustomToolbar.js.map +7 -0
  7. package/dist/cjs/components/DSWYSIWYGEditorImpl.js +255 -0
  8. package/dist/cjs/components/DSWYSIWYGEditorImpl.js.map +7 -0
  9. package/dist/cjs/components/ImageLibraryModal.js +108 -0
  10. package/dist/cjs/components/ImageLibraryModal.js.map +7 -0
  11. package/dist/cjs/components/InsertFieldModal.js +212 -0
  12. package/dist/cjs/components/InsertFieldModal.js.map +7 -0
  13. package/dist/cjs/components/TippedButton.js +91 -0
  14. package/dist/cjs/components/TippedButton.js.map +7 -0
  15. package/dist/cjs/components/TippedSelect.js +57 -0
  16. package/dist/cjs/components/TippedSelect.js.map +7 -0
  17. package/dist/cjs/components/colors.js +50 -0
  18. package/dist/cjs/components/colors.js.map +7 -0
  19. package/dist/cjs/components/customFields.js +76 -0
  20. package/dist/cjs/components/customFields.js.map +7 -0
  21. package/dist/cjs/constants.js +114 -0
  22. package/dist/cjs/constants.js.map +7 -0
  23. package/dist/cjs/index.js +39 -0
  24. package/dist/cjs/index.js.map +7 -0
  25. package/dist/cjs/quillMatchers/clipboardLinkWithTagMatcher.js +48 -0
  26. package/dist/cjs/quillMatchers/clipboardLinkWithTagMatcher.js.map +7 -0
  27. package/dist/cjs/quillOverrides/IndentStyle.js +51 -0
  28. package/dist/cjs/quillOverrides/IndentStyle.js.map +7 -0
  29. package/dist/cjs/quillOverrides/LinkFormat.js +86 -0
  30. package/dist/cjs/quillOverrides/LinkFormat.js.map +7 -0
  31. package/dist/cjs/quillOverrides/PlainClipboard.js +47 -0
  32. package/dist/cjs/quillOverrides/PlainClipboard.js.map +7 -0
  33. package/dist/cjs/utils.js +50 -0
  34. package/dist/cjs/utils.js.map +7 -0
  35. package/dist/esm/DSWYSIWYGEditor.js +101 -0
  36. package/dist/esm/DSWYSIWYGEditor.js.map +7 -0
  37. package/dist/esm/components/CustomImageUploader.js +94 -0
  38. package/dist/esm/components/CustomImageUploader.js.map +7 -0
  39. package/dist/esm/components/CustomToolbar.js +232 -0
  40. package/dist/esm/components/CustomToolbar.js.map +7 -0
  41. package/dist/esm/components/DSWYSIWYGEditorImpl.js +228 -0
  42. package/dist/esm/components/DSWYSIWYGEditorImpl.js.map +7 -0
  43. package/dist/esm/components/ImageLibraryModal.js +81 -0
  44. package/dist/esm/components/ImageLibraryModal.js.map +7 -0
  45. package/dist/esm/components/InsertFieldModal.js +185 -0
  46. package/dist/esm/components/InsertFieldModal.js.map +7 -0
  47. package/dist/esm/components/TippedButton.js +64 -0
  48. package/dist/esm/components/TippedButton.js.map +7 -0
  49. package/dist/esm/components/TippedSelect.js +28 -0
  50. package/dist/esm/components/TippedSelect.js.map +7 -0
  51. package/dist/esm/components/colors.js +21 -0
  52. package/dist/esm/components/colors.js.map +7 -0
  53. package/dist/esm/components/customFields.js +47 -0
  54. package/dist/esm/components/customFields.js.map +7 -0
  55. package/dist/esm/constants.js +85 -0
  56. package/dist/esm/constants.js.map +7 -0
  57. package/dist/esm/index.js +10 -0
  58. package/dist/esm/index.js.map +7 -0
  59. package/dist/esm/quillMatchers/clipboardLinkWithTagMatcher.js +19 -0
  60. package/dist/esm/quillMatchers/clipboardLinkWithTagMatcher.js.map +7 -0
  61. package/dist/esm/quillOverrides/IndentStyle.js +22 -0
  62. package/dist/esm/quillOverrides/IndentStyle.js.map +7 -0
  63. package/dist/esm/quillOverrides/LinkFormat.js +57 -0
  64. package/dist/esm/quillOverrides/LinkFormat.js.map +7 -0
  65. package/dist/esm/quillOverrides/PlainClipboard.js +18 -0
  66. package/dist/esm/quillOverrides/PlainClipboard.js.map +7 -0
  67. package/dist/esm/utils.js +21 -0
  68. package/dist/esm/utils.js.map +7 -0
  69. package/package.json +64 -55
  70. package/cjs/DSWYSIWYGEditor.js +0 -82
  71. package/cjs/components/CustomImageUploader.js +0 -125
  72. package/cjs/components/CustomToolbar.js +0 -282
  73. package/cjs/components/DSWYSIWYGEditorImpl.js +0 -256
  74. package/cjs/components/ImageLibraryModal.js +0 -72
  75. package/cjs/components/InsertFieldModal.js +0 -218
  76. package/cjs/components/TippedButton.js +0 -56
  77. package/cjs/components/TippedSelect.js +0 -46
  78. package/cjs/components/colors.js +0 -30
  79. package/cjs/components/customFields.js +0 -57
  80. package/cjs/constants.js +0 -40
  81. package/cjs/index.js +0 -21
  82. package/cjs/quillMatchers/clipboardLinkWithTagMatcher.js +0 -33
  83. package/cjs/quillOverrides/IndentStyle.js +0 -29
  84. package/cjs/quillOverrides/LinkFormat.js +0 -68
  85. package/cjs/quillOverrides/PlainClipboard.js +0 -27
  86. package/cjs/utils.js +0 -27
  87. package/esm/DSWYSIWYGEditor.js +0 -72
  88. package/esm/components/CustomImageUploader.js +0 -115
  89. package/esm/components/CustomToolbar.js +0 -271
  90. package/esm/components/DSWYSIWYGEditorImpl.js +0 -245
  91. package/esm/components/ImageLibraryModal.js +0 -64
  92. package/esm/components/InsertFieldModal.js +0 -208
  93. package/esm/components/TippedButton.js +0 -46
  94. package/esm/components/TippedSelect.js +0 -38
  95. package/esm/components/colors.js +0 -26
  96. package/esm/components/customFields.js +0 -49
  97. package/esm/constants.js +0 -32
  98. package/esm/index.js +0 -4
  99. package/esm/quillMatchers/clipboardLinkWithTagMatcher.js +0 -29
  100. package/esm/quillOverrides/IndentStyle.js +0 -27
  101. package/esm/quillOverrides/LinkFormat.js +0 -66
  102. package/esm/quillOverrides/PlainClipboard.js +0 -25
  103. package/esm/utils.js +0 -23
  104. package/types/DSWYSIWYGEditor.d.ts +0 -75
  105. package/types/components/CustomImageUploader.d.ts +0 -8
  106. package/types/components/CustomToolbar.d.ts +0 -21
  107. package/types/components/DSWYSIWYGEditorImpl.d.ts +0 -15
  108. package/types/components/ImageLibraryModal.d.ts +0 -31
  109. package/types/components/InsertFieldModal.d.ts +0 -41
  110. package/types/components/TippedButton.d.ts +0 -12
  111. package/types/components/TippedSelect.d.ts +0 -13
  112. package/types/components/colors.d.ts +0 -1
  113. package/types/components/customFields.d.ts +0 -36
  114. package/types/constants.d.ts +0 -26
  115. package/types/index.d.ts +0 -4
  116. package/types/quillMatchers/clipboardLinkWithTagMatcher.d.ts +0 -2
  117. package/types/quillOverrides/IndentStyle.d.ts +0 -10
  118. package/types/quillOverrides/LinkFormat.d.ts +0 -12
  119. package/types/quillOverrides/PlainClipboard.d.ts +0 -8
  120. package/types/utils.d.ts +0 -1
@@ -1,282 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var _jsx = require('@babel/runtime/helpers/jsx');
6
- require('core-js/modules/esnext.async-iterator.map.js');
7
- require('core-js/modules/esnext.iterator.map.js');
8
- require('core-js/modules/es.string.replace.js');
9
- require('core-js/modules/web.dom-collections.iterator.js');
10
- var React = require('react');
11
- var DSButton = require('@elliemae/ds-button');
12
- var dsIcons = require('@elliemae/ds-icons');
13
- var DSDropdownMenu = require('@elliemae/ds-dropdownmenu');
14
- var constants = require('../constants.js');
15
- var TippedButton = require('./TippedButton.js');
16
- var TippedSelect = require('./TippedSelect.js');
17
- var jsxRuntime = require('react/jsx-runtime');
18
-
19
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
20
-
21
- var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
22
- var DSButton__default = /*#__PURE__*/_interopDefaultLegacy(DSButton);
23
- var DSDropdownMenu__default = /*#__PURE__*/_interopDefaultLegacy(DSDropdownMenu);
24
-
25
- var _span, _ArrowheadDown, _Divider, _Divider2, _Divider3, _Divider4, _Divider5, _Divider6, _Divider7, _Divider8, _Divider9, _CustomFields, _Divider10;
26
-
27
- const optionsToValues = options => options.map(opt => opt.toLowerCase().replace(' ', '-')); // Stateless Components -----------------------------------------
28
-
29
-
30
- const CustomFields = () => _span || (_span = /*#__PURE__*/_jsx__default["default"]("span", {}, void 0, "\u1438\u1433")); // eslint-disable-line react/jsx-one-expression-per-line
31
-
32
-
33
- const Color = _ref => {
34
- let {
35
- color
36
- } = _ref;
37
- return /*#__PURE__*/_jsx__default["default"]("option", {
38
- value: color
39
- });
40
- };
41
-
42
- const Colors = _ref2 => {
43
- let {
44
- className,
45
- tip,
46
- zIndex
47
- } = _ref2;
48
- return /*#__PURE__*/_jsx__default["default"](TippedSelect.TippedSelect, {
49
- className: className,
50
- tip: tip,
51
- zIndex: zIndex
52
- }, void 0, constants.colors.map(color => /*#__PURE__*/_jsx__default["default"](Color, {
53
- color: color
54
- }, color)));
55
- };
56
-
57
- const CustomDropdown = _ref3 => {
58
- let {
59
- options,
60
- label,
61
- onSelectMenuItem = () => null,
62
- onClickOutsideMenu = () => null,
63
- onClose = () => null,
64
- closeMenuOnItemSelection,
65
- isOpen,
66
- minWidth,
67
- maxWidth,
68
- zIndex = 10
69
- } = _ref3;
70
- return /*#__PURE__*/_jsx__default["default"](DSDropdownMenu__default["default"], {
71
- onClickOutsideMenu: onClickOutsideMenu,
72
- options: options,
73
- onSelectMenuItem: onSelectMenuItem,
74
- onClose: onClose,
75
- closeMenuOnItemSelection: closeMenuOnItemSelection,
76
- isOpen: isOpen,
77
- minWidth: minWidth,
78
- maxWidth: maxWidth,
79
- zIndex: zIndex,
80
- preventOverflow: "scrollParent",
81
- triggerComponent: /*#__PURE__*/_jsx__default["default"](DSButton__default["default"], {
82
- labelText: label,
83
- buttonType: "text",
84
- icon: _ArrowheadDown || (_ArrowheadDown = /*#__PURE__*/_jsx__default["default"](dsIcons.ArrowheadDown, {}))
85
- })
86
- });
87
- };
88
-
89
- const Divider = () => /*#__PURE__*/_jsx__default["default"]("div", {
90
- style: {
91
- height: '21px',
92
- width: '1px',
93
- margin: '0 10px',
94
- padding: '0',
95
- borderLeft: '1px solid #bbb',
96
- display: 'inline-block'
97
- }
98
- });
99
-
100
- const CustomToolbar = _ref4 => {
101
- let {
102
- customFields,
103
- customItems = [],
104
- hideItems = {},
105
- onShowHTML = () => {},
106
- id = 'toolbar',
107
- userProps
108
- } = _ref4;
109
- const {
110
- HEADER,
111
- FONT,
112
- FONT_SIZE,
113
- BOLD,
114
- ITALIC,
115
- UNDERLINE,
116
- STRIKE,
117
- SUB,
118
- SUPER,
119
- ORDERED_LIST,
120
- BULLET_LIST,
121
- INDENT_MINUS_ONE,
122
- INDENT_PLUS_ONE,
123
- ALIGN,
124
- FONT_COLOR,
125
- FONT_BACKGROUND_COLOR,
126
- HYPERLINK,
127
- IMAGE,
128
- CLEAR_FORMAT,
129
- SHOW_HTML
130
- } = hideItems;
131
- const [showHTML, setShowHTML] = React.useState(false);
132
-
133
- const handleShowHTML = e => {
134
- e.preventDefault();
135
- setShowHTML(!showHTML);
136
- onShowHTML();
137
- };
138
-
139
- return /*#__PURE__*/_jsx__default["default"]("div", {
140
- id: id,
141
- className: "ds-ql-custom-toolbar"
142
- }, void 0, (!HEADER || !FONT || !FONT_SIZE) && /*#__PURE__*/_jsx__default["default"]("span", {
143
- className: "ql-formats"
144
- }, void 0, !HEADER && /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
145
- children: [/*#__PURE__*/_jsx__default["default"](TippedSelect.TippedSelect, {
146
- className: "ql-header",
147
- tip: "Header",
148
- values: ['', '1', '2', '3', '4', '5', '6'],
149
- zIndex: (userProps === null || userProps === void 0 ? void 0 : userProps.zIndex) || 1
150
- }), _Divider || (_Divider = /*#__PURE__*/_jsx__default["default"](Divider, {}))]
151
- }), !FONT && /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
152
- children: [/*#__PURE__*/_jsx__default["default"](TippedSelect.TippedSelect, {
153
- className: "ql-font",
154
- defaultValue: "sans-serif",
155
- options: constants.fonts,
156
- tip: "Font",
157
- values: optionsToValues(constants.fonts),
158
- zIndex: (userProps === null || userProps === void 0 ? void 0 : userProps.zIndex) || 1
159
- }), _Divider2 || (_Divider2 = /*#__PURE__*/_jsx__default["default"](Divider, {}))]
160
- }), !FONT_SIZE && /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
161
- children: [/*#__PURE__*/_jsx__default["default"](TippedSelect.TippedSelect, {
162
- className: "ql-size",
163
- options: constants.sizes,
164
- tip: "Font Size",
165
- values: optionsToValues(constants.sizesReal),
166
- zIndex: (userProps === null || userProps === void 0 ? void 0 : userProps.zIndex) || 1
167
- }), _Divider3 || (_Divider3 = /*#__PURE__*/_jsx__default["default"](Divider, {}))]
168
- })), (!BOLD || !ITALIC || !UNDERLINE || !STRIKE) && /*#__PURE__*/_jsx__default["default"]("span", {
169
- className: "ql-formats"
170
- }, void 0, !BOLD && /*#__PURE__*/_jsx__default["default"](TippedButton.TippedButton, {
171
- zIndex: (userProps === null || userProps === void 0 ? void 0 : userProps.zIndex) || 1,
172
- className: "ql-bold",
173
- tip: "Bold"
174
- }), !ITALIC && /*#__PURE__*/_jsx__default["default"](TippedButton.TippedButton, {
175
- zIndex: (userProps === null || userProps === void 0 ? void 0 : userProps.zIndex) || 1,
176
- className: "ql-italic",
177
- tip: "Italic"
178
- }), !UNDERLINE && /*#__PURE__*/_jsx__default["default"](TippedButton.TippedButton, {
179
- zIndex: (userProps === null || userProps === void 0 ? void 0 : userProps.zIndex) || 1,
180
- className: "ql-underline",
181
- tip: "Underline"
182
- }), !STRIKE && /*#__PURE__*/_jsx__default["default"](TippedButton.TippedButton, {
183
- zIndex: (userProps === null || userProps === void 0 ? void 0 : userProps.zIndex) || 1,
184
- className: "ql-strike",
185
- tip: "Strike"
186
- })), (!SUB || !SUPER) && /*#__PURE__*/_jsx__default["default"]("span", {
187
- className: "ql-formats"
188
- }, void 0, !SUB && /*#__PURE__*/_jsx__default["default"](TippedButton.TippedButton, {
189
- zIndex: (userProps === null || userProps === void 0 ? void 0 : userProps.zIndex) || 1,
190
- className: "ql-script",
191
- tip: "Sub",
192
- value: "sub"
193
- }), !SUPER && /*#__PURE__*/_jsx__default["default"](TippedButton.TippedButton, {
194
- zIndex: (userProps === null || userProps === void 0 ? void 0 : userProps.zIndex) || 1,
195
- className: "ql-script",
196
- tip: "Super",
197
- value: "super"
198
- }), _Divider4 || (_Divider4 = /*#__PURE__*/_jsx__default["default"](Divider, {}))), (!ORDERED_LIST || !BULLET_LIST) && /*#__PURE__*/_jsx__default["default"]("span", {
199
- className: "ql-formats"
200
- }, void 0, !ORDERED_LIST && /*#__PURE__*/_jsx__default["default"](TippedButton.TippedButton, {
201
- zIndex: (userProps === null || userProps === void 0 ? void 0 : userProps.zIndex) || 1,
202
- className: "ql-list",
203
- tip: "Ordered List",
204
- value: "ordered"
205
- }), !BULLET_LIST && /*#__PURE__*/_jsx__default["default"](TippedButton.TippedButton, {
206
- zIndex: (userProps === null || userProps === void 0 ? void 0 : userProps.zIndex) || 1,
207
- className: "ql-list",
208
- tip: "Bullet List",
209
- value: "bullet"
210
- })), (!INDENT_MINUS_ONE || !INDENT_PLUS_ONE) && /*#__PURE__*/_jsx__default["default"]("span", {
211
- className: "ql-formats"
212
- }, void 0, !INDENT_MINUS_ONE && /*#__PURE__*/_jsx__default["default"](TippedButton.TippedButton, {
213
- zIndex: (userProps === null || userProps === void 0 ? void 0 : userProps.zIndex) || 1,
214
- className: "ql-indent",
215
- tip: "Indent -1",
216
- value: "-1"
217
- }), !INDENT_PLUS_ONE && /*#__PURE__*/_jsx__default["default"](TippedButton.TippedButton, {
218
- zIndex: (userProps === null || userProps === void 0 ? void 0 : userProps.zIndex) || 1,
219
- className: "ql-indent",
220
- tip: "Indent +1",
221
- value: "+1"
222
- })), !ALIGN && /*#__PURE__*/_jsx__default["default"]("span", {
223
- className: "ql-formats"
224
- }, void 0, /*#__PURE__*/_jsx__default["default"](TippedSelect.TippedSelect, {
225
- zIndex: (userProps === null || userProps === void 0 ? void 0 : userProps.zIndex) || 1,
226
- className: "ql-align",
227
- tip: "Align"
228
- }), _Divider5 || (_Divider5 = /*#__PURE__*/_jsx__default["default"](Divider, {}))), (!FONT_COLOR || !FONT_BACKGROUND_COLOR) && /*#__PURE__*/_jsx__default["default"]("span", {
229
- className: "ql-formats"
230
- }, void 0, !FONT_COLOR && /*#__PURE__*/_jsx__default["default"](Colors, {
231
- zIndex: (userProps === null || userProps === void 0 ? void 0 : userProps.zIndex) || 1,
232
- className: "ql-color",
233
- tip: "Font Color"
234
- }), !FONT_BACKGROUND_COLOR && /*#__PURE__*/_jsx__default["default"](Colors, {
235
- zIndex: (userProps === null || userProps === void 0 ? void 0 : userProps.zIndex) || 1,
236
- className: "ql-background",
237
- tip: "Font Background Color"
238
- }), _Divider6 || (_Divider6 = /*#__PURE__*/_jsx__default["default"](Divider, {}))), (!HYPERLINK || !IMAGE) && /*#__PURE__*/_jsx__default["default"]("span", {
239
- className: "ql-formats"
240
- }, void 0, !HYPERLINK && /*#__PURE__*/_jsx__default["default"](TippedButton.TippedButton, {
241
- zIndex: (userProps === null || userProps === void 0 ? void 0 : userProps.zIndex) || 1,
242
- className: "ql-link",
243
- tip: "Hyperlink: Select Text First"
244
- }), !IMAGE && /*#__PURE__*/_jsx__default["default"](TippedButton.TippedButton, {
245
- zIndex: (userProps === null || userProps === void 0 ? void 0 : userProps.zIndex) || 1,
246
- className: "ql-image",
247
- tip: "Insert Image"
248
- }), _Divider7 || (_Divider7 = /*#__PURE__*/_jsx__default["default"](Divider, {}))), !CLEAR_FORMAT && /*#__PURE__*/_jsx__default["default"]("span", {
249
- className: "ql-formats"
250
- }, void 0, /*#__PURE__*/_jsx__default["default"](TippedButton.TippedButton, {
251
- zIndex: (userProps === null || userProps === void 0 ? void 0 : userProps.zIndex) || 1,
252
- className: "ql-clean",
253
- tip: "Clear Format (Select Text)"
254
- })), !SHOW_HTML && /*#__PURE__*/_jsx__default["default"]("span", {
255
- className: "ql-formats"
256
- }, void 0, _Divider8 || (_Divider8 = /*#__PURE__*/_jsx__default["default"](Divider, {})), /*#__PURE__*/_jsx__default["default"](TippedButton.TippedButton, {
257
- zIndex: (userProps === null || userProps === void 0 ? void 0 : userProps.zIndex) || 1,
258
- style: {
259
- width: 'fit-content',
260
- color: '#1e79c2',
261
- fontWeight: '500'
262
- },
263
- onClick: handleShowHTML,
264
- tip: showHTML ? 'SHOW TEXT' : 'SHOW HTML',
265
- className: "ql-customFields-html"
266
- }, void 0, showHTML ? 'SHOW TEXT' : 'SHOW HTML')), customFields && /*#__PURE__*/_jsx__default["default"]("span", {
267
- className: "ql-formats"
268
- }, void 0, _Divider9 || (_Divider9 = /*#__PURE__*/_jsx__default["default"](Divider, {})), /*#__PURE__*/_jsx__default["default"](TippedButton.TippedButton, {
269
- zIndex: (userProps === null || userProps === void 0 ? void 0 : userProps.zIndex) || 1,
270
- className: "ql-customFields",
271
- tip: "Insert Custom Field"
272
- }, void 0, _CustomFields || (_CustomFields = /*#__PURE__*/_jsx__default["default"](CustomFields, {})))), customItems && /*#__PURE__*/_jsx__default["default"]("span", {
273
- style: {
274
- display: 'inline-flex'
275
- }
276
- }, void 0, customItems.map(Item => /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
277
- children: [_Divider10 || (_Divider10 = /*#__PURE__*/_jsx__default["default"](Divider, {})), /*#__PURE__*/_jsx__default["default"](Item, {})]
278
- }))));
279
- };
280
-
281
- exports.CustomDropdown = CustomDropdown;
282
- exports.CustomToolbar = CustomToolbar;
@@ -1,256 +0,0 @@
1
- 'use strict';
2
-
3
- var _jsx = require('@babel/runtime/helpers/jsx');
4
- var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
5
- var _defineProperty = require('@babel/runtime/helpers/defineProperty');
6
- require('core-js/modules/esnext.async-iterator.map.js');
7
- require('core-js/modules/esnext.iterator.map.js');
8
- require('core-js/modules/esnext.async-iterator.filter.js');
9
- require('core-js/modules/esnext.iterator.constructor.js');
10
- require('core-js/modules/esnext.iterator.filter.js');
11
- require('core-js/modules/esnext.async-iterator.for-each.js');
12
- require('core-js/modules/esnext.iterator.for-each.js');
13
- var React = require('react');
14
- var ReactQuill = require('react-quill');
15
- var BlotFormatter = require('quill-blot-formatter');
16
- var ImageLibraryModal = require('./ImageLibraryModal.js');
17
- var InsertFieldModal = require('./InsertFieldModal.js');
18
- var CustomToolbar = require('./CustomToolbar.js');
19
- var IndentStyle = require('../quillOverrides/IndentStyle.js');
20
- var LinkFormat = require('../quillOverrides/LinkFormat.js');
21
- var utils = require('../utils.js');
22
- var clipboardLinkWithTagMatcher = require('../quillMatchers/clipboardLinkWithTagMatcher.js');
23
- var jsxRuntime = require('react/jsx-runtime');
24
-
25
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
26
-
27
- var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
28
- var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
29
- var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
30
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
31
- var ReactQuill__default = /*#__PURE__*/_interopDefaultLegacy(ReactQuill);
32
- var BlotFormatter__default = /*#__PURE__*/_interopDefaultLegacy(BlotFormatter);
33
-
34
- const _excluded = ["containerProps", "customFields", "imagesData", "customToolbar", "handleImageClick", "handleCustomFieldClick", "height", "value", "showRawHTML", "onShowHTML", "onChange", "hideItems"];
35
-
36
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
37
-
38
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
39
- ReactQuill.Quill.register('modules/blotFormatter', BlotFormatter__default["default"]); // Fix block styled formats ----------------
40
-
41
- const AlignStyle = ReactQuill.Quill.import('attributors/style/align');
42
- const FontStyle = ReactQuill.Quill.import('attributors/style/font');
43
- FontStyle.whitelist = [// allow ONLY these fonts and the default
44
- 'serif', 'monospace', 'arial', 'comic-sans', 'courier-new', 'georgia', 'helvetica', 'lucida'];
45
- const SizeStyle = ReactQuill.Quill.import('attributors/style/size');
46
- SizeStyle.whitelist = [// allow ONLY these sizes and the default
47
- 'x-small', 'large', 'x-large']; // Fix Doc Viewer p tags extra margin issue ---------
48
-
49
- const Block = ReactQuill.Quill.import('blots/block');
50
- Block.tagName = 'p';
51
- ReactQuill.Quill.register(Block);
52
- ReactQuill.Quill.register(AlignStyle, true);
53
- ReactQuill.Quill.register(IndentStyle, true);
54
- ReactQuill.Quill.register(FontStyle, true);
55
- ReactQuill.Quill.register(SizeStyle, true); // -----------------------------------------
56
-
57
- class DSWYSIWYGEditorImpl extends React__default["default"].PureComponent {
58
- constructor(props) {
59
- super(props);
60
- this.quillModules = _objectSpread({
61
- toolbar: {
62
- container: this.props.toolbarContainer ? "#".concat(this.props.toolbarContainer) : '#toolbar',
63
- handlers: _objectSpread({}, this.props.toolbarHandlers)
64
- },
65
- clipboard: {
66
- // toggle to add extra line breaks when pasting HTML:
67
- matchVisual: false
68
- },
69
- blotFormatter: {// options... https://github.com/Fandom-OSS/quill-blot-formatter
70
- }
71
- }, this.props.quillModules);
72
-
73
- this.onChangeQuill = (html, delta, source, editor) => {
74
- const {
75
- showRawHTML,
76
- onChange
77
- } = this.props;
78
- if (!showRawHTML) onChange(html, delta, source, editor);
79
- };
80
-
81
- this.onChangeTextArea = e => {
82
- const {
83
- showRawHTML,
84
- onChange
85
- } = this.props;
86
- if (showRawHTML) onChange(e.target.value);
87
- };
88
-
89
- this.onInserFieldConfirm = fieldCode => {
90
- const editor = this.getEditor();
91
- const range = editor.getSelection(true);
92
- editor.insertText(range.index, fieldCode);
93
- };
94
-
95
- this.onImageConfirm = image => {
96
- if (!image) {
97
- return;
98
- }
99
-
100
- const editor = this.getEditor();
101
- const range = editor.getSelection(true);
102
- editor.insertEmbed(range.index, 'image', image.url);
103
- };
104
-
105
- this.onFieldModalClose = () => {
106
- this.setState({
107
- isFieldModalOpen: false
108
- });
109
- };
110
-
111
- this.onImageModalClose = () => {
112
- this.setState({
113
- isImageModalOpen: false
114
- });
115
- };
116
-
117
- this.quillRef = ref => {
118
- this.quill = ref;
119
- };
120
-
121
- ReactQuill.Quill.register(LinkFormat, true);
122
-
123
- if (props.quillOverrides.length) {
124
- props.quillOverrides.map(override => ReactQuill.Quill.register(override, true));
125
- }
126
-
127
- this.state = {
128
- isImageModalOpen: false,
129
- isFieldModalOpen: false
130
- };
131
- const {
132
- toolbar
133
- } = this.quillModules;
134
-
135
- if (props.imagesData) {
136
- toolbar.handlers.image = value => {
137
- const {
138
- imagesData,
139
- handleImageClick
140
- } = this.props;
141
-
142
- if (!imagesData.length) {
143
- return;
144
- }
145
-
146
- this.setState({
147
- isImageModalOpen: !!value
148
- });
149
- handleImageClick(value);
150
- };
151
- }
152
-
153
- if (props.customFields) {
154
- toolbar.handlers.customFields = value => {
155
- const {
156
- customFields,
157
- handleCustomFieldClick
158
- } = this.props;
159
-
160
- if (!customFields.length) {
161
- return;
162
- }
163
-
164
- this.setState({
165
- isFieldModalOpen: !!value
166
- });
167
- handleCustomFieldClick(value);
168
- };
169
- }
170
- }
171
-
172
- componentDidMount() {
173
- // this.quill doesn't exist untill the full call-stack execute
174
- // we need to "setTimeout" so this componentDidMount work as expected
175
- setTimeout(() => {
176
- const quillDomRef = this.quill;
177
- const editor = quillDomRef.getEditor();
178
- this.props.getQuillRef(quillDomRef); // https://github.com/quilljs/quill/issues/2677
179
-
180
- editor.clipboard.addMatcher('a', clipboardLinkWithTagMatcher.clipboardLinkWithTagMatcher);
181
- });
182
- } // eslint-disable-next-line max-params
183
-
184
-
185
- getEditor() {
186
- return this.quill.getEditor();
187
- }
188
-
189
- render() {
190
- const {
191
- isFieldModalOpen,
192
- isImageModalOpen
193
- } = this.state;
194
-
195
- const _this$props = this.props,
196
- {
197
- containerProps = {},
198
- customFields,
199
- imagesData,
200
- customToolbar,
201
- handleImageClick,
202
- handleCustomFieldClick,
203
- height,
204
- value,
205
- showRawHTML,
206
- onShowHTML,
207
- onChange,
208
- hideItems
209
- } = _this$props,
210
- editorProps = _objectWithoutProperties__default["default"](_this$props, _excluded);
211
-
212
- return /*#__PURE__*/jsxRuntime.jsxs("div", _objectSpread(_objectSpread({}, containerProps), {}, {
213
- className: "quill-wysiwyg-editor ".concat(showRawHTML ? 'show-raw' : ''),
214
- children: [customToolbar || /*#__PURE__*/_jsx__default["default"](CustomToolbar.CustomToolbar, {
215
- customFields: customFields,
216
- onShowHTML: onShowHTML,
217
- hideItems: hideItems,
218
- userProps: this.props
219
- }), /*#__PURE__*/jsxRuntime.jsx(ReactQuill__default["default"], _objectSpread(_objectSpread({
220
- ref: this.quillRef,
221
- modules: this.quillModules,
222
- onChange: this.onChangeQuill,
223
- value: value,
224
- style: {
225
- height,
226
- borderBottom: '1px solid #ccc'
227
- }
228
- }, editorProps), {}, {
229
- id: "wysiwyg-text-container"
230
- })), /*#__PURE__*/_jsx__default["default"]("textarea", {
231
- className: "raw-editor ql-container ql-snow ql-editor",
232
- style: {
233
- width: '100%',
234
- resize: 'none',
235
- height,
236
- minHeight: '200px'
237
- },
238
- onChange: this.onChangeTextArea,
239
- value: utils.formatHTML(value)
240
- }), imagesData && imagesData.length && /*#__PURE__*/_jsx__default["default"](ImageLibraryModal, {
241
- imagesData: imagesData,
242
- isOpen: isImageModalOpen,
243
- onClose: this.onImageModalClose,
244
- onConfirm: this.onImageConfirm
245
- }), customFields && customFields.length && /*#__PURE__*/_jsx__default["default"](InsertFieldModal, {
246
- customFields: customFields,
247
- isOpen: isFieldModalOpen,
248
- onClose: this.onFieldModalClose,
249
- onConfirm: this.onInserFieldConfirm
250
- })]
251
- }));
252
- }
253
-
254
- }
255
-
256
- module.exports = DSWYSIWYGEditorImpl;
@@ -1,72 +0,0 @@
1
- 'use strict';
2
-
3
- require('core-js/modules/esnext.async-iterator.filter.js');
4
- require('core-js/modules/esnext.iterator.constructor.js');
5
- require('core-js/modules/esnext.iterator.filter.js');
6
- require('core-js/modules/esnext.async-iterator.for-each.js');
7
- require('core-js/modules/esnext.iterator.for-each.js');
8
- var _defineProperty = require('@babel/runtime/helpers/defineProperty');
9
- var React = require('react');
10
- var DSImageLibraryModal = require('@elliemae/ds-imagelibrarymodal');
11
- var jsxRuntime = require('react/jsx-runtime');
12
-
13
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
14
-
15
- var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
16
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
17
- var DSImageLibraryModal__default = /*#__PURE__*/_interopDefaultLegacy(DSImageLibraryModal);
18
-
19
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
20
-
21
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
22
- class ImageLibraryModal extends React__default["default"].PureComponent {
23
- constructor(props) {
24
- super(props);
25
-
26
- this.onSelect = selectedImage => {
27
- this.setState({
28
- selectedImage
29
- });
30
- };
31
-
32
- this.onConfirm = () => {
33
- const {
34
- selectedImage
35
- } = this.state;
36
- const {
37
- onConfirm,
38
- onClose
39
- } = this.props;
40
- onConfirm(selectedImage);
41
- onClose();
42
- };
43
-
44
- this.state = {
45
- selectedImage: undefined
46
- };
47
- }
48
-
49
- render() {
50
- return /*#__PURE__*/jsxRuntime.jsx(DSImageLibraryModal__default["default"], _objectSpread(_objectSpread({}, this.props), {}, {
51
- onConfirm: this.onConfirm,
52
- onSelect: this.onSelect
53
- }));
54
- }
55
-
56
- }
57
- ImageLibraryModal.defaultProps = {
58
- onReject: undefined,
59
- imagesData: [{
60
- url: 'https://www.freeiconspng.com/minicovers/no-image-icon-6.png',
61
- name: 'no image',
62
- createdBy: 'user:John Doe',
63
- createdDate: '0000-01-01 00:00 AM UTC'
64
- }, {
65
- url: 'https://asset-service-bucket-int.s3.us-west-2.amazonaws.com/bd527d8c-472f-4dff-b8c5-1c90d5bae01e',
66
- name: 'no image 2',
67
- createdBy: 'user:Jane Doe',
68
- createdDate: '0000-01-01 00:00 AM UTC'
69
- }]
70
- };
71
-
72
- module.exports = ImageLibraryModal;