@pie-lib/editable-html 11.3.0-beta.0 → 11.4.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.
Files changed (127) hide show
  1. package/CHANGELOG.json +12 -3322
  2. package/CHANGELOG.md +116 -100
  3. package/lib/block-tags.js +1 -1
  4. package/lib/block-tags.js.map +1 -0
  5. package/lib/constants.js +1 -1
  6. package/lib/constants.js.map +1 -0
  7. package/lib/editor.js +7 -7
  8. package/lib/editor.js.map +1 -0
  9. package/lib/index.js +1 -1
  10. package/lib/index.js.map +1 -0
  11. package/lib/parse-html.js +1 -1
  12. package/lib/parse-html.js.map +1 -0
  13. package/lib/plugins/characters/custom-popper.js +1 -1
  14. package/lib/plugins/characters/custom-popper.js.map +1 -0
  15. package/lib/plugins/characters/index.js +1 -1
  16. package/lib/plugins/characters/index.js.map +1 -0
  17. package/lib/plugins/characters/utils.js +1 -1
  18. package/lib/plugins/characters/utils.js.map +1 -0
  19. package/lib/plugins/css/icons/index.js +1 -1
  20. package/lib/plugins/css/icons/index.js.map +1 -0
  21. package/lib/plugins/css/index.js +1 -1
  22. package/lib/plugins/css/index.js.map +1 -0
  23. package/lib/plugins/customPlugin/index.js +1 -1
  24. package/lib/plugins/customPlugin/index.js.map +1 -0
  25. package/lib/plugins/html/icons/index.js +1 -1
  26. package/lib/plugins/html/icons/index.js.map +1 -0
  27. package/lib/plugins/html/index.js +1 -1
  28. package/lib/plugins/html/index.js.map +1 -0
  29. package/lib/plugins/image/alt-dialog.js +1 -1
  30. package/lib/plugins/image/alt-dialog.js.map +1 -0
  31. package/lib/plugins/image/component.js +1 -1
  32. package/lib/plugins/image/component.js.map +1 -0
  33. package/lib/plugins/image/image-toolbar.js +1 -1
  34. package/lib/plugins/image/image-toolbar.js.map +1 -0
  35. package/lib/plugins/image/index.js +1 -1
  36. package/lib/plugins/image/index.js.map +1 -0
  37. package/lib/plugins/image/insert-image-handler.js +1 -1
  38. package/lib/plugins/image/insert-image-handler.js.map +1 -0
  39. package/lib/plugins/index.js +1 -1
  40. package/lib/plugins/index.js.map +1 -0
  41. package/lib/plugins/list/index.js +1 -1
  42. package/lib/plugins/list/index.js.map +1 -0
  43. package/lib/plugins/math/index.js +1 -1
  44. package/lib/plugins/math/index.js.map +1 -0
  45. package/lib/plugins/media/index.js +1 -1
  46. package/lib/plugins/media/index.js.map +1 -0
  47. package/lib/plugins/media/media-dialog.js +4 -4
  48. package/lib/plugins/media/media-dialog.js.map +1 -0
  49. package/lib/plugins/media/media-toolbar.js +1 -1
  50. package/lib/plugins/media/media-toolbar.js.map +1 -0
  51. package/lib/plugins/media/media-wrapper.js +1 -1
  52. package/lib/plugins/media/media-wrapper.js.map +1 -0
  53. package/lib/plugins/rendering/index.js +1 -1
  54. package/lib/plugins/rendering/index.js.map +1 -0
  55. package/lib/plugins/respArea/drag-in-the-blank/choice.js +4 -4
  56. package/lib/plugins/respArea/drag-in-the-blank/choice.js.map +1 -0
  57. package/lib/plugins/respArea/drag-in-the-blank/index.js +1 -1
  58. package/lib/plugins/respArea/drag-in-the-blank/index.js.map +1 -0
  59. package/lib/plugins/respArea/explicit-constructed-response/index.js +1 -1
  60. package/lib/plugins/respArea/explicit-constructed-response/index.js.map +1 -0
  61. package/lib/plugins/respArea/icons/index.js +1 -1
  62. package/lib/plugins/respArea/icons/index.js.map +1 -0
  63. package/lib/plugins/respArea/index.js +1 -1
  64. package/lib/plugins/respArea/index.js.map +1 -0
  65. package/lib/plugins/respArea/inline-dropdown/index.js +1 -1
  66. package/lib/plugins/respArea/inline-dropdown/index.js.map +1 -0
  67. package/lib/plugins/respArea/math-templated/index.js +1 -1
  68. package/lib/plugins/respArea/math-templated/index.js.map +1 -0
  69. package/lib/plugins/respArea/utils.js +1 -1
  70. package/lib/plugins/respArea/utils.js.map +1 -0
  71. package/lib/plugins/table/CustomTablePlugin.js +1 -1
  72. package/lib/plugins/table/CustomTablePlugin.js.map +1 -0
  73. package/lib/plugins/table/icons/index.js +1 -1
  74. package/lib/plugins/table/icons/index.js.map +1 -0
  75. package/lib/plugins/table/index.js +1 -1
  76. package/lib/plugins/table/index.js.map +1 -0
  77. package/lib/plugins/table/table-toolbar.js +1 -1
  78. package/lib/plugins/table/table-toolbar.js.map +1 -0
  79. package/lib/plugins/textAlign/icons/index.js +1 -1
  80. package/lib/plugins/textAlign/icons/index.js.map +1 -0
  81. package/lib/plugins/textAlign/index.js +1 -1
  82. package/lib/plugins/textAlign/index.js.map +1 -0
  83. package/lib/plugins/toolbar/default-toolbar.js +1 -1
  84. package/lib/plugins/toolbar/default-toolbar.js.map +1 -0
  85. package/lib/plugins/toolbar/done-button.js +1 -1
  86. package/lib/plugins/toolbar/done-button.js.map +1 -0
  87. package/lib/plugins/toolbar/editor-and-toolbar.js +4 -4
  88. package/lib/plugins/toolbar/editor-and-toolbar.js.map +1 -0
  89. package/lib/plugins/toolbar/index.js +1 -1
  90. package/lib/plugins/toolbar/index.js.map +1 -0
  91. package/lib/plugins/toolbar/toolbar-buttons.js +1 -1
  92. package/lib/plugins/toolbar/toolbar-buttons.js.map +1 -0
  93. package/lib/plugins/toolbar/toolbar.js +1 -1
  94. package/lib/plugins/toolbar/toolbar.js.map +1 -0
  95. package/lib/plugins/utils.js +1 -1
  96. package/lib/plugins/utils.js.map +1 -0
  97. package/lib/serialization.js +1 -1
  98. package/lib/serialization.js.map +1 -0
  99. package/lib/shared/alert-dialog.js +75 -0
  100. package/lib/shared/index.js +136 -0
  101. package/lib/theme.js +1 -1
  102. package/lib/theme.js.map +1 -0
  103. package/package.json +7 -6
  104. package/src/editor.jsx +3 -3
  105. package/src/plugins/media/media-dialog.js +1 -1
  106. package/src/plugins/respArea/drag-in-the-blank/choice.jsx +1 -1
  107. package/src/plugins/toolbar/default-toolbar.jsx +6 -4
  108. package/src/plugins/toolbar/editor-and-toolbar.jsx +1 -1
  109. package/src/plugins/toolbar/toolbar.jsx +4 -4
  110. package/lib/__tests__/editor.test.js +0 -470
  111. package/lib/__tests__/serialization.test.js +0 -246
  112. package/lib/__tests__/utils.js +0 -106
  113. package/lib/plugins/image/__tests__/component.test.js +0 -51
  114. package/lib/plugins/image/__tests__/image-toolbar-logic.test.js +0 -56
  115. package/lib/plugins/image/__tests__/image-toolbar.test.js +0 -26
  116. package/lib/plugins/image/__tests__/index.test.js +0 -98
  117. package/lib/plugins/image/__tests__/insert-image-handler.test.js +0 -125
  118. package/lib/plugins/image/__tests__/mock-change.js +0 -25
  119. package/lib/plugins/list/__tests__/index.test.js +0 -79
  120. package/lib/plugins/math/__tests__/index.test.js +0 -300
  121. package/lib/plugins/media/__tests__/index.test.js +0 -71
  122. package/lib/plugins/table/__tests__/index.test.js +0 -442
  123. package/lib/plugins/table/__tests__/table-toolbar.test.js +0 -54
  124. package/lib/plugins/toolbar/__tests__/default-toolbar.test.js +0 -128
  125. package/lib/plugins/toolbar/__tests__/editor-and-toolbar.test.js +0 -51
  126. package/lib/plugins/toolbar/__tests__/toolbar-buttons.test.js +0 -54
  127. package/lib/plugins/toolbar/__tests__/toolbar.test.js +0 -120
@@ -1,246 +0,0 @@
1
- "use strict";
2
-
3
- var _serialization = require("../serialization");
4
-
5
- jest.mock('../plugins/math', function () {
6
- return {
7
- serialization: {
8
- serialize: jest.fn(function (o, c) {
9
- return undefined;
10
- }),
11
- deserialize: jest.fn(function (el, next) {
12
- return undefined;
13
- })
14
- }
15
- };
16
- });
17
- describe('TEXT_RULE', function () {
18
- var mkBr = function mkBr(previousSibling) {
19
- return {
20
- remove: jest.fn(),
21
- previousSibling: previousSibling,
22
- replaceWith: function replaceWith(foo) {
23
- previousSibling.textContent = previousSibling.textContent.replace(/(<br>)|(<\/br>)/g, foo);
24
- },
25
- normalize: jest.fn().mockReturnThis(),
26
- tagName: 'br'
27
- };
28
- };
29
-
30
- var mkTextNode = function mkTextNode() {
31
- var textContent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
32
- return {
33
- nodeName: '#text',
34
- textContent: textContent,
35
- normalize: jest.fn().mockReturnThis()
36
- };
37
- };
38
-
39
- var mkEl = function mkEl(querySelectorAllResult) {
40
- return {
41
- querySelectorAll: jest.fn().mockReturnValue(querySelectorAllResult),
42
- normalize: jest.fn().mockReturnThis()
43
- };
44
- };
45
-
46
- describe('deserialize', function () {
47
- it('if no previous text node, no error is thrown', function () {
48
- var br = mkBr();
49
- var el = mkEl([br]);
50
- expect(function () {
51
- return _serialization.TEXT_RULE.deserialize(el);
52
- }).not.toThrow();
53
- });
54
- });
55
- });
56
- describe('htmlToValue', function () {
57
- it('converts', function () {
58
- var expected = {
59
- object: 'value',
60
- document: {
61
- object: 'document',
62
- data: {},
63
- nodes: [{
64
- object: 'block',
65
- type: 'div',
66
- isVoid: false,
67
- data: {
68
- attributes: {}
69
- },
70
- nodes: [{
71
- object: 'block',
72
- type: 'paragraph',
73
- isVoid: false,
74
- data: {
75
- attributes: {}
76
- },
77
- nodes: [{
78
- object: 'text',
79
- leaves: [{
80
- object: 'leaf',
81
- text: 'foo',
82
- marks: []
83
- }]
84
- }, {
85
- object: 'inline',
86
- type: 'image',
87
- isVoid: true,
88
- data: {
89
- src: 'blah.jpg',
90
- width: null,
91
- height: null,
92
- margin: '',
93
- justifyContent: '',
94
- alignment: null,
95
- alt: null
96
- },
97
- nodes: [{
98
- object: 'text',
99
- leaves: [{
100
- object: 'leaf',
101
- text: '',
102
- marks: []
103
- }]
104
- }]
105
- }, {
106
- object: 'text',
107
- leaves: [{
108
- object: 'leaf',
109
- text: 'bar',
110
- marks: []
111
- }]
112
- }]
113
- }]
114
- }]
115
- }
116
- };
117
- var html = "<div><p>foo<img src=\"blah.jpg\"/>bar</p></div>";
118
- var v = (0, _serialization.htmlToValue)(html);
119
- console.log(JSON.stringify(v.toJSON()));
120
- expect(v.toJSON()).toEqual(expected);
121
- });
122
- it('does not break', function () {
123
- /*
124
- More than 12 iterations of the same kind would previously break the input. Here we have 16 text nodes, and now it works.
125
- */
126
- var expected = {
127
- object: 'value',
128
- document: {
129
- object: 'document',
130
- data: {},
131
- nodes: [{
132
- object: 'block',
133
- type: 'div',
134
- isVoid: false,
135
- data: {
136
- attributes: {}
137
- },
138
- nodes: [{
139
- object: 'text',
140
- leaves: [{
141
- object: 'leaf',
142
- text: 'Foo ',
143
- marks: []
144
- }, {
145
- object: 'leaf',
146
- text: 'x',
147
- marks: [{
148
- object: 'mark',
149
- type: 'italic',
150
- data: {}
151
- }]
152
- }, {
153
- object: 'leaf',
154
- text: ' bar ',
155
- marks: []
156
- }, {
157
- object: 'leaf',
158
- text: 'x',
159
- marks: [{
160
- object: 'mark',
161
- type: 'italic',
162
- data: {}
163
- }]
164
- }, {
165
- object: 'leaf',
166
- text: ' Foo ',
167
- marks: []
168
- }, {
169
- object: 'leaf',
170
- text: 'x',
171
- marks: [{
172
- object: 'mark',
173
- type: 'italic',
174
- data: {}
175
- }]
176
- }, {
177
- object: 'leaf',
178
- text: ' bar ',
179
- marks: []
180
- }, {
181
- object: 'leaf',
182
- text: 'x',
183
- marks: [{
184
- object: 'mark',
185
- type: 'italic',
186
- data: {}
187
- }]
188
- }, {
189
- object: 'leaf',
190
- text: ' Foo ',
191
- marks: []
192
- }, {
193
- object: 'leaf',
194
- text: 'x',
195
- marks: [{
196
- object: 'mark',
197
- type: 'italic',
198
- data: {}
199
- }]
200
- }, {
201
- object: 'leaf',
202
- text: ' bar ',
203
- marks: []
204
- }, {
205
- object: 'leaf',
206
- text: 'x',
207
- marks: [{
208
- object: 'mark',
209
- type: 'italic',
210
- data: {}
211
- }]
212
- }, {
213
- object: 'leaf',
214
- text: ' Foo ',
215
- marks: []
216
- }, {
217
- object: 'leaf',
218
- text: 'x',
219
- marks: [{
220
- object: 'mark',
221
- type: 'italic',
222
- data: {}
223
- }]
224
- }, {
225
- object: 'leaf',
226
- text: ' bar ',
227
- marks: []
228
- }, {
229
- object: 'leaf',
230
- text: 'x',
231
- marks: [{
232
- object: 'mark',
233
- type: 'italic',
234
- data: {}
235
- }]
236
- }]
237
- }]
238
- }]
239
- }
240
- };
241
- var html = '<div>Foo <em>x</em> bar <em>x</em> Foo <em>x</em> bar <em>x</em> Foo <em>x</em> bar <em>x</em> Foo <em>x</em> bar <em>x</em></div>';
242
- var v = (0, _serialization.htmlToValue)(html);
243
- expect(v.toJSON()).toEqual(expected);
244
- });
245
- });
246
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vc2VyaWFsaXphdGlvbi50ZXN0LmpzIl0sIm5hbWVzIjpbImplc3QiLCJtb2NrIiwic2VyaWFsaXphdGlvbiIsInNlcmlhbGl6ZSIsImZuIiwibyIsImMiLCJ1bmRlZmluZWQiLCJkZXNlcmlhbGl6ZSIsImVsIiwibmV4dCIsImRlc2NyaWJlIiwibWtCciIsInByZXZpb3VzU2libGluZyIsInJlbW92ZSIsInJlcGxhY2VXaXRoIiwiZm9vIiwidGV4dENvbnRlbnQiLCJyZXBsYWNlIiwibm9ybWFsaXplIiwibW9ja1JldHVyblRoaXMiLCJ0YWdOYW1lIiwibWtUZXh0Tm9kZSIsIm5vZGVOYW1lIiwibWtFbCIsInF1ZXJ5U2VsZWN0b3JBbGxSZXN1bHQiLCJxdWVyeVNlbGVjdG9yQWxsIiwibW9ja1JldHVyblZhbHVlIiwiaXQiLCJiciIsImV4cGVjdCIsIlRFWFRfUlVMRSIsIm5vdCIsInRvVGhyb3ciLCJleHBlY3RlZCIsIm9iamVjdCIsImRvY3VtZW50IiwiZGF0YSIsIm5vZGVzIiwidHlwZSIsImlzVm9pZCIsImF0dHJpYnV0ZXMiLCJsZWF2ZXMiLCJ0ZXh0IiwibWFya3MiLCJzcmMiLCJ3aWR0aCIsImhlaWdodCIsIm1hcmdpbiIsImp1c3RpZnlDb250ZW50IiwiYWxpZ25tZW50IiwiYWx0IiwiaHRtbCIsInYiLCJjb25zb2xlIiwibG9nIiwiSlNPTiIsInN0cmluZ2lmeSIsInRvSlNPTiIsInRvRXF1YWwiXSwibWFwcGluZ3MiOiI7O0FBQUE7O0FBRUFBLElBQUksQ0FBQ0MsSUFBTCxDQUFVLGlCQUFWLEVBQTZCO0FBQUEsU0FBTztBQUNsQ0MsSUFBQUEsYUFBYSxFQUFFO0FBQ2JDLE1BQUFBLFNBQVMsRUFBRUgsSUFBSSxDQUFDSSxFQUFMLENBQVEsVUFBQ0MsQ0FBRCxFQUFJQyxDQUFKLEVBQVU7QUFDM0IsZUFBT0MsU0FBUDtBQUNELE9BRlUsQ0FERTtBQUliQyxNQUFBQSxXQUFXLEVBQUVSLElBQUksQ0FBQ0ks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RUMsY0FBQUEsS0FBSyxFQUFFLENBQ0w7QUFDRVQsZ0JBQUFBLE1BQU0sRUFBRSxNQURWO0FBRUVJLGdCQUFBQSxJQUFJLEVBQUUsUUFGUjtBQUdFRixnQkFBQUEsSUFBSSxFQUFFO0FBSFIsZUFESztBQUhULGFBdEhNO0FBRlYsV0FESztBQUxULFNBREs7QUFIQztBQUZLLEtBQWpCO0FBc0pBLFFBQU1lLElBQUksR0FDUixvSUFERjtBQUVBLFFBQU1DLENBQUMsR0FBRyxnQ0FBWUQsSUFBWixDQUFWO0FBRUF0QixJQUFBQSxNQUFNLENBQUN1QixDQUFDLENBQUNLLE1BQUYsRUFBRCxDQUFOLENBQW1CQyxPQUFuQixDQUEyQnpCLFFBQTNCO0FBQ0QsR0EvSkMsQ0FBRjtBQWdLRCxDQXBQTyxDQUFSIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaHRtbFRvVmFsdWUsIFRFWFRfUlVMRSB9IGZyb20gJy4uL3NlcmlhbGl6YXRpb24nO1xuXG5qZXN0Lm1vY2soJy4uL3BsdWdpbnMvbWF0aCcsICgpID0+ICh7XG4gIHNlcmlhbGl6YXRpb246IHtcbiAgICBzZXJpYWxpemU6IGplc3QuZm4oKG8sIGMpID0+IHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfSksXG4gICAgZGVzZXJpYWxpemU6IGplc3QuZm4oKGVsLCBuZXh0KSA9PiB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH0pLFxuICB9LFxufSkpO1xuXG5kZXNjcmliZSgnVEVYVF9SVUxFJywgKCkgPT4ge1xuICBjb25zdCBta0JyID0gKHByZXZpb3VzU2libGluZykgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICByZW1vdmU6IGplc3QuZm4oKSxcbiAgICAgIHByZXZpb3VzU2libGluZyxcbiAgICAgIHJlcGxhY2VXaXRoOiAoZm9vKSA9PiB7XG4gICAgICAgIHByZXZpb3VzU2libGluZy50ZXh0Q29udGVudCA9IHByZXZpb3VzU2libGluZy50ZXh0Q29udGVudC5yZXBsYWNlKC8oPGJyPil8KDxcXC9icj4pL2csIGZvbyk7XG4gICAgICB9LFxuICAgICAgbm9ybWFsaXplOiBqZXN0LmZuKCkubW9ja1JldHVyblRoaXMoKSxcbiAgICAgIHRhZ05hbWU6ICdicicsXG4gICAgfTtcbiAgfTtcblxuICBjb25zdCBta1RleHROb2RlID0gKHRleHRDb250ZW50ID0gJycpID0+ICh7XG4gICAgbm9kZU5hbWU6ICcjdGV4dCcsXG4gICAgdGV4dENvbnRlbnQsXG4gICAgbm9ybWFsaXplOiBqZXN0LmZuKCkubW9ja1JldHVyblRoaXMoKSxcbiAgfSk7XG5cbiAgY29uc3QgbWtFbCA9IChxdWVyeVNlbGVjdG9yQWxsUmVzdWx0KSA9PiAoe1xuICAgIHF1ZXJ5U2VsZWN0b3JBbGw6IGplc3QuZm4oKS5tb2NrUmV0dXJuVmFsdWUocXVlcnlTZWxlY3RvckFsbFJlc3VsdCksXG4gICAgbm9ybWFsaXplOiBqZXN0LmZuKCkubW9ja1JldHVyblRoaXMoKSxcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2Rlc2VyaWFsaXplJywgKCkgPT4ge1xuICAgIGl0KCdpZiBubyBwcmV2aW91cyB0ZXh0IG5vZGUsIG5vIGVycm9yIGlzIHRocm93bicsICgpID0+IHtcbiAgICAgIGNvbnN0IGJyID0gbWtCcigpO1xuICAgICAgY29uc3QgZWwgPSBta0VsKFticl0pO1xuICAgICAgZXhwZWN0KCgpID0+IFRFWFRfUlVMRS5kZXNlcmlhbGl6ZShlbCkpLm5vdC50b1Rocm93KCk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG5cbmRlc2NyaWJlKCdodG1sVG9WYWx1ZScsICgpID0+IHtcbiAgaXQoJ2NvbnZlcnRzJywgKCkgPT4ge1xuICAgIGNvbnN0IGV4cGVjdGVkID0ge1xuICAgICAgb2JqZWN0OiAndmFsdWUnLFxuICAgICAgZG9jdW1lbnQ6IHtcbiAgICAgICAgb2JqZWN0OiAnZG9jdW1lbnQnLFxuICAgICAgICBkYXRhOiB7fSxcbiAgICAgICAgbm9kZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBvYmplY3Q6ICdibG9jaycsXG4gICAgICAgICAgICB0eXBlOiAnZGl2JyxcbiAgICAgICAgICAgIGlzVm9pZDogZmFsc2UsXG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgIGF0dHJpYnV0ZXM6IHt9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG5vZGVzOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBvYmplY3Q6ICdibG9jaycsXG4gICAgICAgICAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgICAgICAgICAgaXNWb2lkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiB7fSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIG5vZGVzOiBbXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG9iamVjdDogJ3RleHQnLFxuICAgICAgICAgICAgICAgICAgICBsZWF2ZXM6IFtcbiAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvYmplY3Q6ICdsZWFmJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6ICdmb28nLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWFya3M6IFtdLFxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBvYmplY3Q6ICdpbmxpbmUnLFxuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnaW1hZ2UnLFxuICAgICAgICAgICAgICAgICAgICBpc1ZvaWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICAgICAgICBzcmM6ICdibGFoLmpwZycsXG4gICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogJycsXG4gICAgICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICcnLFxuICAgICAgICAgICAgICAgICAgICAgIGFsaWdubWVudDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICBhbHQ6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIG5vZGVzOiBbXG4gICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgb2JqZWN0OiAndGV4dCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBsZWF2ZXM6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9iamVjdDogJ2xlYWYnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmtzOiBbXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG9iamVjdDogJ3RleHQnLFxuICAgICAgICAgICAgICAgICAgICBsZWF2ZXM6IFtcbiAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvYmplY3Q6ICdsZWFmJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6ICdiYXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWFya3M6IFtdLFxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH07XG4gICAgY29uc3QgaHRtbCA9IGA8ZGl2PjxwPmZvbzxpbWcgc3JjPVwiYmxhaC5qcGdcIi8+YmFyPC9wPjwvZGl2PmA7XG4gICAgY29uc3QgdiA9IGh0bWxUb1ZhbHVlKGh0bWwpO1xuXG4gICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkodi50b0pTT04oKSkpO1xuICAgIGV4cGVjdCh2LnRvSlNPTigpKS50b0VxdWFsKGV4cGVjdGVkKTtcbiAgfSk7XG5cbiAgaXQoJ2RvZXMgbm90IGJyZWFrJywgKCkgPT4ge1xuICAgIC8qXG4gICAgIE1vcmUgdGhhbiAxMiBpdGVyYXRpb25zIG9mIHRoZSBzYW1lIGtpbmQgd291bGQgcHJldmlvdXNseSBicmVhayB0aGUgaW5wdXQuIEhlcmUgd2UgaGF2ZSAxNiB0ZXh0IG5vZGVzLCBhbmQgbm93IGl0IHdvcmtzLlxuICAgICAqL1xuICAgIGNvbnN0IGV4cGVjdGVkID0ge1xuICAgICAgb2JqZWN0OiAndmFsdWUnLFxuICAgICAgZG9jdW1lbnQ6IHtcbiAgICAgICAgb2JqZWN0OiAnZG9jdW1lbnQnLFxuICAgICAgICBkYXRhOiB7fSxcbiAgICAgICAgbm9kZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBvYmplY3Q6ICdibG9jaycsXG4gICAgICAgICAgICB0eXBlOiAnZGl2JyxcbiAgICAgICAgICAgIGlzVm9pZDogZmFsc2UsXG4gICAgICAgICAgICBkYXRhOiB7IGF0dHJpYnV0ZXM6IHt9IH0sXG4gICAgICAgICAgICBub2RlczogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgb2JqZWN0OiAndGV4dCcsXG4gICAgICAgICAgICAgICAgbGVhdmVzOiBbXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG9iamVjdDogJ2xlYWYnLFxuICAgICAgICAgICAgICAgICAgICB0ZXh0OiAnRm9vICcsXG4gICAgICAgICAgICAgICAgICAgIG1hcmtzOiBbXSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG9iamVjdDogJ2xlYWYnLFxuICAgICAgICAgICAgICAgICAgICB0ZXh0OiAneCcsXG4gICAgICAgICAgICAgICAgICAgIG1hcmtzOiBbXG4gICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgb2JqZWN0OiAnbWFyaycsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnaXRhbGljJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBvYmplY3Q6ICdsZWFmJyxcbiAgICAgICAgICAgICAgICAgICAgdGV4dDogJyBiYXIgJyxcbiAgICAgICAgICAgICAgICAgICAgbWFya3M6IFtdLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgb2JqZWN0OiAnbGVhZicsXG4gICAgICAgICAgICAgICAgICAgIHRleHQ6ICd4JyxcbiAgICAgICAgICAgICAgICAgICAgbWFya3M6IFtcbiAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvYmplY3Q6ICdtYXJrJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdpdGFsaWMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YToge30sXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG9iamVjdDogJ2xlYWYnLFxuICAgICAgICAgICAgICAgICAgICB0ZXh0OiAnIEZvbyAnLFxuICAgICAgICAgICAgICAgICAgICBtYXJrczogW10sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBvYmplY3Q6ICdsZWFmJyxcbiAgICAgICAgICAgICAgICAgICAgdGV4dDogJ3gnLFxuICAgICAgICAgICAgICAgICAgICBtYXJrczogW1xuICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9iamVjdDogJ21hcmsnLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2l0YWxpYycsXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgb2JqZWN0OiAnbGVhZicsXG4gICAgICAgICAgICAgICAgICAgIHRleHQ6ICcgYmFyICcsXG4gICAgICAgICAgICAgICAgICAgIG1hcmtzOiBbXSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG9iamVjdDogJ2xlYWYnLFxuICAgICAgICAgICAgICAgICAgICB0ZXh0OiAneCcsXG4gICAgICAgICAgICAgICAgICAgIG1hcmtzOiBbXG4gICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgb2JqZWN0OiAnbWFyaycsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnaXRhbGljJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBvYmplY3Q6ICdsZWFmJyxcbiAgICAgICAgICAgICAgICAgICAgdGV4dDogJyBGb28gJyxcbiAgICAgICAgICAgICAgICAgICAgbWFya3M6IFtdLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgb2JqZWN0OiAnbGVhZicsXG4gICAgICAgICAgICAgICAgICAgIHRleHQ6ICd4JyxcbiAgICAgICAgICAgICAgICAgICAgbWFya3M6IFtcbiAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvYmplY3Q6ICdtYXJrJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdpdGFsaWMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YToge30sXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG9iamVjdDogJ2xlYWYnLFxuICAgICAgICAgICAgICAgICAgICB0ZXh0OiAnIGJhciAnLFxuICAgICAgICAgICAgICAgICAgICBtYXJrczogW10sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBvYmplY3Q6ICdsZWFmJyxcbiAgICAgICAgICAgICAgICAgICAgdGV4dDogJ3gnLFxuICAgICAgICAgICAgICAgICAgICBtYXJrczogW1xuICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9iamVjdDogJ21hcmsnLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2l0YWxpYycsXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgb2JqZWN0OiAnbGVhZicsXG4gICAgICAgICAgICAgICAgICAgIHRleHQ6ICcgRm9vICcsXG4gICAgICAgICAgICAgICAgICAgIG1hcmtzOiBbXSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG9iamVjdDogJ2xlYWYnLFxuICAgICAgICAgICAgICAgICAgICB0ZXh0OiAneCcsXG4gICAgICAgICAgICAgICAgICAgIG1hcmtzOiBbXG4gICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgb2JqZWN0OiAnbWFyaycsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnaXRhbGljJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBvYmplY3Q6ICdsZWFmJyxcbiAgICAgICAgICAgICAgICAgICAgdGV4dDogJyBiYXIgJyxcbiAgICAgICAgICAgICAgICAgICAgbWFya3M6IFtdLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgb2JqZWN0OiAnbGVhZicsXG4gICAgICAgICAgICAgICAgICAgIHRleHQ6ICd4JyxcbiAgICAgICAgICAgICAgICAgICAgbWFya3M6IFtcbiAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvYmplY3Q6ICdtYXJrJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdpdGFsaWMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YToge30sXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfTtcbiAgICBjb25zdCBodG1sID1cbiAgICAgICc8ZGl2PkZvbyA8ZW0+eDwvZW0+IGJhciA8ZW0+eDwvZW0+IEZvbyA8ZW0+eDwvZW0+IGJhciA8ZW0+eDwvZW0+IEZvbyA8ZW0+eDwvZW0+IGJhciA8ZW0+eDwvZW0+IEZvbyA8ZW0+eDwvZW0+IGJhciA8ZW0+eDwvZW0+PC9kaXY+JztcbiAgICBjb25zdCB2ID0gaHRtbFRvVmFsdWUoaHRtbCk7XG5cbiAgICBleHBlY3Qodi50b0pTT04oKSkudG9FcXVhbChleHBlY3RlZCk7XG4gIH0pO1xufSk7XG4iXX0=
@@ -1,106 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.classObject = classObject;
9
- exports.mockComponents = mockComponents;
10
- exports.mockIconButton = mockIconButton;
11
- exports.mockMathInput = mockMathInput;
12
-
13
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
14
-
15
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
16
-
17
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
18
-
19
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
20
-
21
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
22
-
23
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
24
-
25
- var _react = _interopRequireDefault(require("react"));
26
-
27
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
28
-
29
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
30
-
31
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
32
-
33
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
34
-
35
- function classObject() {
36
- var out = {};
37
-
38
- for (var a in arguments) {
39
- var value = arguments[a];
40
- out[value] = value;
41
- }
42
-
43
- return out;
44
- }
45
-
46
- function mockComponents() {
47
- var _arguments = arguments;
48
- var out = {};
49
-
50
- var _loop = function _loop() {
51
- var value = _arguments[a];
52
-
53
- out[value] = /*#__PURE__*/function (_React$Component) {
54
- (0, _inherits2["default"])(_class, _React$Component);
55
-
56
- var _super = _createSuper(_class);
57
-
58
- function _class() {
59
- (0, _classCallCheck2["default"])(this, _class);
60
- return _super.apply(this, arguments);
61
- }
62
-
63
- (0, _createClass2["default"])(_class, [{
64
- key: "render",
65
- value: function render() {
66
- return /*#__PURE__*/_react["default"].createElement("div", {
67
- "data-mock-component": "true"
68
- }, value);
69
- }
70
- }]);
71
- return _class;
72
- }(_react["default"].Component);
73
- };
74
-
75
- for (var a in arguments) {
76
- _loop();
77
- }
78
-
79
- return out;
80
- }
81
-
82
- function mockIconButton() {
83
- jest.mock('@material-ui/core/IconButton', function () {
84
- return function (props) {
85
- return /*#__PURE__*/_react["default"].createElement("div", {
86
- className: props.className,
87
- style: props.style,
88
- ariaLabel: props['aria-label']
89
- });
90
- };
91
- });
92
- }
93
-
94
- function mockMathInput() {
95
- jest.mock('@pie-lib/math-input', function () {
96
- return _objectSpread({
97
- addBrackets: jest.fn(function (s) {
98
- return s;
99
- }),
100
- removeBrackets: jest.fn(function (s) {
101
- return s;
102
- })
103
- }, mockComponents('Keypad', 'MathQuillInput', 'EditableMathInput', 'HorizontalKeypad'));
104
- });
105
- }
106
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vdXRpbHMuanMiXSwibmFtZXMiOlsiY2xhc3NPYmplY3QiLCJvdXQiLCJhIiwiYXJndW1lbnRzIiwidmFsdWUiLCJtb2NrQ29tcG9uZW50cyIsIlJlYWN0IiwiQ29tcG9uZW50IiwibW9ja0ljb25CdXR0b24iLCJqZXN0IiwibW9jayIsInByb3BzIiwiY2xhc3NOYW1lIiwic3R5bGUiLCJtb2NrTWF0aElucHV0IiwiYWRkQnJhY2tldHMiLCJmbiIsInMiLCJyZW1vdmVCcmFja2V0cyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7Ozs7Ozs7Ozs7QUFFTyxTQUFTQSxXQUFULEdBQXVCO0FBQzVCLE1BQU1DLEdBQUcsR0FBRyxFQUFaOztBQUNBLE9BQUssSUFBSUMsQ0FBVCxJQUFjQyxTQUFkLEVBQXlCO0FBQ3ZCLFFBQU1DLEtBQUssR0FBR0QsU0FBUyxDQUFDRCxDQUFELENBQXZCO0FBQ0FELElBQUFBLEdBQUcsQ0FBQ0csS0FBRCxDQUFILEdBQWFBLEtBQWI7QUFDRDs7QUFDRCxTQUFPSCxHQUFQO0FBQ0Q7O0FBRU0sU0FBU0ksY0FBVCxHQUEwQjtBQUFBO0FBQy9CLE1BQU1KLEdBQUcsR0FBRyxFQUFaOztBQUQrQjtBQUc3QixRQUFNRyxLQUFLLEdBQUdELFVBQVMsQ0FBQ0QsQ0FBRCxDQUF2Qjs7QUFDQUQsSUFBQUEsR0FBRyxDQUFDRyxLQUFELENBQUg7QUFBQTs7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUEsZUFDRSxrQkFBUztBQUNQLDhCQUFPO0FBQUssbUNBQW9CO0FBQXpCLGFBQWlDQSxLQUFqQyxDQUFQO0FBQ0Q7QUFISDtBQUFBO0FBQUEsTUFBMkJFLGtCQUFNQyxTQUFqQztBQUo2Qjs7QUFFL0IsT0FBSyxJQUFJTCxDQUFULElBQWNDLFNBQWQsRUFBeUI7QUFBQTtBQU94Qjs7QUFDRCxTQUFPRixHQUFQO0FBQ0Q7O0FBRU0sU0FBU08sY0FBVCxHQUEwQjtBQUMvQkMsRUFBQUEsSUFBSSxDQUFDQyxJQUFMLENBQVUsOEJBQVYsRUFBMEMsWUFBTTtBQUM5QyxXQUFPLFVBQUNDLEtBQUQ7QUFBQSwwQkFBVztBQUFLLFFBQUEsU0FBUyxFQUFFQSxLQUFLLENBQUNDLFNBQXRCO0FBQWlDLFFBQUEsS0FBSyxFQUFFRCxLQUFLLENBQUNFLEtBQTlDO0FBQXFELFFBQUEsU0FBUyxFQUFFRixLQUFLLENBQUMsWUFBRDtBQUFyRSxRQUFYO0FBQUEsS0FBUDtBQUNELEdBRkQ7QUFHRDs7QUFDTSxTQUFTRyxhQUFULEdBQXlCO0FBQzlCTCxFQUFBQSxJQUFJLENBQUNDLElBQUwsQ0FBVSxxQkFBVixFQUFpQztBQUFBO0FBQy9CSyxNQUFBQSxXQUFXLEVBQUVOLElBQUksQ0FBQ08sRUFBTCxDQUFRLFVBQUNDLENBQUQ7QUFBQSxlQUFPQSxDQUFQO0FBQUEsT0FBUixDQURrQjtBQUUvQkMsTUFBQUEsY0FBYyxFQUFFVCxJQUFJLENBQUNPLEVBQUwsQ0FBUSxVQUFDQyxDQUFEO0FBQUEsZUFBT0EsQ0FBUDtBQUFBLE9BQVI7QUFGZSxPQUc1QlosY0FBYyxDQUFDLFFBQUQsRUFBVyxnQkFBWCxFQUE2QixtQkFBN0IsRUFBa0Qsa0JBQWxELENBSGM7QUFBQSxHQUFqQztBQUtEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcblxuZXhwb3J0IGZ1bmN0aW9uIGNsYXNzT2JqZWN0KCkge1xuICBjb25zdCBvdXQgPSB7fTtcbiAgZm9yICh2YXIgYSBpbiBhcmd1bWVudHMpIHtcbiAgICBjb25zdCB2YWx1ZSA9IGFyZ3VtZW50c1thXTtcbiAgICBvdXRbdmFsdWVdID0gdmFsdWU7XG4gIH1cbiAgcmV0dXJuIG91dDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vY2tDb21wb25lbnRzKCkge1xuICBjb25zdCBvdXQgPSB7fTtcbiAgZm9yICh2YXIgYSBpbiBhcmd1bWVudHMpIHtcbiAgICBjb25zdCB2YWx1ZSA9IGFyZ3VtZW50c1thXTtcbiAgICBvdXRbdmFsdWVdID0gY2xhc3MgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICAgICAgcmVuZGVyKCkge1xuICAgICAgICByZXR1cm4gPGRpdiBkYXRhLW1vY2stY29tcG9uZW50PVwidHJ1ZVwiPnt2YWx1ZX08L2Rpdj47XG4gICAgICB9XG4gICAgfTtcbiAgfVxuICByZXR1cm4gb3V0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbW9ja0ljb25CdXR0b24oKSB7XG4gIGplc3QubW9jaygnQG1hdGVyaWFsLXVpL2NvcmUvSWNvbkJ1dHRvbicsICgpID0+IHtcbiAgICByZXR1cm4gKHByb3BzKSA9PiA8ZGl2IGNsYXNzTmFtZT17cHJvcHMuY2xhc3NOYW1lfSBzdHlsZT17cHJvcHMuc3R5bGV9IGFyaWFMYWJlbD17cHJvcHNbJ2FyaWEtbGFiZWwnXX0gLz47XG4gIH0pO1xufVxuZXhwb3J0IGZ1bmN0aW9uIG1vY2tNYXRoSW5wdXQoKSB7XG4gIGplc3QubW9jaygnQHBpZS1saWIvbWF0aC1pbnB1dCcsICgpID0+ICh7XG4gICAgYWRkQnJhY2tldHM6IGplc3QuZm4oKHMpID0+IHMpLFxuICAgIHJlbW92ZUJyYWNrZXRzOiBqZXN0LmZuKChzKSA9PiBzKSxcbiAgICAuLi5tb2NrQ29tcG9uZW50cygnS2V5cGFkJywgJ01hdGhRdWlsbElucHV0JywgJ0VkaXRhYmxlTWF0aElucHV0JywgJ0hvcml6b250YWxLZXlwYWQnKSxcbiAgfSkpO1xufVxuIl19
@@ -1,51 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _slate = require("slate");
6
-
7
- var _component = require("../component");
8
-
9
- var _react = _interopRequireDefault(require("react"));
10
-
11
- var _reactTestRenderer = _interopRequireDefault(require("react-test-renderer"));
12
-
13
- it('renders correctly', function () {
14
- var node = _slate.Block.fromJSON({
15
- type: 'image',
16
- data: _slate.Data.create({
17
- width: 50,
18
- height: 50
19
- })
20
- });
21
-
22
- var editor = {
23
- value: {},
24
- change: jest.fn()
25
- };
26
- var onDelete = jest.fn();
27
- var classes = {
28
- active: 'active',
29
- loading: 'loading',
30
- pendingDelete: 'pendingDelete'
31
- };
32
-
33
- var tree = _reactTestRenderer["default"].create( /*#__PURE__*/_react["default"].createElement(_component.Component, {
34
- node: node,
35
- editor: editor,
36
- classes: classes,
37
- onDelete: onDelete
38
- }), {
39
- createNodeMock: function createNodeMock(el) {
40
- if (el.type === 'img') {
41
- return {
42
- naturalWidth: 100,
43
- naturalHeight: 100
44
- };
45
- }
46
- }
47
- }).toJSON();
48
-
49
- expect(tree).toMatchSnapshot();
50
- });
51
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wbHVnaW5zL2ltYWdlL19fdGVzdHNfXy9jb21wb25lbnQudGVzdC5qc3giXSwibmFtZXMiOlsiaXQiLCJub2RlIiwiQmxvY2siLCJmcm9tSlNPTiIsInR5cGUiLCJkYXRhIiwiRGF0YSIsImNyZWF0ZSIsIndpZHRoIiwiaGVpZ2h0IiwiZWRpdG9yIiwidmFsdWUiLCJjaGFuZ2UiLCJqZXN0IiwiZm4iLCJvbkRlbGV0ZSIsImNsYXNzZXMiLCJhY3RpdmUiLCJsb2FkaW5nIiwicGVuZGluZ0RlbGV0ZSIsInRyZWUiLCJyZW5kZXJlciIsImNyZWF0ZU5vZGVNb2NrIiwiZWwiLCJuYXR1cmFsV2lkdGgiLCJuYXR1cmFsSGVpZ2h0IiwidG9KU09OIiwiZXhwZWN0IiwidG9NYXRjaFNuYXBzaG90Il0sIm1hcHBpbmdzIjoiOzs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUFBLEVBQUUsQ0FBQyxtQkFBRCxFQUFzQixZQUFNO0FBQzVCLE1BQU1DLElBQUksR0FBR0MsYUFBTUMsUUFBTixDQUFlO0FBQzFCQyxJQUFBQSxJQUFJLEVBQUUsT0FEb0I7QUFFMUJDLElBQUFBLElBQUksRUFBRUMsWUFBS0MsTUFBTCxDQUFZO0FBQ2hCQyxNQUFBQSxLQUFLLEVBQUUsRUFEUztBQUVoQkMsTUFBQUEsTUFBTSxFQUFFO0FBRlEsS0FBWjtBQUZvQixHQUFmLENBQWI7O0FBUUEsTUFBTUMsTUFBTSxHQUFHO0FBQ2JDLElBQUFBLEtBQUssRUFBRSxFQURNO0FBRWJDLElBQUFBLE1BQU0sRUFBRUMsSUFBSSxDQUFDQyxFQUFMO0FBRkssR0FBZjtBQUtBLE1BQU1DLFFBQVEsR0FBR0YsSUFBSSxDQUFDQyxFQUFMLEVBQWpCO0FBRUEsTUFBTUUsT0FBTyxHQUFHO0FBQ2RDLElBQUFBLE1BQU0sRUFBRSxRQURNO0FBRWRDLElBQUFBLE9BQU8sRUFBRSxTQUZLO0FBR2RDLElBQUFBLGFBQWEsRUFBRTtBQUhELEdBQWhCOztBQU1BLE1BQU1DLElBQUksR0FBR0MsOEJBQ1ZkLE1BRFUsZUFDSCxnQ0FBQyxvQkFBRDtBQUFXLElBQUEsSUFBSSxFQUFFTixJQUFqQjtBQUF1QixJQUFBLE1BQU0sRUFBRVMsTUFBL0I7QUFBdUMsSUFBQSxPQUFPLEVBQUVNLE9BQWhEO0FBQXlELElBQUEsUUFBUSxFQUFFRDtBQUFuRSxJQURHLEVBQzhFO0FBQ3ZGTyxJQUFBQSxjQUFjLEVBQUUsd0JBQUNDLEVBQUQsRUFBUTtBQUN0QixVQUFJQSxFQUFFLENBQUNuQixJQUFILEtBQVksS0FBaEIsRUFBdUI7QUFDckIsZUFBTztBQUNMb0IsVUFBQUEsWUFBWSxFQUFFLEdBRFQ7QUFFTEMsVUFBQUEsYUFBYSxFQUFFO0FBRlYsU0FBUDtBQUlEO0FBQ0Y7QUFSc0YsR0FEOUUsRUFXVkMsTUFYVSxFQUFiOztBQVlBQyxFQUFBQSxNQUFNLENBQUNQLElBQUQsQ0FBTixDQUFhUSxlQUFiO0FBQ0QsQ0FuQ0MsQ0FBRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGEsIEJsb2NrIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50JztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgcmVuZGVyZXIgZnJvbSAncmVhY3QtdGVzdC1yZW5kZXJlcic7XG5cbml0KCdyZW5kZXJzIGNvcnJlY3RseScsICgpID0+IHtcbiAgY29uc3Qgbm9kZSA9IEJsb2NrLmZyb21KU09OKHtcbiAgICB0eXBlOiAnaW1hZ2UnLFxuICAgIGRhdGE6IERhdGEuY3JlYXRlKHtcbiAgICAgIHdpZHRoOiA1MCxcbiAgICAgIGhlaWdodDogNTAsXG4gICAgfSksXG4gIH0pO1xuXG4gIGNvbnN0IGVkaXRvciA9IHtcbiAgICB2YWx1ZToge30sXG4gICAgY2hhbmdlOiBqZXN0LmZuKCksXG4gIH07XG5cbiAgY29uc3Qgb25EZWxldGUgPSBqZXN0LmZuKCk7XG5cbiAgY29uc3QgY2xhc3NlcyA9IHtcbiAgICBhY3RpdmU6ICdhY3RpdmUnLFxuICAgIGxvYWRpbmc6ICdsb2FkaW5nJyxcbiAgICBwZW5kaW5nRGVsZXRlOiAncGVuZGluZ0RlbGV0ZScsXG4gIH07XG5cbiAgY29uc3QgdHJlZSA9IHJlbmRlcmVyXG4gICAgLmNyZWF0ZSg8Q29tcG9uZW50IG5vZGU9e25vZGV9IGVkaXRvcj17ZWRpdG9yfSBjbGFzc2VzPXtjbGFzc2VzfSBvbkRlbGV0ZT17b25EZWxldGV9IC8+LCB7XG4gICAgICBjcmVhdGVOb2RlTW9jazogKGVsKSA9PiB7XG4gICAgICAgIGlmIChlbC50eXBlID09PSAnaW1nJykge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBuYXR1cmFsV2lkdGg6IDEwMCxcbiAgICAgICAgICAgIG5hdHVyYWxIZWlnaHQ6IDEwMCxcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH0pXG4gICAgLnRvSlNPTigpO1xuICBleHBlY3QodHJlZSkudG9NYXRjaFNuYXBzaG90KCk7XG59KTtcbiJdfQ==
@@ -1,56 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
6
-
7
- var _enzyme = require("enzyme");
8
-
9
- var _slate = require("slate");
10
-
11
- var _imageToolbar = require("../image-toolbar");
12
-
13
- var _mockChange = _interopRequireDefault(require("./mock-change"));
14
-
15
- var _react = _interopRequireDefault(require("react"));
16
-
17
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
18
-
19
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
20
-
21
- describe('ImageToolbar', function () {
22
- var onChange;
23
- beforeEach(function () {
24
- onChange = jest.fn();
25
- });
26
-
27
- var mkWrapper = function mkWrapper(extras) {
28
- var props = _objectSpread({
29
- onChange: onChange,
30
- classes: {}
31
- }, extras);
32
-
33
- return (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_imageToolbar.ImageToolbar, props));
34
- };
35
-
36
- describe('onChange', function () {
37
- it('renders', function () {
38
- return expect(mkWrapper()).toMatchSnapshot();
39
- });
40
- it('calls onChange with alignment', function () {
41
- var w = mkWrapper();
42
- w.instance().onAlignmentClick('center');
43
- expect(onChange).toHaveBeenCalledWith({
44
- alignment: 'center'
45
- });
46
- });
47
- it('calls onChange with alt text', function () {
48
- var w = mkWrapper();
49
- w.instance().onAltTextDone('alt text');
50
- expect(onChange).toHaveBeenCalledWith({
51
- alt: 'alt text'
52
- }, true);
53
- });
54
- });
55
- });
56
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wbHVnaW5zL2ltYWdlL19fdGVzdHNfXy9pbWFnZS10b29sYmFyLWxvZ2ljLnRlc3QuanN4Il0sIm5hbWVzIjpbImRlc2NyaWJlIiwib25DaGFuZ2UiLCJiZWZvcmVFYWNoIiwiamVzdCIsImZuIiwibWtXcmFwcGVyIiwiZXh0cmFzIiwicHJvcHMiLCJjbGFzc2VzIiwiaXQiLCJleHBlY3QiLCJ0b01hdGNoU25hcHNob3QiLCJ3IiwiaW5zdGFuY2UiLCJvbkFsaWdubWVudENsaWNrIiwidG9IYXZlQmVlbkNhbGxlZFdpdGgiLCJhbGlnbm1lbnQiLCJvbkFsdFRleHREb25lIiwiYWx0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7O0FBRUFBLFFBQVEsQ0FBQyxjQUFELEVBQWlCLFlBQU07QUFDN0IsTUFBSUMsUUFBSjtBQUVBQyxFQUFBQSxVQUFVLENBQUMsWUFBTTtBQUNmRCxJQUFBQSxRQUFRLEdBQUdFLElBQUksQ0FBQ0MsRUFBTCxFQUFYO0FBQ0QsR0FGUyxDQUFWOztBQUlBLE1BQU1DLFNBQVMsR0FBRyxTQUFaQSxTQUFZLENBQUNDLE1BQUQsRUFBWTtBQUM1QixRQUFNQyxLQUFLO0FBQ1ROLE1BQUFBLFFBQVEsRUFBUkEsUUFEUztBQUVUTyxNQUFBQSxPQUFPLEVBQUU7QUFGQSxPQUdORixNQUhNLENBQVg7O0FBTUEsV0FBTyxtQ0FBUSxnQ0FBQywwQkFBRCxFQUFrQkMsS0FBbEIsQ0FBUixDQUFQO0FBQ0QsR0FSRDs7QUFVQVAsRUFBQUEsUUFBUSxDQUFDLFVBQUQsRUFBYSxZQUFNO0FBQ3pCUyxJQUFBQSxFQUFFLENBQUMsU0FBRCxFQUFZLFlBQVc7QUFDdkIsYUFBT0MsTUFBTSxDQUFDTCxTQUFTLEVBQVYsQ0FBTixDQUFvQk0sZUFBcEIsRUFBUDtBQUNELEtBRkMsQ0FBRjtBQUlBRixJQUFBQSxFQUFFLENBQUMsK0JBQUQsRUFBa0MsWUFBTTtBQUN4QyxVQUFNRyxDQUFDLEdBQUdQLFNBQVMsRUFBbkI7QUFDQU8sTUFBQUEsQ0FBQyxDQUFDQyxRQUFGLEdBQWFDLGdCQUFiLENBQThCLFFBQTlCO0FBQ0FKLE1BQUFBLE1BQU0sQ0FBQ1QsUUFBRCxDQUFOLENBQWlCYyxvQkFBakIsQ0FBc0M7QUFBRUMsUUFBQUEsU0FBUyxFQUFFO0FBQWIsT0FBdEM7QUFDRCxLQUpDLENBQUY7QUFNQVAsSUFBQUEsRUFBRSxDQUFDLDhCQUFELEVBQWlDLFlBQU07QUFDdkMsVUFBTUcsQ0FBQyxHQUFHUCxTQUFTLEVBQW5CO0FBQ0FPLE1BQUFBLENBQUMsQ0FBQ0MsUUFBRixHQUFhSSxhQUFiLENBQTJCLFVBQTNCO0FBQ0FQLE1BQUFBLE1BQU0sQ0FBQ1QsUUFBRCxDQUFOLENBQWlCYyxvQkFBakIsQ0FBc0M7QUFBRUcsUUFBQUEsR0FBRyxFQUFFO0FBQVAsT0FBdEMsRUFBMkQsSUFBM0Q7QUFDRCxLQUpDLENBQUY7QUFLRCxHQWhCTyxDQUFSO0FBaUJELENBbENPLENBQVIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb25maWd1cmUsIHNoYWxsb3cgfSBmcm9tICdlbnp5bWUnO1xuXG5pbXBvcnQgeyBEYXRhLCBCbG9jaywgVmFsdWUgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBJbWFnZVRvb2xiYXIgfSBmcm9tICcuLi9pbWFnZS10b29sYmFyJztcbmltcG9ydCBNb2NrQ2hhbmdlIGZyb20gJy4vbW9jay1jaGFuZ2UnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcblxuZGVzY3JpYmUoJ0ltYWdlVG9vbGJhcicsICgpID0+IHtcbiAgbGV0IG9uQ2hhbmdlO1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIG9uQ2hhbmdlID0gamVzdC5mbigpO1xuICB9KTtcblxuICBjb25zdCBta1dyYXBwZXIgPSAoZXh0cmFzKSA9PiB7XG4gICAgY29uc3QgcHJvcHMgPSB7XG4gICAgICBvbkNoYW5nZSxcbiAgICAgIGNsYXNzZXM6IHt9LFxuICAgICAgLi4uZXh0cmFzLFxuICAgIH07XG5cbiAgICByZXR1cm4gc2hhbGxvdyg8SW1hZ2VUb29sYmFyIHsuLi5wcm9wc30gLz4pO1xuICB9O1xuXG4gIGRlc2NyaWJlKCdvbkNoYW5nZScsICgpID0+IHtcbiAgICBpdCgncmVuZGVycycsIGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIGV4cGVjdChta1dyYXBwZXIoKSkudG9NYXRjaFNuYXBzaG90KCk7XG4gICAgfSk7XG5cbiAgICBpdCgnY2FsbHMgb25DaGFuZ2Ugd2l0aCBhbGlnbm1lbnQnLCAoKSA9PiB7XG4gICAgICBjb25zdCB3ID0gbWtXcmFwcGVyKCk7XG4gICAgICB3Lmluc3RhbmNlKCkub25BbGlnbm1lbnRDbGljaygnY2VudGVyJyk7XG4gICAgICBleHBlY3Qob25DaGFuZ2UpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHsgYWxpZ25tZW50OiAnY2VudGVyJyB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdjYWxscyBvbkNoYW5nZSB3aXRoIGFsdCB0ZXh0JywgKCkgPT4ge1xuICAgICAgY29uc3QgdyA9IG1rV3JhcHBlcigpO1xuICAgICAgdy5pbnN0YW5jZSgpLm9uQWx0VGV4dERvbmUoJ2FsdCB0ZXh0Jyk7XG4gICAgICBleHBlY3Qob25DaGFuZ2UpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHsgYWx0OiAnYWx0IHRleHQnIH0sIHRydWUpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
@@ -1,26 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _react = _interopRequireDefault(require("react"));
6
-
7
- var _imageToolbar = _interopRequireDefault(require("../image-toolbar"));
8
-
9
- var _reactTestRenderer = _interopRequireDefault(require("react-test-renderer"));
10
-
11
- var _slate = require("slate");
12
-
13
- it('renders correctly', function () {
14
- var classes = {
15
- holder: 'holder'
16
- };
17
-
18
- var tree = _reactTestRenderer["default"].create( /*#__PURE__*/_react["default"].createElement(_imageToolbar["default"], {
19
- percent: 50,
20
- classes: classes,
21
- onChange: jest.fn()
22
- })).toJSON();
23
-
24
- expect(tree).toMatchSnapshot();
25
- });
26
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wbHVnaW5zL2ltYWdlL19fdGVzdHNfXy9pbWFnZS10b29sYmFyLnRlc3QuanN4Il0sIm5hbWVzIjpbIml0IiwiY2xhc3NlcyIsImhvbGRlciIsInRyZWUiLCJyZW5kZXJlciIsImNyZWF0ZSIsImplc3QiLCJmbiIsInRvSlNPTiIsImV4cGVjdCIsInRvTWF0Y2hTbmFwc2hvdCJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUVBQSxFQUFFLENBQUMsbUJBQUQsRUFBc0IsWUFBTTtBQUM1QixNQUFNQyxPQUFPLEdBQUc7QUFBRUMsSUFBQUEsTUFBTSxFQUFFO0FBQVYsR0FBaEI7O0FBRUEsTUFBTUMsSUFBSSxHQUFHQyw4QkFBU0MsTUFBVCxlQUFnQixnQ0FBQyx3QkFBRDtBQUFTLElBQUEsT0FBTyxFQUFFLEVBQWxCO0FBQXNCLElBQUEsT0FBTyxFQUFFSixPQUEvQjtBQUF3QyxJQUFBLFFBQVEsRUFBRUssSUFBSSxDQUFDQyxFQUFMO0FBQWxELElBQWhCLEVBQWlGQyxNQUFqRixFQUFiOztBQUNBQyxFQUFBQSxNQUFNLENBQUNOLElBQUQsQ0FBTixDQUFhTyxlQUFiO0FBQ0QsQ0FMQyxDQUFGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBUb29sYmFyIGZyb20gJy4uL2ltYWdlLXRvb2xiYXInO1xuaW1wb3J0IHJlbmRlcmVyIGZyb20gJ3JlYWN0LXRlc3QtcmVuZGVyZXInO1xuaW1wb3J0IHsgRGF0YSwgQmxvY2ssIFZhbHVlIH0gZnJvbSAnc2xhdGUnO1xuXG5pdCgncmVuZGVycyBjb3JyZWN0bHknLCAoKSA9PiB7XG4gIGNvbnN0IGNsYXNzZXMgPSB7IGhvbGRlcjogJ2hvbGRlcicgfTtcblxuICBjb25zdCB0cmVlID0gcmVuZGVyZXIuY3JlYXRlKDxUb29sYmFyIHBlcmNlbnQ9ezUwfSBjbGFzc2VzPXtjbGFzc2VzfSBvbkNoYW5nZT17amVzdC5mbigpfSAvPikudG9KU09OKCk7XG4gIGV4cGVjdCh0cmVlKS50b01hdGNoU25hcHNob3QoKTtcbn0pO1xuIl19
@@ -1,98 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _typeof = require("@babel/runtime/helpers/typeof");
6
-
7
- var _mockChange = _interopRequireWildcard(require("./mock-change"));
8
-
9
- var _slate = require("slate");
10
-
11
- var _ = _interopRequireDefault(require("../"));
12
-
13
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
14
-
15
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
16
-
17
- describe('image plugin', function () {
18
- var value = {};
19
- var imageSupport = {
20
- "delete": jest.fn(),
21
- add: jest.fn()
22
- };
23
- var imagePlugin = (0, _["default"])({
24
- onDelete: function onDelete(src, done) {
25
- imageSupport["delete"](src, function (e) {
26
- done(e, value);
27
- });
28
- },
29
- insertImageRequested: function insertImageRequested(node, getHandler) {
30
- var handler = getHandler(function () {
31
- return value;
32
- });
33
- imageSupport.add(handler);
34
- }
35
- });
36
- describe('normalizeNode', function () {
37
- it('should exit the function if the node is not of type document', function () {
38
- var returnValue = imagePlugin.normalizeNode({
39
- object: 'image'
40
- });
41
- expect(returnValue).toEqual(undefined);
42
- });
43
- it('should exit if the function if there are no changes needed', function () {
44
- var nodes = [{
45
- object: 'text',
46
- text: 'Before Image'
47
- }, {
48
- type: 'image'
49
- }, {
50
- object: 'text',
51
- text: 'After Image'
52
- }];
53
- var returnValue = imagePlugin.normalizeNode({
54
- object: 'document',
55
- findDescendant: jest.fn(function (callback) {
56
- nodes.forEach(function (n) {
57
- return callback(n);
58
- });
59
- })
60
- });
61
- expect(returnValue).toEqual(undefined);
62
- });
63
- it('should return a function if there is a node with an empty text before an image', function () {
64
- var nodes = [{
65
- object: 'text',
66
- text: '',
67
- key: '1'
68
- }, {
69
- type: 'image',
70
- key: '2'
71
- }, {
72
- object: 'text',
73
- text: 'After Image',
74
- key: '3'
75
- }];
76
- var findDescendant = jest.fn(function (callback) {
77
- nodes.forEach(function (n) {
78
- return callback(n);
79
- });
80
- });
81
- var change = {
82
- withoutNormalization: jest.fn(function (callback) {
83
- callback();
84
- }),
85
- insertTextByKey: jest.fn()
86
- };
87
- var returnValue = imagePlugin.normalizeNode({
88
- object: 'document',
89
- findDescendant: findDescendant
90
- });
91
- expect(returnValue).toEqual(expect.any(Function));
92
- returnValue(change);
93
- expect(change.withoutNormalization).toHaveBeenCalledWith(expect.any(Function));
94
- expect(change.insertTextByKey).toHaveBeenCalledWith('1', 0, ' ');
95
- });
96
- });
97
- });
98
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wbHVnaW5zL2ltYWdlL19fdGVzdHNfXy9pbmRleC50ZXN0LmpzIl0sIm5hbWVzIjpbImRlc2NyaWJlIiwidmFsdWUiLCJpbWFnZVN1cHBvcnQiLCJqZXN0IiwiZm4iLCJhZGQiLCJpbWFnZVBsdWdpbiIsIm9uRGVsZXRlIiwic3JjIiwiZG9uZSIsImUiLCJpbnNlcnRJbWFnZVJlcXVlc3RlZCIsIm5vZGUiLCJnZXRIYW5kbGVyIiwiaGFuZGxlciIsIml0IiwicmV0dXJuVmFsdWUiLCJub3JtYWxpemVOb2RlIiwib2JqZWN0IiwiZXhwZWN0IiwidG9FcXVhbCIsInVuZGVmaW5lZCIsIm5vZGVzIiwidGV4dCIsInR5cGUiLCJmaW5kRGVzY2VuZGFudCIsImNhbGxiYWNrIiwiZm9yRWFjaCIsIm4iLCJrZXkiLCJjaGFuZ2UiLCJ3aXRob3V0Tm9ybWFsaXphdGlvbiIsImluc2VydFRleHRCeUtleSIsImFueSIsIkZ1bmN0aW9uIiwidG9IYXZlQmVlbkNhbGxlZFdpdGgiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOztBQUVBOztBQUNBOzs7Ozs7QUFFQUEsUUFBUSxDQUFDLGNBQUQsRUFBaUIsWUFBTTtBQUM3QixNQUFJQyxLQUFLLEdBQUcsRUFBWjtBQUVBLE1BQU1DLFlBQVksR0FBRztBQUNuQixjQUFRQyxJQUFJLENBQUNDLEVBQUwsRUFEVztBQUVuQkMsSUFBQUEsR0FBRyxFQUFFRixJQUFJLENBQUNDLEVBQUw7QUFGYyxHQUFyQjtBQUtBLE1BQU1FLFdBQVcsR0FBRyxrQkFBYTtBQUMvQkMsSUFBQUEsUUFBUSxFQUFFLGtCQUFDQyxHQUFELEVBQU1DLElBQU4sRUFBZTtBQUN2QlAsTUFBQUEsWUFBWSxVQUFaLENBQW9CTSxHQUFwQixFQUF5QixVQUFDRSxDQUFELEVBQU87QUFDOUJELFFBQUFBLElBQUksQ0FBQ0MsQ0FBRCxFQUFJVCxLQUFKLENBQUo7QUFDRCxPQUZEO0FBR0QsS0FMOEI7QUFNL0JVLElBQUFBLG9CQUFvQixF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QUE1QjtBQUVBbEIsTUFBQUEsV0FBVyxDQUFDYyxNQUFELENBQVg7QUFFQVgsTUFBQUEsTUFBTSxDQUFDVyxNQUFNLENBQUNDLG9CQUFSLENBQU4sQ0FBb0NJLG9CQUFwQyxDQUF5RGhCLE1BQU0sQ0FBQ2MsR0FBUCxDQUFXQyxRQUFYLENBQXpEO0FBQ0FmLE1BQUFBLE1BQU0sQ0FBQ1csTUFBTSxDQUFDRSxlQUFSLENBQU4sQ0FBK0JHLG9CQUEvQixDQUFvRCxHQUFwRCxFQUF5RCxDQUF6RCxFQUE0RCxHQUE1RDtBQUNELEtBckNDLENBQUY7QUFzQ0QsR0FwRU8sQ0FBUjtBQXFFRCxDQXpGTyxDQUFSIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IE1vY2tDaGFuZ2UsIHsgTW9ja0RvY3VtZW50IH0gZnJvbSAnLi9tb2NrLWNoYW5nZSc7XG5cbmltcG9ydCB7IERhdGEgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgSW1hZ2VUb29sYmFyIGZyb20gJy4uLyc7XG5cbmRlc2NyaWJlKCdpbWFnZSBwbHVnaW4nLCAoKSA9PiB7XG4gIGxldCB2YWx1ZSA9IHt9O1xuXG4gIGNvbnN0IGltYWdlU3VwcG9ydCA9IHtcbiAgICBkZWxldGU6IGplc3QuZm4oKSxcbiAgICBhZGQ6IGplc3QuZm4oKSxcbiAgfTtcblxuICBjb25zdCBpbWFnZVBsdWdpbiA9IEltYWdlVG9vbGJhcih7XG4gICAgb25EZWxldGU6IChzcmMsIGRvbmUpID0+IHtcbiAgICAgIGltYWdlU3VwcG9ydC5kZWxldGUoc3JjLCAoZSkgPT4ge1xuICAgICAgICBkb25lKGUsIHZhbHVlKTtcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgaW5zZXJ0SW1hZ2VSZXF1ZXN0ZWQ6IChub2RlLCBnZXRIYW5kbGVyKSA9PiB7XG4gICAgICBjb25zdCBoYW5kbGVyID0gZ2V0SGFuZGxlcigoKSA9PiB2YWx1ZSk7XG4gICAgICBpbWFnZVN1cHBvcnQuYWRkKGhhbmRsZXIpO1xuICAgIH0sXG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdub3JtYWxpemVOb2RlJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgZXhpdCB0aGUgZnVuY3Rpb24gaWYgdGhlIG5vZGUgaXMgbm90IG9mIHR5cGUgZG9jdW1lbnQnLCAoKSA9PiB7XG4gICAgICBjb25zdCByZXR1cm5WYWx1ZSA9IGltYWdlUGx1Z2luLm5vcm1hbGl6ZU5vZGUoeyBvYmplY3Q6ICdpbWFnZScgfSk7XG5cbiAgICAgIGV4cGVjdChyZXR1cm5WYWx1ZSkudG9FcXVhbCh1bmRlZmluZWQpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBleGl0IGlmIHRoZSBmdW5jdGlvbiBpZiB0aGVyZSBhcmUgbm8gY2hhbmdlcyBuZWVkZWQnLCAoKSA9PiB7XG4gICAgICBjb25zdCBub2RlcyA9IFtcbiAgICAgICAge1xuICAgICAgICAgIG9iamVjdDogJ3RleHQnLFxuICAgICAgICAgIHRleHQ6ICdCZWZvcmUgSW1hZ2UnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ2ltYWdlJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG9iamVjdDogJ3RleHQnLFxuICAgICAgICAgIHRleHQ6ICdBZnRlciBJbWFnZScsXG4gICAgICAgIH0sXG4gICAgICBdO1xuICAgICAgY29uc3QgcmV0dXJuVmFsdWUgPSBpbWFnZVBsdWdpbi5ub3JtYWxpemVOb2RlKHtcbiAgICAgICAgb2JqZWN0OiAnZG9jdW1lbnQnLFxuICAgICAgICBmaW5kRGVzY2VuZGFudDogamVzdC5mbigoY2FsbGJhY2spID0+IHtcbiAgICAgICAgICBub2Rlcy5mb3JFYWNoKChuKSA9PiBjYWxsYmFjayhuKSk7XG4gICAgICAgIH0pLFxuICAgICAgfSk7XG4gICAgICBleHBlY3QocmV0dXJuVmFsdWUpLnRvRXF1YWwodW5kZWZpbmVkKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmV0dXJuIGEgZnVuY3Rpb24gaWYgdGhlcmUgaXMgYSBub2RlIHdpdGggYW4gZW1wdHkgdGV4dCBiZWZvcmUgYW4gaW1hZ2UnLCAoKSA9PiB7XG4gICAgICBjb25zdCBub2RlcyA9IFtcbiAgICAgICAge1xuICAgICAgICAgIG9iamVjdDogJ3RleHQnLFxuICAgICAgICAgIHRleHQ6ICcnLFxuICAgICAgICAgIGtleTogJzEnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ2ltYWdlJyxcbiAgICAgICAgICBrZXk6ICcyJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG9iamVjdDogJ3RleHQnLFxuICAgICAgICAgIHRleHQ6ICdBZnRlciBJbWFnZScsXG4gICAgICAgICAga2V5OiAnMycsXG4gICAgICAgIH0sXG4gICAgICBdO1xuICAgICAgY29uc3QgZmluZERlc2NlbmRhbnQgPSBqZXN0LmZuKChjYWxsYmFjaykgPT4ge1xuICAgICAgICBub2Rlcy5mb3JFYWNoKChuKSA9PiBjYWxsYmFjayhuKSk7XG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGNoYW5nZSA9IHtcbiAgICAgICAgd2l0aG91dE5vcm1hbGl6YXRpb246IGplc3QuZm4oKGNhbGxiYWNrKSA9PiB7XG4gICAgICAgICAgY2FsbGJhY2soKTtcbiAgICAgICAgfSksXG4gICAgICAgIGluc2VydFRleHRCeUtleTogamVzdC5mbigpLFxuICAgICAgfTtcbiAgICAgIGNvbnN0IHJldHVyblZhbHVlID0gaW1hZ2VQbHVnaW4ubm9ybWFsaXplTm9kZSh7XG4gICAgICAgIG9iamVjdDogJ2RvY3VtZW50JyxcbiAgICAgICAgZmluZERlc2NlbmRhbnQsXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KHJldHVyblZhbHVlKS50b0VxdWFsKGV4cGVjdC5hbnkoRnVuY3Rpb24pKTtcblxuICAgICAgcmV0dXJuVmFsdWUoY2hhbmdlKTtcblxuICAgICAgZXhwZWN0KGNoYW5nZS53aXRob3V0Tm9ybWFsaXphdGlvbikudG9IYXZlQmVlbkNhbGxlZFdpdGgoZXhwZWN0LmFueShGdW5jdGlvbikpO1xuICAgICAgZXhwZWN0KGNoYW5nZS5pbnNlcnRUZXh0QnlLZXkpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKCcxJywgMCwgJyAnKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==