@pie-lib/text-select 2.1.0-next.0 → 2.1.0-next.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,266 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.words = exports.sort = exports.sentences = exports.paragraphs = exports.normalize = exports.intersection = exports.handleSentence = void 0;
8
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
9
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
- var _compact = _interopRequireDefault(require("lodash/compact"));
11
- var _parseEnglish = _interopRequireDefault(require("@pie-framework/parse-english"));
12
- var _clone = _interopRequireDefault(require("lodash/clone"));
13
- var _g = function g(str, node) {
14
- if (node.children) {
15
- return node.children.reduce(_g, str);
16
- } else if (node.value) {
17
- return str + node.value;
18
- } else {
19
- return str;
20
- }
21
- };
22
- var getParagraph = function getParagraph(p) {
23
- return _g('', p);
24
- };
25
- var getSentence = function getSentence(s) {
26
- return _g('', s);
27
- };
28
- var getWord = function getWord(w) {
29
- return _g('', w);
30
- };
31
- var paragraphs = exports.paragraphs = function paragraphs(text) {
32
- var tree = new _parseEnglish["default"]().parse(text);
33
- var out = tree.children.reduce(function (acc, child) {
34
- if (child.type === 'ParagraphNode') {
35
- var paragraph = {
36
- text: getParagraph(child),
37
- start: child.position.start.offset,
38
- end: child.position.end.offset
39
- };
40
- return acc.concat([paragraph]);
41
- } else {
42
- return acc;
43
- }
44
- }, []);
45
- return out;
46
- };
47
- var handleSentence = exports.handleSentence = function handleSentence(child, acc) {
48
- var sentenceChilds = [];
49
- // we parse the children of the sentence
50
- var newAcc = child.children.reduce(function (acc, child) {
51
- // if we find a whitespace node that's \n, we end the sentence
52
- if (child.type === 'WhiteSpaceNode' && child.value === '\n') {
53
- if (sentenceChilds.length) {
54
- var firstWord = sentenceChilds[0];
55
- // we create a sentence starting from the first word until the new line
56
- var sentence = {
57
- text: sentenceChilds.map(function (d) {
58
- return getSentence(d);
59
- }).join(''),
60
- start: firstWord.position.start.offset,
61
- end: child.position.start.offset
62
- };
63
-
64
- // we remove all the elements from the array
65
- sentenceChilds.splice(0, sentenceChilds.length);
66
- return acc.concat([sentence]);
67
- }
68
- } else {
69
- // otherwise we add it to the array that contains the child forming a sentence
70
- sentenceChilds.push(child);
71
- }
72
- return acc;
73
- }, acc);
74
-
75
- // we treat the case when no \n character is found at the end
76
- // so we create a sentence from the last words or white spaces found
77
- if (sentenceChilds.length) {
78
- var firstWord = sentenceChilds[0];
79
- var lastWord = sentenceChilds[sentenceChilds.length - 1];
80
- var sentence = {
81
- text: sentenceChilds.map(function (d) {
82
- return getSentence(d);
83
- }).join(''),
84
- start: firstWord.position.start.offset,
85
- end: lastWord.position.end.offset
86
- };
87
- newAcc = newAcc.concat([sentence]);
88
- sentenceChilds.splice(0, sentenceChilds.length);
89
- }
90
- return newAcc;
91
- };
92
- var sentences = exports.sentences = function sentences(text) {
93
- var tree = new _parseEnglish["default"]().parse(text);
94
- var out = tree.children.reduce(function (acc, child) {
95
- if (child.type === 'ParagraphNode') {
96
- return child.children.reduce(function (acc, child) {
97
- if (child.type === 'SentenceNode') {
98
- var newAcc = handleSentence(child, acc);
99
- return newAcc || acc;
100
- } else {
101
- return acc;
102
- }
103
- }, acc);
104
- } else {
105
- return acc;
106
- }
107
- }, []);
108
- return out;
109
- };
110
- var words = exports.words = function words(text) {
111
- var tree = new _parseEnglish["default"]().parse(text);
112
- var out = tree.children.reduce(function (acc, child) {
113
- if (child.type === 'ParagraphNode') {
114
- return child.children.reduce(function (acc, child) {
115
- if (child.type === 'SentenceNode') {
116
- return child.children.reduce(function (acc, child) {
117
- if (child.type === 'WordNode') {
118
- var node = {
119
- text: getWord(child),
120
- start: child.position.start.offset,
121
- end: child.position.end.offset
122
- };
123
- return acc.concat([node]);
124
- } else {
125
- return acc;
126
- }
127
- }, acc);
128
- } else {
129
- return acc;
130
- }
131
- }, acc);
132
- } else {
133
- return acc;
134
- }
135
- }, []);
136
- return out;
137
- };
138
- var Intersection = /*#__PURE__*/function () {
139
- function Intersection(results) {
140
- (0, _classCallCheck2["default"])(this, Intersection);
141
- this.results = results;
142
- }
143
- return (0, _createClass2["default"])(Intersection, [{
144
- key: "hasOverlap",
145
- get: function get() {
146
- return this.results.filter(function (r) {
147
- return r.type === 'overlap';
148
- }).length > 0;
149
- }
150
- }, {
151
- key: "surroundedTokens",
152
- get: function get() {
153
- return this.results.filter(function (r) {
154
- return r.type === 'within-selection';
155
- }).map(function (t) {
156
- return t.token;
157
- });
158
- }
159
- }]);
160
- }();
161
- /**
162
- * get intersection info for the selection in relation to tokens.
163
- * @param {{start: number, end: number}} selection
164
- * @param {{start: number, end: number}[]} tokens
165
- * @return {tokens: [], type: 'overlap|no-overlap|contains'}
166
- */
167
- var intersection = exports.intersection = function intersection(selection, tokens) {
168
- var start = selection.start,
169
- end = selection.end;
170
- var startsWithin = function startsWithin(t) {
171
- return start >= t.start && start < t.end;
172
- };
173
- var endsWithin = function endsWithin(t) {
174
- return end > t.start && end <= t.end;
175
- };
176
- var mapped = tokens.map(function (t) {
177
- if (start === t.start && end === t.end) {
178
- return {
179
- token: t,
180
- type: 'exact-fit'
181
- };
182
- } else if (start <= t.start && end >= t.end) {
183
- return {
184
- token: t,
185
- type: 'within-selection'
186
- };
187
- } else if (startsWithin(t) || endsWithin(t)) {
188
- return {
189
- token: t,
190
- type: 'overlap'
191
- };
192
- }
193
- });
194
- return new Intersection((0, _compact["default"])(mapped));
195
- };
196
- var sort = exports.sort = function sort(tokens) {
197
- if (!Array.isArray(tokens)) {
198
- return tokens;
199
- } else {
200
- var out = (0, _clone["default"])(tokens);
201
- out.sort(function (a, b) {
202
- var s = a.start < b.start ? -1 : a.start > b.start ? 1 : 0;
203
- var e = a.end < b.end ? -1 : a.end > b.end ? 1 : 0;
204
- if (s === -1 && e !== -1) {
205
- throw new Error("sort does not support intersecting tokens. a: ".concat(a.start, "-").concat(a.end, ", b: ").concat(b.start, "-").concat(b.end));
206
- }
207
- return s;
208
- });
209
- return out;
210
- }
211
- };
212
- var normalize = exports.normalize = function normalize(textToNormalize, tokens) {
213
- // making sure text provided is a string
214
- var text = textToNormalize || '';
215
- if (!Array.isArray(tokens) || tokens.length === 0) {
216
- return [{
217
- text: text,
218
- start: 0,
219
- end: text.length
220
- }];
221
- }
222
- var out = sort(tokens).reduce(function (acc, t, index, outer) {
223
- var tokens = [];
224
- var lastIndex = acc.lastIndex;
225
- if (t.start === lastIndex) {
226
- tokens = [{
227
- text: text.substring(lastIndex, t.end),
228
- start: lastIndex,
229
- end: t.end,
230
- predefined: true,
231
- correct: t.correct,
232
- isMissing: t.isMissing
233
- }];
234
- } else if (lastIndex < t.start) {
235
- tokens = [{
236
- text: text.substring(lastIndex, t.start),
237
- start: lastIndex,
238
- end: t.start
239
- }, {
240
- text: text.substring(t.start, t.end),
241
- start: t.start,
242
- end: t.end,
243
- predefined: true,
244
- correct: t.correct,
245
- isMissing: t.isMissing
246
- }];
247
- }
248
- if (index === outer.length - 1 && t.end < text.length) {
249
- var last = {
250
- text: text.substring(t.end),
251
- start: t.end,
252
- end: text.length
253
- };
254
- tokens.push(last);
255
- }
256
- return {
257
- lastIndex: tokens.length ? tokens[tokens.length - 1].end : lastIndex,
258
- result: acc.result.concat(tokens)
259
- };
260
- }, {
261
- result: [],
262
- lastIndex: 0
263
- });
264
- return out.result;
265
- };
266
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29tcGFjdCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3BhcnNlRW5nbGlzaCIsIl9jbG9uZSIsImciLCJzdHIiLCJub2RlIiwiY2hpbGRyZW4iLCJyZWR1Y2UiLCJ2YWx1ZSIsImdldFBhcmFncmFwaCIsInAiLCJnZXRTZW50ZW5jZSIsInMiLCJnZXRXb3JkIiwidyIsInBhcmFncmFwaHMiLCJleHBvcnRzIiwidGV4dCIsInRyZWUiLCJFbmdsaXNoIiwicGFyc2UiLCJvdXQiLCJhY2MiLCJjaGlsZCIsInR5cGUiLCJwYXJhZ3JhcGgiLCJzdGFydCIsInBvc2l0aW9uIiwib2Zmc2V0IiwiZW5kIiwiY29uY2F0IiwiaGFuZGxlU2VudGVuY2UiLCJzZW50ZW5jZUNoaWxkcyIsIm5ld0FjYyIsImxlbmd0aCIsImZpcnN0V29yZCIsInNlbnRlbmNlIiwibWFwIiwiZCIsImpvaW4iLCJzcGxpY2UiLCJwdXNoIiwibGFzdFdvcmQiLCJzZW50ZW5jZXMiLCJ3b3JkcyIsIkludGVyc2VjdGlvbiIsInJlc3VsdHMiLCJfY2xhc3NDYWxsQ2hlY2syIiwiX2NyZWF0ZUNsYXNzMiIsImtleSIsImdldCIsImZpbHRlciIsInIiLCJ0IiwidG9rZW4iLCJpbnRlcnNlY3Rpb24iLCJzZWxlY3Rpb24iLCJ0b2tlbnMiLCJzdGFydHNXaXRoaW4iLCJlbmRzV2l0aGluIiwibWFwcGVkIiwiY29tcGFjdCIsInNvcnQiLCJBcnJheSIsImlzQXJyYXkiLCJjbG9uZSIsImEiLCJiIiwiZSIsIkVycm9yIiwibm9ybWFsaXplIiwidGV4dFRvTm9ybWFsaXplIiwiaW5kZXgiLCJvdXRlciIsImxhc3RJbmRleCIsInN1YnN0cmluZyIsInByZWRlZmluZWQiLCJjb3JyZWN0IiwiaXNNaXNzaW5nIiwibGFzdCIsInJlc3VsdCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90b2tlbml6ZXIvYnVpbGRlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY29tcGFjdCBmcm9tICdsb2Rhc2gvY29tcGFjdCc7XG5pbXBvcnQgRW5nbGlzaCBmcm9tICdAcGllLWZyYW1ld29yay9wYXJzZS1lbmdsaXNoJztcbmltcG9ydCBjbG9uZSBmcm9tICdsb2Rhc2gvY2xvbmUnO1xuXG5jb25zdCBnID0gKHN0ciwgbm9kZSkgPT4ge1xuICBpZiAobm9kZS5jaGlsZHJlbikge1xuICAgIHJldHVybiBub2RlLmNoaWxkcmVuLnJlZHVjZShnLCBzdHIpO1xuICB9IGVsc2UgaWYgKG5vZGUudmFsdWUpIHtcbiAgICByZXR1cm4gc3RyICsgbm9kZS52YWx1ZTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gc3RyO1xuICB9XG59O1xuXG5jb25zdCBnZXRQYXJhZ3JhcGggPSAocCkgPT4gZygnJywgcCk7XG5cbmNvbnN0IGdldFNlbnRlbmNlID0gKHMpID0+IGcoJycsIHMpO1xuXG5jb25zdCBnZXRXb3JkID0gKHcpID0+IGcoJycsIHcpO1xuXG5leHBvcnQgY29uc3QgcGFyYWdyYXBocyA9ICh0ZXh0KSA9PiB7XG4gIGNvbnN0IHRyZWUgPSBuZXcgRW5nbGlzaCgpLnBhcnNlKHRleHQpO1xuXG4gIGNvbnN0IG91dCA9IHRyZWUuY2hpbGRyZW4ucmVkdWNlKChhY2MsIGNoaWxkKSA9PiB7XG4gICAgaWYgKGNoaWxkLnR5cGUgPT09ICdQYXJhZ3JhcGhOb2RlJykge1xuICAgICAgY29uc3QgcGFyYWdyYXBoID0ge1xuICAgICAgICB0ZXh0OiBnZXRQYXJhZ3JhcGgoY2hpbGQpLFxuICAgICAgICBzdGFydDogY2hpbGQucG9zaXRpb24uc3RhcnQub2Zmc2V0LFxuICAgICAgICBlbmQ6IGNoaWxkLnBvc2l0aW9uLmVuZC5vZmZzZXQsXG4gICAgICB9O1xuXG4gICAgICByZXR1cm4gYWNjLmNvbmNhdChbcGFyYWdyYXBoXSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBhY2M7XG4gICAgfVxuICB9LCBbXSk7XG5cbiAgcmV0dXJuIG91dDtcbn07XG5cbmV4cG9ydCBjb25zdCBoYW5kbGVTZW50ZW5jZSA9IChjaGlsZCwgYWNjKSA9PiB7XG4gIGNvbnN0IHNlbnRlbmNlQ2hpbGRzID0gW107XG4gIC8vIHdlIHBhcnNlIHRoZSBjaGlsZHJlbiBvZiB0aGUgc2VudGVuY2VcbiAgbGV0IG5ld0FjYyA9IGNoaWxkLmNoaWxkcmVuLnJlZHVjZShmdW5jdGlvbihhY2MsIGNoaWxkKSB7XG4gICAgLy8gaWYgd2UgZmluZCBhIHdoaXRlc3BhY2Ugbm9kZSB0aGF0J3MgXFxuLCB3ZSBlbmQgdGhlIHNlbnRlbmNlXG4gICAgaWYgKGNoaWxkLnR5cGUgPT09ICdXaGl0ZVNwYWNlTm9kZScgJiYgY2hpbGQudmFsdWUgPT09ICdcXG4nKSB7XG4gICAgICBpZiAoc2VudGVuY2VDaGlsZHMubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IGZpcnN0V29yZCA9IHNlbnRlbmNlQ2hpbGRzWzBdO1xuICAgICAgICAvLyB3ZSBjcmVhdGUgYSBzZW50ZW5jZSBzdGFydGluZyBmcm9tIHRoZSBmaXJzdCB3b3JkIHVudGlsIHRoZSBuZXcgbGluZVxuICAgICAgICBjb25zdCBzZW50ZW5jZSA9IHtcbiAgICAgICAgICB0ZXh0OiBzZW50ZW5jZUNoaWxkcy5tYXAoKGQpID0+IGdldFNlbnRlbmNlKGQpKS5qb2luKCcnKSxcbiAgICAgICAgICBzdGFydDogZmlyc3RXb3JkLnBvc2l0aW9uLnN0YXJ0Lm9mZnNldCxcbiAgICAgICAgICBlbmQ6IGNoaWxkLnBvc2l0aW9uLnN0YXJ0Lm9mZnNldCxcbiAgICAgICAgfTtcblxuICAgICAgICAvLyB3ZSByZW1vdmUgYWxsIHRoZSBlbGVtZW50cyBmcm9tIHRoZSBhcnJheVxuICAgICAgICBzZW50ZW5jZUNoaWxkcy5zcGxpY2UoMCwgc2VudGVuY2VDaGlsZHMubGVuZ3RoKTtcbiAgICAgICAgcmV0dXJuIGFjYy5jb25jYXQoW3NlbnRlbmNlXSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIG90aGVyd2lzZSB3ZSBhZGQgaXQgdG8gdGhlIGFycmF5IHRoYXQgY29udGFpbnMgdGhlIGNoaWxkIGZvcm1pbmcgYSBzZW50ZW5jZVxuICAgICAgc2VudGVuY2VDaGlsZHMucHVzaChjaGlsZCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGFjYztcbiAgfSwgYWNjKTtcblxuICAvLyB3ZSB0cmVhdCB0aGUgY2FzZSB3aGVuIG5vIFxcbiBjaGFyYWN0ZXIgaXMgZm91bmQgYXQgdGhlIGVuZFxuICAvLyBzbyB3ZSBjcmVhdGUgYSBzZW50ZW5jZSBmcm9tIHRoZSBsYXN0IHdvcmRzIG9yIHdoaXRlIHNwYWNlcyBmb3VuZFxuICBpZiAoc2VudGVuY2VDaGlsZHMubGVuZ3RoKSB7XG4gICAgY29uc3QgZmlyc3RXb3JkID0gc2VudGVuY2VDaGlsZHNbMF07XG4gICAgY29uc3QgbGFzdFdvcmQgPSBzZW50ZW5jZUNoaWxkc1tzZW50ZW5jZUNoaWxkcy5sZW5ndGggLSAxXTtcbiAgICBjb25zdCBzZW50ZW5jZSA9IHtcbiAgICAgIHRleHQ6IHNlbnRlbmNlQ2hpbGRzLm1hcCgoZCkgPT4gZ2V0U2VudGVuY2UoZCkpLmpvaW4oJycpLFxuICAgICAgc3RhcnQ6IGZpcnN0V29yZC5wb3NpdGlvbi5zdGFydC5vZmZzZXQsXG4gICAgICBlbmQ6IGxhc3RXb3JkLnBvc2l0aW9uLmVuZC5vZmZzZXQsXG4gICAgfTtcblxuICAgIG5ld0FjYyA9IG5ld0FjYy5jb25jYXQoW3NlbnRlbmNlXSk7XG5cbiAgICBzZW50ZW5jZUNoaWxkcy5zcGxpY2UoMCwgc2VudGVuY2VDaGlsZHMubGVuZ3RoKTtcbiAgfVxuXG4gIHJldHVybiBuZXdBY2M7XG59O1xuXG5leHBvcnQgY29uc3Qgc2VudGVuY2VzID0gKHRleHQpID0+IHtcbiAgY29uc3QgdHJlZSA9IG5ldyBFbmdsaXNoKCkucGFyc2UodGV4dCk7XG5cbiAgY29uc3Qgb3V0ID0gdHJlZS5jaGlsZHJlbi5yZWR1Y2UoKGFjYywgY2hpbGQpID0+IHtcbiAgICBpZiAoY2hpbGQudHlwZSA9PT0gJ1BhcmFncmFwaE5vZGUnKSB7XG4gICAgICByZXR1cm4gY2hpbGQuY2hpbGRyZW4ucmVkdWNlKChhY2MsIGNoaWxkKSA9PiB7XG4gICAgICAgIGlmIChjaGlsZC50eXBlID09PSAnU2VudGVuY2VOb2RlJykge1xuICAgICAgICAgIGNvbnN0IG5ld0FjYyA9IGhhbmRsZVNlbnRlbmNlKGNoaWxkLCBhY2MpO1xuXG4gICAgICAgICAgcmV0dXJuIG5ld0FjYyB8fCBhY2M7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfVxuICAgICAgfSwgYWNjKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGFjYztcbiAgICB9XG4gIH0sIFtdKTtcblxuICByZXR1cm4gb3V0O1xufTtcbmV4cG9ydCBjb25zdCB3b3JkcyA9ICh0ZXh0KSA9PiB7XG4gIGNvbnN0IHRyZWUgPSBuZXcgRW5nbGlzaCgpLnBhcnNlKHRleHQpO1xuXG4gIGNvbnN0IG91dCA9IHRyZWUuY2hpbGRyZW4ucmVkdWNlKChhY2MsIGNoaWxkKSA9PiB7XG4gICAgaWYgKGNoaWxkLnR5cGUgPT09ICdQYXJhZ3JhcGhOb2RlJykge1xuICAgICAgcmV0dXJuIGNoaWxkLmNoaWxkcmVuLnJlZHVjZSgoYWNjLCBjaGlsZCkgPT4ge1xuICAgICAgICBpZiAoY2hpbGQudHlwZSA9PT0gJ1NlbnRlbmNlTm9kZScpIHtcbiAgICAgICAgICByZXR1cm4gY2hpbGQuY2hpbGRyZW4ucmVkdWNlKChhY2MsIGNoaWxkKSA9PiB7XG4gICAgICAgICAgICBpZiAoY2hpbGQudHlwZSA9PT0gJ1dvcmROb2RlJykge1xuICAgICAgICAgICAgICBjb25zdCBub2RlID0ge1xuICAgICAgICAgICAgICAgIHRleHQ6IGdldFdvcmQoY2hpbGQpLFxuICAgICAgICAgICAgICAgIHN0YXJ0OiBjaGlsZC5wb3NpdGlvbi5zdGFydC5vZmZzZXQsXG4gICAgICAgICAgICAgICAgZW5kOiBjaGlsZC5wb3NpdGlvbi5lbmQub2Zmc2V0LFxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICByZXR1cm4gYWNjLmNvbmNhdChbbm9kZV0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LCBhY2MpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH1cbiAgICAgIH0sIGFjYyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBhY2M7XG4gICAgfVxuICB9LCBbXSk7XG5cbiAgcmV0dXJuIG91dDtcbn07XG5cbmNsYXNzIEludGVyc2VjdGlvbiB7XG4gIGNvbnN0cnVjdG9yKHJlc3VsdHMpIHtcbiAgICB0aGlzLnJlc3VsdHMgPSByZXN1bHRzO1xuICB9XG5cbiAgZ2V0IGhhc092ZXJsYXAoKSB7XG4gICAgcmV0dXJuIHRoaXMucmVzdWx0cy5maWx0ZXIoKHIpID0+IHIudHlwZSA9PT0gJ292ZXJsYXAnKS5sZW5ndGggPiAwO1xuICB9XG5cbiAgZ2V0IHN1cnJvdW5kZWRUb2tlbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMucmVzdWx0cy5maWx0ZXIoKHIpID0+IHIudHlwZSA9PT0gJ3dpdGhpbi1zZWxlY3Rpb24nKS5tYXAoKHQpID0+IHQudG9rZW4pO1xuICB9XG59XG4vKipcbiAqIGdldCBpbnRlcnNlY3Rpb24gaW5mbyBmb3IgdGhlIHNlbGVjdGlvbiBpbiByZWxhdGlvbiB0byB0b2tlbnMuXG4gKiBAcGFyYW0ge3tzdGFydDogbnVtYmVyLCBlbmQ6IG51bWJlcn19IHNlbGVjdGlvblxuICogQHBhcmFtIHt7c3RhcnQ6IG51bWJlciwgZW5kOiBudW1iZXJ9W119IHRva2Vuc1xuICogQHJldHVybiB7dG9rZW5zOiBbXSwgdHlwZTogJ292ZXJsYXB8bm8tb3ZlcmxhcHxjb250YWlucyd9XG4gKi9cbmV4cG9ydCBjb25zdCBpbnRlcnNlY3Rpb24gPSAoc2VsZWN0aW9uLCB0b2tlbnMpID0+IHtcbiAgY29uc3QgeyBzdGFydCwgZW5kIH0gPSBzZWxlY3Rpb247XG5cbiAgY29uc3Qgc3RhcnRzV2l0aGluID0gKHQpID0+IHN0YXJ0ID49IHQuc3RhcnQgJiYgc3RhcnQgPCB0LmVuZDtcbiAgY29uc3QgZW5kc1dpdGhpbiA9ICh0KSA9PiBlbmQgPiB0LnN0YXJ0ICYmIGVuZCA8PSB0LmVuZDtcblxuICBjb25zdCBtYXBwZWQgPSB0b2tlbnMubWFwKCh0KSA9PiB7XG4gICAgaWYgKHN0YXJ0ID09PSB0LnN0YXJ0ICYmIGVuZCA9PT0gdC5lbmQpIHtcbiAgICAgIHJldHVybiB7IHRva2VuOiB0LCB0eXBlOiAnZXhhY3QtZml0JyB9O1xuICAgIH0gZWxzZSBpZiAoc3RhcnQgPD0gdC5zdGFydCAmJiBlbmQgPj0gdC5lbmQpIHtcbiAgICAgIHJldHVybiB7IHRva2VuOiB0LCB0eXBlOiAnd2l0aGluLXNlbGVjdGlvbicgfTtcbiAgICB9IGVsc2UgaWYgKHN0YXJ0c1dpdGhpbih0KSB8fCBlbmRzV2l0aGluKHQpKSB7XG4gICAgICByZXR1cm4geyB0b2tlbjogdCwgdHlwZTogJ292ZXJsYXAnIH07XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIG5ldyBJbnRlcnNlY3Rpb24oY29tcGFjdChtYXBwZWQpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBzb3J0ID0gKHRva2VucykgPT4ge1xuICBpZiAoIUFycmF5LmlzQXJyYXkodG9rZW5zKSkge1xuICAgIHJldHVybiB0b2tlbnM7XG4gIH0gZWxzZSB7XG4gICAgY29uc3Qgb3V0ID0gY2xvbmUodG9rZW5zKTtcbiAgICBvdXQuc29ydCgoYSwgYikgPT4ge1xuICAgICAgY29uc3QgcyA9IGEuc3RhcnQgPCBiLnN0YXJ0ID8gLTEgOiBhLnN0YXJ0ID4gYi5zdGFydCA/IDEgOiAwO1xuICAgICAgY29uc3QgZSA9IGEuZW5kIDwgYi5lbmQgPyAtMSA6IGEuZW5kID4gYi5lbmQgPyAxIDogMDtcbiAgICAgIGlmIChzID09PSAtMSAmJiBlICE9PSAtMSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHNvcnQgZG9lcyBub3Qgc3VwcG9ydCBpbnRlcnNlY3RpbmcgdG9rZW5zLiBhOiAke2Euc3RhcnR9LSR7YS5lbmR9LCBiOiAke2Iuc3RhcnR9LSR7Yi5lbmR9YCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcztcbiAgICB9KTtcbiAgICByZXR1cm4gb3V0O1xuICB9XG59O1xuXG5leHBvcnQgY29uc3Qgbm9ybWFsaXplID0gKHRleHRUb05vcm1hbGl6ZSwgdG9rZW5zKSA9PiB7XG4gIC8vIG1ha2luZyBzdXJlIHRleHQgcHJvdmlkZWQgaXMgYSBzdHJpbmdcbiAgY29uc3QgdGV4dCA9IHRleHRUb05vcm1hbGl6ZSB8fCAnJztcblxuICBpZiAoIUFycmF5LmlzQXJyYXkodG9rZW5zKSB8fCB0b2tlbnMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHtcbiAgICAgICAgdGV4dCxcbiAgICAgICAgc3RhcnQ6IDAsXG4gICAgICAgIGVuZDogdGV4dC5sZW5ndGgsXG4gICAgICB9LFxuICAgIF07XG4gIH1cblxuICBjb25zdCBvdXQgPSBzb3J0KHRva2VucykucmVkdWNlKFxuICAgIChhY2MsIHQsIGluZGV4LCBvdXRlcikgPT4ge1xuICAgICAgbGV0IHRva2VucyA9IFtdO1xuICAgICAgY29uc3QgbGFzdEluZGV4ID0gYWNjLmxhc3RJbmRleDtcblxuICAgICAgaWYgKHQuc3RhcnQgPT09IGxhc3RJbmRleCkge1xuICAgICAgICB0b2tlbnMgPSBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgdGV4dDogdGV4dC5zdWJzdHJpbmcobGFzdEluZGV4LCB0LmVuZCksXG4gICAgICAgICAgICBzdGFydDogbGFzdEluZGV4LFxuICAgICAgICAgICAgZW5kOiB0LmVuZCxcbiAgICAgICAgICAgIHByZWRlZmluZWQ6IHRydWUsXG4gICAgICAgICAgICBjb3JyZWN0OiB0LmNvcnJlY3QsXG4gICAgICAgICAgICBpc01pc3Npbmc6IHQuaXNNaXNzaW5nLFxuICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgICB9IGVsc2UgaWYgKGxhc3RJbmRleCA8IHQuc3RhcnQpIHtcbiAgICAgICAgdG9rZW5zID0gW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHRleHQ6IHRleHQuc3Vic3RyaW5nKGxhc3RJbmRleCwgdC5zdGFydCksXG4gICAgICAgICAgICBzdGFydDogbGFzdEluZGV4LFxuICAgICAgICAgICAgZW5kOiB0LnN0YXJ0LFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgdGV4dDogdGV4dC5zdWJzdHJpbmcodC5zdGFydCwgdC5lbmQpLFxuICAgICAgICAgICAgc3RhcnQ6IHQuc3RhcnQsXG4gICAgICAgICAgICBlbmQ6IHQuZW5kLFxuICAgICAgICAgICAgcHJlZGVmaW5lZDogdHJ1ZSxcbiAgICAgICAgICAgIGNvcnJlY3Q6IHQuY29ycmVjdCxcbiAgICAgICAgICAgIGlzTWlzc2luZzogdC5pc01pc3NpbmcsXG4gICAgICAgICAgfSxcbiAgICAgICAgXTtcbiAgICAgIH1cblxuICAgICAgaWYgKGluZGV4ID09PSBvdXRlci5sZW5ndGggLSAxICYmIHQuZW5kIDwgdGV4dC5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgbGFzdCA9IHtcbiAgICAgICAgICB0ZXh0OiB0ZXh0LnN1YnN0cmluZyh0LmVuZCksXG4gICAgICAgICAgc3RhcnQ6IHQuZW5kLFxuICAgICAgICAgIGVuZDogdGV4dC5sZW5ndGgsXG4gICAgICAgIH07XG4gICAgICAgIHRva2Vucy5wdXNoKGxhc3QpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBsYXN0SW5kZXg6IHRva2Vucy5sZW5ndGggPyB0b2tlbnNbdG9rZW5zLmxlbmd0aCAtIDFdLmVuZCA6IGxhc3RJbmRleCxcbiAgICAgICAgcmVzdWx0OiBhY2MucmVzdWx0LmNvbmNhdCh0b2tlbnMpLFxuICAgICAgfTtcbiAgICB9LFxuICAgIHsgcmVzdWx0OiBbXSwgbGFzdEluZGV4OiAwIH0sXG4gICk7XG5cbiAgcmV0dXJuIG91dC5yZXN1bHQ7XG59O1xuIl0sIm1hcHBpbmdz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
@@ -1 +0,0 @@
1
- {"version":3,"file":"builder.js","names":["_compact","_interopRequireDefault","require","_parseEnglish","_clone","g","str","node","children","reduce","value","getParagraph","p","getSentence","s","getWord","w","paragraphs","exports","text","tree","English","parse","out","acc","child","type","paragraph","start","position","offset","end","concat","handleSentence","sentenceChilds","newAcc","length","firstWord","sentence","map","d","join","splice","push","lastWord","sentences","words","Intersection","results","_classCallCheck2","_createClass2","key","get","filter","r","t","token","intersection","selection","tokens","startsWithin","endsWithin","mapped","compact","sort","Array","isArray","clone","a","b","e","Error","normalize","textToNormalize","index","outer","lastIndex","substring","predefined","correct","isMissing","last","result"],"sources":["../../src/tokenizer/builder.js"],"sourcesContent":["import compact from 'lodash/compact';\nimport English from '@pie-framework/parse-english';\nimport clone from 'lodash/clone';\n\nconst g = (str, node) => {\n if (node.children) {\n return node.children.reduce(g, str);\n } else if (node.value) {\n return str + node.value;\n } else {\n return str;\n }\n};\n\nconst getParagraph = (p) => g('', p);\n\nconst getSentence = (s) => g('', s);\n\nconst getWord = (w) => g('', w);\n\nexport const paragraphs = (text) => {\n const tree = new English().parse(text);\n\n const out = tree.children.reduce((acc, child) => {\n if (child.type === 'ParagraphNode') {\n const paragraph = {\n text: getParagraph(child),\n start: child.position.start.offset,\n end: child.position.end.offset,\n };\n\n return acc.concat([paragraph]);\n } else {\n return acc;\n }\n }, []);\n\n return out;\n};\n\nexport const handleSentence = (child, acc) => {\n const sentenceChilds = [];\n // we parse the children of the sentence\n let newAcc = child.children.reduce(function(acc, child) {\n // if we find a whitespace node that's \\n, we end the sentence\n if (child.type === 'WhiteSpaceNode' && child.value === '\\n') {\n if (sentenceChilds.length) {\n const firstWord = sentenceChilds[0];\n // we create a sentence starting from the first word until the new line\n const sentence = {\n text: sentenceChilds.map((d) => getSentence(d)).join(''),\n start: firstWord.position.start.offset,\n end: child.position.start.offset,\n };\n\n // we remove all the elements from the array\n sentenceChilds.splice(0, sentenceChilds.length);\n return acc.concat([sentence]);\n }\n } else {\n // otherwise we add it to the array that contains the child forming a sentence\n sentenceChilds.push(child);\n }\n\n return acc;\n }, acc);\n\n // we treat the case when no \\n character is found at the end\n // so we create a sentence from the last words or white spaces found\n if (sentenceChilds.length) {\n const firstWord = sentenceChilds[0];\n const lastWord = sentenceChilds[sentenceChilds.length - 1];\n const sentence = {\n text: sentenceChilds.map((d) => getSentence(d)).join(''),\n start: firstWord.position.start.offset,\n end: lastWord.position.end.offset,\n };\n\n newAcc = newAcc.concat([sentence]);\n\n sentenceChilds.splice(0, sentenceChilds.length);\n }\n\n return newAcc;\n};\n\nexport const sentences = (text) => {\n const tree = new English().parse(text);\n\n const out = tree.children.reduce((acc, child) => {\n if (child.type === 'ParagraphNode') {\n return child.children.reduce((acc, child) => {\n if (child.type === 'SentenceNode') {\n const newAcc = handleSentence(child, acc);\n\n return newAcc || acc;\n } else {\n return acc;\n }\n }, acc);\n } else {\n return acc;\n }\n }, []);\n\n return out;\n};\nexport const words = (text) => {\n const tree = new English().parse(text);\n\n const out = tree.children.reduce((acc, child) => {\n if (child.type === 'ParagraphNode') {\n return child.children.reduce((acc, child) => {\n if (child.type === 'SentenceNode') {\n return child.children.reduce((acc, child) => {\n if (child.type === 'WordNode') {\n const node = {\n text: getWord(child),\n start: child.position.start.offset,\n end: child.position.end.offset,\n };\n return acc.concat([node]);\n } else {\n return acc;\n }\n }, acc);\n } else {\n return acc;\n }\n }, acc);\n } else {\n return acc;\n }\n }, []);\n\n return out;\n};\n\nclass Intersection {\n constructor(results) {\n this.results = results;\n }\n\n get hasOverlap() {\n return this.results.filter((r) => r.type === 'overlap').length > 0;\n }\n\n get surroundedTokens() {\n return this.results.filter((r) => r.type === 'within-selection').map((t) => t.token);\n }\n}\n/**\n * get intersection info for the selection in relation to tokens.\n * @param {{start: number, end: number}} selection\n * @param {{start: number, end: number}[]} tokens\n * @return {tokens: [], type: 'overlap|no-overlap|contains'}\n */\nexport const intersection = (selection, tokens) => {\n const { start, end } = selection;\n\n const startsWithin = (t) => start >= t.start && start < t.end;\n const endsWithin = (t) => end > t.start && end <= t.end;\n\n const mapped = tokens.map((t) => {\n if (start === t.start && end === t.end) {\n return { token: t, type: 'exact-fit' };\n } else if (start <= t.start && end >= t.end) {\n return { token: t, type: 'within-selection' };\n } else if (startsWithin(t) || endsWithin(t)) {\n return { token: t, type: 'overlap' };\n }\n });\n return new Intersection(compact(mapped));\n};\n\nexport const sort = (tokens) => {\n if (!Array.isArray(tokens)) {\n return tokens;\n } else {\n const out = clone(tokens);\n out.sort((a, b) => {\n const s = a.start < b.start ? -1 : a.start > b.start ? 1 : 0;\n const e = a.end < b.end ? -1 : a.end > b.end ? 1 : 0;\n if (s === -1 && e !== -1) {\n throw new Error(`sort does not support intersecting tokens. a: ${a.start}-${a.end}, b: ${b.start}-${b.end}`);\n }\n return s;\n });\n return out;\n }\n};\n\nexport const normalize = (textToNormalize, tokens) => {\n // making sure text provided is a string\n const text = textToNormalize || '';\n\n if (!Array.isArray(tokens) || tokens.length === 0) {\n return [\n {\n text,\n start: 0,\n end: text.length,\n },\n ];\n }\n\n const out = sort(tokens).reduce(\n (acc, t, index, outer) => {\n let tokens = [];\n const lastIndex = acc.lastIndex;\n\n if (t.start === lastIndex) {\n tokens = [\n {\n text: text.substring(lastIndex, t.end),\n start: lastIndex,\n end: t.end,\n predefined: true,\n correct: t.correct,\n isMissing: t.isMissing,\n },\n ];\n } else if (lastIndex < t.start) {\n tokens = [\n {\n text: text.substring(lastIndex, t.start),\n start: lastIndex,\n end: t.start,\n },\n {\n text: text.substring(t.start, t.end),\n start: t.start,\n end: t.end,\n predefined: true,\n correct: t.correct,\n isMissing: t.isMissing,\n },\n ];\n }\n\n if (index === outer.length - 1 && t.end < text.length) {\n const last = {\n text: text.substring(t.end),\n start: t.end,\n end: text.length,\n };\n tokens.push(last);\n }\n\n return {\n lastIndex: tokens.length ? tokens[tokens.length - 1].end : lastIndex,\n result: acc.result.concat(tokens),\n };\n },\n { result: [], lastIndex: 0 },\n );\n\n return out.result;\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,106 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports["default"] = exports.Controls = void 0;
8
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
9
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
11
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
12
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
13
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
14
- var _react = _interopRequireDefault(require("react"));
15
- var _propTypes = _interopRequireDefault(require("prop-types"));
16
- var _Button = _interopRequireDefault(require("@mui/material/Button"));
17
- var _styles = require("@mui/material/styles");
18
- var _Switch = _interopRequireDefault(require("@mui/material/Switch"));
19
- var _FormControlLabel = _interopRequireDefault(require("@mui/material/FormControlLabel"));
20
- var _renderUi = require("@pie-lib/render-ui");
21
- function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
22
- function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
23
- var StyledControls = (0, _styles.styled)('div')(function () {
24
- return {
25
- display: 'flex',
26
- alignItems: 'center',
27
- justifyContent: 'space-between'
28
- };
29
- });
30
- var StyledButton = (0, _styles.styled)(_Button["default"])(function (_ref) {
31
- var theme = _ref.theme;
32
- return {
33
- marginRight: theme.spacing(1)
34
- };
35
- });
36
- var StyledSwitch = (0, _styles.styled)(_Switch["default"])(function () {
37
- return {
38
- '& .MuiSwitch-thumb': {
39
- '&.Mui-checked': {
40
- color: "".concat(_renderUi.color.tertiary(), " !important")
41
- }
42
- },
43
- '& .MuiSwitch-track': {
44
- '&.Mui-checked': {
45
- backgroundColor: "".concat(_renderUi.color.tertiaryLight(), " !important")
46
- }
47
- }
48
- };
49
- });
50
- var Controls = exports.Controls = /*#__PURE__*/function (_React$Component) {
51
- function Controls() {
52
- (0, _classCallCheck2["default"])(this, Controls);
53
- return _callSuper(this, Controls, arguments);
54
- }
55
- (0, _inherits2["default"])(Controls, _React$Component);
56
- return (0, _createClass2["default"])(Controls, [{
57
- key: "render",
58
- value: function render() {
59
- var _this$props = this.props,
60
- onClear = _this$props.onClear,
61
- onWords = _this$props.onWords,
62
- onSentences = _this$props.onSentences,
63
- onParagraphs = _this$props.onParagraphs,
64
- setCorrectMode = _this$props.setCorrectMode,
65
- onToggleCorrectMode = _this$props.onToggleCorrectMode;
66
- return /*#__PURE__*/_react["default"].createElement(StyledControls, null, /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(StyledButton, {
67
- onClick: onWords,
68
- size: "small",
69
- color: "primary",
70
- disabled: setCorrectMode
71
- }, "Words"), /*#__PURE__*/_react["default"].createElement(StyledButton, {
72
- onClick: onSentences,
73
- size: "small",
74
- color: "primary",
75
- disabled: setCorrectMode
76
- }, "Sentences"), /*#__PURE__*/_react["default"].createElement(StyledButton, {
77
- onClick: onParagraphs,
78
- size: "small",
79
- color: "primary",
80
- disabled: setCorrectMode
81
- }, "Paragraphs"), /*#__PURE__*/_react["default"].createElement(StyledButton, {
82
- size: "small",
83
- color: "secondary",
84
- onClick: onClear,
85
- disabled: setCorrectMode
86
- }, "Clear")), /*#__PURE__*/_react["default"].createElement(_FormControlLabel["default"], {
87
- control: /*#__PURE__*/_react["default"].createElement(StyledSwitch, {
88
- checked: setCorrectMode,
89
- onChange: onToggleCorrectMode
90
- }),
91
- label: "Set correct answers"
92
- }));
93
- }
94
- }]);
95
- }(_react["default"].Component);
96
- (0, _defineProperty2["default"])(Controls, "propTypes", {
97
- onClear: _propTypes["default"].func.isRequired,
98
- onWords: _propTypes["default"].func.isRequired,
99
- onSentences: _propTypes["default"].func.isRequired,
100
- onParagraphs: _propTypes["default"].func.isRequired,
101
- setCorrectMode: _propTypes["default"].bool.isRequired,
102
- onToggleCorrectMode: _propTypes["default"].func.isRequired
103
- });
104
- (0, _defineProperty2["default"])(Controls, "defaultProps", {});
105
- var _default = exports["default"] = Controls;
106
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9wcm9wVHlwZXMiLCJfQnV0dG9uIiwiX3N0eWxlcyIsIl9Td2l0Y2giLCJfRm9ybUNvbnRyb2xMYWJlbCIsIl9yZW5kZXJVaSIsIl9jYWxsU3VwZXIiLCJ0IiwibyIsImUiLCJfZ2V0UHJvdG90eXBlT2YyIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJjb25zdHJ1Y3RvciIsImFwcGx5IiwiQm9vbGVhbiIsInByb3RvdHlwZSIsInZhbHVlT2YiLCJjYWxsIiwiU3R5bGVkQ29udHJvbHMiLCJzdHlsZWQiLCJkaXNwbGF5IiwiYWxpZ25JdGVtcyIsImp1c3RpZnlDb250ZW50IiwiU3R5bGVkQnV0dG9uIiwiQnV0dG9uIiwiX3JlZiIsInRoZW1lIiwibWFyZ2luUmlnaHQiLCJzcGFjaW5nIiwiU3R5bGVkU3dpdGNoIiwiU3dpdGNoIiwiY29sb3IiLCJjb25jYXQiLCJ0ZXJ0aWFyeSIsImJhY2tncm91bmRDb2xvciIsInRlcnRpYXJ5TGlnaHQiLCJDb250cm9scyIsImV4cG9ydHMiLCJfUmVhY3QkQ29tcG9uZW50IiwiX2NsYXNzQ2FsbENoZWNrMiIsImFyZ3VtZW50cyIsIl9pbmhlcml0czIiLCJfY3JlYXRlQ2xhc3MyIiwia2V5IiwidmFsdWUiLCJyZW5kZXIiLCJfdGhpcyRwcm9wcyIsInByb3BzIiwib25DbGVhciIsIm9uV29yZHMiLCJvblNlbnRlbmNlcyIsIm9uUGFyYWdyYXBocyIsInNldENvcnJlY3RNb2RlIiwib25Ub2dnbGVDb3JyZWN0TW9kZSIsImNyZWF0ZUVsZW1lbnQiLCJvbkNsaWNrIiwic2l6ZSIsImRpc2FibGVkIiwiY29udHJvbCIsImNoZWNrZWQiLCJvbkNoYW5nZSIsImxhYmVsIiwiUmVhY3QiLCJDb21wb25lbnQiLCJfZGVmaW5lUHJvcGVydHkyIiwiUHJvcFR5cGVzIiwiZnVuYyIsImlzUmVxdWlyZWQiLCJib29sIiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdG9rZW5pemVyL2NvbnRyb2xzLmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBCdXR0b24gZnJvbSAnQG11aS9tYXRlcmlhbC9CdXR0b24nO1xuaW1wb3J0IHsgc3R5bGVkIH0gZnJvbSAnQG11aS9tYXRlcmlhbC9zdHlsZXMnO1xuaW1wb3J0IFN3aXRjaCBmcm9tICdAbXVpL21hdGVyaWFsL1N3aXRjaCc7XG5pbXBvcnQgRm9ybUNvbnRyb2xMYWJlbCBmcm9tICdAbXVpL21hdGVyaWFsL0Zvcm1Db250cm9sTGFiZWwnO1xuaW1wb3J0IHsgY29sb3IgfSBmcm9tICdAcGllLWxpYi9yZW5kZXItdWknO1xuXG5jb25zdCBTdHlsZWRDb250cm9scyA9IHN0eWxlZCgnZGl2JykoKCkgPT4gKHtcbiAgZGlzcGxheTogJ2ZsZXgnLFxuICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAganVzdGlmeUNvbnRlbnQ6ICdzcGFjZS1iZXR3ZWVuJyxcbn0pKTtcblxuY29uc3QgU3R5bGVkQnV0dG9uID0gc3R5bGVkKEJ1dHRvbikoKHsgdGhlbWUgfSkgPT4gKHtcbiAgbWFyZ2luUmlnaHQ6IHRoZW1lLnNwYWNpbmcoMSksXG59KSk7XG5cbmNvbnN0IFN0eWxlZFN3aXRjaCA9IHN0eWxlZChTd2l0Y2gpKCgpID0+ICh7XG4gICcmIC5NdWlTd2l0Y2gtdGh1bWInOiB7XG4gICAgJyYuTXVpLWNoZWNrZWQnOiB7XG4gICAgICBjb2xvcjogYCR7Y29sb3IudGVydGlhcnkoKX0gIWltcG9ydGFudGAsXG4gICAgfSxcbiAgfSxcbiAgJyYgLk11aVN3aXRjaC10cmFjayc6IHtcbiAgICAnJi5NdWktY2hlY2tlZCc6IHtcbiAgICAgIGJhY2tncm91bmRDb2xvcjogYCR7Y29sb3IudGVydGlhcnlMaWdodCgpfSAhaW1wb3J0YW50YCxcbiAgICB9LFxuICB9LFxufSkpO1xuXG5leHBvcnQgY2xhc3MgQ29udHJvbHMgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIG9uQ2xlYXI6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25Xb3JkczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblNlbnRlbmNlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBhcmFncmFwaHM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2V0Q29ycmVjdE1vZGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25Ub2dnbGVDb3JyZWN0TW9kZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge307XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgb25DbGVhciwgb25Xb3Jkcywgb25TZW50ZW5jZXMsIG9uUGFyYWdyYXBocywgc2V0Q29ycmVjdE1vZGUsIG9uVG9nZ2xlQ29ycmVjdE1vZGUgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZENvbnRyb2xzPlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxTdHlsZWRCdXR0b24gb25DbGljaz17b25Xb3Jkc30gc2l6ZT1cInNtYWxsXCIgY29sb3I9XCJwcmltYXJ5XCIgZGlzYWJsZWQ9e3NldENvcnJlY3RNb2RlfT5cbiAgICAgICAgICAgIFdvcmRzXG4gICAgICAgICAgPC9TdHlsZWRCdXR0b24+XG4gICAgICAgICAgPFN0eWxlZEJ1dHRvblxuICAgICAgICAgICAgb25DbGljaz17b25TZW50ZW5jZXN9XG4gICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgIGRpc2FibGVkPXtzZXRDb3JyZWN0TW9kZX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICBTZW50ZW5jZXNcbiAgICAgICAgICA8L1N0eWxlZEJ1dHRvbj5cbiAgICAgICAgICA8U3R5bGVkQnV0dG9uXG4gICAgICAgICAgICBvbkNsaWNrPXtvblBhcmFncmFwaHN9XG4gICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgIGRpc2FibGVkPXtzZXRDb3JyZWN0TW9kZX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICBQYXJhZ3JhcGhzXG4gICAgICAgICAgPC9TdHlsZWRCdXR0b24+XG4gICAgICAgICAgPFN0eWxlZEJ1dHRvbiBzaXplPVwic21hbGxcIiBjb2xvcj1cInNlY29uZGFyeVwiIG9uQ2xpY2s9e29uQ2xlYXJ9IGRpc2FibGVkPXtzZXRDb3JyZWN0TW9kZX0+XG4gICAgICAgICAgICBDbGVhclxuICAgICAgICAgIDwvU3R5bGVkQnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPEZvcm1Db250cm9sTGFiZWxcbiAgICAgICAgICBjb250cm9sPXtcbiAgICAgICAgICAgIDxTdHlsZWRTd2l0Y2hcbiAgICAgICAgICAgICAgY2hlY2tlZD17c2V0Q29ycmVjdE1vZGV9XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXtvblRvZ2dsZUNvcnJlY3RNb2RlfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICB9XG4gICAgICAgICAgbGFiZWw9XCJTZXQgY29ycmVjdCBhbnN3ZXJzXCJcbiAgICAgICAgLz5cbiAgICAgIDwvU3R5bGVkQ29udHJvbHM+XG4gICAgKTtcbiAgfVxufVxuZXhwb3J0IGRlZmF1bHQgQ29udHJvbHM7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxVQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJ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
@@ -1 +0,0 @@
1
- {"version":3,"file":"controls.js","names":["_react","_interopRequireDefault","require","_propTypes","_Button","_styles","_Switch","_FormControlLabel","_renderUi","_callSuper","t","o","e","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","prototype","valueOf","call","StyledControls","styled","display","alignItems","justifyContent","StyledButton","Button","_ref","theme","marginRight","spacing","StyledSwitch","Switch","color","concat","tertiary","backgroundColor","tertiaryLight","Controls","exports","_React$Component","_classCallCheck2","arguments","_inherits2","_createClass2","key","value","render","_this$props","props","onClear","onWords","onSentences","onParagraphs","setCorrectMode","onToggleCorrectMode","createElement","onClick","size","disabled","control","checked","onChange","label","React","Component","_defineProperty2","PropTypes","func","isRequired","bool","_default"],"sources":["../../src/tokenizer/controls.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport Button from '@mui/material/Button';\nimport { styled } from '@mui/material/styles';\nimport Switch from '@mui/material/Switch';\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport { color } from '@pie-lib/render-ui';\n\nconst StyledControls = styled('div')(() => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n}));\n\nconst StyledButton = styled(Button)(({ theme }) => ({\n marginRight: theme.spacing(1),\n}));\n\nconst StyledSwitch = styled(Switch)(() => ({\n '& .MuiSwitch-thumb': {\n '&.Mui-checked': {\n color: `${color.tertiary()} !important`,\n },\n },\n '& .MuiSwitch-track': {\n '&.Mui-checked': {\n backgroundColor: `${color.tertiaryLight()} !important`,\n },\n },\n}));\n\nexport class Controls extends React.Component {\n static propTypes = {\n onClear: PropTypes.func.isRequired,\n onWords: PropTypes.func.isRequired,\n onSentences: PropTypes.func.isRequired,\n onParagraphs: PropTypes.func.isRequired,\n setCorrectMode: PropTypes.bool.isRequired,\n onToggleCorrectMode: PropTypes.func.isRequired,\n };\n\n static defaultProps = {};\n\n render() {\n const { onClear, onWords, onSentences, onParagraphs, setCorrectMode, onToggleCorrectMode } = this.props;\n\n return (\n <StyledControls>\n <div>\n <StyledButton onClick={onWords} size=\"small\" color=\"primary\" disabled={setCorrectMode}>\n Words\n </StyledButton>\n <StyledButton\n onClick={onSentences}\n size=\"small\"\n color=\"primary\"\n disabled={setCorrectMode}\n >\n Sentences\n </StyledButton>\n <StyledButton\n onClick={onParagraphs}\n size=\"small\"\n color=\"primary\"\n disabled={setCorrectMode}\n >\n Paragraphs\n </StyledButton>\n <StyledButton size=\"small\" color=\"secondary\" onClick={onClear} disabled={setCorrectMode}>\n Clear\n </StyledButton>\n </div>\n <FormControlLabel\n control={\n <StyledSwitch\n checked={setCorrectMode}\n onChange={onToggleCorrectMode}\n />\n }\n label=\"Set correct answers\"\n />\n </StyledControls>\n );\n }\n}\nexport default Controls;\n"],"mappings":"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","ignoreList":[]}