@pie-lib/graphing-solution-set 2.16.0-beta.0 → 2.16.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 +165 -1
- package/package.json +14 -9
- package/src/axis/axes.jsx +1 -1
- package/src/coordinates-label.jsx +1 -1
- package/src/graph-with-controls.jsx +1 -1
- package/src/grid-setup.jsx +5 -8
- package/src/labels.jsx +1 -1
- package/src/mark-label.jsx +1 -1
- package/src/toggle-bar.jsx +1 -1
- package/src/tools/polygon/line.jsx +1 -1
- package/src/tools/polygon/polygon.jsx +1 -1
- package/src/tools/shared/arrow-head.jsx +1 -1
- package/src/tools/shared/line/index.jsx +1 -1
- package/src/tools/shared/line/line-path.jsx +1 -1
- package/src/tools/shared/point/base-point.jsx +1 -1
- package/src/tools/shared/point/index.jsx +1 -1
- package/src/tools/shared/styles.js +1 -1
- package/src/undo-redo.jsx +1 -1
- package/lib/__tests__/graph-with-controls.test.js +0 -191
- package/lib/__tests__/graph.test.js +0 -290
- package/lib/__tests__/grid.test.js +0 -40
- package/lib/__tests__/labels.test.js +0 -59
- package/lib/__tests__/mark-label.test.js +0 -154
- package/lib/__tests__/toggle-bar.test.js +0 -54
- package/lib/__tests__/tool-menu.test.js +0 -43
- package/lib/__tests__/undo-redo.test.js +0 -42
- package/lib/__tests__/use-debounce.test.js +0 -28
- package/lib/__tests__/utils.js +0 -72
- package/lib/__tests__/utils.test.js +0 -133
- package/lib/axis/__tests__/arrow.test.js +0 -68
- package/lib/axis/__tests__/axes.test.js +0 -214
- package/lib/axis/arrow.js +0 -115
- package/lib/axis/axes.js +0 -415
- package/lib/axis/index.js +0 -26
- package/lib/bg.js +0 -139
- package/lib/container/actions.js +0 -24
- package/lib/container/index.js +0 -166
- package/lib/container/marks.js +0 -27
- package/lib/container/middleware.js +0 -25
- package/lib/container/reducer.js +0 -25
- package/lib/coordinates-label.js +0 -109
- package/lib/graph-with-controls.js +0 -372
- package/lib/graph.js +0 -419
- package/lib/grid-setup.js +0 -462
- package/lib/grid.js +0 -176
- package/lib/index.js +0 -51
- package/lib/labels.js +0 -299
- package/lib/mark-label.js +0 -208
- package/lib/toggle-bar.js +0 -336
- package/lib/tool-menu.js +0 -325
- package/lib/tools/index.js +0 -29
- package/lib/tools/line/__tests__/component.test.js +0 -56
- package/lib/tools/line/component.js +0 -106
- package/lib/tools/line/index.js +0 -16
- package/lib/tools/polygon/__tests__/component.test.js +0 -245
- package/lib/tools/polygon/__tests__/index.test.js +0 -95
- package/lib/tools/polygon/__tests__/line.test.js +0 -43
- package/lib/tools/polygon/__tests__/polygon.test.js +0 -73
- package/lib/tools/polygon/component.js +0 -457
- package/lib/tools/polygon/index.js +0 -106
- package/lib/tools/polygon/line.js +0 -151
- package/lib/tools/polygon/polygon.js +0 -171
- package/lib/tools/shared/__tests__/arrow-head.test.js +0 -62
- package/lib/tools/shared/arrow-head.js +0 -75
- package/lib/tools/shared/line/__tests__/index.test.js +0 -291
- package/lib/tools/shared/line/__tests__/line-path.test.js +0 -78
- package/lib/tools/shared/line/__tests__/with-root-edge.test.js +0 -122
- package/lib/tools/shared/line/index.js +0 -637
- package/lib/tools/shared/line/line-path.js +0 -145
- package/lib/tools/shared/line/with-root-edge.js +0 -155
- package/lib/tools/shared/point/__tests__/arrow-point.test.js +0 -137
- package/lib/tools/shared/point/__tests__/base-point.test.js +0 -134
- package/lib/tools/shared/point/arrow-point.js +0 -113
- package/lib/tools/shared/point/arrow.js +0 -96
- package/lib/tools/shared/point/base-point.js +0 -151
- package/lib/tools/shared/point/index.js +0 -94
- package/lib/tools/shared/styles.js +0 -49
- package/lib/tools/shared/types.js +0 -19
- package/lib/undo-redo.js +0 -107
- package/lib/use-debounce.js +0 -32
- package/lib/utils.js +0 -314
package/CHANGELOG.md
CHANGED
|
@@ -3,7 +3,15 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
-
# 2.16.0
|
|
6
|
+
# 2.16.0 (2025-07-31)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @pie-lib/graphing-solution-set
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
# 2.17.0 (2025-07-31)
|
|
7
15
|
|
|
8
16
|
**Note:** Version bump only for package @pie-lib/graphing-solution-set
|
|
9
17
|
|
|
@@ -11,6 +19,162 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
|
11
19
|
|
|
12
20
|
|
|
13
21
|
|
|
22
|
+
# 2.16.0 (2025-07-31)
|
|
23
|
+
|
|
24
|
+
**Note:** Version bump only for package @pie-lib/graphing-solution-set
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
# 2.15.0-beta.8 (2025-07-25)
|
|
31
|
+
|
|
32
|
+
**Note:** Version bump only for package @pie-lib/graphing-solution-set
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
# 2.15.0-beta.7 (2025-07-25)
|
|
39
|
+
|
|
40
|
+
**Note:** Version bump only for package @pie-lib/graphing-solution-set
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
# 2.15.0-beta.7 (2025-07-25)
|
|
47
|
+
|
|
48
|
+
**Note:** Version bump only for package @pie-lib/graphing-solution-set
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
# 2.15.0-beta.6 (2025-07-25)
|
|
55
|
+
|
|
56
|
+
**Note:** Version bump only for package @pie-lib/graphing-solution-set
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
# 2.15.0-beta.6 (2025-07-25)
|
|
63
|
+
|
|
64
|
+
**Note:** Version bump only for package @pie-lib/graphing-solution-set
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
# 2.15.0-beta.5 (2025-07-25)
|
|
71
|
+
|
|
72
|
+
**Note:** Version bump only for package @pie-lib/graphing-solution-set
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
# 2.15.0-beta.5 (2025-07-25)
|
|
79
|
+
|
|
80
|
+
**Note:** Version bump only for package @pie-lib/graphing-solution-set
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
# 2.15.0-beta.4 (2025-07-25)
|
|
87
|
+
|
|
88
|
+
**Note:** Version bump only for package @pie-lib/graphing-solution-set
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
# 2.15.0-beta.3 (2025-07-25)
|
|
95
|
+
|
|
96
|
+
**Note:** Version bump only for package @pie-lib/graphing-solution-set
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
# 2.15.0-beta.4 (2025-07-23)
|
|
103
|
+
|
|
104
|
+
**Note:** Version bump only for package @pie-lib/graphing-solution-set
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
# 2.15.0-beta.3 (2025-07-23)
|
|
111
|
+
|
|
112
|
+
**Note:** Version bump only for package @pie-lib/graphing-solution-set
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
# 2.15.0-beta.3 (2025-07-20)
|
|
119
|
+
|
|
120
|
+
**Note:** Version bump only for package @pie-lib/graphing-solution-set
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
# 2.15.0-beta.2 (2025-07-20)
|
|
127
|
+
|
|
128
|
+
**Note:** Version bump only for package @pie-lib/graphing-solution-set
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
# 2.15.0-beta.1 (2025-07-20)
|
|
135
|
+
|
|
136
|
+
**Note:** Version bump only for package @pie-lib/graphing-solution-set
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
# 2.15.0-beta.2 (2025-07-20)
|
|
143
|
+
|
|
144
|
+
**Note:** Version bump only for package @pie-lib/graphing-solution-set
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
# 2.15.0-beta.1 (2025-07-20)
|
|
151
|
+
|
|
152
|
+
**Note:** Version bump only for package @pie-lib/graphing-solution-set
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
# 2.15.0-beta.1 (2025-07-20)
|
|
159
|
+
|
|
160
|
+
**Note:** Version bump only for package @pie-lib/graphing-solution-set
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
# 2.15.0-beta.0 (2025-07-20)
|
|
167
|
+
|
|
168
|
+
**Note:** Version bump only for package @pie-lib/graphing-solution-set
|
|
169
|
+
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
# 2.16.0-beta.0 (2025-07-15)
|
|
175
|
+
|
|
176
|
+
**Note:** Version bump only for package @pie-lib/graphing-solution-set
|
|
177
|
+
|
|
14
178
|
# 2.15.0-beta.0 (2025-07-15)
|
|
15
179
|
|
|
16
180
|
**Note:** Version bump only for package @pie-lib/graphing-solution-set
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"publishConfig": {
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
|
-
"version": "2.16.0
|
|
6
|
+
"version": "2.16.0",
|
|
7
7
|
"description": "Graphing components",
|
|
8
8
|
"keywords": [
|
|
9
9
|
"react",
|
|
@@ -18,15 +18,19 @@
|
|
|
18
18
|
"dependencies": {
|
|
19
19
|
"@mapbox/point-geometry": "^0.1.0",
|
|
20
20
|
"@material-ui/core": "^3.8.3",
|
|
21
|
-
"@
|
|
22
|
-
"@pie-lib/
|
|
23
|
-
"@pie-lib/
|
|
24
|
-
"@pie-lib/
|
|
25
|
-
"@pie-lib/
|
|
21
|
+
"@material-ui/icons": "^3.0.2",
|
|
22
|
+
"@pie-lib/drag": "^2.5.0",
|
|
23
|
+
"@pie-lib/editable-html": "^11.4.0",
|
|
24
|
+
"@pie-lib/graphing-utils": "^1.4.0",
|
|
25
|
+
"@pie-lib/plot": "^2.10.0",
|
|
26
|
+
"@pie-lib/tools": "^0.12.0",
|
|
27
|
+
"@pie-lib/translator": "^2.6.0",
|
|
26
28
|
"@vx/axis": "^0.0.189",
|
|
27
29
|
"@vx/clip-path": "^0.0.189",
|
|
30
|
+
"@vx/curve": "^0.0.189",
|
|
28
31
|
"@vx/event": "^0.0.189",
|
|
29
32
|
"@vx/grid": "^0.0.189",
|
|
33
|
+
"@vx/group": "^0.0.183",
|
|
30
34
|
"@vx/point": "^0.0.189",
|
|
31
35
|
"@vx/shape": "^0.0.189",
|
|
32
36
|
"classnames": "^2.2.6",
|
|
@@ -35,16 +39,17 @@
|
|
|
35
39
|
"debug": "^4.1.1",
|
|
36
40
|
"invariant": "^2.2.4",
|
|
37
41
|
"lodash": "^4.17.11",
|
|
42
|
+
"prop-types": "^15.7.2",
|
|
38
43
|
"react": "^16.8.1",
|
|
44
|
+
"react-dom": "^16.9.0",
|
|
39
45
|
"react-draggable": "^3.3.0",
|
|
40
46
|
"react-input-autosize": "^2.2.1",
|
|
41
47
|
"react-redux": "^6.0.0",
|
|
42
|
-
"redux": "^4.0.1"
|
|
43
|
-
"redux-undo": "beta"
|
|
48
|
+
"redux": "^4.0.1"
|
|
44
49
|
},
|
|
45
50
|
"peerDependencies": {
|
|
46
51
|
"react": "^16.8.1"
|
|
47
52
|
},
|
|
48
|
-
"gitHead": "
|
|
53
|
+
"gitHead": "889a13bfea2c768b8a3a6eabfc6fe7b7725aa832",
|
|
49
54
|
"scripts": {}
|
|
50
55
|
}
|
package/src/axis/axes.jsx
CHANGED
|
@@ -5,7 +5,7 @@ import PropTypes from 'prop-types';
|
|
|
5
5
|
import Arrow from './arrow';
|
|
6
6
|
import { withStyles } from '@material-ui/core';
|
|
7
7
|
import { countWords, findLongestWord, amountToIncreaseWidth, getTickValues } from '../utils';
|
|
8
|
-
import { color, Readable } from '
|
|
8
|
+
import { color, Readable } from '../../../render-ui/src/index';
|
|
9
9
|
|
|
10
10
|
export const AxisPropTypes = {
|
|
11
11
|
includeArrows: PropTypes.object,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import { types } from '@pie-lib/plot';
|
|
4
|
-
import { color } from '
|
|
4
|
+
import { color } from '../../render-ui/src/index';
|
|
5
5
|
import { withStyles } from '@material-ui/core/styles';
|
|
6
6
|
import InputBase from '@material-ui/core/InputBase';
|
|
7
7
|
import { roundNumber } from './utils';
|
|
@@ -4,7 +4,7 @@ import { withStyles } from '@material-ui/core/styles';
|
|
|
4
4
|
import classNames from 'classnames';
|
|
5
5
|
import uniq from 'lodash/uniq';
|
|
6
6
|
import isString from 'lodash/isString';
|
|
7
|
-
import { color } from '
|
|
7
|
+
import { color } from '../../render-ui/src/index';
|
|
8
8
|
import ToolMenu from './tool-menu';
|
|
9
9
|
import Graph, { graphPropTypes } from './graph';
|
|
10
10
|
import UndoRedo from './undo-redo';
|
package/src/grid-setup.jsx
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
|
-
import { color, InputContainer } from '
|
|
3
|
+
import { color, InputContainer } from '../../render-ui/src/index';
|
|
4
4
|
import { withStyles } from '@material-ui/core/styles';
|
|
5
5
|
import ExpansionPanelSummary from '@material-ui/core/ExpansionPanelSummary';
|
|
6
6
|
import Typography from '@material-ui/core/Typography';
|
|
@@ -310,16 +310,13 @@ const GridSetup = (props) => {
|
|
|
310
310
|
<ExpansionPanelDetails>
|
|
311
311
|
<div className={classes.content}>
|
|
312
312
|
{includeAxesEnabled && (
|
|
313
|
-
<Toggle
|
|
314
|
-
label="Include axes and labels?"
|
|
315
|
-
toggle={onIncludeAxes}
|
|
316
|
-
checked={includeAxes} />
|
|
313
|
+
<Toggle label="Include axes and labels?" toggle={onIncludeAxes} checked={includeAxes} />
|
|
317
314
|
)}
|
|
318
315
|
{standardGridEnabled && (
|
|
319
316
|
<Toggle
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
317
|
+
label="Constrain to standard coordinate grid?"
|
|
318
|
+
toggle={onStandardGridChanged}
|
|
319
|
+
checked={standardGrid}
|
|
323
320
|
/>
|
|
324
321
|
)}
|
|
325
322
|
{includeAxes ? axesConfig : gridlinesConfig}
|
package/src/labels.jsx
CHANGED
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import { withStyles } from '@material-ui/core/styles';
|
|
4
4
|
import { types } from '@pie-lib/plot';
|
|
5
|
-
import { color, Readable } from '
|
|
5
|
+
import { color, Readable } from '../../render-ui/src/index';
|
|
6
6
|
import EditableHtml from '@pie-lib/editable-html';
|
|
7
7
|
import cn from 'classnames';
|
|
8
8
|
|
package/src/mark-label.jsx
CHANGED
|
@@ -5,7 +5,7 @@ import { withStyles } from '@material-ui/core/styles';
|
|
|
5
5
|
import AutosizeInput from 'react-input-autosize';
|
|
6
6
|
import { useDebounce } from './use-debounce';
|
|
7
7
|
import { types } from '@pie-lib/plot';
|
|
8
|
-
import { color } from '
|
|
8
|
+
import { color } from '../../render-ui/src/index';
|
|
9
9
|
|
|
10
10
|
const styles = (theme) => ({
|
|
11
11
|
input: {
|
package/src/toggle-bar.jsx
CHANGED
|
@@ -3,7 +3,7 @@ import PropTypes from 'prop-types';
|
|
|
3
3
|
import { withStyles } from '@material-ui/core/styles';
|
|
4
4
|
import cn from 'classnames';
|
|
5
5
|
import Button from '@material-ui/core/Button';
|
|
6
|
-
import { color } from '
|
|
6
|
+
import { color } from '../../render-ui/src/index';
|
|
7
7
|
import { allTools } from './tools';
|
|
8
8
|
import { withDragContext, DragSource, DropTarget } from '@pie-lib/drag';
|
|
9
9
|
import Translator from '@pie-lib/translator';
|
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import { withStyles } from '@material-ui/core/styles';
|
|
4
4
|
import { types, gridDraggable } from '@pie-lib/plot';
|
|
5
|
-
import { color } from '
|
|
5
|
+
import { color } from '../../../../render-ui/src/index';
|
|
6
6
|
import * as utils from '../../utils';
|
|
7
7
|
import classNames from 'classnames';
|
|
8
8
|
import { correct, disabled, incorrect, missing } from '../shared/styles';
|
|
@@ -4,7 +4,7 @@ import { withStyles } from '@material-ui/core/styles';
|
|
|
4
4
|
import { gridDraggable, types } from '@pie-lib/plot';
|
|
5
5
|
import * as utils from '../../utils';
|
|
6
6
|
import classNames from 'classnames';
|
|
7
|
-
import { color } from '
|
|
7
|
+
import { color } from '../../../../render-ui/src/index';
|
|
8
8
|
import { fade } from '@material-ui/core/styles/colorManipulator';
|
|
9
9
|
import { correct, disabled, incorrect } from '../shared/styles';
|
|
10
10
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
|
-
import { color } from '
|
|
3
|
+
import { color } from '../../../../render-ui/src/index';
|
|
4
4
|
|
|
5
5
|
export const ArrowHead = ({ size, transform, points }) => (
|
|
6
6
|
<polygon points={points || `0,0 ${size},${size / 2} 0,${size}`} transform={transform} />
|
|
@@ -8,7 +8,7 @@ import { disabled, correct, incorrect, missing } from '../styles';
|
|
|
8
8
|
import ReactDOM from 'react-dom';
|
|
9
9
|
import MarkLabel from '../../../mark-label';
|
|
10
10
|
import isEmpty from 'lodash/isEmpty';
|
|
11
|
-
import { color } from '
|
|
11
|
+
import { color } from '../../../../../render-ui/src/index';
|
|
12
12
|
import { getMiddleOfTwoPoints, equalPoints, sameAxes } from '../../../utils';
|
|
13
13
|
|
|
14
14
|
export const lineTool = (type, Component) => () => ({
|
|
@@ -5,7 +5,7 @@ import { types } from '@pie-lib/plot';
|
|
|
5
5
|
import classNames from 'classnames';
|
|
6
6
|
import { disabled, correct, incorrect, missing } from '../styles';
|
|
7
7
|
import * as vx from '@vx/shape';
|
|
8
|
-
import { color } from '
|
|
8
|
+
import { color } from '../../../../../render-ui/src/index';
|
|
9
9
|
|
|
10
10
|
export class RawLinePath extends React.Component {
|
|
11
11
|
static propTypes = {
|
|
@@ -5,7 +5,7 @@ import { types } from '@pie-lib/plot';
|
|
|
5
5
|
import CoordinatesLabel from '../../../coordinates-label';
|
|
6
6
|
import ReactDOM from 'react-dom';
|
|
7
7
|
import { thinnerShapesNeeded } from '../../../utils';
|
|
8
|
-
import { color } from '
|
|
8
|
+
import { color } from '../../../../../render-ui/src/index';
|
|
9
9
|
|
|
10
10
|
export class RawBp extends React.Component {
|
|
11
11
|
static propTypes = {
|
|
@@ -4,7 +4,7 @@ import * as utils from '../../../utils';
|
|
|
4
4
|
import { disabled, correct, incorrect, missing } from '../styles';
|
|
5
5
|
import { RawBp } from './base-point';
|
|
6
6
|
import { RawArrow } from './arrow-point';
|
|
7
|
-
import { color } from '
|
|
7
|
+
import { color } from '../../../../../render-ui/src/index';
|
|
8
8
|
import BaseArrow from './arrow';
|
|
9
9
|
|
|
10
10
|
const opts = {
|
package/src/undo-redo.jsx
CHANGED
|
@@ -3,7 +3,7 @@ import PropTypes from 'prop-types';
|
|
|
3
3
|
import classNames from 'classnames';
|
|
4
4
|
import Button from '@material-ui/core/Button';
|
|
5
5
|
import { withStyles } from '@material-ui/core';
|
|
6
|
-
import { color } from '
|
|
6
|
+
import { color } from '../../render-ui/src/index';
|
|
7
7
|
import Translator from '@pie-lib/translator';
|
|
8
8
|
|
|
9
9
|
const { translator } = Translator;
|
|
@@ -1,191 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
6
|
-
|
|
7
|
-
var _enzyme = require("enzyme");
|
|
8
|
-
|
|
9
|
-
var _react = _interopRequireDefault(require("react"));
|
|
10
|
-
|
|
11
|
-
var _graphWithControls = require("../graph-with-controls");
|
|
12
|
-
|
|
13
|
-
var _tools = require("@pie-lib/tools");
|
|
14
|
-
|
|
15
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
16
|
-
|
|
17
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
18
|
-
|
|
19
|
-
var line = {
|
|
20
|
-
type: 'line',
|
|
21
|
-
from: {
|
|
22
|
-
x: 0,
|
|
23
|
-
y: 0
|
|
24
|
-
},
|
|
25
|
-
to: {
|
|
26
|
-
x: 1,
|
|
27
|
-
y: 1
|
|
28
|
-
},
|
|
29
|
-
label: 'Line',
|
|
30
|
-
building: true
|
|
31
|
-
};
|
|
32
|
-
var polygon = {
|
|
33
|
-
type: 'polygon',
|
|
34
|
-
points: [{
|
|
35
|
-
x: 0,
|
|
36
|
-
y: 0
|
|
37
|
-
}, {
|
|
38
|
-
x: 1,
|
|
39
|
-
y: 1
|
|
40
|
-
}, {
|
|
41
|
-
x: 2,
|
|
42
|
-
y: 2
|
|
43
|
-
}]
|
|
44
|
-
};
|
|
45
|
-
var marks = [line, polygon];
|
|
46
|
-
describe('setToolbarAvailability', function () {
|
|
47
|
-
it('sets `toolbar: true` if tool should be displayed in toolbar - all tools', function () {
|
|
48
|
-
var result = (0, _graphWithControls.setToolbarAvailability)(_tools.allTools);
|
|
49
|
-
var allTrue = new Array(_tools.toolsArr.length).fill(true);
|
|
50
|
-
expect(result.map(function (r) {
|
|
51
|
-
return r.toolbar;
|
|
52
|
-
})).toEqual(allTrue);
|
|
53
|
-
});
|
|
54
|
-
it('sets `toolbar: true` if tool should be displayed in toolbar - few tools', function () {
|
|
55
|
-
var result = (0, _graphWithControls.setToolbarAvailability)(['line', 'polygon']);
|
|
56
|
-
var allOthersFalse = new Array(_tools.toolsArr.length - 2).fill(false);
|
|
57
|
-
expect(result.filter(function (r) {
|
|
58
|
-
return r.type === 'line' || r.type === 'polygon';
|
|
59
|
-
}).map(function (r) {
|
|
60
|
-
return r.toolbar;
|
|
61
|
-
})).toEqual([true, true]);
|
|
62
|
-
expect(result.filter(function (r) {
|
|
63
|
-
return r.type !== 'line' && r.type !== 'polygon';
|
|
64
|
-
}).map(function (r) {
|
|
65
|
-
return r.toolbar;
|
|
66
|
-
})).toEqual(allOthersFalse);
|
|
67
|
-
});
|
|
68
|
-
});
|
|
69
|
-
describe('toolIsAvailable', function () {
|
|
70
|
-
var tools = (0, _graphWithControls.setToolbarAvailability)(['line', 'polygon']);
|
|
71
|
-
it('returns true if tool is available', function () {
|
|
72
|
-
expect((0, _graphWithControls.toolIsAvailable)(tools, (0, _tools.line)())).toEqual(true);
|
|
73
|
-
});
|
|
74
|
-
});
|
|
75
|
-
describe('getAvailableTool', function () {
|
|
76
|
-
it('returns the first available tool in list if there is any', function () {
|
|
77
|
-
var tools = (0, _graphWithControls.setToolbarAvailability)(['line', 'polygon']);
|
|
78
|
-
expect((0, _graphWithControls.getAvailableTool)(tools).toolbar).toEqual(true);
|
|
79
|
-
});
|
|
80
|
-
it('returns undefined list if there is no available tool', function () {
|
|
81
|
-
var tools = (0, _graphWithControls.setToolbarAvailability)([]);
|
|
82
|
-
expect((0, _graphWithControls.getAvailableTool)(tools)).toEqual(undefined);
|
|
83
|
-
});
|
|
84
|
-
});
|
|
85
|
-
describe('filterByValidToolTypes', function () {
|
|
86
|
-
it('filters marks by valid types', function () {
|
|
87
|
-
var marks = [{
|
|
88
|
-
type: 'polygon'
|
|
89
|
-
}, {
|
|
90
|
-
type: 'a'
|
|
91
|
-
}, {
|
|
92
|
-
type: 'b'
|
|
93
|
-
}, {
|
|
94
|
-
type: 'line'
|
|
95
|
-
}, {
|
|
96
|
-
type: 'c'
|
|
97
|
-
}];
|
|
98
|
-
expect((0, _graphWithControls.filterByValidToolTypes)(marks)).toEqual([{
|
|
99
|
-
type: 'polygon'
|
|
100
|
-
}, {
|
|
101
|
-
type: 'line'
|
|
102
|
-
}]);
|
|
103
|
-
});
|
|
104
|
-
});
|
|
105
|
-
describe('filterByVisibleToolTypes', function () {
|
|
106
|
-
it('filters marks by the types that should be visible', function () {
|
|
107
|
-
expect((0, _graphWithControls.filterByVisibleToolTypes)(['line', 'polygon'], [{
|
|
108
|
-
type: 'point'
|
|
109
|
-
}, {
|
|
110
|
-
type: 'line'
|
|
111
|
-
}, {
|
|
112
|
-
type: 'polygon'
|
|
113
|
-
}])).toEqual([{
|
|
114
|
-
type: 'line'
|
|
115
|
-
}, {
|
|
116
|
-
type: 'polygon'
|
|
117
|
-
}]);
|
|
118
|
-
expect((0, _graphWithControls.filterByVisibleToolTypes)(['line'], [{
|
|
119
|
-
type: 'point'
|
|
120
|
-
}, {
|
|
121
|
-
type: 'line'
|
|
122
|
-
}, {
|
|
123
|
-
type: 'circle'
|
|
124
|
-
}])).toEqual([{
|
|
125
|
-
type: 'line'
|
|
126
|
-
}]);
|
|
127
|
-
expect((0, _graphWithControls.filterByVisibleToolTypes)(['segment'], [{
|
|
128
|
-
type: 'point'
|
|
129
|
-
}, {
|
|
130
|
-
type: 'line'
|
|
131
|
-
}, {
|
|
132
|
-
type: 'circle'
|
|
133
|
-
}])).toEqual([]);
|
|
134
|
-
});
|
|
135
|
-
});
|
|
136
|
-
describe('GraphWithControls', function () {
|
|
137
|
-
var w;
|
|
138
|
-
var onChangeMarks = jest.fn();
|
|
139
|
-
|
|
140
|
-
var defaultProps = function defaultProps() {
|
|
141
|
-
return {
|
|
142
|
-
axesSettings: {
|
|
143
|
-
includeArrows: true
|
|
144
|
-
},
|
|
145
|
-
classes: {},
|
|
146
|
-
className: '',
|
|
147
|
-
coordinatesOnHover: false,
|
|
148
|
-
domain: {
|
|
149
|
-
min: 0,
|
|
150
|
-
max: 10,
|
|
151
|
-
step: 1
|
|
152
|
-
},
|
|
153
|
-
labels: {
|
|
154
|
-
top: 'a',
|
|
155
|
-
left: 'b',
|
|
156
|
-
right: 'c',
|
|
157
|
-
bottom: 'd'
|
|
158
|
-
},
|
|
159
|
-
labelModeEnabled: true,
|
|
160
|
-
marks: marks,
|
|
161
|
-
onChangeMarks: onChangeMarks,
|
|
162
|
-
range: {
|
|
163
|
-
min: 0,
|
|
164
|
-
max: 10,
|
|
165
|
-
step: 1
|
|
166
|
-
},
|
|
167
|
-
size: {
|
|
168
|
-
width: 500,
|
|
169
|
-
height: 500
|
|
170
|
-
},
|
|
171
|
-
title: 'Title',
|
|
172
|
-
toolbarTools: _tools.allTools
|
|
173
|
-
};
|
|
174
|
-
};
|
|
175
|
-
|
|
176
|
-
var initialProps = defaultProps();
|
|
177
|
-
|
|
178
|
-
var wrapper = function wrapper(extras, opts) {
|
|
179
|
-
var props = _objectSpread(_objectSpread({}, initialProps), extras);
|
|
180
|
-
|
|
181
|
-
return (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_graphWithControls.GraphWithControls, props), opts);
|
|
182
|
-
};
|
|
183
|
-
|
|
184
|
-
describe('snapshot', function () {
|
|
185
|
-
it('renders', function () {
|
|
186
|
-
w = wrapper();
|
|
187
|
-
expect(w).toMatchSnapshot();
|
|
188
|
-
});
|
|
189
|
-
});
|
|
190
|
-
});
|
|
191
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vZ3JhcGgtd2l0aC1jb250cm9scy50ZXN0LmpzeCJdLCJuYW1lcyI6WyJsaW5lIiwidHlwZSIsImZyb20iLCJ4IiwieSIsInRvIiwibGFiZWwiLCJidWlsZGluZyIsInBvbHlnb24iLCJwb2ludHMiLCJtYXJrcyIsImRlc2NyaWJlIiwiaXQiLCJyZXN1bHQiLCJhbGxUb29scyIsImFsbFRydWUiLCJBcnJheSIsInRvb2xzQXJyIiwibGVuZ3RoIiwiZmlsbCIsImV4cGVjdCIsIm1hcCIsInIiLCJ0b29sYmFyIiwidG9FcXVhbCIsImFsbE90aGVyc0ZhbHNlIiwiZmlsdGVyIiwidG9vbHMiLCJ1bmRlZmluZWQiLCJ3Iiwib25DaGFuZ2VNYXJrcyIsImplc3QiLCJmbiIsImRlZmF1bHRQcm9wcyIsImF4ZXNTZXR0aW5ncyIsImluY2x1ZGVBcnJvd3MiLCJjbGFzc2VzIiwiY2xhc3NOYW1lIiwiY29vcmRpbmF0ZXNPbkhvdmVyIiwiZG9tYWluIiwibWluIiwibWF4Iiwic3RlcCIsImxhYmVscyIsInRvcCIsImxlZnQiLCJyaWdodCIsImJvdHRvbSIsImxhYmVsTW9kZUVuYWJsZWQiLCJyYW5nZSIsInNpemUiLCJ3aWR0aCIsImhlaWdodCIsInRpdGxlIiwidG9vbGJhclRvb2xzIiwiaW5pdGlhbFByb3BzIiwid3JhcHBlciIsImV4dHJhcyIsIm9wdHMiLCJwcm9wcyIsInRvTWF0Y2hTbmFwc2hvdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7O0FBQ0E7O0FBRUE7O0FBUUE7Ozs7OztBQUVBLElBQU1BLElBQUksR0FBRztBQUNYQyxFQUFBQSxJQUFJLEVBQUUsTUFESztBQUVYQyxFQUFBQSxJQUFJLEVBQUU7QUFBRUMsSUFBQUEsQ0FBQyxFQUFFLENBQUw7QUFBUUMsSUFBQUEsQ0FBQyxFQUFFO0FBQVgsR0FGSztBQUdYQyxFQUFBQSxFQUFFLEVBQUU7QUFBRUYsSUFBQUEsQ0FBQyxFQUFFLENBQUw7QUFBUUMsSUFBQUEsQ0FB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QUFPLG1DQUFRLGdDQUFDLG9DQUFELEVBQXVCRSxLQUF2QixDQUFSLEVBQTBDRCxJQUExQyxDQUFQO0FBQ0QsR0FKRDs7QUFNQS9DLEVBQUFBLFFBQVEsQ0FBQyxVQUFELEVBQWEsWUFBTTtBQUN6QkMsSUFBQUEsRUFBRSxDQUFDLFNBQUQsRUFBWSxZQUFNO0FBQ2xCaUIsTUFBQUEsQ0FBQyxHQUFHMkIsT0FBTyxFQUFYO0FBQ0FwQyxNQUFBQSxNQUFNLENBQUNTLENBQUQsQ0FBTixDQUFVK0IsZUFBVjtBQUNELEtBSEMsQ0FBRjtBQUlELEdBTE8sQ0FBUjtBQU1ELENBakNPLENBQVIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzaGFsbG93IH0gZnJvbSAnZW56eW1lJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7XG4gIEdyYXBoV2l0aENvbnRyb2xzLFxuICBzZXRUb29sYmFyQXZhaWxhYmlsaXR5LFxuICB0b29sSXNBdmFpbGFibGUsXG4gIGdldEF2YWlsYWJsZVRvb2wsXG4gIGZpbHRlckJ5VmFsaWRUb29sVHlwZXMsXG4gIGZpbHRlckJ5VmlzaWJsZVRvb2xUeXBlcyxcbn0gZnJvbSAnLi4vZ3JhcGgtd2l0aC1jb250cm9scyc7XG5pbXBvcnQgeyB0b29sc0FyciwgYWxsVG9vbHMsIGxpbmUgYXMgbGluZVRvb2wgfSBmcm9tICdAcGllLWxpYi90b29scyc7XG5cbmNvbnN0IGxpbmUgPSB7XG4gIHR5cGU6ICdsaW5lJyxcbiAgZnJvbTogeyB4OiAwLCB5OiAwIH0sXG4gIHRvOiB7IHg6IDEsIHk6IDEgfSxcbiAgbGFiZWw6ICdMaW5lJyxcbiAgYnVpbGRpbmc6IHRydWUsXG59O1xuXG5jb25zdCBwb2x5Z29uID0ge1xuICB0eXBlOiAncG9seWdvbicsXG4gIHBvaW50czogW1xuICAgIHsgeDogMCwgeTogMCB9LFxuICAgIHsgeDogMSwgeTogMSB9LFxuICAgIHsgeDogMiwgeTogMiB9LFxuICBdLFxufTtcblxuY29uc3QgbWFya3MgPSBbbGluZSwgcG9seWdvbl07XG5cbmRlc2NyaWJlKCdzZXRUb29sYmFyQXZhaWxhYmlsaXR5JywgKCkgPT4ge1xuICBpdCgnc2V0cyBgdG9vbGJhcjogdHJ1ZWAgaWYgdG9vbCBzaG91bGQgYmUgZGlzcGxheWVkIGluIHRvb2xiYXIgLSBhbGwgdG9vbHMnLCAoKSA9PiB7XG4gICAgY29uc3QgcmVzdWx0ID0gc2V0VG9vbGJhckF2YWlsYWJpbGl0eShhbGxUb29scyk7XG4gICAgY29uc3QgYWxsVHJ1ZSA9IG5ldyBBcnJheSh0b29sc0Fyci5sZW5ndGgpLmZpbGwodHJ1ZSk7XG5cbiAgICBleHBlY3QocmVzdWx0Lm1hcCgocikgPT4gci50b29sYmFyKSkudG9FcXVhbChhbGxUcnVlKTtcbiAgfSk7XG5cbiAgaXQoJ3NldHMgYHRvb2xiYXI6IHRydWVgIGlmIHRvb2wgc2hvdWxkIGJlIGRpc3BsYXllZCBpbiB0b29sYmFyIC0gZmV3IHRvb2xzJywgKCkgPT4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IHNldFRvb2xiYXJBdmFpbGFiaWxpdHkoWydsaW5lJywgJ3BvbHlnb24nXSk7XG4gICAgY29uc3QgYWxsT3RoZXJzRmFsc2UgPSBuZXcgQXJyYXkodG9vbHNBcnIubGVuZ3RoIC0gMikuZmlsbChmYWxzZSk7XG5cbiAgICBleHBlY3QocmVzdWx0LmZpbHRlcigocikgPT4gci50eXBlID09PSAnbGluZScgfHwgci50eXBlID09PSAncG9seWdvbicpLm1hcCgocikgPT4gci50b29sYmFyKSkudG9FcXVhbChbdHJ1ZSwgdHJ1ZV0pO1xuICAgIGV4cGVjdChyZXN1bHQuZmlsdGVyKChyKSA9PiByLnR5cGUgIT09ICdsaW5lJyAmJiByLnR5cGUgIT09ICdwb2x5Z29uJykubWFwKChyKSA9PiByLnRvb2xiYXIpKS50b0VxdWFsKFxuICAgICAgYWxsT3RoZXJzRmFsc2UsXG4gICAgKTtcbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoJ3Rvb2xJc0F2YWlsYWJsZScsICgpID0+IHtcbiAgY29uc3QgdG9vbHMgPSBzZXRUb29sYmFyQXZhaWxhYmlsaXR5KFsnbGluZScsICdwb2x5Z29uJ10pO1xuXG4gIGl0KCdyZXR1cm5zIHRydWUgaWYgdG9vbCBpcyBhdmFpbGFibGUnLCAoKSA9PiB7XG4gICAgZXhwZWN0KHRvb2xJc0F2YWlsYWJsZSh0b29scywgbGluZVRvb2woKSkpLnRvRXF1YWwodHJ1ZSk7XG4gIH0pO1xufSk7XG5cbmRlc2NyaWJlKCdnZXRBdmFpbGFibGVUb29sJywgKCkgPT4ge1xuICBpdCgncmV0dXJucyB0aGUgZmlyc3QgYXZhaWxhYmxlIHRvb2wgaW4gbGlzdCBpZiB0aGVyZSBpcyBhbnknLCAoKSA9PiB7XG4gICAgY29uc3QgdG9vbHMgPSBzZXRUb29sYmFyQXZhaWxhYmlsaXR5KFsnbGluZScsICdwb2x5Z29uJ10pO1xuXG4gICAgZXhwZWN0KGdldEF2YWlsYWJsZVRvb2wodG9vbHMpLnRvb2xiYXIpLnRvRXF1YWwodHJ1ZSk7XG4gIH0pO1xuXG4gIGl0KCdyZXR1cm5zIHVuZGVmaW5lZCBsaXN0IGlmIHRoZXJlIGlzIG5vIGF2YWlsYWJsZSB0b29sJywgKCkgPT4ge1xuICAgIGNvbnN0IHRvb2xzID0gc2V0VG9vbGJhckF2YWlsYWJpbGl0eShbXSk7XG5cbiAgICBleHBlY3QoZ2V0QXZhaWxhYmxlVG9vbCh0b29scykpLnRvRXF1YWwodW5kZWZpbmVkKTtcbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoJ2ZpbHRlckJ5VmFsaWRUb29sVHlwZXMnLCAoKSA9PiB7XG4gIGl0KCdmaWx0ZXJzIG1hcmtzIGJ5IHZhbGlkIHR5cGVzJywgKCkgPT4ge1xuICAgIGNvbnN0IG1hcmtzID0gW3sgdHlwZTogJ3BvbHlnb24nIH0sIHsgdHlwZTogJ2EnIH0sIHsgdHlwZTogJ2InIH0sIHsgdHlwZTogJ2xpbmUnIH0sIHsgdHlwZTogJ2MnIH1dO1xuXG4gICAgZXhwZWN0KGZpbHRlckJ5VmFsaWRUb29sVHlwZXMobWFya3MpKS50b0VxdWFsKFt7IHR5cGU6ICdwb2x5Z29uJyB9LCB7IHR5cGU6ICdsaW5lJyB9XSk7XG4gIH0pO1xufSk7XG5cbmRlc2NyaWJlKCdmaWx0ZXJCeVZpc2libGVUb29sVHlwZXMnLCAoKSA9PiB7XG4gIGl0KCdmaWx0ZXJzIG1hcmtzIGJ5IHRoZSB0eXBlcyB0aGF0IHNob3VsZCBiZSB2aXNpYmxlJywgKCkgPT4ge1xuICAgIGV4cGVjdChcbiAgICAgIGZpbHRlckJ5VmlzaWJsZVRvb2xUeXBlcyhbJ2xpbmUnLCAncG9seWdvbiddLCBbeyB0eXBlOiAncG9pbnQnIH0sIHsgdHlwZTogJ2xpbmUnIH0sIHsgdHlwZTogJ3BvbHlnb24nIH1dKSxcbiAgICApLnRvRXF1YWwoW3sgdHlwZTogJ2xpbmUnIH0sIHsgdHlwZTogJ3BvbHlnb24nIH1dKTtcblxuICAgIGV4cGVjdChmaWx0ZXJCeVZpc2libGVUb29sVHlwZXMoWydsaW5lJ10sIFt7IHR5cGU6ICdwb2ludCcgfSwgeyB0eXBlOiAnbGluZScgfSwgeyB0eXBlOiAnY2lyY2xlJyB9XSkpLnRvRXF1YWwoW1xuICAgICAgeyB0eXBlOiAnbGluZScgfSxcbiAgICBdKTtcblxuICAgIGV4cGVjdChmaWx0ZXJCeVZpc2libGVUb29sVHlwZXMoWydzZWdtZW50J10sIFt7IHR5cGU6ICdwb2ludCcgfSwgeyB0eXBlOiAnbGluZScgfSwgeyB0eXBlOiAnY2lyY2xlJyB9XSkpLnRvRXF1YWwoXG4gICAgICBbXSxcbiAgICApO1xuICB9KTtcbn0pO1xuXG5kZXNjcmliZSgnR3JhcGhXaXRoQ29udHJvbHMnLCAoKSA9PiB7XG4gIGxldCB3O1xuICBsZXQgb25DaGFuZ2VNYXJrcyA9IGplc3QuZm4oKTtcblxuICBjb25zdCBkZWZhdWx0UHJvcHMgPSAoKSA9PiAoe1xuICAgIGF4ZXNTZXR0aW5nczogeyBpbmNsdWRlQXJyb3dzOiB0cnVlIH0sXG4gICAgY2xhc3Nlczoge30sXG4gICAgY2xhc3NOYW1lOiAnJyxcbiAgICBjb29yZGluYXRlc09uSG92ZXI6IGZhbHNlLFxuICAgIGRvbWFpbjogeyBtaW46IDAsIG1heDogMTAsIHN0ZXA6IDEgfSxcbiAgICBsYWJlbHM6IHsgdG9wOiAnYScsIGxlZnQ6ICdiJywgcmlnaHQ6ICdjJywgYm90dG9tOiAnZCcgfSxcbiAgICBsYWJlbE1vZGVFbmFibGVkOiB0cnVlLFxuICAgIG1hcmtzLFxuICAgIG9uQ2hhbmdlTWFya3MsXG4gICAgcmFuZ2U6IHsgbWluOiAwLCBtYXg6IDEwLCBzdGVwOiAxIH0sXG4gICAgc2l6ZTogeyB3aWR0aDogNTAwLCBoZWlnaHQ6IDUwMCB9LFxuICAgIHRpdGxlOiAnVGl0bGUnLFxuICAgIHRvb2xiYXJUb29sczogYWxsVG9vbHMsXG4gIH0pO1xuICBjb25zdCBpbml0aWFsUHJvcHMgPSBkZWZhdWx0UHJvcHMoKTtcblxuICBjb25zdCB3cmFwcGVyID0gKGV4dHJhcywgb3B0cykgPT4ge1xuICAgIGNvbnN0IHByb3BzID0geyAuLi5pbml0aWFsUHJvcHMsIC4uLmV4dHJhcyB9O1xuXG4gICAgcmV0dXJuIHNoYWxsb3coPEdyYXBoV2l0aENvbnRyb2xzIHsuLi5wcm9wc30gLz4sIG9wdHMpO1xuICB9O1xuXG4gIGRlc2NyaWJlKCdzbmFwc2hvdCcsICgpID0+IHtcbiAgICBpdCgncmVuZGVycycsICgpID0+IHtcbiAgICAgIHcgPSB3cmFwcGVyKCk7XG4gICAgICBleHBlY3QodykudG9NYXRjaFNuYXBzaG90KCk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
|