@elliemae/ds-wysiwygeditor 2.0.0-alpha.11 → 2.0.0-alpha.12

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 (37) hide show
  1. package/cjs/DSWYSIWYGEditor.js +7 -1
  2. package/cjs/components/CustomImageUploader.js +13 -11
  3. package/cjs/components/CustomToolbar.js +121 -151
  4. package/cjs/components/DSWYSIWYGEditorImpl.js +35 -19
  5. package/cjs/components/ImageLibraryModal.js +11 -7
  6. package/cjs/components/InsertFieldModal.js +26 -20
  7. package/cjs/components/TippedButton.js +55 -0
  8. package/cjs/components/TippedSelect.js +45 -0
  9. package/cjs/components/colors.js +5 -1
  10. package/cjs/components/customFields.js +14 -7
  11. package/cjs/index.js +0 -2
  12. package/cjs/quillMatchers/clipboardLinkWithTagMatcher.js +33 -0
  13. package/cjs/quillOverrides/LinkFormat.js +6 -15
  14. package/cjs/quillOverrides/PlainClipboard.js +3 -1
  15. package/cjs/utils.js +4 -0
  16. package/esm/DSWYSIWYGEditor.js +7 -1
  17. package/esm/components/CustomImageUploader.js +11 -8
  18. package/esm/components/CustomToolbar.js +118 -142
  19. package/esm/components/DSWYSIWYGEditorImpl.js +35 -19
  20. package/esm/components/ImageLibraryModal.js +11 -7
  21. package/esm/components/InsertFieldModal.js +25 -19
  22. package/esm/components/TippedButton.js +45 -0
  23. package/esm/components/TippedSelect.js +37 -0
  24. package/esm/components/colors.js +5 -1
  25. package/esm/components/customFields.js +14 -7
  26. package/esm/index.js +1 -1
  27. package/esm/quillMatchers/clipboardLinkWithTagMatcher.js +29 -0
  28. package/esm/quillOverrides/LinkFormat.js +6 -11
  29. package/esm/quillOverrides/PlainClipboard.js +3 -1
  30. package/esm/utils.js +4 -0
  31. package/package.json +25 -8
  32. package/types/DSWYSIWYGEditor.d.ts +65 -8
  33. package/types/components/CustomImageUploader.d.ts +3 -1
  34. package/types/components/CustomToolbar.d.ts +3 -17
  35. package/types/components/TippedButton.d.ts +12 -0
  36. package/types/components/TippedSelect.d.ts +13 -0
  37. package/types/quillMatchers/clipboardLinkWithTagMatcher.d.ts +2 -0
@@ -5,6 +5,11 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
6
6
  var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
7
7
  require('core-js/modules/web.dom-collections.iterator.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');
8
13
  var React = require('react');
9
14
  var reactDesc = require('react-desc');
10
15
  var DSWYSIWYGEditorImpl = require('./components/DSWYSIWYGEditorImpl.js');
@@ -67,7 +72,8 @@ const wysiwygEditorProps = {
67
72
  showRawHTML: reactDesc.PropTypes.bool.description('whether to display html view or not').defaultValue(false),
68
73
  height: reactDesc.PropTypes.string.description('heigth of the editors text area'),
69
74
  readOnly: reactDesc.PropTypes.string.description("If true, the editor won't allow changing its contents. Wraps the Quill disable API."),
70
- hideItems: reactDesc.PropTypes.object.description('object of defaultItems to be removed from toolbar').defaultValue({})
75
+ hideItems: reactDesc.PropTypes.object.description('object of defaultItems to be removed from toolbar').defaultValue({}),
76
+ zIndex: reactDesc.PropTypes.number.description('zIndex to be used (required when used in a modal for correct tooltips displaying)')
71
77
  };
72
78
  const WYSIWYWithSchema = reactDesc.describe(DSWYSIWYGEditor);
73
79
  WYSIWYWithSchema.propTypes = wysiwygEditorProps;
@@ -5,16 +5,15 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var _jsx = require('@babel/runtime/helpers/jsx');
6
6
  require('core-js/modules/web.dom-collections.iterator.js');
7
7
  var React = require('react');
8
- var Image = require('@elliemae/ds-icons/Image');
8
+ var dsIcons = require('@elliemae/ds-icons');
9
9
  var DSUploader = require('@elliemae/ds-uploader');
10
10
  var DSModal = require('@elliemae/ds-modal');
11
- var CustomToolbar = require('./CustomToolbar.js');
11
+ var TippedButton = require('./TippedButton.js');
12
12
  var jsxRuntime = require('react/jsx-runtime');
13
13
 
14
14
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
15
15
 
16
16
  var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
17
- var Image__default = /*#__PURE__*/_interopDefaultLegacy(Image);
18
17
  var DSUploader__default = /*#__PURE__*/_interopDefaultLegacy(DSUploader);
19
18
  var DSModal__default = /*#__PURE__*/_interopDefaultLegacy(DSModal);
20
19
 
@@ -22,12 +21,14 @@ const ALLOWED_TYPES_TEXT = 'JPG, JPEG, PNG, GIF, BMP, TIFF';
22
21
  const ALLOWED_TYPES = /image\/(jpeg|jpg|png|gif|bmp|tiff)/;
23
22
  const DEFAULT_MAX_SIZE = 1024 * 1024; // 1 MB
24
23
 
25
- const CustomImageUploader = ({
26
- quillRef,
27
- editorFieldName,
28
- allowedImageTypes = ALLOWED_TYPES_TEXT,
29
- uploadAsset = () => null
30
- }) => {
24
+ const CustomImageUploader = _ref => {
25
+ let {
26
+ quillRef,
27
+ editorFieldName,
28
+ allowedImageTypes = ALLOWED_TYPES_TEXT,
29
+ uploadAsset = () => null,
30
+ zIndex = 1
31
+ } = _ref;
31
32
  const [isOpen, setIsOpen] = React.useState(false);
32
33
  const [error, setError] = React.useState(null);
33
34
  const [inProgress, setInProgress] = React.useState(false);
@@ -80,13 +81,14 @@ const CustomImageUploader = ({
80
81
  };
81
82
 
82
83
  return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
83
- children: [/*#__PURE__*/_jsx__default["default"](CustomToolbar.TippedButton, {
84
+ children: [/*#__PURE__*/_jsx__default["default"](TippedButton.TippedButton, {
85
+ zIndex: zIndex,
84
86
  tip: "Insert Image",
85
87
  onClick: () => {
86
88
  setLastSelection(quillRef === null || quillRef === void 0 ? void 0 : quillRef.getEditor().getSelection());
87
89
  setIsOpen(true);
88
90
  }
89
- }, void 0, /*#__PURE__*/_jsx__default["default"](Image__default["default"], {
91
+ }, void 0, /*#__PURE__*/_jsx__default["default"](dsIcons.Image, {
90
92
  color: ['neutral', 500],
91
93
  size: "s"
92
94
  })), /*#__PURE__*/_jsx__default["default"](DSModal__default["default"], {
@@ -2,38 +2,27 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var _defineProperty = require('@babel/runtime/helpers/defineProperty');
6
- var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
7
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
8
  require('core-js/modules/es.string.replace.js');
9
9
  require('core-js/modules/web.dom-collections.iterator.js');
10
10
  var React = require('react');
11
- var DSButton = require('@elliemae/ds-basic/Button');
12
- var ArrowheadDown = require('@elliemae/ds-icons/ArrowheadDown');
11
+ var DSButton = require('@elliemae/ds-button');
12
+ var dsIcons = require('@elliemae/ds-icons');
13
13
  var DSDropdownMenu = require('@elliemae/ds-dropdownmenu');
14
- var DSTooltip = require('@elliemae/ds-basic/Tooltip');
15
14
  var constants = require('../constants.js');
15
+ var TippedButton = require('./TippedButton.js');
16
+ var TippedSelect = require('./TippedSelect.js');
16
17
  var jsxRuntime = require('react/jsx-runtime');
17
18
 
18
19
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
19
20
 
20
- var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
21
- var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
22
21
  var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
23
22
  var DSButton__default = /*#__PURE__*/_interopDefaultLegacy(DSButton);
24
- var ArrowheadDown__default = /*#__PURE__*/_interopDefaultLegacy(ArrowheadDown);
25
23
  var DSDropdownMenu__default = /*#__PURE__*/_interopDefaultLegacy(DSDropdownMenu);
26
- var DSTooltip__default = /*#__PURE__*/_interopDefaultLegacy(DSTooltip);
27
24
 
28
- const _excluded = ["className", "tip", "children", "onClick"];
29
-
30
- var _span, _ArrowheadDown, _Divider, _Divider2, _Divider3, _TippedButton, _TippedButton2, _TippedButton3, _TippedButton4, _TippedButton5, _TippedButton6, _Divider4, _TippedButton7, _TippedButton8, _TippedButton9, _TippedButton10, _span2, _Colors, _Colors2, _Divider5, _TippedButton11, _TippedButton12, _Divider6, _span3, _Divider7, _span4, _Divider8;
31
-
32
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
33
-
34
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
35
-
36
- const persist = e => e.persist();
25
+ var _span, _ArrowheadDown, _Divider, _Divider2, _Divider3, _Divider4, _Divider5, _Divider6, _Divider7, _Divider8, _Divider9, _CustomFields, _Divider10;
37
26
 
38
27
  const optionsToValues = options => options.map(opt => opt.toLowerCase().replace(' ', '-')); // Stateless Components -----------------------------------------
39
28
 
@@ -41,101 +30,61 @@ const optionsToValues = options => options.map(opt => opt.toLowerCase().replace(
41
30
  const CustomFields = () => _span || (_span = /*#__PURE__*/_jsx__default["default"]("span", {}, void 0, "\u1438\u1433")); // eslint-disable-line react/jsx-one-expression-per-line
42
31
 
43
32
 
44
- const Color = ({
45
- color
46
- }) => /*#__PURE__*/_jsx__default["default"]("option", {
47
- value: color
48
- });
49
-
50
- const Colors = ({
51
- className,
52
- tip
53
- }) => /*#__PURE__*/_jsx__default["default"](TippedSelect, {
54
- className: className,
55
- tip: tip
56
- }, void 0, constants.colors.map(color => /*#__PURE__*/_jsx__default["default"](Color, {
57
- color: color
58
- }, color)));
33
+ const Color = _ref => {
34
+ let {
35
+ color
36
+ } = _ref;
37
+ return /*#__PURE__*/_jsx__default["default"]("option", {
38
+ value: color
39
+ });
40
+ };
59
41
 
60
- const TippedButton = _ref => {
42
+ const Colors = _ref2 => {
61
43
  let {
62
44
  className,
63
45
  tip,
64
- children,
65
- onClick = () => null
66
- } = _ref,
67
- rest = _objectWithoutProperties__default["default"](_ref, _excluded);
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
+ };
68
56
 
69
- return /*#__PURE__*/_jsx__default["default"]("div", {
70
- className: "tooltip"
71
- }, void 0, /*#__PURE__*/_jsx__default["default"](DSTooltip__default["default"], {
72
- interactionType: "hover",
73
- title: tip,
74
- delayClose: 20,
75
- triggerComponent: /*#__PURE__*/jsxRuntime.jsx("button", _objectSpread(_objectSpread({
76
- className: className,
77
- onClick: e => {
78
- e.preventDefault();
79
- onClick(e);
80
- }
81
- }, rest), {}, {
82
- children: children
83
- }))
84
- }));
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
+ });
85
87
  };
86
- const TippedSelect = ({
87
- className,
88
- options,
89
- tip,
90
- defaultValue = '',
91
- onChange = () => null,
92
- values,
93
- children = values && values.map((value, index) => /*#__PURE__*/_jsx__default["default"]("option", {
94
- value: value === 'normal' ? '' : value
95
- }, value, options ? options[index] : null))
96
- }) => /*#__PURE__*/_jsx__default["default"]("div", {
97
- className: "tooltip"
98
- }, void 0, /*#__PURE__*/_jsx__default["default"](DSTooltip__default["default"], {
99
- interactionType: "hover",
100
- title: tip,
101
- delayClose: 20,
102
- triggerComponent: /*#__PURE__*/_jsx__default["default"]("div", {}, void 0, /*#__PURE__*/_jsx__default["default"]("select", {
103
- className: className,
104
- defaultValue: defaultValue,
105
- onChange: e => {
106
- persist(e);
107
- onChange(e);
108
- }
109
- }, void 0, children))
110
- }));
111
- const CustomDropdown = ({
112
- options,
113
- label,
114
- onSelectMenuItem = () => null,
115
- onClickOutsideMenu = () => null,
116
- onClose = () => null,
117
- closeMenuOnItemSelection,
118
- isOpen,
119
- minWidth,
120
- maxWidth,
121
- zIndex = 10
122
- }) => /*#__PURE__*/_jsx__default["default"](DSDropdownMenu__default["default"], {
123
- onClickOutsideMenu: onClickOutsideMenu,
124
- options: options,
125
- onSelectMenuItem: onSelectMenuItem,
126
- onClose: onClose,
127
- closeMenuOnItemSelection: closeMenuOnItemSelection,
128
- isOpen: isOpen,
129
- minWidth: minWidth,
130
- maxWidth: maxWidth,
131
- zIndex: zIndex,
132
- preventOverflow: "scrollParent",
133
- triggerComponent: /*#__PURE__*/_jsx__default["default"](DSButton__default["default"], {
134
- labelText: label,
135
- buttonType: "text",
136
- icon: _ArrowheadDown || (_ArrowheadDown = /*#__PURE__*/_jsx__default["default"](ArrowheadDown__default["default"], {}))
137
- })
138
- });
139
88
 
140
89
  const Divider = () => /*#__PURE__*/_jsx__default["default"]("div", {
141
90
  style: {
@@ -148,13 +97,15 @@ const Divider = () => /*#__PURE__*/_jsx__default["default"]("div", {
148
97
  }
149
98
  });
150
99
 
151
- const CustomToolbar = ({
152
- customFields,
153
- customItems = [],
154
- hideItems = {},
155
- onShowHTML = () => {},
156
- id = 'toolbar'
157
- }) => {
100
+ const CustomToolbar = _ref4 => {
101
+ let {
102
+ customFields,
103
+ customItems = [],
104
+ hideItems = {},
105
+ onShowHTML = () => {},
106
+ id = 'toolbar',
107
+ userProps
108
+ } = _ref4;
158
109
  const {
159
110
  HEADER,
160
111
  FONT,
@@ -191,99 +142,119 @@ const CustomToolbar = ({
191
142
  }, void 0, (!HEADER || !FONT || !FONT_SIZE) && /*#__PURE__*/_jsx__default["default"]("span", {
192
143
  className: "ql-formats"
193
144
  }, void 0, !HEADER && /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
194
- children: [/*#__PURE__*/_jsx__default["default"](TippedSelect, {
145
+ children: [/*#__PURE__*/_jsx__default["default"](TippedSelect.TippedSelect, {
195
146
  className: "ql-header",
196
147
  tip: "Header",
197
- values: ['', '1', '2', '3', '4', '5', '6']
148
+ values: ['', '1', '2', '3', '4', '5', '6'],
149
+ zIndex: (userProps === null || userProps === void 0 ? void 0 : userProps.zIndex) || 1
198
150
  }), _Divider || (_Divider = /*#__PURE__*/_jsx__default["default"](Divider, {}))]
199
151
  }), !FONT && /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
200
- children: [/*#__PURE__*/_jsx__default["default"](TippedSelect, {
152
+ children: [/*#__PURE__*/_jsx__default["default"](TippedSelect.TippedSelect, {
201
153
  className: "ql-font",
202
154
  defaultValue: "sans-serif",
203
155
  options: constants.fonts,
204
156
  tip: "Font",
205
- values: optionsToValues(constants.fonts)
157
+ values: optionsToValues(constants.fonts),
158
+ zIndex: (userProps === null || userProps === void 0 ? void 0 : userProps.zIndex) || 1
206
159
  }), _Divider2 || (_Divider2 = /*#__PURE__*/_jsx__default["default"](Divider, {}))]
207
160
  }), !FONT_SIZE && /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
208
- children: [/*#__PURE__*/_jsx__default["default"](TippedSelect, {
161
+ children: [/*#__PURE__*/_jsx__default["default"](TippedSelect.TippedSelect, {
209
162
  className: "ql-size",
210
163
  options: constants.sizes,
211
164
  tip: "Font Size",
212
- values: optionsToValues(constants.sizesReal)
165
+ values: optionsToValues(constants.sizesReal),
166
+ zIndex: (userProps === null || userProps === void 0 ? void 0 : userProps.zIndex) || 1
213
167
  }), _Divider3 || (_Divider3 = /*#__PURE__*/_jsx__default["default"](Divider, {}))]
214
168
  })), (!BOLD || !ITALIC || !UNDERLINE || !STRIKE) && /*#__PURE__*/_jsx__default["default"]("span", {
215
169
  className: "ql-formats"
216
- }, void 0, !BOLD && (_TippedButton || (_TippedButton = /*#__PURE__*/_jsx__default["default"](TippedButton, {
170
+ }, void 0, !BOLD && /*#__PURE__*/_jsx__default["default"](TippedButton.TippedButton, {
171
+ zIndex: (userProps === null || userProps === void 0 ? void 0 : userProps.zIndex) || 1,
217
172
  className: "ql-bold",
218
173
  tip: "Bold"
219
- }))), !ITALIC && (_TippedButton2 || (_TippedButton2 = /*#__PURE__*/_jsx__default["default"](TippedButton, {
174
+ }), !ITALIC && /*#__PURE__*/_jsx__default["default"](TippedButton.TippedButton, {
175
+ zIndex: (userProps === null || userProps === void 0 ? void 0 : userProps.zIndex) || 1,
220
176
  className: "ql-italic",
221
177
  tip: "Italic"
222
- }))), !UNDERLINE && (_TippedButton3 || (_TippedButton3 = /*#__PURE__*/_jsx__default["default"](TippedButton, {
178
+ }), !UNDERLINE && /*#__PURE__*/_jsx__default["default"](TippedButton.TippedButton, {
179
+ zIndex: (userProps === null || userProps === void 0 ? void 0 : userProps.zIndex) || 1,
223
180
  className: "ql-underline",
224
181
  tip: "Underline"
225
- }))), !STRIKE && (_TippedButton4 || (_TippedButton4 = /*#__PURE__*/_jsx__default["default"](TippedButton, {
182
+ }), !STRIKE && /*#__PURE__*/_jsx__default["default"](TippedButton.TippedButton, {
183
+ zIndex: (userProps === null || userProps === void 0 ? void 0 : userProps.zIndex) || 1,
226
184
  className: "ql-strike",
227
185
  tip: "Strike"
228
- })))), (!SUB || !SUPER) && /*#__PURE__*/_jsx__default["default"]("span", {
186
+ })), (!SUB || !SUPER) && /*#__PURE__*/_jsx__default["default"]("span", {
229
187
  className: "ql-formats"
230
- }, void 0, !SUB && (_TippedButton5 || (_TippedButton5 = /*#__PURE__*/_jsx__default["default"](TippedButton, {
188
+ }, void 0, !SUB && /*#__PURE__*/_jsx__default["default"](TippedButton.TippedButton, {
189
+ zIndex: (userProps === null || userProps === void 0 ? void 0 : userProps.zIndex) || 1,
231
190
  className: "ql-script",
232
191
  tip: "Sub",
233
192
  value: "sub"
234
- }))), !SUPER && (_TippedButton6 || (_TippedButton6 = /*#__PURE__*/_jsx__default["default"](TippedButton, {
193
+ }), !SUPER && /*#__PURE__*/_jsx__default["default"](TippedButton.TippedButton, {
194
+ zIndex: (userProps === null || userProps === void 0 ? void 0 : userProps.zIndex) || 1,
235
195
  className: "ql-script",
236
196
  tip: "Super",
237
197
  value: "super"
238
- }))), _Divider4 || (_Divider4 = /*#__PURE__*/_jsx__default["default"](Divider, {}))), (!ORDERED_LIST || !BULLET_LIST) && /*#__PURE__*/_jsx__default["default"]("span", {
198
+ }), _Divider4 || (_Divider4 = /*#__PURE__*/_jsx__default["default"](Divider, {}))), (!ORDERED_LIST || !BULLET_LIST) && /*#__PURE__*/_jsx__default["default"]("span", {
239
199
  className: "ql-formats"
240
- }, void 0, !ORDERED_LIST && (_TippedButton7 || (_TippedButton7 = /*#__PURE__*/_jsx__default["default"](TippedButton, {
200
+ }, void 0, !ORDERED_LIST && /*#__PURE__*/_jsx__default["default"](TippedButton.TippedButton, {
201
+ zIndex: (userProps === null || userProps === void 0 ? void 0 : userProps.zIndex) || 1,
241
202
  className: "ql-list",
242
203
  tip: "Ordered List",
243
204
  value: "ordered"
244
- }))), !BULLET_LIST && (_TippedButton8 || (_TippedButton8 = /*#__PURE__*/_jsx__default["default"](TippedButton, {
205
+ }), !BULLET_LIST && /*#__PURE__*/_jsx__default["default"](TippedButton.TippedButton, {
206
+ zIndex: (userProps === null || userProps === void 0 ? void 0 : userProps.zIndex) || 1,
245
207
  className: "ql-list",
246
208
  tip: "Bullet List",
247
209
  value: "bullet"
248
- })))), (!INDENT_MINUS_ONE || !INDENT_PLUS_ONE) && /*#__PURE__*/_jsx__default["default"]("span", {
210
+ })), (!INDENT_MINUS_ONE || !INDENT_PLUS_ONE) && /*#__PURE__*/_jsx__default["default"]("span", {
249
211
  className: "ql-formats"
250
- }, void 0, !INDENT_MINUS_ONE && (_TippedButton9 || (_TippedButton9 = /*#__PURE__*/_jsx__default["default"](TippedButton, {
212
+ }, void 0, !INDENT_MINUS_ONE && /*#__PURE__*/_jsx__default["default"](TippedButton.TippedButton, {
213
+ zIndex: (userProps === null || userProps === void 0 ? void 0 : userProps.zIndex) || 1,
251
214
  className: "ql-indent",
252
215
  tip: "Indent -1",
253
216
  value: "-1"
254
- }))), !INDENT_PLUS_ONE && (_TippedButton10 || (_TippedButton10 = /*#__PURE__*/_jsx__default["default"](TippedButton, {
217
+ }), !INDENT_PLUS_ONE && /*#__PURE__*/_jsx__default["default"](TippedButton.TippedButton, {
218
+ zIndex: (userProps === null || userProps === void 0 ? void 0 : userProps.zIndex) || 1,
255
219
  className: "ql-indent",
256
220
  tip: "Indent +1",
257
221
  value: "+1"
258
- })))), !ALIGN && (_span2 || (_span2 = /*#__PURE__*/_jsx__default["default"]("span", {
222
+ })), !ALIGN && /*#__PURE__*/_jsx__default["default"]("span", {
259
223
  className: "ql-formats"
260
- }, void 0, /*#__PURE__*/_jsx__default["default"](TippedSelect, {
224
+ }, void 0, /*#__PURE__*/_jsx__default["default"](TippedSelect.TippedSelect, {
225
+ zIndex: (userProps === null || userProps === void 0 ? void 0 : userProps.zIndex) || 1,
261
226
  className: "ql-align",
262
227
  tip: "Align"
263
- }), /*#__PURE__*/_jsx__default["default"](Divider, {})))), (!FONT_COLOR || !FONT_BACKGROUND_COLOR) && /*#__PURE__*/_jsx__default["default"]("span", {
228
+ }), _Divider5 || (_Divider5 = /*#__PURE__*/_jsx__default["default"](Divider, {}))), (!FONT_COLOR || !FONT_BACKGROUND_COLOR) && /*#__PURE__*/_jsx__default["default"]("span", {
264
229
  className: "ql-formats"
265
- }, void 0, !FONT_COLOR && (_Colors || (_Colors = /*#__PURE__*/_jsx__default["default"](Colors, {
230
+ }, void 0, !FONT_COLOR && /*#__PURE__*/_jsx__default["default"](Colors, {
231
+ zIndex: (userProps === null || userProps === void 0 ? void 0 : userProps.zIndex) || 1,
266
232
  className: "ql-color",
267
233
  tip: "Font Color"
268
- }))), !FONT_BACKGROUND_COLOR && (_Colors2 || (_Colors2 = /*#__PURE__*/_jsx__default["default"](Colors, {
234
+ }), !FONT_BACKGROUND_COLOR && /*#__PURE__*/_jsx__default["default"](Colors, {
235
+ zIndex: (userProps === null || userProps === void 0 ? void 0 : userProps.zIndex) || 1,
269
236
  className: "ql-background",
270
237
  tip: "Font Background Color"
271
- }))), _Divider5 || (_Divider5 = /*#__PURE__*/_jsx__default["default"](Divider, {}))), (!HYPERLINK || !IMAGE) && /*#__PURE__*/_jsx__default["default"]("span", {
238
+ }), _Divider6 || (_Divider6 = /*#__PURE__*/_jsx__default["default"](Divider, {}))), (!HYPERLINK || !IMAGE) && /*#__PURE__*/_jsx__default["default"]("span", {
272
239
  className: "ql-formats"
273
- }, void 0, !HYPERLINK && (_TippedButton11 || (_TippedButton11 = /*#__PURE__*/_jsx__default["default"](TippedButton, {
240
+ }, void 0, !HYPERLINK && /*#__PURE__*/_jsx__default["default"](TippedButton.TippedButton, {
241
+ zIndex: (userProps === null || userProps === void 0 ? void 0 : userProps.zIndex) || 1,
274
242
  className: "ql-link",
275
243
  tip: "Hyperlink: Select Text First"
276
- }))), !IMAGE && (_TippedButton12 || (_TippedButton12 = /*#__PURE__*/_jsx__default["default"](TippedButton, {
244
+ }), !IMAGE && /*#__PURE__*/_jsx__default["default"](TippedButton.TippedButton, {
245
+ zIndex: (userProps === null || userProps === void 0 ? void 0 : userProps.zIndex) || 1,
277
246
  className: "ql-image",
278
247
  tip: "Insert Image"
279
- }))), _Divider6 || (_Divider6 = /*#__PURE__*/_jsx__default["default"](Divider, {}))), !CLEAR_FORMAT && (_span3 || (_span3 = /*#__PURE__*/_jsx__default["default"]("span", {
248
+ }), _Divider7 || (_Divider7 = /*#__PURE__*/_jsx__default["default"](Divider, {}))), !CLEAR_FORMAT && /*#__PURE__*/_jsx__default["default"]("span", {
280
249
  className: "ql-formats"
281
- }, void 0, /*#__PURE__*/_jsx__default["default"](TippedButton, {
250
+ }, void 0, /*#__PURE__*/_jsx__default["default"](TippedButton.TippedButton, {
251
+ zIndex: (userProps === null || userProps === void 0 ? void 0 : userProps.zIndex) || 1,
282
252
  className: "ql-clean",
283
253
  tip: "Clear Format (Select Text)"
284
- })))), !SHOW_HTML && /*#__PURE__*/_jsx__default["default"]("span", {
254
+ })), !SHOW_HTML && /*#__PURE__*/_jsx__default["default"]("span", {
285
255
  className: "ql-formats"
286
- }, void 0, _Divider7 || (_Divider7 = /*#__PURE__*/_jsx__default["default"](Divider, {})), /*#__PURE__*/_jsx__default["default"](TippedButton, {
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,
287
258
  style: {
288
259
  width: 'fit-content',
289
260
  color: '#1e79c2',
@@ -292,21 +263,20 @@ const CustomToolbar = ({
292
263
  onClick: handleShowHTML,
293
264
  tip: showHTML ? 'SHOW TEXT' : 'SHOW HTML',
294
265
  className: "ql-customFields-html"
295
- }, void 0, showHTML ? 'SHOW TEXT' : 'SHOW HTML')), customFields && (_span4 || (_span4 = /*#__PURE__*/_jsx__default["default"]("span", {
266
+ }, void 0, showHTML ? 'SHOW TEXT' : 'SHOW HTML')), customFields && /*#__PURE__*/_jsx__default["default"]("span", {
296
267
  className: "ql-formats"
297
- }, void 0, /*#__PURE__*/_jsx__default["default"](Divider, {}), /*#__PURE__*/_jsx__default["default"](TippedButton, {
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,
298
270
  className: "ql-customFields",
299
271
  tip: "Insert Custom Field"
300
- }, void 0, /*#__PURE__*/_jsx__default["default"](CustomFields, {}))))), customItems && /*#__PURE__*/_jsx__default["default"]("span", {
272
+ }, void 0, _CustomFields || (_CustomFields = /*#__PURE__*/_jsx__default["default"](CustomFields, {})))), customItems && /*#__PURE__*/_jsx__default["default"]("span", {
301
273
  style: {
302
274
  display: 'inline-flex'
303
275
  }
304
276
  }, void 0, customItems.map(Item => /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
305
- children: [_Divider8 || (_Divider8 = /*#__PURE__*/_jsx__default["default"](Divider, {})), /*#__PURE__*/_jsx__default["default"](Item, {})]
277
+ children: [_Divider10 || (_Divider10 = /*#__PURE__*/_jsx__default["default"](Divider, {})), /*#__PURE__*/_jsx__default["default"](Item, {})]
306
278
  }))));
307
279
  };
308
280
 
309
281
  exports.CustomDropdown = CustomDropdown;
310
282
  exports.CustomToolbar = CustomToolbar;
311
- exports.TippedButton = TippedButton;
312
- exports.TippedSelect = TippedSelect;
@@ -3,6 +3,13 @@
3
3
  var _jsx = require('@babel/runtime/helpers/jsx');
4
4
  var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
5
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');
6
13
  var React = require('react');
7
14
  var ReactQuill = require('react-quill');
8
15
  var BlotFormatter = require('quill-blot-formatter');
@@ -12,6 +19,7 @@ var CustomToolbar = require('./CustomToolbar.js');
12
19
  var IndentStyle = require('../quillOverrides/IndentStyle.js');
13
20
  var LinkFormat = require('../quillOverrides/LinkFormat.js');
14
21
  var utils = require('../utils.js');
22
+ var clipboardLinkWithTagMatcher = require('../quillMatchers/clipboardLinkWithTagMatcher.js');
15
23
  var jsxRuntime = require('react/jsx-runtime');
16
24
 
17
25
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -49,8 +57,7 @@ ReactQuill.Quill.register(SizeStyle, true); // ---------------------------------
49
57
  class DSWYSIWYGEditorImpl extends React__default["default"].PureComponent {
50
58
  constructor(props) {
51
59
  super(props);
52
-
53
- _defineProperty__default["default"](this, "quillModules", _objectSpread({
60
+ this.quillModules = _objectSpread({
54
61
  toolbar: {
55
62
  container: this.props.toolbarContainer ? "#".concat(this.props.toolbarContainer) : '#toolbar',
56
63
  handlers: _objectSpread({}, this.props.toolbarHandlers)
@@ -61,31 +68,31 @@ class DSWYSIWYGEditorImpl extends React__default["default"].PureComponent {
61
68
  },
62
69
  blotFormatter: {// options... https://github.com/Fandom-OSS/quill-blot-formatter
63
70
  }
64
- }, this.props.quillModules));
71
+ }, this.props.quillModules);
65
72
 
66
- _defineProperty__default["default"](this, "onChangeQuill", (html, delta, source, editor) => {
73
+ this.onChangeQuill = (html, delta, source, editor) => {
67
74
  const {
68
75
  showRawHTML,
69
76
  onChange
70
77
  } = this.props;
71
78
  if (!showRawHTML) onChange(html, delta, source, editor);
72
- });
79
+ };
73
80
 
74
- _defineProperty__default["default"](this, "onChangeTextArea", e => {
81
+ this.onChangeTextArea = e => {
75
82
  const {
76
83
  showRawHTML,
77
84
  onChange
78
85
  } = this.props;
79
86
  if (showRawHTML) onChange(e.target.value);
80
- });
87
+ };
81
88
 
82
- _defineProperty__default["default"](this, "onInserFieldConfirm", fieldCode => {
89
+ this.onInserFieldConfirm = fieldCode => {
83
90
  const editor = this.getEditor();
84
91
  const range = editor.getSelection(true);
85
92
  editor.insertText(range.index, fieldCode);
86
- });
93
+ };
87
94
 
88
- _defineProperty__default["default"](this, "onImageConfirm", image => {
95
+ this.onImageConfirm = image => {
89
96
  if (!image) {
90
97
  return;
91
98
  }
@@ -93,23 +100,23 @@ class DSWYSIWYGEditorImpl extends React__default["default"].PureComponent {
93
100
  const editor = this.getEditor();
94
101
  const range = editor.getSelection(true);
95
102
  editor.insertEmbed(range.index, 'image', image.url);
96
- });
103
+ };
97
104
 
98
- _defineProperty__default["default"](this, "onFieldModalClose", () => {
105
+ this.onFieldModalClose = () => {
99
106
  this.setState({
100
107
  isFieldModalOpen: false
101
108
  });
102
- });
109
+ };
103
110
 
104
- _defineProperty__default["default"](this, "onImageModalClose", () => {
111
+ this.onImageModalClose = () => {
105
112
  this.setState({
106
113
  isImageModalOpen: false
107
114
  });
108
- });
115
+ };
109
116
 
110
- _defineProperty__default["default"](this, "quillRef", ref => {
117
+ this.quillRef = ref => {
111
118
  this.quill = ref;
112
- });
119
+ };
113
120
 
114
121
  ReactQuill.Quill.register(LinkFormat, true);
115
122
 
@@ -163,7 +170,15 @@ class DSWYSIWYGEditorImpl extends React__default["default"].PureComponent {
163
170
  }
164
171
 
165
172
  componentDidMount() {
166
- this.props.getQuillRef(this.quill);
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
+ });
167
182
  } // eslint-disable-next-line max-params
168
183
 
169
184
 
@@ -199,7 +214,8 @@ class DSWYSIWYGEditorImpl extends React__default["default"].PureComponent {
199
214
  children: [customToolbar || /*#__PURE__*/_jsx__default["default"](CustomToolbar.CustomToolbar, {
200
215
  customFields: customFields,
201
216
  onShowHTML: onShowHTML,
202
- hideItems: hideItems
217
+ hideItems: hideItems,
218
+ userProps: this.props
203
219
  }), /*#__PURE__*/jsxRuntime.jsx(ReactQuill__default["default"], _objectSpread(_objectSpread({
204
220
  ref: this.quillRef,
205
221
  modules: this.quillModules,