@pie-lib/editable-html 12.1.0-next.0 → 12.1.0-next.2

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 (121) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/package.json +7 -7
  3. package/lib/__tests__/editor-utils.test.js +0 -164
  4. package/lib/__tests__/serialization.test.js +0 -242
  5. package/lib/__tests__/utils.js +0 -79
  6. package/lib/block-tags.js +0 -24
  7. package/lib/block-tags.js.map +0 -1
  8. package/lib/constants.js +0 -11
  9. package/lib/constants.js.map +0 -1
  10. package/lib/editor.js +0 -1224
  11. package/lib/editor.js.map +0 -1
  12. package/lib/index.js +0 -208
  13. package/lib/index.js.map +0 -1
  14. package/lib/parse-html.js +0 -16
  15. package/lib/parse-html.js.map +0 -1
  16. package/lib/plugins/characters/custom-popper.js +0 -57
  17. package/lib/plugins/characters/custom-popper.js.map +0 -1
  18. package/lib/plugins/characters/index.js +0 -265
  19. package/lib/plugins/characters/index.js.map +0 -1
  20. package/lib/plugins/characters/utils.js +0 -378
  21. package/lib/plugins/characters/utils.js.map +0 -1
  22. package/lib/plugins/css/icons/index.js +0 -25
  23. package/lib/plugins/css/icons/index.js.map +0 -1
  24. package/lib/plugins/css/index.js +0 -338
  25. package/lib/plugins/css/index.js.map +0 -1
  26. package/lib/plugins/customPlugin/index.js +0 -98
  27. package/lib/plugins/customPlugin/index.js.map +0 -1
  28. package/lib/plugins/html/icons/index.js +0 -30
  29. package/lib/plugins/html/icons/index.js.map +0 -1
  30. package/lib/plugins/html/index.js +0 -71
  31. package/lib/plugins/html/index.js.map +0 -1
  32. package/lib/plugins/image/__tests__/component.test.js +0 -96
  33. package/lib/plugins/image/__tests__/image-toolbar-logic.test.js +0 -131
  34. package/lib/plugins/image/__tests__/image-toolbar.test.js +0 -22
  35. package/lib/plugins/image/__tests__/index.test.js +0 -90
  36. package/lib/plugins/image/__tests__/insert-image-handler.test.js +0 -112
  37. package/lib/plugins/image/__tests__/mock-change.js +0 -22
  38. package/lib/plugins/image/alt-dialog.js +0 -100
  39. package/lib/plugins/image/alt-dialog.js.map +0 -1
  40. package/lib/plugins/image/component.js +0 -343
  41. package/lib/plugins/image/component.js.map +0 -1
  42. package/lib/plugins/image/image-toolbar.js +0 -137
  43. package/lib/plugins/image/image-toolbar.js.map +0 -1
  44. package/lib/plugins/image/index.js +0 -223
  45. package/lib/plugins/image/index.js.map +0 -1
  46. package/lib/plugins/image/insert-image-handler.js +0 -140
  47. package/lib/plugins/image/insert-image-handler.js.map +0 -1
  48. package/lib/plugins/index.js +0 -342
  49. package/lib/plugins/index.js.map +0 -1
  50. package/lib/plugins/list/__tests__/index.test.js +0 -64
  51. package/lib/plugins/list/index.js +0 -288
  52. package/lib/plugins/list/index.js.map +0 -1
  53. package/lib/plugins/math/__tests__/index.test.js +0 -284
  54. package/lib/plugins/math/index.js +0 -402
  55. package/lib/plugins/math/index.js.map +0 -1
  56. package/lib/plugins/media/__tests__/index.test.js +0 -69
  57. package/lib/plugins/media/index.js +0 -330
  58. package/lib/plugins/media/index.js.map +0 -1
  59. package/lib/plugins/media/media-dialog.js +0 -594
  60. package/lib/plugins/media/media-dialog.js.map +0 -1
  61. package/lib/plugins/media/media-toolbar.js +0 -76
  62. package/lib/plugins/media/media-toolbar.js.map +0 -1
  63. package/lib/plugins/media/media-wrapper.js +0 -64
  64. package/lib/plugins/media/media-wrapper.js.map +0 -1
  65. package/lib/plugins/rendering/index.js +0 -36
  66. package/lib/plugins/rendering/index.js.map +0 -1
  67. package/lib/plugins/respArea/drag-in-the-blank/choice.js +0 -271
  68. package/lib/plugins/respArea/drag-in-the-blank/choice.js.map +0 -1
  69. package/lib/plugins/respArea/drag-in-the-blank/index.js +0 -55
  70. package/lib/plugins/respArea/drag-in-the-blank/index.js.map +0 -1
  71. package/lib/plugins/respArea/drag-in-the-blank/utils.js +0 -38
  72. package/lib/plugins/respArea/drag-in-the-blank/utils.js.map +0 -1
  73. package/lib/plugins/respArea/explicit-constructed-response/index.js +0 -50
  74. package/lib/plugins/respArea/explicit-constructed-response/index.js.map +0 -1
  75. package/lib/plugins/respArea/icons/index.js +0 -72
  76. package/lib/plugins/respArea/icons/index.js.map +0 -1
  77. package/lib/plugins/respArea/index.js +0 -287
  78. package/lib/plugins/respArea/index.js.map +0 -1
  79. package/lib/plugins/respArea/inline-dropdown/index.js +0 -67
  80. package/lib/plugins/respArea/inline-dropdown/index.js.map +0 -1
  81. package/lib/plugins/respArea/math-templated/index.js +0 -112
  82. package/lib/plugins/respArea/math-templated/index.js.map +0 -1
  83. package/lib/plugins/respArea/utils.js +0 -95
  84. package/lib/plugins/respArea/utils.js.map +0 -1
  85. package/lib/plugins/table/CustomTablePlugin.js +0 -116
  86. package/lib/plugins/table/CustomTablePlugin.js.map +0 -1
  87. package/lib/plugins/table/__tests__/index.test.js +0 -416
  88. package/lib/plugins/table/__tests__/table-toolbar.test.js +0 -81
  89. package/lib/plugins/table/icons/index.js +0 -55
  90. package/lib/plugins/table/icons/index.js.map +0 -1
  91. package/lib/plugins/table/index.js +0 -413
  92. package/lib/plugins/table/index.js.map +0 -1
  93. package/lib/plugins/table/table-toolbar.js +0 -138
  94. package/lib/plugins/table/table-toolbar.js.map +0 -1
  95. package/lib/plugins/textAlign/icons/index.js +0 -187
  96. package/lib/plugins/textAlign/icons/index.js.map +0 -1
  97. package/lib/plugins/textAlign/index.js +0 -26
  98. package/lib/plugins/textAlign/index.js.map +0 -1
  99. package/lib/plugins/toolbar/__tests__/default-toolbar.test.js +0 -154
  100. package/lib/plugins/toolbar/__tests__/editor-and-toolbar.test.js +0 -47
  101. package/lib/plugins/toolbar/__tests__/toolbar-buttons.test.js +0 -112
  102. package/lib/plugins/toolbar/__tests__/toolbar.test.js +0 -118
  103. package/lib/plugins/toolbar/default-toolbar.js +0 -180
  104. package/lib/plugins/toolbar/default-toolbar.js.map +0 -1
  105. package/lib/plugins/toolbar/done-button.js +0 -35
  106. package/lib/plugins/toolbar/done-button.js.map +0 -1
  107. package/lib/plugins/toolbar/editor-and-toolbar.js +0 -258
  108. package/lib/plugins/toolbar/editor-and-toolbar.js.map +0 -1
  109. package/lib/plugins/toolbar/index.js +0 -29
  110. package/lib/plugins/toolbar/index.js.map +0 -1
  111. package/lib/plugins/toolbar/toolbar-buttons.js +0 -145
  112. package/lib/plugins/toolbar/toolbar-buttons.js.map +0 -1
  113. package/lib/plugins/toolbar/toolbar.js +0 -307
  114. package/lib/plugins/toolbar/toolbar.js.map +0 -1
  115. package/lib/plugins/utils.js +0 -42
  116. package/lib/plugins/utils.js.map +0 -1
  117. package/lib/serialization.js +0 -571
  118. package/lib/serialization.js.map +0 -1
  119. package/lib/shared/alert-dialog.js +0 -68
  120. package/lib/theme.js +0 -8
  121. package/lib/theme.js.map +0 -1
@@ -1,307 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports["default"] = exports.Toolbar = void 0;
8
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
9
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
11
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
12
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
13
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
14
- var _react = _interopRequireDefault(require("react"));
15
- var _slate = require("slate");
16
- var _Delete = _interopRequireDefault(require("@mui/icons-material/Delete"));
17
- var _IconButton = _interopRequireDefault(require("@mui/material/IconButton"));
18
- var _propTypes = _interopRequireDefault(require("prop-types"));
19
- var _debug = _interopRequireDefault(require("debug"));
20
- var _slatePropTypes = _interopRequireDefault(require("slate-prop-types"));
21
- var _debounce = _interopRequireDefault(require("lodash/debounce"));
22
- var _doneButton = require("./done-button");
23
- var _utils = require("../utils");
24
- var _styles = require("@mui/material/styles");
25
- var _defaultToolbar = _interopRequireDefault(require("./default-toolbar"));
26
- var _characters = require("../characters");
27
- var _constants = require("../../constants");
28
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
29
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
30
- function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
31
- function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
32
- var log = (0, _debug["default"])('@pie-lib:editable-html:plugins:toolbar');
33
- var StyledToolbar = (0, _styles.styled)('div', {
34
- shouldForwardProp: function shouldForwardProp(prop) {
35
- return !['hasDoneButton', 'position', 'alignment', 'focused', 'autoWidth', 'hidden'].includes(prop);
36
- }
37
- })(function (_ref) {
38
- var hasDoneButton = _ref.hasDoneButton,
39
- position = _ref.position,
40
- alignment = _ref.alignment,
41
- focused = _ref.focused,
42
- autoWidth = _ref.autoWidth,
43
- hidden = _ref.hidden;
44
- return {
45
- position: 'absolute',
46
- zIndex: 10,
47
- cursor: 'pointer',
48
- justifyContent: 'space-between',
49
- background: 'var(--editable-html-toolbar-bg, #efefef)',
50
- minWidth: hasDoneButton ? '280px' : '265px',
51
- margin: '5px 0 0 0',
52
- padding: '2px',
53
- boxShadow: '0px 1px 5px 0px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 3px 1px -2px rgba(0, 0, 0, 0.12)',
54
- boxSizing: 'border-box',
55
- display: 'flex',
56
- opacity: focused ? 1 : 0,
57
- pointerEvents: focused ? 'auto' : 'none',
58
- top: position === 'top' ? '-45px' : 'auto',
59
- right: alignment === 'right' ? 0 : 'auto',
60
- width: autoWidth ? 'auto' : '100%',
61
- visibility: hidden ? 'hidden' : 'visible'
62
- };
63
- });
64
- var SharedContainer = (0, _styles.styled)('div')({
65
- display: 'flex'
66
- });
67
- var StyledIconButton = (0, _styles.styled)(_IconButton["default"])({
68
- width: '28px',
69
- height: '28px',
70
- padding: '4px',
71
- verticalAlign: 'top'
72
- });
73
- var getCustomToolbar = function getCustomToolbar(plugin, node, value, handleDone, getFocusedValue, onDataChange) {
74
- if (!plugin) {
75
- return;
76
- }
77
- if (!plugin.toolbar) {
78
- return;
79
- }
80
- if (plugin.toolbar.CustomToolbarComp) {
81
- /**
82
- * Using a pre-defined Component should be preferred
83
- * as the rendering of it (and it's children) can be optimized by React.
84
- * If you keep re-defining the comp with an inline function
85
- * then react will have to re-render.
86
- */
87
- return plugin.toolbar.CustomToolbarComp;
88
- } else if (typeof plugin.toolbar.customToolbar === 'function') {
89
- log('deprecated - use CustomToolbarComp');
90
- return plugin.toolbar.customToolbar(node, value, handleDone, getFocusedValue, onDataChange);
91
- }
92
- };
93
- var Toolbar = exports.Toolbar = /*#__PURE__*/function (_React$Component) {
94
- function Toolbar(props) {
95
- var _this;
96
- (0, _classCallCheck2["default"])(this, Toolbar);
97
- _this = _callSuper(this, Toolbar, [props]);
98
- (0, _defineProperty2["default"])(_this, "hasMark", function (type) {
99
- var value = _this.props.value;
100
- return value.marks.some(function (mark) {
101
- return mark.type == type;
102
- });
103
- });
104
- (0, _defineProperty2["default"])(_this, "hasBlock", function (type) {
105
- var value = _this.props.value;
106
- return value.blocks.some(function (node) {
107
- return node.type == type;
108
- });
109
- });
110
- (0, _defineProperty2["default"])(_this, "onToggle", function (plugin) {
111
- var _this$props = _this.props,
112
- value = _this$props.value,
113
- onChange = _this$props.onChange;
114
- if (!plugin.onToggle) return;
115
- var change = plugin.onToggle(value.change());
116
- onChange(change);
117
- });
118
- (0, _defineProperty2["default"])(_this, "onClick", function (e) {
119
- log('[onClick]');
120
- e.preventDefault();
121
- });
122
- (0, _defineProperty2["default"])(_this, "onButtonClick", function (fn) {
123
- return function (e) {
124
- e.preventDefault();
125
- fn();
126
- };
127
- });
128
- (0, _defineProperty2["default"])(_this, "onToolbarDone", function (change, finishEditing) {
129
- log('[onToolbarDone] change: ', change, 'finishEditing: ', finishEditing);
130
- var _this$props2 = _this.props,
131
- onChange = _this$props2.onChange,
132
- onDone = _this$props2.onDone;
133
-
134
- // use handler only if this is an actual Slate Change
135
- if (change instanceof _slate.Change) {
136
- onChange(change, function () {
137
- if (finishEditing) {
138
- onDone();
139
- }
140
- });
141
- } else {
142
- if (finishEditing) {
143
- log('[onToolbarChange] call onDone');
144
- onDone();
145
- }
146
- }
147
- });
148
- (0, _defineProperty2["default"])(_this, "onDeleteClick", (0, _debounce["default"])(function (e, plugin, node, value, onChange) {
149
- return plugin.deleteNode(e, node, value, onChange);
150
- }, 500));
151
- (0, _defineProperty2["default"])(_this, "onDeleteMouseDown", function (e, plugin, node, value, onChange) {
152
- e.persist();
153
- _this.onDeleteClick(e, plugin, node, value, onChange);
154
- });
155
- _this.state = {
156
- change: null
157
- };
158
- return _this;
159
- }
160
- (0, _inherits2["default"])(Toolbar, _React$Component);
161
- return (0, _createClass2["default"])(Toolbar, [{
162
- key: "componentWillUnmount",
163
- value: function componentWillUnmount() {
164
- (0, _characters.removeDialogs)();
165
- }
166
- }, {
167
- key: "render",
168
- value: function render() {
169
- var _this2 = this;
170
- var _this$props3 = this.props,
171
- plugins = _this$props3.plugins,
172
- pluginProps = _this$props3.pluginProps,
173
- toolbarOpts = _this$props3.toolbarOpts,
174
- value = _this$props3.value,
175
- autoWidth = _this$props3.autoWidth,
176
- onChange = _this$props3.onChange,
177
- getFocusedValue = _this$props3.getFocusedValue,
178
- isFocused = _this$props3.isFocused,
179
- onDone = _this$props3.onDone,
180
- toolbarRef = _this$props3.toolbarRef,
181
- doneButtonRef = _this$props3.doneButtonRef,
182
- onBlur = _this$props3.onBlur,
183
- onFocus = _this$props3.onFocus;
184
- var node = (0, _utils.findSingleNode)(value);
185
- var parentNode = (0, _utils.findParentNode)(value, node);
186
- log(' --------------> [render] node: ', node);
187
- log('[render] node: ', node);
188
- var plugin = plugins.find(function (p) {
189
- if (!node) {
190
- return;
191
- }
192
- if (p.toolbar) {
193
- return p.toolbar.supports && p.toolbar.supports(node, value);
194
- }
195
- });
196
- var parentPlugin = plugins.find(function (p) {
197
- if (!parentNode) {
198
- return;
199
- }
200
- if (p.toolbar) {
201
- return p.toolbar.supports && p.toolbar.supports(parentNode, value);
202
- }
203
- });
204
- log('[render] plugin: ', plugin);
205
- var handleDone = function handleDone(change, done) {
206
- var handler = onDone;
207
- if (plugin && plugin.toolbar && plugin.toolbar.customToolbar) {
208
- handler = _this2.onToolbarDone;
209
- }
210
- handler(change, done);
211
- if (parentPlugin && parentPlugin.handleDone) {
212
- parentPlugin.handleDone(value, node, plugin, onChange);
213
- }
214
- };
215
- var handleDataChange = function handleDataChange(key, data) {
216
- _this2.props.onDataChange(key, data);
217
- };
218
- var CustomToolbar = getCustomToolbar(plugin, node, value, handleDone, getFocusedValue, this.props.onDataChange);
219
- var filteredPlugins = plugin && plugin.filterPlugins ? plugin.filterPlugins(node, plugins) : plugins;
220
- log('[render] CustomToolbar: ', CustomToolbar);
221
- var parentExtraStyles = parentPlugin && parentPlugin.pluginStyles ? parentPlugin.pluginStyles(node, parentNode, plugin) : {};
222
- var pluginExtraStyles = plugin && plugin.pluginStyles ? plugin.pluginStyles(node, parentNode, plugin) : {};
223
- var extraStyles = _objectSpread(_objectSpread({}, pluginExtraStyles), parentExtraStyles);
224
- var deletable = node && plugin && plugin.deleteNode;
225
- var customToolbarShowDone = node && plugin && plugin.toolbar && plugin.toolbar.showDone && !toolbarOpts.alwaysVisible;
226
-
227
- // If there is a toolbarOpts we check if the showDone is not equal to false
228
- var defaultToolbarShowDone = !toolbarOpts || toolbarOpts.showDone !== false;
229
- var hasDoneButton = defaultToolbarShowDone || customToolbarShowDone;
230
- var customStyles = toolbarOpts.minWidth !== undefined ? {
231
- minWidth: toolbarOpts.minWidth
232
- } : {};
233
- return /*#__PURE__*/_react["default"].createElement(StyledToolbar, {
234
- className: _constants.PIE_TOOLBAR__CLASS,
235
- hasDoneButton: hasDoneButton,
236
- position: toolbarOpts.position,
237
- alignment: toolbarOpts.alignment,
238
- focused: toolbarOpts.alwaysVisible || isFocused,
239
- autoWidth: autoWidth,
240
- hidden: toolbarOpts.isHidden === true,
241
- style: _objectSpread(_objectSpread({}, extraStyles), customStyles),
242
- onClick: this.onClick,
243
- ref: toolbarRef
244
- }, CustomToolbar ? /*#__PURE__*/_react["default"].createElement(CustomToolbar, {
245
- node: node,
246
- value: value,
247
- getFocusedValue: getFocusedValue,
248
- onToolbarDone: this.onToolbarDone,
249
- onDataChange: handleDataChange,
250
- pluginProps: pluginProps
251
- }) : /*#__PURE__*/_react["default"].createElement(_defaultToolbar["default"], {
252
- plugins: filteredPlugins,
253
- pluginProps: pluginProps,
254
- value: value,
255
- onChange: onChange,
256
- getFocusedValue: getFocusedValue,
257
- showDone: defaultToolbarShowDone,
258
- onDone: handleDone,
259
- deletable: deletable,
260
- isHtmlMode: toolbarOpts.isHtmlMode,
261
- onFocus: onFocus,
262
- doneButtonRef: doneButtonRef,
263
- onBlur: onBlur
264
- }), /*#__PURE__*/_react["default"].createElement(SharedContainer, null, deletable && /*#__PURE__*/_react["default"].createElement(StyledIconButton, {
265
- "aria-label": "Delete",
266
- onMouseDown: function onMouseDown(e) {
267
- return _this2.onDeleteMouseDown(e, plugin, node, value, onChange);
268
- },
269
- size: "large"
270
- }, /*#__PURE__*/_react["default"].createElement(_Delete["default"], null)), customToolbarShowDone && /*#__PURE__*/_react["default"].createElement(_doneButton.DoneButton, {
271
- doneButtonRef: doneButtonRef,
272
- onClick: handleDone
273
- })));
274
- }
275
- }]);
276
- }(_react["default"].Component);
277
- (0, _defineProperty2["default"])(Toolbar, "propTypes", {
278
- zIndex: _propTypes["default"].number,
279
- value: _slatePropTypes["default"].value.isRequired,
280
- plugins: _propTypes["default"].array,
281
- plugin: _propTypes["default"].object,
282
- onImageClick: _propTypes["default"].func,
283
- onDone: _propTypes["default"].func.isRequired,
284
- toolbarRef: _propTypes["default"].func.isRequired,
285
- classes: _propTypes["default"].object.isRequired,
286
- isFocused: _propTypes["default"].bool,
287
- autoWidth: _propTypes["default"].bool,
288
- onChange: _propTypes["default"].func.isRequired,
289
- getFocusedValue: _propTypes["default"].func.isRequired,
290
- pluginProps: _propTypes["default"].object,
291
- toolbarOpts: _propTypes["default"].shape({
292
- isHtmlMode: _propTypes["default"].bool,
293
- position: _propTypes["default"].oneOf(['bottom', 'top']),
294
- alignment: _propTypes["default"].oneOf(['left', 'right']),
295
- alwaysVisible: _propTypes["default"].bool,
296
- ref: _propTypes["default"].func,
297
- showDone: _propTypes["default"].bool,
298
- minWidth: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
299
- isHidden: _propTypes["default"].bool
300
- }),
301
- onDataChange: _propTypes["default"].func,
302
- doneButtonRef: _propTypes["default"].func,
303
- onBlur: _propTypes["default"].func,
304
- onFocus: _propTypes["default"].func
305
- });
306
- var _default = exports["default"] = Toolbar;
307
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9zbGF0ZSIsIl9EZWxldGUiLCJfSWNvbkJ1dHRvbiIsIl9wcm9wVHlwZXMiLCJfZGVidWciLCJfc2xhdGVQcm9wVHlwZXMiLCJfZGVib3VuY2UiLCJfZG9uZUJ1dHRvbiIsIl91dGlscyIsIl9zdHlsZXMiLCJfZGVmYXVsdFRvb2xiYXIiLCJfY2hhcmFjdGVycyIsIl9jb25zdGFudHMiLCJvd25LZXlzIiwiZSIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsIl9jYWxsU3VwZXIiLCJfZ2V0UHJvdG90eXBlT2YyIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJjb25zdHJ1Y3RvciIsIkJvb2xlYW4iLCJwcm90b3R5cGUiLCJ2YWx1ZU9mIiwiY2FsbCIsImxvZyIsImRlYnVnIiwiU3R5bGVkVG9vbGJhciIsInN0eWxlZCIsInNob3VsZEZvcndhcmRQcm9wIiwicHJvcCIsImluY2x1ZGVzIiwiX3JlZiIsImhhc0RvbmVCdXR0b24iLCJwb3NpdGlvbiIsImFsaWdubWVudCIsImZvY3VzZWQiLCJhdXRvV2lkdGgiLCJoaWRkZW4iLCJ6SW5kZXgiLCJjdXJzb3IiLCJqdXN0aWZ5Q29udGVudCIsImJhY2tncm91bmQiLCJtaW5XaWR0aCIsIm1hcmdpbiIsInBhZGRpbmciLCJib3hTaGFkb3ciLCJib3hTaXppbmciLCJkaXNwbGF5Iiwib3BhY2l0eSIsInBvaW50ZXJFdmVudHMiLCJ0b3AiLCJyaWdodCIsIndpZHRoIiwidmlzaWJpbGl0eSIsIlNoYXJlZENvbnRhaW5lciIsIlN0eWxlZEljb25CdXR0b24iLCJJY29uQnV0dG9uIiwiaGVpZ2h0IiwidmVydGljYWxBbGlnbiIsImdldEN1c3RvbVRvb2xiYXIiLCJwbHVnaW4iLCJub2RlIiwidmFsdWUiLCJoYW5kbGVEb25lIiwiZ2V0Rm9jdXNlZFZhbHVlIiwib25EYXRhQ2hhbmdlIiwidG9vbGJhciIsIkN1c3RvbVRvb2xiYXJDb21wIiwiY3VzdG9tVG9vbGJhciIsIlRvb2xiYXIiLCJleHBvcnRzIiwiX1JlYWN0JENvbXBvbmVudCIsInByb3BzIiwiX3RoaXMiLCJfY2xhc3NDYWxsQ2hlY2syIiwidHlwZSIsIm1hcmtzIiwic29tZSIsIm1hcmsiLCJibG9ja3MiLCJfdGhpcyRwcm9wcyIsIm9uQ2hhbmdlIiwib25Ub2dnbGUiLCJjaGFuZ2UiLCJwcmV2ZW50RGVmYXVsdCIsImZuIiwiZmluaXNoRWRpdGluZyIsIl90aGlzJHByb3BzMiIsIm9uRG9uZSIsIkNoYW5nZSIsImRlYm91bmNlIiwiZGVsZXRlTm9kZSIsInBlcnNpc3QiLCJvbkRlbGV0ZUNsaWNrIiwic3RhdGUiLCJfaW5oZXJpdHMyIiwiX2NyZWF0ZUNsYXNzMiIsImtleSIsImNvbXBvbmVudFdpbGxVbm1vdW50IiwicmVtb3ZlQ2hhcmFjdGVyRGlhbG9ncyIsInJlbmRlciIsIl90aGlzMiIsIl90aGlzJHByb3BzMyIsInBsdWdpbnMiLCJwbHVnaW5Qcm9wcyIsInRvb2xiYXJPcHRzIiwiaXNGb2N1c2VkIiwidG9vbGJhclJlZiIsImRvbmVCdXR0b25SZWYiLCJvbkJsdXIiLCJvbkZvY3VzIiwiZmluZFNpbmdsZU5vZGUiLCJwYXJlbnROb2RlIiwiZmluZFBhcmVudE5vZGUiLCJmaW5kIiwicCIsInN1cHBvcnRzIiwicGFyZW50UGx1Z2luIiwiZG9uZSIsImhhbmRsZXIiLCJvblRvb2xiYXJEb25lIiwiaGFuZGxlRGF0YUNoYW5nZSIsImRhdGEiLCJDdXN0b21Ub29sYmFyIiwiZmlsdGVyZWRQbHVnaW5zIiwiZmlsdGVyUGx1Z2lucyIsInBhcmVudEV4dHJhU3R5bGVzIiwicGx1Z2luU3R5bGVzIiwicGx1Z2luRXh0cmFTdHlsZXMiLCJleHRyYVN0eWxlcyIsImRlbGV0YWJsZSIsImN1c3RvbVRvb2xiYXJTaG93RG9uZSIsInNob3dEb25lIiwiYWx3YXlzVmlzaWJsZSIsImRlZmF1bHRUb29sYmFyU2hvd0RvbmUiLCJjdXN0b21TdHlsZXMiLCJ1bmRlZmluZWQiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwiUElFX1RPT0xCQVJfX0NMQVNTIiwiaXNIaWRkZW4iLCJzdHlsZSIsIm9uQ2xpY2siLCJyZWYiLCJpc0h0bWxNb2RlIiwib25Nb3VzZURvd24iLCJvbkRlbGV0ZU1vdXNlRG93biIsInNpemUiLCJEb25lQnV0dG9uIiwiUmVhY3QiLCJDb21wb25lbnQiLCJQcm9wVHlwZXMiLCJudW1iZXIiLCJTbGF0ZVByb3BUeXBlcyIsImlzUmVxdWlyZWQiLCJhcnJheSIsIm9iamVjdCIsIm9uSW1hZ2VDbGljayIsImZ1bmMiLCJjbGFzc2VzIiwiYm9vbCIsInNoYXBlIiwib25lT2YiLCJvbmVPZlR5cGUiLCJzdHJpbmciLCJfZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wbHVnaW5zL3Rvb2xiYXIvdG9vbGJhci5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IENoYW5nZSB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCBEZWxldGUgZnJvbSAnQG11aS9pY29ucy1tYXRlcmlhbC9EZWxldGUnO1xuaW1wb3J0IEljb25CdXR0b24gZnJvbSAnQG11aS9tYXRlcmlhbC9JY29uQnV0dG9uJztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgZGVidWcgZnJvbSAnZGVidWcnO1xuaW1wb3J0IFNsYXRlUHJvcFR5cGVzIGZyb20gJ3NsYXRlLXByb3AtdHlwZXMnO1xuaW1wb3J0IGRlYm91bmNlIGZyb20gJ2xvZGFzaC9kZWJvdW5jZSc7XG5cbmltcG9ydCB7IERvbmVCdXR0b24gfSBmcm9tICcuL2RvbmUtYnV0dG9uJztcblxuaW1wb3J0IHsgZmluZFNpbmdsZU5vZGUsIGZpbmRQYXJlbnROb2RlIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgc3R5bGVkIH0gZnJvbSAnQG11aS9tYXRlcmlhbC9zdHlsZXMnO1xuaW1wb3J0IERlZmF1bHRUb29sYmFyIGZyb20gJy4vZGVmYXVsdC10b29sYmFyJztcbmltcG9ydCB7IHJlbW92ZURpYWxvZ3MgYXMgcmVtb3ZlQ2hhcmFjdGVyRGlhbG9ncyB9IGZyb20gJy4uL2NoYXJhY3RlcnMnO1xuaW1wb3J0IHsgUElFX1RPT0xCQVJfX0NMQVNTIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcblxuY29uc3QgbG9nID0gZGVidWcoJ0BwaWUtbGliOmVkaXRhYmxlLWh0bWw6cGx1Z2luczp0b29sYmFyJyk7XG5cbmNvbnN0IFN0eWxlZFRvb2xiYXIgPSBzdHlsZWQoJ2RpdicsIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IChwcm9wKSA9PiAhWydoYXNEb25lQnV0dG9uJywgJ3Bvc2l0aW9uJywgJ2FsaWdubWVudCcsICdmb2N1c2VkJywgJ2F1dG9XaWR0aCcsICdoaWRkZW4nXS5pbmNsdWRlcyhwcm9wKSxcbn0pKCh7IGhhc0RvbmVCdXR0b24sIHBvc2l0aW9uLCBhbGlnbm1lbnQsIGZvY3VzZWQsIGF1dG9XaWR0aCwgaGlkZGVuIH0pID0+ICh7XG4gIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICB6SW5kZXg6IDEwLFxuICBjdXJzb3I6ICdwb2ludGVyJyxcbiAganVzdGlmeUNvbnRlbnQ6ICdzcGFjZS1iZXR3ZWVuJyxcbiAgYmFja2dyb3VuZDogJ3ZhcigtLWVkaXRhYmxlLWh0bWwtdG9vbGJhci1iZywgI2VmZWZlZiknLFxuICBtaW5XaWR0aDogaGFzRG9uZUJ1dHRvbiA/ICcyODBweCcgOiAnMjY1cHgnLFxuICBtYXJnaW46ICc1cHggMCAwIDAnLFxuICBwYWRkaW5nOiAnMnB4JyxcbiAgYm94U2hhZG93OlxuICAgICcwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMTIpJyxcbiAgYm94U2l6aW5nOiAnYm9yZGVyLWJveCcsXG4gIGRpc3BsYXk6ICdmbGV4JyxcbiAgb3BhY2l0eTogZm9jdXNlZCA/IDEgOiAwLFxuICBwb2ludGVyRXZlbnRzOiBmb2N1c2VkID8gJ2F1dG8nIDogJ25vbmUnLFxuICB0b3A6IHBvc2l0aW9uID09PSAndG9wJyA/ICctNDVweCcgOiAnYXV0bycsXG4gIHJpZ2h0OiBhbGlnbm1lbnQgPT09ICdyaWdodCcgPyAwIDogJ2F1dG8nLFxuICB3aWR0aDogYXV0b1dpZHRoID8gJ2F1dG8nIDogJzEwMCUnLFxuICB2aXNpYmlsaXR5OiBoaWRkZW4gPyAnaGlkZGVuJyA6ICd2aXNpYmxlJyxcbn0pKTtcblxuY29uc3QgU2hhcmVkQ29udGFpbmVyID0gc3R5bGVkKCdkaXYnKSh7XG4gIGRpc3BsYXk6ICdmbGV4Jyxcbn0pO1xuXG5jb25zdCBTdHlsZWRJY29uQnV0dG9uID0gc3R5bGVkKEljb25CdXR0b24pKHtcbiAgd2lkdGg6ICcyOHB4JyxcbiAgaGVpZ2h0OiAnMjhweCcsXG4gIHBhZGRpbmc6ICc0cHgnLFxuICB2ZXJ0aWNhbEFsaWduOiAndG9wJyxcbn0pO1xuXG5jb25zdCBnZXRDdXN0b21Ub29sYmFyID0gKHBsdWdpbiwgbm9kZSwgdmFsdWUsIGhhbmRsZURvbmUsIGdldEZvY3VzZWRWYWx1ZSwgb25EYXRhQ2hhbmdlKSA9PiB7XG4gIGlmICghcGx1Z2luKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKCFwbHVnaW4udG9vbGJhcikge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmIChwbHVnaW4udG9vbGJhci5DdXN0b21Ub29sYmFyQ29tcCkge1xuICAgIC8qKlxuICAgICAqIFVzaW5nIGEgcHJlLWRlZmluZWQgQ29tcG9uZW50IHNob3VsZCBiZSBwcmVmZXJyZWRcbiAgICAgKiBhcyB0aGUgcmVuZGVyaW5nIG9mIGl0IChhbmQgaXQncyBjaGlsZHJlbikgY2FuIGJlIG9wdGltaXplZCBieSBSZWFjdC5cbiAgICAgKiBJZiB5b3Uga2VlcCByZS1kZWZpbmluZyB0aGUgY29tcCB3aXRoIGFuIGlubGluZSBmdW5jdGlvblxuICAgICAqIHRoZW4gcmVhY3Qgd2lsbCBoYXZlIHRvIHJlLXJlbmRlci5cbiAgICAgKi9cbiAgICByZXR1cm4gcGx1Z2luLnRvb2xiYXIuQ3VzdG9tVG9vbGJhckNvbXA7XG4gIH0gZWxzZSBpZiAodHlwZW9mIHBsdWdpbi50b29sYmFyLmN1c3RvbVRvb2xiYXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICBsb2coJ2RlcHJlY2F0ZWQgLSB1c2UgQ3VzdG9tVG9vbGJhckNvbXAnKTtcbiAgICByZXR1cm4gcGx1Z2luLnRvb2xiYXIuY3VzdG9tVG9vbGJhcihub2RlLCB2YWx1ZSwgaGFuZGxlRG9uZSwgZ2V0Rm9jdXNlZFZhbHVlLCBvbkRhdGFDaGFuZ2UpO1xuICB9XG59O1xuXG5leHBvcnQgY2xhc3MgVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgekluZGV4OiBQcm9wVHlwZXMubnVtYmVyLFxuICAgIHZhbHVlOiBTbGF0ZVByb3BUeXBlcy52YWx1ZS5pc1JlcXVpcmVkLFxuICAgIHBsdWdpbnM6IFByb3BUeXBlcy5hcnJheSxcbiAgICBwbHVnaW46IFByb3BUeXBlcy5vYmplY3QsXG4gICAgb25JbWFnZUNsaWNrOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBvbkRvbmU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdG9vbGJhclJlZjogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBjbGFzc2VzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgaXNGb2N1c2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBhdXRvV2lkdGg6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGdldEZvY3VzZWRWYWx1ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBwbHVnaW5Qcm9wczogUHJvcFR5cGVzLm9iamVjdCxcbiAgICB0b29sYmFyT3B0czogUHJvcFR5cGVzLnNoYXBlKHtcbiAgICAgIGlzSHRtbE1vZGU6IFByb3BUeXBlcy5ib29sLFxuICAgICAgcG9zaXRpb246IFByb3BUeXBlcy5vbmVPZihbJ2JvdHRvbScsICd0b3AnXSksXG4gICAgICBhbGlnbm1lbnQ6IFByb3BUeXBlcy5vbmVPZihbJ2xlZnQnLCAncmlnaHQnXSksXG4gICAgICBhbHdheXNWaXNpYmxlOiBQcm9wVHlwZXMuYm9vbCxcbiAgICAgIHJlZjogUHJvcFR5cGVzLmZ1bmMsXG4gICAgICBzaG93RG9uZTogUHJvcFR5cGVzLmJvb2wsXG4gICAgICBtaW5XaWR0aDogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLnN0cmluZywgUHJvcFR5cGVzLm51bWJlcl0pLFxuICAgICAgaXNIaWRkZW46IFByb3BUeXBlcy5ib29sLFxuICAgIH0pLFxuICAgIG9uRGF0YUNoYW5nZTogUHJvcFR5cGVzLmZ1bmMsXG4gICAgZG9uZUJ1dHRvblJlZjogUHJvcFR5cGVzLmZ1bmMsXG4gICAgb25CbHVyOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBvbkZvY3VzOiBQcm9wVHlwZXMuZnVuYyxcbiAgfTtcblxuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgY2hhbmdlOiBudWxsLFxuICAgIH07XG4gIH1cblxuICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICByZW1vdmVDaGFyYWN0ZXJEaWFsb2dzKCk7XG4gIH1cblxuICBoYXNNYXJrID0gKHR5cGUpID0+IHtcbiAgICBjb25zdCB7IHZhbHVlIH0gPSB0aGlzLnByb3BzO1xuICAgIHJldHVybiB2YWx1ZS5tYXJrcy5zb21lKChtYXJrKSA9PiBtYXJrLnR5cGUgPT0gdHlwZSk7XG4gIH07XG5cbiAgaGFzQmxvY2sgPSAodHlwZSkgPT4ge1xuICAgIGNvbnN0IHsgdmFsdWUgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIHZhbHVlLmJsb2Nrcy5zb21lKChub2RlKSA9PiBub2RlLnR5cGUgPT0gdHlwZSk7XG4gIH07XG5cbiAgb25Ub2dnbGUgPSAocGx1Z2luKSA9PiB7XG4gICAgY29uc3QgeyB2YWx1ZSwgb25DaGFuZ2UgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBpZiAoIXBsdWdpbi5vblRvZ2dsZSkgcmV0dXJuO1xuXG4gICAgY29uc3QgY2hhbmdlID0gcGx1Z2luLm9uVG9nZ2xlKHZhbHVlLmNoYW5nZSgpKTtcbiAgICBvbkNoYW5nZShjaGFuZ2UpO1xuICB9O1xuXG4gIG9uQ2xpY2sgPSAoZSkgPT4ge1xuICAgIGxvZygnW29uQ2xpY2tdJyk7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICB9O1xuXG4gIG9uQnV0dG9uQ2xpY2sgPSAoZm4pID0+IHtcbiAgICByZXR1cm4gKGUpID0+IHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGZuKCk7XG4gICAgfTtcbiAgfTtcblxuICBvblRvb2xiYXJEb25lID0gKGNoYW5nZSwgZmluaXNoRWRpdGluZykgPT4ge1xuICAgIGxvZygnW29uVG9vbGJhckRvbmVdIGNoYW5nZTogJywgY2hhbmdlLCAnZmluaXNoRWRpdGluZzogJywgZmluaXNoRWRpdGluZyk7XG4gICAgY29uc3QgeyBvbkNoYW5nZSwgb25Eb25lIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgLy8gdXNlIGhhbmRsZXIgb25seSBpZiB0aGlzIGlzIGFuIGFjdHVhbCBTbGF0ZSBDaGFuZ2VcbiAgICBpZiAoY2hhbmdlIGluc3RhbmNlb2YgQ2hhbmdlKSB7XG4gICAgICBvbkNoYW5nZShjaGFuZ2UsICgpID0+IHtcbiAgICAgICAgaWYgKGZpbmlzaEVkaXRpbmcpIHtcbiAgICAgICAgICBvbkRvbmUoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChmaW5pc2hFZGl0aW5nKSB7XG4gICAgICAgIGxvZygnW29uVG9vbGJhckNoYW5nZV0gY2FsbCBvbkRvbmUnKTtcbiAgICAgICAgb25Eb25lKCk7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIG9uRGVsZXRlQ2xpY2sgPSBkZWJvdW5jZSgoZSwgcGx1Z2luLCBub2RlLCB2YWx1ZSwgb25DaGFuZ2UpID0+IHBsdWdpbi5kZWxldGVOb2RlKGUsIG5vZGUsIHZhbHVlLCBvbkNoYW5nZSksIDUwMCk7XG5cbiAgb25EZWxldGVNb3VzZURvd24gPSAoZSwgcGx1Z2luLCBub2RlLCB2YWx1ZSwgb25DaGFuZ2UpID0+IHtcbiAgICBlLnBlcnNpc3QoKTtcbiAgICB0aGlzLm9uRGVsZXRlQ2xpY2soZSwgcGx1Z2luLCBub2RlLCB2YWx1ZSwgb25DaGFuZ2UpO1xuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICBwbHVnaW5zLFxuICAgICAgcGx1Z2luUHJvcHMsXG4gICAgICB0b29sYmFyT3B0cyxcbiAgICAgIHZhbHVlLFxuICAgICAgYXV0b1dpZHRoLFxuICAgICAgb25DaGFuZ2UsXG4gICAgICBnZXRGb2N1c2VkVmFsdWUsXG4gICAgICBpc0ZvY3VzZWQsXG4gICAgICBvbkRvbmUsXG4gICAgICB0b29sYmFyUmVmLFxuICAgICAgZG9uZUJ1dHRvblJlZixcbiAgICAgIG9uQmx1cixcbiAgICAgIG9uRm9jdXMsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBub2RlID0gZmluZFNpbmdsZU5vZGUodmFsdWUpO1xuICAgIGNvbnN0IHBhcmVudE5vZGUgPSBmaW5kUGFyZW50Tm9kZSh2YWx1ZSwgbm9kZSk7XG5cbiAgICBsb2coJyAtLS0tLS0tLS0tLS0tLT4gW3JlbmRlcl0gbm9kZTogJywgbm9kZSk7XG4gICAgbG9nKCdbcmVuZGVyXSBub2RlOiAnLCBub2RlKTtcblxuICAgIGNvbnN0IHBsdWdpbiA9IHBsdWdpbnMuZmluZCgocCkgPT4ge1xuICAgICAgaWYgKCFub2RlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKHAudG9vbGJhcikge1xuICAgICAgICByZXR1cm4gcC50b29sYmFyLnN1cHBvcnRzICYmIHAudG9vbGJhci5zdXBwb3J0cyhub2RlLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgcGFyZW50UGx1Z2luID0gcGx1Z2lucy5maW5kKChwKSA9PiB7XG4gICAgICBpZiAoIXBhcmVudE5vZGUpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAocC50b29sYmFyKSB7XG4gICAgICAgIHJldHVybiBwLnRvb2xiYXIuc3VwcG9ydHMgJiYgcC50b29sYmFyLnN1cHBvcnRzKHBhcmVudE5vZGUsIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGxvZygnW3JlbmRlcl0gcGx1Z2luOiAnLCBwbHVnaW4pO1xuXG4gICAgY29uc3QgaGFuZGxlRG9uZSA9IChjaGFuZ2UsIGRvbmUpID0+IHtcbiAgICAgIGxldCBoYW5kbGVyID0gb25Eb25lO1xuXG4gICAgICBpZiAocGx1Z2luICYmIHBsdWdpbi50b29sYmFyICYmIHBsdWdpbi50b29sYmFyLmN1c3RvbVRvb2xiYXIpIHtcbiAgICAgICAgaGFuZGxlciA9IHRoaXMub25Ub29sYmFyRG9uZTtcbiAgICAgIH1cblxuICAgICAgaGFuZGxlcihjaGFuZ2UsIGRvbmUpO1xuXG4gICAgICBpZiAocGFyZW50UGx1Z2luICYmIHBhcmVudFBsdWdpbi5oYW5kbGVEb25lKSB7XG4gICAgICAgIHBhcmVudFBsdWdpbi5oYW5kbGVEb25lKHZhbHVlLCBub2RlLCBwbHVnaW4sIG9uQ2hhbmdlKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlRGF0YUNoYW5nZSA9IChrZXksIGRhdGEpID0+IHtcbiAgICAgIHRoaXMucHJvcHMub25EYXRhQ2hhbmdlKGtleSwgZGF0YSk7XG4gICAgfTtcblxuICAgIGNvbnN0IEN1c3RvbVRvb2xiYXIgPSBnZXRDdXN0b21Ub29sYmFyKHBsdWdpbiwgbm9kZSwgdmFsdWUsIGhhbmRsZURvbmUsIGdldEZvY3VzZWRWYWx1ZSwgdGhpcy5wcm9wcy5vbkRhdGFDaGFuZ2UpO1xuXG4gICAgY29uc3QgZmlsdGVyZWRQbHVnaW5zID0gcGx1Z2luICYmIHBsdWdpbi5maWx0ZXJQbHVnaW5zID8gcGx1Z2luLmZpbHRlclBsdWdpbnMobm9kZSwgcGx1Z2lucykgOiBwbHVnaW5zO1xuXG4gICAgbG9nKCdbcmVuZGVyXSBDdXN0b21Ub29sYmFyOiAnLCBDdXN0b21Ub29sYmFyKTtcbiAgICBjb25zdCBwYXJlbnRFeHRyYVN0eWxlcyA9XG4gICAgICBwYXJlbnRQbHVnaW4gJiYgcGFyZW50UGx1Z2luLnBsdWdpblN0eWxlcyA/IHBhcmVudFBsdWdpbi5wbHVnaW5TdHlsZXMobm9kZSwgcGFyZW50Tm9kZSwgcGx1Z2luKSA6IHt9O1xuICAgIGNvbnN0IHBsdWdpbkV4dHJhU3R5bGVzID0gcGx1Z2luICYmIHBsdWdpbi5wbHVnaW5TdHlsZXMgPyBwbHVnaW4ucGx1Z2luU3R5bGVzKG5vZGUsIHBhcmVudE5vZGUsIHBsdWdpbikgOiB7fTtcbiAgICBjb25zdCBleHRyYVN0eWxlcyA9IHtcbiAgICAgIC4uLnBsdWdpbkV4dHJhU3R5bGVzLFxuICAgICAgLi4ucGFyZW50RXh0cmFTdHlsZXMsXG4gICAgfTtcblxuICAgIGNvbnN0IGRlbGV0YWJsZSA9IG5vZGUgJiYgcGx1Z2luICYmIHBsdWdpbi5kZWxldGVOb2RlO1xuICAgIGNvbnN0IGN1c3RvbVRvb2xiYXJTaG93RG9uZSA9XG4gICAgICBub2RlICYmIHBsdWdpbiAmJiBwbHVnaW4udG9vbGJhciAmJiBwbHVnaW4udG9vbGJhci5zaG93RG9uZSAmJiAhdG9vbGJhck9wdHMuYWx3YXlzVmlzaWJsZTtcblxuICAgIC8vIElmIHRoZXJlIGlzIGEgdG9vbGJhck9wdHMgd2UgY2hlY2sgaWYgdGhlIHNob3dEb25lIGlzIG5vdCBlcXVhbCB0byBmYWxzZVxuICAgIGNvbnN0IGRlZmF1bHRUb29sYmFyU2hvd0RvbmUgPSAhdG9vbGJhck9wdHMgfHwgdG9vbGJhck9wdHMuc2hvd0RvbmUgIT09IGZhbHNlO1xuXG4gICAgY29uc3QgaGFzRG9uZUJ1dHRvbiA9IGRlZmF1bHRUb29sYmFyU2hvd0RvbmUgfHwgY3VzdG9tVG9vbGJhclNob3dEb25lO1xuICAgIGNvbnN0IGN1c3RvbVN0eWxlcyA9IHRvb2xiYXJPcHRzLm1pbldpZHRoICE9PSB1bmRlZmluZWQgPyB7IG1pbldpZHRoOiB0b29sYmFyT3B0cy5taW5XaWR0aCB9IDoge307XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZFRvb2xiYXJcbiAgICAgICAgY2xhc3NOYW1lPXtQSUVfVE9PTEJBUl9fQ0xBU1N9XG4gICAgICAgIGhhc0RvbmVCdXR0b249e2hhc0RvbmVCdXR0b259XG4gICAgICAgIHBvc2l0aW9uPXt0b29sYmFyT3B0cy5wb3NpdGlvbn1cbiAgICAgICAgYWxpZ25tZW50PXt0b29sYmFyT3B0cy5hbGlnbm1lbnR9XG4gICAgICAgIGZvY3VzZWQ9e3Rvb2xiYXJPcHRzLmFsd2F5c1Zpc2libGUgfHwgaXNGb2N1c2VkfVxuICAgICAgICBhdXRvV2lkdGg9e2F1dG9XaWR0aH1cbiAgICAgICAgaGlkZGVuPXt0b29sYmFyT3B0cy5pc0hpZGRlbiA9PT0gdHJ1ZX1cbiAgICAgICAgc3R5bGU9e3sgLi4uZXh0cmFTdHlsZXMsIC4uLmN1c3RvbVN0eWxlcyB9fVxuICAgICAgICBvbkNsaWNrPXt0aGlzLm9uQ2xpY2t9XG4gICAgICAgIHJlZj17dG9vbGJhclJlZn1cbiAgICAgID5cbiAgICAgICAge0N1c3RvbVRvb2xiYXIgPyAoXG4gICAgICAgICAgPEN1c3RvbVRvb2xiYXJcbiAgICAgICAgICAgIG5vZGU9e25vZGV9XG4gICAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgICBnZXRGb2N1c2VkVmFsdWU9e2dldEZvY3VzZWRWYWx1ZX1cbiAgICAgICAgICAgIG9uVG9vbGJhckRvbmU9e3RoaXMub25Ub29sYmFyRG9uZX1cbiAgICAgICAgICAgIG9uRGF0YUNoYW5nZT17aGFuZGxlRGF0YUNoYW5nZX1cbiAgICAgICAgICAgIHBsdWdpblByb3BzPXtwbHVnaW5Qcm9wc31cbiAgICAgICAgICAvPlxuICAgICAgICApIDogKFxuICAgICAgICAgIDxEZWZhdWx0VG9vbGJhclxuICAgICAgICAgICAgcGx1Z2lucz17ZmlsdGVyZWRQbHVnaW5zfVxuICAgICAgICAgICAgcGx1Z2luUHJvcHM9e3BsdWdpblByb3BzfVxuICAgICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlfVxuICAgICAgICAgICAgZ2V0Rm9jdXNlZFZhbHVlPXtnZXRGb2N1c2VkVmFsdWV9XG4gICAgICAgICAgICBzaG93RG9uZT17ZGVmYXVsdFRvb2xiYXJTaG93RG9uZX1cbiAgICAgICAgICAgIG9uRG9uZT17aGFuZGxlRG9uZX1cbiAgICAgICAgICAgIGRlbGV0YWJsZT17ZGVsZXRhYmxlfVxuICAgICAgICAgICAgaXNIdG1sTW9kZT17dG9vbGJhck9wdHMuaXNIdG1sTW9kZX1cbiAgICAgICAgICAgIG9uRm9jdXM9e29uRm9jdXN9XG4gICAgICAgICAgICBkb25lQnV0dG9uUmVmPXtkb25lQnV0dG9uUmVmfVxuICAgICAgICAgICAgb25CbHVyPXtvbkJsdXJ9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgICAgPFNoYXJlZENvbnRhaW5lcj5cbiAgICAgICAgICB7ZGVsZXRhYmxlICYmIChcbiAgICAgICAgICAgIDxTdHlsZWRJY29uQnV0dG9uXG4gICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJEZWxldGVcIlxuICAgICAgICAgICAgICBvbk1vdXNlRG93bj17KGUpID0+IHRoaXMub25EZWxldGVNb3VzZURvd24oZSwgcGx1Z2luLCBub2RlLCB2YWx1ZSwgb25DaGFuZ2UpfVxuICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8RGVsZXRlIC8+XG4gICAgICAgICAgICA8L1N0eWxlZEljb25CdXR0b24+XG4gICAgICAgICAgKX1cbiAgICAgICAgICB7Y3VzdG9tVG9vbGJhclNob3dEb25lICYmIDxEb25lQnV0dG9uIGRvbmVCdXR0b25SZWY9e2RvbmVCdXR0b25SZWZ9IG9uQ2xpY2s9e2hhbmRsZURvbmV9IC8+fVxuICAgICAgICA8L1NoYXJlZENvbnRhaW5lcj5cbiAgICAgIDwvU3R5bGVkVG9vbGJhcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFRvb2xiYXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxNQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxPQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRyxXQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSSxVQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSyxNQUFBLEdBQUFOLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTSxlQUFBLEdBQUFQLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTyxTQUFBLEdBQUFSLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBUSxXQUFBLEdBQUFSLE9BQUE7QUFFQSxJQUFBUyxNQUFBLEdBQUFULE9BQUE7QUFDQSxJQUFBVSxPQUFBLEdBQUFWLE9BQUE7QUFDQSxJQUFBVyxlQUFBLEdBQUFaLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBWSxX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
@@ -1 +0,0 @@
1
- {"version":3,"file":"toolbar.js","names":["_react","_interopRequireDefault","require","_slate","_Delete","_IconButton","_propTypes","_debug","_slatePropTypes","_debounce","_doneButton","_utils","_styles","_defaultToolbar","_characters","_constants","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","_callSuper","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","Boolean","prototype","valueOf","call","log","debug","StyledToolbar","styled","shouldForwardProp","prop","includes","_ref","hasDoneButton","position","alignment","focused","autoWidth","hidden","zIndex","cursor","justifyContent","background","minWidth","margin","padding","boxShadow","boxSizing","display","opacity","pointerEvents","top","right","width","visibility","SharedContainer","StyledIconButton","IconButton","height","verticalAlign","getCustomToolbar","plugin","node","value","handleDone","getFocusedValue","onDataChange","toolbar","CustomToolbarComp","customToolbar","Toolbar","exports","_React$Component","props","_this","_classCallCheck2","type","marks","some","mark","blocks","_this$props","onChange","onToggle","change","preventDefault","fn","finishEditing","_this$props2","onDone","Change","debounce","deleteNode","persist","onDeleteClick","state","_inherits2","_createClass2","key","componentWillUnmount","removeCharacterDialogs","render","_this2","_this$props3","plugins","pluginProps","toolbarOpts","isFocused","toolbarRef","doneButtonRef","onBlur","onFocus","findSingleNode","parentNode","findParentNode","find","p","supports","parentPlugin","done","handler","onToolbarDone","handleDataChange","data","CustomToolbar","filteredPlugins","filterPlugins","parentExtraStyles","pluginStyles","pluginExtraStyles","extraStyles","deletable","customToolbarShowDone","showDone","alwaysVisible","defaultToolbarShowDone","customStyles","undefined","createElement","className","PIE_TOOLBAR__CLASS","isHidden","style","onClick","ref","isHtmlMode","onMouseDown","onDeleteMouseDown","size","DoneButton","React","Component","PropTypes","number","SlatePropTypes","isRequired","array","object","onImageClick","func","classes","bool","shape","oneOf","oneOfType","string","_default"],"sources":["../../../src/plugins/toolbar/toolbar.jsx"],"sourcesContent":["import React from 'react';\nimport { Change } from 'slate';\nimport Delete from '@mui/icons-material/Delete';\nimport IconButton from '@mui/material/IconButton';\nimport PropTypes from 'prop-types';\nimport debug from 'debug';\nimport SlatePropTypes from 'slate-prop-types';\nimport debounce from 'lodash/debounce';\n\nimport { DoneButton } from './done-button';\n\nimport { findSingleNode, findParentNode } from '../utils';\nimport { styled } from '@mui/material/styles';\nimport DefaultToolbar from './default-toolbar';\nimport { removeDialogs as removeCharacterDialogs } from '../characters';\nimport { PIE_TOOLBAR__CLASS } from '../../constants';\n\nconst log = debug('@pie-lib:editable-html:plugins:toolbar');\n\nconst StyledToolbar = styled('div', {\n shouldForwardProp: (prop) => !['hasDoneButton', 'position', 'alignment', 'focused', 'autoWidth', 'hidden'].includes(prop),\n})(({ hasDoneButton, position, alignment, focused, autoWidth, hidden }) => ({\n position: 'absolute',\n zIndex: 10,\n cursor: 'pointer',\n justifyContent: 'space-between',\n background: 'var(--editable-html-toolbar-bg, #efefef)',\n minWidth: hasDoneButton ? '280px' : '265px',\n margin: '5px 0 0 0',\n padding: '2px',\n boxShadow:\n '0px 1px 5px 0px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 3px 1px -2px rgba(0, 0, 0, 0.12)',\n boxSizing: 'border-box',\n display: 'flex',\n opacity: focused ? 1 : 0,\n pointerEvents: focused ? 'auto' : 'none',\n top: position === 'top' ? '-45px' : 'auto',\n right: alignment === 'right' ? 0 : 'auto',\n width: autoWidth ? 'auto' : '100%',\n visibility: hidden ? 'hidden' : 'visible',\n}));\n\nconst SharedContainer = styled('div')({\n display: 'flex',\n});\n\nconst StyledIconButton = styled(IconButton)({\n width: '28px',\n height: '28px',\n padding: '4px',\n verticalAlign: 'top',\n});\n\nconst getCustomToolbar = (plugin, node, value, handleDone, getFocusedValue, onDataChange) => {\n if (!plugin) {\n return;\n }\n\n if (!plugin.toolbar) {\n return;\n }\n\n if (plugin.toolbar.CustomToolbarComp) {\n /**\n * Using a pre-defined Component should be preferred\n * as the rendering of it (and it's children) can be optimized by React.\n * If you keep re-defining the comp with an inline function\n * then react will have to re-render.\n */\n return plugin.toolbar.CustomToolbarComp;\n } else if (typeof plugin.toolbar.customToolbar === 'function') {\n log('deprecated - use CustomToolbarComp');\n return plugin.toolbar.customToolbar(node, value, handleDone, getFocusedValue, onDataChange);\n }\n};\n\nexport class Toolbar extends React.Component {\n static propTypes = {\n zIndex: PropTypes.number,\n value: SlatePropTypes.value.isRequired,\n plugins: PropTypes.array,\n plugin: PropTypes.object,\n onImageClick: PropTypes.func,\n onDone: PropTypes.func.isRequired,\n toolbarRef: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n isFocused: PropTypes.bool,\n autoWidth: PropTypes.bool,\n onChange: PropTypes.func.isRequired,\n getFocusedValue: PropTypes.func.isRequired,\n pluginProps: PropTypes.object,\n toolbarOpts: PropTypes.shape({\n isHtmlMode: PropTypes.bool,\n position: PropTypes.oneOf(['bottom', 'top']),\n alignment: PropTypes.oneOf(['left', 'right']),\n alwaysVisible: PropTypes.bool,\n ref: PropTypes.func,\n showDone: PropTypes.bool,\n minWidth: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n isHidden: PropTypes.bool,\n }),\n onDataChange: PropTypes.func,\n doneButtonRef: PropTypes.func,\n onBlur: PropTypes.func,\n onFocus: PropTypes.func,\n };\n\n constructor(props) {\n super(props);\n this.state = {\n change: null,\n };\n }\n\n componentWillUnmount() {\n removeCharacterDialogs();\n }\n\n hasMark = (type) => {\n const { value } = this.props;\n return value.marks.some((mark) => mark.type == type);\n };\n\n hasBlock = (type) => {\n const { value } = this.props;\n return value.blocks.some((node) => node.type == type);\n };\n\n onToggle = (plugin) => {\n const { value, onChange } = this.props;\n\n if (!plugin.onToggle) return;\n\n const change = plugin.onToggle(value.change());\n onChange(change);\n };\n\n onClick = (e) => {\n log('[onClick]');\n e.preventDefault();\n };\n\n onButtonClick = (fn) => {\n return (e) => {\n e.preventDefault();\n fn();\n };\n };\n\n onToolbarDone = (change, finishEditing) => {\n log('[onToolbarDone] change: ', change, 'finishEditing: ', finishEditing);\n const { onChange, onDone } = this.props;\n\n // use handler only if this is an actual Slate Change\n if (change instanceof Change) {\n onChange(change, () => {\n if (finishEditing) {\n onDone();\n }\n });\n } else {\n if (finishEditing) {\n log('[onToolbarChange] call onDone');\n onDone();\n }\n }\n };\n\n onDeleteClick = debounce((e, plugin, node, value, onChange) => plugin.deleteNode(e, node, value, onChange), 500);\n\n onDeleteMouseDown = (e, plugin, node, value, onChange) => {\n e.persist();\n this.onDeleteClick(e, plugin, node, value, onChange);\n };\n\n render() {\n const {\n plugins,\n pluginProps,\n toolbarOpts,\n value,\n autoWidth,\n onChange,\n getFocusedValue,\n isFocused,\n onDone,\n toolbarRef,\n doneButtonRef,\n onBlur,\n onFocus,\n } = this.props;\n\n const node = findSingleNode(value);\n const parentNode = findParentNode(value, node);\n\n log(' --------------> [render] node: ', node);\n log('[render] node: ', node);\n\n const plugin = plugins.find((p) => {\n if (!node) {\n return;\n }\n\n if (p.toolbar) {\n return p.toolbar.supports && p.toolbar.supports(node, value);\n }\n });\n const parentPlugin = plugins.find((p) => {\n if (!parentNode) {\n return;\n }\n\n if (p.toolbar) {\n return p.toolbar.supports && p.toolbar.supports(parentNode, value);\n }\n });\n\n log('[render] plugin: ', plugin);\n\n const handleDone = (change, done) => {\n let handler = onDone;\n\n if (plugin && plugin.toolbar && plugin.toolbar.customToolbar) {\n handler = this.onToolbarDone;\n }\n\n handler(change, done);\n\n if (parentPlugin && parentPlugin.handleDone) {\n parentPlugin.handleDone(value, node, plugin, onChange);\n }\n };\n\n const handleDataChange = (key, data) => {\n this.props.onDataChange(key, data);\n };\n\n const CustomToolbar = getCustomToolbar(plugin, node, value, handleDone, getFocusedValue, this.props.onDataChange);\n\n const filteredPlugins = plugin && plugin.filterPlugins ? plugin.filterPlugins(node, plugins) : plugins;\n\n log('[render] CustomToolbar: ', CustomToolbar);\n const parentExtraStyles =\n parentPlugin && parentPlugin.pluginStyles ? parentPlugin.pluginStyles(node, parentNode, plugin) : {};\n const pluginExtraStyles = plugin && plugin.pluginStyles ? plugin.pluginStyles(node, parentNode, plugin) : {};\n const extraStyles = {\n ...pluginExtraStyles,\n ...parentExtraStyles,\n };\n\n const deletable = node && plugin && plugin.deleteNode;\n const customToolbarShowDone =\n node && plugin && plugin.toolbar && plugin.toolbar.showDone && !toolbarOpts.alwaysVisible;\n\n // If there is a toolbarOpts we check if the showDone is not equal to false\n const defaultToolbarShowDone = !toolbarOpts || toolbarOpts.showDone !== false;\n\n const hasDoneButton = defaultToolbarShowDone || customToolbarShowDone;\n const customStyles = toolbarOpts.minWidth !== undefined ? { minWidth: toolbarOpts.minWidth } : {};\n\n return (\n <StyledToolbar\n className={PIE_TOOLBAR__CLASS}\n hasDoneButton={hasDoneButton}\n position={toolbarOpts.position}\n alignment={toolbarOpts.alignment}\n focused={toolbarOpts.alwaysVisible || isFocused}\n autoWidth={autoWidth}\n hidden={toolbarOpts.isHidden === true}\n style={{ ...extraStyles, ...customStyles }}\n onClick={this.onClick}\n ref={toolbarRef}\n >\n {CustomToolbar ? (\n <CustomToolbar\n node={node}\n value={value}\n getFocusedValue={getFocusedValue}\n onToolbarDone={this.onToolbarDone}\n onDataChange={handleDataChange}\n pluginProps={pluginProps}\n />\n ) : (\n <DefaultToolbar\n plugins={filteredPlugins}\n pluginProps={pluginProps}\n value={value}\n onChange={onChange}\n getFocusedValue={getFocusedValue}\n showDone={defaultToolbarShowDone}\n onDone={handleDone}\n deletable={deletable}\n isHtmlMode={toolbarOpts.isHtmlMode}\n onFocus={onFocus}\n doneButtonRef={doneButtonRef}\n onBlur={onBlur}\n />\n )}\n <SharedContainer>\n {deletable && (\n <StyledIconButton\n aria-label=\"Delete\"\n onMouseDown={(e) => this.onDeleteMouseDown(e, plugin, node, value, onChange)}\n size=\"large\"\n >\n <Delete />\n </StyledIconButton>\n )}\n {customToolbarShowDone && <DoneButton doneButtonRef={doneButtonRef} onClick={handleDone} />}\n </SharedContainer>\n </StyledToolbar>\n );\n }\n}\n\nexport default Toolbar;\n"],"mappings":"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","ignoreList":[]}
@@ -1,42 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.hasNode = exports.hasMark = exports.hasBlock = exports.findSingleNode = exports.findParentNode = void 0;
7
- var findSingleNode = exports.findSingleNode = function findSingleNode(value) {
8
- if (!value || !value.isCollapsed || !value.startKey) {
9
- return;
10
- }
11
- var inline = value.document.getClosestInline(value.startKey);
12
- if (inline) {
13
- return inline;
14
- }
15
- var block = value.document.getClosestBlock(value.startKey);
16
- if (block) {
17
- return block;
18
- }
19
- };
20
- var findParentNode = exports.findParentNode = function findParentNode(value, node) {
21
- if (!value || !node) {
22
- return;
23
- }
24
- return value.document.getParent(node.key);
25
- };
26
- var hasMark = exports.hasMark = function hasMark(value, type) {
27
- return value && value.marks.some(function (mark) {
28
- return mark.type == type;
29
- });
30
- };
31
- var hasBlock = exports.hasBlock = function hasBlock(value, type) {
32
- return value && value.blocks.some(function (node) {
33
- return node.type == type;
34
- });
35
- };
36
- var hasNode = exports.hasNode = function hasNode(_ref, type) {
37
- var document = _ref.document;
38
- return document && document.nodes.some(function (node) {
39
- return node.type == type;
40
- });
41
- };
42
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmaW5kU2luZ2xlTm9kZSIsImV4cG9ydHMiLCJ2YWx1ZSIsImlzQ29sbGFwc2VkIiwic3RhcnRLZXkiLCJpbmxpbmUiLCJkb2N1bWVudCIsImdldENsb3Nlc3RJbmxpbmUiLCJibG9jayIsImdldENsb3Nlc3RCbG9jayIsImZpbmRQYXJlbnROb2RlIiwibm9kZSIsImdldFBhcmVudCIsImtleSIsImhhc01hcmsiLCJ0eXBlIiwibWFya3MiLCJzb21lIiwibWFyayIsImhhc0Jsb2NrIiwiYmxvY2tzIiwiaGFzTm9kZSIsIl9yZWYiLCJub2RlcyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wbHVnaW5zL3V0aWxzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBmaW5kU2luZ2xlTm9kZSA9ICh2YWx1ZSkgPT4ge1xuICBpZiAoIXZhbHVlIHx8ICF2YWx1ZS5pc0NvbGxhcHNlZCB8fCAhdmFsdWUuc3RhcnRLZXkpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBpbmxpbmUgPSB2YWx1ZS5kb2N1bWVudC5nZXRDbG9zZXN0SW5saW5lKHZhbHVlLnN0YXJ0S2V5KTtcblxuICBpZiAoaW5saW5lKSB7XG4gICAgcmV0dXJuIGlubGluZTtcbiAgfVxuXG4gIGNvbnN0IGJsb2NrID0gdmFsdWUuZG9jdW1lbnQuZ2V0Q2xvc2VzdEJsb2NrKHZhbHVlLnN0YXJ0S2V5KTtcblxuICBpZiAoYmxvY2spIHtcbiAgICByZXR1cm4gYmxvY2s7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBmaW5kUGFyZW50Tm9kZSA9ICh2YWx1ZSwgbm9kZSkgPT4ge1xuICBpZiAoIXZhbHVlIHx8ICFub2RlKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgcmV0dXJuIHZhbHVlLmRvY3VtZW50LmdldFBhcmVudChub2RlLmtleSk7XG59O1xuXG5leHBvcnQgY29uc3QgaGFzTWFyayA9ICh2YWx1ZSwgdHlwZSkgPT4gdmFsdWUgJiYgdmFsdWUubWFya3Muc29tZSgobWFyaykgPT4gbWFyay50eXBlID09IHR5cGUpO1xuXG5leHBvcnQgY29uc3QgaGFzQmxvY2sgPSAodmFsdWUsIHR5cGUpID0+IHZhbHVlICYmIHZhbHVlLmJsb2Nrcy5zb21lKChub2RlKSA9PiBub2RlLnR5cGUgPT0gdHlwZSk7XG5cbmV4cG9ydCBjb25zdCBoYXNOb2RlID0gKHsgZG9jdW1lbnQgfSwgdHlwZSkgPT4gZG9jdW1lbnQgJiYgZG9jdW1lbnQubm9kZXMuc29tZSgobm9kZSkgPT4gbm9kZS50eXBlID09IHR5cGUpO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBTyxJQUFNQSxjQUFjLEdBQUFDLE9BQUEsQ0FBQUQsY0FBQSxHQUFHLFNBQWpCQSxjQUFjQSxDQUFJRSxLQUFLLEVBQUs7RUFDdkMsSUFBSSxDQUFDQSxLQUFLLElBQUksQ0FBQ0EsS0FBSyxDQUFDQyxXQUFXLElBQUksQ0FBQ0QsS0FBSyxDQUFDRSxRQUFRLEVBQUU7SUFDbkQ7RUFDRjtFQUVBLElBQU1DLE1BQU0sR0FBR0gsS0FBSyxDQUFDSSxRQUFRLENBQUNDLGdCQUFnQixDQUFDTCxLQUFLLENBQUNFLFFBQVEsQ0FBQztFQUU5RCxJQUFJQyxNQUFNLEVBQUU7SUFDVixPQUFPQSxNQUFNO0VBQ2Y7RUFFQSxJQUFNRyxLQUFLLEdBQUdOLEtBQUssQ0FBQ0ksUUFBUSxDQUFDRyxlQUFlLENBQUNQLEtBQUssQ0FBQ0UsUUFBUSxDQUFDO0VBRTVELElBQUlJLEtBQUssRUFBRTtJQUNULE9BQU9BLEtBQUs7RUFDZDtBQUNGLENBQUM7QUFFTSxJQUFNRSxjQUFjLEdBQUFULE9BQUEsQ0FBQVMsY0FBQSxHQUFHLFNBQWpCQSxjQUFjQSxDQUFJUixLQUFLLEVBQUVTLElBQUksRUFBSztFQUM3QyxJQUFJLENBQUNULEtBQUssSUFBSSxDQUFDUyxJQUFJLEVBQUU7SUFDbkI7RUFDRjtFQUVBLE9BQU9ULEtBQUssQ0FBQ0ksUUFBUSxDQUFDTSxTQUFTLENBQUNELElBQUksQ0FBQ0UsR0FBRyxDQUFDO0FBQzNDLENBQUM7QUFFTSxJQUFNQyxPQUFPLEdBQUFiLE9BQUEsQ0FBQWEsT0FBQSxHQUFHLFNBQVZBLE9BQU9BLENBQUlaLEtBQUssRUFBRWEsSUFBSTtFQUFBLE9BQUtiLEtBQUssSUFBSUEsS0FBSyxDQUFDYyxLQUFLLENBQUNDLElBQUksQ0FBQyxVQUFDQyxJQUFJO0lBQUEsT0FBS0EsSUFBSSxDQUFDSCxJQUFJLElBQUlBLElBQUk7RUFBQSxFQUFDO0FBQUE7QUFFdkYsSUFBTUksUUFBUSxHQUFBbEIsT0FBQSxDQUFBa0IsUUFBQSxHQUFHLFNBQVhBLFFBQVFBLENBQUlqQixLQUFLLEVBQUVhLElBQUk7RUFBQSxPQUFLYixLQUFLLElBQUlBLEtBQUssQ0FBQ2tCLE1BQU0sQ0FBQ0gsSUFBSSxDQUFDLFVBQUNOLElBQUk7SUFBQSxPQUFLQSxJQUFJLENBQUNJLElBQUksSUFBSUEsSUFBSTtFQUFBLEVBQUM7QUFBQTtBQUV6RixJQUFNTSxPQUFPLEdBQUFwQixPQUFBLENBQUFvQixPQUFBLEdBQUcsU0FBVkEsT0FBT0EsQ0FBQUMsSUFBQSxFQUFrQlAsSUFBSTtFQUFBLElBQWhCVCxRQUFRLEdBQUFnQixJQUFBLENBQVJoQixRQUFRO0VBQUEsT0FBYUEsUUFBUSxJQUFJQSxRQUFRLENBQUNpQixLQUFLLENBQUNOLElBQUksQ0FBQyxVQUFDTixJQUFJO0lBQUEsT0FBS0EsSUFBSSxDQUFDSSxJQUFJLElBQUlBLElBQUk7RUFBQSxFQUFDO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","names":["findSingleNode","exports","value","isCollapsed","startKey","inline","document","getClosestInline","block","getClosestBlock","findParentNode","node","getParent","key","hasMark","type","marks","some","mark","hasBlock","blocks","hasNode","_ref","nodes"],"sources":["../../src/plugins/utils.js"],"sourcesContent":["export const findSingleNode = (value) => {\n if (!value || !value.isCollapsed || !value.startKey) {\n return;\n }\n\n const inline = value.document.getClosestInline(value.startKey);\n\n if (inline) {\n return inline;\n }\n\n const block = value.document.getClosestBlock(value.startKey);\n\n if (block) {\n return block;\n }\n};\n\nexport const findParentNode = (value, node) => {\n if (!value || !node) {\n return;\n }\n\n return value.document.getParent(node.key);\n};\n\nexport const hasMark = (value, type) => value && value.marks.some((mark) => mark.type == type);\n\nexport const hasBlock = (value, type) => value && value.blocks.some((node) => node.type == type);\n\nexport const hasNode = ({ document }, type) => document && document.nodes.some((node) => node.type == type);\n"],"mappings":";;;;;;AAAO,IAAMA,cAAc,GAAAC,OAAA,CAAAD,cAAA,GAAG,SAAjBA,cAAcA,CAAIE,KAAK,EAAK;EACvC,IAAI,CAACA,KAAK,IAAI,CAACA,KAAK,CAACC,WAAW,IAAI,CAACD,KAAK,CAACE,QAAQ,EAAE;IACnD;EACF;EAEA,IAAMC,MAAM,GAAGH,KAAK,CAACI,QAAQ,CAACC,gBAAgB,CAACL,KAAK,CAACE,QAAQ,CAAC;EAE9D,IAAIC,MAAM,EAAE;IACV,OAAOA,MAAM;EACf;EAEA,IAAMG,KAAK,GAAGN,KAAK,CAACI,QAAQ,CAACG,eAAe,CAACP,KAAK,CAACE,QAAQ,CAAC;EAE5D,IAAII,KAAK,EAAE;IACT,OAAOA,KAAK;EACd;AACF,CAAC;AAEM,IAAME,cAAc,GAAAT,OAAA,CAAAS,cAAA,GAAG,SAAjBA,cAAcA,CAAIR,KAAK,EAAES,IAAI,EAAK;EAC7C,IAAI,CAACT,KAAK,IAAI,CAACS,IAAI,EAAE;IACnB;EACF;EAEA,OAAOT,KAAK,CAACI,QAAQ,CAACM,SAAS,CAACD,IAAI,CAACE,GAAG,CAAC;AAC3C,CAAC;AAEM,IAAMC,OAAO,GAAAb,OAAA,CAAAa,OAAA,GAAG,SAAVA,OAAOA,CAAIZ,KAAK,EAAEa,IAAI;EAAA,OAAKb,KAAK,IAAIA,KAAK,CAACc,KAAK,CAACC,IAAI,CAAC,UAACC,IAAI;IAAA,OAAKA,IAAI,CAACH,IAAI,IAAIA,IAAI;EAAA,EAAC;AAAA;AAEvF,IAAMI,QAAQ,GAAAlB,OAAA,CAAAkB,QAAA,GAAG,SAAXA,QAAQA,CAAIjB,KAAK,EAAEa,IAAI;EAAA,OAAKb,KAAK,IAAIA,KAAK,CAACkB,MAAM,CAACH,IAAI,CAAC,UAACN,IAAI;IAAA,OAAKA,IAAI,CAACI,IAAI,IAAIA,IAAI;EAAA,EAAC;AAAA;AAEzF,IAAMM,OAAO,GAAApB,OAAA,CAAAoB,OAAA,GAAG,SAAVA,OAAOA,CAAAC,IAAA,EAAkBP,IAAI;EAAA,IAAhBT,QAAQ,GAAAgB,IAAA,CAARhB,QAAQ;EAAA,OAAaA,QAAQ,IAAIA,QAAQ,CAACiB,KAAK,CAACN,IAAI,CAAC,UAACN,IAAI;IAAA,OAAKA,IAAI,CAACI,IAAI,IAAIA,IAAI;EAAA,EAAC;AAAA","ignoreList":[]}