@pie-lib/mask-markup 1.33.1 → 1.33.2-beta.2

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 (45) hide show
  1. package/lib/__tests__/drag-in-the-blank.test.js +71 -0
  2. package/lib/__tests__/index.test.js +50 -0
  3. package/lib/__tests__/mask.test.js +149 -0
  4. package/lib/__tests__/serialization.test.js +45 -0
  5. package/lib/__tests__/utils.js +17 -0
  6. package/lib/__tests__/with-mask.test.js +65 -0
  7. package/lib/choices/__tests__/index.test.js +85 -0
  8. package/lib/choices/choice.js +1 -1
  9. package/lib/choices/index.js +1 -1
  10. package/lib/componentize.js +1 -1
  11. package/lib/components/__tests__/blank.test.js +234 -0
  12. package/lib/components/__tests__/correct-input.test.js +63 -0
  13. package/lib/components/__tests__/dropdown.test.js +70 -0
  14. package/lib/components/__tests__/input.test.js +64 -0
  15. package/lib/components/blank.js +1 -1
  16. package/lib/components/correct-input.js +1 -1
  17. package/lib/components/dropdown.js +1 -1
  18. package/lib/components/input.js +1 -1
  19. package/lib/constructed-response.js +3 -3
  20. package/lib/customizable.js +1 -1
  21. package/lib/drag-in-the-blank.js +1 -1
  22. package/lib/index.js +1 -1
  23. package/lib/inline-dropdown.js +1 -1
  24. package/lib/mask.js +1 -1
  25. package/lib/serialization.js +1 -1
  26. package/lib/with-mask.js +1 -1
  27. package/package.json +5 -5
  28. package/src/constructed-response.jsx +1 -1
  29. package/LICENSE.md +0 -5
  30. package/NEXT.CHANGELOG.json +0 -1
  31. package/lib/choices/choice.js.map +0 -1
  32. package/lib/choices/index.js.map +0 -1
  33. package/lib/componentize.js.map +0 -1
  34. package/lib/components/blank.js.map +0 -1
  35. package/lib/components/correct-input.js.map +0 -1
  36. package/lib/components/dropdown.js.map +0 -1
  37. package/lib/components/input.js.map +0 -1
  38. package/lib/constructed-response.js.map +0 -1
  39. package/lib/customizable.js.map +0 -1
  40. package/lib/drag-in-the-blank.js.map +0 -1
  41. package/lib/index.js.map +0 -1
  42. package/lib/inline-dropdown.js.map +0 -1
  43. package/lib/mask.js.map +0 -1
  44. package/lib/serialization.js.map +0 -1
  45. package/lib/with-mask.js.map +0 -1
@@ -0,0 +1,234 @@
1
+ "use strict";
2
+
3
+ var _typeof = require("@babel/runtime/helpers/typeof");
4
+
5
+ var React = _interopRequireWildcard(require("react"));
6
+
7
+ var _enzyme = require("enzyme");
8
+
9
+ var _blank = require("../blank");
10
+
11
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
12
+
13
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
14
+
15
+ describe('Blank', function () {
16
+ var onChange = jest.fn();
17
+ var defaultProps = {
18
+ disabled: false,
19
+ value: 'Cow',
20
+ classes: {},
21
+ isOver: false,
22
+ dragItem: {},
23
+ correct: false,
24
+ onChange: onChange
25
+ };
26
+ var wrapper;
27
+ var instance;
28
+ beforeEach(function () {
29
+ wrapper = (0, _enzyme.shallow)( /*#__PURE__*/React.createElement(_blank.BlankContent, defaultProps));
30
+ instance = wrapper.instance();
31
+ });
32
+ describe('render', function () {
33
+ it('renders correctly with default props', function () {
34
+ expect(wrapper).toMatchSnapshot();
35
+ });
36
+ it('renders correctly with disabled prop as true', function () {
37
+ wrapper.setProps({
38
+ disabled: true
39
+ });
40
+ expect(wrapper).toMatchSnapshot();
41
+ });
42
+ it('renders correctly with draggedItem', function () {
43
+ wrapper.setProps({
44
+ dragItem: {
45
+ choice: {
46
+ value: 'Dog'
47
+ }
48
+ }
49
+ });
50
+ expect(wrapper).toMatchSnapshot();
51
+ });
52
+ it('renders correctly with draggedItem and isOver', function () {
53
+ wrapper.setProps({
54
+ dragItem: {
55
+ choice: {
56
+ value: 'Dog'
57
+ }
58
+ },
59
+ isOver: true
60
+ });
61
+ expect(wrapper).toMatchSnapshot();
62
+ });
63
+ });
64
+ describe('onDelete', function () {
65
+ it('should be undefined if disabled is true', function () {
66
+ wrapper.setProps({
67
+ disabled: true
68
+ });
69
+ expect(wrapper.props().onDelete).toEqual(undefined);
70
+ });
71
+ it('should be undefined if no value is set', function () {
72
+ wrapper.setProps({
73
+ disabled: false,
74
+ value: undefined
75
+ });
76
+ expect(wrapper.props().onDelete).toEqual(undefined);
77
+ });
78
+ });
79
+ describe('updateDimensions', function () {
80
+ var span;
81
+ var rootRef;
82
+
83
+ var setSpanDimensions = function setSpanDimensions(height, width) {
84
+ Object.defineProperty(span, 'offsetHeight', {
85
+ value: height,
86
+ configurable: true
87
+ });
88
+ Object.defineProperty(span, 'offsetWidth', {
89
+ value: width,
90
+ configurable: true
91
+ });
92
+ };
93
+
94
+ beforeEach(function () {
95
+ wrapper = (0, _enzyme.shallow)( /*#__PURE__*/React.createElement(_blank.BlankContent, defaultProps));
96
+ instance = wrapper.instance();
97
+ span = document.createElement('span');
98
+ rootRef = document.createElement('span');
99
+ instance.spanRef = span;
100
+ instance.rootRef = rootRef;
101
+ Object.defineProperty(span, 'offsetHeight', {
102
+ value: 0,
103
+ configurable: true
104
+ });
105
+ Object.defineProperty(span, 'offsetWidth', {
106
+ value: 0,
107
+ configurable: true
108
+ });
109
+ });
110
+ it('should update dimensions if span size exceeds the response area size', function () {
111
+ setSpanDimensions(50, 50);
112
+ instance.updateDimensions();
113
+ expect(instance.state).toEqual({
114
+ width: 74,
115
+ height: 74
116
+ });
117
+ });
118
+ it('should not update dimensions if span size does not exceed the response area size', function () {
119
+ wrapper.setProps({
120
+ emptyResponseAreaHeight: 50,
121
+ emptyResponseAreaWidth: 50
122
+ });
123
+ setSpanDimensions(30, 30);
124
+ instance.updateDimensions();
125
+ expect(instance.state).toEqual({
126
+ width: 54,
127
+ // with padding it does exceed (30 + 24 > 50) so it's updating
128
+ height: 54 // with padding it does exceed (30 + 24 > 50) so it's updating
129
+
130
+ });
131
+ });
132
+ it('should handle non-numeric emptyResponseAreaHeight and emptyResponseAreaWidth', function () {
133
+ wrapper.setProps({
134
+ emptyResponseAreaHeight: 'non-numeric',
135
+ emptyResponseAreaWidth: 'non-numeric'
136
+ });
137
+ setSpanDimensions(50, 50);
138
+ instance.updateDimensions();
139
+ expect(instance.state).toEqual({
140
+ width: 74,
141
+ height: 74
142
+ });
143
+ });
144
+ });
145
+ describe('getRootDimensions', function () {
146
+ it('should return state dimensions if set', function () {
147
+ instance.setState({
148
+ height: 50,
149
+ width: 50
150
+ });
151
+ var dimensions = instance.getRootDimensions();
152
+ expect(dimensions).toEqual({
153
+ height: 50,
154
+ width: 50,
155
+ minWidth: 90,
156
+ minHeight: 32
157
+ });
158
+ });
159
+ it('should return state height and props width if state width is not set', function () {
160
+ instance.setState({
161
+ height: 50,
162
+ width: 0
163
+ });
164
+ var dimensions = instance.getRootDimensions();
165
+ expect(dimensions).toEqual({
166
+ height: 50,
167
+ width: 0,
168
+ minWidth: 90,
169
+ minHeight: 32
170
+ });
171
+ });
172
+ it('should return props height and state width if state height is not set', function () {
173
+ instance.setState({
174
+ height: 0,
175
+ width: 50
176
+ });
177
+ var dimensions = instance.getRootDimensions();
178
+ expect(dimensions).toEqual({
179
+ height: 0,
180
+ width: 50,
181
+ minWidth: 90,
182
+ minHeight: 32
183
+ });
184
+ });
185
+ it('should return props dimensions if state dimensions are zero', function () {
186
+ instance.setState({
187
+ height: 0,
188
+ width: 0
189
+ });
190
+ wrapper.setProps({
191
+ emptyResponseAreaHeight: 60,
192
+ emptyResponseAreaWidth: 60
193
+ });
194
+ var dimensions = instance.getRootDimensions();
195
+ expect(dimensions).toEqual({
196
+ height: 60,
197
+ width: 60
198
+ });
199
+ });
200
+ it('should return state dimensions over props dimensions if both are set', function () {
201
+ instance.setState({
202
+ height: 50,
203
+ width: 50
204
+ });
205
+ wrapper.setProps({
206
+ emptyResponseAreaHeight: 60,
207
+ emptyResponseAreaWidth: 60
208
+ });
209
+ var dimensions = instance.getRootDimensions();
210
+ expect(dimensions).toEqual({
211
+ height: 50,
212
+ width: 50
213
+ });
214
+ });
215
+ it('should return minWidth and minHeight if state and props dimensions are zero or undefined', function () {
216
+ instance.setState({
217
+ height: 0,
218
+ width: 0
219
+ });
220
+ wrapper.setProps({
221
+ emptyResponseAreaHeight: undefined,
222
+ emptyResponseAreaWidth: undefined
223
+ });
224
+ var dimensions = instance.getRootDimensions();
225
+ expect(dimensions).toEqual({
226
+ height: 0,
227
+ width: 0,
228
+ minWidth: 90,
229
+ minHeight: 32
230
+ });
231
+ });
232
+ });
233
+ });
234
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL19fdGVzdHNfXy9ibGFuay50ZXN0LmpzIl0sIm5hbWVzIjpbImRlc2NyaWJlIiwib25DaGFuZ2UiLCJqZXN0IiwiZm4iLCJkZWZhdWx0UHJvcHMiLCJkaXNhYmxlZCIsInZhbHVlIiwiY2xhc3NlcyIsImlzT3ZlciIsImRyYWdJdGVtIiwiY29ycmVjdCIsIndyYXBwZXIiLCJpbnN0YW5jZSIsImJlZm9yZUVhY2giLCJpdCIsImV4cGVjdCIsInRvTWF0Y2hTbmFwc2hvdCIsInNldFByb3BzIiwiY2hvaWNlIiwicHJvcHMiLCJvbkRlbGV0ZSIsInRvRXF1YWwiLCJ1bmRlZmluZWQiLCJzcGFuIiwicm9vdFJlZiIsInNldFNwYW5EaW1lbnNpb25zIiwiaGVpZ2h0Iiwid2lkdGgiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImNvbmZpZ3VyYWJsZSIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsInNwYW5SZWYiLCJ1cGRhdGVEaW1lbnNpb25zIiwic3RhdGUiLCJlbXB0eVJlc3BvbnNlQXJlYUhlaWdodCIsImVtcHR5UmVzcG9uc2VBcmVhV2lkdGgiLCJzZXRTdGF0ZSIsImRpbWVuc2lvbnMiLCJnZXRSb290RGltZW5zaW9ucyIsIm1pbldpZHRoIiwibWluSGVpZ2h0Il0sIm1hcHBpbmdzIjoiOzs7O0FBQUE7O0FBQ0E7O0FBQ0E7Ozs7OztBQUVBQSxRQUFRLENBQUMsT0FBRCxFQUFVLFlBQU07QUFDdEIsTUFBTUMsUUFBUSxHQUFHQyxJQUFJLENBQUNDLEVBQUwsRUFBakI7QUFDQSxNQUFNQyxZQUFZLEdBQUc7QUFDbkJDLElBQUFBLFFBQVEsRUFBRSxLQURTO0FBRW5CQyxJQUFBQSxLQUFLLEVBQUUsS0FGWTtBQUduQkMsSUFBQUEsT0FBTyxFQUFFLEVBSFU7QUFJbkJDLElBQUFBLE1BQU0sRUFBRSxLQUpXO0FBS25CQyxJQUFBQSxRQUFRLEVBQUUsRUFMUztBQU1uQkMsSUFBQUEsT0FBTyxFQUFFLEtBTlU7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VUFBRCxDQUFOLENBQW1CbEIsT0FBbkIsQ0FBMkI7QUFDekJLLFFBQUFBLE1BQU0sRUFBRSxFQURpQjtBQUV6QkMsUUFBQUEsS0FBSyxFQUFFO0FBRmtCLE9BQTNCO0FBSUQsS0FWQyxDQUFGO0FBWUFiLElBQUFBLEVBQUUsQ0FBQywwRkFBRCxFQUE2RixZQUFNO0FBQ25HRixNQUFBQSxRQUFRLENBQUMwQixRQUFULENBQWtCO0FBQUVaLFFBQUFBLE1BQU0sRUFBRSxDQUFWO0FBQWFDLFFBQUFBLEtBQUssRUFBRTtBQUFwQixPQUFsQjtBQUNBaEIsTUFBQUEsT0FBTyxDQUFDTSxRQUFSLENBQWlCO0FBQUVtQixRQUFBQSx1QkFBdUIsRUFBRWQsU0FBM0I7QUFBc0NlLFFBQUFBLHNCQUFzQixFQUFFZjtBQUE5RCxPQUFqQjtBQUVBLFVBQU1pQixVQUFVLEdBQUczQixRQUFRLENBQUM0QixpQkFBVCxFQUFuQjtBQUVBekIsTUFBQUEsTUFBTSxDQUFDd0IsVUFBRCxDQUFOLENBQW1CbEIsT0FBbkIsQ0FBMkI7QUFDekJLLFFBQUFBLE1BQU0sRUFBRSxDQURpQjtBQUV6QkMsUUFBQUEsS0FBSyxFQUFFLENBRmtCO0FBR3pCYyxRQUFBQSxRQUFRLEVBQUUsRUFIZTtBQUl6QkMsUUFBQUEsU0FBUyxFQUFFO0FBSmMsT0FBM0I7QUFNRCxLQVpDLENBQUY7QUFhRCxHQTdFTyxDQUFSO0FBOEVELENBck1PLENBQVIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBzaGFsbG93IH0gZnJvbSAnZW56eW1lJztcbmltcG9ydCB7IEJsYW5rQ29udGVudCBhcyBCbGFuayB9IGZyb20gJy4uL2JsYW5rJztcblxuZGVzY3JpYmUoJ0JsYW5rJywgKCkgPT4ge1xuICBjb25zdCBvbkNoYW5nZSA9IGplc3QuZm4oKTtcbiAgY29uc3QgZGVmYXVsdFByb3BzID0ge1xuICAgIGRpc2FibGVkOiBmYWxzZSxcbiAgICB2YWx1ZTogJ0NvdycsXG4gICAgY2xhc3Nlczoge30sXG4gICAgaXNPdmVyOiBmYWxzZSxcbiAgICBkcmFnSXRlbToge30sXG4gICAgY29ycmVjdDogZmFsc2UsXG4gICAgb25DaGFuZ2UsXG4gIH07XG4gIGxldCB3cmFwcGVyO1xuICBsZXQgaW5zdGFuY2U7XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgd3JhcHBlciA9IHNoYWxsb3coPEJsYW5rIHsuLi5kZWZhdWx0UHJvcHN9IC8+KTtcbiAgICBpbnN0YW5jZSA9IHdyYXBwZXIuaW5zdGFuY2UoKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3JlbmRlcicsICgpID0+IHtcbiAgICBpdCgncmVuZGVycyBjb3JyZWN0bHkgd2l0aCBkZWZhdWx0IHByb3BzJywgKCkgPT4ge1xuICAgICAgZXhwZWN0KHdyYXBwZXIpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JlbmRlcnMgY29ycmVjdGx5IHdpdGggZGlzYWJsZWQgcHJvcCBhcyB0cnVlJywgKCkgPT4ge1xuICAgICAgd3JhcHBlci5zZXRQcm9wcyh7IGRpc2FibGVkOiB0cnVlIH0pO1xuICAgICAgZXhwZWN0KHdyYXBwZXIpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JlbmRlcnMgY29ycmVjdGx5IHdpdGggZHJhZ2dlZEl0ZW0nLCAoKSA9PiB7XG4gICAgICB3cmFwcGVyLnNldFByb3BzKHsgZHJhZ0l0ZW06IHsgY2hvaWNlOiB7IHZhbHVlOiAnRG9nJyB9IH0gfSk7XG4gICAgICBleHBlY3Qod3JhcHBlcikudG9NYXRjaFNuYXBzaG90KCk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVuZGVycyBjb3JyZWN0bHkgd2l0aCBkcmFnZ2VkSXRlbSBhbmQgaXNPdmVyJywgKCkgPT4ge1xuICAgICAgd3JhcHBlci5zZXRQcm9wcyh7IGRyYWdJdGVtOiB7IGNob2ljZTogeyB2YWx1ZTogJ0RvZycgfSB9LCBpc092ZXI6IHRydWUgfSk7XG4gICAgICBleHBlY3Qod3JhcHBlcikudG9NYXRjaFNuYXBzaG90KCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdvbkRlbGV0ZScsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIGJlIHVuZGVmaW5lZCBpZiBkaXNhYmxlZCBpcyB0cnVlJywgKCkgPT4ge1xuICAgICAgd3JhcHBlci5zZXRQcm9wcyh7IGRpc2FibGVkOiB0cnVlIH0pO1xuXG4gICAgICBleHBlY3Qod3JhcHBlci5wcm9wcygpLm9uRGVsZXRlKS50b0VxdWFsKHVuZGVmaW5lZCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGJlIHVuZGVmaW5lZCBpZiBubyB2YWx1ZSBpcyBzZXQnLCAoKSA9PiB7XG4gICAgICB3cmFwcGVyLnNldFByb3BzKHsgZGlzYWJsZWQ6IGZhbHNlLCB2YWx1ZTogdW5kZWZpbmVkIH0pO1xuXG4gICAgICBleHBlY3Qod3JhcHBlci5wcm9wcygpLm9uRGVsZXRlKS50b0VxdWFsKHVuZGVmaW5lZCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCd1cGRhdGVEaW1lbnNpb25zJywgKCkgPT4ge1xuICAgIGxldCBzcGFuO1xuICAgIGxldCByb290UmVmO1xuXG4gICAgY29uc3Qgc2V0U3BhbkRpbWVuc2lvbnMgPSAoaGVpZ2h0LCB3aWR0aCkgPT4ge1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHNwYW4sICdvZmZzZXRIZWlnaHQnLCB7IHZhbHVlOiBoZWlnaHQsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9KTtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzcGFuLCAnb2Zmc2V0V2lkdGgnLCB7IHZhbHVlOiB3aWR0aCwgY29uZmlndXJhYmxlOiB0cnVlIH0pO1xuICAgIH07XG5cbiAgICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICAgIHdyYXBwZXIgPSBzaGFsbG93KDxCbGFuayB7Li4uZGVmYXVsdFByb3BzfSAvPik7XG4gICAgICBpbnN0YW5jZSA9IHdyYXBwZXIuaW5zdGFuY2UoKTtcblxuICAgICAgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcbiAgICAgIHJvb3RSZWYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG5cbiAgICAgIGluc3RhbmNlLnNwYW5SZWYgPSBzcGFuO1xuICAgICAgaW5zdGFuY2Uucm9vdFJlZiA9IHJvb3RSZWY7XG5cbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzcGFuLCAnb2Zmc2V0SGVpZ2h0JywgeyB2YWx1ZTogMCwgY29uZmlndXJhYmxlOiB0cnVlIH0pO1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHNwYW4sICdvZmZzZXRXaWR0aCcsIHsgdmFsdWU6IDAsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgdXBkYXRlIGRpbWVuc2lvbnMgaWYgc3BhbiBzaXplIGV4Y2VlZHMgdGhlIHJlc3BvbnNlIGFyZWEgc2l6ZScsICgpID0+IHtcbiAgICAgIHNldFNwYW5EaW1lbnNpb25zKDUwLCA1MCk7XG5cbiAgICAgIGluc3RhbmNlLnVwZGF0ZURpbWVuc2lvbnMoKTtcblxuICAgICAgZXhwZWN0KGluc3RhbmNlLnN0YXRlKS50b0VxdWFsKHtcbiAgICAgICAgd2lkdGg6IDc0LFxuICAgICAgICBoZWlnaHQ6IDc0LFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIG5vdCB1cGRhdGUgZGltZW5zaW9ucyBpZiBzcGFuIHNpemUgZG9lcyBub3QgZXhjZWVkIHRoZSByZXNwb25zZSBhcmVhIHNpemUnLCAoKSA9PiB7XG4gICAgICB3cmFwcGVyLnNldFByb3BzKHtcbiAgICAgICAgZW1wdHlSZXNwb25zZUFyZWFIZWlnaHQ6IDUwLFxuICAgICAgICBlbXB0eVJlc3BvbnNlQXJlYVdpZHRoOiA1MCxcbiAgICAgIH0pO1xuICAgICAgc2V0U3BhbkRpbWVuc2lvbnMoMzAsIDMwKTtcblxuICAgICAgaW5zdGFuY2UudXBkYXRlRGltZW5zaW9ucygpO1xuXG4gICAgICBleHBlY3QoaW5zdGFuY2Uuc3RhdGUpLnRvRXF1YWwoe1xuICAgICAgICB3aWR0aDogNTQsIC8vIHdpdGggcGFkZGluZyBpdCBkb2VzIGV4Y2VlZCAoMzAgKyAyNCA+IDUwKSBzbyBpdCdzIHVwZGF0aW5nXG4gICAgICAgIGhlaWdodDogNTQsIC8vIHdpdGggcGFkZGluZyBpdCBkb2VzIGV4Y2VlZCAoMzAgKyAyNCA+IDUwKSBzbyBpdCdzIHVwZGF0aW5nXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgaGFuZGxlIG5vbi1udW1lcmljIGVtcHR5UmVzcG9uc2VBcmVhSGVpZ2h0IGFuZCBlbXB0eVJlc3BvbnNlQXJlYVdpZHRoJywgKCkgPT4ge1xuICAgICAgd3JhcHBlci5zZXRQcm9wcyh7XG4gICAgICAgIGVtcHR5UmVzcG9uc2VBcmVhSGVpZ2h0OiAnbm9uLW51bWVyaWMnLFxuICAgICAgICBlbXB0eVJlc3BvbnNlQXJlYVdpZHRoOiAnbm9uLW51bWVyaWMnLFxuICAgICAgfSk7XG4gICAgICBzZXRTcGFuRGltZW5zaW9ucyg1MCwgNTApO1xuXG4gICAgICBpbnN0YW5jZS51cGRhdGVEaW1lbnNpb25zKCk7XG5cbiAgICAgIGV4cGVjdChpbnN0YW5jZS5zdGF0ZSkudG9FcXVhbCh7XG4gICAgICAgIHdpZHRoOiA3NCxcbiAgICAgICAgaGVpZ2h0OiA3NCxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnZ2V0Um9vdERpbWVuc2lvbnMnLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCByZXR1cm4gc3RhdGUgZGltZW5zaW9ucyBpZiBzZXQnLCAoKSA9PiB7XG4gICAgICBpbnN0YW5jZS5zZXRTdGF0ZSh7IGhlaWdodDogNTAsIHdpZHRoOiA1MCB9KTtcblxuICAgICAgY29uc3QgZGltZW5zaW9ucyA9IGluc3RhbmNlLmdldFJvb3REaW1lbnNpb25zKCk7XG5cbiAgICAgIGV4cGVjdChkaW1lbnNpb25zKS50b0VxdWFsKHtcbiAgICAgICAgaGVpZ2h0OiA1MCxcbiAgICAgICAgd2lkdGg6IDUwLFxuICAgICAgICBtaW5XaWR0aDogOTAsXG4gICAgICAgIG1pbkhlaWdodDogMzIsXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmV0dXJuIHN0YXRlIGhlaWdodCBhbmQgcHJvcHMgd2lkdGggaWYgc3RhdGUgd2lkdGggaXMgbm90IHNldCcsICgpID0+IHtcbiAgICAgIGluc3RhbmNlLnNldFN0YXRlKHsgaGVpZ2h0OiA1MCwgd2lkdGg6IDAgfSk7XG5cbiAgICAgIGNvbnN0IGRpbWVuc2lvbnMgPSBpbnN0YW5jZS5nZXRSb290RGltZW5zaW9ucygpO1xuXG4gICAgICBleHBlY3QoZGltZW5zaW9ucykudG9FcXVhbCh7XG4gICAgICAgIGhlaWdodDogNTAsXG4gICAgICAgIHdpZHRoOiAwLFxuICAgICAgICBtaW5XaWR0aDogOTAsXG4gICAgICAgIG1pbkhlaWdodDogMzIsXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmV0dXJuIHByb3BzIGhlaWdodCBhbmQgc3RhdGUgd2lkdGggaWYgc3RhdGUgaGVpZ2h0IGlzIG5vdCBzZXQnLCAoKSA9PiB7XG4gICAgICBpbnN0YW5jZS5zZXRTdGF0ZSh7IGhlaWdodDogMCwgd2lkdGg6IDUwIH0pO1xuXG4gICAgICBjb25zdCBkaW1lbnNpb25zID0gaW5zdGFuY2UuZ2V0Um9vdERpbWVuc2lvbnMoKTtcblxuICAgICAgZXhwZWN0KGRpbWVuc2lvbnMpLnRvRXF1YWwoe1xuICAgICAgICBoZWlnaHQ6IDAsXG4gICAgICAgIHdpZHRoOiA1MCxcbiAgICAgICAgbWluV2lkdGg6IDkwLFxuICAgICAgICBtaW5IZWlnaHQ6IDMyLFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJldHVybiBwcm9wcyBkaW1lbnNpb25zIGlmIHN0YXRlIGRpbWVuc2lvbnMgYXJlIHplcm8nLCAoKSA9PiB7XG4gICAgICBpbnN0YW5jZS5zZXRTdGF0ZSh7IGhlaWdodDogMCwgd2lkdGg6IDAgfSk7XG4gICAgICB3cmFwcGVyLnNldFByb3BzKHsgZW1wdHlSZXNwb25zZUFyZWFIZWlnaHQ6IDYwLCBlbXB0eVJlc3BvbnNlQXJlYVdpZHRoOiA2MCB9KTtcblxuICAgICAgY29uc3QgZGltZW5zaW9ucyA9IGluc3RhbmNlLmdldFJvb3REaW1lbnNpb25zKCk7XG5cbiAgICAgIGV4cGVjdChkaW1lbnNpb25zKS50b0VxdWFsKHtcbiAgICAgICAgaGVpZ2h0OiA2MCxcbiAgICAgICAgd2lkdGg6IDYwLFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJldHVybiBzdGF0ZSBkaW1lbnNpb25zIG92ZXIgcHJvcHMgZGltZW5zaW9ucyBpZiBib3RoIGFyZSBzZXQnLCAoKSA9PiB7XG4gICAgICBpbnN0YW5jZS5zZXRTdGF0ZSh7IGhlaWdodDogNTAsIHdpZHRoOiA1MCB9KTtcbiAgICAgIHdyYXBwZXIuc2V0UHJvcHMoeyBlbXB0eVJlc3BvbnNlQXJlYUhlaWdodDogNjAsIGVtcHR5UmVzcG9uc2VBcmVhV2lkdGg6IDYwIH0pO1xuXG4gICAgICBjb25zdCBkaW1lbnNpb25zID0gaW5zdGFuY2UuZ2V0Um9vdERpbWVuc2lvbnMoKTtcblxuICAgICAgZXhwZWN0KGRpbWVuc2lvbnMpLnRvRXF1YWwoe1xuICAgICAgICBoZWlnaHQ6IDUwLFxuICAgICAgICB3aWR0aDogNTAsXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmV0dXJuIG1pbldpZHRoIGFuZCBtaW5IZWlnaHQgaWYgc3RhdGUgYW5kIHByb3BzIGRpbWVuc2lvbnMgYXJlIHplcm8gb3IgdW5kZWZpbmVkJywgKCkgPT4ge1xuICAgICAgaW5zdGFuY2Uuc2V0U3RhdGUoeyBoZWlnaHQ6IDAsIHdpZHRoOiAwIH0pO1xuICAgICAgd3JhcHBlci5zZXRQcm9wcyh7IGVtcHR5UmVzcG9uc2VBcmVhSGVpZ2h0OiB1bmRlZmluZWQsIGVtcHR5UmVzcG9uc2VBcmVhV2lkdGg6IHVuZGVmaW5lZCB9KTtcblxuICAgICAgY29uc3QgZGltZW5zaW9ucyA9IGluc3RhbmNlLmdldFJvb3REaW1lbnNpb25zKCk7XG5cbiAgICAgIGV4cGVjdChkaW1lbnNpb25zKS50b0VxdWFsKHtcbiAgICAgICAgaGVpZ2h0OiAwLFxuICAgICAgICB3aWR0aDogMCxcbiAgICAgICAgbWluV2lkdGg6IDkwLFxuICAgICAgICBtaW5IZWlnaHQ6IDMyLFxuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ var React = _interopRequireWildcard(require("react"));
8
+
9
+ var _enzyme = require("enzyme");
10
+
11
+ var _correctInput = _interopRequireDefault(require("../correct-input"));
12
+
13
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
14
+
15
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
16
+
17
+ describe('CorrectInput', function () {
18
+ var onChange = jest.fn();
19
+ var defaultProps = {
20
+ disabled: false,
21
+ correct: false,
22
+ variant: 'outlined',
23
+ value: 'Cow',
24
+ onChange: onChange
25
+ };
26
+ var wrapper;
27
+ beforeEach(function () {
28
+ wrapper = (0, _enzyme.shallow)( /*#__PURE__*/React.createElement(_correctInput["default"], defaultProps));
29
+ });
30
+ describe('render', function () {
31
+ it('renders correctly with default props', function () {
32
+ expect(wrapper).toMatchSnapshot();
33
+ });
34
+ it('renders correctly with disabled prop as true', function () {
35
+ wrapper.setProps({
36
+ disabled: true
37
+ });
38
+ expect(wrapper).toMatchSnapshot();
39
+ });
40
+ it('renders correctly with correct as false', function () {
41
+ wrapper.setProps({
42
+ correct: false
43
+ });
44
+ expect(wrapper).toMatchSnapshot();
45
+ });
46
+ });
47
+ describe('onChange', function () {
48
+ var event = function event(value) {
49
+ return {
50
+ target: {
51
+ value: value
52
+ }
53
+ };
54
+ };
55
+
56
+ it('should be called', function () {
57
+ var e = event('1');
58
+ wrapper.simulate('change', e);
59
+ expect(onChange).toBeCalledWith(e);
60
+ });
61
+ });
62
+ });
63
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL19fdGVzdHNfXy9jb3JyZWN0LWlucHV0LnRlc3QuanMiXSwibmFtZXMiOlsiZGVzY3JpYmUiLCJvbkNoYW5nZSIsImplc3QiLCJmbiIsImRlZmF1bHRQcm9wcyIsImRpc2FibGVkIiwiY29ycmVjdCIsInZhcmlhbnQiLCJ2YWx1ZSIsIndyYXBwZXIiLCJiZWZvcmVFYWNoIiwiaXQiLCJleHBlY3QiLCJ0b01hdGNoU25hcHNob3QiLCJzZXRQcm9wcyIsImV2ZW50IiwidGFyZ2V0IiwiZSIsInNpbXVsYXRlIiwidG9CZUNhbGxlZFdpdGgiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOztBQUNBOztBQUNBOzs7Ozs7QUFFQUEsUUFBUSxDQUFDLGNBQUQsRUFBaUIsWUFBTTtBQUM3QixNQUFNQyxRQUFRLEdBQUdDLElBQUksQ0FBQ0MsRUFBTCxFQUFqQjtBQUNBLE1BQU1DLFlBQVksR0FBRztBQUNuQkMsSUFBQUEsUUFBUSxFQUFFLEtBRFM7QUFFbkJDLElBQUFBLE9BQU8sRUFBRSxLQUZVO0FBR25CQyxJQUFBQSxPQUFPLEVBQUUsVUFIVTtBQUluQkMsSUFBQUEsS0FBSyxFQUFFLEtBSlk7QUFLbkJQLElBQUFBLFFBQVEsRUFBUkE7QUFMbUIsR0FBckI7QUFPQSxNQUFJUSxPQUFKO0FBRUFDLEVBQUFBLFVBQVUsQ0FBQyxZQUFNO0FBQ2ZELElBQUFBLE9BQU8sR0FBRyxtQ0FBUSxvQkFBQyx3QkFBRCxFQUFrQkwsWUFBbEIsQ0FBUixDQUFWO0FBQ0QsR0FGUyxDQUFWO0FBSUFKLEVBQUFBLFFBQVEsQ0FBQyxRQUFELEVBQVcsWUFBTTtBQUN2QlcsSUFBQUEsRUFBRSxDQUFDLHNDQUFELEVBQXlDLFlBQU07QUFDL0NDLE1BQUFBLE1BQU0sQ0FBQ0gsT0FBRCxDQUFOLENBQWdCSSxlQUFoQjtBQUNELEtBRkMsQ0FBRjtBQUlBRixJQUFBQSxFQUFFLENBQUMsOENBQUQsRUFBaUQsWUFBTTtBQUN2REYsTUFBQUEsT0FBTyxDQUFDSyxRQUFSLENBQWlCO0FBQUVULFFBQUFBLFFBQVEsRUFBRTtBQUFaLE9BQWpCO0FBQ0FPLE1BQUFBLE1BQU0sQ0FBQ0gsT0FBRCxDQUFOLENBQWdCSSxlQUFoQjtBQUNELEtBSEMsQ0FBRjtBQUtBRixJQUFBQSxFQUFFLENBQUMseUNBQUQsRUFBNEMsWUFBTTtBQUNsREYsTUFBQUEsT0FBTyxDQUFDSyxRQUFSLENBQWlCO0FBQUVSLFFBQUFBLE9BQU8sRUFBRTtBQUFYLE9BQWpCO0FBQ0FNLE1BQUFBLE1BQU0sQ0FBQ0gsT0FBRCxDQUFOLENBQWdCSSxlQUFoQjtBQUNELEtBSEMsQ0FBRjtBQUlELEdBZE8sQ0FBUjtBQWdCQWIsRUFBQUEsUUFBUSxDQUFDLFVBQUQsRUFBYSxZQUFNO0FBQ3pCLFFBQU1lLEtBQUssR0FBRyxTQUFSQSxLQUFRLENBQUNQLEtBQUQ7QUFBQSxhQUFZO0FBQ3hCUSxRQUFBQSxNQUFNLEVBQUU7QUFBRVIsVUFBQUEsS0FBSyxFQUFMQTtBQUFGO0FBRGdCLE9BQVo7QUFBQSxLQUFkOztBQUlBRyxJQUFBQSxFQUFFLENBQUMsa0JBQUQsRUFBcUIsWUFBTTtBQUMzQixVQUFNTSxDQUFDLEdBQUdGLEtBQUssQ0FBQyxHQUFELENBQWY7QUFFQU4sTUFBQUEsT0FBTyxDQUFDUyxRQUFSLENBQWlCLFFBQWpCLEVBQTJCRCxDQUEzQjtBQUVBTCxNQUFBQSxNQUFNLENBQUNYLFFBQUQsQ0FBTixDQUFpQmtCLGNBQWpCLENBQWdDRixDQUFoQztBQUNELEtBTkMsQ0FBRjtBQU9ELEdBWk8sQ0FBUjtBQWFELENBNUNPLENBQVIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBzaGFsbG93IH0gZnJvbSAnZW56eW1lJztcbmltcG9ydCBDb3JyZWN0SW5wdXQgZnJvbSAnLi4vY29ycmVjdC1pbnB1dCc7XG5cbmRlc2NyaWJlKCdDb3JyZWN0SW5wdXQnLCAoKSA9PiB7XG4gIGNvbnN0IG9uQ2hhbmdlID0gamVzdC5mbigpO1xuICBjb25zdCBkZWZhdWx0UHJvcHMgPSB7XG4gICAgZGlzYWJsZWQ6IGZhbHNlLFxuICAgIGNvcnJlY3Q6IGZhbHNlLFxuICAgIHZhcmlhbnQ6ICdvdXRsaW5lZCcsXG4gICAgdmFsdWU6ICdDb3cnLFxuICAgIG9uQ2hhbmdlLFxuICB9O1xuICBsZXQgd3JhcHBlcjtcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICB3cmFwcGVyID0gc2hhbGxvdyg8Q29ycmVjdElucHV0IHsuLi5kZWZhdWx0UHJvcHN9IC8+KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3JlbmRlcicsICgpID0+IHtcbiAgICBpdCgncmVuZGVycyBjb3JyZWN0bHkgd2l0aCBkZWZhdWx0IHByb3BzJywgKCkgPT4ge1xuICAgICAgZXhwZWN0KHdyYXBwZXIpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JlbmRlcnMgY29ycmVjdGx5IHdpdGggZGlzYWJsZWQgcHJvcCBhcyB0cnVlJywgKCkgPT4ge1xuICAgICAgd3JhcHBlci5zZXRQcm9wcyh7IGRpc2FibGVkOiB0cnVlIH0pO1xuICAgICAgZXhwZWN0KHdyYXBwZXIpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JlbmRlcnMgY29ycmVjdGx5IHdpdGggY29ycmVjdCBhcyBmYWxzZScsICgpID0+IHtcbiAgICAgIHdyYXBwZXIuc2V0UHJvcHMoeyBjb3JyZWN0OiBmYWxzZSB9KTtcbiAgICAgIGV4cGVjdCh3cmFwcGVyKS50b01hdGNoU25hcHNob3QoKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ29uQ2hhbmdlJywgKCkgPT4ge1xuICAgIGNvbnN0IGV2ZW50ID0gKHZhbHVlKSA9PiAoe1xuICAgICAgdGFyZ2V0OiB7IHZhbHVlIH0sXG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGJlIGNhbGxlZCcsICgpID0+IHtcbiAgICAgIGNvbnN0IGUgPSBldmVudCgnMScpO1xuXG4gICAgICB3cmFwcGVyLnNpbXVsYXRlKCdjaGFuZ2UnLCBlKTtcblxuICAgICAgZXhwZWN0KG9uQ2hhbmdlKS50b0JlQ2FsbGVkV2l0aChlKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ var React = _interopRequireWildcard(require("react"));
8
+
9
+ var _enzyme = require("enzyme");
10
+
11
+ var _utils = require("../../__tests__/utils");
12
+
13
+ var _dropdown = _interopRequireDefault(require("../dropdown"));
14
+
15
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
16
+
17
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
18
+
19
+ describe('Dropdown', function () {
20
+ var onChange = jest.fn();
21
+ var defaultProps = {
22
+ onChange: onChange,
23
+ id: '1',
24
+ correct: false,
25
+ disabled: false,
26
+ value: 'Jumped',
27
+ choices: [(0, _utils.choice)('Jumped'), (0, _utils.choice)('Laughed'), (0, _utils.choice)('Smiled')]
28
+ };
29
+ var wrapper;
30
+ beforeEach(function () {
31
+ wrapper = (0, _enzyme.shallow)( /*#__PURE__*/React.createElement(_dropdown["default"], defaultProps));
32
+ });
33
+ describe('render', function () {
34
+ it('renders correctly with default props', function () {
35
+ expect(wrapper).toMatchSnapshot();
36
+ });
37
+ it('renders correctly with disabled prop as true', function () {
38
+ wrapper.setProps({
39
+ disabled: true
40
+ });
41
+ expect(wrapper).toMatchSnapshot();
42
+ });
43
+ it('renders correctly with correct as true', function () {
44
+ wrapper.setProps({
45
+ correct: true
46
+ });
47
+ expect(wrapper).toMatchSnapshot();
48
+ });
49
+ });
50
+ describe('onChange', function () {
51
+ var event = function event(value) {
52
+ return {
53
+ target: {
54
+ value: value
55
+ }
56
+ };
57
+ };
58
+
59
+ it('should be called with an appropriate value', function () {
60
+ var e = event('Laughed');
61
+ wrapper.simulate('change', e);
62
+ expect(onChange).toHaveBeenCalledWith({
63
+ target: {
64
+ value: e.target.value
65
+ }
66
+ });
67
+ });
68
+ });
69
+ });
70
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL19fdGVzdHNfXy9kcm9wZG93bi50ZXN0LmpzIl0sIm5hbWVzIjpbImRlc2NyaWJlIiwib25DaGFuZ2UiLCJqZXN0IiwiZm4iLCJkZWZhdWx0UHJvcHMiLCJpZCIsImNvcnJlY3QiLCJkaXNhYmxlZCIsInZhbHVlIiwiY2hvaWNlcyIsIndyYXBwZXIiLCJiZWZvcmVFYWNoIiwiaXQiLCJleHBlY3QiLCJ0b01hdGNoU25hcHNob3QiLCJzZXRQcm9wcyIsImV2ZW50IiwidGFyZ2V0IiwiZSIsInNpbXVsYXRlIiwidG9IYXZlQmVlbkNhbGxlZFdpdGgiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7QUFFQUEsUUFBUSxDQUFDLFVBQUQsRUFBYSxZQUFNO0FBQ3pCLE1BQU1DLFFBQVEsR0FBR0MsSUFBSSxDQUFDQyxFQUFMLEVBQWpCO0FBQ0EsTUFBTUMsWUFBWSxHQUFHO0FBQ25CSCxJQUFBQSxRQUFRLEVBQVJBLFFBRG1CO0FBRW5CSSxJQUFBQSxFQUFFLEVBQUUsR0FGZTtBQUduQkMsSUFBQUEsT0FBTyxFQUFFLEtBSFU7QUFJbkJDLElBQUFBLFFBQVEsRUFBRSxLQUpTO0FBS25CQyxJQUFBQSxLQUFLLEVBQUUsUUFMWTtBQU1uQkMsSUFBQUEsT0FBTyxFQUFFLENBQUMsbUJBQU8sUUFBUCxDQUFELEVBQW1CLG1CQUFPLFNBQVAsQ0FBbkIsRUFBc0MsbUJBQU8sUUFBUCxDQUF0QztBQU5VLEdBQXJCO0FBUUEsTUFBSUMsT0FBSjtBQUVBQyxFQUFBQSxVQUFVLENBQUMsWUFBTTtBQUNmRCxJQUFBQSxPQUFPLEdBQUcsbUNBQVEsb0JBQUMsb0JBQUQsRUFBY04sWUFBZCxDQUFSLENBQVY7QUFDRCxHQUZTLENBQVY7QUFJQUosRUFBQUEsUUFBUSxDQUFDLFFBQUQsRUFBVyxZQUFNO0FBQ3ZCWSxJQUFBQSxFQUFFLENBQUMsc0NBQUQsRUFBeUMsWUFBTTtBQUMvQ0MsTUFBQUEsTUFBTSxDQUFDSCxPQUFELENBQU4sQ0FBZ0JJLGVBQWhCO0FBQ0QsS0FGQyxDQUFGO0FBSUFGLElBQUFBLEVBQUUsQ0FBQyw4Q0FBRCxFQUFpRCxZQUFNO0FBQ3ZERixNQUFBQSxPQUFPLENBQUNLLFFBQVIsQ0FBaUI7QUFBRVIsUUFBQUEsUUFBUSxFQUFFO0FBQVosT0FBakI7QUFDQU0sTUFBQUEsTUFBTSxDQUFDSCxPQUFELENBQU4sQ0FBZ0JJLGVBQWhCO0FBQ0QsS0FIQyxDQUFGO0FBS0FGLElBQUFBLEVBQUUsQ0FBQyx3Q0FBRCxFQUEyQyxZQUFNO0FBQ2pERixNQUFBQSxPQUFPLENBQUNLLFFBQVIsQ0FBaUI7QUFBRVQsUUFBQUEsT0FBTyxFQUFFO0FBQVgsT0FBakI7QUFDQU8sTUFBQUEsTUFBTSxDQUFDSCxPQUFELENBQU4sQ0FBZ0JJLGVBQWhCO0FBQ0QsS0FIQyxDQUFGO0FBSUQsR0FkTyxDQUFSO0FBZ0JBZCxFQUFBQSxRQUFRLENBQUMsVUFBRCxFQUFhLFlBQU07QUFDekIsUUFBTWdCLEtBQUssR0FBRyxTQUFSQSxLQUFRLENBQUNSLEtBQUQ7QUFBQSxhQUFZO0FBQ3hCUyxRQUFBQSxNQUFNLEVBQUU7QUFBRVQsVUFBQUEsS0FBSyxFQUFMQTtBQUFGO0FBRGdCLE9BQVo7QUFBQSxLQUFkOztBQUlBSSxJQUFBQSxFQUFFLENBQUMsNENBQUQsRUFBK0MsWUFBTTtBQUNyRCxVQUFNTSxDQUFDLEdBQUdGLEtBQUssQ0FBQyxTQUFELENBQWY7QUFFQU4sTUFBQUEsT0FBTyxDQUFDUyxRQUFSLENBQWlCLFFBQWpCLEVBQTJCRCxDQUEzQjtBQUVBTCxNQUFBQSxNQUFNLENBQUNaLFFBQUQsQ0FBTixDQUFpQm1CLG9CQUFqQixDQUFzQztBQUFFSCxRQUFBQSxNQUFNLEVBQUU7QUFBRVQsVUFBQUEsS0FBSyxFQUFFVSxDQUFDLENBQUNELE1BQUYsQ0FBU1Q7QUFBbEI7QUFBVixPQUF0QztBQUNELEtBTkMsQ0FBRjtBQU9ELEdBWk8sQ0FBUjtBQWFELENBN0NPLENBQVIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBzaGFsbG93IH0gZnJvbSAnZW56eW1lJztcbmltcG9ydCB7IGNob2ljZSB9IGZyb20gJy4uLy4uL19fdGVzdHNfXy91dGlscyc7XG5pbXBvcnQgRHJvcGRvd24gZnJvbSAnLi4vZHJvcGRvd24nO1xuXG5kZXNjcmliZSgnRHJvcGRvd24nLCAoKSA9PiB7XG4gIGNvbnN0IG9uQ2hhbmdlID0gamVzdC5mbigpO1xuICBjb25zdCBkZWZhdWx0UHJvcHMgPSB7XG4gICAgb25DaGFuZ2UsXG4gICAgaWQ6ICcxJyxcbiAgICBjb3JyZWN0OiBmYWxzZSxcbiAgICBkaXNhYmxlZDogZmFsc2UsXG4gICAgdmFsdWU6ICdKdW1wZWQnLFxuICAgIGNob2ljZXM6IFtjaG9pY2UoJ0p1bXBlZCcpLCBjaG9pY2UoJ0xhdWdoZWQnKSwgY2hvaWNlKCdTbWlsZWQnKV0sXG4gIH07XG4gIGxldCB3cmFwcGVyO1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIHdyYXBwZXIgPSBzaGFsbG93KDxEcm9wZG93biB7Li4uZGVmYXVsdFByb3BzfSAvPik7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdyZW5kZXInLCAoKSA9PiB7XG4gICAgaXQoJ3JlbmRlcnMgY29ycmVjdGx5IHdpdGggZGVmYXVsdCBwcm9wcycsICgpID0+IHtcbiAgICAgIGV4cGVjdCh3cmFwcGVyKS50b01hdGNoU25hcHNob3QoKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZW5kZXJzIGNvcnJlY3RseSB3aXRoIGRpc2FibGVkIHByb3AgYXMgdHJ1ZScsICgpID0+IHtcbiAgICAgIHdyYXBwZXIuc2V0UHJvcHMoeyBkaXNhYmxlZDogdHJ1ZSB9KTtcbiAgICAgIGV4cGVjdCh3cmFwcGVyKS50b01hdGNoU25hcHNob3QoKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZW5kZXJzIGNvcnJlY3RseSB3aXRoIGNvcnJlY3QgYXMgdHJ1ZScsICgpID0+IHtcbiAgICAgIHdyYXBwZXIuc2V0UHJvcHMoeyBjb3JyZWN0OiB0cnVlIH0pO1xuICAgICAgZXhwZWN0KHdyYXBwZXIpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnb25DaGFuZ2UnLCAoKSA9PiB7XG4gICAgY29uc3QgZXZlbnQgPSAodmFsdWUpID0+ICh7XG4gICAgICB0YXJnZXQ6IHsgdmFsdWUgfSxcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgYmUgY2FsbGVkIHdpdGggYW4gYXBwcm9wcmlhdGUgdmFsdWUnLCAoKSA9PiB7XG4gICAgICBjb25zdCBlID0gZXZlbnQoJ0xhdWdoZWQnKTtcblxuICAgICAgd3JhcHBlci5zaW11bGF0ZSgnY2hhbmdlJywgZSk7XG5cbiAgICAgIGV4cGVjdChvbkNoYW5nZSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoeyB0YXJnZXQ6IHsgdmFsdWU6IGUudGFyZ2V0LnZhbHVlIH0gfSk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ var React = _interopRequireWildcard(require("react"));
8
+
9
+ var _enzyme = require("enzyme");
10
+
11
+ var _input = _interopRequireDefault(require("../input"));
12
+
13
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
14
+
15
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
16
+
17
+ describe('Input', function () {
18
+ var onChange = jest.fn();
19
+ var defaultProps = {
20
+ disabled: false,
21
+ correct: false,
22
+ variant: 'outlined',
23
+ value: 'Cow',
24
+ id: '1',
25
+ onChange: onChange
26
+ };
27
+ var wrapper;
28
+ beforeEach(function () {
29
+ wrapper = (0, _enzyme.shallow)( /*#__PURE__*/React.createElement(_input["default"], defaultProps));
30
+ });
31
+ describe('render', function () {
32
+ it('renders correctly with default props', function () {
33
+ expect(wrapper).toMatchSnapshot();
34
+ });
35
+ it('renders correctly with disabled prop as true', function () {
36
+ wrapper.setProps({
37
+ disabled: true
38
+ });
39
+ expect(wrapper).toMatchSnapshot();
40
+ });
41
+ it('renders correctly with correct as false', function () {
42
+ wrapper.setProps({
43
+ correct: false
44
+ });
45
+ expect(wrapper).toMatchSnapshot();
46
+ });
47
+ });
48
+ describe('onChange', function () {
49
+ var event = function event(value) {
50
+ return {
51
+ target: {
52
+ value: value
53
+ }
54
+ };
55
+ };
56
+
57
+ it('should be called', function () {
58
+ var e = event('20');
59
+ wrapper.simulate('change', e);
60
+ expect(onChange).toHaveBeenCalledWith('1', e.target.value);
61
+ });
62
+ });
63
+ });
64
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL19fdGVzdHNfXy9pbnB1dC50ZXN0LmpzIl0sIm5hbWVzIjpbImRlc2NyaWJlIiwib25DaGFuZ2UiLCJqZXN0IiwiZm4iLCJkZWZhdWx0UHJvcHMiLCJkaXNhYmxlZCIsImNvcnJlY3QiLCJ2YXJpYW50IiwidmFsdWUiLCJpZCIsIndyYXBwZXIiLCJiZWZvcmVFYWNoIiwiaXQiLCJleHBlY3QiLCJ0b01hdGNoU25hcHNob3QiLCJzZXRQcm9wcyIsImV2ZW50IiwidGFyZ2V0IiwiZSIsInNpbXVsYXRlIiwidG9IYXZlQmVlbkNhbGxlZFdpdGgiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOztBQUNBOztBQUNBOzs7Ozs7QUFFQUEsUUFBUSxDQUFDLE9BQUQsRUFBVSxZQUFNO0FBQ3RCLE1BQU1DLFFBQVEsR0FBR0MsSUFBSSxDQUFDQyxFQUFMLEVBQWpCO0FBQ0EsTUFBTUMsWUFBWSxHQUFHO0FBQ25CQyxJQUFBQSxRQUFRLEVBQUUsS0FEUztBQUVuQkMsSUFBQUEsT0FBTyxFQUFFLEtBRlU7QUFHbkJDLElBQUFBLE9BQU8sRUFBRSxVQUhVO0FBSW5CQyxJQUFBQSxLQUFLLEVBQUUsS0FKWTtBQUtuQkMsSUFBQUEsRUFBRSxFQUFFLEdBTGU7QUFNbkJSLElBQUFBLFFBQVEsRUFBUkE7QUFObUIsR0FBckI7QUFRQSxNQUFJUyxPQUFKO0FBRUFDLEVBQUFBLFVBQVUsQ0FBQyxZQUFNO0FBQ2ZELElBQUFBLE9BQU8sR0FBRyxtQ0FBUSxvQkFBQyxpQkFBRCxFQUFXTixZQUFYLENBQVIsQ0FBVjtBQUNELEdBRlMsQ0FBVjtBQUlBSixFQUFBQSxRQUFRLENBQUMsUUFBRCxFQUFXLFlBQU07QUFDdkJZLElBQUFBLEVBQUUsQ0FBQyxzQ0FBRCxFQUF5QyxZQUFNO0FBQy9DQyxNQUFBQSxNQUFNLENBQUNILE9BQUQsQ0FBTixDQUFnQkksZUFBaEI7QUFDRCxLQUZDLENBQUY7QUFJQUYsSUFBQUEsRUFBRSxDQUFDLDhDQUFELEVBQWlELFlBQU07QUFDdkRGLE1BQUFBLE9BQU8sQ0FBQ0ssUUFBUixDQUFpQjtBQUFFVixRQUFBQSxRQUFRLEVBQUU7QUFBWixPQUFqQjtBQUNBUSxNQUFBQSxNQUFNLENBQUNILE9BQUQsQ0FBTixDQUFnQkksZUFBaEI7QUFDRCxLQUhDLENBQUY7QUFLQUYsSUFBQUEsRUFBRSxDQUFDLHlDQUFELEVBQTRDLFlBQU07QUFDbERGLE1BQUFBLE9BQU8sQ0FBQ0ssUUFBUixDQUFpQjtBQUFFVCxRQUFBQSxPQUFPLEVBQUU7QUFBWCxPQUFqQjtBQUNBTyxNQUFBQSxNQUFNLENBQUNILE9BQUQsQ0FBTixDQUFnQkksZUFBaEI7QUFDRCxLQUhDLENBQUY7QUFJRCxHQWRPLENBQVI7QUFnQkFkLEVBQUFBLFFBQVEsQ0FBQyxVQUFELEVBQWEsWUFBTTtBQUN6QixRQUFNZ0IsS0FBSyxHQUFHLFNBQVJBLEtBQVEsQ0FBQ1IsS0FBRDtBQUFBLGFBQVk7QUFDeEJTLFFBQUFBLE1BQU0sRUFBRTtBQUFFVCxVQUFBQSxLQUFLLEVBQUxBO0FBQUY7QUFEZ0IsT0FBWjtBQUFBLEtBQWQ7O0FBSUFJLElBQUFBLEVBQUUsQ0FBQyxrQkFBRCxFQUFxQixZQUFNO0FBQzNCLFVBQU1NLENBQUMsR0FBR0YsS0FBSyxDQUFDLElBQUQsQ0FBZjtBQUVBTixNQUFBQSxPQUFPLENBQUNTLFFBQVIsQ0FBaUIsUUFBakIsRUFBMkJELENBQTNCO0FBRUFMLE1BQUFBLE1BQU0sQ0FBQ1osUUFBRCxDQUFOLENBQWlCbUIsb0JBQWpCLENBQXNDLEdBQXRDLEVBQTJDRixDQUFDLENBQUNELE1BQUYsQ0FBU1QsS0FBcEQ7QUFDRCxLQU5DLENBQUY7QUFPRCxHQVpPLENBQVI7QUFhRCxDQTdDTyxDQUFSIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgc2hhbGxvdyB9IGZyb20gJ2VuenltZSc7XG5pbXBvcnQgSW5wdXQgZnJvbSAnLi4vaW5wdXQnO1xuXG5kZXNjcmliZSgnSW5wdXQnLCAoKSA9PiB7XG4gIGNvbnN0IG9uQ2hhbmdlID0gamVzdC5mbigpO1xuICBjb25zdCBkZWZhdWx0UHJvcHMgPSB7XG4gICAgZGlzYWJsZWQ6IGZhbHNlLFxuICAgIGNvcnJlY3Q6IGZhbHNlLFxuICAgIHZhcmlhbnQ6ICdvdXRsaW5lZCcsXG4gICAgdmFsdWU6ICdDb3cnLFxuICAgIGlkOiAnMScsXG4gICAgb25DaGFuZ2UsXG4gIH07XG4gIGxldCB3cmFwcGVyO1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIHdyYXBwZXIgPSBzaGFsbG93KDxJbnB1dCB7Li4uZGVmYXVsdFByb3BzfSAvPik7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdyZW5kZXInLCAoKSA9PiB7XG4gICAgaXQoJ3JlbmRlcnMgY29ycmVjdGx5IHdpdGggZGVmYXVsdCBwcm9wcycsICgpID0+IHtcbiAgICAgIGV4cGVjdCh3cmFwcGVyKS50b01hdGNoU25hcHNob3QoKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZW5kZXJzIGNvcnJlY3RseSB3aXRoIGRpc2FibGVkIHByb3AgYXMgdHJ1ZScsICgpID0+IHtcbiAgICAgIHdyYXBwZXIuc2V0UHJvcHMoeyBkaXNhYmxlZDogdHJ1ZSB9KTtcbiAgICAgIGV4cGVjdCh3cmFwcGVyKS50b01hdGNoU25hcHNob3QoKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZW5kZXJzIGNvcnJlY3RseSB3aXRoIGNvcnJlY3QgYXMgZmFsc2UnLCAoKSA9PiB7XG4gICAgICB3cmFwcGVyLnNldFByb3BzKHsgY29ycmVjdDogZmFsc2UgfSk7XG4gICAgICBleHBlY3Qod3JhcHBlcikudG9NYXRjaFNuYXBzaG90KCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdvbkNoYW5nZScsICgpID0+IHtcbiAgICBjb25zdCBldmVudCA9ICh2YWx1ZSkgPT4gKHtcbiAgICAgIHRhcmdldDogeyB2YWx1ZSB9LFxuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBiZSBjYWxsZWQnLCAoKSA9PiB7XG4gICAgICBjb25zdCBlID0gZXZlbnQoJzIwJyk7XG5cbiAgICAgIHdyYXBwZXIuc2ltdWxhdGUoJ2NoYW5nZScsIGUpO1xuXG4gICAgICBleHBlY3Qob25DaGFuZ2UpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKCcxJywgZS50YXJnZXQudmFsdWUpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
@@ -412,4 +412,4 @@ var DragDropTile = (0, _drag.DragSource)(DRAG_TYPE, tileSource, function (connec
412
412
  })(DropTile);
413
413
  var _default = DragDropTile;
414
414
  exports["default"] = _default;
415
- //# sourceMappingURL=blank.js.map
415
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL2JsYW5rLmpzeCJdLCJuYW1lcyI6WyJsb2ciLCJEUkFHX1RZUEUiLCJ1c2VTdHlsZXMiLCJjb250ZW50IiwiYm9yZGVyIiwiY29sb3IiLCJwcmltYXJ5IiwibWluV2lkdGgiLCJ0b3VjaEFjdGlvbiIsIm92ZXJmbG93Iiwid2hpdGVTcGFjZSIsImNoaXAiLCJiYWNrZ3JvdW5kQ29sb3IiLCJiYWNrZ3JvdW5kIiwidGV4dCIsImZvbnRTaXplIiwibWF4V2lkdGgiLCJwb3NpdGlvbiIsImJvcmRlclJhZGl1cyIsImNoaXBMYWJlbCIsInBvaW50ZXJFdmVudHMiLCJkaXNwbGF5IiwicGFkZGluZyIsIm1hcmdpblRvcCIsIm1hcmdpbkJvdHRvbSIsImhpZGRlbiIsIm9wYWNpdHkiLCJkcmFnZ2VkIiwibGVmdCIsImNvcnJlY3QiLCJpbmNvcnJlY3QiLCJvdmVyIiwicGFyZW50T3ZlciIsImdyZXkiLCJCbGFua0NvbnRlbnQiLCJ1cGRhdGVEaW1lbnNpb25zIiwiZSIsInByZXZlbnREZWZhdWx0IiwidG91Y2hTdGFydFRpbWVyIiwic2V0VGltZW91dCIsInN0YXJ0RHJhZyIsInByb3BzIiwiY29ubmVjdERyYWdTb3VyY2UiLCJkaXNhYmxlZCIsInJvb3RSZWYiLCJzdGF0ZSIsImhlaWdodCIsIndpZHRoIiwiaW1hZ2VFbGVtZW50Iiwic3BhblJlZiIsInF1ZXJ5U2VsZWN0b3IiLCJvbmxvYWQiLCJoYW5kbGVJbWFnZUxvYWQiLCJoYW5kbGVFbGVtZW50cyIsImFkZEV2ZW50TGlzdGVuZXIiLCJoYW5kbGVUb3VjaFN0YXJ0IiwicGFzc2l2ZSIsInByZXZQcm9wcyIsImN1cnJlbnRDaG9pY2UiLCJjaG9pY2UiLCJwcmV2Q2hvaWNlIiwiSlNPTiIsInN0cmluZ2lmeSIsInNldFN0YXRlIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsInN0eWxlIiwib2Zmc2V0V2lkdGgiLCJvZmZzZXRIZWlnaHQiLCJ3aWR0aFdpdGhQYWRkaW5nIiwiaGVpZ2h0V2l0aFBhZGRpbmciLCJyZXNwb25zZUFyZWFXaWR0aCIsInBhcnNlRmxvYXQiLCJlbXB0eVJlc3BvbnNlQXJlYVdpZHRoIiwicmVzcG9uc2VBcmVhSGVpZ2h0IiwiZW1wdHlSZXNwb25zZUFyZWFIZWlnaHQiLCJhZGp1c3RlZFdpZHRoIiwiYWRqdXN0ZWRIZWlnaHQiLCJwcmV2U3RhdGUiLCJwYXJlbnQiLCJjaGlsZE5vZGVzIiwiZm9yRWFjaCIsImVsZW0iLCJFbGVtZW50IiwiSFRNTERvY3VtZW50Iiwic2V0QXR0cmlidXRlIiwiaXNOYU4iLCJyb290U3R5bGUiLCJtaW5IZWlnaHQiLCJjbGFzc2VzIiwiaXNPdmVyIiwiZHJhZ0l0ZW0iLCJkcmFnZ2VkTGFiZWwiLCJ2YWx1ZSIsImxhYmVsIiwicmVmIiwiUmVhY3RET00iLCJmaW5kRE9NTm9kZSIsImlubmVySFRNTCIsImFkZERyYWdnYWJsZUZhbHNlQXR0cmlidXRlcyIsInVuZGVmaW5lZCIsImdldFJvb3REaW1lbnNpb25zIiwiUmVhY3QiLCJDb21wb25lbnQiLCJkZWZhdWx0UHJvcHMiLCJwcm9wVHlwZXMiLCJpZCIsIlByb3BUeXBlcyIsIm9uZU9mVHlwZSIsInN0cmluZyIsIm51bWJlciIsImJvb2wiLCJkdXBsaWNhdGVzIiwib2JqZWN0Iiwib25DaGFuZ2UiLCJmdW5jIiwiU3R5bGVkQmxhbmtDb250ZW50IiwiY29ubmVjdGVkQmxhbmtDb250ZW50IiwiY29ubmVjdERyb3BUYXJnZXQiLCJ0aWxlVGFyZ2V0IiwiZHJvcCIsIm1vbml0b3IiLCJkcmFnZ2VkSXRlbSIsImdldEl0ZW0iLCJpbnN0YW5jZUlkIiwiZHJvcHBlZCIsImNhbkRyb3AiLCJEcm9wVGlsZSIsImNvbm5lY3QiLCJkcm9wVGFyZ2V0IiwidGlsZVNvdXJjZSIsImNhbkRyYWciLCJiZWdpbkRyYWciLCJmcm9tQ2hvaWNlIiwiZW5kRHJhZyIsImRyb3BSZXN1bHQiLCJnZXREcm9wUmVzdWx0IiwiRHJhZ0Ryb3BUaWxlIiwiZHJhZ1NvdXJjZSIsImlzRHJhZ2dpbmci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VUFBVSxFQUFFbEYsS0FBSyxDQUFDa0YsVUFIYjtBQUlMUyxNQUFBQSxVQUFVLEVBQUU7QUFKUCxLQUFQO0FBTUQsR0FYZ0I7QUFZakJDLEVBQUFBLE9BWmlCLG1CQVlUNUYsS0FaUyxFQVlGK0UsT0FaRSxFQVlPO0FBQ3RCO0FBQ0EsUUFBTWMsVUFBVSxHQUFHZCxPQUFPLENBQUNlLGFBQVIsRUFBbkI7O0FBRUEsUUFBSSxDQUFDRCxVQUFELElBQWVBLFVBQVUsQ0FBQ1YsT0FBOUIsRUFBdUM7QUFDckMsVUFBTUgsV0FBVyxHQUFHRCxPQUFPLENBQUNFLE9BQVIsRUFBcEI7O0FBRUEsVUFBSUQsV0FBVyxDQUFDVyxVQUFoQixFQUE0QjtBQUMxQjNGLFFBQUFBLEtBQUssQ0FBQ3dFLFFBQU4sQ0FBZXhFLEtBQUssQ0FBQ2dFLEVBQXJCLEVBQXlCTixTQUF6QjtBQUNEO0FBQ0Y7QUFDRjtBQXZCZ0IsQ0FBbkI7QUEwQkEsSUFBTXFDLFlBQVksR0FBRyxzQkFBV3ZJLFNBQVgsRUFBc0JnSSxVQUF0QixFQUFrQyxVQUFDRixPQUFELEVBQVVQLE9BQVY7QUFBQSxTQUF1QjtBQUM1RTlFLElBQUFBLGlCQUFpQixFQUFFcUYsT0FBTyxDQUFDVSxVQUFSLEVBRHlEO0FBRTVFQyxJQUFBQSxVQUFVLEVBQUVsQixPQUFPLENBQUNrQixVQUFSO0FBRmdFLEdBQXZCO0FBQUEsQ0FBbEMsRUFHakJaLFFBSGlCLENBQXJCO2VBS2VVLFkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZ3JleSBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9jb2xvcnMvZ3JleSc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFJlYWN0RE9NIGZyb20gJ3JlYWN0LWRvbSc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgcmVuZGVyTWF0aCB9IGZyb20gJ0BwaWUtbGliL21hdGgtcmVuZGVyaW5nJztcbmltcG9ydCBkZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5pbXBvcnQgeyBEcmFnU291cmNlLCBEcm9wVGFyZ2V0IH0gZnJvbSAnQHBpZS1saWIvZHJhZyc7XG5pbXBvcnQgeyB3aXRoU3R5bGVzIH0gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvc3R5bGVzJztcbmltcG9ydCBDaGlwIGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL0NoaXAnO1xuaW1wb3J0IGNsYXNzbmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyBjb2xvciB9IGZyb20gJ0BwaWUtbGliL3JlbmRlci11aSc7XG5cbmNvbnN0IGxvZyA9IGRlYnVnKCdwaWUtbGliOm1hc2stbWFya3VwOmJsYW5rJyk7XG5leHBvcnQgY29uc3QgRFJBR19UWVBFID0gJ01hc2tCbGFuayc7XG5cbmNvbnN0IHVzZVN0eWxlcyA9IHdpdGhTdHlsZXMoKCkgPT4gKHtcbiAgY29udGVudDoge1xuICAgIGJvcmRlcjogYHNvbGlkIDBweCAke2NvbG9yLnByaW1hcnkoKX1gLFxuICAgIG1pbldpZHRoOiAnMjAwcHgnLFxuICAgIHRvdWNoQWN0aW9uOiAnbm9uZScsXG4gICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgIHdoaXRlU3BhY2U6ICdub3dyYXAnLCAvLyBQcmV2ZW50IGxpbmUgd3JhcHBpbmdcbiAgfSxcbiAgY2hpcDoge1xuICAgIGJhY2tncm91bmRDb2xvcjogY29sb3IuYmFja2dyb3VuZCgpLFxuICAgIGJvcmRlcjogYDJweCBkYXNoZWQgJHtjb2xvci50ZXh0KCl9YCxcbiAgICBjb2xvcjogY29sb3IudGV4dCgpLFxuICAgIGZvbnRTaXplOiAnaW5oZXJpdCcsXG4gICAgbWF4V2lkdGg6ICczNzRweCcsXG4gICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgYm9yZGVyUmFkaXVzOiAnM3B4JyxcbiAgfSxcbiAgY2hpcExhYmVsOiB7XG4gICAgd2hpdGVTcGFjZTogJ25vcm1hbCcsXG4gICAgLy8gQWRkZWQgZm9yIHRvdWNoIGRldmljZXMsIGZvciBpbWFnZSBjb250ZW50LlxuICAgIC8vIFRoaXMgd2lsbCBwcmV2ZW50IHRoZSBjb250ZXh0IG1lbnUgZnJvbSBhcHBlYXJpbmcgYW5kIG5vdCBhbGxvd2luZyBvdGhlciBpbnRlcmFjdGlvbnMgd2l0aCB0aGUgaW1hZ2UuXG4gICAgLy8gSWYgaW50ZXJhY3Rpb25zIHdpdGggdGhlIGltYWdlIGluIHRoZSB0b2tlbiB3aWxsIGJlIHJlcXVlc3RlZCB3ZSBzaG91bGQgaGFuZGxlIG9ubHkgdGhlIGNvbnRleHQgTWVudS5cbiAgICBwb2ludGVyRXZlbnRzOiAnbm9uZScsXG4gICAgJyYgaW1nJzoge1xuICAgICAgZGlzcGxheTogJ2Jsb2NrJyxcbiAgICAgIHBhZGRpbmc6ICcycHggMCcsXG4gICAgfSxcbiAgICAvLyBSZW1vdmUgZGVmYXVsdCA8cD4gbWFyZ2lucyB0byBlbnN1cmUgY29uc2lzdGVudCBzcGFjaW5nIGFjcm9zcyBhbGwgd3JhcHBlZCBjb250ZW50IChwLCBzcGFuLCBkaXYsIG1hdGgpXG4gICAgLy8gUGFkZGluZyBmb3IgdG9wIGFuZCBib3R0b20gd2lsbCBpbnN0ZWFkIGJlIGNvbnRyb2xsZWQgYnkgdGhlIGNvbnRhaW5lciBmb3IgY29uc2lzdGVudCBsYXlvdXRcbiAgICAvLyBFbnN1cmVzIGNvbnNpc3RlbnQgYmVoYXZpb3Igd2l0aCBwaWUtYXBpLWJyb3dzZXIsIHdoZXJlIG1hcmdpblRvcCBpcyBhbHJlYWR5IHJlbW92ZWQgYnkgYSBCb290c3RyYXAgc3R5bGVzaGVldFxuICAgICcmIHAnOiB7XG4gICAgICBtYXJnaW5Ub3A6ICcwJyxcbiAgICAgIG1hcmdpbkJvdHRvbTogJzAnLFxuICAgIH0sXG4gICAgJyYgbWp4LWZyYWMnOiB7XG4gICAgICBmb250U2l6ZTogJzEyMCUgIWltcG9ydGFudCcsXG4gICAgfSxcbiAgfSxcbiAgaGlkZGVuOiB7XG4gICAgY29sb3I6ICd0cmFuc3BhcmVudCcsXG4gICAgb3BhY2l0eTogMCxcbiAgfSxcbiAgZHJhZ2dlZDoge1xuICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgIGxlZnQ6IDE2LFxuICAgIG1heFdpZHRoOiAnNjBweCcsXG4gIH0sXG4gIGNvcnJlY3Q6IHtcbiAgICBib3JkZXI6IGBzb2xpZCAxcHggJHtjb2xvci5jb3JyZWN0KCl9YCxcbiAgfSxcbiAgaW5jb3JyZWN0OiB7XG4gICAgYm9yZGVyOiBgc29saWQgMXB4ICR7Y29sb3IuaW5jb3JyZWN0KCl9YCxcbiAgfSxcbiAgb3Zlcjoge1xuICAgIHdoaXRlU3BhY2U6ICdub3dyYXAnLFxuICAgIG92ZXJmbG93OiAnaGlkZGVuJyxcbiAgfSxcbiAgcGFyZW50T3Zlcjoge1xuICAgIGJvcmRlcjogYDFweCBzb2xpZCAke2dyZXlbNTAwXX1gLFxuICAgIGJhY2tncm91bmRDb2xvcjogYCR7Z3JleVszMDBdfWAsXG4gIH0sXG59KSk7XG5cbmV4cG9ydCBjbGFzcyBCbGFua0NvbnRlbnQgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICBoZWlnaHQ6IDAsXG4gICAgICB3aWR0aDogMCxcbiAgICB9O1xuICB9XG5cbiAgaGFuZGxlSW1hZ2VMb2FkID0gKCkgPT4ge1xuICAgIHRoaXMudXBkYXRlRGltZW5zaW9ucygpO1xuICB9O1xuXG4gIGhhbmRsZUVsZW1lbnRzKCkge1xuICAgIGNvbnN0IGltYWdlRWxlbWVudCA9IHRoaXMuc3BhblJlZj8ucXVlcnlTZWxlY3RvcignaW1nJyk7XG5cbiAgICBpZiAoaW1hZ2VFbGVtZW50KSB7XG4gICAgICBpbWFnZUVsZW1lbnQub25sb2FkID0gdGhpcy5oYW5kbGVJbWFnZUxvYWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLnVwZGF0ZURpbWVuc2lvbnMoKTtcbiAgICAgIH0sIDMwMCk7XG4gICAgfVxuICB9XG5cbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgdGhpcy5oYW5kbGVFbGVtZW50cygpO1xuICAgIGlmICh0aGlzLnJvb3RSZWYpIHtcbiAgICAgIHRoaXMucm9vdFJlZi5hZGRFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgdGhpcy5oYW5kbGVUb3VjaFN0YXJ0LCB7IHBhc3NpdmU6IGZhbHNlIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICByZW5kZXJNYXRoKHRoaXMucm9vdFJlZik7XG4gICAgY29uc3QgeyBjaG9pY2U6IGN1cnJlbnRDaG9pY2UgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyBjaG9pY2U6IHByZXZDaG9pY2UgfSA9IHByZXZQcm9wcztcblxuICAgIGlmIChKU09OLnN0cmluZ2lmeShjdXJyZW50Q2hvaWNlKSAhPT0gSlNPTi5zdHJpbmdpZnkocHJldkNob2ljZSkpIHtcbiAgICAgIGlmICghY3VycmVudENob2ljZSkge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICBoZWlnaHQ6IDAsXG4gICAgICAgICAgd2lkdGg6IDAsXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLmhhbmRsZUVsZW1lbnRzKCk7XG4gICAgfVxuICB9XG5cbiAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgaWYgKHRoaXMucm9vdFJlZikge1xuICAgICAgdGhpcy5yb290UmVmLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCB0aGlzLmhhbmRsZVRvdWNoU3RhcnQpO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZVRvdWNoU3RhcnQgPSAoZSkgPT4ge1xuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLnRvdWNoU3RhcnRUaW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5zdGFydERyYWcoKTtcbiAgICB9LCAzMDApOyAvLyBTdGFydCBkcmFnIGFmdGVyIDMwMG1zICh0b3VjaCBhbmQgaG9sZCBkdXJhdGlvbilcbiAgfTtcblxuICBzdGFydERyYWcgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb25uZWN0RHJhZ1NvdXJjZSwgZGlzYWJsZWQgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFkaXNhYmxlZCkge1xuICAgICAgY29ubmVjdERyYWdTb3VyY2UodGhpcy5yb290UmVmKTtcbiAgICB9XG4gIH07XG5cbiAgdXBkYXRlRGltZW5zaW9ucygpIHtcbiAgICBpZiAodGhpcy5zcGFuUmVmICYmIHRoaXMucm9vdFJlZikge1xuICAgICAgLy8gVGVtcG9yYXJpbHkgc2V0IHJvb3RSZWYgd2lkdGggdG8gJ2F1dG8nIGZvciBuYXR1cmFsIG1lYXN1cmVtZW50XG4gICAgICB0aGlzLnJvb3RSZWYuc3R5bGUud2lkdGggPSAnYXV0byc7XG5cbiAgICAgIC8vIEdldCB0aGUgbmF0dXJhbCBkaW1lbnNpb25zIG9mIHRoZSBjb250ZW50XG4gICAgICBjb25zdCB3aWR0aCA9IHRoaXMuc3BhblJlZi5vZmZzZXRXaWR0aCB8fCAwO1xuICAgICAgY29uc3QgaGVpZ2h0ID0gdGhpcy5zcGFuUmVmLm9mZnNldEhlaWdodCB8fCAwO1xuXG4gICAgICBjb25zdCB3aWR0aFdpdGhQYWRkaW5nID0gd2lkdGggKyAyNDsgLy8gMTJweCBwYWRkaW5nIG9uIGVhY2ggc2lkZVxuICAgICAgY29uc3QgaGVpZ2h0V2l0aFBhZGRpbmcgPSBoZWlnaHQgKyAyNDsgLy8gMTJweCBwYWRkaW5nIG9uIHRvcCBhbmQgYm90dG9tXG5cbiAgICAgIGNvbnN0IHJlc3BvbnNlQXJlYVdpZHRoID0gcGFyc2VGbG9hdCh0aGlzLnByb3BzLmVtcHR5UmVzcG9uc2VBcmVhV2lkdGgpIHx8IDA7XG4gICAgICBjb25zdCByZXNwb25zZUFyZWFIZWlnaHQgPSBwYXJzZUZsb2F0KHRoaXMucHJvcHMuZW1wdHlSZXNwb25zZUFyZWFIZWlnaHQpIHx8IDA7XG5cbiAgICAgIGNvbnN0IGFkanVzdGVkV2lkdGggPSB3aWR0aFdpdGhQYWRkaW5nIDw9IHJlc3BvbnNlQXJlYVdpZHRoID8gcmVzcG9uc2VBcmVhV2lkdGggOiB3aWR0aFdpdGhQYWRkaW5nO1xuICAgICAgY29uc3QgYWRqdXN0ZWRIZWlnaHQgPSBoZWlnaHRXaXRoUGFkZGluZyA8PSByZXNwb25zZUFyZWFIZWlnaHQgPyByZXNwb25zZUFyZWFIZWlnaHQgOiBoZWlnaHRXaXRoUGFkZGluZztcblxuICAgICAgdGhpcy5zZXRTdGF0ZSgocHJldlN0YXRlKSA9PiAoe1xuICAgICAgICB3aWR0aDogYWRqdXN0ZWRXaWR0aCA+IHJlc3BvbnNlQXJlYVdpZHRoID8gYWRqdXN0ZWRXaWR0aCA6IHByZXZTdGF0ZS53aWR0aCxcbiAgICAgICAgaGVpZ2h0OiBhZGp1c3RlZEhlaWdodCA+IHJlc3BvbnNlQXJlYUhlaWdodCA/IGFkanVzdGVkSGVpZ2h0IDogcHJldlN0YXRlLmhlaWdodCxcbiAgICAgIH0pKTtcblxuICAgICAgdGhpcy5yb290UmVmLnN0eWxlLndpZHRoID0gYCR7YWRqdXN0ZWRXaWR0aH1weGA7XG4gICAgICB0aGlzLnJvb3RSZWYuc3R5bGUuaGVpZ2h0ID0gYCR7YWRqdXN0ZWRIZWlnaHR9cHhgO1xuICAgIH1cbiAgfVxuXG4gIGFkZERyYWdnYWJsZUZhbHNlQXR0cmlidXRlcyhwYXJlbnQpIHtcbiAgICBwYXJlbnQuY2hpbGROb2Rlcy5mb3JFYWNoKChlbGVtKSA9PiB7XG4gICAgICBpZiAoZWxlbSBpbnN0YW5jZW9mIEVsZW1lbnQgfHwgZWxlbSBpbnN0YW5jZW9mIEhUTUxEb2N1bWVudCkge1xuICAgICAgICBlbGVtLnNldEF0dHJpYnV0ZSgnZHJhZ2dhYmxlJywgZmFsc2UpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZ2V0Um9vdERpbWVuc2lvbnMoKSB7XG4gICAgLy8gSGFuZGxlIHBvdGVudGlhbCBub24tbnVtZXJpYyB2YWx1ZXNcbiAgICBjb25zdCByZXNwb25zZUFyZWFXaWR0aCA9ICFpc05hTihwYXJzZUZsb2F0KHRoaXMucHJvcHMuZW1wdHlSZXNwb25zZUFyZWFXaWR0aCkpXG4gICAgICA/IHBhcnNlRmxvYXQodGhpcy5wcm9wcy5lbXB0eVJlc3BvbnNlQXJlYVdpZHRoKVxuICAgICAgOiAwO1xuICAgIGNvbnN0IHJlc3BvbnNlQXJlYUhlaWdodCA9ICFpc05hTihwYXJzZUZsb2F0KHRoaXMucHJvcHMuZW1wdHlSZXNwb25zZUFyZWFIZWlnaHQpKVxuICAgICAgPyBwYXJzZUZsb2F0KHRoaXMucHJvcHMuZW1wdHlSZXNwb25zZUFyZWFIZWlnaHQpXG4gICAgICA6IDA7XG5cbiAgICBjb25zdCByb290U3R5bGUgPSB7XG4gICAgICBoZWlnaHQ6IHRoaXMuc3RhdGUuaGVpZ2h0IHx8IHJlc3BvbnNlQXJlYUhlaWdodCxcbiAgICAgIHdpZHRoOiB0aGlzLnN0YXRlLndpZHRoIHx8IHJlc3BvbnNlQXJlYVdpZHRoLFxuICAgIH07XG5cbiAgICAvLyBhZGQgbWluV2lkdGgsIG1pbkhlaWdodCBpZiB3aWR0aCBhbmQgaGVpZ2h0IGFyZSBub3QgZGVmaW5lZFxuICAgIC8vIG1pbldpZHRoLCBtaW5IZWlnaHQgd2lsbCBiZSBhbHNvIGluIG1vZGVsIGluIHRoZSBmdXR1cmVcbiAgICByZXR1cm4ge1xuICAgICAgLi4ucm9vdFN0eWxlLFxuICAgICAgLi4uKHJlc3BvbnNlQXJlYVdpZHRoID8ge30gOiB7IG1pbldpZHRoOiA5MCB9KSxcbiAgICAgIC4uLihyZXNwb25zZUFyZWFIZWlnaHQgPyB7fSA6IHsgbWluSGVpZ2h0OiAzMiB9KSxcbiAgICB9O1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgZGlzYWJsZWQsIGNob2ljZSwgY2xhc3NlcywgaXNPdmVyLCBkcmFnSXRlbSwgY29ycmVjdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBkcmFnZ2VkTGFiZWwgPSBkcmFnSXRlbSAmJiBpc092ZXIgJiYgZHJhZ0l0ZW0uY2hvaWNlLnZhbHVlO1xuICAgIGNvbnN0IGxhYmVsID0gY2hvaWNlICYmIGNob2ljZS52YWx1ZTtcblxuICAgIHJldHVybiAoXG4gICAgICAvLyBUT0RPIHRoZSBDaGlwIGVsZW1lbnQgaXMgY2F1c2luZyBkcmFnIHByb2JsZW1zIG9uIHRvdWNoIGRldmljZXMuIEF2b2lkIHVzaW5nIENoaXAgYW5kIGNvbnNpZGVyIHJlZmFjdG9yaW5nIHRoZSBjb2RlLiBLZWVwIGluIG1pbmQgdGhhdCBDaGlwIGlzIGEgc3BhbiB3aXRoIGEgYnV0dG9uIHJvbGUsIHdoaWNoIGludGVyZmVyZXMgd2l0aCBzZWFtbGVzcyB0b3VjaCBkZXZpY2UgZHJhZ2dpbmcuXG4gICAgICA8Q2hpcFxuICAgICAgICBjbGlja2FibGU9e2ZhbHNlfVxuICAgICAgICBkaXNhYmxlZD17dHJ1ZX1cbiAgICAgICAgcmVmPXsocmVmKSA9PiB7XG4gICAgICAgICAgLy9lc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICAgICAgICB0aGlzLnJvb3RSZWYgPSBSZWFjdERPTS5maW5kRE9NTm9kZShyZWYpO1xuICAgICAgICB9fVxuICAgICAgICBjb21wb25lbnQ9XCJzcGFuXCJcbiAgICAgICAgbGFiZWw9e1xuICAgICAgICAgIDxSZWFjdC5GcmFnbWVudD5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NuYW1lcyhjbGFzc2VzLmNoaXBMYWJlbCwgaXNPdmVyICYmIGNsYXNzZXMub3Zlciwge1xuICAgICAgICAgICAgICAgIFtjbGFzc2VzLmhpZGRlbl06IGRyYWdnZWRMYWJlbCxcbiAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgIHJlZj17KHJlZikgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChyZWYpIHtcbiAgICAgICAgICAgICAgICAgIC8vZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgICAgICAgICAgICAgICB0aGlzLnNwYW5SZWYgPSBSZWFjdERPTS5maW5kRE9NTm9kZShyZWYpO1xuICAgICAgICAgICAgICAgICAgcmVmLmlubmVySFRNTCA9IGxhYmVsIHx8ICcnO1xuICAgICAgICAgICAgICAgICAgdGhpcy5hZGREcmFnZ2FibGVGYWxzZUF0dHJpYnV0ZXMocmVmKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHsnICd9XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICB7ZHJhZ2dlZExhYmVsICYmIChcbiAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzbmFtZXMoY2xhc3Nlcy5jaGlwTGFiZWwsIGlzT3ZlciAmJiBjbGFzc2VzLm92ZXIsIGNsYXNzZXMuZHJhZ2dlZCl9XG4gICAgICAgICAgICAgICAgcmVmPXsocmVmKSA9PiB7XG4gICAgICAgICAgICAgICAgICBpZiAocmVmKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3BhblJlZiA9IFJlYWN0RE9NLmZpbmRET01Ob2RlKHJlZik7XG4gICAgICAgICAgICAgICAgICAgIHJlZi5pbm5lckhUTUwgPSBkcmFnZ2VkTGFiZWwgfHwgJyc7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWRkRHJhZ2dhYmxlRmFsc2VBdHRyaWJ1dGVzKHJlZik7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHsnICd9XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9SZWFjdC5GcmFnbWVudD5cbiAgICAgICAgfVxuICAgICAgICBjbGFzc05hbWU9e2NsYXNzbmFtZXMoY2xhc3Nlcy5jaGlwLCBpc092ZXIgJiYgY2xhc3Nlcy5vdmVyLCBpc092ZXIgJiYgY2xhc3Nlcy5wYXJlbnRPdmVyLCB7XG4gICAgICAgICAgW2NsYXNzZXMuY29ycmVjdF06IGNvcnJlY3QgIT09IHVuZGVmaW5lZCAmJiBjb3JyZWN0LFxuICAgICAgICAgIFtjbGFzc2VzLmluY29ycmVjdF06IGNvcnJlY3QgIT09IHVuZGVmaW5lZCAmJiAhY29ycmVjdCxcbiAgICAgICAgfSl9XG4gICAgICAgIHZhcmlhbnQ9e2Rpc2FibGVkID8gJ291dGxpbmVkJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAuLi50aGlzLmdldFJvb3REaW1lbnNpb25zKCksXG4gICAgICAgIH19XG4gICAgICAvPlxuICAgICk7XG4gIH1cbn1cblxuQmxhbmtDb250ZW50LmRlZmF1bHRQcm9wcyA9IHtcbiAgZW1wdHlSZXNwb25zZUFyZWFXaWR0aDogMCxcbiAgZW1wdHlSZXNwb25zZUFyZWFIZWlnaHQ6IDAsXG59O1xuXG5CbGFua0NvbnRlbnQucHJvcFR5cGVzID0ge1xuICBpZDogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLnN0cmluZywgUHJvcFR5cGVzLm51bWJlcl0pLFxuICBkaXNhYmxlZDogUHJvcFR5cGVzLmJvb2wsXG4gIGR1cGxpY2F0ZXM6IFByb3BUeXBlcy5ib29sLFxuICBjaG9pY2U6IFByb3BUeXBlcy5vYmplY3QsXG4gIGNsYXNzZXM6IFByb3BUeXBlcy5vYmplY3QsXG4gIGlzT3ZlcjogUHJvcFR5cGVzLmJvb2wsXG4gIGRyYWdJdGVtOiBQcm9wVHlwZXMub2JqZWN0LFxuICBjb3JyZWN0OiBQcm9wVHlwZXMuYm9vbCxcbiAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLFxuICBlbXB0eVJlc3BvbnNlQXJlYVdpZHRoOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuc3RyaW5nLCBQcm9wVHlwZXMubnVtYmVyXSksXG4gIGVtcHR5UmVzcG9uc2VBcmVhSGVpZ2h0OiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuc3RyaW5nLCBQcm9wVHlwZXMubnVtYmVyXSksXG59O1xuXG5jb25zdCBTdHlsZWRCbGFua0NvbnRlbnQgPSB1c2VTdHlsZXMoQmxhbmtDb250ZW50KTtcblxuY29uc3QgY29ubmVjdGVkQmxhbmtDb250ZW50ID0gdXNlU3R5bGVzKCh7IGNvbm5lY3REcmFnU291cmNlLCBjb25uZWN0RHJvcFRhcmdldCwgLi4ucHJvcHMgfSkgPT4ge1xuICBjb25zdCB7IGNsYXNzZXMsIGlzT3ZlciB9ID0gcHJvcHM7XG5cbiAgcmV0dXJuIGNvbm5lY3REcm9wVGFyZ2V0KFxuICAgIGNvbm5lY3REcmFnU291cmNlKFxuICAgICAgPHNwYW4gY2xhc3NOYW1lPXtjbGFzc25hbWVzKGNsYXNzZXMuY29udGVudCwgaXNPdmVyICYmIGNsYXNzZXMub3Zlcil9PlxuICAgICAgICA8U3R5bGVkQmxhbmtDb250ZW50IHsuLi5wcm9wc30gLz5cbiAgICAgIDwvc3Bhbj4sXG4gICAgKSxcbiAgKTtcbn0pO1xuXG5jb25zdCB0aWxlVGFyZ2V0ID0ge1xuICBkcm9wKHByb3BzLCBtb25pdG9yKSB7XG4gICAgY29uc3QgZHJhZ2dlZEl0ZW0gPSBtb25pdG9yLmdldEl0ZW0oKTtcblxuICAgIGxvZygncHJvcHMuaW5zdGFuY2VJZCcsIHByb3BzLmluc3RhbmNlSWQsICdkcmFnZ2VkSXRlbS5pbnN0YW5jZUlkOicsIGRyYWdnZWRJdGVtLmluc3RhbmNlSWQpO1xuXG4gICAgaWYgKGRyYWdnZWRJdGVtLmlkICE9PSBwcm9wcy5pZCkge1xuICAgICAgcHJvcHMub25DaGFuZ2UocHJvcHMuaWQsIGRyYWdnZWRJdGVtLmNob2ljZS5pZCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGRyb3BwZWQ6IGRyYWdnZWRJdGVtLmlkICE9PSBwcm9wcy5pZCxcbiAgICB9O1xuICB9LFxuICBjYW5Ecm9wKHByb3BzLCBtb25pdG9yKSB7XG4gICAgY29uc3QgZHJhZ2dlZEl0ZW0gPSBtb25pdG9yLmdldEl0ZW0oKTtcblxuICAgIHJldHVybiBkcmFnZ2VkSXRlbS5pbnN0YW5jZUlkID09PSBwcm9wcy5pbnN0YW5jZUlkO1xuICB9LFxufTtcblxuY29uc3QgRHJvcFRpbGUgPSBEcm9wVGFyZ2V0KERSQUdfVFlQRSwgdGlsZVRhcmdldCwgKGNvbm5lY3QsIG1vbml0b3IpID0+ICh7XG4gIGNvbm5lY3REcm9wVGFyZ2V0OiBjb25uZWN0LmRyb3BUYXJnZXQoKSxcbiAgaXNPdmVyOiBtb25pdG9yLmlzT3ZlcigpLFxuICBkcmFnSXRlbTogbW9uaXRvci5nZXRJdGVtKCksXG59KSkoY29ubmVjdGVkQmxhbmtDb250ZW50KTtcblxuY29uc3QgdGlsZVNvdXJjZSA9IHtcbiAgY2FuRHJhZyhwcm9wcykge1xuICAgIHJldHVybiAhcHJvcHMuZGlzYWJsZWQgJiYgISFwcm9wcy5jaG9pY2U7XG4gIH0sXG4gIGJlZ2luRHJhZyhwcm9wcykge1xuICAgIHJldHVybiB7XG4gICAgICBpZDogcHJvcHMuaWQsXG4gICAgICBjaG9pY2U6IHByb3BzLmNob2ljZSxcbiAgICAgIGluc3RhbmNlSWQ6IHByb3BzLmluc3RhbmNlSWQsXG4gICAgICBmcm9tQ2hvaWNlOiB0cnVlLFxuICAgIH07XG4gIH0sXG4gIGVuZERyYWcocHJvcHMsIG1vbml0b3IpIHtcbiAgICAvLyB0aGlzIHdpbGwgYmUgbnVsbCBpZiBpdCBkaWQgbm90IGRyb3BcbiAgICBjb25zdCBkcm9wUmVzdWx0ID0gbW9uaXRvci5nZXREcm9wUmVzdWx0KCk7XG5cbiAgICBpZiAoIWRyb3BSZXN1bHQgfHwgZHJvcFJlc3VsdC5kcm9wcGVkKSB7XG4gICAgICBjb25zdCBkcmFnZ2VkSXRlbSA9IG1vbml0b3IuZ2V0SXRlbSgpO1xuXG4gICAgICBpZiAoZHJhZ2dlZEl0ZW0uZnJvbUNob2ljZSkge1xuICAgICAgICBwcm9wcy5vbkNoYW5nZShwcm9wcy5pZCwgdW5kZWZpbmVkKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sXG59O1xuXG5jb25zdCBEcmFnRHJvcFRpbGUgPSBEcmFnU291cmNlKERSQUdfVFlQRSwgdGlsZVNvdXJjZSwgKGNvbm5lY3QsIG1vbml0b3IpID0+ICh7XG4gIGNvbm5lY3REcmFnU291cmNlOiBjb25uZWN0LmRyYWdTb3VyY2UoKSxcbiAgaXNEcmFnZ2luZzogbW9uaXRvci5pc0RyYWdnaW5nKCksXG59KSkoRHJvcFRpbGUpO1xuXG5leHBvcnQgZGVmYXVsdCBEcmFnRHJvcFRpbGU7XG4iXX0=
@@ -115,4 +115,4 @@ var _default = (0, _styles.withStyles)(function () {
115
115
  });
116
116
 
117
117
  exports["default"] = _default;
118
- //# sourceMappingURL=correct-input.js.map
118
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL2NvcnJlY3QtaW5wdXQuanN4Il0sIm5hbWVzIjpbImNvcnJlY3RTdHlsZSIsImNvbG9yIiwiYm9yZGVyQ29sb3IiLCJpbnB1dCIsInRleHQiLCJiYWNrZ3JvdW5kQ29sb3IiLCJiYWNrZ3JvdW5kIiwiYm9yZGVyUmFkaXVzIiwiYm9yZGVyV2lkdGgiLCJib3JkZXJTdHlsZSIsInBhZGRpbmciLCJvcGFjaXR5IiwiY3Vyc29yIiwicHJpbWFyeSIsInByaW1hcnlEYXJrIiwiY3JJbnB1dCIsImNvcnJlY3QiLCJpbmNvcnJlY3QiLCJib3giLCJmb250U2l6ZSIsImRpc3BsYXkiLCJ2ZXJ0aWNhbEFsaWduIiwib3V0bGluZWRJbnB1dCIsImJvcmRlciIsIm5vdGNoZWRPdXRsaW5lIiwicHJvcHMiLCJjaGFyYWN0ZXJzTGltaXQiLCJjbGFzc2VzIiwiZGlzYWJsZWQiLCJpc0JveCIsImlzQ29uc3RydWN0ZWRSZXNwb25zZSIsIndpZHRoIiwic3BlbGxDaGVjayIsInJlc3QiLCJsYWJlbCIsInVuZGVmaW5lZCIsImlucHV0UHJvcHMiLCJtYXhMZW5ndGgiLCJzdHlsZSIsIk1hdGgiLCJyb3VuZCIsImRpc2FibGVkSW5wdXQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7O0FBRUEsSUFBTUEsWUFBWSxHQUFHLFNBQWZBLFlBQWUsQ0FBQ0MsS0FBRDtBQUFBLFNBQVk7QUFDL0JDLElBQUFBLFdBQVcsWUFBS0QsS0FBTDtBQURvQixHQUFaO0FBQUEsQ0FBckI7O2VBSWUsd0JBQVc7QUFBQSxTQUFPO0FBQy9CRSxJQUFBQSxLQUFLLEVBQUU7QUFDTEYsTUFBQUEsS0FBSyxFQUFFQSxnQkFBTUcsSUFBTixFQURGO0FBRUxDLE1BQUFBLGVBQWUsRUFBRUosZ0JBQU1LLFVBQU4sRUFGWjtBQUdMQyxNQUFBQSxZQUFZLEVBQUUsZ0JBSFQ7QUFJTEMsTUFBQUEsV0FBVyxFQUFF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QUZILEVBRWFBLEtBRmIsa0RBR0pQLE9BQU8sQ0FBQ1osT0FISixFQUdjZSxxQkFIZDtBQURBLEtBTlg7QUFhRSxJQUFBLFVBQVUsRUFBRU0sVUFiZDtBQWNFLElBQUEsVUFBVSxFQUFFLENBZGQ7QUFlRSxJQUFBLFFBQVEsRUFBRVIsUUFmWjtBQWdCRSxJQUFBLFVBQVUsRUFBRUk7QUFoQmQsS0FpQk1DLElBakJOLEVBREY7QUFxQkQsQ0F2RmMsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgT3V0bGluZWRJbnB1dCBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9PdXRsaW5lZElucHV0JztcbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgd2l0aFN0eWxlcyB9IGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL3N0eWxlcyc7XG5pbXBvcnQgeyBjb2xvciB9IGZyb20gJ0BwaWUtbGliL3JlbmRlci11aSc7XG5cbmNvbnN0IGNvcnJlY3RTdHlsZSA9IChjb2xvcikgPT4gKHtcbiAgYm9yZGVyQ29sb3I6IGAke2NvbG9yfSAhaW1wb3J0YW50YCxcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCB3aXRoU3R5bGVzKCgpID0+ICh7XG4gIGlucHV0OiB7XG4gICAgY29sb3I6IGNvbG9yLnRleHQoKSxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IGNvbG9yLmJhY2tncm91bmQoKSxcbiAgICBib3JkZXJSYWRpdXM6ICc0cHggIWltcG9ydGFudCcsXG4gICAgYm9yZGVyV2lkdGg6ICcxcHgnLFxuICAgIGJvcmRlclN0eWxlOiAnc29saWQnLFxuICAgIHBhZGRpbmc6ICcxMHB4IDIwcHggMTBweCAxMHB4JyxcbiAgICAnJjpkaXNhYmxlZCc6IHtcbiAgICAgIG9wYWNpdHk6IDAuOCxcbiAgICAgIGN1cnNvcjogJ25vdC1hbGxvd2VkICFpbXBvcnRhbnQnLFxuICAgIH0sXG4gICAgJyY6aG92ZXInOiB7XG4gICAgICBib3JkZXJDb2xvcjogY29sb3IucHJpbWFyeSgpLFxuICAgICAgJyY6ZGlzYWJsZWQnOiB7XG4gICAgICAgIGJvcmRlckNvbG9yOiAnaW5pdGlhbCcsXG4gICAgICB9LFxuICAgIH0sXG4gICAgJyY6Zm9jdXMnOiB7XG4gICAgICBib3JkZXJDb2xvcjogY29sb3IucHJpbWFyeURhcmsoKSxcbiAgICB9LFxuICB9LFxuICBjcklucHV0OiB7XG4gICAgcGFkZGluZzogJzhweCAhaW1wb3J0YW50JyxcbiAgfSxcbiAgY29ycmVjdDogY29ycmVjdFN0eWxlKGNvbG9yLmNvcnJlY3QoKSksXG4gIGluY29ycmVjdDogY29ycmVjdFN0eWxlKGNvbG9yLmluY29ycmVjdCgpKSxcbiAgYm94OiB7XG4gICAgZm9udFNpemU6ICdpbmhlcml0JyxcbiAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgICB2ZXJ0aWNhbEFsaWduOiAnbWlkZGxlJyxcbiAgfSxcbiAgb3V0bGluZWRJbnB1dDoge1xuICAgIHBhZGRpbmc6ICcycHgnLFxuICAgIGJvcmRlclJhZGl1czogJzRweCcsXG4gICAgJyYgZmllbGRzZXQnOiB7XG4gICAgICBib3JkZXI6IDAsXG4gICAgfSxcbiAgfSxcbiAgbm90Y2hlZE91dGxpbmU6IHtcbiAgICBib3JkZXJDb2xvcjogY29sb3IuY29ycmVjdCgpLFxuICB9LFxufSkpKChwcm9wcykgPT4ge1xuICBjb25zdCB7XG4gICAgY29ycmVjdCxcbiAgICBjaGFyYWN0ZXJzTGltaXQsXG4gICAgY2xhc3NlcyxcbiAgICBkaXNhYmxlZCxcbiAgICBpc0JveCxcbiAgICBpc0NvbnN0cnVjdGVkUmVzcG9uc2UsXG4gICAgd2lkdGgsXG4gICAgc3BlbGxDaGVjayxcbiAgICAuLi5yZXN0XG4gIH0gPSBwcm9wcztcblxuICBjb25zdCBsYWJlbCA9IHR5cGVvZiBjb3JyZWN0ID09PSAnYm9vbGVhbicgPyAoY29ycmVjdCA/ICdjb3JyZWN0JyA6ICdpbmNvcnJlY3QnKSA6IHVuZGVmaW5lZDtcbiAgY29uc3QgaW5wdXRQcm9wcyA9IGNoYXJhY3RlcnNMaW1pdFxuICAgID8geyBtYXhMZW5ndGg6IGNoYXJhY3RlcnNMaW1pdCwgJ2FyaWEtbGFiZWwnOiAnRW50ZXIgYW5zd2VyJyB9XG4gICAgOiB7ICdhcmlhLWxhYmVsJzogJ0VudGVyIGFuc3dlcicgfTtcblxuICBpZiAod2lkdGgpIHtcbiAgICBpbnB1dFByb3BzLnN0eWxlID0ge1xuICAgICAgd2lkdGg6IGAke3dpZHRoICsgTWF0aC5yb3VuZCh3aWR0aCAvIDEwKSArIDF9Y2hgLCAvLyBhZGRlZCBzb21lIGV4dHJhIHNwYWNlIGZvciBjYXBpdGFsIGxldHRlcnNcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8T3V0bGluZWRJbnB1dFxuICAgICAgY2xhc3NOYW1lPXtjbGFzc25hbWVzKHtcbiAgICAgICAgW2NsYXNzZXMuZGlzYWJsZWRJbnB1dF06IGRpc2FibGVkLFxuICAgICAgICBbY2xhc3Nlcy5ib3hdOiBpc0JveCxcbiAgICAgICAgW2NsYXNzZXMub3V0bGluZWRJbnB1dF06IHRydWUsXG4gICAgICB9KX1cbiAgICAgIGNsYXNzZXM9e3tcbiAgICAgICAgaW5wdXQ6IGNsYXNzbmFtZXMoe1xuICAgICAgICAgIFtjbGFzc2VzLmlucHV0XTogdHJ1ZSxcbiAgICAgICAgICBbY2xhc3Nlc1tsYWJlbF1dOiBsYWJlbCxcbiAgICAgICAgICBbY2xhc3Nlcy5jcklucHV0XTogaXNDb25zdHJ1Y3RlZFJlc3BvbnNlLFxuICAgICAgICB9KSxcbiAgICAgIH19XG4gICAgICBpbnB1dFByb3BzPXtpbnB1dFByb3BzfVxuICAgICAgbGFiZWxXaWR0aD17MH1cbiAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgIHNwZWxsQ2hlY2s9e3NwZWxsQ2hlY2t9XG4gICAgICB7Li4ucmVzdH1cbiAgICAvPlxuICApO1xufSk7XG4iXX0=