@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.
- package/CHANGELOG.json +1 -632
- package/CHANGELOG.md +114 -30
- package/lib/index.js +1 -9
- package/lib/index.js.map +1 -0
- package/lib/legend.js +65 -38
- package/lib/legend.js.map +1 -0
- package/lib/shared/index.js +136 -0
- package/lib/text-select.js +1 -1
- package/lib/text-select.js.map +1 -0
- package/lib/token-select/index.js +1 -1
- package/lib/token-select/index.js.map +1 -0
- package/lib/token-select/token.js +113 -67
- package/lib/token-select/token.js.map +1 -0
- package/lib/tokenizer/builder.js +1 -1
- package/lib/tokenizer/builder.js.map +1 -0
- package/lib/tokenizer/controls.js +4 -4
- package/lib/tokenizer/controls.js.map +1 -0
- package/lib/tokenizer/index.js +1 -1
- package/lib/tokenizer/index.js.map +1 -0
- package/lib/tokenizer/selection-utils.js +1 -1
- package/lib/tokenizer/selection-utils.js.map +1 -0
- package/lib/tokenizer/token-text.js +1 -1
- package/lib/tokenizer/token-text.js.map +1 -0
- package/lib/utils.js +1 -1
- package/lib/utils.js.map +1 -0
- package/package.json +6 -6
- package/src/index.js +1 -2
- package/src/legend.js +55 -37
- package/src/token-select/__tests__/__snapshots__/token.test.jsx.snap +2 -6
- package/src/token-select/token.jsx +96 -61
- package/src/tokenizer/controls.jsx +7 -7
- package/lib/__tests__/text-select.test.js +0 -56
- package/lib/__tests__/utils.test.js +0 -23
- package/lib/token-select/__tests__/index.test.js +0 -268
- package/lib/token-select/__tests__/token.test.js +0 -35
- package/lib/tokenizer/__tests__/builder.test.js +0 -399
- package/lib/tokenizer/__tests__/controls.test.js +0 -34
- package/lib/tokenizer/__tests__/index.test.js +0 -210
- package/lib/tokenizer/__tests__/selection-utils.test.js +0 -27
- package/lib/tokenizer/__tests__/token-text.test.js +0 -154
|
@@ -1,210 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
var _index = require("../index");
|
|
6
|
-
|
|
7
|
-
var _react = _interopRequireDefault(require("react"));
|
|
8
|
-
|
|
9
|
-
var _enzyme = require("enzyme");
|
|
10
|
-
|
|
11
|
-
var _builder = require("../builder");
|
|
12
|
-
|
|
13
|
-
var tokens = function tokens() {
|
|
14
|
-
return [{
|
|
15
|
-
start: 0,
|
|
16
|
-
end: 1,
|
|
17
|
-
text: 'f'
|
|
18
|
-
}];
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
var eff = function eff() {
|
|
22
|
-
return tokens()[0];
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
jest.mock('../builder', function () {
|
|
26
|
-
return {
|
|
27
|
-
words: jest.fn().mockReturnValue([{
|
|
28
|
-
start: 0,
|
|
29
|
-
end: 3,
|
|
30
|
-
text: 'foo'
|
|
31
|
-
}]),
|
|
32
|
-
sentences: jest.fn().mockReturnValue([{
|
|
33
|
-
start: 0,
|
|
34
|
-
end: 3,
|
|
35
|
-
text: 'foo'
|
|
36
|
-
}]),
|
|
37
|
-
paragraphs: jest.fn().mockReturnValue([{
|
|
38
|
-
start: 0,
|
|
39
|
-
end: 3,
|
|
40
|
-
text: 'foo'
|
|
41
|
-
}])
|
|
42
|
-
};
|
|
43
|
-
});
|
|
44
|
-
describe('tokenizer', function () {
|
|
45
|
-
describe('snapshot', function () {
|
|
46
|
-
it('renders', function () {
|
|
47
|
-
var w = (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_index.Tokenizer, {
|
|
48
|
-
text: "foo",
|
|
49
|
-
classes: {},
|
|
50
|
-
onChange: jest.fn(),
|
|
51
|
-
tokens: tokens()
|
|
52
|
-
}));
|
|
53
|
-
expect(w).toMatchSnapshot();
|
|
54
|
-
});
|
|
55
|
-
});
|
|
56
|
-
describe('logic', function () {
|
|
57
|
-
var w;
|
|
58
|
-
var onChange;
|
|
59
|
-
beforeEach(function () {
|
|
60
|
-
onChange = jest.fn();
|
|
61
|
-
w = (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_index.Tokenizer, {
|
|
62
|
-
text: "foo",
|
|
63
|
-
classes: {},
|
|
64
|
-
onChange: onChange,
|
|
65
|
-
tokens: tokens()
|
|
66
|
-
}));
|
|
67
|
-
});
|
|
68
|
-
describe('tokenIndex', function () {
|
|
69
|
-
it('returns 0', function () {
|
|
70
|
-
var index = w.instance().tokenIndex(eff());
|
|
71
|
-
expect(index).toEqual(0);
|
|
72
|
-
});
|
|
73
|
-
it('returns -1', function () {
|
|
74
|
-
var index = w.instance().tokenIndex({
|
|
75
|
-
start: 2,
|
|
76
|
-
end: 3,
|
|
77
|
-
text: 'f'
|
|
78
|
-
});
|
|
79
|
-
expect(index).toEqual(-1);
|
|
80
|
-
});
|
|
81
|
-
});
|
|
82
|
-
describe('tokenClick', function () {
|
|
83
|
-
var i;
|
|
84
|
-
beforeEach(function () {
|
|
85
|
-
i = w.instance();
|
|
86
|
-
i.setCorrect = jest.fn();
|
|
87
|
-
i.removeToken = jest.fn();
|
|
88
|
-
});
|
|
89
|
-
it('calls removeToken if setCorrectMode == false', function () {
|
|
90
|
-
i.tokenClick(eff());
|
|
91
|
-
expect(i.setCorrect).not.toBeCalled();
|
|
92
|
-
expect(i.removeToken).toBeCalled();
|
|
93
|
-
});
|
|
94
|
-
it('calls setCorrect if setCorrectMode == true', function () {
|
|
95
|
-
i.setState({
|
|
96
|
-
setCorrectMode: true
|
|
97
|
-
});
|
|
98
|
-
i.tokenClick(eff());
|
|
99
|
-
expect(i.setCorrect).toBeCalled();
|
|
100
|
-
expect(i.removeToken).not.toBeCalled();
|
|
101
|
-
});
|
|
102
|
-
});
|
|
103
|
-
describe('selectToken', function () {
|
|
104
|
-
it('calls onChange', function () {
|
|
105
|
-
w.instance().selectToken({
|
|
106
|
-
start: 1,
|
|
107
|
-
end: 3,
|
|
108
|
-
text: 'oo'
|
|
109
|
-
}, [{
|
|
110
|
-
start: 0,
|
|
111
|
-
end: 1,
|
|
112
|
-
text: 'f'
|
|
113
|
-
}]);
|
|
114
|
-
expect(onChange).toBeCalledWith([{
|
|
115
|
-
start: 1,
|
|
116
|
-
end: 3,
|
|
117
|
-
text: 'oo'
|
|
118
|
-
}], '');
|
|
119
|
-
});
|
|
120
|
-
});
|
|
121
|
-
describe('buildParagraphsTokens', function () {
|
|
122
|
-
it('calls paragraphs', function () {
|
|
123
|
-
w.instance().buildTokens('paragraph', _builder.paragraphs);
|
|
124
|
-
expect(_builder.paragraphs).toBeCalledWith('foo');
|
|
125
|
-
});
|
|
126
|
-
});
|
|
127
|
-
describe('buildSentenceTokens', function () {
|
|
128
|
-
it('calls sentences', function () {
|
|
129
|
-
w.instance().buildTokens('sentence', _builder.sentences);
|
|
130
|
-
expect(_builder.sentences).toBeCalledWith('foo');
|
|
131
|
-
});
|
|
132
|
-
});
|
|
133
|
-
describe('buildWordTokens', function () {
|
|
134
|
-
it('calls words', function () {
|
|
135
|
-
w.instance().buildTokens('word', _builder.words);
|
|
136
|
-
expect(_builder.words).toBeCalledWith('foo');
|
|
137
|
-
});
|
|
138
|
-
});
|
|
139
|
-
describe('clear', function () {
|
|
140
|
-
it('calls onChange with an empty array', function () {
|
|
141
|
-
w.instance().clear();
|
|
142
|
-
expect(onChange).toBeCalledWith([], '');
|
|
143
|
-
});
|
|
144
|
-
});
|
|
145
|
-
describe('toggleCorrectMode', function () {
|
|
146
|
-
it('set state', function () {
|
|
147
|
-
w.setState({
|
|
148
|
-
setCorrectMode: true
|
|
149
|
-
});
|
|
150
|
-
w.instance().toggleCorrectMode();
|
|
151
|
-
expect(w.state('setCorrectMode')).toEqual(false);
|
|
152
|
-
});
|
|
153
|
-
});
|
|
154
|
-
describe('setCorrect', function () {
|
|
155
|
-
it('calls onChange', function () {
|
|
156
|
-
w.instance().setCorrect({
|
|
157
|
-
start: 0,
|
|
158
|
-
end: 1,
|
|
159
|
-
text: 'f'
|
|
160
|
-
});
|
|
161
|
-
expect(onChange).toBeCalledWith([{
|
|
162
|
-
start: 0,
|
|
163
|
-
end: 1,
|
|
164
|
-
text: 'f',
|
|
165
|
-
correct: true
|
|
166
|
-
}], '');
|
|
167
|
-
});
|
|
168
|
-
it('calls onChange w/ correct: false', function () {
|
|
169
|
-
w.setProps({
|
|
170
|
-
tokens: [{
|
|
171
|
-
start: 0,
|
|
172
|
-
end: 1,
|
|
173
|
-
text: 'f',
|
|
174
|
-
correct: true
|
|
175
|
-
}]
|
|
176
|
-
});
|
|
177
|
-
w.instance().setCorrect({
|
|
178
|
-
start: 0,
|
|
179
|
-
end: 1,
|
|
180
|
-
text: 'f'
|
|
181
|
-
});
|
|
182
|
-
expect(onChange).toBeCalledWith([{
|
|
183
|
-
start: 0,
|
|
184
|
-
end: 1,
|
|
185
|
-
text: 'f',
|
|
186
|
-
correct: false
|
|
187
|
-
}], '');
|
|
188
|
-
});
|
|
189
|
-
});
|
|
190
|
-
describe('removeToken', function () {
|
|
191
|
-
it('calls onChange', function () {
|
|
192
|
-
w.instance().removeToken({
|
|
193
|
-
start: 0,
|
|
194
|
-
end: 1,
|
|
195
|
-
text: 'f'
|
|
196
|
-
});
|
|
197
|
-
expect(onChange).toBeCalledWith([], '');
|
|
198
|
-
});
|
|
199
|
-
it('does not call onChange if it cant find the token', function () {
|
|
200
|
-
w.instance().removeToken({
|
|
201
|
-
start: 2,
|
|
202
|
-
end: 3,
|
|
203
|
-
text: 'a'
|
|
204
|
-
});
|
|
205
|
-
expect(onChange).not.toBeCalled();
|
|
206
|
-
});
|
|
207
|
-
});
|
|
208
|
-
});
|
|
209
|
-
});
|
|
210
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90b2tlbml6ZXIvX190ZXN0c19fL2luZGV4LnRlc3QuanN4Il0sIm5hbWVzIjpbInRva2VucyIsInN0YXJ0IiwiZW5kIiwidGV4dCIsImVmZiIsImplc3QiLCJtb2NrIiwid29yZHMiLCJmbiIsIm1vY2tSZXR1cm5WYWx1ZSIsInNlbnRlbmNlcyIsInBhcmFncmFwaHMiLCJkZXNjcmliZSIsIml0IiwidyIsImV4cGVjdCIsInRvTWF0Y2hTbmFwc2hvdCIsIm9uQ2hhbmdlIiwiYmVmb3JlRWFjaCIsImluZGV4IiwiaW5zdGFuY2UiLCJ0b2tlbkluZGV4IiwidG9FcXVhbCIsImkiLCJzZXRDb3JyZWN0IiwicmVtb3ZlVG9rZW4iLCJ0b2tlbkNsaWNrIiwibm90IiwidG9CZUNhbGxlZCIsInNldFN0YXRlIiwic2V0Q29ycmVjdE1vZGUiLCJzZWxlY3RUb2tlbiIsInRvQmVDYWxsZWRXaXRoIiwiYnVpbGRUb2tlbnMiLCJjbGVhciIsInRvZ2dsZUNvcnJlY3RNb2RlIiwic3RhdGUiLCJjb3JyZWN0Iiwic2V0UHJvcHMiXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQSxJQUFNQSxNQUFNLEdBQUcsU0FBVEEsTUFBUztBQUFBLFNBQU0sQ0FDbkI7QUFDRUMsSUFBQUEsS0FBSyxFQUFFLENBRFQ7QUFFRUMsSUFBQUEsR0FBRyxFQUFFLENBRlA7QUFHRUMsSUFBQUEsSUFBSSxFQUFFO0FBSFIsR0FEbUIsQ0FBTjtBQUFBLENBQWY7O0FBUUEsSUFBTUMsR0FBRyxHQUFHLFNBQU5BLEdBQU07QUFBQSxTQUFNSixNQUFNLEdBQUcsQ0FBSCxDQUFaO0FBQUEsQ0FBWjs7QUFFQUssSUFBSSxDQUFDQyxJQUFMLENBQVUsWUFBVixFQUF3QjtBQUFBLFNBQU87QUFDN0JDLElBQUFBLEtBQUssRUFBRUYsSUFBSSxDQUFDRyxFQUFMLEdBQVVDLGVBQVYsQ0FBMEIsQ0FBQztBQUFFUixNQUFBQSxLQUFLLEVBQUUsQ0FBVDtB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LENBQWlCZSxjQUFqQixDQUFnQyxFQUFoQyxFQUFvQyxFQUFwQztBQUNELE9BSEMsQ0FBRjtBQUlBbkIsTUFBQUEsRUFBRSxDQUFDLGtEQUFELEVBQXFELFlBQU07QUFDM0RDLFFBQUFBLENBQUMsQ0FBQ00sUUFBRixHQUFhSyxXQUFiLENBQXlCO0FBQUV4QixVQUFBQSxLQUFLLEVBQUUsQ0FBVDtBQUFZQyxVQUFBQSxHQUFHLEVBQUUsQ0FBakI7QUFBb0JDLFVBQUFBLElBQUksRUFBRTtBQUExQixTQUF6QjtBQUNBWSxRQUFBQSxNQUFNLENBQUNFLFFBQUQsQ0FBTixDQUFpQlUsR0FBakIsQ0FBcUJDLFVBQXJCO0FBQ0QsT0FIQyxDQUFGO0FBSUQsS0FUTyxDQUFSO0FBVUQsR0E5R08sQ0FBUjtBQStHRCxDQXZITyxDQUFSIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVG9rZW5pemVyIH0gZnJvbSAnLi4vaW5kZXgnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHNoYWxsb3cgfSBmcm9tICdlbnp5bWUnO1xuaW1wb3J0IHsgd29yZHMsIHNlbnRlbmNlcywgcGFyYWdyYXBocyB9IGZyb20gJy4uL2J1aWxkZXInO1xuXG5jb25zdCB0b2tlbnMgPSAoKSA9PiBbXG4gIHtcbiAgICBzdGFydDogMCxcbiAgICBlbmQ6IDEsXG4gICAgdGV4dDogJ2YnLFxuICB9LFxuXTtcblxuY29uc3QgZWZmID0gKCkgPT4gdG9rZW5zKClbMF07XG5cbmplc3QubW9jaygnLi4vYnVpbGRlcicsICgpID0+ICh7XG4gIHdvcmRzOiBqZXN0LmZuKCkubW9ja1JldHVyblZhbHVlKFt7IHN0YXJ0OiAwLCBlbmQ6IDMsIHRleHQ6ICdmb28nIH1dKSxcbiAgc2VudGVuY2VzOiBqZXN0LmZuKCkubW9ja1JldHVyblZhbHVlKFt7IHN0YXJ0OiAwLCBlbmQ6IDMsIHRleHQ6ICdmb28nIH1dKSxcbiAgcGFyYWdyYXBoczogamVzdC5mbigpLm1vY2tSZXR1cm5WYWx1ZShbeyBzdGFydDogMCwgZW5kOiAzLCB0ZXh0OiAnZm9vJyB9XSksXG59KSk7XG5kZXNjcmliZSgndG9rZW5pemVyJywgKCkgPT4ge1xuICBkZXNjcmliZSgnc25hcHNob3QnLCAoKSA9PiB7XG4gICAgaXQoJ3JlbmRlcnMnLCAoKSA9PiB7XG4gICAgICBjb25zdCB3ID0gc2hhbGxvdyg8VG9rZW5pemVyIHRleHQ9XCJmb29cIiBjbGFzc2VzPXt7fX0gb25DaGFuZ2U9e2plc3QuZm4oKX0gdG9rZW5zPXt0b2tlbnMoKX0gLz4pO1xuICAgICAgZXhwZWN0KHcpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnbG9naWMnLCAoKSA9PiB7XG4gICAgbGV0IHc7XG4gICAgbGV0IG9uQ2hhbmdlO1xuXG4gICAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgICBvbkNoYW5nZSA9IGplc3QuZm4oKTtcbiAgICAgIHcgPSBzaGFsbG93KDxUb2tlbml6ZXIgdGV4dD1cImZvb1wiIGNsYXNzZXM9e3t9fSBvbkNoYW5nZT17b25DaGFuZ2V9IHRva2Vucz17dG9rZW5zKCl9IC8+KTtcbiAgICB9KTtcbiAgICBkZXNjcmliZSgndG9rZW5JbmRleCcsICgpID0+IHtcbiAgICAgIGl0KCdyZXR1cm5zIDAnLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdy5pbnN0YW5jZSgpLnRva2VuSW5kZXgoZWZmKCkpO1xuICAgICAgICBleHBlY3QoaW5kZXgpLnRvRXF1YWwoMCk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ3JldHVybnMgLTEnLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdy5pbnN0YW5jZSgpLnRva2VuSW5kZXgoeyBzdGFydDogMiwgZW5kOiAzLCB0ZXh0OiAnZicgfSk7XG4gICAgICAgIGV4cGVjdChpbmRleCkudG9FcXVhbCgtMSk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCd0b2tlbkNsaWNrJywgKCkgPT4ge1xuICAgICAgbGV0IGk7XG5cbiAgICAgIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgICAgICBpID0gdy5pbnN0YW5jZSgpO1xuICAgICAgICBpLnNldENvcnJlY3QgPSBqZXN0LmZuKCk7XG4gICAgICAgIGkucmVtb3ZlVG9rZW4gPSBqZXN0LmZuKCk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ2NhbGxzIHJlbW92ZVRva2VuIGlmIHNldENvcnJlY3RNb2RlID09IGZhbHNlJywgKCkgPT4ge1xuICAgICAgICBpLnRva2VuQ2xpY2soZWZmKCkpO1xuICAgICAgICBleHBlY3QoaS5zZXRDb3JyZWN0KS5ub3QudG9CZUNhbGxlZCgpO1xuICAgICAgICBleHBlY3QoaS5yZW1vdmVUb2tlbikudG9CZUNhbGxlZCgpO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdjYWxscyBzZXRDb3JyZWN0IGlmIHNldENvcnJlY3RNb2RlID09IHRydWUnLCAoKSA9PiB7XG4gICAgICAgIGkuc2V0U3RhdGUoeyBzZXRDb3JyZWN0TW9kZTogdHJ1ZSB9KTtcbiAgICAgICAgaS50b2tlbkNsaWNrKGVmZigpKTtcbiAgICAgICAgZXhwZWN0KGkuc2V0Q29ycmVjdCkudG9CZUNhbGxlZCgpO1xuICAgICAgICBleHBlY3QoaS5yZW1vdmVUb2tlbikubm90LnRvQmVDYWxsZWQoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ3NlbGVjdFRva2VuJywgKCkgPT4ge1xuICAgICAgaXQoJ2NhbGxzIG9uQ2hhbmdlJywgKCkgPT4ge1xuICAgICAgICB3Lmluc3RhbmNlKCkuc2VsZWN0VG9rZW4oeyBzdGFydDogMSwgZW5kOiAzLCB0ZXh0OiAnb28nIH0sIFt7IHN0YXJ0OiAwLCBlbmQ6IDEsIHRleHQ6ICdmJyB9XSk7XG4gICAgICAgIGV4cGVjdChvbkNoYW5nZSkudG9CZUNhbGxlZFdpdGgoW3sgc3RhcnQ6IDEsIGVuZDogMywgdGV4dDogJ29vJyB9XSwgJycpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgnYnVpbGRQYXJhZ3JhcGhzVG9rZW5zJywgKCkgPT4ge1xuICAgICAgaXQoJ2NhbGxzIHBhcmFncmFwaHMnLCAoKSA9PiB7XG4gICAgICAgIHcuaW5zdGFuY2UoKS5idWlsZFRva2VucygncGFyYWdyYXBoJywgcGFyYWdyYXBocyk7XG4gICAgICAgIGV4cGVjdChwYXJhZ3JhcGhzKS50b0JlQ2FsbGVkV2l0aCgnZm9vJyk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCdidWlsZFNlbnRlbmNlVG9rZW5zJywgKCkgPT4ge1xuICAgICAgaXQoJ2NhbGxzIHNlbnRlbmNlcycsICgpID0+IHtcbiAgICAgICAgdy5pbnN0YW5jZSgpLmJ1aWxkVG9rZW5zKCdzZW50ZW5jZScsIHNlbnRlbmNlcyk7XG4gICAgICAgIGV4cGVjdChzZW50ZW5jZXMpLnRvQmVDYWxsZWRXaXRoKCdmb28nKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ2J1aWxkV29yZFRva2VucycsICgpID0+IHtcbiAgICAgIGl0KCdjYWxscyB3b3JkcycsICgpID0+IHtcbiAgICAgICAgdy5pbnN0YW5jZSgpLmJ1aWxkVG9rZW5zKCd3b3JkJywgd29yZHMpO1xuICAgICAgICBleHBlY3Qod29yZHMpLnRvQmVDYWxsZWRXaXRoKCdmb28nKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ2NsZWFyJywgKCkgPT4ge1xuICAgICAgaXQoJ2NhbGxzIG9uQ2hhbmdlIHdpdGggYW4gZW1wdHkgYXJyYXknLCAoKSA9PiB7XG4gICAgICAgIHcuaW5zdGFuY2UoKS5jbGVhcigpO1xuICAgICAgICBleHBlY3Qob25DaGFuZ2UpLnRvQmVDYWxsZWRXaXRoKFtdLCAnJyk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCd0b2dnbGVDb3JyZWN0TW9kZScsICgpID0+IHtcbiAgICAgIGl0KCdzZXQgc3RhdGUnLCAoKSA9PiB7XG4gICAgICAgIHcuc2V0U3RhdGUoeyBzZXRDb3JyZWN0TW9kZTogdHJ1ZSB9KTtcbiAgICAgICAgdy5pbnN0YW5jZSgpLnRvZ2dsZUNvcnJlY3RNb2RlKCk7XG4gICAgICAgIGV4cGVjdCh3LnN0YXRlKCdzZXRDb3JyZWN0TW9kZScpKS50b0VxdWFsKGZhbHNlKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ3NldENvcnJlY3QnLCAoKSA9PiB7XG4gICAgICBpdCgnY2FsbHMgb25DaGFuZ2UnLCAoKSA9PiB7XG4gICAgICAgIHcuaW5zdGFuY2UoKS5zZXRDb3JyZWN0KHsgc3RhcnQ6IDAsIGVuZDogMSwgdGV4dDogJ2YnIH0pO1xuICAgICAgICBleHBlY3Qob25DaGFuZ2UpLnRvQmVDYWxsZWRXaXRoKFt7IHN0YXJ0OiAwLCBlbmQ6IDEsIHRleHQ6ICdmJywgY29ycmVjdDogdHJ1ZSB9XSwgJycpO1xuICAgICAgfSk7XG4gICAgICBpdCgnY2FsbHMgb25DaGFuZ2Ugdy8gY29ycmVjdDogZmFsc2UnLCAoKSA9PiB7XG4gICAgICAgIHcuc2V0UHJvcHMoe1xuICAgICAgICAgIHRva2VuczogW3sgc3RhcnQ6IDAsIGVuZDogMSwgdGV4dDogJ2YnLCBjb3JyZWN0OiB0cnVlIH1dLFxuICAgICAgICB9KTtcbiAgICAgICAgdy5pbnN0YW5jZSgpLnNldENvcnJlY3QoeyBzdGFydDogMCwgZW5kOiAxLCB0ZXh0OiAnZicgfSk7XG4gICAgICAgIGV4cGVjdChvbkNoYW5nZSkudG9CZUNhbGxlZFdpdGgoW3sgc3RhcnQ6IDAsIGVuZDogMSwgdGV4dDogJ2YnLCBjb3JyZWN0OiBmYWxzZSB9XSwgJycpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgncmVtb3ZlVG9rZW4nLCAoKSA9PiB7XG4gICAgICBpdCgnY2FsbHMgb25DaGFuZ2UnLCAoKSA9PiB7XG4gICAgICAgIHcuaW5zdGFuY2UoKS5yZW1vdmVUb2tlbih7IHN0YXJ0OiAwLCBlbmQ6IDEsIHRleHQ6ICdmJyB9KTtcbiAgICAgICAgZXhwZWN0KG9uQ2hhbmdlKS50b0JlQ2FsbGVkV2l0aChbXSwgJycpO1xuICAgICAgfSk7XG4gICAgICBpdCgnZG9lcyBub3QgY2FsbCBvbkNoYW5nZSBpZiBpdCBjYW50IGZpbmQgdGhlIHRva2VuJywgKCkgPT4ge1xuICAgICAgICB3Lmluc3RhbmNlKCkucmVtb3ZlVG9rZW4oeyBzdGFydDogMiwgZW5kOiAzLCB0ZXh0OiAnYScgfSk7XG4gICAgICAgIGV4cGVjdChvbkNoYW5nZSkubm90LnRvQmVDYWxsZWQoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _selectionUtils = require("../selection-utils");
|
|
4
|
-
|
|
5
|
-
describe('selection-utils', function () {
|
|
6
|
-
var selection;
|
|
7
|
-
var range;
|
|
8
|
-
beforeEach(function () {
|
|
9
|
-
selection = {
|
|
10
|
-
removeAllRanges: jest.fn(),
|
|
11
|
-
addRange: jest.fn(),
|
|
12
|
-
getRangeAt: jest.fn().mockReturnValue(range)
|
|
13
|
-
};
|
|
14
|
-
global.document.getSelection = jest.fn().mockReturnValue(selection);
|
|
15
|
-
global.document.createRange = jest.fn();
|
|
16
|
-
});
|
|
17
|
-
describe('clearSelection', function () {
|
|
18
|
-
it('calls removeAllRanges', function () {
|
|
19
|
-
(0, _selectionUtils.clearSelection)();
|
|
20
|
-
expect(selection.removeAllRanges).toBeCalled();
|
|
21
|
-
});
|
|
22
|
-
});
|
|
23
|
-
xdescribe('getCaretCharacterOffsetWithin', function () {
|
|
24
|
-
it('TODO', function () {});
|
|
25
|
-
});
|
|
26
|
-
});
|
|
27
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90b2tlbml6ZXIvX190ZXN0c19fL3NlbGVjdGlvbi11dGlscy50ZXN0LmpzIl0sIm5hbWVzIjpbImRlc2NyaWJlIiwic2VsZWN0aW9uIiwicmFuZ2UiLCJiZWZvcmVFYWNoIiwicmVtb3ZlQWxsUmFuZ2VzIiwiamVzdCIsImZuIiwiYWRkUmFuZ2UiLCJnZXRSYW5nZUF0IiwibW9ja1JldHVyblZhbHVlIiwiZ2xvYmFsIiwiZG9jdW1lbnQiLCJnZXRTZWxlY3Rpb24iLCJjcmVhdGVSYW5nZSIsIml0IiwiZXhwZWN0IiwidG9CZUNhbGxlZCIsInhkZXNjcmliZSJdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7QUFFQUEsUUFBUSxDQUFDLGlCQUFELEVBQW9CLFlBQU07QUFDaEMsTUFBSUMsU0FBSjtBQUNBLE1BQUlDLEtBQUo7QUFDQUMsRUFBQUEsVUFBVSxDQUFDLFlBQU07QUFDZkYsSUFBQUEsU0FBUyxHQUFHO0FBQ1ZHLE1BQUFBLGVBQWUsRUFBRUMsSUFBSSxDQUFDQyxFQUFMLEVBRFA7QUFFVkMsTUFBQUEsUUFBUSxFQUFFRixJQUFJLENBQUNDLEVBQUwsRUFGQTtBQUdWRSxNQUFBQSxVQUFVLEVBQUVILElBQUksQ0FBQ0MsRUFBTCxHQUFVRyxlQUFWLENBQTBCUCxLQUExQjtBQUhGLEtBQVo7QUFLQVEsSUFBQUEsTUFBTSxDQUFDQyxRQUFQLENBQWdCQyxZQUFoQixHQUErQlAsSUFBSSxDQUFDQyxFQUFMLEdBQVVHLGVBQVYsQ0FBMEJSLFNBQTFCLENBQS9CO0FBQ0FTLElBQUFBLE1BQU0sQ0FBQ0MsUUFBUCxDQUFnQkUsV0FBaEIsR0FBOEJSLElBQUksQ0FBQ0MsRUFBTCxFQUE5QjtBQUNELEdBUlMsQ0FBVjtBQVVBTixFQUFBQSxRQUFRLENBQUMsZ0JBQUQsRUFBbUIsWUFBTTtBQUMvQmMsSUFBQUEsRUFBRSxDQUFDLHVCQUFELEVBQTBCLFlBQU07QUFDaEM7QUFDQUMsTUFBQUEsTUFBTSxDQUFDZCxTQUFTLENBQUNHLGVBQVgsQ0FBTixDQUFrQ1ksVUFBbEM7QUFDRCxLQUhDLENBQUY7QUFJRCxHQUxPLENBQVI7QUFPQUMsRUFBQUEsU0FBUyxDQUFDLCtCQUFELEVBQWtDLFlBQU07QUFDL0NILElBQUFBLEVBQUUsQ0FBQyxNQUFELEVBQVMsWUFBTSxDQUFFLENBQWpCLENBQUY7QUFDRCxHQUZRLENBQVQ7QUFHRCxDQXZCTyxDQUFSIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY2xlYXJTZWxlY3Rpb24sIGdldENhcmV0Q2hhcmFjdGVyT2Zmc2V0V2l0aGluIH0gZnJvbSAnLi4vc2VsZWN0aW9uLXV0aWxzJztcblxuZGVzY3JpYmUoJ3NlbGVjdGlvbi11dGlscycsICgpID0+IHtcbiAgbGV0IHNlbGVjdGlvbjtcbiAgbGV0IHJhbmdlO1xuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBzZWxlY3Rpb24gPSB7XG4gICAgICByZW1vdmVBbGxSYW5nZXM6IGplc3QuZm4oKSxcbiAgICAgIGFkZFJhbmdlOiBqZXN0LmZuKCksXG4gICAgICBnZXRSYW5nZUF0OiBqZXN0LmZuKCkubW9ja1JldHVyblZhbHVlKHJhbmdlKSxcbiAgICB9O1xuICAgIGdsb2JhbC5kb2N1bWVudC5nZXRTZWxlY3Rpb24gPSBqZXN0LmZuKCkubW9ja1JldHVyblZhbHVlKHNlbGVjdGlvbik7XG4gICAgZ2xvYmFsLmRvY3VtZW50LmNyZWF0ZVJhbmdlID0gamVzdC5mbigpO1xuICB9KTtcblxuICBkZXNjcmliZSgnY2xlYXJTZWxlY3Rpb24nLCAoKSA9PiB7XG4gICAgaXQoJ2NhbGxzIHJlbW92ZUFsbFJhbmdlcycsICgpID0+IHtcbiAgICAgIGNsZWFyU2VsZWN0aW9uKCk7XG4gICAgICBleHBlY3Qoc2VsZWN0aW9uLnJlbW92ZUFsbFJhbmdlcykudG9CZUNhbGxlZCgpO1xuICAgIH0pO1xuICB9KTtcblxuICB4ZGVzY3JpYmUoJ2dldENhcmV0Q2hhcmFjdGVyT2Zmc2V0V2l0aGluJywgKCkgPT4ge1xuICAgIGl0KCdUT0RPJywgKCkgPT4ge30pO1xuICB9KTtcbn0pO1xuIl19
|
|
@@ -1,154 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
var _enzyme = require("enzyme");
|
|
6
|
-
|
|
7
|
-
var _react = _interopRequireDefault(require("react"));
|
|
8
|
-
|
|
9
|
-
var _tokenText = _interopRequireDefault(require("../token-text"));
|
|
10
|
-
|
|
11
|
-
var _builder = require("../builder");
|
|
12
|
-
|
|
13
|
-
var _selectionUtils = require("../selection-utils");
|
|
14
|
-
|
|
15
|
-
jest.mock('../selection-utils', function () {
|
|
16
|
-
return {
|
|
17
|
-
clearSelection: jest.fn(),
|
|
18
|
-
getCaretCharacterOffsetWithin: jest.fn().mockReturnValue(10)
|
|
19
|
-
};
|
|
20
|
-
});
|
|
21
|
-
jest.mock('../builder', function () {
|
|
22
|
-
return {
|
|
23
|
-
intersection: jest.fn().mockReturnValue({
|
|
24
|
-
hasOverlap: jest.fn().mockReturnValue(false),
|
|
25
|
-
surroundedTokens: jest.fn().mockReturnValue([])
|
|
26
|
-
}),
|
|
27
|
-
normalize: jest.fn().mockReturnValue([{
|
|
28
|
-
text: "lorem\nfoo bar",
|
|
29
|
-
start: 0,
|
|
30
|
-
end: 13,
|
|
31
|
-
predefined: true
|
|
32
|
-
}])
|
|
33
|
-
};
|
|
34
|
-
});
|
|
35
|
-
|
|
36
|
-
var tokens = function tokens() {
|
|
37
|
-
return [{
|
|
38
|
-
start: 0,
|
|
39
|
-
end: 7,
|
|
40
|
-
text: "lorem\nfoo bar"
|
|
41
|
-
}];
|
|
42
|
-
};
|
|
43
|
-
|
|
44
|
-
var mkEvent = function mkEvent() {
|
|
45
|
-
return {
|
|
46
|
-
preventDefault: jest.fn()
|
|
47
|
-
};
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
describe('token-text', function () {
|
|
51
|
-
describe('snapshot', function () {
|
|
52
|
-
it('renders', function () {
|
|
53
|
-
var w = (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_tokenText["default"], {
|
|
54
|
-
onTokenClick: jest.fn(),
|
|
55
|
-
onSelectToken: jest.fn(),
|
|
56
|
-
text: "lorem\nfoo bar",
|
|
57
|
-
tokens: tokens()
|
|
58
|
-
}));
|
|
59
|
-
expect(w).toMatchSnapshot();
|
|
60
|
-
});
|
|
61
|
-
});
|
|
62
|
-
describe('logic', function () {
|
|
63
|
-
var w;
|
|
64
|
-
var onSelectToken;
|
|
65
|
-
var onTokenClick;
|
|
66
|
-
beforeEach(function () {
|
|
67
|
-
global.window.getSelection = jest.fn().mockReturnValue({
|
|
68
|
-
toString: function toString() {
|
|
69
|
-
return 'bar';
|
|
70
|
-
}
|
|
71
|
-
});
|
|
72
|
-
onSelectToken = jest.fn();
|
|
73
|
-
onTokenClick = jest.fn();
|
|
74
|
-
w = (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_tokenText["default"], {
|
|
75
|
-
onTokenClick: onTokenClick,
|
|
76
|
-
onSelectToken: onSelectToken,
|
|
77
|
-
text: "lorem\nfoo bar",
|
|
78
|
-
tokens: tokens()
|
|
79
|
-
}));
|
|
80
|
-
});
|
|
81
|
-
describe('mouseup', function () {
|
|
82
|
-
it('calls event.preventDefault', function () {
|
|
83
|
-
var event = mkEvent();
|
|
84
|
-
w.instance().onClick(event);
|
|
85
|
-
expect(event.preventDefault).toBeCalled();
|
|
86
|
-
});
|
|
87
|
-
it('calls getCaretCharacterOffsetWithin', function () {
|
|
88
|
-
var event = mkEvent();
|
|
89
|
-
w.instance().root = {};
|
|
90
|
-
w.instance().onClick(event);
|
|
91
|
-
expect(_selectionUtils.getCaretCharacterOffsetWithin).toBeCalledWith({});
|
|
92
|
-
});
|
|
93
|
-
it('calls clear selection if there is an overlap', function () {
|
|
94
|
-
_builder.intersection.mockReturnValue({
|
|
95
|
-
hasOverlap: true
|
|
96
|
-
});
|
|
97
|
-
|
|
98
|
-
var event = mkEvent();
|
|
99
|
-
w.instance().root = {};
|
|
100
|
-
w.instance().onClick(event);
|
|
101
|
-
expect(_selectionUtils.clearSelection).toBeCalled();
|
|
102
|
-
expect(onSelectToken).not.toBeCalled();
|
|
103
|
-
});
|
|
104
|
-
it('calls onSelectToken', function () {
|
|
105
|
-
var event = mkEvent();
|
|
106
|
-
|
|
107
|
-
_builder.intersection.mockReturnValue({
|
|
108
|
-
hasOverlap: false,
|
|
109
|
-
surroundedTokens: []
|
|
110
|
-
});
|
|
111
|
-
|
|
112
|
-
w.instance().root = {};
|
|
113
|
-
w.instance().onClick(event);
|
|
114
|
-
expect(onSelectToken).toBeCalledWith({
|
|
115
|
-
text: 'bar',
|
|
116
|
-
start: 10,
|
|
117
|
-
end: 13
|
|
118
|
-
}, []);
|
|
119
|
-
});
|
|
120
|
-
it('does not call onSelectToken for ["\n", " ", "\t"]', function () {
|
|
121
|
-
var event = mkEvent();
|
|
122
|
-
|
|
123
|
-
_builder.intersection.mockReturnValue({
|
|
124
|
-
hasOverlap: false,
|
|
125
|
-
surroundedTokens: []
|
|
126
|
-
});
|
|
127
|
-
|
|
128
|
-
w.instance().root = {};
|
|
129
|
-
global.window.getSelection = jest.fn().mockReturnValue({
|
|
130
|
-
toString: function toString() {
|
|
131
|
-
return '\n';
|
|
132
|
-
}
|
|
133
|
-
});
|
|
134
|
-
w.instance().onClick(event);
|
|
135
|
-
expect(onSelectToken).not.toBeCalled();
|
|
136
|
-
global.window.getSelection = jest.fn().mockReturnValue({
|
|
137
|
-
toString: function toString() {
|
|
138
|
-
return ' ';
|
|
139
|
-
}
|
|
140
|
-
});
|
|
141
|
-
w.instance().onClick(event);
|
|
142
|
-
expect(onSelectToken).not.toBeCalled();
|
|
143
|
-
global.window.getSelection = jest.fn().mockReturnValue({
|
|
144
|
-
toString: function toString() {
|
|
145
|
-
return '\t';
|
|
146
|
-
}
|
|
147
|
-
});
|
|
148
|
-
w.instance().onClick(event);
|
|
149
|
-
expect(onSelectToken).not.toBeCalled();
|
|
150
|
-
});
|
|
151
|
-
});
|
|
152
|
-
});
|
|
153
|
-
});
|
|
154
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90b2tlbml6ZXIvX190ZXN0c19fL3Rva2VuLXRleHQudGVzdC5qc3giXSwibmFtZXMiOlsiamVzdCIsIm1vY2siLCJjbGVhclNlbGVjdGlvbiIsImZuIiwiZ2V0Q2FyZXRDaGFyYWN0ZXJPZmZzZXRXaXRoaW4iLCJtb2NrUmV0dXJuVmFsdWUiLCJpbnRlcnNlY3Rpb24iLCJoYXNPdmVybGFwIiwic3Vycm91bmRlZFRva2VucyIsIm5vcm1hbGl6ZSIsInRleHQiLCJzdGFydCIsImVuZCIsInByZWRlZmluZWQiLCJ0b2tlbnMiLCJta0V2ZW50IiwicHJldmVudERlZmF1bHQiLCJkZXNjcmliZSIsIml0IiwidyIsImV4cGVjdCIsInRvTWF0Y2hTbmFwc2hvdCIsIm9uU2VsZWN0VG9rZW4iLCJvblRva2VuQ2xpY2siLCJiZWZvcmVFYWNoIiwiZ2xvYmFsIiwid2luZG93IiwiZ2V0U2VsZWN0aW9uIiwidG9TdHJpbmciLCJldmVudCIsImluc3RhbmNlIiwib25DbGljayIsInRvQmVDYWxsZWQiLCJyb290IiwidG9CZUNhbGxlZFdpdGgiLCJub3QiXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQUEsSUFBSSxDQUFDQyxJQUFMLENBQVUsb0JBQVYsRUFBZ0M7QUFBQSxTQUFPO0FBQ3JDQyxJQUFBQSxjQUFjLEVBQUVGLElBQUksQ0FBQ0csRUFBTCxFQURxQjtBQUVyQ0MsSUFBQUEsNkJBQTZCLEVBQUVKLElBQUksQ0FBQ0csRUFBTCxHQUFVRSxlQUFWLENBQTBCLEVBQTFCO0FBRk0sR0FBUDtBQUFBLENBQWhDO0FBS0FMLElBQUksQ0FBQ0MsSUFBTCxDQUFVLFlBQVYsRUFBd0I7QUFBQSxTQUFPO0FBQzdCSyxJQUFBQSxZQUFZLEVBQUVOLElBQUksQ0FBQ0csRUFBTCxHQUFVRSxlQUFWLENBQTBCO0FBQ3RDRSxNQUFBQSxVQUFVLEVBQUVQLElBQUksQ0FBQ0csRUFBTCxHQUFVRSxlQUFWLENBQTBC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LFFBQUFBLENBQUMsQ0FBQ1csUUFBRixHQUFhQyxPQUFiLENBQXFCRixLQUFyQjtBQUNBVCxRQUFBQSxNQUFNLENBQUNFLGFBQUQsQ0FBTixDQUFzQmEsR0FBdEIsQ0FBMEJILFVBQTFCO0FBQ0QsT0ExQkMsQ0FBRjtBQTJCRCxLQS9ETyxDQUFSO0FBZ0VELEdBdEZPLENBQVI7QUF1RkQsQ0FqR08sQ0FBUiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNoYWxsb3cgfSBmcm9tICdlbnp5bWUnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBUb2tlblRleHQgZnJvbSAnLi4vdG9rZW4tdGV4dCc7XG5pbXBvcnQgeyBpbnRlcnNlY3Rpb24gfSBmcm9tICcuLi9idWlsZGVyJztcbmltcG9ydCB7IGNsZWFyU2VsZWN0aW9uLCBnZXRDYXJldENoYXJhY3Rlck9mZnNldFdpdGhpbiB9IGZyb20gJy4uL3NlbGVjdGlvbi11dGlscyc7XG5cbmplc3QubW9jaygnLi4vc2VsZWN0aW9uLXV0aWxzJywgKCkgPT4gKHtcbiAgY2xlYXJTZWxlY3Rpb246IGplc3QuZm4oKSxcbiAgZ2V0Q2FyZXRDaGFyYWN0ZXJPZmZzZXRXaXRoaW46IGplc3QuZm4oKS5tb2NrUmV0dXJuVmFsdWUoMTApLFxufSkpO1xuXG5qZXN0Lm1vY2soJy4uL2J1aWxkZXInLCAoKSA9PiAoe1xuICBpbnRlcnNlY3Rpb246IGplc3QuZm4oKS5tb2NrUmV0dXJuVmFsdWUoe1xuICAgIGhhc092ZXJsYXA6IGplc3QuZm4oKS5tb2NrUmV0dXJuVmFsdWUoZmFsc2UpLFxuICAgIHN1cnJvdW5kZWRUb2tlbnM6IGplc3QuZm4oKS5tb2NrUmV0dXJuVmFsdWUoW10pLFxuICB9KSxcbiAgbm9ybWFsaXplOiBqZXN0LmZuKCkubW9ja1JldHVyblZhbHVlKFtcbiAgICB7XG4gICAgICB0ZXh0OiBgbG9yZW1cXG5mb28gYmFyYCxcbiAgICAgIHN0YXJ0OiAwLFxuICAgICAgZW5kOiAxMyxcbiAgICAgIHByZWRlZmluZWQ6IHRydWUsXG4gICAgfSxcbiAgXSksXG59KSk7XG5cbmNvbnN0IHRva2VucyA9ICgpID0+IFtcbiAge1xuICAgIHN0YXJ0OiAwLFxuICAgIGVuZDogNyxcbiAgICB0ZXh0OiBgbG9yZW1cXG5mb28gYmFyYCxcbiAgfSxcbl07XG5cbmNvbnN0IG1rRXZlbnQgPSAoKSA9PiAoe1xuICBwcmV2ZW50RGVmYXVsdDogamVzdC5mbigpLFxufSk7XG5cbmRlc2NyaWJlKCd0b2tlbi10ZXh0JywgKCkgPT4ge1xuICBkZXNjcmliZSgnc25hcHNob3QnLCAoKSA9PiB7XG4gICAgaXQoJ3JlbmRlcnMnLCAoKSA9PiB7XG4gICAgICBjb25zdCB3ID0gc2hhbGxvdyhcbiAgICAgICAgPFRva2VuVGV4dCBvblRva2VuQ2xpY2s9e2plc3QuZm4oKX0gb25TZWxlY3RUb2tlbj17amVzdC5mbigpfSB0ZXh0PXtgbG9yZW1cXG5mb28gYmFyYH0gdG9rZW5zPXt0b2tlbnMoKX0gLz4sXG4gICAgICApO1xuICAgICAgZXhwZWN0KHcpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnbG9naWMnLCAoKSA9PiB7XG4gICAgbGV0IHc7XG4gICAgbGV0IG9uU2VsZWN0VG9rZW47XG4gICAgbGV0IG9uVG9rZW5DbGljaztcbiAgICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICAgIGdsb2JhbC53aW5kb3cuZ2V0U2VsZWN0aW9uID0gamVzdC5mbigpLm1vY2tSZXR1cm5WYWx1ZSh7XG4gICAgICAgIHRvU3RyaW5nOiAoKSA9PiAnYmFyJyxcbiAgICAgIH0pO1xuXG4gICAgICBvblNlbGVjdFRva2VuID0gamVzdC5mbigpO1xuICAgICAgb25Ub2tlbkNsaWNrID0gamVzdC5mbigpO1xuXG4gICAgICB3ID0gc2hhbGxvdyhcbiAgICAgICAgPFRva2VuVGV4dFxuICAgICAgICAgIG9uVG9rZW5DbGljaz17b25Ub2tlbkNsaWNrfVxuICAgICAgICAgIG9uU2VsZWN0VG9rZW49e29uU2VsZWN0VG9rZW59XG4gICAgICAgICAgdGV4dD17YGxvcmVtXFxuZm9vIGJhcmB9XG4gICAgICAgICAgdG9rZW5zPXt0b2tlbnMoKX1cbiAgICAgICAgLz4sXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ21vdXNldXAnLCAoKSA9PiB7XG4gICAgICBpdCgnY2FsbHMgZXZlbnQucHJldmVudERlZmF1bHQnLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGV2ZW50ID0gbWtFdmVudCgpO1xuICAgICAgICB3Lmluc3RhbmNlKCkub25DbGljayhldmVudCk7XG4gICAgICAgIGV4cGVjdChldmVudC5wcmV2ZW50RGVmYXVsdCkudG9CZUNhbGxlZCgpO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdjYWxscyBnZXRDYXJldENoYXJhY3Rlck9mZnNldFdpdGhpbicsICgpID0+IHtcbiAgICAgICAgY29uc3QgZXZlbnQgPSBta0V2ZW50KCk7XG4gICAgICAgIHcuaW5zdGFuY2UoKS5yb290ID0ge307XG4gICAgICAgIHcuaW5zdGFuY2UoKS5vbkNsaWNrKGV2ZW50KTtcbiAgICAgICAgZXhwZWN0KGdldENhcmV0Q2hhcmFjdGVyT2Zmc2V0V2l0aGluKS50b0JlQ2FsbGVkV2l0aCh7fSk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ2NhbGxzIGNsZWFyIHNlbGVjdGlvbiBpZiB0aGVyZSBpcyBhbiBvdmVybGFwJywgKCkgPT4ge1xuICAgICAgICBpbnRlcnNlY3Rpb24ubW9ja1JldHVyblZhbHVlKHtcbiAgICAgICAgICBoYXNPdmVybGFwOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgZXZlbnQgPSBta0V2ZW50KCk7XG4gICAgICAgIHcuaW5zdGFuY2UoKS5yb290ID0ge307XG4gICAgICAgIHcuaW5zdGFuY2UoKS5vbkNsaWNrKGV2ZW50KTtcbiAgICAgICAgZXhwZWN0KGNsZWFyU2VsZWN0aW9uKS50b0JlQ2FsbGVkKCk7XG4gICAgICAgIGV4cGVjdChvblNlbGVjdFRva2VuKS5ub3QudG9CZUNhbGxlZCgpO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdjYWxscyBvblNlbGVjdFRva2VuJywgKCkgPT4ge1xuICAgICAgICBjb25zdCBldmVudCA9IG1rRXZlbnQoKTtcbiAgICAgICAgaW50ZXJzZWN0aW9uLm1vY2tSZXR1cm5WYWx1ZSh7XG4gICAgICAgICAgaGFzT3ZlcmxhcDogZmFsc2UsXG4gICAgICAgICAgc3Vycm91bmRlZFRva2VuczogW10sXG4gICAgICAgIH0pO1xuICAgICAgICB3Lmluc3RhbmNlKCkucm9vdCA9IHt9O1xuICAgICAgICB3Lmluc3RhbmNlKCkub25DbGljayhldmVudCk7XG4gICAgICAgIGV4cGVjdChvblNlbGVjdFRva2VuKS50b0JlQ2FsbGVkV2l0aCh7IHRleHQ6ICdiYXInLCBzdGFydDogMTAsIGVuZDogMTMgfSwgW10pO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdkb2VzIG5vdCBjYWxsIG9uU2VsZWN0VG9rZW4gZm9yIFtcIlxcblwiLCBcIiBcIiwgXCJcXHRcIl0nLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGV2ZW50ID0gbWtFdmVudCgpO1xuXG4gICAgICAgIGludGVyc2VjdGlvbi5tb2NrUmV0dXJuVmFsdWUoe1xuICAgICAgICAgIGhhc092ZXJsYXA6IGZhbHNlLFxuICAgICAgICAgIHN1cnJvdW5kZWRUb2tlbnM6IFtdLFxuICAgICAgICB9KTtcbiAgICAgICAgdy5pbnN0YW5jZSgpLnJvb3QgPSB7fTtcblxuICAgICAgICBnbG9iYWwud2luZG93LmdldFNlbGVjdGlvbiA9IGplc3QuZm4oKS5tb2NrUmV0dXJuVmFsdWUoe1xuICAgICAgICAgIHRvU3RyaW5nOiAoKSA9PiAnXFxuJyxcbiAgICAgICAgfSk7XG4gICAgICAgIHcuaW5zdGFuY2UoKS5vbkNsaWNrKGV2ZW50KTtcbiAgICAgICAgZXhwZWN0KG9uU2VsZWN0VG9rZW4pLm5vdC50b0JlQ2FsbGVkKCk7XG5cbiAgICAgICAgZ2xvYmFsLndpbmRvdy5nZXRTZWxlY3Rpb24gPSBqZXN0LmZuKCkubW9ja1JldHVyblZhbHVlKHtcbiAgICAgICAgICB0b1N0cmluZzogKCkgPT4gJyAnLFxuICAgICAgICB9KTtcbiAgICAgICAgdy5pbnN0YW5jZSgpLm9uQ2xpY2soZXZlbnQpO1xuICAgICAgICBleHBlY3Qob25TZWxlY3RUb2tlbikubm90LnRvQmVDYWxsZWQoKTtcblxuICAgICAgICBnbG9iYWwud2luZG93LmdldFNlbGVjdGlvbiA9IGplc3QuZm4oKS5tb2NrUmV0dXJuVmFsdWUoe1xuICAgICAgICAgIHRvU3RyaW5nOiAoKSA9PiAnXFx0JyxcbiAgICAgICAgfSk7XG4gICAgICAgIHcuaW5zdGFuY2UoKS5vbkNsaWNrKGV2ZW50KTtcbiAgICAgICAgZXhwZWN0KG9uU2VsZWN0VG9rZW4pLm5vdC50b0JlQ2FsbGVkKCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
|