@pie-lib/editable-html-tip-tap 1.1.1-next.4 → 1.2.0-next.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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 +2 -2
- package/lib/components/TiptapContainer.js.map +1 -1
- package/lib/components/characters/characterUtils.js +1 -1
- package/lib/components/characters/characterUtils.js.map +1 -1
- package/lib/components/characters/custom-popper.js +1 -1
- package/lib/components/characters/custom-popper.js.map +1 -1
- package/lib/components/common/done-button.js +1 -1
- package/lib/components/common/done-button.js.map +1 -1
- package/lib/components/common/toolbar-buttons.js +1 -1
- package/lib/components/common/toolbar-buttons.js.map +1 -1
- package/lib/components/icons/CssIcon.js +1 -1
- package/lib/components/icons/CssIcon.js.map +1 -1
- package/lib/components/icons/RespArea.js +1 -1
- package/lib/components/icons/RespArea.js.map +1 -1
- package/lib/components/icons/TableIcons.js +1 -1
- package/lib/components/icons/TableIcons.js.map +1 -1
- package/lib/components/icons/TextAlign.js +1 -1
- package/lib/components/icons/TextAlign.js.map +1 -1
- package/lib/components/image/AltDialog.js +1 -1
- package/lib/components/image/AltDialog.js.map +1 -1
- package/lib/components/image/ImageToolbar.js +1 -1
- package/lib/components/image/ImageToolbar.js.map +1 -1
- package/lib/components/image/InsertImageHandler.js +1 -1
- package/lib/components/image/InsertImageHandler.js.map +1 -1
- package/lib/components/media/MediaDialog.js +1 -1
- package/lib/components/media/MediaDialog.js.map +1 -1
- package/lib/components/media/MediaToolbar.js +1 -1
- package/lib/components/media/MediaToolbar.js.map +1 -1
- package/lib/components/media/MediaWrapper.js +1 -1
- package/lib/components/media/MediaWrapper.js.map +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/DragInTheBlank/choice.js.map +1 -1
- package/lib/components/respArea/ExplicitConstructedResponse.js +1 -1
- package/lib/components/respArea/ExplicitConstructedResponse.js.map +1 -1
- package/lib/components/respArea/InlineDropdown.js +1 -1
- package/lib/components/respArea/InlineDropdown.js.map +1 -1
- package/lib/components/respArea/ToolbarIcon.js +1 -1
- package/lib/components/respArea/ToolbarIcon.js.map +1 -1
- package/lib/constants.js +1 -1
- package/lib/constants.js.map +1 -1
- package/lib/extensions/css.js +1 -1
- package/lib/extensions/css.js.map +1 -1
- package/lib/extensions/custom-toolbar-wrapper.js +1 -1
- package/lib/extensions/custom-toolbar-wrapper.js.map +1 -1
- package/lib/extensions/extended-table.js +1 -1
- package/lib/extensions/extended-table.js.map +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/image.js.map +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/math.js.map +1 -1
- package/lib/extensions/media.js +1 -1
- package/lib/extensions/media.js.map +1 -1
- package/lib/extensions/responseArea.js +1 -1
- package/lib/extensions/responseArea.js.map +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/styles/editorContainerStyles.js +1 -1
- package/lib/styles/editorContainerStyles.js.map +1 -1
- package/lib/theme.js +1 -1
- package/lib/theme.js.map +1 -1
- package/lib/utils/size.js +1 -1
- package/lib/utils/size.js.map +1 -1
- package/package.json +11 -7
- package/src/components/TiptapContainer.jsx +1 -1
- 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,96 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
var _react = _interopRequireDefault(require("react"));
|
|
5
|
-
var _react2 = require("@testing-library/react");
|
|
6
|
-
var _MediaWrapper = _interopRequireDefault(require("../media/MediaWrapper"));
|
|
7
|
-
describe('MediaWrapper', function () {
|
|
8
|
-
it('renders without crashing', function () {
|
|
9
|
-
var _render = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MediaWrapper["default"], null, "Content")),
|
|
10
|
-
container = _render.container;
|
|
11
|
-
expect(container).toBeInTheDocument();
|
|
12
|
-
});
|
|
13
|
-
it('renders children', function () {
|
|
14
|
-
var _render2 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MediaWrapper["default"], null, /*#__PURE__*/_react["default"].createElement("div", null, "Test Content"))),
|
|
15
|
-
getByText = _render2.getByText;
|
|
16
|
-
expect(getByText('Test Content')).toBeInTheDocument();
|
|
17
|
-
});
|
|
18
|
-
it('applies default width of 300', function () {
|
|
19
|
-
var _render3 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MediaWrapper["default"], null, "Content")),
|
|
20
|
-
container = _render3.container;
|
|
21
|
-
var wrapper = container.firstChild;
|
|
22
|
-
expect(wrapper).toHaveStyle({
|
|
23
|
-
width: '300px'
|
|
24
|
-
});
|
|
25
|
-
});
|
|
26
|
-
it('applies custom width from props', function () {
|
|
27
|
-
var _render4 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MediaWrapper["default"], {
|
|
28
|
-
width: 500
|
|
29
|
-
}, "Content")),
|
|
30
|
-
container = _render4.container;
|
|
31
|
-
var wrapper = container.firstChild;
|
|
32
|
-
expect(wrapper).toHaveStyle({
|
|
33
|
-
width: '500px'
|
|
34
|
-
});
|
|
35
|
-
});
|
|
36
|
-
it('applies string width', function () {
|
|
37
|
-
var _render5 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MediaWrapper["default"], {
|
|
38
|
-
width: "50%"
|
|
39
|
-
}, "Content")),
|
|
40
|
-
container = _render5.container;
|
|
41
|
-
var wrapper = container.firstChild;
|
|
42
|
-
expect(wrapper).toHaveStyle({
|
|
43
|
-
width: '50%'
|
|
44
|
-
});
|
|
45
|
-
});
|
|
46
|
-
it('applies editor styles when editor prop is true', function () {
|
|
47
|
-
var _render6 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MediaWrapper["default"], {
|
|
48
|
-
editor: true
|
|
49
|
-
}, "Content")),
|
|
50
|
-
container = _render6.container;
|
|
51
|
-
var wrapper = container.firstChild;
|
|
52
|
-
expect(wrapper).toHaveStyle({
|
|
53
|
-
display: 'inline-block',
|
|
54
|
-
overflow: 'hidden'
|
|
55
|
-
});
|
|
56
|
-
});
|
|
57
|
-
it('does not apply editor styles when editor prop is false', function () {
|
|
58
|
-
var _render7 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MediaWrapper["default"], {
|
|
59
|
-
editor: false
|
|
60
|
-
}, "Content")),
|
|
61
|
-
container = _render7.container;
|
|
62
|
-
var wrapper = container.firstChild;
|
|
63
|
-
expect(wrapper).not.toHaveStyle({
|
|
64
|
-
display: 'inline-block'
|
|
65
|
-
});
|
|
66
|
-
});
|
|
67
|
-
it('has relative positioning', function () {
|
|
68
|
-
var _render8 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MediaWrapper["default"], null, "Content")),
|
|
69
|
-
container = _render8.container;
|
|
70
|
-
var wrapper = container.firstChild;
|
|
71
|
-
expect(wrapper).toHaveStyle({
|
|
72
|
-
position: 'relative'
|
|
73
|
-
});
|
|
74
|
-
});
|
|
75
|
-
it('renders multiple children', function () {
|
|
76
|
-
var _render9 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MediaWrapper["default"], null, /*#__PURE__*/_react["default"].createElement("div", null, "First"), /*#__PURE__*/_react["default"].createElement("div", null, "Second"))),
|
|
77
|
-
getByText = _render9.getByText;
|
|
78
|
-
expect(getByText('First')).toBeInTheDocument();
|
|
79
|
-
expect(getByText('Second')).toBeInTheDocument();
|
|
80
|
-
});
|
|
81
|
-
it('passes additional props through', function () {
|
|
82
|
-
var _render0 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MediaWrapper["default"], {
|
|
83
|
-
"data-testid": "custom",
|
|
84
|
-
className: "custom-class"
|
|
85
|
-
}, "Content")),
|
|
86
|
-
container = _render0.container;
|
|
87
|
-
var wrapper = container.firstChild;
|
|
88
|
-
expect(wrapper).toHaveAttribute('data-testid', 'custom');
|
|
89
|
-
});
|
|
90
|
-
it('renders without children', function () {
|
|
91
|
-
var _render1 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MediaWrapper["default"], null)),
|
|
92
|
-
container = _render1.container;
|
|
93
|
-
expect(container.firstChild).toBeInTheDocument();
|
|
94
|
-
});
|
|
95
|
-
});
|
|
96
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdDIiLCJfTWVkaWFXcmFwcGVyIiwiZGVzY3JpYmUiLCJpdCIsIl9yZW5kZXIiLCJyZW5kZXIiLCJjcmVhdGVFbGVtZW50IiwiY29udGFpbmVyIiwiZXhwZWN0IiwidG9CZUluVGhlRG9jdW1lbnQiLCJfcmVuZGVyMiIsImdldEJ5VGV4dCIsIl9yZW5kZXIzIiwid3JhcHBlciIsImZpcnN0Q2hpbGQiLCJ0b0hhdmVTdHlsZSIsIndpZHRoIiwiX3JlbmRlcjQiLCJfcmVuZGVyNSIsIl9yZW5kZXI2IiwiZWRpdG9yIiwiZGlzcGxheSIsIm92ZXJmbG93IiwiX3JlbmRlcjciLCJub3QiLCJfcmVuZGVyOCIsInBvc2l0aW9uIiwiX3JlbmRlcjkiLCJfcmVuZGVyMCIsImNsYXNzTmFtZSIsInRvSGF2ZUF0dHJpYnV0ZSIsIl9yZW5kZXIxIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvX190ZXN0c19fL01lZGlhV3JhcHBlci50ZXN0LmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSAnQHRlc3RpbmctbGlicmFyeS9yZWFjdCc7XG5pbXBvcnQgTWVkaWFXcmFwcGVyIGZyb20gJy4uL21lZGlhL01lZGlhV3JhcHBlcic7XG5cbmRlc2NyaWJlKCdNZWRpYVdyYXBwZXInLCAoKSA9PiB7XG4gIGl0KCdyZW5kZXJzIHdpdGhvdXQgY3Jhc2hpbmcnLCAoKSA9PiB7XG4gICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8TWVkaWFXcmFwcGVyPkNvbnRlbnQ8L01lZGlhV3JhcHBlcj4pO1xuICAgIGV4cGVjdChjb250YWluZXIpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gIH0pO1xuXG4gIGl0KCdyZW5kZXJzIGNoaWxkcmVuJywgKCkgPT4ge1xuICAgIGNvbnN0IHsgZ2V0QnlUZXh0IH0gPSByZW5kZXIoXG4gICAgICA8TWVkaWFXcmFwcGVyPlxuICAgICAgICA8ZGl2PlRlc3QgQ29udGVudDwvZGl2PlxuICAgICAgPC9NZWRpYVdyYXBwZXI+LFxuICAgICk7XG4gICAgZXhwZWN0KGdldEJ5VGV4dCgnVGVzdCBDb250ZW50JykpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gIH0pO1xuXG4gIGl0KCdhcHBsaWVzIGRlZmF1bHQgd2lkdGggb2YgMzAwJywgKCkgPT4ge1xuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPE1lZGlhV3JhcHBlcj5Db250ZW50PC9NZWRpYVdyYXBwZXI+KTtcbiAgICBjb25zdCB3cmFwcGVyID0gY29udGFpbmVyLmZpcnN0Q2hpbGQ7XG4gICAgZXhwZWN0KHdyYXBwZXIpLnRvSGF2ZVN0eWxlKHsgd2lkdGg6ICczMDBweCcgfSk7XG4gIH0pO1xuXG4gIGl0KCdhcHBsaWVzIGN1c3RvbSB3aWR0aCBmcm9tIHByb3BzJywgKCkgPT4ge1xuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPE1lZGlhV3JhcHBlciB3aWR0aD17NTAwfT5Db250ZW50PC9NZWRpYVdyYXBwZXI+KTtcbiAgICBjb25zdCB3cmFwcGVyID0gY29udGFpbmVyLmZpcnN0Q2hpbGQ7XG4gICAgZXhwZWN0KHdyYXBwZXIpLnRvSGF2ZVN0eWxlKHsgd2lkdGg6ICc1MDBweCcgfSk7XG4gIH0pO1xuXG4gIGl0KCdhcHBsaWVzIHN0cmluZyB3aWR0aCcsICgpID0+IHtcbiAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxNZWRpYVdyYXBwZXIgd2lkdGg9XCI1MCVcIj5Db250ZW50PC9NZWRpYVdyYXBwZXI+KTtcbiAgICBjb25zdCB3cmFwcGVyID0gY29udGFpbmVyLmZpcnN0Q2hpbGQ7XG4gICAgZXhwZWN0KHdyYXBwZXIpLnRvSGF2ZVN0eWxlKHsgd2lkdGg6ICc1MCUnIH0pO1xuICB9KTtcblxuICBpdCgnYXBwbGllcyBlZGl0b3Igc3R5bGVzIHdoZW4gZWRpdG9yIHByb3AgaXMgdHJ1ZScsICgpID0+IHtcbiAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxNZWRpYVdyYXBwZXIgZWRpdG9yPXt0cnVlfT5Db250ZW50PC9NZWRpYVdyYXBwZXI+KTtcbiAgICBjb25zdCB3cmFwcGVyID0gY29udGFpbmVyLmZpcnN0Q2hpbGQ7XG4gICAgZXhwZWN0KHdyYXBwZXIpLnRvSGF2ZVN0eWxlKHsgZGlzcGxheTogJ2lubGluZS1ibG9jaycsIG92ZXJmbG93OiAnaGlkZGVuJyB9KTtcbiAgfSk7XG5cbiAgaXQoJ2RvZXMgbm90IGFwcGx5IGVkaXRvciBzdHlsZXMgd2hlbiBlZGl0b3IgcHJvcCBpcyBmYWxzZScsICgpID0+IHtcbiAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxNZWRpYVdyYXBwZXIgZWRpdG9yPXtmYWxzZX0+Q29udGVudDwvTWVkaWFXcmFwcGVyPik7XG4gICAgY29uc3Qgd3JhcHBlciA9IGNvbnRhaW5lci5maXJzdENoaWxkO1xuICAgIGV4cGVjdCh3cmFwcGVyKS5ub3QudG9IYXZlU3R5bGUoeyBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyB9KTtcbiAgfSk7XG5cbiAgaXQoJ2hhcyByZWxhdGl2ZSBwb3NpdGlvbmluZycsICgpID0+IHtcbiAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxNZWRpYVdyYXBwZXI+Q29udGVudDwvTWVkaWFXcmFwcGVyPik7XG4gICAgY29uc3Qgd3JhcHBlciA9IGNvbnRhaW5lci5maXJzdENoaWxkO1xuICAgIGV4cGVjdCh3cmFwcGVyKS50b0hhdmVTdHlsZSh7IHBvc2l0aW9uOiAncmVsYXRpdmUnIH0pO1xuICB9KTtcblxuICBpdCgncmVuZGVycyBtdWx0aXBsZSBjaGlsZHJlbicsICgpID0+IHtcbiAgICBjb25zdCB7IGdldEJ5VGV4dCB9ID0gcmVuZGVyKFxuICAgICAgPE1lZGlhV3JhcHBlcj5cbiAgICAgICAgPGRpdj5GaXJzdDwvZGl2PlxuICAgICAgICA8ZGl2PlNlY29uZDwvZGl2PlxuICAgICAgPC9NZWRpYVdyYXBwZXI+LFxuICAgICk7XG4gICAgZXhwZWN0KGdldEJ5VGV4dCgnRmlyc3QnKSkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICBleHBlY3QoZ2V0QnlUZXh0KCdTZWNvbmQnKSkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgfSk7XG5cbiAgaXQoJ3Bhc3NlcyBhZGRpdGlvbmFsIHByb3BzIHRocm91Z2gnLCAoKSA9PiB7XG4gICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcihcbiAgICAgIDxNZWRpYVdyYXBwZXIgZGF0YS10ZXN0aWQ9XCJjdXN0b21cIiBjbGFzc05hbWU9XCJjdXN0b20tY2xhc3NcIj5cbiAgICAgICAgQ29udGVudFxuICAgICAgPC9NZWRpYVdyYXBwZXI+LFxuICAgICk7XG4gICAgY29uc3Qgd3JhcHBlciA9IGNvbnRhaW5lci5maXJzdENoaWxkO1xuICAgIGV4cGVjdCh3cmFwcGVyKS50b0hhdmVBdHRyaWJ1dGUoJ2RhdGEtdGVzdGlkJywgJ2N1c3RvbScpO1xuICB9KTtcblxuICBpdCgncmVuZGVycyB3aXRob3V0IGNoaWxkcmVuJywgKCkgPT4ge1xuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPE1lZGlhV3JhcHBlciAvPik7XG4gICAgZXhwZWN0KGNvbnRhaW5lci5maXJzdENoaWxkKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICB9KTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxhQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFFQUcsUUFBUSxDQUFDLGNBQWMsRUFBRSxZQUFNO0VBQzdCQyxFQUFFLENBQUMsMEJBQTBCLEVBQUUsWUFBTTtJQUNuQyxJQUFBQyxPQUFBLEdBQXNCLElBQUFDLGNBQU0sZUFBQ1IsTUFBQSxZQUFBUyxhQUFBLENBQUNMLGFBQUEsV0FBWSxRQUFDLFNBQXFCLENBQUMsQ0FBQztNQUExRE0sU0FBUyxHQUFBSCxPQUFBLENBQVRHLFNBQVM7SUFDakJDLE1BQU0sQ0FBQ0QsU0FBUyxDQUFDLENBQUNFLGlCQUFpQixDQUFDLENBQUM7RUFDdkMsQ0FBQyxDQUFDO0VBRUZOLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxZQUFNO0lBQzNCLElBQUFPLFFBQUEsR0FBc0IsSUFBQUwsY0FBTSxlQUMxQlIsTUFBQSxZQUFBUyxhQUFBLENBQUNMLGFBQUEsV0FBWSxxQkFDWEosTUFBQSxZQUFBUyxhQUFBLGNBQUssY0FBaUIsQ0FDVixDQUNoQixDQUFDO01BSk9LLFNBQVMsR0FBQUQsUUFBQSxDQUFUQyxTQUFTO0lBS2pCSCxNQUFNLENBQUNHLFNBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDRixpQkFBaUIsQ0FBQyxDQUFDO0VBQ3ZELENBQUMsQ0FBQztFQUVGTixFQUFFLENBQUMsOEJBQThCLEVBQUUsWUFBTTtJQUN2QyxJQUFBUyxRQUFBLEdBQXNCLElBQUFQLGNBQU0sZUFBQ1IsTUFBQSxZQUFBUyxhQUFBLENBQUNMLGFBQUEsV0FBWSxRQUFDLFNBQXFCLENBQUMsQ0FBQztNQUExRE0sU0FBUyxHQUFBSyxRQUFBLENBQVRMLFNBQVM7SUFDakIsSUFBTU0sT0FBTyxHQUFHTixTQUFTLENBQUNPLFVBQVU7SUFDcENOLE1BQU0sQ0FBQ0ssT0FBTyxDQUFDLENBQUNFLFdBQVcsQ0FBQztNQUFFQyxLQUFLLEVBQUU7SUFBUSxDQUFDLENBQUM7RUFDakQsQ0FBQyxDQUFDO0VBRUZiLEVBQUUsQ0FBQyxpQ0FBaUMsRUFBRSxZQUFNO0lBQzFDLElBQUFjLFFBQUEsR0FBc0IsSUFBQVosY0FBTSxlQUFDUixNQUFBLFlBQUFTLGFBQUEsQ0FBQ0wsYUFBQSxXQUFZO1FBQUNlLEtBQUssRUFBRTtNQUFJLEdBQUMsU0FBcUIsQ0FBQyxDQUFDO01BQXRFVCxTQUFTLEdBQUFVLFFBQUEsQ0FBVFYsU0FBUztJQUNqQixJQUFNTSxPQUFPLEdBQUdOLFNBQVMsQ0FBQ08sVUFBVTtJQUNwQ04sTUFBTSxDQUFDSyxPQUFPLENBQUMsQ0FBQ0UsV0FBVyxDQUFDO01BQUVDLEtBQUssRUFBRTtJQUFRLENBQUMsQ0FBQztFQUNqRCxDQUFDLENBQUM7RUFFRmIsRUFBRSxDQUFDLHNCQUFzQixFQUFFLFlBQU07SUFDL0IsSUFBQWUsUUFBQSxHQUFzQixJQUFBYixjQUFNLGVBQUNSLE1BQUEsWUFBQVMsYUFBQSxDQUFDTCxhQUFBLFdBQVk7UUFBQ2UsS0FBSyxFQUFDO01BQUssR0FBQyxTQUFxQixDQUFDLENBQUM7TUFBdEVULFNBQVMsR0FBQVcsUUFBQSxDQUFUWCxTQUFTO0lBQ2pCLElBQU1NLE9BQU8sR0FBR04sU0FBUyxDQUFDTyxVQUFVO0lBQ3BDTixNQUFNLENBQUNLLE9BQU8sQ0FBQyxDQUFDRSxXQUFXLENBQUM7TUFBRUMsS0FBSyxFQUFFO0lBQU0sQ0FBQyxDQUFDO0VBQy9DLENBQUMsQ0FBQztFQUVGYixFQUFFLENBQUMsZ0RBQWdELEVBQUUsWUFBTTtJQUN6RCxJQUFBZ0IsUUFBQSxHQUFzQixJQUFBZCxjQUFNLGVBQUNSLE1BQUEsWUFBQVMsYUFBQSxDQUFDTCxhQUFBLFdBQVk7UUFBQ21CLE1BQU0sRUFBRTtNQUFLLEdBQUMsU0FBcUIsQ0FBQyxDQUFDO01BQXhFYixTQUFTLEdBQUFZLFFBQUEsQ0FBVFosU0FBUztJQUNqQixJQUFNTSxPQUFPLEdBQUdOLFNBQVMsQ0FBQ08sVUFBVTtJQUNwQ04sTUFBTSxDQUFDSyxPQUFPLENBQUMsQ0FBQ0UsV0FBVyxDQUFDO01BQUVNLE9BQU8sRUFBRSxjQUFjO01BQUVDLFFBQVEsRUFBRTtJQUFTLENBQUMsQ0FBQztFQUM5RSxDQUFDLENBQUM7RUFFRm5CLEVBQUUsQ0FBQyx3REFBd0QsRUFBRSxZQUFNO0lBQ2pFLElBQUFvQixRQUFBLEdBQXNCLElBQUFsQixjQUFNLGVBQUNSLE1BQUEsWUFBQVMsYUFBQSxDQUFDTCxhQUFBLFdBQVk7UUFBQ21CLE1BQU0sRUFBRTtNQUFNLEdBQUMsU0FBcUIsQ0FBQyxDQUFDO01BQXpFYixTQUFTLEdBQUFnQixRQUFBLENBQVRoQixTQUFTO0lBQ2pCLElBQU1NLE9BQU8sR0FBR04sU0FBUyxDQUFDTyxVQUFVO0lBQ3BDTixNQUFNLENBQUNLLE9BQU8sQ0FBQyxDQUFDVyxHQUFHLENBQUNULFdBQVcsQ0FBQztNQUFFTSxPQUFPLEVBQUU7SUFBZSxDQUFDLENBQUM7RUFDOUQsQ0FBQyxDQUFDO0VBRUZsQixFQUFFLENBQUMsMEJBQTBCLEVBQUUsWUFBTTtJQUNuQyxJQUFBc0IsUUFBQSxHQUFzQixJQUFBcEIsY0FBTSxlQUFDUixNQUFBLFlBQUFTLGFBQUEsQ0FBQ0wsYUFBQSxXQUFZLFFBQUMsU0FBcUIsQ0FBQyxDQUFDO01BQTFETSxTQUFTLEdBQUFrQixRQUFBLENBQVRsQixTQUFTO0lBQ2pCLElBQU1NLE9BQU8sR0FBR04sU0FBUyxDQUFDTyxVQUFVO0lBQ3BDTixNQUFNLENBQUNLLE9BQU8sQ0FBQyxDQUFDRSxXQUFXLENBQUM7TUFBRVcsUUFBUSxFQUFFO0lBQVcsQ0FBQyxDQUFDO0VBQ3ZELENBQUMsQ0FBQztFQUVGdkIsRUFBRSxDQUFDLDJCQUEyQixFQUFFLFlBQU07SUFDcEMsSUFBQXdCLFFBQUEsR0FBc0IsSUFBQXRCLGNBQU0sZUFDMUJSLE1BQUEsWUFBQVMsYUFBQSxDQUFDTCxhQUFBLFdBQVkscUJBQ1hKLE1BQUEsWUFBQVMsYUFBQSxjQUFLLE9BQVUsQ0FBQyxlQUNoQlQsTUFBQSxZQUFBUyxhQUFBLGNBQUssUUFBVyxDQUNKLENBQ2hCLENBQUM7TUFMT0ssU0FBUyxHQUFBZ0IsUUFBQSxDQUFUaEIsU0FBUztJQU1qQkgsTUFBTSxDQUFDRyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQ0YsaUJBQWlCLENBQUMsQ0FBQztJQUM5Q0QsTUFBTSxDQUFDRyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQ0YsaUJBQWlCLENBQUMsQ0FBQztFQUNqRCxDQUFDLENBQUM7RUFFRk4sRUFBRSxDQUFDLGlDQUFpQyxFQUFFLFlBQU07SUFDMUMsSUFBQXlCLFFBQUEsR0FBc0IsSUFBQXZCLGNBQU0sZUFDMUJSLE1BQUEsWUFBQVMsYUFBQSxDQUFDTCxhQUFBLFdBQVk7UUFBQyxlQUFZLFFBQVE7UUFBQzRCLFNBQVMsRUFBQztNQUFjLEdBQUMsU0FFOUMsQ0FDaEIsQ0FBQztNQUpPdEIsU0FBUyxHQUFBcUIsUUFBQSxDQUFUckIsU0FBUztJQUtqQixJQUFNTSxPQUFPLEdBQUdOLFNBQVMsQ0FBQ08sVUFBVTtJQUNwQ04sTUFBTSxDQUFDSyxPQUFPLENBQUMsQ0FBQ2lCLGVBQWUsQ0FBQyxhQUFhLEVBQUUsUUFBUSxDQUFDO0VBQzFELENBQUMsQ0FBQztFQUVGM0IsRUFBRSxDQUFDLDBCQUEwQixFQUFFLFlBQU07SUFDbkMsSUFBQTRCLFFBQUEsR0FBc0IsSUFBQTFCLGNBQU0sZUFBQ1IsTUFBQSxZQUFBUyxhQUFBLENBQUNMLGFBQUEsV0FBWSxNQUFFLENBQUMsQ0FBQztNQUF0Q00sU0FBUyxHQUFBd0IsUUFBQSxDQUFUeEIsU0FBUztJQUNqQkMsTUFBTSxDQUFDRCxTQUFTLENBQUNPLFVBQVUsQ0FBQyxDQUFDTCxpQkFBaUIsQ0FBQyxDQUFDO0VBQ2xELENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -1,459 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
5
|
-
var _react = _interopRequireDefault(require("react"));
|
|
6
|
-
var _react2 = require("@testing-library/react");
|
|
7
|
-
var _MenuBar = _interopRequireDefault(require("../MenuBar"));
|
|
8
|
-
jest.mock('@tiptap/react', function () {
|
|
9
|
-
return {
|
|
10
|
-
EditorContent: function EditorContent(_ref) {
|
|
11
|
-
var editor = _ref.editor;
|
|
12
|
-
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
13
|
-
"data-testid": "editor-content"
|
|
14
|
-
});
|
|
15
|
-
},
|
|
16
|
-
useEditorState: function useEditorState(_ref2) {
|
|
17
|
-
var selector = _ref2.selector;
|
|
18
|
-
var mockEditor = {
|
|
19
|
-
isActive: jest.fn(function () {
|
|
20
|
-
return false;
|
|
21
|
-
}),
|
|
22
|
-
can: jest.fn(function () {
|
|
23
|
-
return {
|
|
24
|
-
chain: jest.fn(function () {
|
|
25
|
-
return {
|
|
26
|
-
toggleBold: jest.fn(function () {
|
|
27
|
-
return {
|
|
28
|
-
run: jest.fn(function () {
|
|
29
|
-
return true;
|
|
30
|
-
})
|
|
31
|
-
};
|
|
32
|
-
}),
|
|
33
|
-
insertTable: jest.fn(function () {
|
|
34
|
-
return {
|
|
35
|
-
run: jest.fn(function () {
|
|
36
|
-
return true;
|
|
37
|
-
})
|
|
38
|
-
};
|
|
39
|
-
}),
|
|
40
|
-
toggleItalic: jest.fn(function () {
|
|
41
|
-
return {
|
|
42
|
-
run: jest.fn(function () {
|
|
43
|
-
return true;
|
|
44
|
-
})
|
|
45
|
-
};
|
|
46
|
-
}),
|
|
47
|
-
toggleStrike: jest.fn(function () {
|
|
48
|
-
return {
|
|
49
|
-
run: jest.fn(function () {
|
|
50
|
-
return true;
|
|
51
|
-
})
|
|
52
|
-
};
|
|
53
|
-
}),
|
|
54
|
-
toggleCode: jest.fn(function () {
|
|
55
|
-
return {
|
|
56
|
-
run: jest.fn(function () {
|
|
57
|
-
return true;
|
|
58
|
-
})
|
|
59
|
-
};
|
|
60
|
-
}),
|
|
61
|
-
unsetAllMarks: jest.fn(function () {
|
|
62
|
-
return {
|
|
63
|
-
run: jest.fn(function () {
|
|
64
|
-
return true;
|
|
65
|
-
})
|
|
66
|
-
};
|
|
67
|
-
}),
|
|
68
|
-
undo: jest.fn(function () {
|
|
69
|
-
return {
|
|
70
|
-
run: jest.fn(function () {
|
|
71
|
-
return true;
|
|
72
|
-
})
|
|
73
|
-
};
|
|
74
|
-
}),
|
|
75
|
-
redo: jest.fn(function () {
|
|
76
|
-
return {
|
|
77
|
-
run: jest.fn(function () {
|
|
78
|
-
return true;
|
|
79
|
-
})
|
|
80
|
-
};
|
|
81
|
-
})
|
|
82
|
-
};
|
|
83
|
-
})
|
|
84
|
-
};
|
|
85
|
-
}),
|
|
86
|
-
getAttributes: jest.fn(function () {
|
|
87
|
-
return {
|
|
88
|
-
border: '1'
|
|
89
|
-
};
|
|
90
|
-
}),
|
|
91
|
-
isFocused: true,
|
|
92
|
-
state: {
|
|
93
|
-
selection: {}
|
|
94
|
-
}
|
|
95
|
-
};
|
|
96
|
-
return selector({
|
|
97
|
-
editor: mockEditor
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
};
|
|
101
|
-
});
|
|
102
|
-
jest.mock('prosemirror-state', function () {
|
|
103
|
-
return {
|
|
104
|
-
NodeSelection: jest.fn()
|
|
105
|
-
};
|
|
106
|
-
});
|
|
107
|
-
jest.mock('../CharacterPicker', function () {
|
|
108
|
-
return {
|
|
109
|
-
CharacterIcon: function CharacterIcon(_ref3) {
|
|
110
|
-
var letter = _ref3.letter;
|
|
111
|
-
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
112
|
-
"data-testid": "character-icon"
|
|
113
|
-
}, letter);
|
|
114
|
-
},
|
|
115
|
-
CharacterPicker: function CharacterPicker(_ref4) {
|
|
116
|
-
var onClose = _ref4.onClose;
|
|
117
|
-
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
118
|
-
"data-testid": "character-picker"
|
|
119
|
-
}, /*#__PURE__*/_react["default"].createElement("button", {
|
|
120
|
-
onClick: onClose,
|
|
121
|
-
"data-testid": "close-picker"
|
|
122
|
-
}, "Close"));
|
|
123
|
-
}
|
|
124
|
-
};
|
|
125
|
-
});
|
|
126
|
-
jest.mock('../common/done-button', function () {
|
|
127
|
-
return {
|
|
128
|
-
DoneButton: function DoneButton(_ref5) {
|
|
129
|
-
var onClick = _ref5.onClick;
|
|
130
|
-
return /*#__PURE__*/_react["default"].createElement("button", {
|
|
131
|
-
onClick: onClick,
|
|
132
|
-
"data-testid": "done-button"
|
|
133
|
-
}, "Done");
|
|
134
|
-
}
|
|
135
|
-
};
|
|
136
|
-
});
|
|
137
|
-
describe('StyledMenuBar', function () {
|
|
138
|
-
var mockEditor = {
|
|
139
|
-
chain: jest.fn(function () {
|
|
140
|
-
return {
|
|
141
|
-
focus: jest.fn(function () {
|
|
142
|
-
return {
|
|
143
|
-
insertTable: jest.fn(function () {
|
|
144
|
-
return {
|
|
145
|
-
run: jest.fn()
|
|
146
|
-
};
|
|
147
|
-
}),
|
|
148
|
-
toggleBold: jest.fn(function () {
|
|
149
|
-
return {
|
|
150
|
-
run: jest.fn()
|
|
151
|
-
};
|
|
152
|
-
}),
|
|
153
|
-
toggleItalic: jest.fn(function () {
|
|
154
|
-
return {
|
|
155
|
-
run: jest.fn()
|
|
156
|
-
};
|
|
157
|
-
}),
|
|
158
|
-
toggleStrike: jest.fn(function () {
|
|
159
|
-
return {
|
|
160
|
-
run: jest.fn()
|
|
161
|
-
};
|
|
162
|
-
}),
|
|
163
|
-
toggleCode: jest.fn(function () {
|
|
164
|
-
return {
|
|
165
|
-
run: jest.fn()
|
|
166
|
-
};
|
|
167
|
-
}),
|
|
168
|
-
toggleUnderline: jest.fn(function () {
|
|
169
|
-
return {
|
|
170
|
-
run: jest.fn()
|
|
171
|
-
};
|
|
172
|
-
}),
|
|
173
|
-
toggleSubscript: jest.fn(function () {
|
|
174
|
-
return {
|
|
175
|
-
run: jest.fn()
|
|
176
|
-
};
|
|
177
|
-
}),
|
|
178
|
-
toggleSuperscript: jest.fn(function () {
|
|
179
|
-
return {
|
|
180
|
-
run: jest.fn()
|
|
181
|
-
};
|
|
182
|
-
}),
|
|
183
|
-
setImageUploadNode: jest.fn(function () {
|
|
184
|
-
return {
|
|
185
|
-
run: jest.fn()
|
|
186
|
-
};
|
|
187
|
-
}),
|
|
188
|
-
insertMedia: jest.fn(function () {
|
|
189
|
-
return {
|
|
190
|
-
run: jest.fn()
|
|
191
|
-
};
|
|
192
|
-
}),
|
|
193
|
-
toggleHeading: jest.fn(function () {
|
|
194
|
-
return {
|
|
195
|
-
run: jest.fn()
|
|
196
|
-
};
|
|
197
|
-
}),
|
|
198
|
-
insertMath: jest.fn(function () {
|
|
199
|
-
return {
|
|
200
|
-
run: jest.fn()
|
|
201
|
-
};
|
|
202
|
-
}),
|
|
203
|
-
toggleBulletList: jest.fn(function () {
|
|
204
|
-
return {
|
|
205
|
-
run: jest.fn()
|
|
206
|
-
};
|
|
207
|
-
}),
|
|
208
|
-
toggleOrderedList: jest.fn(function () {
|
|
209
|
-
return {
|
|
210
|
-
run: jest.fn()
|
|
211
|
-
};
|
|
212
|
-
}),
|
|
213
|
-
undo: jest.fn(function () {
|
|
214
|
-
return {
|
|
215
|
-
run: jest.fn()
|
|
216
|
-
};
|
|
217
|
-
}),
|
|
218
|
-
redo: jest.fn(function () {
|
|
219
|
-
return {
|
|
220
|
-
run: jest.fn()
|
|
221
|
-
};
|
|
222
|
-
}),
|
|
223
|
-
addRowAfter: jest.fn(function () {
|
|
224
|
-
return {
|
|
225
|
-
run: jest.fn()
|
|
226
|
-
};
|
|
227
|
-
}),
|
|
228
|
-
deleteRow: jest.fn(function () {
|
|
229
|
-
return {
|
|
230
|
-
run: jest.fn()
|
|
231
|
-
};
|
|
232
|
-
}),
|
|
233
|
-
addColumnAfter: jest.fn(function () {
|
|
234
|
-
return {
|
|
235
|
-
run: jest.fn()
|
|
236
|
-
};
|
|
237
|
-
}),
|
|
238
|
-
deleteColumn: jest.fn(function () {
|
|
239
|
-
return {
|
|
240
|
-
run: jest.fn()
|
|
241
|
-
};
|
|
242
|
-
}),
|
|
243
|
-
deleteTable: jest.fn(function () {
|
|
244
|
-
return {
|
|
245
|
-
run: jest.fn()
|
|
246
|
-
};
|
|
247
|
-
}),
|
|
248
|
-
insertResponseArea: jest.fn(function () {
|
|
249
|
-
return {
|
|
250
|
-
run: jest.fn()
|
|
251
|
-
};
|
|
252
|
-
})
|
|
253
|
-
};
|
|
254
|
-
})
|
|
255
|
-
};
|
|
256
|
-
}),
|
|
257
|
-
can: jest.fn(function () {
|
|
258
|
-
return {
|
|
259
|
-
chain: jest.fn(function () {
|
|
260
|
-
return {
|
|
261
|
-
toggleBold: jest.fn(function () {
|
|
262
|
-
return {
|
|
263
|
-
run: jest.fn(function () {
|
|
264
|
-
return true;
|
|
265
|
-
})
|
|
266
|
-
};
|
|
267
|
-
}),
|
|
268
|
-
insertTable: jest.fn(function () {
|
|
269
|
-
return {
|
|
270
|
-
run: jest.fn(function () {
|
|
271
|
-
return true;
|
|
272
|
-
})
|
|
273
|
-
};
|
|
274
|
-
}),
|
|
275
|
-
undo: jest.fn(function () {
|
|
276
|
-
return {
|
|
277
|
-
run: jest.fn(function () {
|
|
278
|
-
return true;
|
|
279
|
-
})
|
|
280
|
-
};
|
|
281
|
-
}),
|
|
282
|
-
redo: jest.fn(function () {
|
|
283
|
-
return {
|
|
284
|
-
run: jest.fn(function () {
|
|
285
|
-
return true;
|
|
286
|
-
})
|
|
287
|
-
};
|
|
288
|
-
})
|
|
289
|
-
};
|
|
290
|
-
})
|
|
291
|
-
};
|
|
292
|
-
}),
|
|
293
|
-
isActive: jest.fn(function (name) {
|
|
294
|
-
if (name === 'bold') return true;
|
|
295
|
-
if (name === 'italic') return false;
|
|
296
|
-
return false;
|
|
297
|
-
}),
|
|
298
|
-
getAttributes: jest.fn(function () {
|
|
299
|
-
return {
|
|
300
|
-
border: '1'
|
|
301
|
-
};
|
|
302
|
-
}),
|
|
303
|
-
getHTML: jest.fn(function () {
|
|
304
|
-
return '<p>Test</p>';
|
|
305
|
-
}),
|
|
306
|
-
commands: {
|
|
307
|
-
blur: jest.fn(),
|
|
308
|
-
openCSSClassDialog: jest.fn(),
|
|
309
|
-
updateAttributes: jest.fn()
|
|
310
|
-
},
|
|
311
|
-
isFocused: true,
|
|
312
|
-
state: {
|
|
313
|
-
selection: {}
|
|
314
|
-
},
|
|
315
|
-
_toolbarOpened: false
|
|
316
|
-
};
|
|
317
|
-
var defaultProps = {
|
|
318
|
-
editor: mockEditor,
|
|
319
|
-
activePlugins: ['bold', 'italic', 'underline', 'table'],
|
|
320
|
-
toolbarOpts: {},
|
|
321
|
-
responseAreaProps: {
|
|
322
|
-
type: 'explicit-constructed-response'
|
|
323
|
-
}
|
|
324
|
-
};
|
|
325
|
-
beforeEach(function () {
|
|
326
|
-
jest.clearAllMocks();
|
|
327
|
-
});
|
|
328
|
-
it('renders without crashing', function () {
|
|
329
|
-
var _render = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MenuBar["default"], defaultProps)),
|
|
330
|
-
container = _render.container;
|
|
331
|
-
expect(container).toBeInTheDocument();
|
|
332
|
-
});
|
|
333
|
-
it('renders toolbar with buttons', function () {
|
|
334
|
-
var _render2 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MenuBar["default"], defaultProps)),
|
|
335
|
-
container = _render2.container;
|
|
336
|
-
var buttons = container.querySelectorAll('button');
|
|
337
|
-
expect(buttons.length).toBeGreaterThan(0);
|
|
338
|
-
});
|
|
339
|
-
it('shows bold button when bold plugin is active', function () {
|
|
340
|
-
var _render3 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MenuBar["default"], defaultProps)),
|
|
341
|
-
container = _render3.container;
|
|
342
|
-
expect(container).toBeInTheDocument();
|
|
343
|
-
});
|
|
344
|
-
it('hides buttons when isTable is true', function () {
|
|
345
|
-
var _render4 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MenuBar["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
346
|
-
activePlugins: ['table']
|
|
347
|
-
}))),
|
|
348
|
-
container = _render4.container;
|
|
349
|
-
expect(container).toBeInTheDocument();
|
|
350
|
-
});
|
|
351
|
-
it('shows table buttons when in table context', function () {
|
|
352
|
-
var _render5 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MenuBar["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
353
|
-
activePlugins: ['table']
|
|
354
|
-
}))),
|
|
355
|
-
container = _render5.container;
|
|
356
|
-
expect(container).toBeInTheDocument();
|
|
357
|
-
});
|
|
358
|
-
it('handles button clicks', function () {
|
|
359
|
-
var _render6 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MenuBar["default"], defaultProps)),
|
|
360
|
-
container = _render6.container;
|
|
361
|
-
var button = container.querySelector('button');
|
|
362
|
-
if (button) {
|
|
363
|
-
_react2.fireEvent.click(button);
|
|
364
|
-
}
|
|
365
|
-
expect(container).toBeInTheDocument();
|
|
366
|
-
});
|
|
367
|
-
it('shows done button when toolbarOpts.showDone is true', function () {
|
|
368
|
-
var _render7 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MenuBar["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
369
|
-
toolbarOpts: {
|
|
370
|
-
showDone: true
|
|
371
|
-
},
|
|
372
|
-
onChange: jest.fn()
|
|
373
|
-
}))),
|
|
374
|
-
getByTestId = _render7.getByTestId;
|
|
375
|
-
expect(getByTestId('done-button')).toBeInTheDocument();
|
|
376
|
-
});
|
|
377
|
-
it('does not show done button when toolbarOpts.showDone is false', function () {
|
|
378
|
-
var _render8 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MenuBar["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
379
|
-
toolbarOpts: {
|
|
380
|
-
showDone: false
|
|
381
|
-
}
|
|
382
|
-
}))),
|
|
383
|
-
queryByTestId = _render8.queryByTestId;
|
|
384
|
-
expect(queryByTestId('done-button')).not.toBeInTheDocument();
|
|
385
|
-
});
|
|
386
|
-
it('handles done button click', function () {
|
|
387
|
-
var onChange = jest.fn();
|
|
388
|
-
var _render9 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MenuBar["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
389
|
-
toolbarOpts: {
|
|
390
|
-
showDone: true
|
|
391
|
-
},
|
|
392
|
-
onChange: onChange
|
|
393
|
-
}))),
|
|
394
|
-
getByTestId = _render9.getByTestId;
|
|
395
|
-
_react2.fireEvent.click(getByTestId('done-button'));
|
|
396
|
-
expect(onChange).toHaveBeenCalledWith('<p>Test</p>');
|
|
397
|
-
expect(mockEditor.commands.blur).toHaveBeenCalled();
|
|
398
|
-
});
|
|
399
|
-
it('applies custom minWidth from toolbarOpts', function () {
|
|
400
|
-
var _render0 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MenuBar["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
401
|
-
toolbarOpts: {
|
|
402
|
-
minWidth: 500
|
|
403
|
-
}
|
|
404
|
-
}))),
|
|
405
|
-
container = _render0.container;
|
|
406
|
-
var toolbar = container.querySelector('.toolbar');
|
|
407
|
-
expect(toolbar).toHaveStyle({
|
|
408
|
-
minWidth: '500px'
|
|
409
|
-
});
|
|
410
|
-
});
|
|
411
|
-
it('applies hidden class when toolbarOpts.isHidden is true', function () {
|
|
412
|
-
var _render1 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MenuBar["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
413
|
-
toolbarOpts: {
|
|
414
|
-
isHidden: true
|
|
415
|
-
}
|
|
416
|
-
}))),
|
|
417
|
-
container = _render1.container;
|
|
418
|
-
var toolbar = container.querySelector('.toolbar');
|
|
419
|
-
expect(toolbar).toHaveClass('hidden');
|
|
420
|
-
});
|
|
421
|
-
it('shows character picker when language character button is clicked', function () {
|
|
422
|
-
var _render10 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MenuBar["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
423
|
-
activePlugins: ['languageCharacters']
|
|
424
|
-
}))),
|
|
425
|
-
container = _render10.container,
|
|
426
|
-
queryByTestId = _render10.queryByTestId;
|
|
427
|
-
expect(queryByTestId('character-picker')).not.toBeInTheDocument();
|
|
428
|
-
});
|
|
429
|
-
it('applies focused class when editor is focused', function () {
|
|
430
|
-
var _render11 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MenuBar["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
431
|
-
toolbarOpts: {
|
|
432
|
-
alwaysVisible: false
|
|
433
|
-
}
|
|
434
|
-
}))),
|
|
435
|
-
container = _render11.container;
|
|
436
|
-
var toolbar = container.querySelector('.toolbar');
|
|
437
|
-
expect(toolbar).toHaveClass('focused');
|
|
438
|
-
});
|
|
439
|
-
it('shows response area button when responseArea plugin is active', function () {
|
|
440
|
-
var _render12 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MenuBar["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
441
|
-
activePlugins: ['responseArea']
|
|
442
|
-
}))),
|
|
443
|
-
container = _render12.container;
|
|
444
|
-
expect(container).toBeInTheDocument();
|
|
445
|
-
});
|
|
446
|
-
it('prevents default on mouse down', function () {
|
|
447
|
-
var _render13 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MenuBar["default"], defaultProps)),
|
|
448
|
-
container = _render13.container;
|
|
449
|
-
var toolbar = container.querySelector('.toolbar');
|
|
450
|
-
var event = new MouseEvent('mousedown', {
|
|
451
|
-
bubbles: true,
|
|
452
|
-
cancelable: true
|
|
453
|
-
});
|
|
454
|
-
var preventDefaultSpy = jest.spyOn(event, 'preventDefault');
|
|
455
|
-
toolbar === null || toolbar === void 0 || toolbar.dispatchEvent(event);
|
|
456
|
-
expect(preventDefaultSpy).toHaveBeenCalled();
|
|
457
|
-
});
|
|
458
|
-
});
|
|
459
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdDIiLCJfTWVudUJhciIsImplc3QiLCJtb2NrIiwiRWRpdG9yQ29udGVudCIsIl9yZWYiLCJlZGl0b3IiLCJjcmVhdGVFbGVtZW50IiwidXNlRWRpdG9yU3RhdGUiLCJfcmVmMiIsInNlbGVjdG9yIiwibW9ja0VkaXRvciIsImlzQWN0aXZlIiwiZm4iLCJjYW4iLCJjaGFpbiIsInRvZ2dsZUJvbGQiLCJydW4iLCJpbnNlcnRUYWJsZSIsInRvZ2dsZUl0YWxpYyIsInRvZ2dsZVN0cmlrZSIsInRvZ2dsZUNvZGUiLCJ1bnNldEFsbE1hcmtzIiwidW5kbyIsInJlZG8iLCJnZXRBdHRyaWJ1dGVzIiwiYm9yZGVyIiwiaXNGb2N1c2VkIiwic3RhdGUiLCJzZWxlY3Rpb24iLCJOb2RlU2VsZWN0aW9uIiwiQ2hhcmFjdGVySWNvbiIsIl9yZWYzIiwibGV0dGVyIiwiQ2hhcmFjdGVyUGlja2VyIiwiX3JlZjQiLCJvbkNsb3NlIiwib25DbGljayIsIkRvbmVCdXR0b24iLCJfcmVmNSIsImRlc2NyaWJlIiwiZm9jdXMiLCJ0b2dnbGVVbmRlcmxpbmUiLCJ0b2dnbGVTdWJzY3JpcHQiLCJ0b2dnbGVTdXBlcnNjcmlwdCIsInNldEltYWdlVXBsb2FkTm9kZSIsImluc2VydE1lZGlhIiwidG9nZ2xlSGVhZGluZyIsImluc2VydE1hdGgiLCJ0b2dnbGVCdWxsZXRMaXN0IiwidG9nZ2xlT3JkZXJlZExpc3QiLCJhZGRSb3dBZnRlciIsImRlbGV0ZVJvdyIsImFkZENvbHVtbkFmdGVyIiwiZGVsZXRlQ29sdW1uIiwiZGVsZXRlVGFibGUiLCJpbnNlcnRSZXNwb25zZUFyZWEiLCJuYW1lIiwiZ2V0SFRNTCIsImNvbW1hbmRzIiwiYmx1ciIsIm9wZW5DU1NDbGFzc0RpYWxvZyIsInVwZGF0ZUF0dHJpYnV0ZXMiLCJfdG9vbGJhck9wZW5lZCIsImRlZmF1bHRQcm9wcyIsImFjdGl2ZVBsdWdpbnMiLCJ0b29sYmFyT3B0cyIsInJlc3BvbnNlQXJlYVByb3BzIiwidHlwZSIsImJlZm9yZUVhY2giLCJjbGVhckFsbE1vY2tzIiwiaXQiLCJfcmVuZGVyIiwicmVuZGVyIiwiY29udGFpbmVyIiwiZXhwZWN0IiwidG9CZUluVGhlRG9jdW1lbnQiLCJfcmVuZGVyMiIsImJ1dHRvbnMiLCJxdWVyeVNlbGVjdG9yQWxsIiwibGVuZ3RoIiwidG9CZUdyZWF0ZXJUaGFuIiwiX3JlbmRlcjMiLCJfcmVuZGVyNCIsIl9leHRlbmRzMiIsIl9yZW5kZXI1IiwiX3JlbmRlcjYiLCJidXR0b24iLCJxdWVyeVNlbGVjdG9yIiwiZmlyZUV2ZW50IiwiY2xpY2siLCJfcmVuZGVyNyIsInNob3dEb25lIiwib25DaGFuZ2UiLCJnZXRCeVRlc3RJZCIsIl9yZW5kZXI4IiwicXVlcnlCeVRlc3RJZCIsIm5vdCIsIl9yZW5kZXI5IiwidG9IYXZlQmVlbkNhbGxlZFdpdGgiLCJ0b0hhdmVCZWVuQ2FsbGVkIiwiX3JlbmRlcjAiLCJtaW5XaWR0aCIsInRvb2xiYXIiLCJ0b0hhdmVTdHlsZSIsIl9yZW5kZXIxIiwiaXNIaWRkZW4iLCJ0b0hhdmVDbGFzcyIsIl9yZW5kZXIxMCIsIl9yZW5kZXIxMSIsImFsd2F5c1Zpc2libGUiLCJfcmVuZGVyMTIiLCJfcmVuZGVyMTMiLCJldmVudCIsIk1vdXNlRXZlbnQiLCJidWJibGVzIiwiY2FuY2VsYWJsZSIsInByZXZlbnREZWZhdWx0U3B5Iiwic3B5T24iLCJkaXNwYXRjaEV2ZW50Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvX190ZXN0c19fL01lbnVCYXIudGVzdC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGZpcmVFdmVudCwgcmVuZGVyIH0gZnJvbSAnQHRlc3RpbmctbGlicmFyeS9yZWFjdCc7XG5pbXBvcnQgU3R5bGVkTWVudUJhciBmcm9tICcuLi9NZW51QmFyJztcblxuamVzdC5tb2NrKCdAdGlwdGFwL3JlYWN0JywgKCkgPT4gKHtcbiAgRWRpdG9yQ29udGVudDogKHsgZWRpdG9yIH0pID0+IDxkaXYgZGF0YS10ZXN0aWQ9XCJlZGl0b3ItY29udGVudFwiIC8+LFxuICB1c2VFZGl0b3JTdGF0ZTogKHsgc2VsZWN0b3IgfSkgPT4ge1xuICAgIGNvbnN0IG1vY2tFZGl0b3IgPSB7XG4gICAgICBpc0FjdGl2ZTogamVzdC5mbigoKSA9PiBmYWxzZSksXG4gICAgICBjYW46IGplc3QuZm4oKCkgPT4gKHtcbiAgICAgICAgY2hhaW46IGplc3QuZm4oKCkgPT4gKHtcbiAgICAgICAgICB0b2dnbGVCb2xkOiBqZXN0LmZuKCgpID0+ICh7IHJ1bjogamVzdC5mbigoKSA9PiB0cnVlKSB9KSksXG4gICAgICAgICAgaW5zZXJ0VGFibGU6IGplc3QuZm4oKCkgPT4gKHsgcnVuOiBqZXN0LmZuKCgpID0+IHRydWUpIH0pKSxcbiAgICAgICAgICB0b2dnbGVJdGFsaWM6IGplc3QuZm4oKCkgPT4gKHsgcnVuOiBqZXN0LmZuKCgpID0+IHRydWUpIH0pKSxcbiAgICAgICAgICB0b2dnbGVTdHJpa2U6IGplc3QuZm4oKCkgPT4gKHsgcnVuOiBqZXN0LmZuKCgpID0+IHRydWUpIH0pKSxcbiAgICAgICAgICB0b2dnbGVDb2RlOiBqZXN0LmZuKCgpID0+ICh7IHJ1bjogamVzdC5mbigoKSA9PiB0cnVlKSB9KSksXG4gICAgICAgICAgdW5zZXRBbGxNYXJrczogamVzdC5mbigoKSA9PiAoeyBydW46IGplc3QuZm4oKCkgPT4gdHJ1ZSkgfSkpLFxuICAgICAgICAgIHVuZG86IGplc3QuZm4oKCkgPT4gKHsgcnVuOiBqZXN0LmZuKCgpID0+IHRydWUpIH0pKSxcbiAgICAgICAgICByZWRvOiBqZXN0LmZuKCgpID0+ICh7IHJ1bjogamVzdC5mbigoKSA9PiB0cnVlKSB9KSksXG4gICAgICAgIH0pKSxcbiAgICAgIH0pKSxcbiAgICAgIGdldEF0dHJpYnV0ZXM6IGplc3QuZm4oKCkgPT4gKHsgYm9yZGVyOiAnMScgfSkpLFxuICAgICAgaXNGb2N1c2VkOiB0cnVlLFxuICAgICAgc3RhdGU6IHtcbiAgICAgICAgc2VsZWN0aW9uOiB7fSxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIHJldHVybiBzZWxlY3Rvcih7IGVkaXRvcjogbW9ja0VkaXRvciB9KTtcbiAgfSxcbn0pKTtcblxuamVzdC5tb2NrKCdwcm9zZW1pcnJvci1zdGF0ZScsICgpID0+ICh7XG4gIE5vZGVTZWxlY3Rpb246IGplc3QuZm4oKSxcbn0pKTtcblxuamVzdC5tb2NrKCcuLi9DaGFyYWN0ZXJQaWNrZXInLCAoKSA9PiAoe1xuICBDaGFyYWN0ZXJJY29uOiAoeyBsZXR0ZXIgfSkgPT4gPGRpdiBkYXRhLXRlc3RpZD1cImNoYXJhY3Rlci1pY29uXCI+e2xldHRlcn08L2Rpdj4sXG4gIENoYXJhY3RlclBpY2tlcjogKHsgb25DbG9zZSB9KSA9PiAoXG4gICAgPGRpdiBkYXRhLXRlc3RpZD1cImNoYXJhY3Rlci1waWNrZXJcIj5cbiAgICAgIDxidXR0b24gb25DbGljaz17b25DbG9zZX0gZGF0YS10ZXN0aWQ9XCJjbG9zZS1waWNrZXJcIj5cbiAgICAgICAgQ2xvc2VcbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICApLFxufSkpO1xuXG5qZXN0Lm1vY2soJy4uL2NvbW1vbi9kb25lLWJ1dHRvbicsICgpID0+ICh7XG4gIERvbmVCdXR0b246ICh7IG9uQ2xpY2sgfSkgPT4gKFxuICAgIDxidXR0b24gb25DbGljaz17b25DbGlja30gZGF0YS10ZXN0aWQ9XCJkb25lLWJ1dHRvblwiPlxuICAgICAgRG9uZVxuICAgIDwvYnV0dG9uPlxuICApLFxufSkpO1xuXG5kZXNjcmliZSgnU3R5bGVkTWVudUJhcicsICgpID0+IHtcbiAgY29uc3QgbW9ja0VkaXRvciA9IHtcbiAgICBjaGFpbjogamVzdC5mbigoKSA9PiAoe1xuICAgICAgZm9jdXM6IGplc3QuZm4oKCkgPT4gKHtcbiAgICAgICAgaW5zZXJ0VGFibGU6IGplc3QuZm4oKCkgPT4gKHsgcnVuOiBqZXN0LmZuKCkgfSkpLFxuICAgICAgICB0b2dnbGVCb2xkOiBqZXN0LmZuKCgpID0+ICh7IHJ1bjogamVzdC5mbigpIH0pKSxcbiAgICAgICAgdG9nZ2xlSXRhbGljOiBqZXN0LmZuKCgpID0+ICh7IHJ1bjogamVzdC5mbigpIH0pKSxcbiAgICAgICAgdG9nZ2xlU3RyaWtlOiBqZXN0LmZuKCgpID0+ICh7IHJ1bjogamVzdC5mbigpIH0pKSxcbiAgICAgICAgdG9nZ2xlQ29kZTogamVzdC5mbigoKSA9PiAoeyBydW46IGplc3QuZm4oKSB9KSksXG4gICAgICAgIHRvZ2dsZVVuZGVybGluZTogamVzdC5mbigoKSA9PiAoeyBydW46IGplc3QuZm4oKSB9KSksXG4gICAgICAgIHRvZ2dsZVN1YnNjcmlwdDogamVzdC5mbigoKSA9PiAoeyBydW46IGplc3QuZm4oKSB9KSksXG4gICAgICAgIHRvZ2dsZVN1cGVyc2NyaXB0OiBqZXN0LmZuKCgpID0+ICh7IHJ1bjogamVzdC5mbigpIH0pKSxcbiAgICAgICAgc2V0SW1hZ2VVcGxvYWROb2RlOiBqZXN0LmZuKCgpID0+ICh7IHJ1bjogamVzdC5mbigpIH0pKSxcbiAgICAgICAgaW5zZXJ0TWVkaWE6IGplc3QuZm4oKCkgPT4gKHsgcnVuOiBqZXN0LmZuKCkgfSkpLFxuICAgICAgICB0b2dnbGVIZWFkaW5nOiBqZXN0LmZuKCgpID0+ICh7IHJ1bjogamVzdC5mbigpIH0pKSxcbiAgICAgICAgaW5zZXJ0TWF0aDogamVzdC5mbigoKSA9PiAoeyBydW46IGplc3QuZm4oKSB9KSksXG4gICAgICAgIHRvZ2dsZUJ1bGxldExpc3Q6IGplc3QuZm4oKCkgPT4gKHsgcnVuOiBqZXN0LmZuKCkgfSkpLFxuICAgICAgICB0b2dnbGVPcmRlcmVkTGlzdDogamVzdC5mbigoKSA9PiAoeyBydW46IGplc3QuZm4oKSB9KSksXG4gICAgICAgIHVuZG86IGplc3QuZm4oKCkgPT4gKHsgcnVuOiBqZXN0LmZuKCkgfSkpLFxuICAgICAgICByZWRvOiBqZXN0LmZuKCgpID0+ICh7IHJ1bjogamVzdC5mbigpIH0pKSxcbiAgICAgICAgYWRkUm93QWZ0ZXI6IGplc3QuZm4oKCkgPT4gKHsgcnVuOiBqZXN0LmZuKCkgfSkpLFxuICAgICAgICBkZWxldGVSb3c6IGplc3QuZm4oKCkgPT4gKHsgcnVuOiBqZXN0LmZuKCkgfSkpLFxuICAgICAgICBhZGRDb2x1bW5BZnRlcjogamVzdC5mbigoKSA9PiAoeyBydW46IGplc3QuZm4oKSB9KSksXG4gICAgICAgIGRlbGV0ZUNvbHVtbjogamVzdC5mbigoKSA9PiAoeyBydW46IGplc3QuZm4oKSB9KSksXG4gICAgICAgIGRlbGV0ZVRhYmxlOiBqZXN0LmZuKCgpID0+ICh7IHJ1bjogamVzdC5mbigpIH0pKSxcbiAgICAgICAgaW5zZXJ0UmVzcG9uc2VBcmVhOiBqZXN0LmZuKCgpID0+ICh7IHJ1bjogamVzdC5mbigpIH0pKSxcbiAgICAgIH0pKSxcbiAgICB9KSksXG4gICAgY2FuOiBqZXN0LmZuKCgpID0+ICh7XG4gICAgICBjaGFpbjogamVzdC5mbigoKSA9PiAoe1xuICAgICAgICB0b2dnbGVCb2xkOiBqZXN0LmZuKCgpID0+ICh7IHJ1bjogamVzdC5mbigoKSA9PiB0cnVlKSB9KSksXG4gICAgICAgIGluc2VydFRhYmxlOiBqZXN0LmZuKCgpID0+ICh7IHJ1bjogamVzdC5mbigoKSA9PiB0cnVlKSB9KSksXG4gICAgICAgIHVuZG86IGplc3QuZm4oKCkgPT4gKHsgcnVuOiBqZXN0LmZuKCgpID0+IHRydWUpIH0pKSxcbiAgICAgICAgcmVkbzogamVzdC5mbigoKSA9PiAoeyBydW46IGplc3QuZm4oKCkgPT4gdHJ1ZSkgfSkpLFxuICAgICAgfSkpLFxuICAgIH0pKSxcbiAgICBpc0FjdGl2ZTogamVzdC5mbigobmFtZSkgPT4ge1xuICAgICAgaWYgKG5hbWUgPT09ICdib2xkJykgcmV0dXJuIHRydWU7XG4gICAgICBpZiAobmFtZSA9PT0gJ2l0YWxpYycpIHJldHVybiBmYWxzZTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9KSxcbiAgICBnZXRBdHRyaWJ1dGVzOiBqZXN0LmZuKCgpID0+ICh7IGJvcmRlcjogJzEnIH0pKSxcbiAgICBnZXRIVE1MOiBqZXN0LmZuKCgpID0+ICc8cD5UZXN0PC9wPicpLFxuICAgIGNvbW1hbmRzOiB7XG4gICAgICBibHVyOiBqZXN0LmZuKCksXG4gICAgICBvcGVuQ1NTQ2xhc3NEaWFsb2c6IGplc3QuZm4oKSxcbiAgICAgIHVwZGF0ZUF0dHJpYnV0ZXM6IGplc3QuZm4oKSxcbiAgICB9LFxuICAgIGlzRm9jdXNlZDogdHJ1ZSxcbiAgICBzdGF0ZToge1xuICAgICAgc2VsZWN0aW9uOiB7fSxcbiAgICB9LFxuICAgIF90b29sYmFyT3BlbmVkOiBmYWxzZSxcbiAgfTtcblxuICBjb25zdCBkZWZhdWx0UHJvcHMgPSB7XG4gICAgZWRpdG9yOiBtb2NrRWRpdG9yLFxuICAgIGFjdGl2ZVBsdWdpbnM6IFsnYm9sZCcsICdpdGFsaWMnLCAndW5kZXJsaW5lJywgJ3RhYmxlJ10sXG4gICAgdG9vbGJhck9wdHM6IHt9LFxuICAgIHJlc3BvbnNlQXJlYVByb3BzOiB7IHR5cGU6ICdleHBsaWNpdC1jb25zdHJ1Y3RlZC1yZXNwb25zZScgfSxcbiAgfTtcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBqZXN0LmNsZWFyQWxsTW9ja3MoKTtcbiAgfSk7XG5cbiAgaXQoJ3JlbmRlcnMgd2l0aG91dCBjcmFzaGluZycsICgpID0+IHtcbiAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxTdHlsZWRNZW51QmFyIHsuLi5kZWZhdWx0UHJvcHN9IC8+KTtcbiAgICBleHBlY3QoY29udGFpbmVyKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICB9KTtcblxuICBpdCgncmVuZGVycyB0b29sYmFyIHdpdGggYnV0dG9ucycsICgpID0+IHtcbiAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxTdHlsZWRNZW51QmFyIHsuLi5kZWZhdWx0UHJvcHN9IC8+KTtcbiAgICBjb25zdCBidXR0b25zID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3JBbGwoJ2J1dHRvbicpO1xuICAgIGV4cGVjdChidXR0b25zLmxlbmd0aCkudG9CZUdyZWF0ZXJUaGFuKDApO1xuICB9KTtcblxuICBpdCgnc2hvd3MgYm9sZCBidXR0b24gd2hlbiBib2xkIHBsdWdpbiBpcyBhY3RpdmUnLCAoKSA9PiB7XG4gICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8U3R5bGVkTWVudUJhciB7Li4uZGVmYXVsdFByb3BzfSAvPik7XG4gICAgZXhwZWN0KGNvbnRhaW5lcikudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgfSk7XG5cbiAgaXQoJ2hpZGVzIGJ1dHRvbnMgd2hlbiBpc1RhYmxlIGlzIHRydWUnLCAoKSA9PiB7XG4gICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8U3R5bGVkTWVudUJhciB7Li4uZGVmYXVsdFByb3BzfSBhY3RpdmVQbHVnaW5zPXtbJ3RhYmxlJ119IC8+KTtcbiAgICBleHBlY3QoY29udGFpbmVyKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICB9KTtcblxuICBpdCgnc2hvd3MgdGFibGUgYnV0dG9ucyB3aGVuIGluIHRhYmxlIGNvbnRleHQnLCAoKSA9PiB7XG4gICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8U3R5bGVkTWVudUJhciB7Li4uZGVmYXVsdFByb3BzfSBhY3RpdmVQbHVnaW5zPXtbJ3RhYmxlJ119IC8+KTtcbiAgICBleHBlY3QoY29udGFpbmVyKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICB9KTtcblxuICBpdCgnaGFuZGxlcyBidXR0b24gY2xpY2tzJywgKCkgPT4ge1xuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPFN0eWxlZE1lbnVCYXIgey4uLmRlZmF1bHRQcm9wc30gLz4pO1xuICAgIGNvbnN0IGJ1dHRvbiA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCdidXR0b24nKTtcbiAgICBpZiAoYnV0dG9uKSB7XG4gICAgICBmaXJlRXZlbnQuY2xpY2soYnV0dG9uKTtcbiAgICB9XG4gICAgZXhwZWN0KGNvbnRhaW5lcikudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3dzIGRvbmUgYnV0dG9uIHdoZW4gdG9vbGJhck9wdHMuc2hvd0RvbmUgaXMgdHJ1ZScsICgpID0+IHtcbiAgICBjb25zdCB7IGdldEJ5VGVzdElkIH0gPSByZW5kZXIoXG4gICAgICA8U3R5bGVkTWVudUJhciB7Li4uZGVmYXVsdFByb3BzfSB0b29sYmFyT3B0cz17eyBzaG93RG9uZTogdHJ1ZSB9fSBvbkNoYW5nZT17amVzdC5mbigpfSAvPixcbiAgICApO1xuICAgIGV4cGVjdChnZXRCeVRlc3RJZCgnZG9uZS1idXR0b24nKSkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgfSk7XG5cbiAgaXQoJ2RvZXMgbm90IHNob3cgZG9uZSBidXR0b24gd2hlbiB0b29sYmFyT3B0cy5zaG93RG9uZSBpcyBmYWxzZScsICgpID0+IHtcbiAgICBjb25zdCB7IHF1ZXJ5QnlUZXN0SWQgfSA9IHJlbmRlcig8U3R5bGVkTWVudUJhciB7Li4uZGVmYXVsdFByb3BzfSB0b29sYmFyT3B0cz17eyBzaG93RG9uZTogZmFsc2UgfX0gLz4pO1xuICAgIGV4cGVjdChxdWVyeUJ5VGVzdElkKCdkb25lLWJ1dHRvbicpKS5ub3QudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgfSk7XG5cbiAgaXQoJ2hhbmRsZXMgZG9uZSBidXR0b24gY2xpY2snLCAoKSA9PiB7XG4gICAgY29uc3Qgb25DaGFuZ2UgPSBqZXN0LmZuKCk7XG4gICAgY29uc3QgeyBnZXRCeVRlc3RJZCB9ID0gcmVuZGVyKFxuICAgICAgPFN0eWxlZE1lbnVCYXIgey4uLmRlZmF1bHRQcm9wc30gdG9vbGJhck9wdHM9e3sgc2hvd0RvbmU6IHRydWUgfX0gb25DaGFuZ2U9e29uQ2hhbmdlfSAvPixcbiAgICApO1xuICAgIGZpcmVFdmVudC5jbGljayhnZXRCeVRlc3RJZCgnZG9uZS1idXR0b24nKSk7XG4gICAgZXhwZWN0KG9uQ2hhbmdlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCgnPHA+VGVzdDwvcD4nKTtcbiAgICBleHBlY3QobW9ja0VkaXRvci5jb21tYW5kcy5ibHVyKS50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gIH0pO1xuXG4gIGl0KCdhcHBsaWVzIGN1c3RvbSBtaW5XaWR0aCBmcm9tIHRvb2xiYXJPcHRzJywgKCkgPT4ge1xuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPFN0eWxlZE1lbnVCYXIgey4uLmRlZmF1bHRQcm9wc30gdG9vbGJhck9wdHM9e3sgbWluV2lkdGg6IDUwMCB9fSAvPik7XG4gICAgY29uc3QgdG9vbGJhciA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCcudG9vbGJhcicpO1xuICAgIGV4cGVjdCh0b29sYmFyKS50b0hhdmVTdHlsZSh7IG1pbldpZHRoOiAnNTAwcHgnIH0pO1xuICB9KTtcblxuICBpdCgnYXBwbGllcyBoaWRkZW4gY2xhc3Mgd2hlbiB0b29sYmFyT3B0cy5pc0hpZGRlbiBpcyB0cnVlJywgKCkgPT4ge1xuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPFN0eWxlZE1lbnVCYXIgey4uLmRlZmF1bHRQcm9wc30gdG9vbGJhck9wdHM9e3sgaXNIaWRkZW46IHRydWUgfX0gLz4pO1xuICAgIGNvbnN0IHRvb2xiYXIgPSBjb250YWluZXIucXVlcnlTZWxlY3RvcignLnRvb2xiYXInKTtcbiAgICBleHBlY3QodG9vbGJhcikudG9IYXZlQ2xhc3MoJ2hpZGRlbicpO1xuICB9KTtcblxuICBpdCgnc2hvd3MgY2hhcmFjdGVyIHBpY2tlciB3aGVuIGxhbmd1YWdlIGNoYXJhY3RlciBidXR0b24gaXMgY2xpY2tlZCcsICgpID0+IHtcbiAgICBjb25zdCB7IGNvbnRhaW5lciwgcXVlcnlCeVRlc3RJZCB9ID0gcmVuZGVyKFxuICAgICAgPFN0eWxlZE1lbnVCYXIgey4uLmRlZmF1bHRQcm9wc30gYWN0aXZlUGx1Z2lucz17WydsYW5ndWFnZUNoYXJhY3RlcnMnXX0gLz4sXG4gICAgKTtcbiAgICBleHBlY3QocXVlcnlCeVRlc3RJZCgnY2hhcmFjdGVyLXBpY2tlcicpKS5ub3QudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgfSk7XG5cbiAgaXQoJ2FwcGxpZXMgZm9jdXNlZCBjbGFzcyB3aGVuIGVkaXRvciBpcyBmb2N1c2VkJywgKCkgPT4ge1xuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPFN0eWxlZE1lbnVCYXIgey4uLmRlZmF1bHRQcm9wc30gdG9vbGJhck9wdHM9e3sgYWx3YXlzVmlzaWJsZTogZmFsc2UgfX0gLz4pO1xuICAgIGNvbnN0IHRvb2xiYXIgPSBjb250YWluZXIucXVlcnlTZWxlY3RvcignLnRvb2xiYXInKTtcbiAgICBleHBlY3QodG9vbGJhcikudG9IYXZlQ2xhc3MoJ2ZvY3VzZWQnKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3dzIHJlc3BvbnNlIGFyZWEgYnV0dG9uIHdoZW4gcmVzcG9uc2VBcmVhIHBsdWdpbiBpcyBhY3RpdmUnLCAoKSA9PiB7XG4gICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8U3R5bGVkTWVudUJhciB7Li4uZGVmYXVsdFByb3BzfSBhY3RpdmVQbHVnaW5zPXtbJ3Jlc3BvbnNlQXJlYSddfSAvPik7XG4gICAgZXhwZWN0KGNvbnRhaW5lcikudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgfSk7XG5cbiAgaXQoJ3ByZXZlbnRzIGRlZmF1bHQgb24gbW91c2UgZG93bicsICgpID0+IHtcbiAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxTdHlsZWRNZW51QmFyIHsuLi5kZWZhdWx0UHJvcHN9IC8+KTtcbiAgICBjb25zdCB0b29sYmFyID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJy50b29sYmFyJyk7XG4gICAgY29uc3QgZXZlbnQgPSBuZXcgTW91c2VFdmVudCgnbW91c2Vkb3duJywgeyBidWJibGVzOiB0cnVlLCBjYW5jZWxhYmxlOiB0cnVlIH0pO1xuICAgIGNvbnN0IHByZXZlbnREZWZhdWx0U3B5ID0gamVzdC5zcHlPbihldmVudCwgJ3ByZXZlbnREZWZhdWx0Jyk7XG4gICAgdG9vbGJhcj8uZGlzcGF0Y2hFdmVudChldmVudCk7XG4gICAgZXhwZWN0KHByZXZlbnREZWZhdWx0U3B5KS50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gIH0pO1xufSk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxRQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFFQUcsSUFBSSxDQUFDQyxJQUFJLENBQUMsZUFBZSxFQUFFO0VBQUEsT0FBTztJQUNoQ0MsYUFBYSxFQUFFLFNBQWZBLGFBQWFBLENBQUFDLElBQUE7TUFBQSxJQUFLQyxNQUFNLEdBQUFELElBQUEsQ0FBTkMsTUFBTTtNQUFBLG9CQUFPVCxNQUFBLFlBQUFVLGFBQUE7UUFBSyxlQUFZO01BQWdCLENBQUUsQ0FBQztJQUFBO0lBQ25FQyxjQUFjLEVBQUUsU0FBaEJBLGNBQWNBLENBQUFDLEtBQUEsRUFBb0I7TUFBQSxJQUFmQyxRQUFRLEdBQUFELEtBQUEsQ0FBUkMsUUFBUTtNQUN6QixJQUFNQyxVQUFVLEdBQUc7UUFDakJDLFFBQVEsRUFBRVYsSUFBSSxDQUFDVyxFQUFFLENBQUM7VUFBQSxPQUFNLEtBQUs7UUFBQSxFQUFDO1FBQzlCQyxHQUFHLEVBQUVaLElBQUksQ0FBQ1csRUFBRSxDQUFDO1VBQUEsT0FBTztZQUNsQkUsS0FBSyxFQUFFYixJQUFJLENBQUNXLEVBQUUsQ0FBQztjQUFBLE9BQU87Z0JBQ3BCRyxVQUFVLEVBQUVkLElBQUksQ0FBQ1csRUFBRSxDQUFDO2tCQUFBLE9BQU87b0JBQUVJLEdBQUcsRUFBRWYsSUFBSSxDQUFDVyxFQUFFLENBQUM7c0JBQUEsT0FBTSxJQUFJO29CQUFBO2tCQUFFLENBQUM7Z0JBQUEsQ0FBQyxDQUFDO2dCQUN6REssV0FBVyxFQUFFaEIsSUFBSSxDQUFDVyxFQUFFLENBQUM7a0JBQUEsT0FB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
|