@elliemae/ds-wysiwygeditor 2.3.0-alpha.8 → 2.3.0-next.10

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/cjs/DSWYSIWYGEditor.js +82 -0
  2. package/cjs/components/CustomImageUploader.js +125 -0
  3. package/cjs/components/CustomToolbar.js +282 -0
  4. package/cjs/components/DSWYSIWYGEditorImpl.js +256 -0
  5. package/cjs/components/ImageLibraryModal.js +72 -0
  6. package/cjs/components/InsertFieldModal.js +218 -0
  7. package/cjs/components/TippedButton.js +56 -0
  8. package/cjs/components/TippedSelect.js +46 -0
  9. package/cjs/components/colors.js +30 -0
  10. package/cjs/components/customFields.js +57 -0
  11. package/cjs/constants.js +40 -0
  12. package/cjs/index.js +21 -0
  13. package/cjs/quillMatchers/clipboardLinkWithTagMatcher.js +33 -0
  14. package/cjs/quillOverrides/IndentStyle.js +29 -0
  15. package/cjs/quillOverrides/LinkFormat.js +68 -0
  16. package/cjs/quillOverrides/PlainClipboard.js +27 -0
  17. package/cjs/utils.js +27 -0
  18. package/esm/DSWYSIWYGEditor.js +72 -0
  19. package/esm/components/CustomImageUploader.js +115 -0
  20. package/esm/components/CustomToolbar.js +271 -0
  21. package/esm/components/DSWYSIWYGEditorImpl.js +245 -0
  22. package/esm/components/ImageLibraryModal.js +64 -0
  23. package/esm/components/InsertFieldModal.js +208 -0
  24. package/esm/components/TippedButton.js +46 -0
  25. package/esm/components/TippedSelect.js +38 -0
  26. package/esm/components/colors.js +26 -0
  27. package/esm/components/customFields.js +49 -0
  28. package/esm/constants.js +32 -0
  29. package/esm/index.js +4 -0
  30. package/esm/quillMatchers/clipboardLinkWithTagMatcher.js +29 -0
  31. package/esm/quillOverrides/IndentStyle.js +27 -0
  32. package/esm/quillOverrides/LinkFormat.js +66 -0
  33. package/esm/quillOverrides/PlainClipboard.js +25 -0
  34. package/esm/utils.js +23 -0
  35. package/package.json +56 -58
  36. package/types/DSWYSIWYGEditor.d.ts +75 -0
  37. package/types/components/CustomImageUploader.d.ts +8 -0
  38. package/types/components/CustomToolbar.d.ts +21 -0
  39. package/types/components/DSWYSIWYGEditorImpl.d.ts +15 -0
  40. package/types/components/ImageLibraryModal.d.ts +31 -0
  41. package/types/components/InsertFieldModal.d.ts +41 -0
  42. package/types/components/TippedButton.d.ts +12 -0
  43. package/types/components/TippedSelect.d.ts +13 -0
  44. package/types/components/colors.d.ts +1 -0
  45. package/types/components/customFields.d.ts +36 -0
  46. package/types/constants.d.ts +26 -0
  47. package/types/index.d.ts +4 -0
  48. package/types/quillMatchers/clipboardLinkWithTagMatcher.d.ts +2 -0
  49. package/types/quillOverrides/IndentStyle.d.ts +10 -0
  50. package/types/quillOverrides/LinkFormat.d.ts +12 -0
  51. package/types/quillOverrides/PlainClipboard.d.ts +8 -0
  52. package/types/utils.d.ts +1 -0
  53. package/dist/cjs/DSWYSIWYGEditor.js +0 -93
  54. package/dist/cjs/DSWYSIWYGEditor.js.map +0 -7
  55. package/dist/cjs/components/CustomImageUploader.js +0 -123
  56. package/dist/cjs/components/CustomImageUploader.js.map +0 -7
  57. package/dist/cjs/components/CustomToolbar.js +0 -261
  58. package/dist/cjs/components/CustomToolbar.js.map +0 -7
  59. package/dist/cjs/components/DSWYSIWYGEditorImpl.js +0 -218
  60. package/dist/cjs/components/DSWYSIWYGEditorImpl.js.map +0 -7
  61. package/dist/cjs/components/ImageLibraryModal.js +0 -92
  62. package/dist/cjs/components/ImageLibraryModal.js.map +0 -7
  63. package/dist/cjs/components/InsertFieldModal.js +0 -185
  64. package/dist/cjs/components/InsertFieldModal.js.map +0 -7
  65. package/dist/cjs/components/TippedButton.js +0 -58
  66. package/dist/cjs/components/TippedButton.js.map +0 -7
  67. package/dist/cjs/components/TippedSelect.js +0 -57
  68. package/dist/cjs/components/TippedSelect.js.map +0 -7
  69. package/dist/cjs/components/colors.js +0 -50
  70. package/dist/cjs/components/colors.js.map +0 -7
  71. package/dist/cjs/components/customFields.js +0 -76
  72. package/dist/cjs/components/customFields.js.map +0 -7
  73. package/dist/cjs/constants.js +0 -114
  74. package/dist/cjs/constants.js.map +0 -7
  75. package/dist/cjs/index.js +0 -39
  76. package/dist/cjs/index.js.map +0 -7
  77. package/dist/cjs/quillMatchers/clipboardLinkWithTagMatcher.js +0 -48
  78. package/dist/cjs/quillMatchers/clipboardLinkWithTagMatcher.js.map +0 -7
  79. package/dist/cjs/quillOverrides/IndentStyle.js +0 -51
  80. package/dist/cjs/quillOverrides/IndentStyle.js.map +0 -7
  81. package/dist/cjs/quillOverrides/LinkFormat.js +0 -86
  82. package/dist/cjs/quillOverrides/LinkFormat.js.map +0 -7
  83. package/dist/cjs/quillOverrides/PlainClipboard.js +0 -47
  84. package/dist/cjs/quillOverrides/PlainClipboard.js.map +0 -7
  85. package/dist/cjs/utils.js +0 -50
  86. package/dist/cjs/utils.js.map +0 -7
  87. package/dist/esm/DSWYSIWYGEditor.js +0 -64
  88. package/dist/esm/DSWYSIWYGEditor.js.map +0 -7
  89. package/dist/esm/components/CustomImageUploader.js +0 -94
  90. package/dist/esm/components/CustomImageUploader.js.map +0 -7
  91. package/dist/esm/components/CustomToolbar.js +0 -232
  92. package/dist/esm/components/CustomToolbar.js.map +0 -7
  93. package/dist/esm/components/DSWYSIWYGEditorImpl.js +0 -189
  94. package/dist/esm/components/DSWYSIWYGEditorImpl.js.map +0 -7
  95. package/dist/esm/components/ImageLibraryModal.js +0 -63
  96. package/dist/esm/components/ImageLibraryModal.js.map +0 -7
  97. package/dist/esm/components/InsertFieldModal.js +0 -156
  98. package/dist/esm/components/InsertFieldModal.js.map +0 -7
  99. package/dist/esm/components/TippedButton.js +0 -29
  100. package/dist/esm/components/TippedButton.js.map +0 -7
  101. package/dist/esm/components/TippedSelect.js +0 -28
  102. package/dist/esm/components/TippedSelect.js.map +0 -7
  103. package/dist/esm/components/colors.js +0 -21
  104. package/dist/esm/components/colors.js.map +0 -7
  105. package/dist/esm/components/customFields.js +0 -47
  106. package/dist/esm/components/customFields.js.map +0 -7
  107. package/dist/esm/constants.js +0 -85
  108. package/dist/esm/constants.js.map +0 -7
  109. package/dist/esm/index.js +0 -10
  110. package/dist/esm/index.js.map +0 -7
  111. package/dist/esm/quillMatchers/clipboardLinkWithTagMatcher.js +0 -19
  112. package/dist/esm/quillMatchers/clipboardLinkWithTagMatcher.js.map +0 -7
  113. package/dist/esm/quillOverrides/IndentStyle.js +0 -22
  114. package/dist/esm/quillOverrides/IndentStyle.js.map +0 -7
  115. package/dist/esm/quillOverrides/LinkFormat.js +0 -57
  116. package/dist/esm/quillOverrides/LinkFormat.js.map +0 -7
  117. package/dist/esm/quillOverrides/PlainClipboard.js +0 -18
  118. package/dist/esm/quillOverrides/PlainClipboard.js.map +0 -7
  119. package/dist/esm/utils.js +0 -21
  120. package/dist/esm/utils.js.map +0 -7
@@ -0,0 +1,82 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
6
+ var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
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');
13
+ var React = require('react');
14
+ var reactDesc = require('react-desc');
15
+ var DSWYSIWYGEditorImpl = require('./components/DSWYSIWYGEditorImpl.js');
16
+ var jsxRuntime = require('react/jsx-runtime');
17
+
18
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
19
+
20
+ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
21
+ var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
22
+
23
+ const _excluded = ["value", "onChange", "getQuillRef", "quillModules", "customToolbar", "toolbarHandlers", "showRawHTML", "height", "hideItems"];
24
+
25
+ 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; }
26
+
27
+ 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; }
28
+
29
+ const DSWYSIWYGEditor = _ref => {
30
+ let {
31
+ value = '',
32
+ onChange = () => null,
33
+ getQuillRef = () => null,
34
+ quillModules = {},
35
+ customToolbar,
36
+ toolbarHandlers,
37
+ showRawHTML = false,
38
+ height,
39
+ hideItems
40
+ } = _ref,
41
+ rest = _objectWithoutProperties__default["default"](_ref, _excluded);
42
+
43
+ const emptyAction = () => {};
44
+
45
+ const [showHTML, setShowHTML] = React.useState(showRawHTML);
46
+ React.useEffect(() => setShowHTML(showRawHTML), [showRawHTML]);
47
+ return /*#__PURE__*/jsxRuntime.jsx(DSWYSIWYGEditorImpl, _objectSpread({
48
+ forceHttpLink: true,
49
+ handleCustomFieldClick: emptyAction,
50
+ handleImageClick: emptyAction,
51
+ quillOverrides: [],
52
+ value: value,
53
+ onChange: onChange,
54
+ getQuillRef: getQuillRef,
55
+ quillModules: quillModules,
56
+ customToolbar: customToolbar,
57
+ toolbarHandlers: toolbarHandlers,
58
+ showRawHTML: showHTML,
59
+ onShowHTML: () => setShowHTML(!showHTML),
60
+ height: height,
61
+ hideItems: hideItems
62
+ }, rest));
63
+ };
64
+
65
+ const wysiwygEditorProps = {
66
+ value: reactDesc.PropTypes.string.description('editors value').isRequired,
67
+ onChange: reactDesc.PropTypes.func.description("(content, delta, source, editor) : Called back with the new contents of the editor after change. \n It will be passed the HTML contents of the editor, a delta object expressing the change, the source of the change, and finally a read-only proxy to editor accessors such as getHTML(). \n \u26A0\uFE0F Do not use this delta object as value, as it will cause a loop. \n Use editor.getContents() instead. See Using Deltas for details. \n Read more: https://github.com/zenoamaro/react-quill#props").isRequired,
68
+ getQuillRef: reactDesc.PropTypes.func.description('function to use quill.js ref'),
69
+ quillModules: reactDesc.PropTypes.object.description('object to override quill modules'),
70
+ customToolbar: reactDesc.PropTypes.element.description('custom toolbar'),
71
+ toolbarHandlers: reactDesc.PropTypes.object.description('object with toolbar handlers'),
72
+ showRawHTML: reactDesc.PropTypes.bool.description('whether to display html view or not').defaultValue(false),
73
+ height: reactDesc.PropTypes.string.description('heigth of the editors text area'),
74
+ readOnly: reactDesc.PropTypes.string.description("If true, the editor won't allow changing its contents. Wraps the Quill disable API."),
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)')
77
+ };
78
+ const WYSIWYWithSchema = reactDesc.describe(DSWYSIWYGEditor);
79
+ WYSIWYWithSchema.propTypes = wysiwygEditorProps;
80
+
81
+ exports.WYSIWYWithSchema = WYSIWYWithSchema;
82
+ exports["default"] = DSWYSIWYGEditor;
@@ -0,0 +1,125 @@
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/web.dom-collections.iterator.js');
7
+ var React = require('react');
8
+ var dsIcons = require('@elliemae/ds-icons');
9
+ var DSUploader = require('@elliemae/ds-uploader');
10
+ var DSModal = require('@elliemae/ds-modal');
11
+ var TippedButton = require('./TippedButton.js');
12
+ var jsxRuntime = require('react/jsx-runtime');
13
+
14
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
15
+
16
+ var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
17
+ var DSUploader__default = /*#__PURE__*/_interopDefaultLegacy(DSUploader);
18
+ var DSModal__default = /*#__PURE__*/_interopDefaultLegacy(DSModal);
19
+
20
+ const ALLOWED_TYPES_TEXT = 'JPG, JPEG, PNG, GIF, BMP, TIFF';
21
+ const ALLOWED_TYPES = /image\/(jpeg|jpg|png|gif|bmp|tiff)/;
22
+ const DEFAULT_MAX_SIZE = 1024 * 1024; // 1 MB
23
+
24
+ const CustomImageUploader = _ref => {
25
+ let {
26
+ quillRef,
27
+ editorFieldName,
28
+ allowedImageTypes = ALLOWED_TYPES_TEXT,
29
+ uploadAsset = () => null,
30
+ zIndex = 1
31
+ } = _ref;
32
+ const [isOpen, setIsOpen] = React.useState(false);
33
+ const [error, setError] = React.useState(null);
34
+ const [inProgress, setInProgress] = React.useState(false);
35
+ const [lastSelection, setLastSelection] = React.useState({
36
+ index: 0,
37
+ length: 0
38
+ });
39
+ const elementId = "uploadImage".concat(editorFieldName); // eslint-disable-next-line consistent-return
40
+
41
+ const handleFileChange = async files => {
42
+ if (!inProgress) {
43
+ setError(null);
44
+ const selectedFile = files[0];
45
+
46
+ if (!selectedFile) {
47
+ setError('Please select a file.');
48
+ return false;
49
+ }
50
+
51
+ if (!selectedFile.type.match(ALLOWED_TYPES)) {
52
+ setError('File must be an image.');
53
+ } else if (selectedFile.size > DEFAULT_MAX_SIZE) {
54
+ setError('File is too large.');
55
+ } else {
56
+ const fr = new FileReader();
57
+
58
+ fr.onload = async () => {
59
+ setInProgress(true);
60
+
61
+ try {
62
+ const url = await uploadAsset({
63
+ name: selectedFile.name,
64
+ type: selectedFile.type,
65
+ description: selectedFile.name,
66
+ isSystemAsset: false,
67
+ file: fr.result
68
+ });
69
+ setIsOpen(false);
70
+ quillRef === null || quillRef === void 0 ? void 0 : quillRef.getEditor().insertEmbed((lastSelection === null || lastSelection === void 0 ? void 0 : lastSelection.index) || 0, 'image', url);
71
+ } catch (e) {
72
+ setError('An error has occurred, try again');
73
+ }
74
+
75
+ setInProgress(false);
76
+ };
77
+
78
+ fr.readAsArrayBuffer(selectedFile);
79
+ }
80
+ }
81
+ };
82
+
83
+ return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
84
+ children: [/*#__PURE__*/_jsx__default["default"](TippedButton.TippedButton, {
85
+ zIndex: zIndex,
86
+ tip: "Insert Image",
87
+ onClick: () => {
88
+ setLastSelection(quillRef === null || quillRef === void 0 ? void 0 : quillRef.getEditor().getSelection());
89
+ setIsOpen(true);
90
+ }
91
+ }, void 0, /*#__PURE__*/_jsx__default["default"](dsIcons.Image, {
92
+ color: ['neutral', 500],
93
+ size: "s"
94
+ })), /*#__PURE__*/_jsx__default["default"](DSModal__default["default"], {
95
+ isOpen: isOpen,
96
+ title: "",
97
+ onConfirm: () => {
98
+ setIsOpen(false);
99
+ },
100
+ onClose: () => {
101
+ setIsOpen(false);
102
+ },
103
+ showClose: true,
104
+ version: 2,
105
+ size: "xsmall",
106
+ modalType: DSModal.MODAL_TYPE_V2.DECISION,
107
+ confirmLabel: "Cancel",
108
+ message: ""
109
+ }, void 0, !inProgress && /*#__PURE__*/_jsx__default["default"](DSUploader__default["default"], {
110
+ containerProps: {
111
+ id: elementId
112
+ },
113
+ showAltAction: false,
114
+ acceptedTypesText: allowedImageTypes,
115
+ onDrop: handleFileChange
116
+ }), inProgress && 'Upload in progress...', error && /*#__PURE__*/_jsx__default["default"]("div", {
117
+ style: {
118
+ color: 'red',
119
+ marginTop: '10px'
120
+ }
121
+ }, void 0, error))]
122
+ });
123
+ };
124
+
125
+ exports.CustomImageUploader = CustomImageUploader;
@@ -0,0 +1,282 @@
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;