@pie-lib/graphing-solution-set 2.16.0-beta.0 → 2.17.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 +157 -1
- package/lib/axis/arrow.js +1 -1
- package/lib/axis/arrow.js.map +1 -0
- package/lib/axis/axes.js +4 -4
- package/lib/axis/axes.js.map +1 -0
- package/lib/axis/index.js +1 -1
- package/lib/axis/index.js.map +1 -0
- package/lib/bg.js +1 -1
- package/lib/bg.js.map +1 -0
- package/lib/container/actions.js +1 -1
- package/lib/container/actions.js.map +1 -0
- package/lib/container/index.js +1 -1
- package/lib/container/index.js.map +1 -0
- package/lib/container/marks.js +1 -1
- package/lib/container/marks.js.map +1 -0
- package/lib/container/middleware.js +1 -1
- package/lib/container/middleware.js.map +1 -0
- package/lib/container/reducer.js +1 -1
- package/lib/container/reducer.js.map +1 -0
- package/lib/coordinates-label.js +3 -3
- package/lib/coordinates-label.js.map +1 -0
- package/lib/graph-with-controls.js +4 -4
- package/lib/graph-with-controls.js.map +1 -0
- package/lib/graph.js +1 -1
- package/lib/graph.js.map +1 -0
- package/lib/grid-setup.js +4 -4
- package/lib/grid-setup.js.map +1 -0
- package/lib/grid.js +1 -1
- package/lib/grid.js.map +1 -0
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -0
- package/lib/labels.js +4 -4
- package/lib/labels.js.map +1 -0
- package/lib/mark-label.js +7 -7
- package/lib/mark-label.js.map +1 -0
- package/lib/shared/index.js +136 -0
- package/lib/toggle-bar.js +10 -10
- package/lib/toggle-bar.js.map +1 -0
- package/lib/tool-menu.js +1 -1
- package/lib/tool-menu.js.map +1 -0
- package/lib/tools/index.js +1 -1
- package/lib/tools/index.js.map +1 -0
- package/lib/tools/line/component.js +1 -1
- package/lib/tools/line/component.js.map +1 -0
- package/lib/tools/line/index.js +1 -1
- package/lib/tools/line/index.js.map +1 -0
- package/lib/tools/polygon/component.js +1 -1
- package/lib/tools/polygon/component.js.map +1 -0
- package/lib/tools/polygon/index.js +1 -1
- package/lib/tools/polygon/index.js.map +1 -0
- package/lib/tools/polygon/line.js +3 -3
- package/lib/tools/polygon/line.js.map +1 -0
- package/lib/tools/polygon/polygon.js +4 -4
- package/lib/tools/polygon/polygon.js.map +1 -0
- package/lib/tools/shared/arrow-head.js +3 -3
- package/lib/tools/shared/arrow-head.js.map +1 -0
- package/lib/tools/shared/line/index.js +7 -7
- package/lib/tools/shared/line/index.js.map +1 -0
- package/lib/tools/shared/line/line-path.js +4 -4
- package/lib/tools/shared/line/line-path.js.map +1 -0
- package/lib/tools/shared/line/with-root-edge.js +1 -1
- package/lib/tools/shared/line/with-root-edge.js.map +1 -0
- package/lib/tools/shared/point/arrow-point.js +1 -1
- package/lib/tools/shared/point/arrow-point.js.map +1 -0
- package/lib/tools/shared/point/arrow.js +1 -1
- package/lib/tools/shared/point/arrow.js.map +1 -0
- package/lib/tools/shared/point/base-point.js +3 -3
- package/lib/tools/shared/point/base-point.js.map +1 -0
- package/lib/tools/shared/point/index.js +3 -3
- package/lib/tools/shared/point/index.js.map +1 -0
- package/lib/tools/shared/styles.js +6 -6
- package/lib/tools/shared/styles.js.map +1 -0
- package/lib/tools/shared/types.js +1 -1
- package/lib/tools/shared/types.js.map +1 -0
- package/lib/undo-redo.js +3 -3
- package/lib/undo-redo.js.map +1 -0
- package/lib/use-debounce.js +1 -1
- package/lib/use-debounce.js.map +1 -0
- package/lib/utils.js +1 -1
- package/lib/utils.js.map +1 -0
- 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/tools/line/__tests__/component.test.js +0 -56
- 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/shared/__tests__/arrow-head.test.js +0 -62
- 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/point/__tests__/arrow-point.test.js +0 -137
- package/lib/tools/shared/point/__tests__/base-point.test.js +0 -134
package/CHANGELOG.md
CHANGED
|
@@ -3,7 +3,95 @@
|
|
|
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.
|
|
6
|
+
# 2.17.0 (2025-07-31)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @pie-lib/graphing-solution-set
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
# 2.16.0 (2025-07-31)
|
|
15
|
+
|
|
16
|
+
**Note:** Version bump only for package @pie-lib/graphing-solution-set
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
# 2.15.0-beta.8 (2025-07-25)
|
|
23
|
+
|
|
24
|
+
**Note:** Version bump only for package @pie-lib/graphing-solution-set
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
# 2.15.0-beta.7 (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.6 (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.5 (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.4 (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.3 (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.4 (2025-07-23)
|
|
7
95
|
|
|
8
96
|
**Note:** Version bump only for package @pie-lib/graphing-solution-set
|
|
9
97
|
|
|
@@ -11,6 +99,74 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
|
11
99
|
|
|
12
100
|
|
|
13
101
|
|
|
102
|
+
# 2.15.0-beta.3 (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-20)
|
|
111
|
+
|
|
112
|
+
**Note:** Version bump only for package @pie-lib/graphing-solution-set
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
# 2.15.0-beta.2 (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.1 (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.2 (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.1 (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.0 (2025-07-20)
|
|
159
|
+
|
|
160
|
+
**Note:** Version bump only for package @pie-lib/graphing-solution-set
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
# 2.16.0-beta.0 (2025-07-15)
|
|
167
|
+
|
|
168
|
+
**Note:** Version bump only for package @pie-lib/graphing-solution-set
|
|
169
|
+
|
|
14
170
|
# 2.15.0-beta.0 (2025-07-15)
|
|
15
171
|
|
|
16
172
|
**Note:** Version bump only for package @pie-lib/graphing-solution-set
|
package/lib/axis/arrow.js
CHANGED
|
@@ -112,4 +112,4 @@ Arrow.defaultProps = {
|
|
|
112
112
|
var _default = (0, _styles.withStyles)(style)(Arrow);
|
|
113
113
|
|
|
114
114
|
exports["default"] = _default;
|
|
115
|
-
//# sourceMappingURL=
|
|
115
|
+
//# sourceMappingURL=arrow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/axis/arrow.jsx"],"names":["style","theme","root","fill","palette","common","black","Arrow","props","x","y","classes","className","scale","names","direction","xv","yv","transform","getTransform","rotate","React","Component","propTypes","PropTypes","number","oneOf","object","isRequired","string","types","ScaleType","defaultProps"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AAEA;;AACA;;AACA;;;;;;AAEA,IAAMA,KAAK,GAAG,SAARA,KAAQ,CAACC,KAAD;AAAA,SAAY;AACxBC,IAAAA,IAAI,EAAE;AACJC,MAAAA,IAAI,+BAAwBF,KAAK,CAACG,OAAN,CAAcC,MAAd,CAAqBC,KAA7C;AADA;AADkB,GAAZ;AAAA,CAAd;;IAMaC,K;;;;;;;;;;;;WACX,kBAAS;AACP,wBAA4C,KAAKC,KAAjD;AAAA,UAAQC,CAAR,eAAQA,CAAR;AAAA,UAAWC,CAAX,eAAWA,CAAX;AAAA,UAAcC,OAAd,eAAcA,OAAd;AAAA,UAAuBC,SAAvB,eAAuBA,SAAvB;AAAA,UAAkCC,KAAlC,eAAkCA,KAAlC;AACA,UAAMC,KAAK,GAAG,4BAAWH,OAAO,CAACT,IAAnB,EAAyBU,SAAzB,CAAd;AACA,UAAIG,SAAS,GAAG,KAAKP,KAAL,CAAWO,SAAX,IAAwB,MAAxC;AAEA,UAAMC,EAAE,GAAGH,KAAK,CAACJ,CAAN,CAAQA,CAAR,CAAX;AACA,UAAMQ,EAAE,GAAGJ,KAAK,CAACH,CAAN,CAAQA,CAAR,CAAX;AAEA,UAAIQ,SAAS,GAAG,EAAhB;;AAEA,UAAMC,YAAY,GAAG,SAAfA,YAAe,CAACV,CAAD,EAAIC,CAAJ,EAAOU,MAAP;AAAA,mCAA+BX,CAA/B,eAAqCC,CAArC,sBAAkDU,MAAlD;AAAA,OAArB;;AAEA,UAAIL,SAAS,KAAK,MAAlB,EAA0B;AACxBG,QAAAA,SAAS,GAAGC,YAAY,CAACH,EAAE,GAAG,EAAN,EAAUC,EAAV,EAAc,CAAd,CAAxB;AACD;;AAED,UAAIF,SAAS,KAAK,OAAlB,EAA2B;AACzBG,QAAAA,SAAS,GAAGC,YAAY,CAACH,EAAE,GAAG,EAAN,EAAUC,EAAV,EAAc,GAAd,CAAxB;AACD;;AAED,UAAIF,SAAS,KAAK,IAAlB,EAAwB;AACtBG,QAAAA,SAAS,GAAGC,YAAY,CAACH,EAAD,EAAKC,EAAE,GAAG,EAAV,EAAc,EAAd,CAAxB;AACD;;AAED,UAAIF,SAAS,KAAK,MAAlB,EAA0B;AACxBG,QAAAA,SAAS,GAAGC,YAAY,CAACH,EAAD,EAAKC,EAAE,GAAG,EAAV,EAAc,GAAd,CAAxB;AACD;;AAED,0BAAO;AAAM,QAAA,CAAC,EAAC,uBAAR;AAAgC,QAAA,SAAS,EAAEC,SAA3C;AAAsD,QAAA,SAAS,EAAEJ;AAAjE,QAAP;AACD;;;EA9BwBO,kBAAMC,S;;;AAiCjCf,KAAK,CAACgB,SAAN,GAAkB;AAChBb,EAAAA,CAAC,EAAEc,sBAAUC,MADG;AAEhBhB,EAAAA,CAAC,EAAEe,sBAAUC,MAFG;AAGhBV,EAAAA,SAAS,EAAES,sBAAUE,KAAV,CAAgB,CAAC,MAAD,EAAS,OAAT,EAAkB,IAAlB,EAAwB,MAAxB,CAAhB,CAHK;AAIhBf,EAAAA,OAAO,EAAEa,sBAAUG,MAAV,CAAiBC,UAJV;AAKhBhB,EAAAA,SAAS,EAAEY,sBAAUK,MALL;AAMhBhB,EAAAA,KAAK,EAAEiB,YAAMC,SAAN,CAAgBH;AANP,CAAlB;AASArB,KAAK,CAACyB,YAAN,GAAqB;AACnBtB,EAAAA,CAAC,EAAE,CADgB;AAEnBD,EAAAA,CAAC,EAAE,CAFgB;AAGnBM,EAAAA,SAAS,EAAE;AAHQ,CAArB;;eAMe,wBAAWf,KAAX,EAAkBO,KAAlB,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport classNames from 'classnames';\nimport { withStyles } from '@material-ui/core/styles';\nimport { types } from '@pie-lib/plot';\n\nconst style = (theme) => ({\n root: {\n fill: `var(--arrow-color, ${theme.palette.common.black})`,\n },\n});\n\nexport class Arrow extends React.Component {\n render() {\n const { x, y, classes, className, scale } = this.props;\n const names = classNames(classes.root, className);\n let direction = this.props.direction || 'left';\n\n const xv = scale.x(x);\n const yv = scale.y(y);\n\n let transform = '';\n\n const getTransform = (x, y, rotate) => `translate(${x}, ${y}) rotate(${rotate})`;\n\n if (direction === 'left') {\n transform = getTransform(xv - 15, yv, 0);\n }\n\n if (direction === 'right') {\n transform = getTransform(xv + 15, yv, 180);\n }\n\n if (direction === 'up') {\n transform = getTransform(xv, yv - 15, 90);\n }\n\n if (direction === 'down') {\n transform = getTransform(xv, yv + 15, 270);\n }\n\n return <path d=\"m 0,0 8,-5 0,10 -8,-5\" transform={transform} className={names} />;\n }\n}\n\nArrow.propTypes = {\n y: PropTypes.number,\n x: PropTypes.number,\n direction: PropTypes.oneOf(['left', 'right', 'up', 'down']),\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n scale: types.ScaleType.isRequired,\n};\n\nArrow.defaultProps = {\n y: 0,\n x: 0,\n direction: 'left',\n};\n\nexport default withStyles(style)(Arrow);\n"],"file":"arrow.js"}
|
package/lib/axis/axes.js
CHANGED
|
@@ -39,7 +39,7 @@ var _core = require("@material-ui/core");
|
|
|
39
39
|
|
|
40
40
|
var _utils = require("../utils");
|
|
41
41
|
|
|
42
|
-
var
|
|
42
|
+
var _index = require("./../shared/index");
|
|
43
43
|
|
|
44
44
|
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; }
|
|
45
45
|
|
|
@@ -73,7 +73,7 @@ var axisStyles = function axisStyles(theme) {
|
|
|
73
73
|
fill: '#8a92c0'
|
|
74
74
|
},
|
|
75
75
|
tick: {
|
|
76
|
-
fill:
|
|
76
|
+
fill: _index.color.defaults.BLACK,
|
|
77
77
|
'& > line': {
|
|
78
78
|
stroke: '#8a92c0'
|
|
79
79
|
}
|
|
@@ -288,7 +288,7 @@ var RawYAxis = /*#__PURE__*/function (_React$Component2) {
|
|
|
288
288
|
y: -33,
|
|
289
289
|
width: necessaryWidth,
|
|
290
290
|
height: "20"
|
|
291
|
-
}, /*#__PURE__*/_react["default"].createElement(
|
|
291
|
+
}, /*#__PURE__*/_react["default"].createElement(_index.Readable, {
|
|
292
292
|
"false": true
|
|
293
293
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
294
294
|
dangerouslySetInnerHTML: {
|
|
@@ -412,4 +412,4 @@ exports["default"] = Axes;
|
|
|
412
412
|
graphProps: _plot.types.GraphPropsType.isRequired
|
|
413
413
|
}));
|
|
414
414
|
(0, _defineProperty2["default"])(Axes, "defaultProps", AxisDefaultProps);
|
|
415
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9heGlzL2F4ZXMuanN4Il0sIm5hbWVzIjpbIkF4aXNQcm9wVHlwZXMiLCJpbmNsdWRlQXJyb3dzIiwiUHJvcFR5cGVzIiwib2JqZWN0IiwiZ3JhcGhQcm9wcyIsIkF4aXNEZWZhdWx0UHJvcHMiLCJsZWZ0IiwicmlnaHQiLCJ1cCIsImRvd24iLCJheGlzU3R5bGVzIiwidGhlbWUiLCJsaW5lIiwic3Ryb2tlIiwic3Ryb2tlV2lkdGgiLCJhcnJvdyIsImZpbGwiLCJ0aWNrIiwiY29sb3IiLCJkZWZhdWx0cyIsIkJMQUNLIiwibGFiZWxGb250U2l6ZSIsImZvbnRTaXplIiwidHlwb2dyYXBoeSIsImF4aXNMYWJlbEhvbGRlciIsInBhZGRpbmciLCJtYXJnaW4iLCJ0ZXh0QWxpZ24iLCJ0aWNrTGFiZWxTdHlsZXMiLCJmb250RmFtaWx5IiwiY3Vyc29yIiwic2hhcmVkVmFsdWVzIiwiZmlyc3ROZWdhdGl2ZVgiLCJmaXJzdE5lZ2F0aXZlWSIsImRpc3RhbmNlRnJvbU9yaWdpblRvRmlyc3ROZWdhdGl2ZVgiLCJkaXN0YW5jZUZyb21PcmlnaW5Ub0ZpcnN0TmVnYXRpdmVZIiwiZGVsdGFBbGxvd2FuY2UiLCJkeSIsInJlc3VsdCIsInB1c2giLCJmaXJzdE5lZ2F0aXZlVmFsdWUiLCJpbnRlcnZhbCIsImZpbmQiLCJlbGVtZW50IiwiUmF3WEF4aXMiLCJwcm9wcyIsImNsYXNzZXMiLCJjb2x1bW5UaWNrc1ZhbHVlcyIsInNraXBWYWx1ZXMiLCJzY2FsZSIsImRvbWFpbiIsInNpemUiLCJyYW5nZSIsInRpY2tWYWx1ZXMiLCJsYWJlbFN0ZXAiLCJtaW4iLCJsYWJlbFByb3BzIiwibGFiZWwiLCJ5IiwidGV4dEFuY2hvciIsImR4IiwibmVjZXNzYXJ5Um93cyIsImF4aXNMYWJlbCIsImxvbmdlc3RXb3JkIiwibmVjZXNzYXJ5V2lkdGgiLCJ4IiwidmFsdWUiLCJtYXgiLCJ3aWR0aCIsIl9faHRtbCIsIlJlYWN0IiwiQ29tcG9uZW50IiwidHlwZXMiLCJHcmFwaFByb3BzVHlwZSIsImlzUmVxdWlyZWQiLCJYQXhpcyIsIlJhd1lBeGlzIiwicm93VGlja1ZhbHVlcyIsImxlbmd0aCIsImN1c3RvbVRpY2tGb3JtYXQiLCJpbmRleE9mIiwiaGVpZ2h0IiwiZGlnaXRzIiwidG9Mb2NhbGVTdHJpbmciLCJyZXBsYWNlIiwiWUF4aXMiLCJBeGVzIiwidGlja3MiLCJzdGVwIiwibmVnYXRpdmUiLCJNYXRoIiwiYWJzIiwieFZhbHVlcyIsInlWYWx1ZXMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7Ozs7O0FBRU8sSUFBTUEsYUFBYSxHQUFHO0FBQzNCQyxFQUFBQSxhQUFhLEVBQUVDLHNCQUFVQyxNQURFO0FBRTNCQyxFQUFBQSxVQUFVLEVBQUVGLHNCQUFVQztBQUZLLENBQXRCOztBQUtQLElBQU1FLGdCQUFnQixHQUFHO0FBQ3ZCSixFQUFBQSxhQUFhLEVBQUU7QUFDYkssSUFBQUEsSUFBSSxFQUFFLElBRE87QUFFYkMsSUFBQUEsS0FBSyxFQUFFLElBRk07QUFHYkMsSUFBQUEsRUFBRSxFQUFFLElBSFM7QUFJYkMsSUFBQUEsSUFBSSxFQUFFO0FBSk87QUFEUSxDQUF6Qjs7QUFTQSxJQUFNQyxVQUFVLEdBQUcsU0FBYkEsVUFBYSxDQUFDQyxLQUFEO0FBQUEsU0FBWTtBQUM3QkMsSUFBQUEsSUFBSSxFQUFFO0FBQ0pDLE1BQUFBLE1BQU0sRUFBRSxTQURKO0FBRUpDLE1BQUFBLFdBQVcsRUFBRTtBQUZULEtBRHVCO0FBSzdCQyxJQUFBQSxLQUFLLEVBQUU7QUFDTEMsTUFBQUEsSUFBSSxFQUFFO0FBREQsS0FMc0I7QUFRN0JDLElBQUFBLElBQUksRUFBRTtBQUNKRCxNQUFBQSxJQUFJLEVBQUVFLGdCQUFNQyxRQUFOLENBQWVDLEtBRGpCO0FBRUosa0JBQVk7QUFDVlAsUUFBQUEsTUFBTSxFQUFFO0FBREU7QUFGUixLQVJ1QjtBQWM3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OztpQ0FKaEJZLEksa0JBTUdqRixnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBBeGlzIH0gZnJvbSAnQHZ4L2F4aXMnO1xuaW1wb3J0IHsgdHlwZXMgfSBmcm9tICdAcGllLWxpYi9wbG90JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgQXJyb3cgZnJvbSAnLi9hcnJvdyc7XG5pbXBvcnQgeyB3aXRoU3R5bGVzIH0gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUnO1xuaW1wb3J0IHsgY291bnRXb3JkcywgZmluZExvbmdlc3RXb3JkLCBhbW91bnRUb0luY3JlYXNlV2lkdGgsIGdldFRpY2tWYWx1ZXMgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBjb2xvciwgUmVhZGFibGUgfSBmcm9tICdAcGllLWxpYi9yZW5kZXItdWknO1xuXG5leHBvcnQgY29uc3QgQXhpc1Byb3BUeXBlcyA9IHtcbiAgaW5jbHVkZUFycm93czogUHJvcFR5cGVzLm9iamVjdCxcbiAgZ3JhcGhQcm9wczogUHJvcFR5cGVzLm9iamVjdCxcbn07XG5cbmNvbnN0IEF4aXNEZWZhdWx0UHJvcHMgPSB7XG4gIGluY2x1ZGVBcnJvd3M6IHtcbiAgICBsZWZ0OiB0cnVlLFxuICAgIHJpZ2h0OiB0cnVlLFxuICAgIHVwOiB0cnVlLFxuICAgIGRvd246IHRydWUsXG4gIH0sXG59O1xuXG5jb25zdCBheGlzU3R5bGVzID0gKHRoZW1lKSA9PiAoe1xuICBsaW5lOiB7XG4gICAgc3Ryb2tlOiAnIzhhOTJjMCcsXG4gICAgc3Ryb2tlV2lkdGg6IDQsXG4gIH0sXG4gIGFycm93OiB7XG4gICAgZmlsbDogJyM4YTkyYzAnLFxuICB9LFxuICB0aWNrOiB7XG4gICAgZmlsbDogY29sb3IuZGVmYXVsdHMuQkxBQ0ssXG4gICAgJyYgPiBsaW5lJzoge1xuICAgICAgc3Ryb2tlOiAnIzhhOTJjMCcsXG4gICAgfSxcbiAgfSxcbiAgbGFiZWxGb250U2l6ZToge1xuICAgIGZvbnRTaXplOiB0aGVtZS50eXBvZ3JhcGh5LmZvbnRTaXplLFxuICB9LFxuICBheGlzTGFiZWxIb2xkZXI6IHtcbiAgICBwYWRkaW5nOiAwLFxuICAgIG1hcmdpbjogMCxcbiAgICB0ZXh0QWxpZ246ICdjZW50ZXInLFxuICAgICcqID4gKic6IHtcbiAgICAgIG1hcmdpbjogMCxcbiAgICAgIHBhZGRpbmc6IDAsXG4gICAgfSxcbiAgICBmb250U2l6ZTogdGhlbWUudHlwb2dyYXBoeS5mb250U2l6ZSxcbiAgfSxcbn0pO1xuXG5jb25zdCB0aWNrTGFiZWxTdHlsZXMgPSB7XG4gIGZvbnRGYW1pbHk6ICdSb2JvdG8nLFxuICBmb250U2l6ZTogJzE0cHgnLFxuICBjdXJzb3I6ICdpbmhlcml0Jyxcbn07XG5cbmV4cG9ydCBjb25zdCBzaGFyZWRWYWx1ZXMgPSAoXG4gIGZpcnN0TmVnYXRpdmVYLFxuICBmaXJzdE5lZ2F0aXZlWSxcbiAgZGlzdGFuY2VGcm9tT3JpZ2luVG9GaXJzdE5lZ2F0aXZlWCxcbiAgZGlzdGFuY2VGcm9tT3JpZ2luVG9GaXJzdE5lZ2F0aXZlWSxcbiAgZGVsdGFBbGxvd2FuY2UsXG4gIGR5LFxuKSA9PiB7XG4gIGxldCByZXN1bHQgPSBbXTtcblxuICBpZiAoXG4gICAgZmlyc3ROZWdhdGl2ZVggPT09IGZpcnN0TmVnYXRpdmVZICYmXG4gICAgZGlzdGFuY2VGcm9tT3JpZ2luVG9GaXJzdE5lZ2F0aXZlWCAtIGRlbHRhQWxsb3dhbmNlIDwgZGlzdGFuY2VGcm9tT3JpZ2luVG9GaXJzdE5lZ2F0aXZlWSAmJlxuICAgIGRpc3RhbmNlRnJvbU9yaWdpblRvRmlyc3ROZWdhdGl2ZVkgPCBkaXN0YW5jZUZyb21PcmlnaW5Ub0ZpcnN0TmVnYXRpdmVYICsgZGVsdGFBbGxvd2FuY2UgJiZcbiAgICBkaXN0YW5jZUZyb21PcmlnaW5Ub0ZpcnN0TmVnYXRpdmVYIC0gZGVsdGFBbGxvd2FuY2UgPCBkeSAmJlxuICAgIGR5IDwgZGlzdGFuY2VGcm9tT3JpZ2luVG9GaXJzdE5lZ2F0aXZlWCArIGRlbHRhQWxsb3dhbmNlXG4gICkge1xuICAgIHJlc3VsdC5wdXNoKGZpcnN0TmVnYXRpdmVYKTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59O1xuXG5leHBvcnQgY29uc3QgZmlyc3ROZWdhdGl2ZVZhbHVlID0gKGludGVydmFsKSA9PiAoaW50ZXJ2YWwgfHwgW10pLmZpbmQoKGVsZW1lbnQpID0+IGVsZW1lbnQgPCAwKTtcblxuZXhwb3J0IGNsYXNzIFJhd1hBeGlzIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICAuLi5BeGlzUHJvcFR5cGVzLFxuICAgIGNsYXNzZXM6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgZ3JhcGhQcm9wczogdHlwZXMuR3JhcGhQcm9wc1R5cGUuaXNSZXF1aXJlZCxcbiAgfTtcbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IEF4aXNEZWZhdWx0UHJvcHM7XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHtcbiAgICAgIGluY2x1ZGVBcnJvd3MsXG4gICAgICBjbGFzc2VzLFxuICAgICAgZ3JhcGhQcm9wcyxcbiAgICAgIGNvbHVtblRpY2tzVmFsdWVzLFxuICAgICAgc2tpcFZhbHVlcyxcbiAgICAgIGRpc3RhbmNlRnJvbU9yaWdpblRvRmlyc3ROZWdhdGl2ZVksXG4gICAgICBkeSxcbiAgICB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHNjYWxlLCBkb21haW4sIHNpemUsIHJhbmdlIH0gPSBncmFwaFByb3BzIHx8IHt9O1xuXG4gICAgLy8gSGF2aW5nIDAgYXMgYSBudW1iZXIgaW4gY29sdW1uVGlja3NWYWx1ZXMgZG9lcyBub3QgbWFrZSAwIHRvIHNob3cgdXBcbiAgICAvLyBzbyB3ZSB1c2UgdGhpcyB0cmljaywgYnkgZGVmaW5pbmcgaXQgYXMgYSBzdHJpbmc6XG4gICAgY29uc3QgdGlja1ZhbHVlcyA9XG4gICAgICAoZG9tYWluLmxhYmVsU3RlcCB8fCByYW5nZS5sYWJlbFN0ZXApICYmIGRvbWFpbi5taW4gPD0gMCA/IFsnMCcsIC4uLmNvbHVtblRpY2tzVmFsdWVzXSA6IGNvbHVtblRpY2tzVmFsdWVzO1xuICAgIC8vIEhvd2V2ZXIsIHRoZSAnMCcgaGFzIHRvIGJlIGRpc3BsYXllZCBvbmx5IGlmIG90aGVyIHRpY2sgbGFiZWxzICh5LWF4aXMgb3IgeC1heGlzKSBhcmUgZGlzcGxheWVkXG5cbiAgICBjb25zdCBsYWJlbFByb3BzID0gKGxhYmVsKSA9PiB7XG4gICAgICBjb25zdCB5ID0gc2tpcFZhbHVlcyAmJiBza2lwVmFsdWVzWzBdID09PSBsYWJlbCA/IGRpc3RhbmNlRnJvbU9yaWdpblRvRmlyc3ROZWdhdGl2ZVkgKyA0IDogZHk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnRpY2tMYWJlbFN0eWxlcyxcbiAgICAgICAgdGV4dEFuY2hvcjogJ21pZGRsZScsXG4gICAgICAgIHk6IHksXG4gICAgICAgIGR4OiBsYWJlbCA9PT0gJzAnID8gLTEwIDogMCxcbiAgICAgICAgZHk6IGxhYmVsID09PSAnMCcgPyAtNyA6IDAsXG4gICAgICB9O1xuICAgIH07XG5cbiAgICBjb25zdCBuZWNlc3NhcnlSb3dzID0gY291bnRXb3Jkcyhkb21haW4uYXhpc0xhYmVsKTtcbiAgICBjb25zdCBsb25nZXN0V29yZCA9IGZpbmRMb25nZXN0V29yZChkb21haW4uYXhpc0xhYmVsKTtcbiAgICBjb25zdCBuZWNlc3NhcnlXaWR0aCA9IGFtb3VudFRvSW5jcmVhc2VXaWR0aChsb25nZXN0V29yZCkgKyAyO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxSZWFjdC5GcmFnbWVudD5cbiAgICAgICAgPEF4aXNcbiAgICAgICAgICBheGlzTGluZUNsYXNzTmFtZT17Y2xhc3Nlcy5saW5lfVxuICAgICAgICAgIHNjYWxlPXtzY2FsZS54fVxuICAgICAgICAgIHRvcD17c2NhbGUueSgwKX1cbiAgICAgICAgICBsZWZ0PXswfVxuICAgICAgICAgIGxhYmVsPXtkb21haW4ubGFiZWx9XG4gICAgICAgICAgcmFuZ2VQYWRkaW5nPXs4fVxuICAgICAgICAgIHRpY2tDbGFzc05hbWU9e2NsYXNzZXMudGlja31cbiAgICAgICAgICB0aWNrRm9ybWF0PXsodmFsdWUpID0+IHZhbHVlfVxuICAgICAgICAgIHRpY2tMYWJlbFByb3BzPXtsYWJlbFByb3BzfVxuICAgICAgICAgIHRpY2tWYWx1ZXM9e3RpY2tWYWx1ZXN9XG4gICAgICAgIC8+XG4gICAgICAgIHtpbmNsdWRlQXJyb3dzICYmIGluY2x1ZGVBcnJvd3MubGVmdCAmJiAoXG4gICAgICAgICAgPEFycm93IGRpcmVjdGlvbj1cImxlZnRcIiB4PXtkb21haW4ubWlufSB5PXswfSBjbGFzc05hbWU9e2NsYXNzZXMuYXJyb3d9IHNjYWxlPXtzY2FsZX0gLz5cbiAgICAgICAgKX1cbiAgICAgICAge2luY2x1ZGVBcnJvd3MgJiYgaW5jbHVkZUFycm93cy5yaWdodCAmJiAoXG4gICAgICAgICAgPEFycm93IGRpcmVjdGlvbj1cInJpZ2h0XCIgeD17ZG9tYWluLm1heH0geT17MH0gY2xhc3NOYW1lPXtjbGFzc2VzLmFycm93fSBzY2FsZT17c2NhbGV9IC8+XG4gICAgICAgICl9XG4gICAgICAgIHtkb21haW4uYXhpc0xhYmVsICYmIChcbiAgICAgICAgICA8Zm9yZWlnbk9iamVjdCB4PXtzaXplLndpZHRoICsgMTd9IHk9e3NjYWxlLnkoMCkgLSA5fSB3aWR0aD17bmVjZXNzYXJ5V2lkdGh9IGhlaWdodD17MjAgKiBuZWNlc3NhcnlSb3dzfT5cbiAgICAgICAgICAgIDxkaXYgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw9e3sgX19odG1sOiBkb21haW4uYXhpc0xhYmVsIH19IGNsYXNzTmFtZT17Y2xhc3Nlcy5sYWJlbEZvbnRTaXplfSAvPlxuICAgICAgICAgIDwvZm9yZWlnbk9iamVjdD5cbiAgICAgICAgKX1cbiAgICAgIDwvUmVhY3QuRnJhZ21lbnQ+XG4gICAgKTtcbiAgfVxufVxuXG5jb25zdCBYQXhpcyA9IHdpdGhTdHlsZXMoYXhpc1N0eWxlcykoUmF3WEF4aXMpO1xuXG5leHBvcnQgY2xhc3MgUmF3WUF4aXMgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIC4uLkF4aXNQcm9wVHlwZXMsXG4gICAgZ3JhcGhQcm9wczogdHlwZXMuR3JhcGhQcm9wc1R5cGUuaXNSZXF1aXJlZCxcbiAgfTtcbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IEF4aXNEZWZhdWx0UHJvcHM7XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgY2xhc3NlcywgaW5jbHVkZUFycm93cywgZ3JhcGhQcm9wcywgc2tpcFZhbHVlcywgcm93VGlja1ZhbHVlcyB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHNjYWxlLCByYW5nZSwgc2l6ZSB9ID0gZ3JhcGhQcm9wcyB8fCB7fTtcblxuICAgIGNvbnN0IG5lY2Vzc2FyeVdpZHRoID0gcmFuZ2UuYXhpc0xhYmVsID8gYW1vdW50VG9JbmNyZWFzZVdpZHRoKHJhbmdlLmF4aXNMYWJlbC5sZW5ndGgpIDogMDtcblxuICAgIGNvbnN0IGN1c3RvbVRpY2tGb3JtYXQgPSAodmFsdWUpID0+IChza2lwVmFsdWVzICYmIHNraXBWYWx1ZXMuaW5kZXhPZih2YWx1ZSkgPj0gMCA/ICcnIDogdmFsdWUpO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxSZWFjdC5GcmFnbWVudD5cbiAgICAgICAgPEF4aXNcbiAgICAgICAgICBheGlzTGluZUNsYXNzTmFtZT17Y2xhc3Nlcy5saW5lfVxuICAgICAgICAgIG9yaWVudGF0aW9uPXsnbGVmdCd9XG4gICAgICAgICAgc2NhbGU9e3NjYWxlLnl9XG4gICAgICAgICAgdG9wPXswfVxuICAgICAgICAgIGhlaWdodD17c2l6ZS5oZWlnaHR9XG4gICAgICAgICAgbGVmdD17c2NhbGUueCgwKX1cbiAgICAgICAgICBsYWJlbD17cmFuZ2UubGFiZWx9XG4gICAgICAgICAgbGFiZWxQcm9wcz17eyAnZGF0YS1waWUtcmVhZGFibGUnOiBmYWxzZSB9fVxuICAgICAgICAgIHJhbmdlUGFkZGluZz17OH1cbiAgICAgICAgICB0aWNrTGVuZ3RoPXsxMH1cbiAgICAgICAgICB0aWNrQ2xhc3NOYW1lPXtjbGFzc2VzLnRpY2t9XG4gICAgICAgICAgdGlja0Zvcm1hdD17Y3VzdG9tVGlja0Zvcm1hdH1cbiAgICAgICAgICB0aWNrTGFiZWxQcm9wcz17KHZhbHVlKSA9PiB7XG4gICAgICAgICAgICBsZXQgZGlnaXRzID0gdmFsdWUudG9Mb2NhbGVTdHJpbmcoKS5yZXBsYWNlKC9bLi1dL2csICcnKS5sZW5ndGggfHwgMTtcblxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgLi4udGlja0xhYmVsU3R5bGVzLFxuICAgICAgICAgICAgICBkeTogNCxcbiAgICAgICAgICAgICAgZHg6IC0xMCAtIGRpZ2l0cyAqIDksXG4gICAgICAgICAgICAgICdkYXRhLXBpZS1yZWFkYWJsZSc6IGZhbHNlLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9fVxuICAgICAgICAgIGhpZGVaZXJvPXt0cnVlfVxuICAgICAgICAgIHRpY2tUZXh0QW5jaG9yPXsnYm90dG9tJ31cbiAgICAgICAgICB0aWNrVmFsdWVzPXtyb3dUaWNrVmFsdWVzfVxuICAgICAgICAvPlxuXG4gICAgICAgIHtpbmNsdWRlQXJyb3dzICYmIGluY2x1ZGVBcnJvd3MuZG93biAmJiAoXG4gICAgICAgICAgPEFycm93IGRpcmVjdGlvbj1cImRvd25cIiB4PXswfSB5PXtyYW5nZS5taW59IGNsYXNzTmFtZT17Y2xhc3Nlcy5hcnJvd30gc2NhbGU9e3NjYWxlfSAvPlxuICAgICAgICApfVxuICAgICAgICB7aW5jbHVkZUFycm93cyAmJiBpbmNsdWRlQXJyb3dzLnVwICYmIChcbiAgICAgICAgICA8QXJyb3cgZGlyZWN0aW9uPVwidXBcIiB4PXswfSB5PXtyYW5nZS5tYXh9IGNsYXNzTmFtZT17Y2xhc3Nlcy5hcnJvd30gc2NhbGU9e3NjYWxlfSAvPlxuICAgICAgICApfVxuICAgICAgICB7cmFuZ2UuYXhpc0xhYmVsICYmIChcbiAgICAgICAgICA8Zm9yZWlnbk9iamVjdCB4PXtzY2FsZS54KDApIC0gbmVjZXNzYXJ5V2lkdGggLyAyfSB5PXstMzN9IHdpZHRoPXtuZWNlc3NhcnlXaWR0aH0gaGVpZ2h0PVwiMjBcIj5cbiAgICAgICAgICAgIDxSZWFkYWJsZSBmYWxzZT5cbiAgICAgICAgICAgICAgPGRpdiBkYW5nZXJvdXNseVNldElubmVySFRNTD17eyBfX2h0bWw6IHJhbmdlLmF4aXNMYWJlbCB9fSBjbGFzc05hbWU9e2NsYXNzZXMuYXhpc0xhYmVsSG9sZGVyfSAvPlxuICAgICAgICAgICAgPC9SZWFkYWJsZT5cbiAgICAgICAgICA8L2ZvcmVpZ25PYmplY3Q+XG4gICAgICAgICl9XG4gICAgICA8L1JlYWN0LkZyYWdtZW50PlxuICAgICk7XG4gIH1cbn1cblxuY29uc3QgWUF4aXMgPSB3aXRoU3R5bGVzKGF4aXNTdHlsZXMpKFJhd1lBeGlzKTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQXhlcyBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgLi4uQXhpc1Byb3BUeXBlcyxcbiAgICBjbGFzc2VzOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGdyYXBoUHJvcHM6IHR5cGVzLkdyYXBoUHJvcHNUeXBlLmlzUmVxdWlyZWQsXG4gIH07XG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSBBeGlzRGVmYXVsdFByb3BzO1xuXG4gIHhWYWx1ZXMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBncmFwaFByb3BzIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHsgc2NhbGUsIGRvbWFpbiB9ID0gZ3JhcGhQcm9wcyB8fCB7fTtcblxuICAgIGlmICghZG9tYWluIHx8ICFzY2FsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHRpY2tzID0gZ2V0VGlja1ZhbHVlcyh7IC4uLmRvbWFpbiwgc3RlcDogZG9tYWluLmxhYmVsU3RlcCB9KTtcbiAgICBjb25zdCBuZWdhdGl2ZSA9IGZpcnN0TmVnYXRpdmVWYWx1ZSh0aWNrcyk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgY29sdW1uVGlja3NWYWx1ZXM6IHRpY2tzLFxuICAgICAgZmlyc3ROZWdhdGl2ZVg6IG5lZ2F0aXZlLFxuICAgICAgZGlzdGFuY2VGcm9tT3JpZ2luVG9GaXJzdE5lZ2F0aXZlWDogTWF0aC5hYnMoc2NhbGUueSgwKSAtIHNjYWxlLnkobmVnYXRpdmUpKSxcbiAgICB9O1xuICB9O1xuXG4gIHlWYWx1ZXMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBncmFwaFByb3BzIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHsgc2NhbGUsIHJhbmdlIH0gPSBncmFwaFByb3BzIHx8IHt9O1xuXG4gICAgaWYgKCFyYW5nZSB8fCAhc2NhbGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB0aWNrcyA9IGdldFRpY2tWYWx1ZXMoeyAuLi5yYW5nZSwgc3RlcDogcmFuZ2UubGFiZWxTdGVwIH0pO1xuICAgIGNvbnN0IG5lZ2F0aXZlID0gZmlyc3ROZWdhdGl2ZVZhbHVlKHRpY2tzKTtcblxuICAgIHJldHVybiB7XG4gICAgICByb3dUaWNrVmFsdWVzOiB0aWNrcyxcbiAgICAgIGZpcnN0TmVnYXRpdmVZOiBuZWdhdGl2ZSxcbiAgICAgIGRpc3RhbmNlRnJvbU9yaWdpblRvRmlyc3ROZWdhdGl2ZVk6IE1hdGguYWJzKHNjYWxlLngoMCkgLSBzY2FsZS54KG5lZ2F0aXZlKSksXG4gICAgfTtcbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgeyBncmFwaFByb3BzIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHsgZG9tYWluLCByYW5nZSB9ID0gZ3JhcGhQcm9wcyB8fCB7fTtcbiAgICBjb25zdCB7IGNvbHVtblRpY2tzVmFsdWVzLCBmaXJzdE5lZ2F0aXZlWCwgZGlzdGFuY2VGcm9tT3JpZ2luVG9GaXJzdE5lZ2F0aXZlWCB9ID0gdGhpcy54VmFsdWVzKCk7XG4gICAgY29uc3QgeyByb3dUaWNrVmFsdWVzLCBmaXJzdE5lZ2F0aXZlWSwgZGlzdGFuY2VGcm9tT3JpZ2luVG9GaXJzdE5lZ2F0aXZlWSB9ID0gdGhpcy55VmFsdWVzKCk7XG4gICAgY29uc3QgZGVsdGFBbGxvd2FuY2UgPSA2O1xuICAgIGNvbnN0IGR5ID0gMjU7XG5cbiAgICBjb25zdCBza2lwVmFsdWVzID0gc2hhcmVkVmFsdWVzKFxuICAgICAgZmlyc3ROZWdhdGl2ZVgsXG4gICAgICBmaXJzdE5lZ2F0aXZlWSxcbiAgICAgIGRpc3RhbmNlRnJvbU9yaWdpblRvRmlyc3ROZWdhdGl2ZVgsXG4gICAgICBkaXN0YW5jZUZyb21PcmlnaW5Ub0ZpcnN0TmVnYXRpdmVZLFxuICAgICAgZGVsdGFBbGxvd2FuY2UsXG4gICAgICBkeSxcbiAgICApO1xuXG4gICAgLy8gZWFjaCBheGlzIGhhcyB0byBiZSBkaXNwbGF5ZWQgb25seSBpZiB0aGUgZG9tYWluICYgcmFuZ2UgaW5jbHVkZSBpdFxuICAgIHJldHVybiAoXG4gICAgICA8UmVhY3QuRnJhZ21lbnQ+XG4gICAgICAgIHtyYW5nZS5taW4gPD0gMCA/IChcbiAgICAgICAgICA8WEF4aXNcbiAgICAgICAgICAgIHsuLi50aGlzLnByb3BzfVxuICAgICAgICAgICAgc2tpcFZhbHVlcz17c2tpcFZhbHVlc31cbiAgICAgICAgICAgIGNvbHVtblRpY2tzVmFsdWVzPXtjb2x1bW5UaWNrc1ZhbHVlc31cbiAgICAgICAgICAgIGRpc3RhbmNlRnJvbU9yaWdpblRvRmlyc3ROZWdhdGl2ZVk9e2Rpc3RhbmNlRnJvbU9yaWdpblRvRmlyc3ROZWdhdGl2ZVl9XG4gICAgICAgICAgICBkeT17ZHl9XG4gICAgICAgICAgLz5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIHtkb21haW4ubWluIDw9IDAgPyAoXG4gICAgICAgICAgPFlBeGlzXG4gICAgICAgICAgICB7Li4udGhpcy5wcm9wc31cbiAgICAgICAgICAgIHNraXBWYWx1ZXM9e3NraXBWYWx1ZXN9XG4gICAgICAgICAgICByb3dUaWNrVmFsdWVzPXtyb3dUaWNrVmFsdWVzfVxuICAgICAgICAgICAgZGlzdGFuY2VGcm9tT3JpZ2luVG9GaXJzdE5lZ2F0aXZlWD17ZGlzdGFuY2VGcm9tT3JpZ2luVG9GaXJzdE5lZ2F0aXZlWH1cbiAgICAgICAgICAvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvUmVhY3QuRnJhZ21lbnQ+XG4gICAgKTtcbiAgfVxufVxuIl19
|
|
415
|
+
//# sourceMappingURL=axes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/axis/axes.jsx"],"names":["AxisPropTypes","includeArrows","PropTypes","object","graphProps","AxisDefaultProps","left","right","up","down","axisStyles","theme","line","stroke","strokeWidth","arrow","fill","tick","color","defaults","BLACK","labelFontSize","fontSize","typography","axisLabelHolder","padding","margin","textAlign","tickLabelStyles","fontFamily","cursor","sharedValues","firstNegativeX","firstNegativeY","distanceFromOriginToFirstNegativeX","distanceFromOriginToFirstNegativeY","deltaAllowance","dy","result","push","firstNegativeValue","interval","find","element","RawXAxis","props","classes","columnTicksValues","skipValues","scale","domain","size","range","tickValues","labelStep","min","labelProps","label","y","textAnchor","dx","necessaryRows","axisLabel","longestWord","necessaryWidth","x","value","max","width","__html","React","Component","types","GraphPropsType","isRequired","XAxis","RawYAxis","rowTickValues","length","customTickFormat","indexOf","height","digits","toLocaleString","replace","YAxis","Axes","ticks","step","negative","Math","abs","xValues","yValues"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Axis } from '@vx/axis';\nimport { types } from '@pie-lib/plot';\nimport PropTypes from 'prop-types';\nimport Arrow from './arrow';\nimport { withStyles } from '@material-ui/core';\nimport { countWords, findLongestWord, amountToIncreaseWidth, getTickValues } from '../utils';\nimport { color, Readable } from '../../../render-ui/src/index';\n\nexport const AxisPropTypes = {\n includeArrows: PropTypes.object,\n graphProps: PropTypes.object,\n};\n\nconst AxisDefaultProps = {\n includeArrows: {\n left: true,\n right: true,\n up: true,\n down: true,\n },\n};\n\nconst axisStyles = (theme) => ({\n line: {\n stroke: '#8a92c0',\n strokeWidth: 4,\n },\n arrow: {\n fill: '#8a92c0',\n },\n tick: {\n fill: color.defaults.BLACK,\n '& > line': {\n stroke: '#8a92c0',\n },\n },\n labelFontSize: {\n fontSize: theme.typography.fontSize,\n },\n axisLabelHolder: {\n padding: 0,\n margin: 0,\n textAlign: 'center',\n '* > *': {\n margin: 0,\n padding: 0,\n },\n fontSize: theme.typography.fontSize,\n },\n});\n\nconst tickLabelStyles = {\n fontFamily: 'Roboto',\n fontSize: '14px',\n cursor: 'inherit',\n};\n\nexport const sharedValues = (\n firstNegativeX,\n firstNegativeY,\n distanceFromOriginToFirstNegativeX,\n distanceFromOriginToFirstNegativeY,\n deltaAllowance,\n dy,\n) => {\n let result = [];\n\n if (\n firstNegativeX === firstNegativeY &&\n distanceFromOriginToFirstNegativeX - deltaAllowance < distanceFromOriginToFirstNegativeY &&\n distanceFromOriginToFirstNegativeY < distanceFromOriginToFirstNegativeX + deltaAllowance &&\n distanceFromOriginToFirstNegativeX - deltaAllowance < dy &&\n dy < distanceFromOriginToFirstNegativeX + deltaAllowance\n ) {\n result.push(firstNegativeX);\n }\n\n return result;\n};\n\nexport const firstNegativeValue = (interval) => (interval || []).find((element) => element < 0);\n\nexport class RawXAxis extends React.Component {\n static propTypes = {\n ...AxisPropTypes,\n classes: PropTypes.object,\n graphProps: types.GraphPropsType.isRequired,\n };\n static defaultProps = AxisDefaultProps;\n\n render() {\n const {\n includeArrows,\n classes,\n graphProps,\n columnTicksValues,\n skipValues,\n distanceFromOriginToFirstNegativeY,\n dy,\n } = this.props;\n const { scale, domain, size, range } = graphProps || {};\n\n // Having 0 as a number in columnTicksValues does not make 0 to show up\n // so we use this trick, by defining it as a string:\n const tickValues =\n (domain.labelStep || range.labelStep) && domain.min <= 0 ? ['0', ...columnTicksValues] : columnTicksValues;\n // However, the '0' has to be displayed only if other tick labels (y-axis or x-axis) are displayed\n\n const labelProps = (label) => {\n const y = skipValues && skipValues[0] === label ? distanceFromOriginToFirstNegativeY + 4 : dy;\n\n return {\n ...tickLabelStyles,\n textAnchor: 'middle',\n y: y,\n dx: label === '0' ? -10 : 0,\n dy: label === '0' ? -7 : 0,\n };\n };\n\n const necessaryRows = countWords(domain.axisLabel);\n const longestWord = findLongestWord(domain.axisLabel);\n const necessaryWidth = amountToIncreaseWidth(longestWord) + 2;\n\n return (\n <React.Fragment>\n <Axis\n axisLineClassName={classes.line}\n scale={scale.x}\n top={scale.y(0)}\n left={0}\n label={domain.label}\n rangePadding={8}\n tickClassName={classes.tick}\n tickFormat={(value) => value}\n tickLabelProps={labelProps}\n tickValues={tickValues}\n />\n {includeArrows && includeArrows.left && (\n <Arrow direction=\"left\" x={domain.min} y={0} className={classes.arrow} scale={scale} />\n )}\n {includeArrows && includeArrows.right && (\n <Arrow direction=\"right\" x={domain.max} y={0} className={classes.arrow} scale={scale} />\n )}\n {domain.axisLabel && (\n <foreignObject x={size.width + 17} y={scale.y(0) - 9} width={necessaryWidth} height={20 * necessaryRows}>\n <div dangerouslySetInnerHTML={{ __html: domain.axisLabel }} className={classes.labelFontSize} />\n </foreignObject>\n )}\n </React.Fragment>\n );\n }\n}\n\nconst XAxis = withStyles(axisStyles)(RawXAxis);\n\nexport class RawYAxis extends React.Component {\n static propTypes = {\n ...AxisPropTypes,\n graphProps: types.GraphPropsType.isRequired,\n };\n static defaultProps = AxisDefaultProps;\n\n render() {\n const { classes, includeArrows, graphProps, skipValues, rowTickValues } = this.props;\n const { scale, range, size } = graphProps || {};\n\n const necessaryWidth = range.axisLabel ? amountToIncreaseWidth(range.axisLabel.length) : 0;\n\n const customTickFormat = (value) => (skipValues && skipValues.indexOf(value) >= 0 ? '' : value);\n\n return (\n <React.Fragment>\n <Axis\n axisLineClassName={classes.line}\n orientation={'left'}\n scale={scale.y}\n top={0}\n height={size.height}\n left={scale.x(0)}\n label={range.label}\n labelProps={{ 'data-pie-readable': false }}\n rangePadding={8}\n tickLength={10}\n tickClassName={classes.tick}\n tickFormat={customTickFormat}\n tickLabelProps={(value) => {\n let digits = value.toLocaleString().replace(/[.-]/g, '').length || 1;\n\n return {\n ...tickLabelStyles,\n dy: 4,\n dx: -10 - digits * 9,\n 'data-pie-readable': false,\n };\n }}\n hideZero={true}\n tickTextAnchor={'bottom'}\n tickValues={rowTickValues}\n />\n\n {includeArrows && includeArrows.down && (\n <Arrow direction=\"down\" x={0} y={range.min} className={classes.arrow} scale={scale} />\n )}\n {includeArrows && includeArrows.up && (\n <Arrow direction=\"up\" x={0} y={range.max} className={classes.arrow} scale={scale} />\n )}\n {range.axisLabel && (\n <foreignObject x={scale.x(0) - necessaryWidth / 2} y={-33} width={necessaryWidth} height=\"20\">\n <Readable false>\n <div dangerouslySetInnerHTML={{ __html: range.axisLabel }} className={classes.axisLabelHolder} />\n </Readable>\n </foreignObject>\n )}\n </React.Fragment>\n );\n }\n}\n\nconst YAxis = withStyles(axisStyles)(RawYAxis);\n\nexport default class Axes extends React.Component {\n static propTypes = {\n ...AxisPropTypes,\n classes: PropTypes.object,\n graphProps: types.GraphPropsType.isRequired,\n };\n static defaultProps = AxisDefaultProps;\n\n xValues = () => {\n const { graphProps } = this.props;\n const { scale, domain } = graphProps || {};\n\n if (!domain || !scale) {\n return;\n }\n\n const ticks = getTickValues({ ...domain, step: domain.labelStep });\n const negative = firstNegativeValue(ticks);\n\n return {\n columnTicksValues: ticks,\n firstNegativeX: negative,\n distanceFromOriginToFirstNegativeX: Math.abs(scale.y(0) - scale.y(negative)),\n };\n };\n\n yValues = () => {\n const { graphProps } = this.props;\n const { scale, range } = graphProps || {};\n\n if (!range || !scale) {\n return;\n }\n\n const ticks = getTickValues({ ...range, step: range.labelStep });\n const negative = firstNegativeValue(ticks);\n\n return {\n rowTickValues: ticks,\n firstNegativeY: negative,\n distanceFromOriginToFirstNegativeY: Math.abs(scale.x(0) - scale.x(negative)),\n };\n };\n\n render() {\n const { graphProps } = this.props;\n const { domain, range } = graphProps || {};\n const { columnTicksValues, firstNegativeX, distanceFromOriginToFirstNegativeX } = this.xValues();\n const { rowTickValues, firstNegativeY, distanceFromOriginToFirstNegativeY } = this.yValues();\n const deltaAllowance = 6;\n const dy = 25;\n\n const skipValues = sharedValues(\n firstNegativeX,\n firstNegativeY,\n distanceFromOriginToFirstNegativeX,\n distanceFromOriginToFirstNegativeY,\n deltaAllowance,\n dy,\n );\n\n // each axis has to be displayed only if the domain & range include it\n return (\n <React.Fragment>\n {range.min <= 0 ? (\n <XAxis\n {...this.props}\n skipValues={skipValues}\n columnTicksValues={columnTicksValues}\n distanceFromOriginToFirstNegativeY={distanceFromOriginToFirstNegativeY}\n dy={dy}\n />\n ) : null}\n {domain.min <= 0 ? (\n <YAxis\n {...this.props}\n skipValues={skipValues}\n rowTickValues={rowTickValues}\n distanceFromOriginToFirstNegativeX={distanceFromOriginToFirstNegativeX}\n />\n ) : null}\n </React.Fragment>\n );\n }\n}\n"],"file":"axes.js"}
|
package/lib/axis/index.js
CHANGED
|
@@ -23,4 +23,4 @@ var _axes = _interopRequireWildcard(require("./axes"));
|
|
|
23
23
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
24
24
|
|
|
25
25
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
26
|
-
//# sourceMappingURL=
|
|
26
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/axis/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA","sourcesContent":["import Axes, { AxisPropTypes } from './axes';\nexport { Axes, AxisPropTypes };\n"],"file":"index.js"}
|
package/lib/bg.js
CHANGED
|
@@ -136,4 +136,4 @@ exports["default"] = Bg;
|
|
|
136
136
|
graphProps: _plot.types.GraphPropsType.isRequired
|
|
137
137
|
});
|
|
138
138
|
(0, _defineProperty2["default"])(Bg, "defaultProps", {});
|
|
139
|
-
//# sourceMappingURL=
|
|
139
|
+
//# sourceMappingURL=bg.js.map
|
package/lib/bg.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/bg.jsx"],"names":["Bg","graphProps","props","rect","onClick","scale","padding","getRectPadding","coords","_groups","x","invert","y","rowTicks","range","columnTicks","domain","closest","ticks","value","length","reduce","prev","curr","currentDistance","Math","abs","previousDistance","snapped","indexOf","on","onRectClick","bind","nextProps","utils","isDomainRangeEqual","width","height","React","Component","PropTypes","number","isRequired","func","types","GraphPropsType"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { select, mouse } from 'd3-selection';\nimport { types, utils } from '@pie-lib/plot';\nimport { getTickValues, thinnerShapesNeeded } from './utils';\n\nexport default class Bg extends React.Component {\n static propTypes = {\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n onClick: PropTypes.func.isRequired,\n graphProps: types.GraphPropsType.isRequired,\n };\n\n static defaultProps = {};\n\n componentDidMount() {\n const rect = select(this.rect);\n\n rect.on('click', this.onRectClick.bind(this, rect));\n }\n\n shouldComponentUpdate(nextProps) {\n return (\n !utils.isDomainRangeEqual(this.props.graphProps, nextProps.graphProps) ||\n this.props.width !== nextProps.width ||\n this.props.height !== nextProps.height\n );\n }\n\n getRectPadding = () => {\n const { graphProps } = this.props;\n\n return thinnerShapesNeeded(graphProps) ? 6 : 10;\n };\n\n /**\n * Note: we use d3 click + mouse to give us domain values directly.\n * Saves us having to calculate them ourselves from a MouseEvent.\n */\n onRectClick = (rect) => {\n const { onClick, graphProps } = this.props;\n const { scale } = graphProps;\n\n const padding = this.getRectPadding();\n const coords = mouse(rect._groups[0][0]);\n\n // decrease the padding from coordinates to indicate the correct point clicked\n const x = scale.x.invert(coords[0] - padding);\n const y = scale.y.invert(coords[1] - padding);\n\n const rowTicks = getTickValues(graphProps.range);\n const columnTicks = getTickValues(graphProps.domain);\n\n const closest = (ticks, value) => {\n return (\n ticks.length &&\n ticks.reduce((prev, curr) => {\n const currentDistance = Math.abs(curr - value);\n const previousDistance = Math.abs(prev - value);\n\n return currentDistance <= previousDistance ? curr : prev;\n })\n );\n };\n\n let snapped = {};\n\n if (columnTicks.indexOf(x) >= 0 && rowTicks.indexOf(y) >= 0) {\n snapped.x = x;\n snapped.y = y;\n } else {\n snapped.x = closest(columnTicks, x);\n snapped.y = closest(rowTicks, y);\n }\n\n onClick(snapped);\n };\n\n render() {\n const { width, height } = this.props;\n const padding = this.getRectPadding();\n\n // expand the size of clickable area so a small area outside the edges of the grid lines to be clickable\n return (\n <rect\n ref={(rect) => (this.rect = rect)}\n transform={`translate(-${padding}, -${padding})`}\n fill=\"red\"\n fillOpacity=\"0.0\"\n width={width + padding * 2}\n height={height + padding * 2}\n />\n );\n }\n}\n"],"file":"bg.js"}
|
package/lib/container/actions.js
CHANGED
|
@@ -21,4 +21,4 @@ var changeMarks = function changeMarks(marks) {
|
|
|
21
21
|
};
|
|
22
22
|
|
|
23
23
|
exports.changeMarks = changeMarks;
|
|
24
|
-
//# sourceMappingURL=
|
|
24
|
+
//# sourceMappingURL=actions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/container/actions.js"],"names":["addMark","type","changeMarks","marks"],"mappings":";;;;;;;AAAO,IAAMA,OAAO,GAAG,SAAVA,OAAU;AAAA,SAAO;AAC5BC,IAAAA,IAAI,EAAE;AADsB,GAAP;AAAA,CAAhB;;;;AAIA,IAAMC,WAAW,GAAG,SAAdA,WAAc,CAACC,KAAD;AAAA,SAAY;AACrCF,IAAAA,IAAI,EAAE,cAD+B;AAErCE,IAAAA,KAAK,EAALA;AAFqC,GAAZ;AAAA,CAApB","sourcesContent":["export const addMark = () => ({\n type: 'ADD_MARK',\n});\n\nexport const changeMarks = (marks) => ({\n type: 'CHANGE_MARKS',\n marks,\n});\n"],"file":"actions.js"}
|
package/lib/container/index.js
CHANGED
|
@@ -163,4 +163,4 @@ var Root = /*#__PURE__*/function (_React$Component) {
|
|
|
163
163
|
});
|
|
164
164
|
var _default = Root;
|
|
165
165
|
exports["default"] = _default;
|
|
166
|
-
//# sourceMappingURL=
|
|
166
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/container/index.jsx"],"names":["mapStateToProps","s","marks","present","mapDispatchToProps","dispatch","onChangeMarks","m","onUndo","ActionCreators","undo","onRedo","redo","onReset","GraphContainer","GraphWithControls","Root","props","storeState","store","getState","lastAction","isUndoOperation","type","includes","r","lastActionMiddleware","subscribe","onStoreChange","prevProps","rest","correctnessSet","find","correctness","React","Component","PropTypes","func","array"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;AAEA,IAAMA,eAAe,GAAG,SAAlBA,eAAkB,CAACC,CAAD;AAAA,SAAQ;AAC9BC,IAAAA,KAAK,EAAED,CAAC,CAACC,KAAF,CAAQC;AADe,GAAR;AAAA,CAAxB;;AAIA,IAAMC,kBAAkB,GAAG,SAArBA,kBAAqB,CAACC,QAAD;AAAA,SAAe;AACxCC,IAAAA,aAAa,EAAE,uBAACC,CAAD;AAAA,aAAOF,QAAQ,CAAC,0BAAYE,CAAZ,CAAD,CAAf;AAAA,KADyB;AAExCC,IAAAA,MAAM,EAAE;AAAA,aAAMH,QAAQ,CAACI,0BAAeC,IAAf,EAAD,CAAd;AAAA,KAFgC;AAGxCC,IAAAA,MAAM,EAAE;AAAA,aAAMN,QAAQ,CAACI,0BAAeG,IAAf,EAAD,CAAd;AAAA,KAHgC;AAIxCC,IAAAA,OAAO,EAAE;AAAA,aAAMR,QAAQ,CAAC,0BAAY,EAAZ,CAAD,CAAd;AAAA;AAJ+B,GAAf;AAAA,CAA3B;;AAOO,IAAMS,cAAc,GAAG,yBAAQd,eAAR,EAAyBI,kBAAzB,EAA6CW,6BAA7C,CAAvB;AAEP;AACA;AACA;AACA;;;;IACMC,I;;;;;AAMJ,gBAAYC,KAAZ,EAAmB;AAAA;;AAAA;AACjB,8BAAMA,KAAN;AADiB,sGAsBH,YAAM;AACpB,wBAAiC,MAAKA,KAAtC;AAAA,UAAQf,KAAR,eAAQA,KAAR;AAAA,UAAeI,aAAf,eAAeA,aAAf;;AACA,UAAMY,UAAU,GAAG,MAAKC,KAAL,CAAWC,QAAX,EAAnB;;AACA,UAAMC,UAAU,GAAG,gCAAnB;AACA,UAAMC,eAAe,GAAGD,UAAU,CAACE,IAAX,CAAgBC,QAAhB,CAAyB,MAAzB,KAAoCH,UAAU,CAACE,IAAX,CAAgBC,QAAhB,CAAyB,MAAzB,CAA5D;;AAEA,UAAI,CAAC,yBAAQN,UAAU,CAAChB,KAAX,CAAiBC,OAAzB,EAAkCD,KAAlC,CAAL,EAA+C;AAC7CI,QAAAA,aAAa,CAACY,UAAU,CAAChB,KAAX,CAAiBC,OAAlB,EAA2BmB,eAA3B,CAAb;AACD;AACF,KA/BkB;AAGjB,QAAMG,CAAC,GAAG,0BAAV;AACA,UAAKN,KAAL,GAAa,wBAAYM,CAAZ,EAAe;AAAEvB,MAAAA,KAAK,EAAEe,KAAK,CAACf;AAAf,KAAf,EAAuC,4BAAgBwB,gCAAhB,CAAvC,CAAb;;AAEA,UAAKP,KAAL,CAAWQ,SAAX,CAAqB,MAAKC,aAA1B;;AANiB;AAOlB;;;;WAED,4BAAmBC,SAAnB,EAA8B;AAC5B,UAAQ3B,KAAR,GAAkB,KAAKe,KAAvB,CAAQf,KAAR;AACA,UAAMgB,UAAU,GAAG,KAAKC,KAAL,CAAWC,QAAX,EAAnB;;AAEA,UAAI,yBAAQF,UAAU,CAAChB,KAAX,CAAiBC,OAAzB,EAAkCD,KAAlC,CAAJ,EAA8C;AAC5C;AACD;;AAED,UAAI,CAAC,yBAAQ2B,SAAS,CAAC3B,KAAlB,EAAyBA,KAAzB,CAAL,EAAsC;AACpC,aAAKiB,KAAL,CAAWd,QAAX,CAAoB,0BAAYH,KAAZ,CAApB;AACD;AACF;;;WAaD,kBAAS;AACP;AACA,yBAA0C,KAAKe,KAA/C;AAAA,UAAQX,aAAR,gBAAQA,aAAR;AAAA,UAAuBJ,KAAvB,gBAAuBA,KAAvB;AAAA,UAAiC4B,IAAjC;AACA,UAAMC,cAAc,GAAG7B,KAAK,IAAIA,KAAK,CAAC8B,IAAN,CAAW,UAACzB,CAAD;AAAA,eAAOA,CAAC,CAAC0B,WAAT;AAAA,OAAX,CAAhC;;AAEA,UAAIF,cAAJ,EAAoB;AAClB,4BAAO,gCAAC,6BAAD,gCAAuBD,IAAvB;AAA6B,UAAA,KAAK,EAAE5B,KAApC;AAA2C,UAAA,QAAQ,EAAE6B;AAArD,WAAP;AACD;;AAED,0BACE,gCAAC,oBAAD;AAAU,QAAA,KAAK,EAAE,KAAKZ;AAAtB,sBACE,gCAAC,cAAD,EAAoBW,IAApB,CADF,CADF;AAKD;;;EArDgBI,kBAAMC,S;;iCAAnBnB,I,eACe;AACjBV,EAAAA,aAAa,EAAE8B,sBAAUC,IADR;AAEjBnC,EAAAA,KAAK,EAAEkC,sBAAUE;AAFA,C;eAuDNtB,I","sourcesContent":["import { connect } from 'react-redux';\nimport React from 'react';\nimport { Provider } from 'react-redux';\nimport { applyMiddleware, createStore } from 'redux';\nimport reducer from './reducer';\nimport { changeMarks } from './actions';\nimport PropTypes from 'prop-types';\nimport isEqual from 'lodash/isEqual';\nimport { ActionCreators } from 'redux-undo';\nimport GraphWithControls from '../graph-with-controls';\nimport { lastActionMiddleware, getLastAction } from './middleware';\n\nconst mapStateToProps = (s) => ({\n marks: s.marks.present,\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n onChangeMarks: (m) => dispatch(changeMarks(m)),\n onUndo: () => dispatch(ActionCreators.undo()),\n onRedo: () => dispatch(ActionCreators.redo()),\n onReset: () => dispatch(changeMarks([])),\n});\n\nexport const GraphContainer = connect(mapStateToProps, mapDispatchToProps)(GraphWithControls);\n\n/**\n * The graph component entry point with undo/redo\n * Redux is an implementation detail, hide it in the react component.\n */\nclass Root extends React.Component {\n static propTypes = {\n onChangeMarks: PropTypes.func,\n marks: PropTypes.array,\n };\n\n constructor(props) {\n super(props);\n\n const r = reducer();\n this.store = createStore(r, { marks: props.marks }, applyMiddleware(lastActionMiddleware));\n\n this.store.subscribe(this.onStoreChange);\n }\n\n componentDidUpdate(prevProps) {\n const { marks } = this.props;\n const storeState = this.store.getState();\n\n if (isEqual(storeState.marks.present, marks)) {\n return;\n }\n\n if (!isEqual(prevProps.marks, marks)) {\n this.store.dispatch(changeMarks(marks));\n }\n }\n\n onStoreChange = () => {\n const { marks, onChangeMarks } = this.props;\n const storeState = this.store.getState();\n const lastAction = getLastAction();\n const isUndoOperation = lastAction.type.includes('UNDO') || lastAction.type.includes('REDO');\n\n if (!isEqual(storeState.marks.present, marks)) {\n onChangeMarks(storeState.marks.present, isUndoOperation);\n }\n };\n\n render() {\n // eslint-disable-next-line no-unused-vars\n const { onChangeMarks, marks, ...rest } = this.props;\n const correctnessSet = marks && marks.find((m) => m.correctness);\n\n if (correctnessSet) {\n return <GraphWithControls {...rest} marks={marks} disabled={correctnessSet} />;\n }\n\n return (\n <Provider store={this.store}>\n <GraphContainer {...rest} />\n </Provider>\n );\n }\n}\n\nexport default Root;\n"],"file":"index.js"}
|
package/lib/container/marks.js
CHANGED
|
@@ -24,4 +24,4 @@ var marks = function marks() {
|
|
|
24
24
|
|
|
25
25
|
var _default = marks;
|
|
26
26
|
exports["default"] = _default;
|
|
27
|
-
//# sourceMappingURL=
|
|
27
|
+
//# sourceMappingURL=marks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/container/marks.js"],"names":["marks","state","action","type","Array","isArray","Error"],"mappings":";;;;;;;AAAA,IAAMA,KAAK,GAAG,SAARA,KAAQ,GAAwB;AAAA,MAAvBC,KAAuB,uEAAf,EAAe;AAAA,MAAXC,MAAW;;AACpC,UAAQA,MAAM,CAACC,IAAf;AACE,SAAK,cAAL;AACE,UAAIC,KAAK,CAACC,OAAN,CAAcH,MAAM,CAACF,KAArB,CAAJ,EAAiC;AAC/B,eAAOE,MAAM,CAACF,KAAd;AACD,OAFD,MAEO;AACL,cAAM,IAAIM,KAAJ,CAAU,wBAAV,CAAN;AACD;;AACH;AACE,aAAOL,KAAP;AARJ;AAUD,CAXD;;eAaeD,K","sourcesContent":["const marks = (state = [], action) => {\n switch (action.type) {\n case 'CHANGE_MARKS':\n if (Array.isArray(action.marks)) {\n return action.marks;\n } else {\n throw new Error('marks must be an array');\n }\n default:\n return state;\n }\n};\n\nexport default marks;\n"],"file":"marks.js"}
|
|
@@ -22,4 +22,4 @@ var lastActionMiddleware = function lastActionMiddleware() {
|
|
|
22
22
|
};
|
|
23
23
|
|
|
24
24
|
exports.lastActionMiddleware = lastActionMiddleware;
|
|
25
|
-
//# sourceMappingURL=
|
|
25
|
+
//# sourceMappingURL=middleware.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/container/middleware.js"],"names":["lastAction","getLastAction","lastActionMiddleware","next","action"],"mappings":";;;;;;AAAA,IAAIA,UAAU,GAAG,IAAjB;;AACO,IAAMC,aAAa,GAAG,SAAhBA,aAAgB;AAAA,SAAMD,UAAN;AAAA,CAAtB;;;;AAEA,IAAME,oBAAoB,GAAG,SAAvBA,oBAAuB;AAAA,SAAM,UAACC,IAAD;AAAA,WAAU,UAACC,MAAD,EAAY;AAC9DJ,MAAAA,UAAU,GAAGI,MAAb;AACA,aAAOD,IAAI,CAACC,MAAD,CAAX;AACD,KAHyC;AAAA,GAAN;AAAA,CAA7B","sourcesContent":["let lastAction = null;\nexport const getLastAction = () => lastAction;\n\nexport const lastActionMiddleware = () => (next) => (action) => {\n lastAction = action;\n return next(action);\n};\n"],"file":"middleware.js"}
|
package/lib/container/reducer.js
CHANGED
|
@@ -22,4 +22,4 @@ var _default = function _default() {
|
|
|
22
22
|
};
|
|
23
23
|
|
|
24
24
|
exports["default"] = _default;
|
|
25
|
-
//# sourceMappingURL=
|
|
25
|
+
//# sourceMappingURL=reducer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/container/reducer.js"],"names":["marks","debug"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;eAEe;AAAA,SAAM,4BAAgB;AAAEA,IAAAA,KAAK,EAAE,2BAASA,iBAAT,EAAgB;AAAEC,MAAAA,KAAK,EAAE;AAAT,KAAhB;AAAT,GAAhB,CAAN;AAAA,C","sourcesContent":["import { combineReducers } from 'redux';\nimport marks from './marks';\nimport undoable from 'redux-undo';\n\nexport default () => combineReducers({ marks: undoable(marks, { debug: false }) });\n"],"file":"reducer.js"}
|
package/lib/coordinates-label.js
CHANGED
|
@@ -15,7 +15,7 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
15
15
|
|
|
16
16
|
var _plot = require("@pie-lib/plot");
|
|
17
17
|
|
|
18
|
-
var
|
|
18
|
+
var _index = require("./shared/index");
|
|
19
19
|
|
|
20
20
|
var _styles = require("@material-ui/core/styles");
|
|
21
21
|
|
|
@@ -34,7 +34,7 @@ var styles = function styles(theme) {
|
|
|
34
34
|
fontSize: theme.typography.fontSize,
|
|
35
35
|
borderRadius: '8px',
|
|
36
36
|
background: theme.palette.common.white,
|
|
37
|
-
color:
|
|
37
|
+
color: _index.color.defaults.BLACK
|
|
38
38
|
},
|
|
39
39
|
inputLabel: {
|
|
40
40
|
padding: 0
|
|
@@ -106,4 +106,4 @@ CoordinatesLabel.propTypes = {
|
|
|
106
106
|
var _default = (0, _styles.withStyles)(styles)(CoordinatesLabel);
|
|
107
107
|
|
|
108
108
|
exports["default"] = _default;
|
|
109
|
-
//# sourceMappingURL=
|
|
109
|
+
//# sourceMappingURL=coordinates-label.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/coordinates-label.jsx"],"names":["styles","theme","input","fontFamily","typography","fontSize","borderRadius","background","palette","common","white","color","defaults","BLACK","inputLabel","padding","getLabelPosition","graphProps","x","y","labelLength","scale","domain","range","topShift","min","max","leftShift","rightEdge","left","top","CoordinatesLabel","classes","label","length","labelPosition","style","position","pointerEvents","width","ariaLabel","propTypes","types","GraphPropsType","PropTypes","object","number"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { types } from '@pie-lib/plot';\nimport { color } from '../../render-ui/src/index';\nimport { withStyles } from '@material-ui/core/styles';\nimport InputBase from '@material-ui/core/InputBase';\nimport { roundNumber } from './utils';\n\nconst styles = (theme) => ({\n input: {\n fontFamily: theme.typography.fontFamily,\n fontSize: theme.typography.fontSize,\n borderRadius: '8px',\n background: theme.palette.common.white,\n color: color.defaults.BLACK,\n },\n inputLabel: {\n padding: 0,\n },\n});\n\nexport const getLabelPosition = (graphProps, x, y, labelLength) => {\n const { scale, domain, range } = graphProps;\n // treat corner cases for maximum and minimum\n const topShift = y === range.min ? 16 : y === range.max ? 0 : 8;\n const leftShift = 10;\n const rightEdge = scale.x(x) + labelLength + leftShift;\n\n if (rightEdge >= scale.x(domain.max)) {\n return {\n left: scale.x(x) - leftShift - labelLength,\n top: scale.y(y) - topShift,\n };\n }\n\n return {\n left: scale.x(x) + leftShift,\n top: scale.y(y) - topShift,\n };\n};\n\nexport const CoordinatesLabel = ({ x, y, graphProps, classes }) => {\n const label = `(${roundNumber(x)}, ${roundNumber(y)})`;\n const labelLength = (label.length || 0) * 6;\n const labelPosition = getLabelPosition(graphProps, x, y, labelLength);\n\n const style = {\n position: 'absolute',\n pointerEvents: 'auto',\n width: labelLength,\n padding: 0,\n ...labelPosition,\n };\n\n return (\n <InputBase\n style={style}\n classes={{ input: classes.inputLabel }}\n className={classes.input}\n value={label}\n inputProps={{ ariaLabel: 'naked' }}\n />\n );\n};\n\nCoordinatesLabel.propTypes = {\n graphProps: types.GraphPropsType,\n classes: PropTypes.object,\n x: PropTypes.number,\n y: PropTypes.number,\n};\n\nexport default withStyles(styles)(CoordinatesLabel);\n"],"file":"coordinates-label.js"}
|