@pie-lib/editable-html 11.4.0 → 11.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +24 -52
- package/package.json +8 -7
- package/src/editor.jsx +2 -2
- package/src/plugins/media/media-dialog.js +1 -1
- package/src/plugins/respArea/drag-in-the-blank/choice.jsx +1 -1
- package/src/plugins/toolbar/editor-and-toolbar.jsx +1 -1
- package/lib/block-tags.js +0 -25
- package/lib/block-tags.js.map +0 -1
- package/lib/constants.js +0 -16
- package/lib/constants.js.map +0 -1
- package/lib/editor.js +0 -1355
- package/lib/editor.js.map +0 -1
- package/lib/index.js +0 -269
- package/lib/index.js.map +0 -1
- package/lib/parse-html.js +0 -16
- package/lib/parse-html.js.map +0 -1
- package/lib/plugins/characters/custom-popper.js +0 -73
- package/lib/plugins/characters/custom-popper.js.map +0 -1
- package/lib/plugins/characters/index.js +0 -305
- package/lib/plugins/characters/index.js.map +0 -1
- package/lib/plugins/characters/utils.js +0 -381
- package/lib/plugins/characters/utils.js.map +0 -1
- package/lib/plugins/css/icons/index.js +0 -37
- package/lib/plugins/css/icons/index.js.map +0 -1
- package/lib/plugins/css/index.js +0 -397
- package/lib/plugins/css/index.js.map +0 -1
- package/lib/plugins/customPlugin/index.js +0 -114
- package/lib/plugins/customPlugin/index.js.map +0 -1
- package/lib/plugins/html/icons/index.js +0 -38
- package/lib/plugins/html/icons/index.js.map +0 -1
- package/lib/plugins/html/index.js +0 -80
- package/lib/plugins/html/index.js.map +0 -1
- package/lib/plugins/image/alt-dialog.js +0 -129
- package/lib/plugins/image/alt-dialog.js.map +0 -1
- package/lib/plugins/image/component.js +0 -419
- package/lib/plugins/image/component.js.map +0 -1
- package/lib/plugins/image/image-toolbar.js +0 -177
- package/lib/plugins/image/image-toolbar.js.map +0 -1
- package/lib/plugins/image/index.js +0 -263
- package/lib/plugins/image/index.js.map +0 -1
- package/lib/plugins/image/insert-image-handler.js +0 -161
- package/lib/plugins/image/insert-image-handler.js.map +0 -1
- package/lib/plugins/index.js +0 -402
- package/lib/plugins/index.js.map +0 -1
- package/lib/plugins/list/index.js +0 -334
- package/lib/plugins/list/index.js.map +0 -1
- package/lib/plugins/math/index.js +0 -454
- package/lib/plugins/math/index.js.map +0 -1
- package/lib/plugins/media/index.js +0 -387
- package/lib/plugins/media/index.js.map +0 -1
- package/lib/plugins/media/media-dialog.js +0 -709
- package/lib/plugins/media/media-dialog.js.map +0 -1
- package/lib/plugins/media/media-toolbar.js +0 -101
- package/lib/plugins/media/media-toolbar.js.map +0 -1
- package/lib/plugins/media/media-wrapper.js +0 -93
- package/lib/plugins/media/media-wrapper.js.map +0 -1
- package/lib/plugins/rendering/index.js +0 -46
- package/lib/plugins/rendering/index.js.map +0 -1
- package/lib/plugins/respArea/drag-in-the-blank/choice.js +0 -254
- package/lib/plugins/respArea/drag-in-the-blank/choice.js.map +0 -1
- package/lib/plugins/respArea/drag-in-the-blank/index.js +0 -97
- package/lib/plugins/respArea/drag-in-the-blank/index.js.map +0 -1
- package/lib/plugins/respArea/explicit-constructed-response/index.js +0 -57
- package/lib/plugins/respArea/explicit-constructed-response/index.js.map +0 -1
- package/lib/plugins/respArea/icons/index.js +0 -95
- package/lib/plugins/respArea/icons/index.js.map +0 -1
- package/lib/plugins/respArea/index.js +0 -341
- package/lib/plugins/respArea/index.js.map +0 -1
- package/lib/plugins/respArea/inline-dropdown/index.js +0 -75
- package/lib/plugins/respArea/inline-dropdown/index.js.map +0 -1
- package/lib/plugins/respArea/math-templated/index.js +0 -130
- package/lib/plugins/respArea/math-templated/index.js.map +0 -1
- package/lib/plugins/respArea/utils.js +0 -125
- package/lib/plugins/respArea/utils.js.map +0 -1
- package/lib/plugins/table/CustomTablePlugin.js +0 -133
- package/lib/plugins/table/CustomTablePlugin.js.map +0 -1
- package/lib/plugins/table/icons/index.js +0 -69
- package/lib/plugins/table/icons/index.js.map +0 -1
- package/lib/plugins/table/index.js +0 -483
- package/lib/plugins/table/index.js.map +0 -1
- package/lib/plugins/table/table-toolbar.js +0 -187
- package/lib/plugins/table/table-toolbar.js.map +0 -1
- package/lib/plugins/textAlign/icons/index.js +0 -226
- package/lib/plugins/textAlign/icons/index.js.map +0 -1
- package/lib/plugins/textAlign/index.js +0 -34
- package/lib/plugins/textAlign/index.js.map +0 -1
- package/lib/plugins/toolbar/default-toolbar.js +0 -229
- package/lib/plugins/toolbar/default-toolbar.js.map +0 -1
- package/lib/plugins/toolbar/done-button.js +0 -53
- package/lib/plugins/toolbar/done-button.js.map +0 -1
- package/lib/plugins/toolbar/editor-and-toolbar.js +0 -286
- package/lib/plugins/toolbar/editor-and-toolbar.js.map +0 -1
- package/lib/plugins/toolbar/index.js +0 -34
- package/lib/plugins/toolbar/index.js.map +0 -1
- package/lib/plugins/toolbar/toolbar-buttons.js +0 -194
- package/lib/plugins/toolbar/toolbar-buttons.js.map +0 -1
- package/lib/plugins/toolbar/toolbar.js +0 -376
- package/lib/plugins/toolbar/toolbar.js.map +0 -1
- package/lib/plugins/utils.js +0 -62
- package/lib/plugins/utils.js.map +0 -1
- package/lib/serialization.js +0 -677
- package/lib/serialization.js.map +0 -1
- package/lib/shared/alert-dialog.js +0 -75
- package/lib/shared/index.js +0 -136
- package/lib/theme.js +0 -9
- package/lib/theme.js.map +0 -1
|
@@ -1,229 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports["default"] = exports.ToolbarButton = exports.DefaultToolbar = void 0;
|
|
9
|
-
|
|
10
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
|
-
|
|
12
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
|
-
|
|
14
|
-
var _doneButton = require("./done-button");
|
|
15
|
-
|
|
16
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
17
|
-
|
|
18
|
-
var _react = _interopRequireDefault(require("react"));
|
|
19
|
-
|
|
20
|
-
var _slatePropTypes = _interopRequireDefault(require("slate-prop-types"));
|
|
21
|
-
|
|
22
|
-
var _utils = require("../utils");
|
|
23
|
-
|
|
24
|
-
var _styles = require("@material-ui/core/styles");
|
|
25
|
-
|
|
26
|
-
var _toolbarButtons = require("./toolbar-buttons");
|
|
27
|
-
|
|
28
|
-
var _debug = _interopRequireDefault(require("debug"));
|
|
29
|
-
|
|
30
|
-
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; }
|
|
31
|
-
|
|
32
|
-
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) { (0, _defineProperty2["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; }
|
|
33
|
-
|
|
34
|
-
var log = (0, _debug["default"])('@pie-lib:editable-html:plugins:toolbar');
|
|
35
|
-
|
|
36
|
-
var ToolbarButton = function ToolbarButton(props) {
|
|
37
|
-
var onToggle = function onToggle() {
|
|
38
|
-
var c = props.onToggle(props.value.change(), props);
|
|
39
|
-
props.onChange(c);
|
|
40
|
-
};
|
|
41
|
-
|
|
42
|
-
if (props.isMark) {
|
|
43
|
-
var _isActive = (0, _utils.hasMark)(props.value, props.type);
|
|
44
|
-
|
|
45
|
-
var fnToCall = props.type === 'css' ? function () {
|
|
46
|
-
return props.onClick(props.value, props.onChange, props.getFocusedValue);
|
|
47
|
-
} : onToggle;
|
|
48
|
-
log('[ToolbarButton] mark:isActive: ', _isActive);
|
|
49
|
-
var ariaLabel;
|
|
50
|
-
|
|
51
|
-
if (props.type === 'sup') {
|
|
52
|
-
ariaLabel = 'Superscript (marks text as superscripted)';
|
|
53
|
-
} else if (props.type === 'sub') {
|
|
54
|
-
ariaLabel = 'Subscript (marks text as subscripted)';
|
|
55
|
-
} else {
|
|
56
|
-
ariaLabel = props.type;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
return /*#__PURE__*/_react["default"].createElement(_toolbarButtons.MarkButton, {
|
|
60
|
-
active: _isActive,
|
|
61
|
-
onToggle: fnToCall,
|
|
62
|
-
mark: props.type,
|
|
63
|
-
label: ariaLabel
|
|
64
|
-
}, props.icon);
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
var disabled = props.disabled;
|
|
68
|
-
var isActive = props.isActive ? props.isActive(props.value, props.type) : (0, _utils.hasBlock)(props.value, props.type);
|
|
69
|
-
log('[ToolbarButton] block:isActive: ', isActive);
|
|
70
|
-
|
|
71
|
-
var newIcon = /*#__PURE__*/_react["default"].cloneElement(props.icon);
|
|
72
|
-
|
|
73
|
-
return /*#__PURE__*/_react["default"].createElement(_toolbarButtons.Button, {
|
|
74
|
-
ariaLabel: props.ariaLabel,
|
|
75
|
-
active: isActive,
|
|
76
|
-
disabled: disabled,
|
|
77
|
-
onClick: function onClick(event) {
|
|
78
|
-
return props.onClick(props.value, props.onChange, props.getFocusedValue, event);
|
|
79
|
-
},
|
|
80
|
-
extraStyles: props.buttonStyles
|
|
81
|
-
}, newIcon);
|
|
82
|
-
};
|
|
83
|
-
|
|
84
|
-
exports.ToolbarButton = ToolbarButton;
|
|
85
|
-
ToolbarButton.propTypes = {
|
|
86
|
-
buttonStyles: _propTypes["default"].object,
|
|
87
|
-
disabled: _propTypes["default"].bool,
|
|
88
|
-
icon: _propTypes["default"].any,
|
|
89
|
-
isActive: _propTypes["default"].bool,
|
|
90
|
-
isMark: _propTypes["default"].bool,
|
|
91
|
-
getFocusedValue: _propTypes["default"].func,
|
|
92
|
-
onToggle: _propTypes["default"].func,
|
|
93
|
-
onChange: _propTypes["default"].func,
|
|
94
|
-
onClick: _propTypes["default"].func,
|
|
95
|
-
type: _propTypes["default"].string,
|
|
96
|
-
value: _propTypes["default"].object,
|
|
97
|
-
ariaLabel: _propTypes["default"].string
|
|
98
|
-
};
|
|
99
|
-
|
|
100
|
-
var isActiveToolbarPlugin = function isActiveToolbarPlugin(props) {
|
|
101
|
-
return function (plugin) {
|
|
102
|
-
var isDisabled = (props[plugin.name] || {}).disabled;
|
|
103
|
-
return plugin && plugin.toolbar && !isDisabled;
|
|
104
|
-
};
|
|
105
|
-
};
|
|
106
|
-
|
|
107
|
-
var DefaultToolbar = function DefaultToolbar(_ref) {
|
|
108
|
-
var plugins = _ref.plugins,
|
|
109
|
-
pluginProps = _ref.pluginProps,
|
|
110
|
-
value = _ref.value,
|
|
111
|
-
onChange = _ref.onChange,
|
|
112
|
-
getFocusedValue = _ref.getFocusedValue,
|
|
113
|
-
onDone = _ref.onDone,
|
|
114
|
-
classes = _ref.classes,
|
|
115
|
-
showDone = _ref.showDone,
|
|
116
|
-
deletable = _ref.deletable,
|
|
117
|
-
isHtmlMode = _ref.isHtmlMode,
|
|
118
|
-
doneButtonRef = _ref.doneButtonRef,
|
|
119
|
-
onBlur = _ref.onBlur,
|
|
120
|
-
onFocus = _ref.onFocus;
|
|
121
|
-
pluginProps = _objectSpread({
|
|
122
|
-
// disable HTML plugin by default, at least for now
|
|
123
|
-
html: {
|
|
124
|
-
disabled: true
|
|
125
|
-
}
|
|
126
|
-
}, pluginProps);
|
|
127
|
-
var filtered;
|
|
128
|
-
|
|
129
|
-
var handleFocus = function handleFocus(event) {
|
|
130
|
-
var _doneButtonRef$curren, _event$target;
|
|
131
|
-
|
|
132
|
-
var doneButtonClassName = doneButtonRef === null || doneButtonRef === void 0 ? void 0 : (_doneButtonRef$curren = doneButtonRef.current) === null || _doneButtonRef$curren === void 0 ? void 0 : _doneButtonRef$curren.className;
|
|
133
|
-
var isRawDoneButton = doneButtonClassName && ((_event$target = event.target) === null || _event$target === void 0 ? void 0 : _event$target.closest("[class*=\"".concat(doneButtonClassName, "\"]")));
|
|
134
|
-
|
|
135
|
-
if (onFocus && !isRawDoneButton) {
|
|
136
|
-
onFocus(event);
|
|
137
|
-
}
|
|
138
|
-
};
|
|
139
|
-
|
|
140
|
-
if (isHtmlMode) {
|
|
141
|
-
filtered = plugins.filter(function (plugin) {
|
|
142
|
-
return isActiveToolbarPlugin(pluginProps)(plugin) && (plugin.name === 'characters' || plugin.name === 'html');
|
|
143
|
-
}).map(function (p) {
|
|
144
|
-
return p.toolbar;
|
|
145
|
-
});
|
|
146
|
-
} else {
|
|
147
|
-
filtered = plugins.filter(isActiveToolbarPlugin(pluginProps)).map(function (p) {
|
|
148
|
-
return p.toolbar;
|
|
149
|
-
});
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
var isListActive = plugins.some(function (plugin) {
|
|
153
|
-
return isActiveToolbarPlugin(pluginProps)(plugin) && ['ul_list', 'ol_list'].includes(plugin.name) && plugin.toolbar.isActive(value, plugin.name);
|
|
154
|
-
});
|
|
155
|
-
var isTableActive = plugins.some(function (plugin) {
|
|
156
|
-
return isActiveToolbarPlugin(pluginProps)(plugin) && plugin.name === 'table' && plugin.utils && plugin.utils.isSelectionInTable && plugin.utils.isSelectionInTable(value);
|
|
157
|
-
});
|
|
158
|
-
|
|
159
|
-
var isToolbarButtonDisabled = function isToolbarButtonDisabled(plugin) {
|
|
160
|
-
if (plugin.type === 'table') {
|
|
161
|
-
return isListActive;
|
|
162
|
-
} else if (plugin.type === 'ul_list' || plugin.type === 'ol_list') {
|
|
163
|
-
return isTableActive;
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
return plugin.disabled;
|
|
167
|
-
};
|
|
168
|
-
|
|
169
|
-
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
170
|
-
className: classes.defaultToolbar,
|
|
171
|
-
onFocus: handleFocus,
|
|
172
|
-
tabIndex: "1",
|
|
173
|
-
onBlur: onBlur
|
|
174
|
-
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
175
|
-
className: classes.buttonsContainer
|
|
176
|
-
}, filtered.map(function (p, index) {
|
|
177
|
-
return /*#__PURE__*/_react["default"].createElement(ToolbarButton, (0, _extends2["default"])({}, p, {
|
|
178
|
-
key: index,
|
|
179
|
-
value: value,
|
|
180
|
-
onChange: onChange,
|
|
181
|
-
getFocusedValue: getFocusedValue,
|
|
182
|
-
disabled: isToolbarButtonDisabled(p)
|
|
183
|
-
}));
|
|
184
|
-
})), showDone && !deletable && /*#__PURE__*/_react["default"].createElement(_doneButton.DoneButton, {
|
|
185
|
-
doneButtonRef: doneButtonRef,
|
|
186
|
-
onClick: onDone
|
|
187
|
-
}));
|
|
188
|
-
};
|
|
189
|
-
|
|
190
|
-
exports.DefaultToolbar = DefaultToolbar;
|
|
191
|
-
DefaultToolbar.propTypes = {
|
|
192
|
-
classes: _propTypes["default"].object.isRequired,
|
|
193
|
-
plugins: _propTypes["default"].array.isRequired,
|
|
194
|
-
pluginProps: _propTypes["default"].object,
|
|
195
|
-
value: _slatePropTypes["default"].value.isRequired,
|
|
196
|
-
onChange: _propTypes["default"].func.isRequired,
|
|
197
|
-
getFocusedValue: _propTypes["default"].func.isRequired,
|
|
198
|
-
onDone: _propTypes["default"].func.isRequired,
|
|
199
|
-
showDone: _propTypes["default"].bool,
|
|
200
|
-
addArea: _propTypes["default"].bool,
|
|
201
|
-
deletable: _propTypes["default"].bool,
|
|
202
|
-
isHtmlMode: _propTypes["default"].bool,
|
|
203
|
-
doneButtonRef: _propTypes["default"].func,
|
|
204
|
-
onBlur: _propTypes["default"].func,
|
|
205
|
-
onFocus: _propTypes["default"].func
|
|
206
|
-
};
|
|
207
|
-
DefaultToolbar.defaultProps = {
|
|
208
|
-
pluginProps: {}
|
|
209
|
-
};
|
|
210
|
-
|
|
211
|
-
var toolbarStyles = function toolbarStyles() {
|
|
212
|
-
return {
|
|
213
|
-
defaultToolbar: {
|
|
214
|
-
display: 'flex',
|
|
215
|
-
width: '100%',
|
|
216
|
-
justifyContent: 'space-between'
|
|
217
|
-
},
|
|
218
|
-
buttonsContainer: {
|
|
219
|
-
alignItems: 'center',
|
|
220
|
-
display: 'flex',
|
|
221
|
-
width: '100%'
|
|
222
|
-
}
|
|
223
|
-
};
|
|
224
|
-
};
|
|
225
|
-
|
|
226
|
-
var _default = (0, _styles.withStyles)(toolbarStyles)(DefaultToolbar);
|
|
227
|
-
|
|
228
|
-
exports["default"] = _default;
|
|
229
|
-
//# sourceMappingURL=default-toolbar.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/plugins/toolbar/default-toolbar.jsx"],"names":["log","ToolbarButton","props","onToggle","c","value","change","onChange","isMark","isActive","type","fnToCall","onClick","getFocusedValue","ariaLabel","icon","disabled","newIcon","React","cloneElement","event","buttonStyles","propTypes","PropTypes","object","bool","any","func","string","isActiveToolbarPlugin","plugin","isDisabled","name","toolbar","DefaultToolbar","plugins","pluginProps","onDone","classes","showDone","deletable","isHtmlMode","doneButtonRef","onBlur","onFocus","html","filtered","handleFocus","doneButtonClassName","current","className","isRawDoneButton","target","closest","filter","map","p","isListActive","some","includes","isTableActive","utils","isSelectionInTable","isToolbarButtonDisabled","defaultToolbar","buttonsContainer","index","isRequired","array","SlatePropTypes","addArea","defaultProps","toolbarStyles","display","width","justifyContent","alignItems"],"mappings":"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","sourcesContent":["import { DoneButton } from './done-button';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport SlatePropTypes from 'slate-prop-types';\n\nimport { hasBlock, hasMark } from '../utils';\nimport { withStyles } from '@material-ui/core/styles';\n\nimport { Button, MarkButton } from './toolbar-buttons';\nimport debug from 'debug';\n\nconst log = debug('@pie-lib:editable-html:plugins:toolbar');\n\nexport const ToolbarButton = (props) => {\n const onToggle = () => {\n const c = props.onToggle(props.value.change(), props);\n\n props.onChange(c);\n };\n\n if (props.isMark) {\n const isActive = hasMark(props.value, props.type);\n const fnToCall =\n props.type === 'css' ? () => props.onClick(props.value, props.onChange, props.getFocusedValue) : onToggle;\n\n log('[ToolbarButton] mark:isActive: ', isActive);\n\n let ariaLabel;\n\n if (props.type === 'sup') {\n ariaLabel = 'Superscript (marks text as superscripted)';\n } else if (props.type === 'sub') {\n ariaLabel = 'Subscript (marks text as subscripted)';\n } else {\n ariaLabel = props.type;\n }\n\n return (\n <MarkButton active={isActive} onToggle={fnToCall} mark={props.type} label={ariaLabel}>\n {props.icon}\n </MarkButton>\n );\n }\n\n const { disabled } = props;\n const isActive = props.isActive ? props.isActive(props.value, props.type) : hasBlock(props.value, props.type);\n\n log('[ToolbarButton] block:isActive: ', isActive);\n const newIcon = React.cloneElement(props.icon);\n\n return (\n <Button\n ariaLabel={props.ariaLabel}\n active={isActive}\n disabled={disabled}\n onClick={(event) => props.onClick(props.value, props.onChange, props.getFocusedValue, event)}\n extraStyles={props.buttonStyles}\n >\n {newIcon}\n </Button>\n );\n};\n\nToolbarButton.propTypes = {\n buttonStyles: PropTypes.object,\n disabled: PropTypes.bool,\n icon: PropTypes.any,\n isActive: PropTypes.bool,\n isMark: PropTypes.bool,\n getFocusedValue: PropTypes.func,\n onToggle: PropTypes.func,\n onChange: PropTypes.func,\n onClick: PropTypes.func,\n type: PropTypes.string,\n value: PropTypes.object,\n ariaLabel: PropTypes.string,\n};\n\nconst isActiveToolbarPlugin = (props) => (plugin) => {\n const isDisabled = (props[plugin.name] || {}).disabled;\n\n return plugin && plugin.toolbar && !isDisabled;\n};\n\nexport const DefaultToolbar = ({\n plugins,\n pluginProps,\n value,\n onChange,\n getFocusedValue,\n onDone,\n classes,\n showDone,\n deletable,\n isHtmlMode,\n doneButtonRef,\n onBlur,\n onFocus,\n}) => {\n pluginProps = {\n // disable HTML plugin by default, at least for now\n html: { disabled: true },\n ...pluginProps,\n };\n let filtered;\n\n const handleFocus = (event) => {\n const doneButtonClassName = doneButtonRef?.current?.className;\n const isRawDoneButton = doneButtonClassName && event.target?.closest(`[class*=\"${doneButtonClassName}\"]`);\n\n if (onFocus && !isRawDoneButton) {\n onFocus(event);\n }\n };\n\n if (isHtmlMode) {\n filtered = plugins\n .filter((plugin) => {\n return isActiveToolbarPlugin(pluginProps)(plugin) && (plugin.name === 'characters' || plugin.name === 'html');\n })\n .map((p) => p.toolbar);\n } else {\n filtered = plugins.filter(isActiveToolbarPlugin(pluginProps)).map((p) => p.toolbar);\n }\n\n const isListActive = plugins.some(\n (plugin) =>\n isActiveToolbarPlugin(pluginProps)(plugin) &&\n ['ul_list', 'ol_list'].includes(plugin.name) &&\n plugin.toolbar.isActive(value, plugin.name),\n );\n\n const isTableActive = plugins.some(\n (plugin) =>\n isActiveToolbarPlugin(pluginProps)(plugin) &&\n plugin.name === 'table' &&\n plugin.utils &&\n plugin.utils.isSelectionInTable &&\n plugin.utils.isSelectionInTable(value),\n );\n\n const isToolbarButtonDisabled = (plugin) => {\n if (plugin.type === 'table') {\n return isListActive;\n } else if (plugin.type === 'ul_list' || plugin.type === 'ol_list') {\n return isTableActive;\n }\n return plugin.disabled;\n };\n\n return (\n <div className={classes.defaultToolbar} onFocus={handleFocus} tabIndex=\"1\" onBlur={onBlur}>\n <div className={classes.buttonsContainer}>\n {filtered.map((p, index) => {\n return (\n <ToolbarButton\n {...p}\n key={index}\n value={value}\n onChange={onChange}\n getFocusedValue={getFocusedValue}\n disabled={isToolbarButtonDisabled(p)}\n />\n );\n })}\n </div>\n {showDone && !deletable && <DoneButton doneButtonRef={doneButtonRef} onClick={onDone} />}\n </div>\n );\n};\n\nDefaultToolbar.propTypes = {\n classes: PropTypes.object.isRequired,\n plugins: PropTypes.array.isRequired,\n pluginProps: PropTypes.object,\n value: SlatePropTypes.value.isRequired,\n onChange: PropTypes.func.isRequired,\n getFocusedValue: PropTypes.func.isRequired,\n onDone: PropTypes.func.isRequired,\n showDone: PropTypes.bool,\n addArea: PropTypes.bool,\n deletable: PropTypes.bool,\n isHtmlMode: PropTypes.bool,\n doneButtonRef: PropTypes.func,\n onBlur: PropTypes.func,\n onFocus: PropTypes.func,\n};\n\nDefaultToolbar.defaultProps = {\n pluginProps: {},\n};\n\nconst toolbarStyles = () => ({\n defaultToolbar: {\n display: 'flex',\n width: '100%',\n justifyContent: 'space-between',\n },\n buttonsContainer: {\n alignItems: 'center',\n display: 'flex',\n width: '100%',\n },\n});\n\nexport default withStyles(toolbarStyles)(DefaultToolbar);\n"],"file":"default-toolbar.js"}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.RawDoneButton = exports.DoneButton = void 0;
|
|
9
|
-
|
|
10
|
-
var _react = _interopRequireDefault(require("react"));
|
|
11
|
-
|
|
12
|
-
var _IconButton = _interopRequireDefault(require("@material-ui/core/IconButton"));
|
|
13
|
-
|
|
14
|
-
var _Check = _interopRequireDefault(require("@material-ui/icons/Check"));
|
|
15
|
-
|
|
16
|
-
var _styles = require("@material-ui/core/styles");
|
|
17
|
-
|
|
18
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
19
|
-
|
|
20
|
-
var RawDoneButton = function RawDoneButton(_ref) {
|
|
21
|
-
var classes = _ref.classes,
|
|
22
|
-
onClick = _ref.onClick,
|
|
23
|
-
doneButtonRef = _ref.doneButtonRef;
|
|
24
|
-
return /*#__PURE__*/_react["default"].createElement(_IconButton["default"], {
|
|
25
|
-
"aria-label": "Done",
|
|
26
|
-
className: classes.iconRoot,
|
|
27
|
-
buttonRef: doneButtonRef,
|
|
28
|
-
onClick: onClick,
|
|
29
|
-
classes: {
|
|
30
|
-
label: classes.label,
|
|
31
|
-
root: classes.iconRoot
|
|
32
|
-
}
|
|
33
|
-
}, /*#__PURE__*/_react["default"].createElement(_Check["default"], null));
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
exports.RawDoneButton = RawDoneButton;
|
|
37
|
-
RawDoneButton.propTypes = {
|
|
38
|
-
classes: _propTypes["default"].object.isRequired,
|
|
39
|
-
onClick: _propTypes["default"].func,
|
|
40
|
-
doneButtonRef: _propTypes["default"].func
|
|
41
|
-
};
|
|
42
|
-
var styles = {
|
|
43
|
-
iconRoot: {
|
|
44
|
-
verticalAlign: 'top',
|
|
45
|
-
width: '28px',
|
|
46
|
-
height: '28px',
|
|
47
|
-
color: 'var(--editable-html-toolbar-check, #00bb00)',
|
|
48
|
-
padding: '4px'
|
|
49
|
-
}
|
|
50
|
-
};
|
|
51
|
-
var DoneButton = (0, _styles.withStyles)(styles)(RawDoneButton);
|
|
52
|
-
exports.DoneButton = DoneButton;
|
|
53
|
-
//# sourceMappingURL=done-button.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/plugins/toolbar/done-button.jsx"],"names":["RawDoneButton","classes","onClick","doneButtonRef","iconRoot","label","root","propTypes","PropTypes","object","isRequired","func","styles","verticalAlign","width","height","color","padding","DoneButton"],"mappings":";;;;;;;;;AAAA;;AAEA;;AACA;;AACA;;AACA;;AAEO,IAAMA,aAAa,GAAG,SAAhBA,aAAgB;AAAA,MAAGC,OAAH,QAAGA,OAAH;AAAA,MAAYC,OAAZ,QAAYA,OAAZ;AAAA,MAAqBC,aAArB,QAAqBA,aAArB;AAAA,sBAC3B,gCAAC,sBAAD;AACE,kBAAW,MADb;AAEE,IAAA,SAAS,EAAEF,OAAO,CAACG,QAFrB;AAGE,IAAA,SAAS,EAAED,aAHb;AAIE,IAAA,OAAO,EAAED,OAJX;AAKE,IAAA,OAAO,EAAE;AACPG,MAAAA,KAAK,EAAEJ,OAAO,CAACI,KADR;AAEPC,MAAAA,IAAI,EAAEL,OAAO,CAACG;AAFP;AALX,kBAUE,gCAAC,iBAAD,OAVF,CAD2B;AAAA,CAAtB;;;AAePJ,aAAa,CAACO,SAAd,GAA0B;AACxBN,EAAAA,OAAO,EAAEO,sBAAUC,MAAV,CAAiBC,UADF;AAExBR,EAAAA,OAAO,EAAEM,sBAAUG,IAFK;AAGxBR,EAAAA,aAAa,EAAEK,sBAAUG;AAHD,CAA1B;AAMA,IAAMC,MAAM,GAAG;AACbR,EAAAA,QAAQ,EAAE;AACRS,IAAAA,aAAa,EAAE,KADP;AAERC,IAAAA,KAAK,EAAE,MAFC;AAGRC,IAAAA,MAAM,EAAE,MAHA;AAIRC,IAAAA,KAAK,EAAE,6CAJC;AAKRC,IAAAA,OAAO,EAAE;AALD;AADG,CAAf;AASO,IAAMC,UAAU,GAAG,wBAAWN,MAAX,EAAmBZ,aAAnB,CAAnB","sourcesContent":["import React from 'react';\n\nimport IconButton from '@material-ui/core/IconButton';\nimport Check from '@material-ui/icons/Check';\nimport { withStyles } from '@material-ui/core/styles';\nimport PropTypes from 'prop-types';\n\nexport const RawDoneButton = ({ classes, onClick, doneButtonRef }) => (\n <IconButton\n aria-label=\"Done\"\n className={classes.iconRoot}\n buttonRef={doneButtonRef}\n onClick={onClick}\n classes={{\n label: classes.label,\n root: classes.iconRoot,\n }}\n >\n <Check />\n </IconButton>\n);\n\nRawDoneButton.propTypes = {\n classes: PropTypes.object.isRequired,\n onClick: PropTypes.func,\n doneButtonRef: PropTypes.func,\n};\n\nconst styles = {\n iconRoot: {\n verticalAlign: 'top',\n width: '28px',\n height: '28px',\n color: 'var(--editable-html-toolbar-check, #00bb00)',\n padding: '4px',\n },\n};\nexport const DoneButton = withStyles(styles)(RawDoneButton);\n"],"file":"done-button.js"}
|
|
@@ -1,286 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports["default"] = exports.EditorAndToolbar = void 0;
|
|
9
|
-
|
|
10
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
-
|
|
12
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
-
|
|
14
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
15
|
-
|
|
16
|
-
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
17
|
-
|
|
18
|
-
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
19
|
-
|
|
20
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
21
|
-
|
|
22
|
-
var _react = _interopRequireDefault(require("react"));
|
|
23
|
-
|
|
24
|
-
var _toolbar = _interopRequireDefault(require("./toolbar"));
|
|
25
|
-
|
|
26
|
-
var _classnames = _interopRequireDefault(require("classnames"));
|
|
27
|
-
|
|
28
|
-
var _debug = _interopRequireDefault(require("debug"));
|
|
29
|
-
|
|
30
|
-
var _theme = require("../../theme");
|
|
31
|
-
|
|
32
|
-
var _styles = require("@material-ui/core/styles");
|
|
33
|
-
|
|
34
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
35
|
-
|
|
36
|
-
var _slatePropTypes = _interopRequireDefault(require("slate-prop-types"));
|
|
37
|
-
|
|
38
|
-
var _index = require("./../../shared/index");
|
|
39
|
-
|
|
40
|
-
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
41
|
-
|
|
42
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
43
|
-
|
|
44
|
-
var log = (0, _debug["default"])('@pie-lib:editable-html:plugins:toolbar:editor-and-toolbar');
|
|
45
|
-
|
|
46
|
-
var EditorAndToolbar = /*#__PURE__*/function (_React$Component) {
|
|
47
|
-
(0, _inherits2["default"])(EditorAndToolbar, _React$Component);
|
|
48
|
-
|
|
49
|
-
var _super = _createSuper(EditorAndToolbar);
|
|
50
|
-
|
|
51
|
-
function EditorAndToolbar() {
|
|
52
|
-
(0, _classCallCheck2["default"])(this, EditorAndToolbar);
|
|
53
|
-
return _super.apply(this, arguments);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
(0, _createClass2["default"])(EditorAndToolbar, [{
|
|
57
|
-
key: "render",
|
|
58
|
-
value: function render() {
|
|
59
|
-
var _classNames,
|
|
60
|
-
_this = this,
|
|
61
|
-
_classNames2;
|
|
62
|
-
|
|
63
|
-
var _this$props = this.props,
|
|
64
|
-
classes = _this$props.classes,
|
|
65
|
-
children = _this$props.children,
|
|
66
|
-
value = _this$props.value,
|
|
67
|
-
plugins = _this$props.plugins,
|
|
68
|
-
onChange = _this$props.onChange,
|
|
69
|
-
getFocusedValue = _this$props.getFocusedValue,
|
|
70
|
-
onDone = _this$props.onDone,
|
|
71
|
-
focusedNode = _this$props.focusedNode,
|
|
72
|
-
autoWidth = _this$props.autoWidth,
|
|
73
|
-
readOnly = _this$props.readOnly,
|
|
74
|
-
disableScrollbar = _this$props.disableScrollbar,
|
|
75
|
-
disableUnderline = _this$props.disableUnderline,
|
|
76
|
-
pluginProps = _this$props.pluginProps,
|
|
77
|
-
toolbarOpts = _this$props.toolbarOpts,
|
|
78
|
-
onDataChange = _this$props.onDataChange,
|
|
79
|
-
toolbarRef = _this$props.toolbarRef,
|
|
80
|
-
doneButtonRef = _this$props.doneButtonRef,
|
|
81
|
-
focusToolbar = _this$props.focusToolbar,
|
|
82
|
-
onToolbarFocus = _this$props.onToolbarFocus,
|
|
83
|
-
onToolbarBlur = _this$props.onToolbarBlur;
|
|
84
|
-
var inFocus = value.isFocused || focusedNode !== null && focusedNode !== undefined || focusToolbar;
|
|
85
|
-
var holderNames = (0, _classnames["default"])(classes.editorHolder, (_classNames = {}, (0, _defineProperty2["default"])(_classNames, classes.editorInFocus, inFocus), (0, _defineProperty2["default"])(_classNames, classes.readOnly, readOnly), (0, _defineProperty2["default"])(_classNames, classes.disabledUnderline, disableUnderline), (0, _defineProperty2["default"])(_classNames, classes.disabledScrollbar, disableScrollbar), _classNames));
|
|
86
|
-
var clonedChildren = children;
|
|
87
|
-
|
|
88
|
-
if (typeof children !== 'string') {
|
|
89
|
-
clonedChildren = /*#__PURE__*/_react["default"].cloneElement(children, {
|
|
90
|
-
ref: function ref(el) {
|
|
91
|
-
return _this.editorRef = el;
|
|
92
|
-
}
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
log('[render] inFocus: ', inFocus, 'value.isFocused:', value.isFocused, 'focused node: ', focusedNode);
|
|
97
|
-
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
98
|
-
className: (0, _classnames["default"])((_classNames2 = {}, (0, _defineProperty2["default"])(_classNames2, classes.noBorder, toolbarOpts && toolbarOpts.noBorder), (0, _defineProperty2["default"])(_classNames2, classes.error, toolbarOpts && toolbarOpts.error), _classNames2), classes.root)
|
|
99
|
-
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
100
|
-
className: holderNames
|
|
101
|
-
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
102
|
-
className: (0, _classnames["default"])((0, _defineProperty2["default"])({}, classes.noPadding, toolbarOpts && toolbarOpts.noPadding), classes.children)
|
|
103
|
-
}, clonedChildren)), /*#__PURE__*/_react["default"].createElement(_toolbar["default"], {
|
|
104
|
-
autoWidth: autoWidth,
|
|
105
|
-
plugins: plugins,
|
|
106
|
-
focusedNode: focusedNode,
|
|
107
|
-
value: value,
|
|
108
|
-
isFocused: inFocus,
|
|
109
|
-
onBlur: onToolbarBlur,
|
|
110
|
-
onFocus: onToolbarFocus,
|
|
111
|
-
onChange: onChange,
|
|
112
|
-
getFocusedValue: getFocusedValue,
|
|
113
|
-
onDone: onDone,
|
|
114
|
-
onDataChange: onDataChange,
|
|
115
|
-
toolbarRef: toolbarRef,
|
|
116
|
-
doneButtonRef: doneButtonRef,
|
|
117
|
-
pluginProps: pluginProps,
|
|
118
|
-
toolbarOpts: toolbarOpts
|
|
119
|
-
}));
|
|
120
|
-
}
|
|
121
|
-
}]);
|
|
122
|
-
return EditorAndToolbar;
|
|
123
|
-
}(_react["default"].Component);
|
|
124
|
-
|
|
125
|
-
exports.EditorAndToolbar = EditorAndToolbar;
|
|
126
|
-
(0, _defineProperty2["default"])(EditorAndToolbar, "propTypes", {
|
|
127
|
-
children: _propTypes["default"].oneOfType([_propTypes["default"].arrayOf(_propTypes["default"].node), _propTypes["default"].node]).isRequired,
|
|
128
|
-
value: _slatePropTypes["default"].value.isRequired,
|
|
129
|
-
plugins: _propTypes["default"].array.isRequired,
|
|
130
|
-
onChange: _propTypes["default"].func.isRequired,
|
|
131
|
-
getFocusedValue: _propTypes["default"].func.isRequired,
|
|
132
|
-
onDone: _propTypes["default"].func.isRequired,
|
|
133
|
-
onDataChange: _propTypes["default"].func,
|
|
134
|
-
toolbarRef: _propTypes["default"].func,
|
|
135
|
-
focusedNode: _slatePropTypes["default"].node,
|
|
136
|
-
readOnly: _propTypes["default"].bool,
|
|
137
|
-
disableScrollbar: _propTypes["default"].bool,
|
|
138
|
-
disableUnderline: _propTypes["default"].bool,
|
|
139
|
-
autoWidth: _propTypes["default"].bool,
|
|
140
|
-
classes: _propTypes["default"].object.isRequired,
|
|
141
|
-
pluginProps: _propTypes["default"].object,
|
|
142
|
-
toolbarOpts: _propTypes["default"].shape({
|
|
143
|
-
position: _propTypes["default"].oneOf(['bottom', 'top']),
|
|
144
|
-
alwaysVisible: _propTypes["default"].bool,
|
|
145
|
-
error: _propTypes["default"].string,
|
|
146
|
-
noBorder: _propTypes["default"].any,
|
|
147
|
-
noPadding: _propTypes["default"].any
|
|
148
|
-
}),
|
|
149
|
-
focusToolbar: _propTypes["default"].bool.isRequired,
|
|
150
|
-
onToolbarFocus: _propTypes["default"].func.isRequired,
|
|
151
|
-
onToolbarBlur: _propTypes["default"].func.isRequired,
|
|
152
|
-
doneButtonRef: _propTypes["default"].func
|
|
153
|
-
});
|
|
154
|
-
|
|
155
|
-
var style = function style(theme) {
|
|
156
|
-
return {
|
|
157
|
-
root: {
|
|
158
|
-
position: 'relative',
|
|
159
|
-
padding: '0px',
|
|
160
|
-
border: '1px solid #ccc',
|
|
161
|
-
borderRadius: '4px',
|
|
162
|
-
cursor: 'text',
|
|
163
|
-
'& [data-slate-editor="true"]': {
|
|
164
|
-
wordBreak: 'break-word',
|
|
165
|
-
overflow: 'visible',
|
|
166
|
-
maxHeight: '500px',
|
|
167
|
-
// needed in order to be able to put the focus before a void element when it is the first one in the editor
|
|
168
|
-
padding: '5px'
|
|
169
|
-
}
|
|
170
|
-
},
|
|
171
|
-
children: {
|
|
172
|
-
padding: '10px 16px'
|
|
173
|
-
},
|
|
174
|
-
editorHolder: {
|
|
175
|
-
position: 'relative',
|
|
176
|
-
padding: '0px',
|
|
177
|
-
overflowY: 'auto',
|
|
178
|
-
color: _index.color.text(),
|
|
179
|
-
backgroundColor: _index.color.background(),
|
|
180
|
-
'&::before': {
|
|
181
|
-
left: '0',
|
|
182
|
-
right: '0',
|
|
183
|
-
bottom: '0',
|
|
184
|
-
height: '1px',
|
|
185
|
-
content: '""',
|
|
186
|
-
position: 'absolute',
|
|
187
|
-
transition: 'background-color 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms',
|
|
188
|
-
pointerEvents: 'none',
|
|
189
|
-
backgroundColor: 'rgba(0, 0, 0, 0.42)'
|
|
190
|
-
},
|
|
191
|
-
'&::after': {
|
|
192
|
-
left: '0',
|
|
193
|
-
right: '0',
|
|
194
|
-
bottom: '0',
|
|
195
|
-
height: '1px',
|
|
196
|
-
content: '""',
|
|
197
|
-
position: 'absolute',
|
|
198
|
-
transform: 'scaleX(0)',
|
|
199
|
-
transition: 'transform 200ms cubic-bezier(0.0, 0.0, 0.2, 1) 0ms, background-color 200ms linear',
|
|
200
|
-
backgroundColor: 'rgba(0, 0, 0, 0.42)'
|
|
201
|
-
},
|
|
202
|
-
'&:focus': {
|
|
203
|
-
'&::after': {
|
|
204
|
-
transform: 'scaleX(1)',
|
|
205
|
-
backgroundColor: _theme.primary,
|
|
206
|
-
height: '2px'
|
|
207
|
-
}
|
|
208
|
-
},
|
|
209
|
-
'&:hover': {
|
|
210
|
-
'&::after': {
|
|
211
|
-
transform: 'scaleX(1)',
|
|
212
|
-
backgroundColor: theme.palette.common.black,
|
|
213
|
-
height: '2px'
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
},
|
|
217
|
-
disabledUnderline: {
|
|
218
|
-
'&::before': {
|
|
219
|
-
display: 'none'
|
|
220
|
-
},
|
|
221
|
-
'&::after': {
|
|
222
|
-
display: 'none'
|
|
223
|
-
}
|
|
224
|
-
},
|
|
225
|
-
disabledScrollbar: {
|
|
226
|
-
'&::-webkit-scrollbar': {
|
|
227
|
-
display: 'none'
|
|
228
|
-
},
|
|
229
|
-
scrollbarWidth: 'none',
|
|
230
|
-
'-ms-overflow-style': 'none'
|
|
231
|
-
},
|
|
232
|
-
readOnly: {
|
|
233
|
-
'&::before': {
|
|
234
|
-
background: 'transparent',
|
|
235
|
-
backgroundSize: '5px 1px',
|
|
236
|
-
backgroundImage: 'linear-gradient(to right, rgba(0, 0, 0, 0.42) 33%, transparent 0%)',
|
|
237
|
-
backgroundRepeat: 'repeat-x',
|
|
238
|
-
backgroundPosition: 'left top'
|
|
239
|
-
},
|
|
240
|
-
'&::after': {
|
|
241
|
-
left: '0',
|
|
242
|
-
right: '0',
|
|
243
|
-
bottom: '0',
|
|
244
|
-
height: '1px',
|
|
245
|
-
content: '""',
|
|
246
|
-
position: 'absolute',
|
|
247
|
-
transform: 'scaleX(0)',
|
|
248
|
-
transition: 'transform 200ms cubic-bezier(0.0, 0.0, 0.2, 1) 0ms, background-color 0ms linear',
|
|
249
|
-
backgroundColor: 'rgba(0, 0, 0, 0)'
|
|
250
|
-
},
|
|
251
|
-
'&:hover': {
|
|
252
|
-
'&::after': {
|
|
253
|
-
transform: 'scaleX(0)',
|
|
254
|
-
backgroundColor: theme.palette.common.black,
|
|
255
|
-
height: '2px'
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
|
-
},
|
|
259
|
-
editorInFocus: {
|
|
260
|
-
'&::after': {
|
|
261
|
-
transform: 'scaleX(1)',
|
|
262
|
-
backgroundColor: _theme.primary,
|
|
263
|
-
height: '2px'
|
|
264
|
-
},
|
|
265
|
-
'&:hover': {
|
|
266
|
-
'&::after': {
|
|
267
|
-
backgroundColor: _theme.primary
|
|
268
|
-
}
|
|
269
|
-
}
|
|
270
|
-
},
|
|
271
|
-
error: {
|
|
272
|
-
border: "2px solid ".concat(theme.palette.error.main, " !important")
|
|
273
|
-
},
|
|
274
|
-
noBorder: {
|
|
275
|
-
border: 'none'
|
|
276
|
-
},
|
|
277
|
-
noPadding: {
|
|
278
|
-
padding: 0
|
|
279
|
-
}
|
|
280
|
-
};
|
|
281
|
-
};
|
|
282
|
-
|
|
283
|
-
var _default = (0, _styles.withStyles)(style)(EditorAndToolbar);
|
|
284
|
-
|
|
285
|
-
exports["default"] = _default;
|
|
286
|
-
//# sourceMappingURL=editor-and-toolbar.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/plugins/toolbar/editor-and-toolbar.jsx"],"names":["log","EditorAndToolbar","props","classes","children","value","plugins","onChange","getFocusedValue","onDone","focusedNode","autoWidth","readOnly","disableScrollbar","disableUnderline","pluginProps","toolbarOpts","onDataChange","toolbarRef","doneButtonRef","focusToolbar","onToolbarFocus","onToolbarBlur","inFocus","isFocused","undefined","holderNames","editorHolder","editorInFocus","disabledUnderline","disabledScrollbar","clonedChildren","React","cloneElement","ref","el","editorRef","noBorder","error","root","noPadding","Component","PropTypes","oneOfType","arrayOf","node","isRequired","SlatePropTypes","array","func","bool","object","shape","position","oneOf","alwaysVisible","string","any","style","theme","padding","border","borderRadius","cursor","wordBreak","overflow","maxHeight","overflowY","color","text","backgroundColor","background","left","right","bottom","height","content","transition","pointerEvents","transform","primary","palette","common","black","display","scrollbarWidth","backgroundSize","backgroundImage","backgroundRepeat","backgroundPosition","main"],"mappings":"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","sourcesContent":["import React from 'react';\nimport Toolbar from './toolbar';\nimport classNames from 'classnames';\nimport debug from 'debug';\nimport { primary } from '../../theme';\nimport { withStyles } from '@material-ui/core/styles';\nimport PropTypes from 'prop-types';\nimport SlatePropTypes from 'slate-prop-types';\nimport { color } from '../../../../render-ui/src/index';\n\nconst log = debug('@pie-lib:editable-html:plugins:toolbar:editor-and-toolbar');\n\nexport class EditorAndToolbar extends React.Component {\n static propTypes = {\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\n value: SlatePropTypes.value.isRequired,\n plugins: PropTypes.array.isRequired,\n onChange: PropTypes.func.isRequired,\n getFocusedValue: PropTypes.func.isRequired,\n onDone: PropTypes.func.isRequired,\n onDataChange: PropTypes.func,\n toolbarRef: PropTypes.func,\n focusedNode: SlatePropTypes.node,\n readOnly: PropTypes.bool,\n disableScrollbar: PropTypes.bool,\n disableUnderline: PropTypes.bool,\n autoWidth: PropTypes.bool,\n classes: PropTypes.object.isRequired,\n pluginProps: PropTypes.object,\n toolbarOpts: PropTypes.shape({\n position: PropTypes.oneOf(['bottom', 'top']),\n alwaysVisible: PropTypes.bool,\n error: PropTypes.string,\n noBorder: PropTypes.any,\n noPadding: PropTypes.any,\n }),\n focusToolbar: PropTypes.bool.isRequired,\n onToolbarFocus: PropTypes.func.isRequired,\n onToolbarBlur: PropTypes.func.isRequired,\n doneButtonRef: PropTypes.func,\n };\n\n render() {\n const {\n classes,\n children,\n value,\n plugins,\n onChange,\n getFocusedValue,\n onDone,\n focusedNode,\n autoWidth,\n readOnly,\n disableScrollbar,\n disableUnderline,\n pluginProps,\n toolbarOpts,\n onDataChange,\n toolbarRef,\n doneButtonRef,\n focusToolbar,\n onToolbarFocus,\n onToolbarBlur,\n } = this.props;\n\n let inFocus = value.isFocused || (focusedNode !== null && focusedNode !== undefined) || focusToolbar;\n\n const holderNames = classNames(classes.editorHolder, {\n [classes.editorInFocus]: inFocus,\n [classes.readOnly]: readOnly,\n [classes.disabledUnderline]: disableUnderline,\n [classes.disabledScrollbar]: disableScrollbar,\n });\n\n let clonedChildren = children;\n\n if (typeof children !== 'string') {\n clonedChildren = React.cloneElement(children, {\n ref: (el) => (this.editorRef = el),\n });\n }\n\n log('[render] inFocus: ', inFocus, 'value.isFocused:', value.isFocused, 'focused node: ', focusedNode);\n\n return (\n <div\n className={classNames(\n {\n [classes.noBorder]: toolbarOpts && toolbarOpts.noBorder,\n [classes.error]: toolbarOpts && toolbarOpts.error,\n },\n classes.root,\n )}\n >\n <div className={holderNames}>\n <div\n className={classNames(\n {\n [classes.noPadding]: toolbarOpts && toolbarOpts.noPadding,\n },\n classes.children,\n )}\n >\n {clonedChildren}\n </div>\n </div>\n\n <Toolbar\n autoWidth={autoWidth}\n plugins={plugins}\n focusedNode={focusedNode}\n value={value}\n isFocused={inFocus}\n onBlur={onToolbarBlur}\n onFocus={onToolbarFocus}\n onChange={onChange}\n getFocusedValue={getFocusedValue}\n onDone={onDone}\n onDataChange={onDataChange}\n toolbarRef={toolbarRef}\n doneButtonRef={doneButtonRef}\n pluginProps={pluginProps}\n toolbarOpts={toolbarOpts}\n />\n </div>\n );\n }\n}\n\nconst style = (theme) => ({\n root: {\n position: 'relative',\n padding: '0px',\n border: '1px solid #ccc',\n borderRadius: '4px',\n cursor: 'text',\n '& [data-slate-editor=\"true\"]': {\n wordBreak: 'break-word',\n overflow: 'visible',\n maxHeight: '500px',\n // needed in order to be able to put the focus before a void element when it is the first one in the editor\n padding: '5px',\n },\n },\n children: {\n padding: '10px 16px',\n },\n editorHolder: {\n position: 'relative',\n padding: '0px',\n overflowY: 'auto',\n color: color.text(),\n backgroundColor: color.background(),\n '&::before': {\n left: '0',\n right: '0',\n bottom: '0',\n height: '1px',\n content: '\"\"',\n position: 'absolute',\n transition: 'background-color 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms',\n pointerEvents: 'none',\n backgroundColor: 'rgba(0, 0, 0, 0.42)',\n },\n '&::after': {\n left: '0',\n right: '0',\n bottom: '0',\n height: '1px',\n content: '\"\"',\n position: 'absolute',\n transform: 'scaleX(0)',\n transition: 'transform 200ms cubic-bezier(0.0, 0.0, 0.2, 1) 0ms, background-color 200ms linear',\n backgroundColor: 'rgba(0, 0, 0, 0.42)',\n },\n '&:focus': {\n '&::after': {\n transform: 'scaleX(1)',\n backgroundColor: primary,\n height: '2px',\n },\n },\n '&:hover': {\n '&::after': {\n transform: 'scaleX(1)',\n backgroundColor: theme.palette.common.black,\n height: '2px',\n },\n },\n },\n disabledUnderline: {\n '&::before': {\n display: 'none',\n },\n '&::after': {\n display: 'none',\n },\n },\n disabledScrollbar: {\n '&::-webkit-scrollbar': {\n display: 'none',\n },\n scrollbarWidth: 'none',\n '-ms-overflow-style': 'none',\n },\n readOnly: {\n '&::before': {\n background: 'transparent',\n backgroundSize: '5px 1px',\n backgroundImage: 'linear-gradient(to right, rgba(0, 0, 0, 0.42) 33%, transparent 0%)',\n backgroundRepeat: 'repeat-x',\n backgroundPosition: 'left top',\n },\n '&::after': {\n left: '0',\n right: '0',\n bottom: '0',\n height: '1px',\n content: '\"\"',\n position: 'absolute',\n transform: 'scaleX(0)',\n transition: 'transform 200ms cubic-bezier(0.0, 0.0, 0.2, 1) 0ms, background-color 0ms linear',\n backgroundColor: 'rgba(0, 0, 0, 0)',\n },\n '&:hover': {\n '&::after': {\n transform: 'scaleX(0)',\n backgroundColor: theme.palette.common.black,\n height: '2px',\n },\n },\n },\n editorInFocus: {\n '&::after': {\n transform: 'scaleX(1)',\n backgroundColor: primary,\n height: '2px',\n },\n '&:hover': {\n '&::after': {\n backgroundColor: primary,\n },\n },\n },\n error: {\n border: `2px solid ${theme.palette.error.main} !important`,\n },\n noBorder: {\n border: 'none',\n },\n noPadding: {\n padding: 0,\n },\n});\n\nexport default withStyles(style)(EditorAndToolbar);\n"],"file":"editor-and-toolbar.js"}
|