@pie-lib/editable-html-tip-tap 1.2.0-next.2 → 1.2.0-next.4
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 +25 -28
- package/LICENSE.md +5 -0
- package/lib/components/CharacterPicker.js +1 -1
- package/lib/components/CharacterPicker.js.map +1 -1
- package/lib/components/EditableHtml.js +1 -1
- package/lib/components/EditableHtml.js.map +1 -1
- package/lib/components/MenuBar.js +1 -1
- package/lib/components/MenuBar.js.map +1 -1
- package/lib/components/TiptapContainer.js +1 -1
- package/lib/components/TiptapContainer.js.map +1 -1
- package/lib/components/characters/characterUtils.js +1 -1
- package/lib/components/characters/custom-popper.js +1 -1
- package/lib/components/common/done-button.js +1 -1
- package/lib/components/common/toolbar-buttons.js +1 -1
- package/lib/components/icons/CssIcon.js +1 -1
- package/lib/components/icons/RespArea.js +1 -1
- package/lib/components/icons/TableIcons.js +1 -1
- package/lib/components/icons/TextAlign.js +1 -1
- package/lib/components/image/AltDialog.js +1 -1
- package/lib/components/image/ImageToolbar.js +1 -1
- package/lib/components/image/InsertImageHandler.js +1 -1
- package/lib/components/media/MediaDialog.js +1 -1
- package/lib/components/media/MediaToolbar.js +1 -1
- package/lib/components/media/MediaWrapper.js +1 -1
- package/lib/components/respArea/DragInTheBlank/DragInTheBlank.js +1 -1
- package/lib/components/respArea/DragInTheBlank/DragInTheBlank.js.map +1 -1
- package/lib/components/respArea/DragInTheBlank/choice.js +1 -1
- package/lib/components/respArea/ExplicitConstructedResponse.js +1 -1
- package/lib/components/respArea/InlineDropdown.js +1 -1
- package/lib/components/respArea/ToolbarIcon.js +1 -1
- package/lib/constants.js +1 -1
- package/lib/extensions/css.js +1 -1
- package/lib/extensions/custom-toolbar-wrapper.js +1 -1
- package/lib/extensions/extended-table.js +1 -1
- package/lib/extensions/image-component.js +1 -1
- package/lib/extensions/image-component.js.map +1 -1
- package/lib/extensions/image.js +1 -1
- package/lib/extensions/index.js +1 -1
- package/lib/extensions/index.js.map +1 -1
- package/lib/extensions/math.js +1 -1
- package/lib/extensions/media.js +1 -1
- package/lib/extensions/responseArea.js +1 -1
- package/lib/index.js +1 -1
- package/lib/styles/editorContainerStyles.js +1 -1
- package/lib/theme.js +1 -1
- package/lib/utils/size.js +1 -1
- package/package.json +5 -5
- package/src/components/EditableHtml.jsx +4 -2
- package/lib/__tests__/EditableHtml.test.js +0 -377
- package/lib/__tests__/constants.test.js +0 -21
- package/lib/__tests__/extensions.test.js +0 -209
- package/lib/__tests__/index.test.js +0 -235
- package/lib/__tests__/size-utils.test.js +0 -57
- package/lib/__tests__/theme.test.js +0 -17
- package/lib/components/__tests__/AltDialog.test.js +0 -201
- package/lib/components/__tests__/CharacterPicker.test.js +0 -305
- package/lib/components/__tests__/CssIcon.test.js +0 -58
- package/lib/components/__tests__/DragInTheBlank.test.js +0 -295
- package/lib/components/__tests__/ExplicitConstructedResponse.test.js +0 -253
- package/lib/components/__tests__/ImageToolbar.test.js +0 -185
- package/lib/components/__tests__/InlineDropdown.test.js +0 -287
- package/lib/components/__tests__/InsertImageHandler.test.js +0 -162
- package/lib/components/__tests__/MediaDialog.test.js +0 -433
- package/lib/components/__tests__/MediaToolbar.test.js +0 -126
- package/lib/components/__tests__/MediaWrapper.test.js +0 -96
- package/lib/components/__tests__/MenuBar.test.js +0 -459
- package/lib/components/__tests__/RespArea.test.js +0 -171
- package/lib/components/__tests__/TableIcons.test.js +0 -153
- package/lib/components/__tests__/TextAlign.test.js +0 -209
- package/lib/components/__tests__/TiptapContainer.test.js +0 -196
- package/lib/components/__tests__/characterUtils.test.js +0 -178
- package/lib/components/__tests__/choice.test.js +0 -213
- package/lib/components/__tests__/custom-popper.test.js +0 -108
- package/lib/components/__tests__/done-button.test.js +0 -72
- package/lib/components/__tests__/toolbar-buttons.test.js +0 -277
- package/lib/extensions/__tests__/component.test.js +0 -314
- package/lib/extensions/__tests__/css.test.js +0 -214
- package/lib/extensions/__tests__/custom-toolbar-wrapper.test.js +0 -175
- package/lib/extensions/__tests__/extended-table.test.js +0 -92
- package/lib/extensions/__tests__/image-component.test.js +0 -305
- package/lib/extensions/__tests__/image.test.js +0 -164
- package/lib/extensions/__tests__/media.test.js +0 -292
- package/lib/extensions/__tests__/responseArea.test.js +0 -330
- package/lib/extensions/component.js +0 -305
|
@@ -1,305 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
require("core-js/modules/es.symbol.js");
|
|
4
|
-
require("core-js/modules/es.array.filter.js");
|
|
5
|
-
require("core-js/modules/es.array.for-each.js");
|
|
6
|
-
require("core-js/modules/es.array.iterator.js");
|
|
7
|
-
require("core-js/modules/es.object.define-properties.js");
|
|
8
|
-
require("core-js/modules/es.object.define-property.js");
|
|
9
|
-
require("core-js/modules/es.object.get-own-property-descriptor.js");
|
|
10
|
-
require("core-js/modules/es.object.get-own-property-descriptors.js");
|
|
11
|
-
require("core-js/modules/es.object.keys.js");
|
|
12
|
-
require("core-js/modules/es.object.to-string.js");
|
|
13
|
-
require("core-js/modules/es.string.iterator.js");
|
|
14
|
-
require("core-js/modules/es.weak-map.js");
|
|
15
|
-
require("core-js/modules/web.dom-collections.for-each.js");
|
|
16
|
-
require("core-js/modules/web.dom-collections.iterator.js");
|
|
17
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
18
|
-
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
19
|
-
Object.defineProperty(exports, "__esModule", {
|
|
20
|
-
value: true
|
|
21
|
-
});
|
|
22
|
-
exports["default"] = void 0;
|
|
23
|
-
require("core-js/modules/es.array.includes.js");
|
|
24
|
-
require("core-js/modules/es.number.to-fixed.js");
|
|
25
|
-
require("core-js/modules/es.parse-int.js");
|
|
26
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
27
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
28
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
29
|
-
var _react = _interopRequireWildcard(require("react"));
|
|
30
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
31
|
-
var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
|
|
32
|
-
var _debug = _interopRequireDefault(require("debug"));
|
|
33
|
-
var _LinearProgress = _interopRequireDefault(require("@mui/material/LinearProgress"));
|
|
34
|
-
var _styles = require("@mui/material/styles");
|
|
35
|
-
var _react2 = require("@tiptap/react");
|
|
36
|
-
var _InsertImageHandler = _interopRequireDefault(require("../components/image/InsertImageHandler"));
|
|
37
|
-
var _ImageToolbar = _interopRequireDefault(require("../components/image/ImageToolbar"));
|
|
38
|
-
var _customToolbarWrapper = _interopRequireDefault(require("./custom-toolbar-wrapper"));
|
|
39
|
-
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
40
|
-
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; }
|
|
41
|
-
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; }
|
|
42
|
-
var log = (0, _debug["default"])('@pie-lib:editable-html:plugins:image:component');
|
|
43
|
-
var StyledProgress = (0, _styles.styled)(_LinearProgress["default"], {
|
|
44
|
-
shouldForwardProp: function shouldForwardProp(prop) {
|
|
45
|
-
return prop !== 'hideProgress';
|
|
46
|
-
}
|
|
47
|
-
})(function (_ref) {
|
|
48
|
-
var hideProgress = _ref.hideProgress;
|
|
49
|
-
return _objectSpread({
|
|
50
|
-
position: 'absolute',
|
|
51
|
-
left: '0',
|
|
52
|
-
width: 'fit-content',
|
|
53
|
-
top: '0%',
|
|
54
|
-
transition: 'opacity 200ms linear'
|
|
55
|
-
}, hideProgress && {
|
|
56
|
-
opacity: 0
|
|
57
|
-
});
|
|
58
|
-
});
|
|
59
|
-
var StyledRoot = (0, _styles.styled)('div', {
|
|
60
|
-
shouldForwardProp: function shouldForwardProp(prop) {
|
|
61
|
-
return !['active', 'loading', 'pendingDelete'].includes(prop);
|
|
62
|
-
}
|
|
63
|
-
})(function (_ref2) {
|
|
64
|
-
var theme = _ref2.theme,
|
|
65
|
-
active = _ref2.active,
|
|
66
|
-
loading = _ref2.loading,
|
|
67
|
-
pendingDelete = _ref2.pendingDelete;
|
|
68
|
-
return _objectSpread(_objectSpread({
|
|
69
|
-
position: 'relative',
|
|
70
|
-
border: active ? "solid 1px ".concat(theme.palette.primary.main) : "solid 1px ".concat(theme.palette.common.white),
|
|
71
|
-
display: 'flex',
|
|
72
|
-
transition: 'opacity 200ms linear'
|
|
73
|
-
}, loading && {
|
|
74
|
-
opacity: 0.3
|
|
75
|
-
}), pendingDelete && {
|
|
76
|
-
opacity: 0.3
|
|
77
|
-
});
|
|
78
|
-
});
|
|
79
|
-
var StyledImageContainer = (0, _styles.styled)('div')(function (_ref3) {
|
|
80
|
-
var theme = _ref3.theme;
|
|
81
|
-
return {
|
|
82
|
-
position: 'relative',
|
|
83
|
-
width: 'fit-content',
|
|
84
|
-
display: 'flex',
|
|
85
|
-
alignItems: 'center',
|
|
86
|
-
'&&:hover > .resize': {
|
|
87
|
-
display: 'block'
|
|
88
|
-
}
|
|
89
|
-
};
|
|
90
|
-
});
|
|
91
|
-
var StyledResize = (0, _styles.styled)('div')(function (_ref4) {
|
|
92
|
-
var theme = _ref4.theme;
|
|
93
|
-
return {
|
|
94
|
-
backgroundColor: theme.palette.primary.main,
|
|
95
|
-
cursor: 'col-resize',
|
|
96
|
-
height: '35px',
|
|
97
|
-
width: '5px',
|
|
98
|
-
borderRadius: 8,
|
|
99
|
-
marginLeft: '5px',
|
|
100
|
-
marginRight: '10px',
|
|
101
|
-
display: 'none'
|
|
102
|
-
};
|
|
103
|
-
});
|
|
104
|
-
var sizePx = function sizePx(s) {
|
|
105
|
-
return s ? "".concat(s, "px") : 'calc(20px)';
|
|
106
|
-
};
|
|
107
|
-
function ImageComponent(props) {
|
|
108
|
-
var node = props.node,
|
|
109
|
-
editor = props.editor,
|
|
110
|
-
attributes = props.attributes,
|
|
111
|
-
onFocus = props.onFocus,
|
|
112
|
-
selected = props.selected,
|
|
113
|
-
options = props.options,
|
|
114
|
-
_props$maxImageWidth = props.maxImageWidth,
|
|
115
|
-
maxImageWidth = _props$maxImageWidth === void 0 ? 700 : _props$maxImageWidth,
|
|
116
|
-
_props$maxImageHeight = props.maxImageHeight,
|
|
117
|
-
maxImageHeight = _props$maxImageHeight === void 0 ? 900 : _props$maxImageHeight,
|
|
118
|
-
latex = props.latex,
|
|
119
|
-
handleChange = props.handleChange,
|
|
120
|
-
handleDone = props.handleDone;
|
|
121
|
-
var alt = node.attrs.alt;
|
|
122
|
-
var _useState = (0, _react.useState)(false),
|
|
123
|
-
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
124
|
-
showToolbar = _useState2[0],
|
|
125
|
-
setShowToolbar = _useState2[1];
|
|
126
|
-
var imgRef = (0, _react.useRef)(null);
|
|
127
|
-
var resizeRef = (0, _react.useRef)(null);
|
|
128
|
-
var toolbarRef = (0, _react.useRef)(null);
|
|
129
|
-
var getPercentFromWidth = (0, _react.useCallback)(function (width) {
|
|
130
|
-
var floored = width / imgRef.current.naturalWidth * 4;
|
|
131
|
-
return parseInt(floored.toFixed(0) * 25, 10);
|
|
132
|
-
}, []);
|
|
133
|
-
var applySizeData = (0, _react.useCallback)(function () {
|
|
134
|
-
if (!node.attrs.width || !imgRef.current) return;
|
|
135
|
-
var update = _objectSpread(_objectSpread({}, node.attrs), {}, {
|
|
136
|
-
resizePercent: getPercentFromWidth(node.attrs.width)
|
|
137
|
-
});
|
|
138
|
-
if (!(0, _isEqual["default"])(update, node.attrs)) {
|
|
139
|
-
editor.commands.updateAttributes('imageUploadNode', update);
|
|
140
|
-
}
|
|
141
|
-
}, [editor, node.attrs, getPercentFromWidth]);
|
|
142
|
-
(0, _react.useEffect)(function () {
|
|
143
|
-
var selection = editor.state.selection;
|
|
144
|
-
var onlyThisNodeSelected = selection.from + node.nodeSize === selection.to;
|
|
145
|
-
if (selected) {
|
|
146
|
-
if (onlyThisNodeSelected) {
|
|
147
|
-
setShowToolbar(selected);
|
|
148
|
-
}
|
|
149
|
-
} else {
|
|
150
|
-
setShowToolbar(selected);
|
|
151
|
-
}
|
|
152
|
-
}, [editor, node, selected]);
|
|
153
|
-
(0, _react.useEffect)(function () {
|
|
154
|
-
options.imageHandling.insertImageRequested(node, function (finish) {
|
|
155
|
-
return new _InsertImageHandler["default"](editor, node, finish);
|
|
156
|
-
});
|
|
157
|
-
applySizeData();
|
|
158
|
-
var resizeHandle = resizeRef.current;
|
|
159
|
-
if (resizeHandle) {
|
|
160
|
-
resizeHandle.addEventListener('mousedown', initResize, false);
|
|
161
|
-
}
|
|
162
|
-
return function () {
|
|
163
|
-
if (resizeHandle) resizeHandle.removeEventListener('mousedown', initResize, false);
|
|
164
|
-
};
|
|
165
|
-
}, []);
|
|
166
|
-
(0, _react.useEffect)(function () {
|
|
167
|
-
applySizeData();
|
|
168
|
-
});
|
|
169
|
-
var loadImage = (0, _react.useCallback)(function () {
|
|
170
|
-
var box = imgRef.current;
|
|
171
|
-
if (!box) return;
|
|
172
|
-
if (!box.style.width || box.style.width === 'calc(20px)') {
|
|
173
|
-
var w = Math.min(box.naturalWidth, maxImageWidth);
|
|
174
|
-
var h = Math.min(box.naturalHeight, maxImageHeight);
|
|
175
|
-
box.style.width = "".concat(w, "px");
|
|
176
|
-
box.style.height = "".concat(h, "px");
|
|
177
|
-
var update = {
|
|
178
|
-
width: w,
|
|
179
|
-
height: h
|
|
180
|
-
};
|
|
181
|
-
if (!(0, _isEqual["default"])(update, node.attrs)) {
|
|
182
|
-
editor.commands.updateAttributes('imageUploadNode', update);
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
}, [editor, node.attrs, maxImageWidth, maxImageHeight]);
|
|
186
|
-
var updateAspect = function updateAspect(initial, next) {
|
|
187
|
-
var keepAspect = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
|
|
188
|
-
var resizeType = arguments.length > 3 ? arguments[3] : undefined;
|
|
189
|
-
if (keepAspect) {
|
|
190
|
-
var ratio = initial.width / initial.height;
|
|
191
|
-
if (resizeType === 'height') return {
|
|
192
|
-
width: next.height * ratio,
|
|
193
|
-
height: next.height
|
|
194
|
-
};
|
|
195
|
-
return {
|
|
196
|
-
width: next.width,
|
|
197
|
-
height: next.width / ratio
|
|
198
|
-
};
|
|
199
|
-
}
|
|
200
|
-
return next;
|
|
201
|
-
};
|
|
202
|
-
var startResize = (0, _react.useCallback)(function (e) {
|
|
203
|
-
var box = imgRef.current;
|
|
204
|
-
if (!box) return;
|
|
205
|
-
var bounds = e.target.getBoundingClientRect();
|
|
206
|
-
var initial = {
|
|
207
|
-
width: box.naturalWidth,
|
|
208
|
-
height: box.naturalHeight
|
|
209
|
-
};
|
|
210
|
-
var next = updateAspect(initial, {
|
|
211
|
-
width: e.clientX - bounds.left,
|
|
212
|
-
height: e.clientY - bounds.top
|
|
213
|
-
});
|
|
214
|
-
if (next.width > 50 && next.height > 50 && next.width <= 700 && next.height <= 900) {
|
|
215
|
-
box.style.width = "".concat(next.width, "px");
|
|
216
|
-
box.style.height = "".concat(next.height, "px");
|
|
217
|
-
var update = {
|
|
218
|
-
width: next.width,
|
|
219
|
-
height: next.height
|
|
220
|
-
};
|
|
221
|
-
if (!(0, _isEqual["default"])(update, node.attrs)) {
|
|
222
|
-
editor.commands.updateAttributes('imageUploadNode', update);
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
}, [editor, node.attrs]);
|
|
226
|
-
var onChange = (0, _react.useCallback)(function (newValues) {
|
|
227
|
-
editor.commands.updateAttributes('imageUploadNode', newValues);
|
|
228
|
-
}, [editor]);
|
|
229
|
-
var stopResize = (0, _react.useCallback)(function () {
|
|
230
|
-
window.removeEventListener('mousemove', startResize);
|
|
231
|
-
window.removeEventListener('mouseup', stopResize);
|
|
232
|
-
}, [startResize]);
|
|
233
|
-
var initResize = (0, _react.useCallback)(function () {
|
|
234
|
-
window.addEventListener('mousemove', startResize);
|
|
235
|
-
window.addEventListener('mouseup', stopResize);
|
|
236
|
-
}, [startResize, stopResize]);
|
|
237
|
-
var style = {
|
|
238
|
-
width: sizePx(node.attrs.width),
|
|
239
|
-
height: sizePx(node.attrs.height),
|
|
240
|
-
objectFit: 'contain'
|
|
241
|
-
};
|
|
242
|
-
var flexAlign = {
|
|
243
|
-
left: 'flex-start',
|
|
244
|
-
center: 'center',
|
|
245
|
-
right: 'flex-end'
|
|
246
|
-
}[node.attrs.alignment] || 'flex-start';
|
|
247
|
-
return /*#__PURE__*/_react["default"].createElement(_react2.NodeViewWrapper, null, /*#__PURE__*/_react["default"].createElement(StyledRoot, {
|
|
248
|
-
onFocus: onFocus,
|
|
249
|
-
active: selected,
|
|
250
|
-
loading: !node.attrs.loaded,
|
|
251
|
-
pendingDelete: node.attrs.deleteStatus === 'pending',
|
|
252
|
-
style: {
|
|
253
|
-
justifyContent: flexAlign
|
|
254
|
-
}
|
|
255
|
-
}, /*#__PURE__*/_react["default"].createElement(StyledProgress, {
|
|
256
|
-
mode: "determinate",
|
|
257
|
-
value: node.attrs.percent || 0,
|
|
258
|
-
hideProgress: node.attrs.loaded
|
|
259
|
-
}), /*#__PURE__*/_react["default"].createElement(StyledImageContainer, null, /*#__PURE__*/_react["default"].createElement("img", (0, _extends2["default"])({}, attributes, {
|
|
260
|
-
ref: imgRef,
|
|
261
|
-
src: node.attrs.src,
|
|
262
|
-
style: style,
|
|
263
|
-
onLoad: loadImage,
|
|
264
|
-
alt: node.attrs.alt
|
|
265
|
-
})), /*#__PURE__*/_react["default"].createElement(StyledResize, {
|
|
266
|
-
ref: resizeRef,
|
|
267
|
-
className: "resize"
|
|
268
|
-
}))), showToolbar && /*#__PURE__*/_react["default"].createElement("div", {
|
|
269
|
-
ref: toolbarRef,
|
|
270
|
-
style: {
|
|
271
|
-
position: 'absolute',
|
|
272
|
-
top: '100%',
|
|
273
|
-
left: 0,
|
|
274
|
-
zIndex: 20,
|
|
275
|
-
background: 'var(--editable-html-toolbar-bg, #efefef)',
|
|
276
|
-
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)',
|
|
277
|
-
width: '100%'
|
|
278
|
-
}
|
|
279
|
-
}, /*#__PURE__*/_react["default"].createElement(_customToolbarWrapper["default"], (0, _extends2["default"])({
|
|
280
|
-
showDone: true
|
|
281
|
-
}, options, {
|
|
282
|
-
onDone: function onDone() {
|
|
283
|
-
var _props$imageHandling;
|
|
284
|
-
setShowToolbar(false);
|
|
285
|
-
(_props$imageHandling = props.imageHandling) === null || _props$imageHandling === void 0 || _props$imageHandling.onDone();
|
|
286
|
-
props.editor.commands.focus('end');
|
|
287
|
-
}
|
|
288
|
-
}), /*#__PURE__*/_react["default"].createElement(_ImageToolbar["default"], {
|
|
289
|
-
disableImageAlignmentButtons: options.disableImageAlignmentButtons,
|
|
290
|
-
alt: node.attrs.alt,
|
|
291
|
-
imageLoaded: node.attrs.loaded,
|
|
292
|
-
alignment: node.attrs.alignment || 'left',
|
|
293
|
-
onChange: onChange
|
|
294
|
-
}))));
|
|
295
|
-
}
|
|
296
|
-
ImageComponent.propTypes = {
|
|
297
|
-
node: _propTypes["default"].object.isRequired,
|
|
298
|
-
editor: _propTypes["default"].object.isRequired,
|
|
299
|
-
attributes: _propTypes["default"].object,
|
|
300
|
-
onFocus: _propTypes["default"].func,
|
|
301
|
-
maxImageWidth: _propTypes["default"].number,
|
|
302
|
-
maxImageHeight: _propTypes["default"].number
|
|
303
|
-
};
|
|
304
|
-
var _default = exports["default"] = ImageComponent;
|
|
305
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcHJvcFR5cGVzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9pc0VxdWFsIiwiX2RlYnVnIiwiX0xpbmVhclByb2dyZXNzIiwiX3N0eWxlcyIsIl9yZWFjdDIiLCJfSW5zZXJ0SW1hZ2VIYW5kbGVyIiwiX0ltYWdlVG9vbGJhciIsIl9jdXN0b21Ub29sYmFyV3JhcHBlciIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJzZXQiLCJfdCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJsb2ciLCJkZWJ1ZyIsIlN0eWxlZFByb2dyZXNzIiwic3R5bGVkIiwiTGluZWFyUHJvZ3Jlc3MiLCJzaG91bGRGb3J3YXJkUHJvcCIsInByb3AiLCJfcmVmIiwiaGlkZVByb2dyZXNzIiwicG9zaXRpb24iLCJsZWZ0Iiwid2lkdGgiLCJ0b3AiLCJ0cmFuc2l0aW9uIiwib3BhY2l0eSIsIlN0eWxlZFJvb3QiLCJpbmNsdWRlcyIsIl9yZWYyIiwidGhlbWUiLCJhY3RpdmUiLCJsb2FkaW5nIiwicGVuZGluZ0RlbGV0ZSIsImJvcmRlciIsImNvbmNhdCIsInBhbGV0dGUiLCJwcmltYXJ5IiwibWFpbiIsImNvbW1vbiIsIndoaXRlIiwiZGlzcGxheSIsIlN0eWxlZEltYWdlQ29udGFpbmVyIiwiX3JlZjMiLCJhbGlnbkl0ZW1zIiwiU3R5bGVkUmVzaXplIiwiX3JlZjQiLCJiYWNrZ3JvdW5kQ29sb3IiLCJjdXJzb3IiLCJoZWlnaHQiLCJib3JkZXJSYWRpdXMiLCJtYXJnaW5MZWZ0IiwibWFyZ2luUmlnaHQiLCJzaXplUHgiLCJzIiwiSW1hZ2VDb21wb25lbnQiLCJwcm9wcyIsIm5vZGUiLCJlZGl0b3IiLCJhdHRyaWJ1dGVzIiwib25Gb2N1cyIsInNlbGVjdGVkIiwib3B0aW9ucyIsIl9wcm9wcyRtYXhJbWFnZVdpZHRoIiwibWF4SW1hZ2VXaWR0aCIsIl9wcm9wcyRtYXhJbWFnZUhlaWdodCIsIm1heEltYWdlSGVpZ2h0IiwibGF0ZXgiLCJoYW5kbGVDaGFuZ2UiLCJoYW5kbGVEb25lIiwiYWx0IiwiYXR0cnMiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJzaG93VG9vbGJhciIsInNldFNob3dUb29sYmFyIiwiaW1nUmVmIiwidXNlUmVmIiwicmVzaXplUmVmIiwidG9vbGJhclJlZiIsImdldFBlcmNlbnRGcm9tV2lkdGgiLCJ1c2VDYWxsYmFjayIsImZsb29yZWQiLCJjdXJyZW50IiwibmF0dXJhbFdpZHRoIiwicGFyc2VJbnQiLCJ0b0ZpeGVkIiwiYXBwbHlTaXplRGF0YSIsInVwZGF0ZSIsInJlc2l6ZVBlcmNlbnQiLCJpc0VxdWFsIiwiY29tbWFuZHMiLCJ1cGRhdGVBdHRyaWJ1dGVzIiwidXNlRWZmZWN0Iiwic2VsZWN0aW9uIiwic3RhdGUiLCJvbmx5VGhpc05vZGVTZWxlY3RlZCIsImZyb20iLCJub2RlU2l6ZSIsInRvIiwiaW1hZ2VIYW5kbGluZyIsImluc2VydEltYWdlUmVxdWVzdGVkIiwiZmluaXNoIiwiSW5zZXJ0SW1hZ2VIYW5kbGVyIiwicmVzaXplSGFuZGxlIiwiYWRkRXZlbnRMaXN0ZW5lciIsImluaXRSZXNpemUiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwibG9hZEltYWdlIiwiYm94Iiwic3R5bGUiLCJ3IiwiTWF0aCIsIm1pbiIsImgiLCJuYXR1cmFsSGVpZ2h0IiwidXBkYXRlQXNwZWN0IiwiaW5pdGlhbCIsIm5leHQiLCJrZWVwQXNwZWN0IiwidW5kZWZpbmVkIiwicmVzaXplVHlwZSIsInJhdGlvIiwic3RhcnRSZXNpemUiLCJib3VuZHMiLCJ0YXJnZXQiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJjbGllbnRYIiwiY2xpZW50WSIsIm9uQ2hhbmdlIiwibmV3VmFsdWVzIiwic3RvcFJlc2l6ZSIsIndpbmRvdyIsIm9iamVjdEZpdCIsImZsZXhBbGlnbiIsImNlbnRlciIsInJpZ2h0IiwiYWxpZ25tZW50IiwiY3JlYXRlRWxlbWVudCIsIk5vZGVWaWV3V3JhcHBlciIsImxvYWRlZCIsImRlbGV0ZVN0YXR1cyIsImp1c3RpZnlDb250ZW50IiwibW9kZSIsInZhbHVlIiwicGVyY2VudCIsIl9leHRlbmRzMiIsInJlZiIsInNyYyIsIm9uTG9hZCIsImNsYXNzTmFtZSIsInpJbmRleCIsImJhY2tncm91bmQiLCJib3hTaGFkb3ciLCJzaG93RG9uZSIsIm9uRG9uZSIsIl9wcm9wcyRpbWFnZUhhbmRsaW5nIiwiZm9jdXMiLCJkaXNhYmxlSW1hZ2VBbGlnbm1lbnRCdXR0b25zIiwiaW1hZ2VMb2FkZWQiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJvYmplY3QiLCJpc1JlcXVpcmVkIiwiZnVuYyIsIm51bWJlciIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leHRlbnNpb25zL2NvbXBvbmVudC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlLCB1c2VSZWYsIHVzZUVmZmVjdCwgdXNlQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IGlzRXF1YWwgZnJvbSAnbG9kYXNoL2lzRXF1YWwnO1xuaW1wb3J0IGRlYnVnIGZyb20gJ2RlYnVnJztcbmltcG9ydCBMaW5lYXJQcm9ncmVzcyBmcm9tICdAbXVpL21hdGVyaWFsL0xpbmVhclByb2dyZXNzJztcbmltcG9ydCB7IHN0eWxlZCB9IGZyb20gJ0BtdWkvbWF0ZXJpYWwvc3R5bGVzJztcbmltcG9ydCB7IE5vZGVWaWV3V3JhcHBlciB9IGZyb20gJ0B0aXB0YXAvcmVhY3QnO1xuaW1wb3J0IEluc2VydEltYWdlSGFuZGxlciBmcm9tICcuLi9jb21wb25lbnRzL2ltYWdlL0luc2VydEltYWdlSGFuZGxlcic7XG5pbXBvcnQgSW1hZ2VUb29sYmFyIGZyb20gJy4uL2NvbXBvbmVudHMvaW1hZ2UvSW1hZ2VUb29sYmFyJztcbmltcG9ydCBDdXN0b21Ub29sYmFyV3JhcHBlciBmcm9tICcuL2N1c3RvbS10b29sYmFyLXdyYXBwZXInO1xuXG5jb25zdCBsb2cgPSBkZWJ1ZygnQHBpZS1saWI6ZWRpdGFibGUtaHRtbDpwbHVnaW5zOmltYWdlOmNvbXBvbmVudCcpO1xuXG5jb25zdCBTdHlsZWRQcm9ncmVzcyA9IHN0eWxlZChMaW5lYXJQcm9ncmVzcywge1xuICBzaG91bGRGb3J3YXJkUHJvcDogKHByb3ApID0+IHByb3AgIT09ICdoaWRlUHJvZ3Jlc3MnLFxufSkoKHsgaGlkZVByb2dyZXNzIH0pID0+ICh7XG4gIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICBsZWZ0OiAnMCcsXG4gIHdpZHRoOiAnZml0LWNvbnRlbnQnLFxuICB0b3A6ICcwJScsXG4gIHRyYW5zaXRpb246ICdvcGFjaXR5IDIwMG1zIGxpbmVhcicsXG4gIC4uLihoaWRlUHJvZ3Jlc3MgJiYge1xuICAgIG9wYWNpdHk6IDAsXG4gIH0pLFxufSkpO1xuXG5jb25zdCBTdHlsZWRSb290ID0gc3R5bGVkKCdkaXYnLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiAocHJvcCkgPT4gIVsnYWN0aXZlJywgJ2xvYWRpbmcnLCAncGVuZGluZ0RlbGV0ZSddLmluY2x1ZGVzKHByb3ApLFxufSkoKHsgdGhlbWUsIGFjdGl2ZSwgbG9hZGluZywgcGVuZGluZ0RlbGV0ZSB9KSA9PiAoe1xuICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgYm9yZGVyOiBhY3RpdmUgPyBgc29saWQgMXB4ICR7dGhlbWUucGFsZXR0ZS5wcmltYXJ5Lm1haW59YCA6IGBzb2xpZCAxcHggJHt0aGVtZS5wYWxldHRlLmNvbW1vbi53aGl0ZX1gLFxuICBkaXNwbGF5OiAnZmxleCcsXG4gIHRyYW5zaXRpb246ICdvcGFjaXR5IDIwMG1zIGxpbmVhcicsXG4gIC4uLihsb2FkaW5nICYmIHtcbiAgICBvcGFjaXR5OiAwLjMsXG4gIH0pLFxuICAuLi4ocGVuZGluZ0RlbGV0ZSAmJiB7XG4gICAgb3BhY2l0eTogMC4zLFxuICB9KSxcbn0pKTtcblxuY29uc3QgU3R5bGVkSW1hZ2VDb250YWluZXIgPSBzdHlsZWQoJ2RpdicpKCh7IHRoZW1lIH0pID0+ICh7XG4gIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICB3aWR0aDogJ2ZpdC1jb250ZW50JyxcbiAgZGlzcGxheTogJ2ZsZXgnLFxuICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgJyYmOmhvdmVyID4gLnJlc2l6ZSc6IHtcbiAgICBkaXNwbGF5OiAnYmxvY2snLFxuICB9LFxufSkpO1xuXG5jb25zdCBTdHlsZWRSZXNpemUgPSBzdHlsZWQoJ2RpdicpKCh7IHRoZW1lIH0pID0+ICh7XG4gIGJhY2tncm91bmRDb2xvcjogdGhlbWUucGFsZXR0ZS5wcmltYXJ5Lm1haW4sXG4gIGN1cnNvcjogJ2NvbC1yZXNpemUnLFxuICBoZWlnaHQ6ICczNXB4JyxcbiAgd2lkdGg6ICc1cHgnLFxuICBib3JkZXJSYWRpdXM6IDgsXG4gIG1hcmdpbkxlZnQ6ICc1cHgnLFxuICBtYXJnaW5SaWdodDogJzEwcHgnLFxuICBkaXNwbGF5OiAnbm9uZScsXG59KSk7XG5cbmNvbnN0IHNpemVQeCA9IChzKSA9PiAocyA/IGAke3N9cHhgIDogJ2NhbGMoMjBweCknKTtcblxuZnVuY3Rpb24gSW1hZ2VDb21wb25lbnQocHJvcHMpIHtcbiAgY29uc3Qge1xuICAgIG5vZGUsXG4gICAgZWRpdG9yLFxuICAgIGF0dHJpYnV0ZXMsXG4gICAgb25Gb2N1cyxcbiAgICBzZWxlY3RlZCxcbiAgICBvcHRpb25zLFxuICAgIG1heEltYWdlV2lkdGggPSA3MDAsXG4gICAgbWF4SW1hZ2VIZWlnaHQgPSA5MDAsXG4gICAgbGF0ZXgsXG4gICAgaGFuZGxlQ2hhbmdlLFxuICAgIGhhbmRsZURvbmUsXG4gIH0gPSBwcm9wcztcbiAgY29uc3QgeyBhbHQgfSA9IG5vZGUuYXR0cnM7XG5cbiAgY29uc3QgW3Nob3dUb29sYmFyLCBzZXRTaG93VG9vbGJhcl0gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgY29uc3QgaW1nUmVmID0gdXNlUmVmKG51bGwpO1xuICBjb25zdCByZXNpemVSZWYgPSB1c2VSZWYobnVsbCk7XG4gIGNvbnN0IHRvb2xiYXJSZWYgPSB1c2VSZWYobnVsbCk7XG5cbiAgY29uc3QgZ2V0UGVyY2VudEZyb21XaWR0aCA9IHVzZUNhbGxiYWNrKCh3aWR0aCkgPT4ge1xuICAgIGNvbnN0IGZsb29yZWQgPSAod2lkdGggLyBpbWdSZWYuY3VycmVudC5uYXR1cmFsV2lkdGgpICogNDtcbiAgICByZXR1cm4gcGFyc2VJbnQoZmxvb3JlZC50b0ZpeGVkKDApICogMjUsIDEwKTtcbiAgfSwgW10pO1xuXG4gIGNvbnN0IGFwcGx5U2l6ZURhdGEgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgaWYgKCFub2RlLmF0dHJzLndpZHRoIHx8ICFpbWdSZWYuY3VycmVudCkgcmV0dXJuO1xuXG4gICAgY29uc3QgdXBkYXRlID0ge1xuICAgICAgLi4ubm9kZS5hdHRycyxcbiAgICAgIHJlc2l6ZVBlcmNlbnQ6IGdldFBlcmNlbnRGcm9tV2lkdGgobm9kZS5hdHRycy53aWR0aCksXG4gICAgfTtcblxuICAgIGlmICghaXNFcXVhbCh1cGRhdGUsIG5vZGUuYXR0cnMpKSB7XG4gICAgICBlZGl0b3IuY29tbWFuZHMudXBkYXRlQXR0cmlidXRlcygnaW1hZ2VVcGxvYWROb2RlJywgdXBkYXRlKTtcbiAgICB9XG4gIH0sIFtlZGl0b3IsIG5vZGUuYXR0cnMsIGdldFBlcmNlbnRGcm9tV2lkdGhdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHsgc2VsZWN0aW9uIH0gPSBlZGl0b3Iuc3RhdGU7XG4gICAgY29uc3Qgb25seVRoaXNOb2RlU2VsZWN0ZWQgPSBzZWxlY3Rpb24uZnJvbSArIG5vZGUubm9kZVNpemUgPT09IHNlbGVjdGlvbi50bztcblxuICAgIGlmIChzZWxlY3RlZCkge1xuICAgICAgaWYgKG9ubHlUaGlzTm9kZVNlbGVjdGVkKSB7XG4gICAgICAgIHNldFNob3dUb29sYmFyKHNlbGVjdGVkKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgc2V0U2hvd1Rvb2xiYXIoc2VsZWN0ZWQpO1xuICAgIH1cbiAgfSwgW2VkaXRvciwgbm9kZSwgc2VsZWN0ZWRdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIG9wdGlvbnMuaW1hZ2VIYW5kbGluZy5pbnNlcnRJbWFnZVJlcXVlc3RlZChub2RlLCAoZmluaXNoKSA9PiBuZXcgSW5zZXJ0SW1hZ2VIYW5kbGVyKGVkaXRvciwgbm9kZSwgZmluaXNoKSk7XG4gICAgYXBwbHlTaXplRGF0YSgpO1xuXG4gICAgY29uc3QgcmVzaXplSGFuZGxlID0gcmVzaXplUmVmLmN1cnJlbnQ7XG4gICAgaWYgKHJlc2l6ZUhhbmRsZSkge1xuICAgICAgcmVzaXplSGFuZGxlLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGluaXRSZXNpemUsIGZhbHNlKTtcbiAgICB9XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmIChyZXNpemVIYW5kbGUpIHJlc2l6ZUhhbmRsZS5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBpbml0UmVzaXplLCBmYWxzZSk7XG4gICAgfTtcbiAgfSwgW10pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgYXBwbHlTaXplRGF0YSgpO1xuICB9KTtcblxuICBjb25zdCBsb2FkSW1hZ2UgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgY29uc3QgYm94ID0gaW1nUmVmLmN1cnJlbnQ7XG4gICAgaWYgKCFib3gpIHJldHVybjtcblxuICAgIGlmICghYm94LnN0eWxlLndpZHRoIHx8IGJveC5zdHlsZS53aWR0aCA9PT0gJ2NhbGMoMjBweCknKSB7XG4gICAgICBjb25zdCB3ID0gTWF0aC5taW4oYm94Lm5hdHVyYWxXaWR0aCwgbWF4SW1hZ2VXaWR0aCk7XG4gICAgICBjb25zdCBoID0gTWF0aC5taW4oYm94Lm5hdHVyYWxIZWlnaHQsIG1heEltYWdlSGVpZ2h0KTtcblxuICAgICAgYm94LnN0eWxlLndpZHRoID0gYCR7d31weGA7XG4gICAgICBib3guc3R5bGUuaGVpZ2h0ID0gYCR7aH1weGA7XG5cbiAgICAgIGNvbnN0IHVwZGF0ZSA9IHsgd2lkdGg6IHcsIGhlaWdodDogaCB9O1xuICAgICAgaWYgKCFpc0VxdWFsKHVwZGF0ZSwgbm9kZS5hdHRycykpIHtcbiAgICAgICAgZWRpdG9yLmNvbW1hbmRzLnVwZGF0ZUF0dHJpYnV0ZXMoJ2ltYWdlVXBsb2FkTm9kZScsIHVwZGF0ZSk7XG4gICAgICB9XG4gICAgfVxuICB9LCBbZWRpdG9yLCBub2RlLmF0dHJzLCBtYXhJbWFnZVdpZHRoLCBtYXhJbWFnZUhlaWdodF0pO1xuXG4gIGNvbnN0IHVwZGF0ZUFzcGVjdCA9IChpbml0aWFsLCBuZXh0LCBrZWVwQXNwZWN0ID0gdHJ1ZSwgcmVzaXplVHlwZSkgPT4ge1xuICAgIGlmIChrZWVwQXNwZWN0KSB7XG4gICAgICBjb25zdCByYXRpbyA9IGluaXRpYWwud2lkdGggLyBpbml0aWFsLmhlaWdodDtcbiAgICAgIGlmIChyZXNpemVUeXBlID09PSAnaGVpZ2h0JykgcmV0dXJuIHsgd2lkdGg6IG5leHQuaGVpZ2h0ICogcmF0aW8sIGhlaWdodDogbmV4dC5oZWlnaHQgfTtcbiAgICAgIHJldHVybiB7IHdpZHRoOiBuZXh0LndpZHRoLCBoZWlnaHQ6IG5leHQud2lkdGggLyByYXRpbyB9O1xuICAgIH1cbiAgICByZXR1cm4gbmV4dDtcbiAgfTtcblxuICBjb25zdCBzdGFydFJlc2l6ZSA9IHVzZUNhbGxiYWNrKFxuICAgIChlKSA9PiB7XG4gICAgICBjb25zdCBib3ggPSBpbWdSZWYuY3VycmVudDtcbiAgICAgIGlmICghYm94KSByZXR1cm47XG5cbiAgICAgIGNvbnN0IGJvdW5kcyA9IGUudGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgY29uc3QgaW5pdGlhbCA9IHsgd2lkdGg6IGJveC5uYXR1cmFsV2lkdGgsIGhlaWdodDogYm94Lm5hdHVyYWxIZWlnaHQgfTtcblxuICAgICAgY29uc3QgbmV4dCA9IHVwZGF0ZUFzcGVjdChpbml0aWFsLCB7XG4gICAgICAgIHdpZHRoOiBlLmNsaWVudFggLSBib3VuZHMubGVmdCxcbiAgICAgICAgaGVpZ2h0OiBlLmNsaWVudFkgLSBib3VuZHMudG9wLFxuICAgICAgfSk7XG5cbiAgICAgIGlmIChuZXh0LndpZHRoID4gNTAgJiYgbmV4dC5oZWlnaHQgPiA1MCAmJiBuZXh0LndpZHRoIDw9IDcwMCAmJiBuZXh0LmhlaWdodCA8PSA5MDApIHtcbiAgICAgICAgYm94LnN0eWxlLndpZHRoID0gYCR7bmV4dC53aWR0aH1weGA7XG4gICAgICAgIGJveC5zdHlsZS5oZWlnaHQgPSBgJHtuZXh0LmhlaWdodH1weGA7XG5cbiAgICAgICAgY29uc3QgdXBkYXRlID0geyB3aWR0aDogbmV4dC53aWR0aCwgaGVpZ2h0OiBuZXh0LmhlaWdodCB9O1xuICAgICAgICBpZiAoIWlzRXF1YWwodXBkYXRlLCBub2RlLmF0dHJzKSkge1xuICAgICAgICAgIGVkaXRvci5jb21tYW5kcy51cGRhdGVBdHRyaWJ1dGVzKCdpbWFnZVVwbG9hZE5vZGUnLCB1cGRhdGUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBbZWRpdG9yLCBub2RlLmF0dHJzXSxcbiAgKTtcblxuICBjb25zdCBvbkNoYW5nZSA9IHVzZUNhbGxiYWNrKFxuICAgIChuZXdWYWx1ZXMpID0+IHtcbiAgICAgIGVkaXRvci5jb21tYW5kcy51cGRhdGVBdHRyaWJ1dGVzKCdpbWFnZVVwbG9hZE5vZGUnLCBuZXdWYWx1ZXMpO1xuICAgIH0sXG4gICAgW2VkaXRvcl0sXG4gICk7XG5cbiAgY29uc3Qgc3RvcFJlc2l6ZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgc3RhcnRSZXNpemUpO1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgc3RvcFJlc2l6ZSk7XG4gIH0sIFtzdGFydFJlc2l6ZV0pO1xuXG4gIGNvbnN0IGluaXRSZXNpemUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHN0YXJ0UmVzaXplKTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIHN0b3BSZXNpemUpO1xuICB9LCBbc3RhcnRSZXNpemUsIHN0b3BSZXNpemVdKTtcblxuICBjb25zdCBzdHlsZSA9IHtcbiAgICB3aWR0aDogc2l6ZVB4KG5vZGUuYXR0cnMud2lkdGgpLFxuICAgIGhlaWdodDogc2l6ZVB4KG5vZGUuYXR0cnMuaGVpZ2h0KSxcbiAgICBvYmplY3RGaXQ6ICdjb250YWluJyxcbiAgfTtcblxuICBjb25zdCBmbGV4QWxpZ24gPSB7IGxlZnQ6ICdmbGV4LXN0YXJ0JywgY2VudGVyOiAnY2VudGVyJywgcmlnaHQ6ICdmbGV4LWVuZCcgfVtub2RlLmF0dHJzLmFsaWdubWVudF0gfHwgJ2ZsZXgtc3RhcnQnO1xuXG4gIHJldHVybiAoXG4gICAgPE5vZGVWaWV3V3JhcHBlcj5cbiAgICAgIDxTdHlsZWRSb290XG4gICAgICAgIG9uRm9jdXM9e29uRm9jdXN9XG4gICAgICAgIGFjdGl2ZT17c2VsZWN0ZWR9XG4gICAgICAgIGxvYWRpbmc9eyFub2RlLmF0dHJzLmxvYWRlZH1cbiAgICAgICAgcGVuZGluZ0RlbGV0ZT17bm9kZS5hdHRycy5kZWxldGVTdGF0dXMgPT09ICdwZW5kaW5nJ31cbiAgICAgICAgc3R5bGU9e3sganVzdGlmeUNvbnRlbnQ6IGZsZXhBbGlnbiB9fVxuICAgICAgPlxuICAgICAgICA8U3R5bGVkUHJvZ3Jlc3MgbW9kZT1cImRldGVybWluYXRlXCIgdmFsdWU9e25vZGUuYXR0cnMucGVyY2VudCB8fCAwfSBoaWRlUHJvZ3Jlc3M9e25vZGUuYXR0cnMubG9hZGVkfSAvPlxuXG4gICAgICAgIDxTdHlsZWRJbWFnZUNvbnRhaW5lcj5cbiAgICAgICAgICA8aW1nXG4gICAgICAgICAgICB7Li4uYXR0cmlidXRlc31cbiAgICAgICAgICAgIHJlZj17aW1nUmVmfVxuICAgICAgICAgICAgc3JjPXtub2RlLmF0dHJzLnNyY31cbiAgICAgICAgICAgIHN0eWxlPXtzdHlsZX1cbiAgICAgICAgICAgIG9uTG9hZD17bG9hZEltYWdlfVxuICAgICAgICAgICAgYWx0PXtub2RlLmF0dHJzLmFsdH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdHlsZWRSZXNpemUgcmVmPXtyZXNpemVSZWZ9IGNsYXNzTmFtZT1cInJlc2l6ZVwiIC8+XG4gICAgICAgIDwvU3R5bGVkSW1hZ2VDb250YWluZXI+XG4gICAgICA8L1N0eWxlZFJvb3Q+XG5cbiAgICAgIHtzaG93VG9vbGJhciAmJiAoXG4gICAgICAgIDxkaXZcbiAgICAgICAgICByZWY9e3Rvb2xiYXJSZWZ9XG4gICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICAgICAgdG9wOiAnMTAwJScsXG4gICAgICAgICAgICBsZWZ0OiAwLFxuICAgICAgICAgICAgekluZGV4OiAyMCxcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICd2YXIoLS1lZGl0YWJsZS1odG1sLXRvb2xiYXItYmcsICNlZmVmZWYpJyxcbiAgICAgICAgICAgIGJveFNoYWRvdzpcbiAgICAgICAgICAgICAgJzBweCAxcHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4xMiknLFxuICAgICAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAgPEN1c3RvbVRvb2xiYXJXcmFwcGVyXG4gICAgICAgICAgICBzaG93RG9uZVxuICAgICAgICAgICAgey4uLm9wdGlvbnN9XG4gICAgICAgICAgICBvbkRvbmU9eygpID0+IHtcbiAgICAgICAgICAgICAgc2V0U2hvd1Rvb2xiYXIoZmFsc2UpO1xuICAgICAgICAgICAgICBwcm9wcy5pbWFnZUhhbmRsaW5nPy5vbkRvbmUoKTtcbiAgICAgICAgICAgICAgcHJvcHMuZWRpdG9yLmNvbW1hbmRzLmZvY3VzKCdlbmQnKTtcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPEltYWdlVG9vbGJhclxuICAgICAgICAgICAgICBkaXNhYmxlSW1hZ2VBbGlnbm1lbnRCdXR0b25zPXtvcHRpb25zLmRpc2FibGVJbWFnZUFsaWdubWVudEJ1dHRvbnN9XG4gICAgICAgICAgICAgIGFsdD17bm9kZS5hdHRycy5hbHR9XG4gICAgICAgICAgICAgIGltYWdlTG9hZGVkPXtub2RlLmF0dHJzLmxvYWRlZH1cbiAgICAgICAgICAgICAgYWxpZ25tZW50PXtub2RlLmF0dHJzLmFsaWdubWVudCB8fCAnbGVmdCd9XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9DdXN0b21Ub29sYmFyV3JhcHBlcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICApfVxuICAgIDwvTm9kZVZpZXdXcmFwcGVyPlxuICApO1xufVxuXG5JbWFnZUNvbXBvbmVudC5wcm9wVHlwZXMgPSB7XG4gIG5vZGU6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgZWRpdG9yOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gIGF0dHJpYnV0ZXM6IFByb3BUeXBlcy5vYmplY3QsXG4gIG9uRm9jdXM6IFByb3BUeXBlcy5mdW5jLFxuICBtYXhJbWFnZVdpZHRoOiBQcm9wVHlwZXMubnVtYmVyLFxuICBtYXhJbWFnZUhlaWdodDogUHJvcFR5cGVzLm51bWJlcixcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEltYWdlQ29tcG9uZW50O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsVUFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsUUFBQSxHQUFBRCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUksTUFBQSxHQUFBRixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUssZUFBQSxHQUFBSCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQU0sT0FBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sT0FBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsbUJBQUEsR0FBQU4sc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFTLGFBQUEsR0FBQVAsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFVLHFCQUFBLEdBQUFSLHNCQUFBLENBQUFGLE9BQUE7QUFBNEQsU0FBQUQsd0JBQUFZLENBQUEsRUFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxNQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFkLHVCQUFBLFlBQUFBLHdCQUFBWSxDQUFBLEVBQUFDLENBQUEsU0FBQUEsQ0FBQSxJQUFBRCxDQUFBLElBQUFBLENBQUEsQ0FBQUssVUFBQSxTQUFBTCxDQUFBLE1BQUFNLENBQUEsRUFBQUMsQ0FBQSxFQUFBQyxDQUFBLEtBQUFDLFNBQUEsbUJBQUFULENBQUEsaUJBQUFBLENBQUEsZ0JBQUFVLE9BQUEsQ0FBQVYsQ0FBQSwwQkFB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
|