react-resizable 1.11.0 → 3.0.1

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 (42) hide show
  1. package/.babelrc +1 -1
  2. package/.eslintrc +1 -1
  3. package/.flowconfig +3 -6
  4. package/CHANGELOG.md +16 -0
  5. package/README.md +68 -15
  6. package/build/Resizable.js +36 -29
  7. package/build/Resizable.js.flow +29 -22
  8. package/build/ResizableBox.js +13 -15
  9. package/build/ResizableBox.js.flow +2 -2
  10. package/build/propTypes.js.flow +27 -17
  11. package/build/utils.js +1 -1
  12. package/package.json +7 -8
  13. package/__tests__/Resizable.test.js +0 -245
  14. package/__tests__/ResizableBox.test.js +0 -99
  15. package/__tests__/__snapshots__/Resizable.test.js.snap +0 -29
  16. package/__tests__/__snapshots__/ResizableBox.test.js.snap +0 -23
  17. package/coverage/clover.xml +0 -107
  18. package/coverage/coverage-final.json +0 -5
  19. package/coverage/lcov-report/Resizable.js.html +0 -665
  20. package/coverage/lcov-report/ResizableBox.js.html +0 -374
  21. package/coverage/lcov-report/base.css +0 -224
  22. package/coverage/lcov-report/block-navigation.js +0 -79
  23. package/coverage/lcov-report/favicon.png +0 -0
  24. package/coverage/lcov-report/flow-typed/npm/index.html +0 -111
  25. package/coverage/lcov-report/flow-typed/npm/jest_v26.x.x.js.html +0 -3734
  26. package/coverage/lcov-report/index.html +0 -156
  27. package/coverage/lcov-report/prettify.css +0 -1
  28. package/coverage/lcov-report/prettify.js +0 -2
  29. package/coverage/lcov-report/propTypes.js.html +0 -485
  30. package/coverage/lcov-report/react-resizable/dist/bundle.js.html +0 -95
  31. package/coverage/lcov-report/react-resizable/dist/index.html +0 -111
  32. package/coverage/lcov-report/react-resizable/flow-typed/npm/index.html +0 -111
  33. package/coverage/lcov-report/react-resizable/flow-typed/npm/jest_v26.x.x.js.html +0 -3734
  34. package/coverage/lcov-report/react-resizable/index.html +0 -111
  35. package/coverage/lcov-report/react-resizable/index.js.html +0 -101
  36. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  37. package/coverage/lcov-report/sorter.js +0 -170
  38. package/coverage/lcov-report/utils.js.html +0 -122
  39. package/coverage/lcov.info +0 -233
  40. package/dist/bundle.js +0 -6
  41. package/flow-typed/npm/jest_v26.x.x.js +0 -1218
  42. package/setupTests/enzyme.js +0 -4
@@ -1,245 +0,0 @@
1
- // @flow
2
- import React from 'react';
3
- import renderer from 'react-test-renderer';
4
- import {shallow} from 'enzyme';
5
- import {DraggableCore} from "react-draggable";
6
-
7
- import Resizable from '../lib/Resizable';
8
-
9
- describe('render Resizable', () => {
10
- const props = {
11
- axis: 'both',
12
- className: 'test-classname',
13
- draggableOpts: {},
14
- handleSize: [20, 20],
15
- height: 50,
16
- lockAspectRatio: false,
17
- maxConstraints: [Infinity, Infinity],
18
- minConstraints: [20, 20],
19
- onResize: jest.fn(),
20
- onResizeStart: jest.fn(),
21
- onResizeStop: jest.fn(),
22
- resizeHandles: ['se', 'e'],
23
- transformScale: 1,
24
- width: 50,
25
- };
26
- const userChildren = <span className={'children'} />;
27
- const resizableBoxChildren = <div style={{width: '50px', height: '50px'}}>{userChildren}</div>;
28
-
29
- beforeEach(() => {
30
- jest.clearAllMocks();
31
- });
32
-
33
- test('snapshot default props', () => {
34
- const tree = renderer.create(<Resizable {...props}>{resizableBoxChildren}</Resizable>).toJSON();
35
- expect(tree).toMatchSnapshot();
36
- });
37
-
38
- test('with correct props', () => {
39
- const element = shallow(<Resizable {...props}>{resizableBoxChildren}</Resizable>);
40
- expect(element.find('.test-classname').find('.children'));
41
- expect(element.find(DraggableCore)).toHaveLength(2);
42
- const cursorSe = element.find('.react-resizable-handle-se');
43
- const cursorE = element.find('.react-resizable-handle-e');
44
- expect(cursorSe).toHaveLength(1);
45
- expect(cursorE).toHaveLength(1);
46
- });
47
-
48
- describe('and pass handle props', () => {
49
- test('as component', () => {
50
- const customProps = {
51
- ...props,
52
- resizeHandles: ['se'],
53
- handle: <span className={'custom-component'} />
54
- };
55
- const element = shallow(<Resizable {...customProps}>{resizableBoxChildren}</Resizable>);
56
- expect(element.find('.react-resizable-handle-se')).toHaveLength(0);
57
- expect(element.find('.custom-component')).toHaveLength(1);
58
- });
59
- test('as function', () => {
60
- const customProps = {
61
- ...props,
62
- resizeHandles: ['se'],
63
- handle: (h) => <span className={`custom-component-${h}`} />
64
- };
65
- const element = shallow(<Resizable {...customProps}>{resizableBoxChildren}</Resizable>);
66
- expect(element.find('.custom-component-se')).toHaveLength(1);
67
- });
68
- });
69
-
70
- describe('<Resizable> props filtering', () => {
71
- const allProps = {
72
- ...props,
73
- draggableOpts: {},
74
- handle: <div />,
75
- };
76
-
77
- // Ensure everything in propTypes is represented here. Otherwise the next two tests are not valid
78
- test('all intended props are in our allProps object', () => {
79
- expect(['children', ...Object.keys(allProps)].sort()).toEqual(Object.keys(Resizable.propTypes).sort());
80
- });
81
-
82
- test('none of these props leak down to the child', () => {
83
- const element = shallow(<Resizable {...allProps}><div className="foo" /></Resizable>);
84
- expect(Object.keys(element.find('.foo').props())).toEqual(['className', 'children']);
85
- });
86
-
87
- test('className is constructed properly', () => {
88
- const element = shallow(<Resizable {...allProps}><div className="foo" /></Resizable>);
89
- expect(element.find('.foo').props().className).toEqual(`foo ${allProps.className} react-resizable`);
90
- });
91
- });
92
-
93
- describe('onResize callback with modified position', () => {
94
- const customProps = {
95
- ...props,
96
- resizeHandles: ['nw', 'sw' ,'ne', 'se', 'n', 's', 'w', 'e'],
97
- };
98
- const mockClientRect = {
99
- left: 0,
100
- top: 0,
101
- };
102
- const node = document.createElement('div');
103
- // $FlowIgnore need to override to have control over dummy dom element
104
- node.getBoundingClientRect = () => ({ ...mockClientRect });
105
- const mockEvent = { };
106
- const element = shallow(<Resizable {...customProps}>{resizableBoxChildren}</Resizable>);
107
- const nwHandle = element.find('DraggableCore').first();
108
-
109
- test('Gradual resizing without movement between does not modify callback', () => {
110
- expect(props.onResize).not.toHaveBeenCalled();
111
- nwHandle.prop('onDrag')(mockEvent, { node, deltaX: 5, deltaY: 10 });
112
- expect(props.onResize).lastCalledWith(
113
- mockEvent,
114
- expect.objectContaining({
115
- size: {
116
- height: 40,
117
- width: 45,
118
- },
119
- })
120
- );
121
- });
122
-
123
- test('Movement between callbacks modifies response values', () => {
124
- expect(props.onResize).not.toHaveBeenCalled();
125
-
126
- mockClientRect.top = -10; // Object moves between callbacks
127
- nwHandle.prop('onDrag')(mockEvent, { node, deltaX: 5, deltaY: 10 });
128
- expect(props.onResize).lastCalledWith(
129
- mockEvent,
130
- expect.objectContaining({
131
- size: {
132
- height: 50, // No height change since deltaY is caused by clientRect moving vertically
133
- width: 45,
134
- },
135
- })
136
- );
137
-
138
- mockClientRect.left = 20; // Object moves between callbacks
139
- nwHandle.prop('onDrag')(mockEvent, { node, deltaX: 5, deltaY: 10 });
140
- expect(props.onResize).lastCalledWith(
141
- mockEvent,
142
- expect.objectContaining({
143
- size: {
144
- height: 40, // Height decreased as deltaY increases - no further top position change since last
145
- width: 25, // Width decreased 25 - 5 from deltaX and 20 from changing position
146
- },
147
- })
148
- );
149
-
150
- props.onResize.mockClear();
151
- mockClientRect.left -= 10; // Object moves between callbacks
152
- mockClientRect.top -= 10; // Object moves between callbacks
153
- nwHandle.prop('onDrag')(mockEvent, { node, deltaX: 10, deltaY: 10 });
154
- expect(props.onResize).not.toHaveBeenCalled();
155
-
156
- mockClientRect.left -= 10; // Object moves between callbacks
157
- mockClientRect.top -= 10; // Object moves between callbacks
158
- const swHandle = element.find('DraggableCore').at(1);
159
- swHandle.prop('onDrag')(mockEvent, { node, deltaX: 10, deltaY: 10 });
160
- expect(props.onResize).lastCalledWith(
161
- mockEvent,
162
- expect.objectContaining({
163
- size: {
164
- height: 60, // Changed since resizing from bottom doesn't cause position change
165
- width: 50, // No change - movement has caused entire delta
166
- },
167
- })
168
- );
169
-
170
- mockClientRect.left -= 10; // Object moves between callbacks
171
- mockClientRect.top -= 10; // Object moves between callbacks
172
- const neHandle = element.find('DraggableCore').at(2);
173
- neHandle.prop('onDrag')(mockEvent, { node, deltaX: 10, deltaY: 10 });
174
- expect(props.onResize).lastCalledWith(
175
- mockEvent,
176
- expect.objectContaining({
177
- size: {
178
- height: 50, // No change - movement has caused entire delta
179
- width: 60, // Changed since resizing from right doesn't cause position change
180
- },
181
- })
182
- );
183
-
184
- mockClientRect.left -= 10; // Object moves between callbacks
185
- mockClientRect.top -= 10; // Object moves between callbacks
186
- const seHandle = element.find('DraggableCore').at(3);
187
- seHandle.prop('onDrag')(mockEvent, { node, deltaX: 10, deltaY: 10 });
188
- expect(props.onResize).lastCalledWith(
189
- mockEvent,
190
- expect.objectContaining({
191
- size: {
192
- height: 60, // Changed since resizing from right doesn't cause position change
193
- width: 60, // Changed since resizing from right doesn't cause position change
194
- },
195
- })
196
- );
197
- });
198
-
199
- test('use of < 1 transformScale', () => {
200
- const element = shallow(<Resizable {...customProps} transformScale={0.5}>{resizableBoxChildren}</Resizable>);
201
- const nwHandle = element.find('DraggableCore').first();
202
- expect(props.onResize).not.toHaveBeenCalled();
203
- nwHandle.prop('onDrag')(mockEvent, { node, deltaX: 5, deltaY: 10 });
204
- expect(props.onResize).lastCalledWith(
205
- mockEvent,
206
- expect.objectContaining({
207
- size: {
208
- // Should be doubled
209
- height: 30,
210
- width: 40,
211
- },
212
- })
213
- );
214
-
215
- mockClientRect.left = 20; // Object moves between callbacks
216
- nwHandle.prop('onDrag')(mockEvent, { node, deltaX: 5, deltaY: 10 });
217
- expect(props.onResize).lastCalledWith(
218
- mockEvent,
219
- expect.objectContaining({
220
- size: {
221
- height: 30, // Height decreased as deltaY increases - no further top position change since last
222
- width: 20, // Width decreased 10 from deltaX and 20 from changing position
223
- },
224
- })
225
- );
226
- });
227
-
228
- test('use of > 1 transformScale', () => {
229
- const element = shallow(<Resizable {...customProps} transformScale={2}>{resizableBoxChildren}</Resizable>);
230
- const nwHandle = element.find('DraggableCore').first();
231
- expect(props.onResize).not.toHaveBeenCalled();
232
- nwHandle.prop('onDrag')(mockEvent, { node, deltaX: 5, deltaY: 10 });
233
- expect(props.onResize).lastCalledWith(
234
- mockEvent,
235
- expect.objectContaining({
236
- size: {
237
- // Should be halved
238
- height: 45,
239
- width: 47.5,
240
- },
241
- })
242
- );
243
- });
244
- });
245
- });
@@ -1,99 +0,0 @@
1
- // @flow
2
- import React from 'react';
3
- import renderer from 'react-test-renderer';
4
- import {shallow} from 'enzyme';
5
-
6
- import ResizableBox from '../lib/ResizableBox';
7
- import Resizable from "../lib/Resizable";
8
-
9
- describe('render ResizableBox', () => {
10
- const props = {
11
- axis: 'x',
12
- draggableOpts: {},
13
- handle: jest.fn(resizeHandle => <span className={`test-class-${resizeHandle}`} />),
14
- handleSize: [20, 20],
15
- height: 50,
16
- lockAspectRatio: false,
17
- maxConstraints: [30, 30],
18
- minConstraints: [10, 10],
19
- onResize: jest.fn(),
20
- onResizeStart: jest.fn(),
21
- onResizeStop: jest.fn(),
22
- resizeHandles: ['w'],
23
- transformScale: 1,
24
- width: 50,
25
- };
26
- const children = <span className="children" />;
27
-
28
- beforeEach(() => {
29
- jest.clearAllMocks();
30
- });
31
-
32
- test('snapshot default props', () => {
33
- const tree = renderer.create(<ResizableBox {...props}>{children}</ResizableBox>).toJSON();
34
- expect(tree).toMatchSnapshot();
35
- });
36
-
37
- test('with correct props', () => {
38
- const element = shallow(<ResizableBox {...props}>{children}</ResizableBox>);
39
- expect(element.state()).toEqual({
40
- height: 50,
41
- propsHeight: 50,
42
- propsWidth: 50,
43
- width: 50,
44
- });
45
- const resizable = element.find(Resizable);
46
- const fakeEvent = {persist: jest.fn()};
47
- const data = {node: children, size: {width: 30, height: 30}, handle: 'w'};
48
- resizable.simulate('resize', fakeEvent, data);
49
- expect(element.state()).toEqual({
50
- height: 30,
51
- propsHeight: 50,
52
- propsWidth: 50,
53
- width: 30,
54
- });
55
- expect(element.find('.children')).toHaveLength(1);
56
- expect(fakeEvent.persist).toHaveBeenCalledTimes(1);
57
- expect(props.onResize).toHaveBeenCalledWith(fakeEvent, data);
58
-
59
- resizable.simulate('resizeStart', fakeEvent, data);
60
- expect(props.onResizeStart).toHaveBeenCalledWith(fakeEvent, data);
61
-
62
- resizable.simulate('resizeStop', fakeEvent, data);
63
- expect(props.onResizeStop).toHaveBeenCalledWith(fakeEvent, data);
64
- });
65
-
66
- describe('<Resizable> props filtering', () => {
67
- // Ensure everything in propTypes is represented here. Otherwise the next two tests are not valid
68
- test('all intended props are in our props object', () => {
69
- expect(['children', 'className', ...Object.keys(props)].sort()).toEqual(Object.keys(Resizable.propTypes).sort());
70
- });
71
-
72
- test('none of these props leak down to the child', () => {
73
- const element = shallow(<ResizableBox {...props} />);
74
- expect(Object.keys(element.find('div').props())).toEqual(['style']);
75
- });
76
-
77
- test('className is constructed properly', () => {
78
- const element = shallow(<ResizableBox {...props} className='foo' />);
79
- expect(element.find('div').props().className).toEqual(`foo`);
80
- });
81
- });
82
-
83
- test('style prop', () => {
84
- const element = shallow(<ResizableBox {...props} style={{backgroundColor: 'red'}}>{children}</ResizableBox>);
85
- expect(element.find('div').at(0).prop('style')).toEqual({
86
- width: '50px',
87
- height: '50px',
88
- backgroundColor: 'red'
89
- });
90
- });
91
-
92
- test('style prop width and height ignored', () => {
93
- const element = shallow(<ResizableBox {...props} style={{width: 10, height: 10}}>{children}</ResizableBox>);
94
- expect(element.find('div').at(0).prop('style')).toEqual({
95
- width: '50px',
96
- height: '50px',
97
- });
98
- });
99
- });
@@ -1,29 +0,0 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
2
-
3
- exports[`render Resizable snapshot default props 1`] = `
4
- <div
5
- className="test-classname react-resizable"
6
- style={
7
- Object {
8
- "height": "50px",
9
- "width": "50px",
10
- }
11
- }
12
- >
13
- <span
14
- className="children"
15
- />
16
- <span
17
- className="react-resizable-handle react-resizable-handle-se"
18
- onMouseDown={[Function]}
19
- onMouseUp={[Function]}
20
- onTouchEnd={[Function]}
21
- />
22
- <span
23
- className="react-resizable-handle react-resizable-handle-e"
24
- onMouseDown={[Function]}
25
- onMouseUp={[Function]}
26
- onTouchEnd={[Function]}
27
- />
28
- </div>
29
- `;
@@ -1,23 +0,0 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
2
-
3
- exports[`render ResizableBox snapshot default props 1`] = `
4
- <div
5
- className="react-resizable"
6
- style={
7
- Object {
8
- "height": "50px",
9
- "width": "50px",
10
- }
11
- }
12
- >
13
- <span
14
- className="children"
15
- />
16
- <span
17
- className="test-class-w"
18
- onMouseDown={[Function]}
19
- onMouseUp={[Function]}
20
- onTouchEnd={[Function]}
21
- />
22
- </div>
23
- `;
@@ -1,107 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <coverage generated="1599153161187" clover="3.2.0">
3
- <project timestamp="1599153161187" name="All files">
4
- <metrics statements="89" coveredstatements="73" conditionals="80" coveredconditionals="59" methods="14" coveredmethods="11" elements="183" coveredelements="143" complexity="0" loc="89" ncloc="89" packages="1" files="4" classes="4"/>
5
- <file name="Resizable.js" path="/Users/samuelreed/git/oss/react-resizable/lib/Resizable.js">
6
- <metrics statements="70" coveredstatements="57" conditionals="62" coveredconditionals="45" methods="9" coveredmethods="6"/>
7
- <line num="10" count="2" type="stmt"/>
8
- <line num="12" count="2" type="stmt"/>
9
- <line num="22" count="10" type="stmt"/>
10
- <line num="24" count="10" type="stmt"/>
11
- <line num="25" count="10" type="stmt"/>
12
- <line num="28" count="0" type="stmt"/>
13
- <line num="32" count="0" type="stmt"/>
14
- <line num="33" count="0" type="stmt"/>
15
- <line num="34" count="0" type="stmt"/>
16
- <line num="38" count="0" type="stmt"/>
17
- <line num="43" count="10" type="stmt"/>
18
- <line num="44" count="10" type="cond" truecount="2" falsecount="2"/>
19
- <line num="47" count="10" type="cond" truecount="1" falsecount="1"/>
20
- <line num="48" count="0" type="stmt"/>
21
- <line num="49" count="0" type="cond" truecount="0" falsecount="2"/>
22
- <line num="50" count="0" type="stmt"/>
23
- <line num="51" count="0" type="stmt"/>
24
- <line num="52" count="0" type="stmt"/>
25
- <line num="56" count="0" type="stmt"/>
26
- <line num="57" count="0" type="stmt"/>
27
- <line num="58" count="0" type="stmt"/>
28
- <line num="62" count="10" type="stmt"/>
29
- <line num="67" count="10" type="cond" truecount="2" falsecount="0"/>
30
- <line num="68" count="10" type="stmt"/>
31
- <line num="69" count="10" type="stmt"/>
32
- <line num="71" count="10" type="cond" truecount="1" falsecount="1"/>
33
- <line num="72" count="10" type="stmt"/>
34
- <line num="73" count="10" type="stmt"/>
35
- <line num="75" count="10" type="cond" truecount="1" falsecount="1"/>
36
- <line num="76" count="10" type="stmt"/>
37
- <line num="77" count="10" type="stmt"/>
38
- <line num="81" count="10" type="stmt"/>
39
- <line num="83" count="10" type="stmt"/>
40
- <line num="93" count="105" type="stmt"/>
41
- <line num="95" count="10" type="cond" truecount="1" falsecount="1"/>
42
- <line num="98" count="10" type="cond" truecount="3" falsecount="1"/>
43
- <line num="99" count="10" type="cond" truecount="3" falsecount="1"/>
44
- <line num="101" count="10" type="cond" truecount="2" falsecount="2"/>
45
- <line num="104" count="10" type="stmt"/>
46
- <line num="105" count="10" type="stmt"/>
47
- <line num="110" count="10" type="stmt"/>
48
- <line num="111" count="10" type="cond" truecount="2" falsecount="0"/>
49
- <line num="115" count="7" type="cond" truecount="2" falsecount="0"/>
50
- <line num="116" count="5" type="stmt"/>
51
- <line num="117" count="5" type="stmt"/>
52
- <line num="119" count="7" type="cond" truecount="2" falsecount="0"/>
53
- <line num="120" count="5" type="stmt"/>
54
- <line num="121" count="5" type="stmt"/>
55
- <line num="125" count="10" type="stmt"/>
56
- <line num="128" count="10" type="cond" truecount="2" falsecount="0"/>
57
- <line num="129" count="10" type="cond" truecount="2" falsecount="0"/>
58
- <line num="132" count="10" type="cond" truecount="1" falsecount="1"/>
59
- <line num="133" count="10" type="cond" truecount="1" falsecount="1"/>
60
- <line num="136" count="10" type="stmt"/>
61
- <line num="138" count="10" type="cond" truecount="2" falsecount="0"/>
62
- <line num="141" count="10" type="cond" truecount="1" falsecount="1"/>
63
- <line num="143" count="10" type="cond" truecount="2" falsecount="0"/>
64
- <line num="144" count="10" type="cond" truecount="4" falsecount="0"/>
65
- <line num="145" count="9" type="cond" truecount="1" falsecount="1"/>
66
- <line num="146" count="9" type="stmt"/>
67
- <line num="150" count="10" type="cond" truecount="1" falsecount="1"/>
68
- <line num="155" count="35" type="stmt"/>
69
- <line num="156" count="35" type="cond" truecount="2" falsecount="0"/>
70
- <line num="157" count="7" type="cond" truecount="2" falsecount="0"/>
71
- <line num="158" count="2" type="stmt"/>
72
- <line num="160" count="5" type="stmt"/>
73
- <line num="162" count="28" type="stmt"/>
74
- <line num="170" count="10" type="stmt"/>
75
- <line num="176" count="10" type="stmt"/>
76
- <line num="182" count="35" type="stmt"/>
77
- </file>
78
- <file name="ResizableBox.js" path="/Users/samuelreed/git/oss/react-resizable/lib/ResizableBox.js">
79
- <metrics statements="13" coveredstatements="11" conditionals="10" coveredconditionals="8" methods="4" coveredmethods="4"/>
80
- <line num="19" count="1" type="stmt"/>
81
- <line num="24" count="6" type="stmt"/>
82
- <line num="33" count="7" type="cond" truecount="3" falsecount="1"/>
83
- <line num="34" count="0" type="stmt"/>
84
- <line num="41" count="7" type="stmt"/>
85
- <line num="44" count="6" type="stmt"/>
86
- <line num="45" count="1" type="stmt"/>
87
- <line num="46" count="1" type="cond" truecount="1" falsecount="1"/>
88
- <line num="47" count="1" type="cond" truecount="2" falsecount="0"/>
89
- <line num="48" count="1" type="cond" truecount="2" falsecount="0"/>
90
- <line num="50" count="0" type="stmt"/>
91
- <line num="75" count="7" type="stmt"/>
92
- <line num="77" count="7" type="stmt"/>
93
- </file>
94
- <file name="propTypes.js" path="/Users/samuelreed/git/oss/react-resizable/lib/propTypes.js">
95
- <metrics statements="1" coveredstatements="1" conditionals="0" coveredconditionals="0" methods="0" coveredmethods="0"/>
96
- <line num="45" count="2" type="stmt"/>
97
- </file>
98
- <file name="utils.js" path="/Users/samuelreed/git/oss/react-resizable/lib/utils.js">
99
- <metrics statements="5" coveredstatements="4" conditionals="8" coveredconditionals="6" methods="1" coveredmethods="1"/>
100
- <line num="7" count="10" type="cond" truecount="2" falsecount="2"/>
101
- <line num="8" count="0" type="stmt"/>
102
- <line num="10" count="10" type="cond" truecount="4" falsecount="0"/>
103
- <line num="11" count="2" type="stmt"/>
104
- <line num="13" count="10" type="stmt"/>
105
- </file>
106
- </project>
107
- </coverage>
@@ -1,5 +0,0 @@
1
- {"/Users/samuelreed/git/oss/react-resizable/lib/Resizable.js": {"path":"/Users/samuelreed/git/oss/react-resizable/lib/Resizable.js","statementMap":{"0":{"start":{"line":10,"column":21},"end":{"line":10,"column":35}},"1":{"start":{"line":12,"column":25},"end":{"line":20,"column":3}},"2":{"start":{"line":22,"column":26},"end":{"line":22,"column":35}},"3":{"start":{"line":24,"column":32},"end":{"line":24,"column":36}},"4":{"start":{"line":25,"column":29},"end":{"line":25,"column":33}},"5":{"start":{"line":28,"column":4},"end":{"line":28,"column":21}},"6":{"start":{"line":32,"column":4},"end":{"line":32,"column":33}},"7":{"start":{"line":33,"column":4},"end":{"line":33,"column":33}},"8":{"start":{"line":34,"column":4},"end":{"line":34,"column":27}},"9":{"start":{"line":38,"column":4},"end":{"line":38,"column":44}},"10":{"start":{"line":43,"column":23},"end":{"line":43,"column":77}},"11":{"start":{"line":44,"column":4},"end":{"line":44,"column":45}},"12":{"start":{"line":44,"column":22},"end":{"line":44,"column":45}},"13":{"start":{"line":47,"column":4},"end":{"line":60,"column":5}},"14":{"start":{"line":48,"column":35},"end":{"line":48,"column":63}},"15":{"start":{"line":49,"column":6},"end":{"line":59,"column":7}},"16":{"start":{"line":50,"column":22},"end":{"line":50,"column":58}},"17":{"start":{"line":51,"column":8},"end":{"line":51,"column":31}},"18":{"start":{"line":52,"column":8},"end":{"line":52,"column":31}},"19":{"start":{"line":56,"column":22},"end":{"line":56,"column":58}},"20":{"start":{"line":57,"column":8},"end":{"line":57,"column":31}},"21":{"start":{"line":58,"column":8},"end":{"line":58,"column":31}},"22":{"start":{"line":62,"column":25},"end":{"line":62,"column":40}},"23":{"start":{"line":67,"column":27},"end":{"line":67,"column":47}},"24":{"start":{"line":68,"column":4},"end":{"line":68,"column":20}},"25":{"start":{"line":69,"column":4},"end":{"line":69,"column":21}},"26":{"start":{"line":71,"column":4},"end":{"line":74,"column":5}},"27":{"start":{"line":72,"column":6},"end":{"line":72,"column":38}},"28":{"start":{"line":73,"column":6},"end":{"line":73,"column":40}},"29":{"start":{"line":75,"column":4},"end":{"line":78,"column":5}},"30":{"start":{"line":76,"column":6},"end":{"line":76,"column":38}},"31":{"start":{"line":77,"column":6},"end":{"line":77,"column":40}},"32":{"start":{"line":81,"column":4},"end":{"line":81,"column":69}},"33":{"start":{"line":83,"column":4},"end":{"line":83,"column":27}},"34":{"start":{"line":93,"column":4},"end":{"line":151,"column":6}},"35":{"start":{"line":95,"column":6},"end":{"line":95,"column":60}},"36":{"start":{"line":95,"column":43},"end":{"line":95,"column":60}},"37":{"start":{"line":98,"column":23},"end":{"line":98,"column":110}},"38":{"start":{"line":99,"column":23},"end":{"line":99,"column":110}},"39":{"start":{"line":101,"column":6},"end":{"line":101,"column":41}},"40":{"start":{"line":101,"column":34},"end":{"line":101,"column":41}},"41":{"start":{"line":104,"column":20},"end":{"line":104,"column":27}},"42":{"start":{"line":105,"column":20},"end":{"line":105,"column":41}},"43":{"start":{"line":110,"column":25},"end":{"line":110,"column":53}},"44":{"start":{"line":111,"column":6},"end":{"line":123,"column":7}},"45":{"start":{"line":115,"column":8},"end":{"line":118,"column":9}},"46":{"start":{"line":116,"column":37},"end":{"line":116,"column":79}},"47":{"start":{"line":117,"column":10},"end":{"line":117,"column":39}},"48":{"start":{"line":119,"column":8},"end":{"line":122,"column":9}},"49":{"start":{"line":120,"column":36},"end":{"line":120,"column":76}},"50":{"start":{"line":121,"column":10},"end":{"line":121,"column":38}},"51":{"start":{"line":125,"column":6},"end":{"line":125,"column":39}},"52":{"start":{"line":128,"column":6},"end":{"line":128,"column":42}},"53":{"start":{"line":128,"column":25},"end":{"line":128,"column":42}},"54":{"start":{"line":129,"column":6},"end":{"line":129,"column":42}},"55":{"start":{"line":129,"column":25},"end":{"line":129,"column":42}},"56":{"start":{"line":132,"column":18},"end":{"line":132,"column":88}},"57":{"start":{"line":133,"column":19},"end":{"line":133,"column":90}},"58":{"start":{"line":136,"column":6},"end":{"line":136,"column":59}},"59":{"start":{"line":138,"column":32},"end":{"line":138,"column":90}},"60":{"start":{"line":141,"column":17},"end":{"line":141,"column":95}},"61":{"start":{"line":143,"column":27},"end":{"line":143,"column":75}},"62":{"start":{"line":144,"column":6},"end":{"line":147,"column":7}},"63":{"start":{"line":145,"column":8},"end":{"line":145,"column":57}},"64":{"start":{"line":145,"column":45},"end":{"line":145,"column":57}},"65":{"start":{"line":146,"column":8},"end":{"line":146,"column":59}},"66":{"start":{"line":150,"column":6},"end":{"line":150,"column":59}},"67":{"start":{"line":150,"column":42},"end":{"line":150,"column":59}},"68":{"start":{"line":155,"column":21},"end":{"line":155,"column":31}},"69":{"start":{"line":156,"column":4},"end":{"line":161,"column":5}},"70":{"start":{"line":157,"column":6},"end":{"line":159,"column":7}},"71":{"start":{"line":158,"column":8},"end":{"line":158,"column":40}},"72":{"start":{"line":160,"column":6},"end":{"line":160,"column":20}},"73":{"start":{"line":162,"column":4},"end":{"line":162,"column":100}},"74":{"start":{"line":170,"column":80},"end":{"line":170,"column":90}},"75":{"start":{"line":176,"column":4},"end":{"line":193,"column":7}},"76":{"start":{"line":182,"column":10},"end":{"line":190,"column":26}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":27,"column":2},"end":{"line":27,"column":3}},"loc":{"start":{"line":27,"column":25},"end":{"line":29,"column":3}},"line":27},"1":{"name":"(anonymous_1)","decl":{"start":{"line":31,"column":2},"end":{"line":31,"column":3}},"loc":{"start":{"line":31,"column":88},"end":{"line":35,"column":3}},"line":31},"2":{"name":"(anonymous_2)","decl":{"start":{"line":37,"column":2},"end":{"line":37,"column":3}},"loc":{"start":{"line":37,"column":14},"end":{"line":39,"column":3}},"line":37},"3":{"name":"(anonymous_3)","decl":{"start":{"line":42,"column":2},"end":{"line":42,"column":3}},"loc":{"start":{"line":42,"column":66},"end":{"line":84,"column":3}},"line":42},"4":{"name":"(anonymous_4)","decl":{"start":{"line":92,"column":2},"end":{"line":92,"column":3}},"loc":{"start":{"line":92,"column":110},"end":{"line":152,"column":3}},"line":92},"5":{"name":"(anonymous_5)","decl":{"start":{"line":93,"column":11},"end":{"line":93,"column":12}},"loc":{"start":{"line":93,"column":78},"end":{"line":151,"column":5}},"line":93},"6":{"name":"(anonymous_6)","decl":{"start":{"line":154,"column":2},"end":{"line":154,"column":3}},"loc":{"start":{"line":154,"column":68},"end":{"line":163,"column":3}},"line":154},"7":{"name":"(anonymous_7)","decl":{"start":{"line":165,"column":2},"end":{"line":165,"column":3}},"loc":{"start":{"line":165,"column":22},"end":{"line":194,"column":3}},"line":165},"8":{"name":"(anonymous_8)","decl":{"start":{"line":181,"column":29},"end":{"line":181,"column":30}},"loc":{"start":{"line":182,"column":10},"end":{"line":190,"column":26}},"line":182}},"branchMap":{"0":{"loc":{"start":{"line":44,"column":4},"end":{"line":44,"column":45}},"type":"if","locations":[{"start":{"line":44,"column":4},"end":{"line":44,"column":45}},{"start":{"line":44,"column":4},"end":{"line":44,"column":45}}],"line":44},"1":{"loc":{"start":{"line":44,"column":8},"end":{"line":44,"column":20}},"type":"binary-expr","locations":[{"start":{"line":44,"column":8},"end":{"line":44,"column":12}},{"start":{"line":44,"column":16},"end":{"line":44,"column":20}}],"line":44},"2":{"loc":{"start":{"line":47,"column":4},"end":{"line":60,"column":5}},"type":"if","locations":[{"start":{"line":47,"column":4},"end":{"line":60,"column":5}},{"start":{"line":47,"column":4},"end":{"line":60,"column":5}}],"line":47},"3":{"loc":{"start":{"line":49,"column":6},"end":{"line":59,"column":7}},"type":"if","locations":[{"start":{"line":49,"column":6},"end":{"line":59,"column":7}},{"start":{"line":49,"column":6},"end":{"line":59,"column":7}}],"line":49},"4":{"loc":{"start":{"line":67,"column":27},"end":{"line":67,"column":47}},"type":"binary-expr","locations":[{"start":{"line":67,"column":27},"end":{"line":67,"column":37}},{"start":{"line":67,"column":41},"end":{"line":67,"column":47}}],"line":67},"5":{"loc":{"start":{"line":71,"column":4},"end":{"line":74,"column":5}},"type":"if","locations":[{"start":{"line":71,"column":4},"end":{"line":74,"column":5}},{"start":{"line":71,"column":4},"end":{"line":74,"column":5}}],"line":71},"6":{"loc":{"start":{"line":75,"column":4},"end":{"line":78,"column":5}},"type":"if","locations":[{"start":{"line":75,"column":4},"end":{"line":78,"column":5}},{"start":{"line":75,"column":4},"end":{"line":78,"column":5}}],"line":75},"7":{"loc":{"start":{"line":95,"column":6},"end":{"line":95,"column":60}},"type":"if","locations":[{"start":{"line":95,"column":6},"end":{"line":95,"column":60}},{"start":{"line":95,"column":6},"end":{"line":95,"column":60}}],"line":95},"8":{"loc":{"start":{"line":98,"column":23},"end":{"line":98,"column":110}},"type":"binary-expr","locations":[{"start":{"line":98,"column":24},"end":{"line":98,"column":50}},{"start":{"line":98,"column":54},"end":{"line":98,"column":77}},{"start":{"line":98,"column":82},"end":{"line":98,"column":94}},{"start":{"line":98,"column":98},"end":{"line":98,"column":110}}],"line":98},"9":{"loc":{"start":{"line":99,"column":23},"end":{"line":99,"column":110}},"type":"binary-expr","locations":[{"start":{"line":99,"column":24},"end":{"line":99,"column":50}},{"start":{"line":99,"column":54},"end":{"line":99,"column":77}},{"start":{"line":99,"column":82},"end":{"line":99,"column":94}},{"start":{"line":99,"column":98},"end":{"line":99,"column":110}}],"line":99},"10":{"loc":{"start":{"line":101,"column":6},"end":{"line":101,"column":41}},"type":"if","locations":[{"start":{"line":101,"column":6},"end":{"line":101,"column":41}},{"start":{"line":101,"column":6},"end":{"line":101,"column":41}}],"line":101},"11":{"loc":{"start":{"line":101,"column":10},"end":{"line":101,"column":32}},"type":"binary-expr","locations":[{"start":{"line":101,"column":10},"end":{"line":101,"column":19}},{"start":{"line":101,"column":23},"end":{"line":101,"column":32}}],"line":101},"12":{"loc":{"start":{"line":111,"column":6},"end":{"line":123,"column":7}},"type":"if","locations":[{"start":{"line":111,"column":6},"end":{"line":123,"column":7}},{"start":{"line":111,"column":6},"end":{"line":123,"column":7}}],"line":111},"13":{"loc":{"start":{"line":115,"column":8},"end":{"line":118,"column":9}},"type":"if","locations":[{"start":{"line":115,"column":8},"end":{"line":118,"column":9}},{"start":{"line":115,"column":8},"end":{"line":118,"column":9}}],"line":115},"14":{"loc":{"start":{"line":119,"column":8},"end":{"line":122,"column":9}},"type":"if","locations":[{"start":{"line":119,"column":8},"end":{"line":122,"column":9}},{"start":{"line":119,"column":8},"end":{"line":122,"column":9}}],"line":119},"15":{"loc":{"start":{"line":128,"column":6},"end":{"line":128,"column":42}},"type":"if","locations":[{"start":{"line":128,"column":6},"end":{"line":128,"column":42}},{"start":{"line":128,"column":6},"end":{"line":128,"column":42}}],"line":128},"16":{"loc":{"start":{"line":129,"column":6},"end":{"line":129,"column":42}},"type":"if","locations":[{"start":{"line":129,"column":6},"end":{"line":129,"column":42}},{"start":{"line":129,"column":6},"end":{"line":129,"column":42}}],"line":129},"17":{"loc":{"start":{"line":132,"column":38},"end":{"line":132,"column":87}},"type":"cond-expr","locations":[{"start":{"line":132,"column":49},"end":{"line":132,"column":83}},{"start":{"line":132,"column":86},"end":{"line":132,"column":87}}],"line":132},"18":{"loc":{"start":{"line":133,"column":40},"end":{"line":133,"column":89}},"type":"cond-expr","locations":[{"start":{"line":133,"column":51},"end":{"line":133,"column":85}},{"start":{"line":133,"column":88},"end":{"line":133,"column":89}}],"line":133},"19":{"loc":{"start":{"line":138,"column":32},"end":{"line":138,"column":90}},"type":"binary-expr","locations":[{"start":{"line":138,"column":32},"end":{"line":138,"column":58}},{"start":{"line":138,"column":62},"end":{"line":138,"column":90}}],"line":138},"20":{"loc":{"start":{"line":141,"column":17},"end":{"line":141,"column":95}},"type":"cond-expr","locations":[{"start":{"line":141,"column":65},"end":{"line":141,"column":88}},{"start":{"line":141,"column":91},"end":{"line":141,"column":95}}],"line":141},"21":{"loc":{"start":{"line":143,"column":27},"end":{"line":143,"column":75}},"type":"binary-expr","locations":[{"start":{"line":143,"column":27},"end":{"line":143,"column":53}},{"start":{"line":143,"column":57},"end":{"line":143,"column":75}}],"line":143},"22":{"loc":{"start":{"line":144,"column":6},"end":{"line":147,"column":7}},"type":"if","locations":[{"start":{"line":144,"column":6},"end":{"line":147,"column":7}},{"start":{"line":144,"column":6},"end":{"line":147,"column":7}}],"line":144},"23":{"loc":{"start":{"line":144,"column":10},"end":{"line":144,"column":29}},"type":"binary-expr","locations":[{"start":{"line":144,"column":10},"end":{"line":144,"column":12}},{"start":{"line":144,"column":16},"end":{"line":144,"column":29}}],"line":144},"24":{"loc":{"start":{"line":145,"column":8},"end":{"line":145,"column":57}},"type":"if","locations":[{"start":{"line":145,"column":8},"end":{"line":145,"column":57}},{"start":{"line":145,"column":8},"end":{"line":145,"column":57}}],"line":145},"25":{"loc":{"start":{"line":150,"column":6},"end":{"line":150,"column":59}},"type":"if","locations":[{"start":{"line":150,"column":6},"end":{"line":150,"column":59}},{"start":{"line":150,"column":6},"end":{"line":150,"column":59}}],"line":150},"26":{"loc":{"start":{"line":156,"column":4},"end":{"line":161,"column":5}},"type":"if","locations":[{"start":{"line":156,"column":4},"end":{"line":161,"column":5}},{"start":{"line":156,"column":4},"end":{"line":161,"column":5}}],"line":156},"27":{"loc":{"start":{"line":157,"column":6},"end":{"line":159,"column":7}},"type":"if","locations":[{"start":{"line":157,"column":6},"end":{"line":159,"column":7}},{"start":{"line":157,"column":6},"end":{"line":159,"column":7}}],"line":157},"28":{"loc":{"start":{"line":178,"column":20},"end":{"line":178,"column":52}},"type":"cond-expr","locations":[{"start":{"line":178,"column":32},"end":{"line":178,"column":47}},{"start":{"line":178,"column":50},"end":{"line":178,"column":52}}],"line":178}},"s":{"0":2,"1":2,"2":10,"3":10,"4":10,"5":0,"6":0,"7":0,"8":0,"9":0,"10":10,"11":10,"12":0,"13":10,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":10,"23":10,"24":10,"25":10,"26":10,"27":10,"28":10,"29":10,"30":10,"31":10,"32":10,"33":10,"34":105,"35":10,"36":0,"37":10,"38":10,"39":10,"40":0,"41":10,"42":10,"43":10,"44":10,"45":7,"46":5,"47":5,"48":7,"49":5,"50":5,"51":10,"52":10,"53":8,"54":10,"55":8,"56":10,"57":10,"58":10,"59":10,"60":10,"61":10,"62":10,"63":9,"64":0,"65":9,"66":10,"67":0,"68":35,"69":35,"70":7,"71":2,"72":5,"73":28,"74":10,"75":10,"76":35},"f":{"0":0,"1":0,"2":0,"3":10,"4":105,"5":10,"6":35,"7":10,"8":35},"b":{"0":[0,10],"1":[10,0],"2":[0,10],"3":[0,0],"4":[10,3],"5":[10,0],"6":[10,0],"7":[0,10],"8":[10,0,10,10],"9":[10,0,10,10],"10":[0,10],"11":[10,0],"12":[7,3],"13":[5,2],"14":[5,2],"15":[8,2],"16":[8,2],"17":[10,0],"18":[10,0],"19":[10,2],"20":[10,0],"21":[10,10],"22":[9,1],"23":[10,10],"24":[0,9],"25":[0,10],"26":[7,28],"27":[2,5],"28":[9,1]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"ac17adea78801bbf722e7d243214b50ff54f62e9"}
2
- ,"/Users/samuelreed/git/oss/react-resizable/lib/ResizableBox.js": {"path":"/Users/samuelreed/git/oss/react-resizable/lib/ResizableBox.js","statementMap":{"0":{"start":{"line":19,"column":21},"end":{"line":22,"column":3}},"1":{"start":{"line":24,"column":29},"end":{"line":29,"column":3}},"2":{"start":{"line":33,"column":4},"end":{"line":40,"column":5}},"3":{"start":{"line":34,"column":6},"end":{"line":39,"column":8}},"4":{"start":{"line":41,"column":4},"end":{"line":41,"column":16}},"5":{"start":{"line":44,"column":13},"end":{"line":52,"column":3}},"6":{"start":{"line":45,"column":19},"end":{"line":45,"column":23}},"7":{"start":{"line":46,"column":4},"end":{"line":51,"column":5}},"8":{"start":{"line":47,"column":6},"end":{"line":47,"column":31}},"9":{"start":{"line":48,"column":6},"end":{"line":48,"column":85}},"10":{"start":{"line":48,"column":32},"end":{"line":48,"column":83}},"11":{"start":{"line":50,"column":6},"end":{"line":50,"column":26}},"12":{"start":{"line":75,"column":8},"end":{"line":75,"column":18}},"13":{"start":{"line":77,"column":4},"end":{"line":96,"column":6}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":31,"column":2},"end":{"line":31,"column":3}},"loc":{"start":{"line":31,"column":86},"end":{"line":42,"column":3}},"line":31},"1":{"name":"(anonymous_1)","decl":{"start":{"line":44,"column":13},"end":{"line":44,"column":14}},"loc":{"start":{"line":44,"column":64},"end":{"line":52,"column":3}},"line":44},"2":{"name":"(anonymous_2)","decl":{"start":{"line":48,"column":26},"end":{"line":48,"column":27}},"loc":{"start":{"line":48,"column":32},"end":{"line":48,"column":83}},"line":48},"3":{"name":"(anonymous_3)","decl":{"start":{"line":54,"column":2},"end":{"line":54,"column":3}},"loc":{"start":{"line":54,"column":22},"end":{"line":97,"column":3}},"line":54}},"branchMap":{"0":{"loc":{"start":{"line":33,"column":4},"end":{"line":40,"column":5}},"type":"if","locations":[{"start":{"line":33,"column":4},"end":{"line":40,"column":5}},{"start":{"line":33,"column":4},"end":{"line":40,"column":5}}],"line":33},"1":{"loc":{"start":{"line":33,"column":8},"end":{"line":33,"column":78}},"type":"binary-expr","locations":[{"start":{"line":33,"column":8},"end":{"line":33,"column":40}},{"start":{"line":33,"column":44},"end":{"line":33,"column":78}}],"line":33},"2":{"loc":{"start":{"line":46,"column":4},"end":{"line":51,"column":5}},"type":"if","locations":[{"start":{"line":46,"column":4},"end":{"line":51,"column":5}},{"start":{"line":46,"column":4},"end":{"line":51,"column":5}}],"line":46},"3":{"loc":{"start":{"line":47,"column":6},"end":{"line":47,"column":30}},"type":"binary-expr","locations":[{"start":{"line":47,"column":6},"end":{"line":47,"column":15}},{"start":{"line":47,"column":19},"end":{"line":47,"column":30}}],"line":47},"4":{"loc":{"start":{"line":48,"column":32},"end":{"line":48,"column":83}},"type":"binary-expr","locations":[{"start":{"line":48,"column":32},"end":{"line":48,"column":51}},{"start":{"line":48,"column":55},"end":{"line":48,"column":83}}],"line":48}},"s":{"0":1,"1":6,"2":7,"3":0,"4":7,"5":6,"6":1,"7":1,"8":1,"9":1,"10":1,"11":0,"12":7,"13":7},"f":{"0":7,"1":1,"2":1,"3":7},"b":{"0":[0,7],"1":[7,7],"2":[1,0],"3":[1,1],"4":[1,1]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"13b4735b99bb58453494ef994e82e17066364f0b"}
3
- ,"/Users/samuelreed/git/oss/react-resizable/lib/propTypes.js": {"path":"/Users/samuelreed/git/oss/react-resizable/lib/propTypes.js","statementMap":{"0":{"start":{"line":45,"column":30},"end":{"line":135,"column":1}}},"fnMap":{},"branchMap":{},"s":{"0":2},"f":{},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"f52cf26a1f1552c79f36287b8963a4f61e041113"}
4
- ,"/Users/samuelreed/git/oss/react-resizable/lib/utils.js": {"path":"/Users/samuelreed/git/oss/react-resizable/lib/utils.js","statementMap":{"0":{"start":{"line":7,"column":2},"end":{"line":9,"column":3}},"1":{"start":{"line":8,"column":4},"end":{"line":8,"column":59}},"2":{"start":{"line":10,"column":2},"end":{"line":12,"column":3}},"3":{"start":{"line":11,"column":4},"end":{"line":11,"column":70}},"4":{"start":{"line":13,"column":2},"end":{"line":13,"column":44}}},"fnMap":{"0":{"name":"cloneElement","decl":{"start":{"line":6,"column":16},"end":{"line":6,"column":28}},"loc":{"start":{"line":6,"column":91},"end":{"line":14,"column":1}},"line":6}},"branchMap":{"0":{"loc":{"start":{"line":7,"column":2},"end":{"line":9,"column":3}},"type":"if","locations":[{"start":{"line":7,"column":2},"end":{"line":9,"column":3}},{"start":{"line":7,"column":2},"end":{"line":9,"column":3}}],"line":7},"1":{"loc":{"start":{"line":7,"column":6},"end":{"line":7,"column":40}},"type":"binary-expr","locations":[{"start":{"line":7,"column":6},"end":{"line":7,"column":17}},{"start":{"line":7,"column":21},"end":{"line":7,"column":40}}],"line":7},"2":{"loc":{"start":{"line":10,"column":2},"end":{"line":12,"column":3}},"type":"if","locations":[{"start":{"line":10,"column":2},"end":{"line":12,"column":3}},{"start":{"line":10,"column":2},"end":{"line":12,"column":3}}],"line":10},"3":{"loc":{"start":{"line":10,"column":6},"end":{"line":10,"column":48}},"type":"binary-expr","locations":[{"start":{"line":10,"column":6},"end":{"line":10,"column":21}},{"start":{"line":10,"column":25},"end":{"line":10,"column":48}}],"line":10}},"s":{"0":10,"1":0,"2":10,"3":2,"4":10},"f":{"0":10},"b":{"0":[0,10],"1":[10,0],"2":[2,8],"3":[10,10]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"45ba6f3fb4cceee1fdbdf3eb9f9637ea6ff5356d"}
5
- }