@pie-lib/text-select 1.14.0-beta.0 → 1.15.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 (40) hide show
  1. package/CHANGELOG.json +1 -632
  2. package/CHANGELOG.md +114 -30
  3. package/lib/index.js +1 -9
  4. package/lib/index.js.map +1 -0
  5. package/lib/legend.js +65 -38
  6. package/lib/legend.js.map +1 -0
  7. package/lib/shared/index.js +136 -0
  8. package/lib/text-select.js +1 -1
  9. package/lib/text-select.js.map +1 -0
  10. package/lib/token-select/index.js +1 -1
  11. package/lib/token-select/index.js.map +1 -0
  12. package/lib/token-select/token.js +113 -67
  13. package/lib/token-select/token.js.map +1 -0
  14. package/lib/tokenizer/builder.js +1 -1
  15. package/lib/tokenizer/builder.js.map +1 -0
  16. package/lib/tokenizer/controls.js +4 -4
  17. package/lib/tokenizer/controls.js.map +1 -0
  18. package/lib/tokenizer/index.js +1 -1
  19. package/lib/tokenizer/index.js.map +1 -0
  20. package/lib/tokenizer/selection-utils.js +1 -1
  21. package/lib/tokenizer/selection-utils.js.map +1 -0
  22. package/lib/tokenizer/token-text.js +1 -1
  23. package/lib/tokenizer/token-text.js.map +1 -0
  24. package/lib/utils.js +1 -1
  25. package/lib/utils.js.map +1 -0
  26. package/package.json +6 -6
  27. package/src/index.js +1 -2
  28. package/src/legend.js +55 -37
  29. package/src/token-select/__tests__/__snapshots__/token.test.jsx.snap +2 -6
  30. package/src/token-select/token.jsx +96 -61
  31. package/src/tokenizer/controls.jsx +7 -7
  32. package/lib/__tests__/text-select.test.js +0 -56
  33. package/lib/__tests__/utils.test.js +0 -23
  34. package/lib/token-select/__tests__/index.test.js +0 -268
  35. package/lib/token-select/__tests__/token.test.js +0 -35
  36. package/lib/tokenizer/__tests__/builder.test.js +0 -399
  37. package/lib/tokenizer/__tests__/controls.test.js +0 -34
  38. package/lib/tokenizer/__tests__/index.test.js +0 -210
  39. package/lib/tokenizer/__tests__/selection-utils.test.js +0 -27
  40. package/lib/tokenizer/__tests__/token-text.test.js +0 -154
@@ -1,399 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
6
-
7
- var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
8
-
9
- var _builder = require("../builder");
10
-
11
- var _templateObject;
12
-
13
- var token = function token(start, end, text) {
14
- return {
15
- start: start,
16
- end: end,
17
- text: text
18
- };
19
- };
20
-
21
- var selection = function selection(start, end) {
22
- return {
23
- start: start,
24
- end: end
25
- };
26
- };
27
-
28
- var o = function o(strings) {
29
- for (var _len = arguments.length, exp = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
30
- exp[_key - 1] = arguments[_key];
31
- }
32
-
33
- return strings.reduce(function (acc, v, index) {
34
- var e = exp[index];
35
- var s = (0, _typeof2["default"])(e) === 'object' ? JSON.stringify(e) : e;
36
- return "".concat(acc).concat(v).concat(s || '');
37
- }, '');
38
- };
39
-
40
- describe('builder', function () {
41
- describe('intersection', function () {
42
- var assert = function assert(selection, tokens, expected) {
43
- it(o(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["", ", ", " => ", ""])), selection, tokens, expected), function () {
44
- var received = (0, _builder.intersection)(selection, tokens);
45
- expect(received.results).toEqual(expected);
46
- });
47
- };
48
-
49
- assert(selection(2, 3), [token(0, 1)], []);
50
- assert(selection(1, 2), [token(0, 1)], []);
51
- assert(selection(0, 1), [token(0, 1)], [{
52
- token: token(0, 1),
53
- type: 'exact-fit'
54
- }]);
55
- assert(selection(0, 2), [token(0, 1)], [{
56
- token: token(0, 1),
57
- type: 'within-selection'
58
- }]);
59
- assert(selection(0, 2), [token(1, 2)], [{
60
- token: token(1, 2),
61
- type: 'within-selection'
62
- }]);
63
- assert(selection(0, 10), [token(1, 2), token(2, 3)], [{
64
- token: token(1, 2),
65
- type: 'within-selection'
66
- }, {
67
- token: token(2, 3),
68
- type: 'within-selection'
69
- }]);
70
- assert(selection(0, 10), [token(1, 2), token(2, 11)], [{
71
- token: token(1, 2),
72
- type: 'within-selection'
73
- }, {
74
- token: token(2, 11),
75
- type: 'overlap'
76
- }]);
77
- });
78
- describe('sort', function () {
79
- it('sorts', function () {
80
- var out = (0, _builder.sort)([token(1, 2), token(0, 1)]);
81
- expect(out).toEqual([token(0, 1), token(1, 2)]);
82
- });
83
- it('sorts', function () {
84
- var out = (0, _builder.sort)([token(0, 1), token(1, 2)]);
85
- expect(out).toEqual([token(0, 1), token(1, 2)]);
86
- });
87
- xit('sorts', function () {
88
- expect(function () {
89
- return (0, _builder.sort)([token(0, 2), token(1, 2)]);
90
- }).toThrow(Error);
91
- });
92
- });
93
- describe('normalize', function () {
94
- var assert = function assert(input, tokens, expected) {
95
- it("".concat(input, " + ").concat(JSON.stringify(tokens), " -> ").concat(JSON.stringify(expected)), function () {
96
- var out = (0, _builder.normalize)(input, tokens);
97
- expect(out).toEqual(expected);
98
- });
99
- };
100
-
101
- assert(null, [], [{
102
- text: '',
103
- start: 0,
104
- end: 0
105
- }]);
106
- assert('abcde', [{
107
- text: 'b',
108
- start: 1,
109
- end: 2
110
- }, {
111
- text: 'd',
112
- start: 3,
113
- end: 4
114
- }], [{
115
- text: 'a',
116
- start: 0,
117
- end: 1
118
- }, {
119
- text: 'b',
120
- start: 1,
121
- end: 2,
122
- predefined: true
123
- }, {
124
- text: 'c',
125
- start: 2,
126
- end: 3
127
- }, {
128
- text: 'd',
129
- start: 3,
130
- end: 4,
131
- predefined: true
132
- }, {
133
- text: 'e',
134
- start: 4,
135
- end: 5
136
- }]);
137
- assert('abc', [{
138
- text: 'c',
139
- start: 2,
140
- end: 3
141
- }], [{
142
- text: 'ab',
143
- start: 0,
144
- end: 2
145
- }, {
146
- text: 'c',
147
- start: 2,
148
- end: 3,
149
- predefined: true
150
- }]);
151
- assert('abc', [{
152
- text: 'c',
153
- start: 2,
154
- end: 3
155
- }, {
156
- text: 'b',
157
- start: 1,
158
- end: 2
159
- }], [{
160
- text: 'a',
161
- start: 0,
162
- end: 1
163
- }, {
164
- text: 'b',
165
- start: 1,
166
- end: 2,
167
- predefined: true
168
- }, {
169
- text: 'c',
170
- start: 2,
171
- end: 3,
172
- predefined: true
173
- }]);
174
- assert('abc', [{
175
- text: 'a',
176
- start: 0,
177
- end: 1
178
- }], [{
179
- text: 'a',
180
- start: 0,
181
- end: 1,
182
- predefined: true
183
- }, {
184
- text: 'bc',
185
- start: 1,
186
- end: 3
187
- }]);
188
- assert('abcd', [{
189
- text: 'b',
190
- start: 1,
191
- end: 2
192
- }, {
193
- text: 'c',
194
- start: 2,
195
- end: 3
196
- }, {
197
- text: 'd',
198
- start: 3,
199
- end: 4
200
- }], [{
201
- text: 'a',
202
- start: 0,
203
- end: 1
204
- }, {
205
- text: 'b',
206
- start: 1,
207
- end: 2,
208
- predefined: true
209
- }, {
210
- text: 'c',
211
- start: 2,
212
- end: 3,
213
- predefined: true
214
- }, {
215
- text: 'd',
216
- start: 3,
217
- end: 4,
218
- predefined: true
219
- }]);
220
- assert('abcde', [{
221
- text: 'b',
222
- start: 1,
223
- end: 2
224
- }, {
225
- text: 'c',
226
- start: 2,
227
- end: 3
228
- }, {
229
- text: 'd',
230
- start: 3,
231
- end: 4
232
- }], [{
233
- text: 'a',
234
- start: 0,
235
- end: 1
236
- }, {
237
- text: 'b',
238
- start: 1,
239
- end: 2,
240
- predefined: true
241
- }, {
242
- text: 'c',
243
- start: 2,
244
- end: 3,
245
- predefined: true
246
- }, {
247
- text: 'd',
248
- start: 3,
249
- end: 4,
250
- predefined: true
251
- }, {
252
- text: 'e',
253
- start: 4,
254
- end: 5
255
- }]); // same token defined multiple times
256
-
257
- assert('abcde', [{
258
- text: 'c',
259
- start: 2,
260
- end: 3
261
- }, {
262
- text: 'b',
263
- start: 1,
264
- end: 2
265
- }, {
266
- text: 'c',
267
- start: 2,
268
- end: 3
269
- }, {
270
- text: 'd',
271
- start: 3,
272
- end: 4
273
- }, {
274
- text: 'c',
275
- start: 2,
276
- end: 3
277
- }], [{
278
- text: 'a',
279
- start: 0,
280
- end: 1
281
- }, {
282
- text: 'b',
283
- start: 1,
284
- end: 2,
285
- predefined: true
286
- }, {
287
- text: 'c',
288
- start: 2,
289
- end: 3,
290
- predefined: true
291
- }, {
292
- text: 'd',
293
- start: 3,
294
- end: 4,
295
- predefined: true
296
- }, {
297
- text: 'e',
298
- start: 4,
299
- end: 5
300
- }]);
301
- });
302
- describe('words', function () {
303
- it('works', function () {
304
- var out = (0, _builder.words)('foo. bar');
305
- expect(out).toEqual([{
306
- text: 'foo.',
307
- start: 0,
308
- end: 4
309
- }, {
310
- text: 'bar',
311
- start: 5,
312
- end: 8
313
- }]);
314
- });
315
- });
316
- describe('sentences', function () {
317
- it('foobar', function () {
318
- var text = 'This is foo. This is bar.';
319
- var out = (0, _builder.sentences)(text);
320
- expect(out[0]).toEqual({
321
- text: 'This is foo.',
322
- start: 0,
323
- end: 12
324
- });
325
- expect(out[1]).toEqual({
326
- text: 'This is bar.',
327
- start: 13,
328
- end: 25
329
- });
330
- });
331
- it('works', function () {
332
- var text = 'On Jan. 20, former Sen. Barack Obama became the 44th President of the USA. Millions attended the Inauguration.';
333
- var out = (0, _builder.sentences)(text);
334
- expect(out.length).toEqual(2);
335
- });
336
- it('works for sentences separated by \n', function () {
337
- var text = 'This is foo\nThis is bar';
338
- var out = (0, _builder.sentences)(text);
339
- expect(out[0]).toEqual({
340
- text: 'This is foo',
341
- start: 0,
342
- end: 11
343
- });
344
- expect(out[1]).toEqual({
345
- text: 'This is bar',
346
- start: 12,
347
- end: 23
348
- });
349
- });
350
- it('works for sentences ending in one-character-words', function () {
351
- var text = "This is Sentence 1. This is Sentence 2. This is Sentence 3. This is Sentence 4. Dr. A. said he'll call in 5.";
352
- var out = (0, _builder.sentences)(text);
353
- expect(out.length).toEqual(5);
354
- expect(out).toEqual([{
355
- text: 'This is Sentence 1.',
356
- start: 0,
357
- end: 19
358
- }, {
359
- text: 'This is Sentence 2.',
360
- start: 20,
361
- end: 39
362
- }, {
363
- text: 'This is Sentence 3.',
364
- start: 40,
365
- end: 59
366
- }, {
367
- text: 'This is Sentence 4.',
368
- start: 60,
369
- end: 79
370
- }, {
371
- text: "Dr. A. said he'll call in 5.",
372
- start: 80,
373
- end: 108
374
- }]);
375
- });
376
- });
377
- describe('paragraphs', function () {
378
- it('foobar', function () {
379
- var text = 'This is foo. This is bar.\nThis is foobar. This is barfoo.';
380
- var out = (0, _builder.paragraphs)(text);
381
- expect(out[0]).toEqual({
382
- text: 'This is foo. This is bar.',
383
- start: 0,
384
- end: 25
385
- });
386
- expect(out[1]).toEqual({
387
- text: 'This is foobar. This is barfoo.',
388
- start: 26,
389
- end: 57
390
- });
391
- });
392
- it('works', function () {
393
- var text = 'On Jan. 20, former Sen. Barack Obama became the 44th President of the USA. Millions attended the Inauguration.' + '\\ndadadadadadadadada.';
394
- var out = (0, _builder.paragraphs)(text);
395
- expect(out.length).toEqual(1);
396
- });
397
- });
398
- });
399
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90b2tlbml6ZXIvX190ZXN0c19fL2J1aWxkZXIudGVzdC5qcyJdLCJuYW1lcyI6WyJ0b2tlbiIsInN0YXJ0IiwiZW5kIiwidGV4dCIsInNlbGVjdGlvbiIsIm8iLCJzdHJpbmdzIiwiZXhwIiwicmVkdWNlIiwiYWNjIiwidiIsImluZGV4IiwiZSIsInMiLCJKU09OIiwic3RyaW5naWZ5IiwiZGVzY3JpYmUiLCJhc3NlcnQiLCJ0b2tlbnMiLCJleHBlY3RlZCIsIml0IiwicmVjZWl2ZWQiLCJleHBlY3QiLCJyZXN1bHRzIiwidG9FcXVhbCIsInR5cGUiLCJvdXQiLCJ4aXQiLCJ0b1Rocm93IiwiRXJyb3IiLCJpbnB1dCIsInByZWRlZmluZWQiLCJsZW5ndGgiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7Ozs7QUFFQSxJQUFNQSxLQUFLLEdBQUcsU0FBUkEsS0FBUSxDQUFDQyxLQUFELEVBQVFDLEdBQVIsRUFBYUMsSUFBYjtBQUFBLFNBQXVCO0FBQUVGLElBQUFBLEtBQUssRUFBTEEsS0FBRjtBQUFTQyxJQUFBQSxHQUFHLEVBQUhBLEdBQVQ7QUFBY0MsSUFBQUEsSUFBSSxFQUFKQTtBQUFkLEdBQXZCO0FBQUEsQ0FBZDs7QUFFQSxJQUFNQyxTQUFTLEdBQUcsU0FBWkEsU0FBWSxDQUFDSCxLQUFELEVBQVFDLEdBQVI7QUFBQSxTQUFpQjtBQUFFRCxJQUFBQSxLQUFLLEVBQUxBLEtBQUY7QUFBU0MsSUFBQUEsR0FBRyxFQUFIQTtBQUFULEdBQWpCO0FBQUEsQ0FBbEI7O0FBRUEsSUFBTUcsQ0FBQyxHQUFHLFNBQUpBLENBQUksQ0FBQ0MsT0FBRCxFQUFxQjtBQUFBLG9DQUFSQyxHQUFRO0FBQVJBLElBQUFBLEdBQVE7QUFBQTs7QUFDN0IsU0FBT0QsT0FBTyxDQUFDRSxNQUFSLENBQWUsVUFBQ0MsR0FBRCxFQUFNQyxDQUFOLEVBQVNDLEtBQVQsRUFBbUI7QUFDdkMsUUFBTUMsQ0FBQyxHQUFHTCxHQUFHLENBQUNJLEtBQUQsQ0FB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TUFBQUEsTUFBTSxDQUFDSSxHQUFHLENBQUMsQ0FBRCxDQUFKLENBQU4sQ0FBZUYsT0FBZixDQUF1QjtBQUNyQnJCLFFBQUFBLElBQUksRUFBRSwyQkFEZTtBQUVyQkYsUUFBQUEsS0FBSyxFQUFFLENBRmM7QUFHckJDLFFBQUFBLEdBQUcsRUFBRTtBQUhnQixPQUF2QjtBQUtBb0IsTUFBQUEsTUFBTSxDQUFDSSxHQUFHLENBQUMsQ0FBRCxDQUFKLENBQU4sQ0FBZUYsT0FBZixDQUF1QjtBQUNyQnJCLFFBQUFBLElBQUksRUFBRSxpQ0FEZTtBQUVyQkYsUUFBQUEsS0FBSyxFQUFFLEVBRmM7QUFHckJDLFFBQUFBLEdBQUcsRUFBRTtBQUhnQixPQUF2QjtBQUtELEtBYkMsQ0FBRjtBQWNBa0IsSUFBQUEsRUFBRSxDQUFDLE9BQUQsRUFBVSxZQUFNO0FBQ2hCLFVBQU1qQixJQUFJLEdBQ1IsbUhBQ0Esd0JBRkY7QUFJQSxVQUFNdUIsR0FBRyxHQUFHLHlCQUFXdkIsSUFBWCxDQUFaO0FBQ0FtQixNQUFBQSxNQUFNLENBQUNJLEdBQUcsQ0FBQ00sTUFBTCxDQUFOLENBQW1CUixPQUFuQixDQUEyQixDQUEzQjtBQUNELEtBUEMsQ0FBRjtBQVFELEdBdkJPLENBQVI7QUF3QkQsQ0FqUE8sQ0FBUiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG5vcm1hbGl6ZSwgc2VudGVuY2VzLCB3b3JkcywgcGFyYWdyYXBocywgc29ydCwgaW50ZXJzZWN0aW9uIH0gZnJvbSAnLi4vYnVpbGRlcic7XG5cbmNvbnN0IHRva2VuID0gKHN0YXJ0LCBlbmQsIHRleHQpID0+ICh7IHN0YXJ0LCBlbmQsIHRleHQgfSk7XG5cbmNvbnN0IHNlbGVjdGlvbiA9IChzdGFydCwgZW5kKSA9PiAoeyBzdGFydCwgZW5kIH0pO1xuXG5jb25zdCBvID0gKHN0cmluZ3MsIC4uLmV4cCkgPT4ge1xuICByZXR1cm4gc3RyaW5ncy5yZWR1Y2UoKGFjYywgdiwgaW5kZXgpID0+IHtcbiAgICBjb25zdCBlID0gZXhwW2luZGV4XTtcbiAgICBjb25zdCBzID0gdHlwZW9mIGUgPT09ICdvYmplY3QnID8gSlNPTi5zdHJpbmdpZnkoZSkgOiBlO1xuICAgIHJldHVybiBgJHthY2N9JHt2fSR7cyB8fCAnJ31gO1xuICB9LCAnJyk7XG59O1xuXG5kZXNjcmliZSgnYnVpbGRlcicsICgpID0+IHtcbiAgZGVzY3JpYmUoJ2ludGVyc2VjdGlvbicsICgpID0+IHtcbiAgICBjb25zdCBhc3NlcnQgPSAoc2VsZWN0aW9uLCB0b2tlbnMsIGV4cGVjdGVkKSA9PiB7XG4gICAgICBpdChvYCR7c2VsZWN0aW9ufSwgJHt0b2tlbnN9ID0+ICR7ZXhwZWN0ZWR9YCwgKCkgPT4ge1xuICAgICAgICBjb25zdCByZWNlaXZlZCA9IGludGVyc2VjdGlvbihzZWxlY3Rpb24sIHRva2Vucyk7XG4gICAgICAgIGV4cGVjdChyZWNlaXZlZC5yZXN1bHRzKS50b0VxdWFsKGV4cGVjdGVkKTtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBhc3NlcnQoc2VsZWN0aW9uKDIsIDMpLCBbdG9rZW4oMCwgMSldLCBbXSk7XG4gICAgYXNzZXJ0KHNlbGVjdGlvbigxLCAyKSwgW3Rva2VuKDAsIDEpXSwgW10pO1xuICAgIGFzc2VydChzZWxlY3Rpb24oMCwgMSksIFt0b2tlbigwLCAxKV0sIFt7IHRva2VuOiB0b2tlbigwLCAxKSwgdHlwZTogJ2V4YWN0LWZpdCcgfV0pO1xuICAgIGFzc2VydChzZWxlY3Rpb24oMCwgMiksIFt0b2tlbigwLCAxKV0sIFt7IHRva2VuOiB0b2tlbigwLCAxKSwgdHlwZTogJ3dpdGhpbi1zZWxlY3Rpb24nIH1dKTtcbiAgICBhc3NlcnQoc2VsZWN0aW9uKDAsIDIpLCBbdG9rZW4oMSwgMildLCBbeyB0b2tlbjogdG9rZW4oMSwgMiksIHR5cGU6ICd3aXRoaW4tc2VsZWN0aW9uJyB9XSk7XG4gICAgYXNzZXJ0KFxuICAgICAgc2VsZWN0aW9uKDAsIDEwKSxcbiAgICAgIFt0b2tlbigxLCAyKSwgdG9rZW4oMiwgMyldLFxuICAgICAgW1xuICAgICAgICB7IHRva2VuOiB0b2tlbigxLCAyKSwgdHlwZTogJ3dpdGhpbi1zZWxlY3Rpb24nIH0sXG4gICAgICAgIHsgdG9rZW46IHRva2VuKDIsIDMpLCB0eXBlOiAnd2l0aGluLXNlbGVjdGlvbicgfSxcbiAgICAgIF0sXG4gICAgKTtcbiAgICBhc3NlcnQoXG4gICAgICBzZWxlY3Rpb24oMCwgMTApLFxuICAgICAgW3Rva2VuKDEsIDIpLCB0b2tlbigyLCAxMSldLFxuICAgICAgW1xuICAgICAgICB7IHRva2VuOiB0b2tlbigxLCAyKSwgdHlwZTogJ3dpdGhpbi1zZWxlY3Rpb24nIH0sXG4gICAgICAgIHsgdG9rZW46IHRva2VuKDIsIDExKSwgdHlwZTogJ292ZXJsYXAnIH0sXG4gICAgICBdLFxuICAgICk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdzb3J0JywgKCkgPT4ge1xuICAgIGl0KCdzb3J0cycsICgpID0+IHtcbiAgICAgIGNvbnN0IG91dCA9IHNvcnQoW3Rva2VuKDEsIDIpLCB0b2tlbigwLCAxKV0pO1xuICAgICAgZXhwZWN0KG91dCkudG9FcXVhbChbdG9rZW4oMCwgMSksIHRva2VuKDEsIDIpXSk7XG4gICAgfSk7XG4gICAgaXQoJ3NvcnRzJywgKCkgPT4ge1xuICAgICAgY29uc3Qgb3V0ID0gc29ydChbdG9rZW4oMCwgMSksIHRva2VuKDEsIDIpXSk7XG4gICAgICBleHBlY3Qob3V0KS50b0VxdWFsKFt0b2tlbigwLCAxKSwgdG9rZW4oMSwgMildKTtcbiAgICB9KTtcbiAgICB4aXQoJ3NvcnRzJywgKCkgPT4ge1xuICAgICAgZXhwZWN0KCgpID0+IHNvcnQoW3Rva2VuKDAsIDIpLCB0b2tlbigxLCAyKV0pKS50b1Rocm93KEVycm9yKTtcbiAgICB9KTtcbiAgfSk7XG4gIGRlc2NyaWJlKCdub3JtYWxpemUnLCAoKSA9PiB7XG4gICAgY29uc3QgYXNzZXJ0ID0gKGlucHV0LCB0b2tlbnMsIGV4cGVjdGVkKSA9PiB7XG4gICAgICBpdChgJHtpbnB1dH0gKyAke0pTT04uc3RyaW5naWZ5KHRva2Vucyl9IC0+ICR7SlNPTi5zdHJpbmdpZnkoZXhwZWN0ZWQpfWAsICgpID0+IHtcbiAgICAgICAgY29uc3Qgb3V0ID0gbm9ybWFsaXplKGlucHV0LCB0b2tlbnMpO1xuICAgICAgICBleHBlY3Qob3V0KS50b0VxdWFsKGV4cGVjdGVkKTtcbiAgICAgIH0pO1xuICAgIH07XG4gICAgYXNzZXJ0KFxuICAgICAgbnVsbCxcbiAgICAgIFtdLFxuICAgICAgW1xuICAgICAgICB7XG4gICAgICAgICAgdGV4dDogJycsXG4gICAgICAgICAgc3RhcnQ6IDAsXG4gICAgICAgICAgZW5kOiAwLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICApO1xuICAgIGFzc2VydChcbiAgICAgICdhYmNkZScsXG4gICAgICBbXG4gICAgICAgIHsgdGV4dDogJ2InLCBzdGFydDogMSwgZW5kOiAyIH0sXG4gICAgICAgIHsgdGV4dDogJ2QnLCBzdGFydDogMywgZW5kOiA0IH0sXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICB7IHRleHQ6ICdhJywgc3RhcnQ6IDAsIGVuZDogMSB9LFxuICAgICAgICB7IHRleHQ6ICdiJywgc3RhcnQ6IDEsIGVuZDogMiwgcHJlZGVmaW5lZDogdHJ1ZSB9LFxuICAgICAgICB7IHRleHQ6ICdjJywgc3RhcnQ6IDIsIGVuZDogMyB9LFxuICAgICAgICB7IHRleHQ6ICdkJywgc3RhcnQ6IDMsIGVuZDogNCwgcHJlZGVmaW5lZDogdHJ1ZSB9LFxuICAgICAgICB7IHRleHQ6ICdlJywgc3RhcnQ6IDQsIGVuZDogNSB9LFxuICAgICAgXSxcbiAgICApO1xuICAgIGFzc2VydChcbiAgICAgICdhYmMnLFxuICAgICAgW3sgdGV4dDogJ2MnLCBzdGFydDogMiwgZW5kOiAzIH1dLFxuICAgICAgW1xuICAgICAgICB7IHRleHQ6ICdhYicsIHN0YXJ0OiAwLCBlbmQ6IDIgfSxcbiAgICAgICAgeyB0ZXh0OiAnYycsIHN0YXJ0OiAyLCBlbmQ6IDMsIHByZWRlZmluZWQ6IHRydWUgfSxcbiAgICAgIF0sXG4gICAgKTtcblxuICAgIGFzc2VydChcbiAgICAgICdhYmMnLFxuICAgICAgW1xuICAgICAgICB7IHRleHQ6ICdjJywgc3RhcnQ6IDIsIGVuZDogMyB9LFxuICAgICAgICB7IHRleHQ6ICdiJywgc3RhcnQ6IDEsIGVuZDogMiB9LFxuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgeyB0ZXh0OiAnYScsIHN0YXJ0OiAwLCBlbmQ6IDEgfSxcbiAgICAgICAgeyB0ZXh0OiAnYicsIHN0YXJ0OiAxLCBlbmQ6IDIsIHByZWRlZmluZWQ6IHRydWUgfSxcbiAgICAgICAgeyB0ZXh0OiAnYycsIHN0YXJ0OiAyLCBlbmQ6IDMsIHByZWRlZmluZWQ6IHRydWUgfSxcbiAgICAgIF0sXG4gICAgKTtcblxuICAgIGFzc2VydChcbiAgICAgICdhYmMnLFxuICAgICAgW3sgdGV4dDogJ2EnLCBzdGFydDogMCwgZW5kOiAxIH1dLFxuICAgICAgW1xuICAgICAgICB7IHRleHQ6ICdhJywgc3RhcnQ6IDAsIGVuZDogMSwgcHJlZGVmaW5lZDogdHJ1ZSB9LFxuICAgICAgICB7IHRleHQ6ICdiYycsIHN0YXJ0OiAxLCBlbmQ6IDMgfSxcbiAgICAgIF0sXG4gICAgKTtcblxuICAgIGFzc2VydChcbiAgICAgICdhYmNkJyxcbiAgICAgIFtcbiAgICAgICAgeyB0ZXh0OiAnYicsIHN0YXJ0OiAxLCBlbmQ6IDIgfSxcbiAgICAgICAgeyB0ZXh0OiAnYycsIHN0YXJ0OiAyLCBlbmQ6IDMgfSxcbiAgICAgICAgeyB0ZXh0OiAnZCcsIHN0YXJ0OiAzLCBlbmQ6IDQgfSxcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgIHsgdGV4dDogJ2EnLCBzdGFydDogMCwgZW5kOiAxIH0sXG4gICAgICAgIHsgdGV4dDogJ2InLCBzdGFydDogMSwgZW5kOiAyLCBwcmVkZWZpbmVkOiB0cnVlIH0sXG4gICAgICAgIHsgdGV4dDogJ2MnLCBzdGFydDogMiwgZW5kOiAzLCBwcmVkZWZpbmVkOiB0cnVlIH0sXG4gICAgICAgIHsgdGV4dDogJ2QnLCBzdGFydDogMywgZW5kOiA0LCBwcmVkZWZpbmVkOiB0cnVlIH0sXG4gICAgICBdLFxuICAgICk7XG4gICAgYXNzZXJ0KFxuICAgICAgJ2FiY2RlJyxcbiAgICAgIFtcbiAgICAgICAgeyB0ZXh0OiAnYicsIHN0YXJ0OiAxLCBlbmQ6IDIgfSxcbiAgICAgICAgeyB0ZXh0OiAnYycsIHN0YXJ0OiAyLCBlbmQ6IDMgfSxcbiAgICAgICAgeyB0ZXh0OiAnZCcsIHN0YXJ0OiAzLCBlbmQ6IDQgfSxcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgIHsgdGV4dDogJ2EnLCBzdGFydDogMCwgZW5kOiAxIH0sXG4gICAgICAgIHsgdGV4dDogJ2InLCBzdGFydDogMSwgZW5kOiAyLCBwcmVkZWZpbmVkOiB0cnVlIH0sXG4gICAgICAgIHsgdGV4dDogJ2MnLCBzdGFydDogMiwgZW5kOiAzLCBwcmVkZWZpbmVkOiB0cnVlIH0sXG4gICAgICAgIHsgdGV4dDogJ2QnLCBzdGFydDogMywgZW5kOiA0LCBwcmVkZWZpbmVkOiB0cnVlIH0sXG4gICAgICAgIHsgdGV4dDogJ2UnLCBzdGFydDogNCwgZW5kOiA1IH0sXG4gICAgICBdLFxuICAgICk7XG5cbiAgICAvLyBzYW1lIHRva2VuIGRlZmluZWQgbXVsdGlwbGUgdGltZXNcbiAgICBhc3NlcnQoXG4gICAgICAnYWJjZGUnLFxuICAgICAgW1xuICAgICAgICB7IHRleHQ6ICdjJywgc3RhcnQ6IDIsIGVuZDogMyB9LFxuICAgICAgICB7IHRleHQ6ICdiJywgc3RhcnQ6IDEsIGVuZDogMiB9LFxuICAgICAgICB7IHRleHQ6ICdjJywgc3RhcnQ6IDIsIGVuZDogMyB9LFxuICAgICAgICB7IHRleHQ6ICdkJywgc3RhcnQ6IDMsIGVuZDogNCB9LFxuICAgICAgICB7IHRleHQ6ICdjJywgc3RhcnQ6IDIsIGVuZDogMyB9LFxuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgeyB0ZXh0OiAnYScsIHN0YXJ0OiAwLCBlbmQ6IDEgfSxcbiAgICAgICAgeyB0ZXh0OiAnYicsIHN0YXJ0OiAxLCBlbmQ6IDIsIHByZWRlZmluZWQ6IHRydWUgfSxcbiAgICAgICAgeyB0ZXh0OiAnYycsIHN0YXJ0OiAyLCBlbmQ6IDMsIHByZWRlZmluZWQ6IHRydWUgfSxcbiAgICAgICAgeyB0ZXh0OiAnZCcsIHN0YXJ0OiAzLCBlbmQ6IDQsIHByZWRlZmluZWQ6IHRydWUgfSxcbiAgICAgICAgeyB0ZXh0OiAnZScsIHN0YXJ0OiA0LCBlbmQ6IDUgfSxcbiAgICAgIF0sXG4gICAgKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3dvcmRzJywgKCkgPT4ge1xuICAgIGl0KCd3b3JrcycsICgpID0+IHtcbiAgICAgIGNvbnN0IG91dCA9IHdvcmRzKCdmb28uIGJhcicpO1xuICAgICAgZXhwZWN0KG91dCkudG9FcXVhbChbXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXh0OiAnZm9vLicsXG4gICAgICAgICAgc3RhcnQ6IDAsXG4gICAgICAgICAgZW5kOiA0LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdGV4dDogJ2JhcicsXG4gICAgICAgICAgc3RhcnQ6IDUsXG4gICAgICAgICAgZW5kOiA4LFxuICAgICAgICB9LFxuICAgICAgXSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdzZW50ZW5jZXMnLCAoKSA9PiB7XG4gICAgaXQoJ2Zvb2JhcicsICgpID0+IHtcbiAgICAgIGNvbnN0IHRleHQgPSAnVGhpcyBpcyBmb28uIFRoaXMgaXMgYmFyLic7XG4gICAgICBjb25zdCBvdXQgPSBzZW50ZW5jZXModGV4dCk7XG4gICAgICBleHBlY3Qob3V0WzBdKS50b0VxdWFsKHsgdGV4dDogJ1RoaXMgaXMgZm9vLicsIHN0YXJ0OiAwLCBlbmQ6IDEyIH0pO1xuICAgICAgZXhwZWN0KG91dFsxXSkudG9FcXVhbCh7IHRleHQ6ICdUaGlzIGlzIGJhci4nLCBzdGFydDogMTMsIGVuZDogMjUgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgnd29ya3MnLCAoKSA9PiB7XG4gICAgICBjb25zdCB0ZXh0ID1cbiAgICAgICAgJ09uIEphbi4gMjAsIGZvcm1lciBTZW4uIEJhcmFjayBPYmFtYSBiZWNhbWUgdGhlIDQ0dGggUHJlc2lkZW50IG9mIHRoZSBVU0EuIE1pbGxpb25zIGF0dGVuZGVkIHRoZSBJbmF1Z3VyYXRpb24uJztcblxuICAgICAgY29uc3Qgb3V0ID0gc2VudGVuY2VzKHRleHQpO1xuICAgICAgZXhwZWN0KG91dC5sZW5ndGgpLnRvRXF1YWwoMik7XG4gICAgfSk7XG5cbiAgICBpdCgnd29ya3MgZm9yIHNlbnRlbmNlcyBzZXBhcmF0ZWQgYnkgXFxuJywgKCkgPT4ge1xuICAgICAgY29uc3QgdGV4dCA9ICdUaGlzIGlzIGZvb1xcblRoaXMgaXMgYmFyJztcbiAgICAgIGNvbnN0IG91dCA9IHNlbnRlbmNlcyh0ZXh0KTtcbiAgICAgIGV4cGVjdChvdXRbMF0pLnRvRXF1YWwoeyB0ZXh0OiAnVGhpcyBpcyBmb28nLCBzdGFydDogMCwgZW5kOiAxMSB9KTtcbiAgICAgIGV4cGVjdChvdXRbMV0pLnRvRXF1YWwoeyB0ZXh0OiAnVGhpcyBpcyBiYXInLCBzdGFydDogMTIsIGVuZDogMjMgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgnd29ya3MgZm9yIHNlbnRlbmNlcyBlbmRpbmcgaW4gb25lLWNoYXJhY3Rlci13b3JkcycsICgpID0+IHtcbiAgICAgIGNvbnN0IHRleHQgPVxuICAgICAgICBcIlRoaXMgaXMgU2VudGVuY2UgMS4gVGhpcyBpcyBTZW50ZW5jZSAyLiBUaGlzIGlzIFNlbnRlbmNlIDMuIFRoaXMgaXMgU2VudGVuY2UgNC4gRHIuIEEuIHNhaWQgaGUnbGwgY2FsbCBpbiA1LlwiO1xuXG4gICAgICBjb25zdCBvdXQgPSBzZW50ZW5jZXModGV4dCk7XG5cbiAgICAgIGV4cGVjdChvdXQubGVuZ3RoKS50b0VxdWFsKDUpO1xuXG4gICAgICBleHBlY3Qob3V0KS50b0VxdWFsKFtcbiAgICAgICAgeyB0ZXh0OiAnVGhpcyBpcyBTZW50ZW5jZSAxLicsIHN0YXJ0OiAwLCBlbmQ6IDE5IH0sXG4gICAgICAgIHsgdGV4dDogJ1RoaXMgaXMgU2VudGVuY2UgMi4nLCBzdGFydDogMjAsIGVuZDogMzkgfSxcbiAgICAgICAgeyB0ZXh0OiAnVGhpcyBpcyBTZW50ZW5jZSAzLicsIHN0YXJ0OiA0MCwgZW5kOiA1OSB9LFxuICAgICAgICB7IHRleHQ6ICdUaGlzIGlzIFNlbnRlbmNlIDQuJywgc3RhcnQ6IDYwLCBlbmQ6IDc5IH0sXG4gICAgICAgIHsgdGV4dDogXCJEci4gQS4gc2FpZCBoZSdsbCBjYWxsIGluIDUuXCIsIHN0YXJ0OiA4MCwgZW5kOiAxMDggfSxcbiAgICAgIF0pO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgncGFyYWdyYXBocycsICgpID0+IHtcbiAgICBpdCgnZm9vYmFyJywgKCkgPT4ge1xuICAgICAgY29uc3QgdGV4dCA9ICdUaGlzIGlzIGZvby4gVGhpcyBpcyBiYXIuXFxuVGhpcyBpcyBmb29iYXIuIFRoaXMgaXMgYmFyZm9vLic7XG4gICAgICBjb25zdCBvdXQgPSBwYXJhZ3JhcGhzKHRleHQpO1xuICAgICAgZXhwZWN0KG91dFswXSkudG9FcXVhbCh7XG4gICAgICAgIHRleHQ6ICdUaGlzIGlzIGZvby4gVGhpcyBpcyBiYXIuJyxcbiAgICAgICAgc3RhcnQ6IDAsXG4gICAgICAgIGVuZDogMjUsXG4gICAgICB9KTtcbiAgICAgIGV4cGVjdChvdXRbMV0pLnRvRXF1YWwoe1xuICAgICAgICB0ZXh0OiAnVGhpcyBpcyBmb29iYXIuIFRoaXMgaXMgYmFyZm9vLicsXG4gICAgICAgIHN0YXJ0OiAyNixcbiAgICAgICAgZW5kOiA1NyxcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIGl0KCd3b3JrcycsICgpID0+IHtcbiAgICAgIGNvbnN0IHRleHQgPVxuICAgICAgICAnT24gSmFuLiAyMCwgZm9ybWVyIFNlbi4gQmFyYWNrIE9iYW1hIGJlY2FtZSB0aGUgNDR0aCBQcmVzaWRlbnQgb2YgdGhlIFVTQS4gTWlsbGlvbnMgYXR0ZW5kZWQgdGhlIEluYXVndXJhdGlvbi4nICtcbiAgICAgICAgJ1xcXFxuZGFkYWRhZGFkYWRhZGFkYWRhLic7XG5cbiAgICAgIGNvbnN0IG91dCA9IHBhcmFncmFwaHModGV4dCk7XG4gICAgICBleHBlY3Qob3V0Lmxlbmd0aCkudG9FcXVhbCgxKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
@@ -1,34 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _controls = require("../controls");
6
-
7
- var _react = _interopRequireDefault(require("react"));
8
-
9
- var _enzyme = require("enzyme");
10
-
11
- var _enzymeAdapterReact = _interopRequireDefault(require("enzyme-adapter-react-16"));
12
-
13
- (0, _enzyme.configure)({
14
- adapter: new _enzymeAdapterReact["default"]()
15
- });
16
- describe('controls', function () {
17
- describe('snapshot', function () {
18
- it('renders', function () {
19
- var w = (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_controls.Controls, {
20
- classes: {
21
- button: 'button'
22
- },
23
- onClear: jest.fn(),
24
- onWords: jest.fn(),
25
- onSentences: jest.fn(),
26
- onParagraphs: jest.fn(),
27
- setCorrectMode: false,
28
- onToggleCorrectMode: jest.fn()
29
- }));
30
- expect(w).toMatchSnapshot();
31
- });
32
- });
33
- });
34
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90b2tlbml6ZXIvX190ZXN0c19fL2NvbnRyb2xzLnRlc3QuanN4Il0sIm5hbWVzIjpbImFkYXB0ZXIiLCJBZGFwdGVyIiwiZGVzY3JpYmUiLCJpdCIsInciLCJidXR0b24iLCJqZXN0IiwiZm4iLCJleHBlY3QiLCJ0b01hdGNoU25hcHNob3QiXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQSx1QkFBVTtBQUFFQSxFQUFBQSxPQUFPLEVBQUUsSUFBSUMsOEJBQUo7QUFBWCxDQUFWO0FBRUFDLFFBQVEsQ0FBQyxVQUFELEVBQWEsWUFBTTtBQUN6QkEsRUFBQUEsUUFBUSxDQUFDLFVBQUQsRUFBYSxZQUFNO0FBQ3pCQyxJQUFBQSxFQUFFLENBQUMsU0FBRCxFQUFZLFlBQU07QUFDbEIsVUFBTUMsQ0FBQyxHQUFHLG1DQUNSLGdDQUFDLGtCQUFEO0FBQ0UsUUFBQSxPQUFPLEVBQUU7QUFBRUMsVUFBQUEsTUFBTSxFQUFFO0FBQVYsU0FEWDtBQUVFLFFBQUEsT0FBTyxFQUFFQyxJQUFJLENBQUNDLEVBQUwsRUFGWDtBQUdFLFFBQUEsT0FBTyxFQUFFRCxJQUFJLENBQUNDLEVBQUwsRUFIWDtBQUlFLFFBQUEsV0FBVyxFQUFFRCxJQUFJLENBQUNDLEVBQUwsRUFKZjtBQUtFLFFBQUEsWUFBWSxFQUFFRCxJQUFJLENBQUNDLEVBQUwsRUFMaEI7QUFNRSxRQUFBLGNBQWMsRUFBRSxLQU5sQjtBQU9FLFFBQUEsbUJBQW1CLEVBQUVELElBQUksQ0FBQ0MsRUFBTDtBQVB2QixRQURRLENBQVY7QUFXQUMsTUFBQUEsTUFBTSxDQUFDSixDQUFELENBQU4sQ0FBVUssZUFBVjtBQUNELEtBYkMsQ0FBRjtBQWNELEdBZk8sQ0FBUjtBQWdCRCxDQWpCTyxDQUFSIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29udHJvbHMgfSBmcm9tICcuLi9jb250cm9scyc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgc2hhbGxvdywgY29uZmlndXJlIH0gZnJvbSAnZW56eW1lJztcbmltcG9ydCBBZGFwdGVyIGZyb20gJ2VuenltZS1hZGFwdGVyLXJlYWN0LTE2JztcblxuY29uZmlndXJlKHsgYWRhcHRlcjogbmV3IEFkYXB0ZXIoKSB9KTtcblxuZGVzY3JpYmUoJ2NvbnRyb2xzJywgKCkgPT4ge1xuICBkZXNjcmliZSgnc25hcHNob3QnLCAoKSA9PiB7XG4gICAgaXQoJ3JlbmRlcnMnLCAoKSA9PiB7XG4gICAgICBjb25zdCB3ID0gc2hhbGxvdyhcbiAgICAgICAgPENvbnRyb2xzXG4gICAgICAgICAgY2xhc3Nlcz17eyBidXR0b246ICdidXR0b24nIH19XG4gICAgICAgICAgb25DbGVhcj17amVzdC5mbigpfVxuICAgICAgICAgIG9uV29yZHM9e2plc3QuZm4oKX1cbiAgICAgICAgICBvblNlbnRlbmNlcz17amVzdC5mbigpfVxuICAgICAgICAgIG9uUGFyYWdyYXBocz17amVzdC5mbigpfVxuICAgICAgICAgIHNldENvcnJlY3RNb2RlPXtmYWxzZX1cbiAgICAgICAgICBvblRvZ2dsZUNvcnJlY3RNb2RlPXtqZXN0LmZuKCl9XG4gICAgICAgIC8+LFxuICAgICAgKTtcbiAgICAgIGV4cGVjdCh3KS50b01hdGNoU25hcHNob3QoKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==