@wordpress/e2e-tests 7.11.1 → 7.12.1-next.5a1d1283.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/package.json +7 -7
- package/plugins/interactive-blocks/directive-bind/render.php +40 -0
- package/plugins/interactive-blocks/directive-bind/view.js +11 -0
- package/plugins/interactive-blocks/directive-context/render.php +13 -0
- package/plugins/interactive-blocks/directive-context/view.js +34 -1
- package/plugins/interactive-blocks/directive-key/block.json +14 -0
- package/plugins/interactive-blocks/directive-key/render.php +18 -0
- package/plugins/interactive-blocks/directive-key/view.js +23 -0
- package/plugins/interactive-blocks/directive-slots/block.json +14 -0
- package/plugins/interactive-blocks/directive-slots/render.php +67 -0
- package/plugins/interactive-blocks/directive-slots/view.js +18 -0
- package/plugins/interactive-blocks/router-regions/block.json +14 -0
- package/plugins/interactive-blocks/router-regions/render.php +89 -0
- package/plugins/interactive-blocks/router-regions/view.js +43 -0
- package/specs/performance/post-editor.test.results.json +19 -0
- package/specs/performance/site-editor.test.results.json +60 -0
- package/specs/editor/various/__snapshots__/rich-text.test.js.snap +0 -231
- package/specs/editor/various/rich-text.test.js +0 -570
- package/specs/editor/various/shortcut-help.test.js +0 -47
package/CHANGELOG.md
CHANGED
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@wordpress/e2e-tests",
|
3
|
-
"version": "7.
|
3
|
+
"version": "7.12.1-next.5a1d1283.0",
|
4
4
|
"description": "End-To-End (E2E) tests for WordPress.",
|
5
5
|
"author": "The WordPress Contributors",
|
6
6
|
"license": "GPL-2.0-or-later",
|
@@ -23,11 +23,11 @@
|
|
23
23
|
"node": ">=14"
|
24
24
|
},
|
25
25
|
"dependencies": {
|
26
|
-
"@wordpress/e2e-test-utils": "^10.
|
27
|
-
"@wordpress/jest-console": "^7.
|
28
|
-
"@wordpress/jest-puppeteer-axe": "^6.
|
29
|
-
"@wordpress/scripts": "^26.
|
30
|
-
"@wordpress/url": "^3.
|
26
|
+
"@wordpress/e2e-test-utils": "^10.12.1-next.5a1d1283.0",
|
27
|
+
"@wordpress/jest-console": "^7.13.1-next.5a1d1283.0",
|
28
|
+
"@wordpress/jest-puppeteer-axe": "^6.12.1-next.5a1d1283.0",
|
29
|
+
"@wordpress/scripts": "^26.13.1-next.5a1d1283.0",
|
30
|
+
"@wordpress/url": "^3.42.1-next.5a1d1283.0",
|
31
31
|
"chalk": "^4.0.0",
|
32
32
|
"expect-puppeteer": "^4.4.0",
|
33
33
|
"filenamify": "^4.2.0",
|
@@ -45,5 +45,5 @@
|
|
45
45
|
"publishConfig": {
|
46
46
|
"access": "public"
|
47
47
|
},
|
48
|
-
"gitHead": "
|
48
|
+
"gitHead": "fa0b66987dab5a15f38663e06036d09bccffaa4b"
|
49
49
|
}
|
@@ -56,4 +56,44 @@
|
|
56
56
|
>
|
57
57
|
Some Text
|
58
58
|
</p>
|
59
|
+
|
60
|
+
<?php
|
61
|
+
$hydration_cases = array(
|
62
|
+
'false' => '{ "value": false }',
|
63
|
+
'true' => '{ "value": true }',
|
64
|
+
'null' => '{ "value": null }',
|
65
|
+
'undef' => '{ "__any": "any" }',
|
66
|
+
'emptyString' => '{ "value": "" }',
|
67
|
+
'anyString' => '{ "value": "any" }',
|
68
|
+
'number' => '{ "value": 10 }',
|
69
|
+
);
|
70
|
+
?>
|
71
|
+
|
72
|
+
<?php foreach ( $hydration_cases as $type => $context ) : ?>
|
73
|
+
<div
|
74
|
+
data-testid='hydrating <?php echo $type; ?>'
|
75
|
+
data-wp-context='<?php echo $context; ?>'
|
76
|
+
>
|
77
|
+
<img
|
78
|
+
alt="Red dot"
|
79
|
+
data-testid="image"
|
80
|
+
data-wp-bind--width="context.value"
|
81
|
+
src="data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAAUA
|
82
|
+
AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO
|
83
|
+
9TXL0Y4OHwAAAABJRU5ErkJggg=="
|
84
|
+
>
|
85
|
+
<input
|
86
|
+
type="text"
|
87
|
+
data-testid="input"
|
88
|
+
data-wp-bind--name="context.value"
|
89
|
+
data-wp-bind--value="context.value"
|
90
|
+
data-wp-bind--disabled="context.value"
|
91
|
+
data-wp-bind--aria-disabled="context.value"
|
92
|
+
>
|
93
|
+
<button
|
94
|
+
data-testid="toggle value"
|
95
|
+
data-wp-on--click="actions.toggleValue"
|
96
|
+
>Toggle</button>
|
97
|
+
</div>
|
98
|
+
<?php endforeach; ?>
|
59
99
|
</div>
|
@@ -18,6 +18,17 @@
|
|
18
18
|
state.show = ! state.show;
|
19
19
|
state.width += foo.bar;
|
20
20
|
},
|
21
|
+
toggleValue: ( { context } ) => {
|
22
|
+
const previousValue = ( 'previousValue' in context )
|
23
|
+
? context.previousValue
|
24
|
+
// Any string works here; we just want to toggle the value
|
25
|
+
// to ensure Preact renders the same we are hydrating in the
|
26
|
+
// first place.
|
27
|
+
: 'tacocat';
|
28
|
+
|
29
|
+
context.previousValue = context.value;
|
30
|
+
context.value = previousValue;
|
31
|
+
}
|
21
32
|
},
|
22
33
|
} );
|
23
34
|
} )( window );
|
@@ -119,3 +119,16 @@
|
|
119
119
|
</button>
|
120
120
|
</div>
|
121
121
|
</div>
|
122
|
+
|
123
|
+
<div
|
124
|
+
data-wp-interactive
|
125
|
+
data-wp-navigation-id="navigation"
|
126
|
+
data-wp-context='{ "text": "first page" }'
|
127
|
+
>
|
128
|
+
<div data-testid="navigation text" data-wp-text="context.text"></div>
|
129
|
+
<div data-testid="navigation new text" data-wp-text="context.newText"></div>
|
130
|
+
<button data-testid="toggle text" data-wp-on--click="actions.toggleText">Toggle Text</button>
|
131
|
+
<button data-testid="add new text" data-wp-on--click="actions.addNewText">Add New Text</button>
|
132
|
+
<button data-testid="navigate" data-wp-on--click="actions.navigate">Navigate</button>
|
133
|
+
<button data-testid="async navigate" data-wp-on--click="actions.asyncNavigate">Async Navigate</button>
|
134
|
+
</div>
|
@@ -1,5 +1,19 @@
|
|
1
1
|
( ( { wp } ) => {
|
2
|
-
const { store } = wp.interactivity;
|
2
|
+
const { store, navigate } = wp.interactivity;
|
3
|
+
|
4
|
+
const html = `
|
5
|
+
<div
|
6
|
+
data-wp-interactive
|
7
|
+
data-wp-navigation-id="navigation"
|
8
|
+
data-wp-context='{ "text": "second page" }'
|
9
|
+
>
|
10
|
+
<div data-testid="navigation text" data-wp-text="context.text"></div>
|
11
|
+
<div data-testid="navigation new text" data-wp-text="context.newText"></div>
|
12
|
+
<button data-testid="toggle text" data-wp-on--click="actions.toggleText">Toggle Text</button>
|
13
|
+
<button data-testid="add new text" data-wp-on--click="actions.addNewText">Add new text</button>
|
14
|
+
<button data-testid="navigate" data-wp-on--click="actions.navigate">Navigate</button>
|
15
|
+
<button data-testid="async navigate" data-wp-on--click="actions.asyncNavigate">Async Navigate</button>
|
16
|
+
</div>`;
|
3
17
|
|
4
18
|
store( {
|
5
19
|
derived: {
|
@@ -17,6 +31,25 @@
|
|
17
31
|
toggleContextText: ( { context } ) => {
|
18
32
|
context.text = context.text === 'Text 1' ? 'Text 2' : 'Text 1';
|
19
33
|
},
|
34
|
+
toggleText: ( { context } ) => {
|
35
|
+
context.text = "changed dynamically";
|
36
|
+
},
|
37
|
+
addNewText: ( { context } ) => {
|
38
|
+
context.newText = 'some new text';
|
39
|
+
},
|
40
|
+
navigate: () => {
|
41
|
+
navigate( window.location, {
|
42
|
+
force: true,
|
43
|
+
html,
|
44
|
+
} );
|
45
|
+
},
|
46
|
+
asyncNavigate: async ({ context }) => {
|
47
|
+
await navigate( window.location, {
|
48
|
+
force: true,
|
49
|
+
html,
|
50
|
+
} );
|
51
|
+
context.newText = 'changed from async action';
|
52
|
+
}
|
20
53
|
},
|
21
54
|
} );
|
22
55
|
} )( window );
|
@@ -0,0 +1,14 @@
|
|
1
|
+
{
|
2
|
+
"apiVersion": 2,
|
3
|
+
"name": "test/directive-key",
|
4
|
+
"title": "E2E Interactivity tests - directive key",
|
5
|
+
"category": "text",
|
6
|
+
"icon": "heart",
|
7
|
+
"description": "",
|
8
|
+
"supports": {
|
9
|
+
"interactivity": true
|
10
|
+
},
|
11
|
+
"textdomain": "e2e-interactivity",
|
12
|
+
"viewScript": "directive-key-view",
|
13
|
+
"render": "file:./render.php"
|
14
|
+
}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<?php
|
2
|
+
/**
|
3
|
+
* HTML for testing the directive `data-wp-key`.
|
4
|
+
*
|
5
|
+
* @package gutenberg-test-interactive-blocks
|
6
|
+
*/
|
7
|
+
|
8
|
+
?>
|
9
|
+
|
10
|
+
<div data-wp-interactive data-wp-navigation-id="some-id">
|
11
|
+
<ul>
|
12
|
+
<li data-wp-key="id-2" data-testid="first-item">2</li>
|
13
|
+
<li data-wp-key="id-3">3</li>
|
14
|
+
</ul>
|
15
|
+
<button data-testid="navigate" data-wp-on--click="actions.navigate">
|
16
|
+
Navigate
|
17
|
+
</button>
|
18
|
+
</div>
|
@@ -0,0 +1,23 @@
|
|
1
|
+
( ( { wp } ) => {
|
2
|
+
const { store, navigate } = wp.interactivity;
|
3
|
+
|
4
|
+
const html = `
|
5
|
+
<div data-wp-interactive data-wp-navigation-id="some-id">
|
6
|
+
<ul>
|
7
|
+
<li data-wp-key="id-1">1</li>
|
8
|
+
<li data-wp-key="id-2" data-testid="second-item">2</li>
|
9
|
+
<li data-wp-key="id-3">3</li>
|
10
|
+
</ul>
|
11
|
+
</div>`;
|
12
|
+
|
13
|
+
store( {
|
14
|
+
actions: {
|
15
|
+
navigate: () => {
|
16
|
+
navigate( window.location, {
|
17
|
+
force: true,
|
18
|
+
html,
|
19
|
+
} );
|
20
|
+
},
|
21
|
+
},
|
22
|
+
} );
|
23
|
+
} )( window );
|
@@ -0,0 +1,14 @@
|
|
1
|
+
{
|
2
|
+
"apiVersion": 2,
|
3
|
+
"name": "test/directive-slots",
|
4
|
+
"title": "E2E Interactivity tests - directive slots",
|
5
|
+
"category": "text",
|
6
|
+
"icon": "heart",
|
7
|
+
"description": "",
|
8
|
+
"supports": {
|
9
|
+
"interactivity": true
|
10
|
+
},
|
11
|
+
"textdomain": "e2e-interactivity",
|
12
|
+
"viewScript": "directive-slots-view",
|
13
|
+
"render": "file:./render.php"
|
14
|
+
}
|
@@ -0,0 +1,67 @@
|
|
1
|
+
<?php
|
2
|
+
/**
|
3
|
+
* HTML for testing the directive `data-wp-bind`.
|
4
|
+
*
|
5
|
+
* @package gutenberg-test-interactive-blocks
|
6
|
+
*/
|
7
|
+
|
8
|
+
?>
|
9
|
+
<div
|
10
|
+
data-wp-interactive
|
11
|
+
data-wp-slot-provider
|
12
|
+
data-wp-context='{ "text": "fill" }'
|
13
|
+
>
|
14
|
+
<div data-testid="slots" data-wp-context='{ "text": "fill inside slots" }'>
|
15
|
+
<div
|
16
|
+
data-testid="slot-1"
|
17
|
+
data-wp-key="slot-1"
|
18
|
+
data-wp-slot="slot-1"
|
19
|
+
data-wp-context='{ "text": "fill inside slot 1" }'
|
20
|
+
>[1]</div>
|
21
|
+
<div
|
22
|
+
data-testid="slot-2"
|
23
|
+
data-wp-key="slot-2"
|
24
|
+
data-wp-slot='{ "name": "slot-2", "position": "before" }'
|
25
|
+
data-wp-context='{ "text": "[2]" }'
|
26
|
+
data-wp-text='context.text'
|
27
|
+
data-wp-on--click="actions.updateSlotText"
|
28
|
+
>[2]</div>
|
29
|
+
<div
|
30
|
+
data-testid="slot-3"
|
31
|
+
data-wp-key="slot-3"
|
32
|
+
data-wp-slot='{ "name": "slot-3", "position": "after" }'
|
33
|
+
data-wp-context='{ "text": "[3]" }'
|
34
|
+
data-wp-text='context.text'
|
35
|
+
data-wp-on--click="actions.updateSlotText"
|
36
|
+
>[3]</div>
|
37
|
+
<div
|
38
|
+
data-testid="slot-4"
|
39
|
+
data-wp-key="slot-4"
|
40
|
+
data-wp-slot='{ "name": "slot-4", "position": "children" }'
|
41
|
+
data-wp-context='{ "text": "fill inside slot 4" }'
|
42
|
+
>[4]</div>
|
43
|
+
<div
|
44
|
+
data-testid="slot-5"
|
45
|
+
data-wp-key="slot-5"
|
46
|
+
data-wp-slot='{ "name": "slot-5", "position": "replace" }'
|
47
|
+
data-wp-context='{ "text": "fill inside slot 5" }'
|
48
|
+
>[5]</div>
|
49
|
+
</div>
|
50
|
+
|
51
|
+
<div data-testid="fill-container">
|
52
|
+
<span
|
53
|
+
data-testid="fill"
|
54
|
+
data-wp-fill="state.slot"
|
55
|
+
data-wp-text="context.text"
|
56
|
+
>initial</span>
|
57
|
+
</div>
|
58
|
+
|
59
|
+
<div data-wp-on--click="actions.changeSlot">
|
60
|
+
<button data-testid="slot-1-button" data-slot="slot-1">slot-1</button>
|
61
|
+
<button data-testid="slot-2-button" data-slot="slot-2">slot-2</button>
|
62
|
+
<button data-testid="slot-3-button" data-slot="slot-3">slot-3</button>
|
63
|
+
<button data-testid="slot-4-button" data-slot="slot-4">slot-4</button>
|
64
|
+
<button data-testid="slot-5-button" data-slot="slot-5">slot-5</button>
|
65
|
+
<button data-testid="reset" data-slot="">reset</button>
|
66
|
+
</div>
|
67
|
+
</div>
|
@@ -0,0 +1,18 @@
|
|
1
|
+
( ( { wp } ) => {
|
2
|
+
const { store } = wp.interactivity;
|
3
|
+
|
4
|
+
store( {
|
5
|
+
state: {
|
6
|
+
slot: ''
|
7
|
+
},
|
8
|
+
actions: {
|
9
|
+
changeSlot: ( { state, event } ) => {
|
10
|
+
state.slot = event.target.dataset.slot;
|
11
|
+
},
|
12
|
+
updateSlotText: ( { context } ) => {
|
13
|
+
const n = context.text[1];
|
14
|
+
context.text = `[${n} updated]`;
|
15
|
+
},
|
16
|
+
},
|
17
|
+
} );
|
18
|
+
} )( window );
|
@@ -0,0 +1,14 @@
|
|
1
|
+
{
|
2
|
+
"apiVersion": 2,
|
3
|
+
"name": "test/router-regions",
|
4
|
+
"title": "E2E Interactivity tests - router regions",
|
5
|
+
"category": "text",
|
6
|
+
"icon": "heart",
|
7
|
+
"description": "",
|
8
|
+
"supports": {
|
9
|
+
"interactivity": true
|
10
|
+
},
|
11
|
+
"textdomain": "e2e-interactivity",
|
12
|
+
"viewScript": "router-regions-view",
|
13
|
+
"render": "file:./render.php"
|
14
|
+
}
|
@@ -0,0 +1,89 @@
|
|
1
|
+
<?php
|
2
|
+
/**
|
3
|
+
* HTML for testing the hydration of router regions.
|
4
|
+
*
|
5
|
+
* @package gutenberg-test-interactive-blocks
|
6
|
+
* @phpcs:disable VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable
|
7
|
+
*/
|
8
|
+
|
9
|
+
?>
|
10
|
+
|
11
|
+
<section>
|
12
|
+
<h2>Region 1</h2>
|
13
|
+
<div data-wp-interactive data-wp-navigation-id="region-1">
|
14
|
+
<p
|
15
|
+
data-testid="region-1-text"
|
16
|
+
data-wp-text="state.region1.text"
|
17
|
+
>not hydrated</p>
|
18
|
+
<p
|
19
|
+
data-testid="region-1-ssr"
|
20
|
+
>content from page <?php echo $attributes['page']; ?></p>
|
21
|
+
|
22
|
+
<button
|
23
|
+
data-testid="state-counter"
|
24
|
+
data-wp-text="state.counter.value"
|
25
|
+
data-wp-on--click="actions.counter.increment"
|
26
|
+
>NaN</button>
|
27
|
+
|
28
|
+
<?php if ( isset( $attributes['next'] ) ) : ?>
|
29
|
+
<a
|
30
|
+
data-testid="next"
|
31
|
+
data-wp-on--click="actions.router.navigate"
|
32
|
+
href="<?php echo $attributes['next']; ?>"
|
33
|
+
>Next</a>
|
34
|
+
<?php else : ?>
|
35
|
+
<a
|
36
|
+
data-testid="back"
|
37
|
+
data-wp-on--click="actions.router.back"
|
38
|
+
href="#"
|
39
|
+
>Back</a>
|
40
|
+
<?php endif; ?>
|
41
|
+
</div>
|
42
|
+
</section>
|
43
|
+
|
44
|
+
<div>
|
45
|
+
<p
|
46
|
+
data-testid="no-region-text-1"
|
47
|
+
data-wp-text="state.region1.text"
|
48
|
+
>not hydrated</p>
|
49
|
+
</div>
|
50
|
+
|
51
|
+
|
52
|
+
<section>
|
53
|
+
<h2>Region 2</h2>
|
54
|
+
<div data-wp-interactive data-wp-navigation-id="region-2">
|
55
|
+
<p
|
56
|
+
data-testid="region-2-text"
|
57
|
+
data-wp-text="state.region2.text"
|
58
|
+
>not hydrated</p>
|
59
|
+
<p
|
60
|
+
data-testid="region-2-ssr"
|
61
|
+
>content from page <?php echo $attributes['page']; ?></p>
|
62
|
+
|
63
|
+
<button
|
64
|
+
data-testid="context-counter"
|
65
|
+
data-wp-context='{ "counter": { "initialValue": 0 } }'
|
66
|
+
data-wp-init="actions.counter.init"
|
67
|
+
data-wp-text="context.counter.value"
|
68
|
+
data-wp-on--click="actions.counter.increment"
|
69
|
+
>NaN</button>
|
70
|
+
|
71
|
+
<div data-wp-ignore>
|
72
|
+
<div>
|
73
|
+
<p
|
74
|
+
data-testid="no-region-text-2"
|
75
|
+
data-wp-text="state.region2.text"
|
76
|
+
>not hydrated</p>
|
77
|
+
</div>
|
78
|
+
|
79
|
+
<section>
|
80
|
+
<h2>Nested region</h2>
|
81
|
+
<div data-wp-interactive data-wp-navigation-id="nested-region">
|
82
|
+
<p
|
83
|
+
data-testid="nested-region-ssr"
|
84
|
+
>content from page <?php echo $attributes['page']; ?></p>
|
85
|
+
</div>
|
86
|
+
</section>
|
87
|
+
</div>
|
88
|
+
</div>
|
89
|
+
</section>
|
@@ -0,0 +1,43 @@
|
|
1
|
+
( ( { wp } ) => {
|
2
|
+
/**
|
3
|
+
* WordPress dependencies
|
4
|
+
*/
|
5
|
+
const { store, navigate } = wp.interactivity;
|
6
|
+
|
7
|
+
store( {
|
8
|
+
state: {
|
9
|
+
region1: {
|
10
|
+
text: 'hydrated'
|
11
|
+
},
|
12
|
+
region2: {
|
13
|
+
text: 'hydrated'
|
14
|
+
},
|
15
|
+
counter: {
|
16
|
+
value: 0,
|
17
|
+
},
|
18
|
+
},
|
19
|
+
actions: {
|
20
|
+
router: {
|
21
|
+
navigate: async ( { event: e } ) => {
|
22
|
+
e.preventDefault();
|
23
|
+
await navigate( e.target.href );
|
24
|
+
},
|
25
|
+
back: () => history.back(),
|
26
|
+
},
|
27
|
+
counter: {
|
28
|
+
increment: ( { state, context } ) => {
|
29
|
+
if ( context.counter ) {
|
30
|
+
context.counter.value += 1;
|
31
|
+
} else {
|
32
|
+
state.counter.value += 1;
|
33
|
+
}
|
34
|
+
},
|
35
|
+
init: ( { context } ) => {
|
36
|
+
if ( context.counter ) {
|
37
|
+
context.counter.value = context.counter.initialValue;
|
38
|
+
}
|
39
|
+
}
|
40
|
+
},
|
41
|
+
},
|
42
|
+
} );
|
43
|
+
} )( window );
|
@@ -0,0 +1,19 @@
|
|
1
|
+
{
|
2
|
+
"serverResponse": [],
|
3
|
+
"firstPaint": [],
|
4
|
+
"domContentLoaded": [],
|
5
|
+
"loaded": [],
|
6
|
+
"firstContentfulPaint": [],
|
7
|
+
"firstBlock": [],
|
8
|
+
"type": [
|
9
|
+
75.483, 96.376, 82.063, 101.192, 87.573, 56.599000000000004,
|
10
|
+
63.778999999999996, 93.079, 98.277, 95.365, 94.48599999999999, 55.739,
|
11
|
+
81.715, 66.875, 60.897, 54.249, 52.537, 58.745, 49.615
|
12
|
+
],
|
13
|
+
"typeContainer": [],
|
14
|
+
"focus": [],
|
15
|
+
"listViewOpen": [],
|
16
|
+
"inserterOpen": [],
|
17
|
+
"inserterHover": [],
|
18
|
+
"inserterSearch": []
|
19
|
+
}
|
@@ -0,0 +1,60 @@
|
|
1
|
+
{
|
2
|
+
"serverResponse": [
|
3
|
+
409.40000009536743, 405.59999990463257, 410.09999990463257
|
4
|
+
],
|
5
|
+
"firstPaint": [ 438.59999990463257, 447.3999996185303, 449.59999990463257 ],
|
6
|
+
"domContentLoaded": [ 676, 690.0999999046326, 693 ],
|
7
|
+
"loaded": [ 1405.6999998092651, 1400.3999996185303, 1425.9000000953674 ],
|
8
|
+
"firstContentfulPaint": [
|
9
|
+
903.2999997138977, 921.0999999046326, 925.2999997138977
|
10
|
+
],
|
11
|
+
"firstBlock": [
|
12
|
+
3166.7999997138977, 3206.5999999046326, 3238.4000000953674
|
13
|
+
],
|
14
|
+
"type": [
|
15
|
+
81.45900000000002, 37.088, 36.051, 38.596000000000004, 49.931, 40.322,
|
16
|
+
38.99999999999999, 34.235, 33.608999999999995, 32.88399999999999, 30.44,
|
17
|
+
37.113, 31.534999999999997, 33.792, 36.942, 35.251000000000005, 33.722,
|
18
|
+
33.471999999999994, 35.26499999999999, 29.682, 30.173,
|
19
|
+
30.674999999999997, 35.668000000000006, 38.278, 37.62, 37.562, 38.091,
|
20
|
+
32.237, 28.119999999999997, 31.342, 39.89, 37.443, 37.761, 40.262,
|
21
|
+
37.922, 30.727, 30.955000000000002, 36.53000000000001, 32.293, 37.299,
|
22
|
+
38.55800000000001, 39.85699999999999, 33.721999999999994, 30.139,
|
23
|
+
29.294, 31.016, 35.7, 36.839, 31.061000000000003, 29.540000000000003,
|
24
|
+
48.998999999999995, 35.423, 33.650000000000006, 29.404999999999998,
|
25
|
+
32.744, 30.584999999999997, 30.705, 31.873, 28.907, 30.516, 30.882,
|
26
|
+
29.257, 29.794, 31.150000000000002, 32.095, 31.066000000000003, 32.872,
|
27
|
+
31.894, 31.331, 31.796, 31.675, 30.427999999999997, 30.872, 30.974,
|
28
|
+
32.707, 31.849999999999998, 28.935, 28.441000000000003,
|
29
|
+
30.566000000000003, 29.014, 33.158, 32.272, 28.990000000000002, 28.76,
|
30
|
+
28.967000000000002, 29.418, 28.503, 31.255000000000003, 28.703,
|
31
|
+
30.369000000000003, 34.910000000000004, 31.03, 28.523,
|
32
|
+
32.361999999999995, 33.870000000000005, 30.11, 30.944000000000003,
|
33
|
+
28.601, 30.572999999999997, 33.216, 30.822, 28.892000000000003,
|
34
|
+
32.95099999999999, 31.228, 28.251, 34.89, 30.131000000000004, 29.395,
|
35
|
+
31.557000000000002, 28.137, 32.051, 38.242, 36.382999999999996, 35.037,
|
36
|
+
36.2, 31.717999999999996, 28.927999999999997, 32.540000000000006,
|
37
|
+
35.448, 28.292, 35.059999999999995, 31.345000000000002, 36.122, 31.69,
|
38
|
+
28.492, 29.308, 30.793000000000003, 28.784000000000002,
|
39
|
+
28.275999999999996, 36.577999999999996, 30.220000000000002, 35.832,
|
40
|
+
31.192, 36.102999999999994, 30.733999999999998, 30.574,
|
41
|
+
35.455999999999996, 29.963, 37.967, 29.323999999999998, 36.643,
|
42
|
+
31.200000000000003, 36.864999999999995, 32.344, 30.321, 29.214, 28.627,
|
43
|
+
29.71, 29.006, 36.067, 29.583, 29.562, 37.795, 30.166999999999998,
|
44
|
+
30.811999999999998, 33.319, 32.939, 39.233999999999995, 28.856,
|
45
|
+
34.81700000000001, 30.324, 33.611000000000004, 33.707,
|
46
|
+
30.191000000000003, 29.191, 29.23, 30.715, 29.281, 28.168,
|
47
|
+
33.449000000000005, 36.36600000000001, 29.086, 30.589, 29.13, 28.789,
|
48
|
+
29.156000000000002, 43.327, 34.439, 28.777, 30.586, 28.973000000000003,
|
49
|
+
30.026, 40.023, 30.203, 28.328000000000003, 30.825000000000003, 29.739,
|
50
|
+
31.504, 43.708000000000006, 29.296999999999997, 32.294, 31.733, 30.44,
|
51
|
+
28.879, 30.349999999999998, 29.466, 29.302999999999997, 30,
|
52
|
+
29.468999999999998, 28.740000000000002
|
53
|
+
],
|
54
|
+
"typeContainer": [],
|
55
|
+
"focus": [],
|
56
|
+
"inserterOpen": [],
|
57
|
+
"inserterHover": [],
|
58
|
+
"inserterSearch": [],
|
59
|
+
"listViewOpen": []
|
60
|
+
}
|