@pie-lib/editable-html-tip-tap 2.1.19 → 2.1.20-beta.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/CHANGELOG.md +0 -130
  2. package/lib/__tests__/EditableHtml.test.js +831 -0
  3. package/lib/__tests__/constants.test.js +21 -0
  4. package/lib/__tests__/div-to-paragraph-conversion.test.js +213 -0
  5. package/lib/__tests__/extensions.test.js +209 -0
  6. package/lib/__tests__/index.test.js +250 -0
  7. package/lib/__tests__/size-utils.test.js +57 -0
  8. package/lib/__tests__/spellcheck.test.js +142 -0
  9. package/lib/__tests__/theme.test.js +17 -0
  10. package/lib/components/EditableHtml.js +0 -56
  11. package/lib/components/EditableHtml.js.map +1 -1
  12. package/lib/components/MenuBar.js +12 -81
  13. package/lib/components/MenuBar.js.map +1 -1
  14. package/lib/components/TiptapContainer.js +2 -2
  15. package/lib/components/TiptapContainer.js.map +1 -1
  16. package/lib/components/__tests__/AltDialog.test.js +201 -0
  17. package/lib/components/__tests__/CharacterPicker.test.js +455 -0
  18. package/lib/components/__tests__/CssIcon.test.js +58 -0
  19. package/lib/components/__tests__/DragInTheBlank.test.js +295 -0
  20. package/lib/components/__tests__/ExplicitConstructedResponse.test.js +345 -0
  21. package/lib/components/__tests__/ImageToolbar.test.js +185 -0
  22. package/lib/components/__tests__/InlineDropdown.test.js +839 -0
  23. package/lib/components/__tests__/InsertImageHandler.test.js +171 -0
  24. package/lib/components/__tests__/MediaDialog.test.js +433 -0
  25. package/lib/components/__tests__/MediaToolbar.test.js +126 -0
  26. package/lib/components/__tests__/MediaWrapper.test.js +96 -0
  27. package/lib/components/__tests__/MenuBar.test.js +502 -0
  28. package/lib/components/__tests__/RespArea.test.js +171 -0
  29. package/lib/components/__tests__/TableIcons.test.js +153 -0
  30. package/lib/components/__tests__/TextAlign.test.js +209 -0
  31. package/lib/components/__tests__/TiptapContainer.test.js +196 -0
  32. package/lib/components/__tests__/characterUtils.test.js +178 -0
  33. package/lib/components/__tests__/choice.test.js +213 -0
  34. package/lib/components/__tests__/custom-popper.test.js +108 -0
  35. package/lib/components/__tests__/done-button.test.js +72 -0
  36. package/lib/components/__tests__/toolbar-buttons.test.js +277 -0
  37. package/lib/components/common/toolbar-buttons.js +5 -6
  38. package/lib/components/common/toolbar-buttons.js.map +1 -1
  39. package/lib/components/icons/TableIcons.js +1 -3
  40. package/lib/components/icons/TableIcons.js.map +1 -1
  41. package/lib/components/icons/TextAlign.js +5 -14
  42. package/lib/components/icons/TextAlign.js.map +1 -1
  43. package/lib/components/respArea/DragInTheBlank/__tests__/choice.test.js +90 -0
  44. package/lib/components/respArea/MathTemplated.js +8 -14
  45. package/lib/components/respArea/MathTemplated.js.map +1 -1
  46. package/lib/components/respArea/__tests__/MathTemplated.test.js +217 -0
  47. package/lib/extensions/__tests__/css.test.js +214 -0
  48. package/lib/extensions/__tests__/custom-toolbar-wrapper.test.js +175 -0
  49. package/lib/extensions/__tests__/divNode.test.js +108 -0
  50. package/lib/extensions/__tests__/ensure-empty-root-div.test.js +50 -0
  51. package/lib/extensions/__tests__/ensure-list-item-content-is-div.test.js +60 -0
  52. package/lib/extensions/__tests__/extended-list-item.test.js +13 -0
  53. package/lib/extensions/__tests__/extended-table-cell.test.js +15 -0
  54. package/lib/extensions/__tests__/extended-table.test.js +200 -0
  55. package/lib/extensions/__tests__/image-component.test.js +432 -0
  56. package/lib/extensions/__tests__/image.test.js +313 -0
  57. package/lib/extensions/__tests__/math.test.js +1411 -0
  58. package/lib/extensions/__tests__/media-node-view.test.js +307 -0
  59. package/lib/extensions/__tests__/media.test.js +292 -0
  60. package/lib/extensions/__tests__/responseArea.test.js +736 -0
  61. package/lib/extensions/math.js +37 -19
  62. package/lib/extensions/math.js.map +1 -1
  63. package/lib/styles/editorContainerStyles.js +2 -2
  64. package/lib/styles/editorContainerStyles.js.map +1 -1
  65. package/lib/utils/__tests__/helper.test.js +107 -0
  66. package/lib/utils/__tests__/toolbar.test.js +38 -0
  67. package/package.json +9 -9
  68. package/src/__tests__/EditableHtml.test.jsx +0 -80
  69. package/src/components/EditableHtml.jsx +0 -52
  70. package/src/components/MenuBar.jsx +9 -91
  71. package/src/components/TiptapContainer.jsx +2 -2
  72. package/src/components/__tests__/MenuBar.test.jsx +9 -97
  73. package/src/components/__tests__/toolbar-buttons.test.jsx +2 -15
  74. package/src/components/common/toolbar-buttons.jsx +4 -6
  75. package/src/components/icons/TableIcons.jsx +1 -9
  76. package/src/components/icons/TextAlign.jsx +5 -39
  77. package/src/components/respArea/MathTemplated.jsx +6 -13
  78. package/src/components/respArea/__tests__/MathTemplated.test.jsx +1 -1
  79. package/src/extensions/__tests__/math.test.js +11 -9
  80. package/src/extensions/math.js +19 -11
  81. package/src/styles/editorContainerStyles.js +2 -2
  82. package/LICENSE.md +0 -5
  83. package/src/__tests__/editor-attributes.test.jsx +0 -77
  84. package/src/__tests__/spellcheck.test.jsx +0 -63
@@ -0,0 +1,96 @@
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+LFxuICAgICk7XG4gICAgY29uc3Qgd3JhcHBlciA9IGNvbnRhaW5lci5maXJzdENoaWxkO1xuICAgIGV4cGVjdCh3cmFwcGVyKS50b0hhdmVBdHRyaWJ1dGUoJ2RhdGEtdGVzdGlkJywgJ2N1c3RvbScpO1xuICB9KTtcblxuICBpdCgncmVuZGVycyB3aXRob3V0IGNoaWxkcmVuJywgKCkgPT4ge1xuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPE1lZGlhV3JhcHBlciAvPik7XG4gICAgZXhwZWN0KGNvbnRhaW5lci5maXJzdENoaWxkKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICB9KTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxhQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFFQUcsUUFBUSxDQUFDLGNBQWMsRUFBRSxZQUFNO0VBQzdCQyxFQUFFLENBQUMsMEJBQTBCLEVBQUUsWUFBTTtJQUNuQyxJQUFBQyxPQUFBLEdBQXNCLElBQUFDLGNBQU0sZUFBQ1IsTUFBQSxZQUFBUyxhQUFBLENBQUNMLGFBQUEs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