@pie-lib/charting 5.15.7 → 5.17.0-beta.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 +9 -1
- package/NEXT.CHANGELOG.json +1 -0
- package/lib/__tests__/axes.test.js +181 -0
- package/lib/__tests__/chart-setup.test.js +58 -0
- package/lib/__tests__/chart-type.test.js +42 -0
- package/lib/__tests__/chart.test.js +108 -0
- package/lib/__tests__/grid.test.js +48 -0
- package/lib/__tests__/mark-label.test.js +57 -0
- package/lib/__tests__/utils.js +56 -0
- package/lib/__tests__/utils.test.js +197 -0
- package/lib/axes.js +75 -30
- package/lib/bars/__tests__/bar.test.js +62 -0
- package/lib/bars/__tests__/histogram.test.js +64 -0
- package/lib/bars/__tests__/utils.js +56 -0
- package/lib/bars/bar.js +1 -1
- package/lib/bars/common/__tests__/bars.test.js +100 -0
- package/lib/bars/common/__tests__/utils.js +56 -0
- package/lib/bars/common/bars.js +36 -2
- package/lib/bars/histogram.js +1 -1
- package/lib/chart-setup.js +1 -1
- package/lib/chart-type.js +5 -5
- package/lib/chart-types.js +3 -3
- package/lib/chart.js +26 -11
- package/lib/common/__tests__/drag-handle.test.js +134 -0
- package/lib/common/__tests__/utils.js +56 -0
- package/lib/common/drag-handle.js +12 -6
- package/lib/common/drag-icon.js +8 -25
- package/lib/common/styles.js +1 -1
- package/lib/grid.js +1 -1
- package/lib/index.js +1 -1
- package/lib/line/__tests__/line-cross.test.js +64 -0
- package/lib/line/__tests__/line-dot.test.js +64 -0
- package/lib/line/__tests__/utils.js +56 -0
- package/lib/line/common/__tests__/drag-handle.test.js +134 -0
- package/lib/line/common/__tests__/line.test.js +128 -0
- package/lib/line/common/__tests__/utils.js +56 -0
- package/lib/line/common/drag-handle.js +10 -5
- package/lib/line/common/line.js +1 -1
- package/lib/line/line-cross.js +17 -6
- package/lib/line/line-dot.js +11 -3
- package/lib/mark-label.js +21 -12
- package/lib/plot/__tests__/dot.test.js +64 -0
- package/lib/plot/__tests__/line.test.js +64 -0
- package/lib/plot/__tests__/utils.js +56 -0
- package/lib/plot/common/__tests__/plot.test.js +103 -0
- package/lib/plot/common/__tests__/utils.js +56 -0
- package/lib/plot/common/plot.js +4 -2
- package/lib/plot/dot.js +2 -2
- package/lib/plot/line.js +2 -2
- package/lib/tool-menu.js +1 -5
- package/lib/utils.js +1 -1
- package/package.json +4 -4
- package/src/__tests__/__snapshots__/axes.test.jsx.snap +564 -0
- package/src/__tests__/__snapshots__/chart-type.test.jsx.snap +14 -0
- package/src/__tests__/__snapshots__/chart.test.jsx.snap +610 -0
- package/src/__tests__/__snapshots__/grid.test.jsx.snap +28 -0
- package/src/__tests__/__snapshots__/mark-label.test.jsx.snap +67 -0
- package/src/__tests__/axes.test.jsx +146 -0
- package/src/__tests__/chart-setup.test.jsx +47 -0
- package/src/__tests__/chart-type.test.jsx +29 -0
- package/src/__tests__/chart.test.jsx +87 -0
- package/src/__tests__/grid.test.jsx +25 -0
- package/src/__tests__/mark-label.test.jsx +31 -0
- package/src/__tests__/utils.js +30 -0
- package/src/__tests__/utils.test.js +100 -0
- package/src/axes.jsx +59 -23
- package/src/bars/__tests__/__snapshots__/bar.test.jsx.snap +43 -0
- package/src/bars/__tests__/__snapshots__/histogram.test.jsx.snap +45 -0
- package/src/bars/__tests__/bar.test.jsx +37 -0
- package/src/bars/__tests__/histogram.test.jsx +38 -0
- package/src/bars/__tests__/utils.js +30 -0
- package/src/bars/common/__tests__/__snapshots__/bars.test.jsx.snap +110 -0
- package/src/bars/common/__tests__/bars.test.jsx +69 -0
- package/src/bars/common/__tests__/utils.js +30 -0
- package/src/bars/common/bars.jsx +37 -1
- package/src/chart-type.js +7 -3
- package/src/chart-types.js +2 -2
- package/src/chart.jsx +15 -5
- package/src/common/__tests__/__snapshots__/drag-handle.test.jsx.snap +45 -0
- package/src/common/__tests__/drag-handle.test.jsx +88 -0
- package/src/common/__tests__/utils.js +30 -0
- package/src/common/drag-handle.jsx +18 -10
- package/src/common/drag-icon.jsx +6 -21
- package/src/line/__tests__/__snapshots__/line-cross.test.jsx.snap +45 -0
- package/src/line/__tests__/__snapshots__/line-dot.test.jsx.snap +45 -0
- package/src/line/__tests__/line-cross.test.jsx +38 -0
- package/src/line/__tests__/line-dot.test.jsx +38 -0
- package/src/line/__tests__/utils.js +30 -0
- package/src/line/common/__tests__/__snapshots__/drag-handle.test.jsx.snap +44 -0
- package/src/line/common/__tests__/__snapshots__/line.test.jsx.snap +141 -0
- package/src/line/common/__tests__/drag-handle.test.jsx +88 -0
- package/src/line/common/__tests__/line.test.jsx +82 -0
- package/src/line/common/__tests__/utils.js +30 -0
- package/src/line/common/drag-handle.jsx +9 -4
- package/src/line/line-cross.js +4 -1
- package/src/line/line-dot.js +17 -7
- package/src/mark-label.jsx +19 -7
- package/src/plot/__tests__/__snapshots__/dot.test.jsx.snap +45 -0
- package/src/plot/__tests__/__snapshots__/line.test.jsx.snap +45 -0
- package/src/plot/__tests__/dot.test.jsx +38 -0
- package/src/plot/__tests__/line.test.jsx +38 -0
- package/src/plot/__tests__/utils.js +30 -0
- package/src/plot/common/__tests__/__snapshots__/plot.test.jsx.snap +96 -0
- package/src/plot/common/__tests__/plot.test.jsx +70 -0
- package/src/plot/common/__tests__/utils.js +30 -0
- package/src/plot/common/plot.jsx +6 -1
- package/src/plot/dot.js +1 -1
- package/src/plot/line.js +1 -1
- package/src/tool-menu.jsx +0 -4
- package/lib/axes.js.map +0 -1
- package/lib/bars/bar.js.map +0 -1
- package/lib/bars/common/bars.js.map +0 -1
- package/lib/bars/histogram.js.map +0 -1
- package/lib/chart-setup.js.map +0 -1
- package/lib/chart-type.js.map +0 -1
- package/lib/chart-types.js.map +0 -1
- package/lib/chart.js.map +0 -1
- package/lib/common/drag-handle.js.map +0 -1
- package/lib/common/drag-icon.js.map +0 -1
- package/lib/common/styles.js.map +0 -1
- package/lib/grid.js.map +0 -1
- package/lib/index.js.map +0 -1
- package/lib/line/common/drag-handle.js.map +0 -1
- package/lib/line/common/line.js.map +0 -1
- package/lib/line/line-cross.js.map +0 -1
- package/lib/line/line-dot.js.map +0 -1
- package/lib/mark-label.js.map +0 -1
- package/lib/plot/common/plot.js.map +0 -1
- package/lib/plot/dot.js.map +0 -1
- package/lib/plot/line.js.map +0 -1
- package/lib/tool-menu.js.map +0 -1
- package/lib/utils.js.map +0 -1
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
4
|
+
|
|
5
|
+
var utils = _interopRequireWildcard(require("../utils"));
|
|
6
|
+
|
|
7
|
+
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); }
|
|
8
|
+
|
|
9
|
+
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; }
|
|
10
|
+
|
|
11
|
+
var xy = function xy(x, y) {
|
|
12
|
+
return {
|
|
13
|
+
x: x,
|
|
14
|
+
y: y
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
describe('utils', function () {
|
|
19
|
+
describe('getTickValues', function () {
|
|
20
|
+
var assertGetTickValues = function assertGetTickValues(range, points) {
|
|
21
|
+
it("converts ".concat(range, " -> ").concat(points), function () {
|
|
22
|
+
var result = utils.getTickValues(range);
|
|
23
|
+
expect(result).toEqual(points);
|
|
24
|
+
});
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
assertGetTickValues({
|
|
28
|
+
min: 0,
|
|
29
|
+
max: 5,
|
|
30
|
+
step: 1
|
|
31
|
+
}, [0, 1, 2, 3, 4, 5]);
|
|
32
|
+
assertGetTickValues({
|
|
33
|
+
min: 0,
|
|
34
|
+
max: 5,
|
|
35
|
+
step: 0.5
|
|
36
|
+
}, [0, 0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5]);
|
|
37
|
+
assertGetTickValues({
|
|
38
|
+
min: 0.4,
|
|
39
|
+
max: 2,
|
|
40
|
+
step: 0.3
|
|
41
|
+
}, [0.4, 0.7, 1, 1.3, 1.6, 1.9]);
|
|
42
|
+
});
|
|
43
|
+
describe('getDomainAndRangeByChartType', function () {
|
|
44
|
+
var assertGetDomainAndRangeByChartType = function assertGetDomainAndRangeByChartType(domain, range, chartType, correctValues) {
|
|
45
|
+
it('returns correct values for domain and range', function () {
|
|
46
|
+
var result = utils.getDomainAndRangeByChartType(domain, range, chartType);
|
|
47
|
+
expect(result).toEqual(correctValues);
|
|
48
|
+
});
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
assertGetDomainAndRangeByChartType({
|
|
52
|
+
min: -1,
|
|
53
|
+
max: 4
|
|
54
|
+
}, {
|
|
55
|
+
min: 1,
|
|
56
|
+
max: 2,
|
|
57
|
+
step: 1
|
|
58
|
+
}, 'line', {
|
|
59
|
+
domain: {
|
|
60
|
+
min: 0,
|
|
61
|
+
max: 1,
|
|
62
|
+
step: 1,
|
|
63
|
+
labelStep: 1
|
|
64
|
+
},
|
|
65
|
+
range: {
|
|
66
|
+
min: 1,
|
|
67
|
+
max: 2,
|
|
68
|
+
step: 1,
|
|
69
|
+
labelStep: 1
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
assertGetDomainAndRangeByChartType({
|
|
73
|
+
min: -1,
|
|
74
|
+
max: 4
|
|
75
|
+
}, {
|
|
76
|
+
min: 0.1,
|
|
77
|
+
max: 2,
|
|
78
|
+
labelStep: 0.1
|
|
79
|
+
}, 'line', {
|
|
80
|
+
domain: {
|
|
81
|
+
min: 0,
|
|
82
|
+
max: 1,
|
|
83
|
+
step: 1,
|
|
84
|
+
labelStep: 1
|
|
85
|
+
},
|
|
86
|
+
range: {
|
|
87
|
+
min: 0.1,
|
|
88
|
+
max: 2,
|
|
89
|
+
step: 0.1,
|
|
90
|
+
labelStep: 0.1
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
assertGetDomainAndRangeByChartType({
|
|
94
|
+
min: -1,
|
|
95
|
+
max: 4
|
|
96
|
+
}, {
|
|
97
|
+
min: 0.2,
|
|
98
|
+
max: 2.4,
|
|
99
|
+
step: 0.1
|
|
100
|
+
}, 'dotPlot', {
|
|
101
|
+
domain: {
|
|
102
|
+
min: 0,
|
|
103
|
+
max: 1,
|
|
104
|
+
step: 1,
|
|
105
|
+
labelStep: 1
|
|
106
|
+
},
|
|
107
|
+
range: {
|
|
108
|
+
min: 0,
|
|
109
|
+
max: 2,
|
|
110
|
+
step: 1,
|
|
111
|
+
labelStep: 0.1
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
describe('getGridLinesAndAxisByChartType', function () {
|
|
116
|
+
var assertGetGridLinesAndAxisByChartType = function assertGetGridLinesAndAxisByChartType(range, chartType, gridLines) {
|
|
117
|
+
it('returns proper grid values', function () {
|
|
118
|
+
var result = utils.getGridLinesAndAxisByChartType(range, chartType);
|
|
119
|
+
expect(result).toEqual(gridLines);
|
|
120
|
+
});
|
|
121
|
+
};
|
|
122
|
+
|
|
123
|
+
assertGetGridLinesAndAxisByChartType({
|
|
124
|
+
min: 0,
|
|
125
|
+
max: 1,
|
|
126
|
+
step: 1
|
|
127
|
+
}, 'lineDot', {
|
|
128
|
+
verticalLines: undefined,
|
|
129
|
+
horizontalLines: [0, 1],
|
|
130
|
+
leftAxis: true
|
|
131
|
+
});
|
|
132
|
+
assertGetGridLinesAndAxisByChartType({
|
|
133
|
+
min: 0,
|
|
134
|
+
max: 1,
|
|
135
|
+
step: 1
|
|
136
|
+
}, 'lineCross', {
|
|
137
|
+
verticalLines: undefined,
|
|
138
|
+
horizontalLines: [0, 1],
|
|
139
|
+
leftAxis: true
|
|
140
|
+
});
|
|
141
|
+
assertGetGridLinesAndAxisByChartType({
|
|
142
|
+
min: 0,
|
|
143
|
+
max: 1,
|
|
144
|
+
step: 1
|
|
145
|
+
}, 'bar', {
|
|
146
|
+
verticalLines: [],
|
|
147
|
+
horizontalLines: [0, 1],
|
|
148
|
+
leftAxis: true
|
|
149
|
+
});
|
|
150
|
+
assertGetGridLinesAndAxisByChartType({
|
|
151
|
+
min: 0,
|
|
152
|
+
max: 1,
|
|
153
|
+
step: 1
|
|
154
|
+
}, 'dotPlot', {
|
|
155
|
+
verticalLines: [],
|
|
156
|
+
horizontalLines: [],
|
|
157
|
+
leftAxis: false
|
|
158
|
+
});
|
|
159
|
+
});
|
|
160
|
+
describe('getTopPadding', function () {
|
|
161
|
+
var assertGetTopPadding = function assertGetTopPadding(barWidth, topPadding) {
|
|
162
|
+
it('returns proper top padding', function () {
|
|
163
|
+
var result = utils.getTopPadding(barWidth);
|
|
164
|
+
expect(result).toEqual(topPadding);
|
|
165
|
+
});
|
|
166
|
+
};
|
|
167
|
+
|
|
168
|
+
assertGetTopPadding(20, 50);
|
|
169
|
+
assertGetTopPadding(35, 30);
|
|
170
|
+
assertGetTopPadding(55, 15);
|
|
171
|
+
assertGetTopPadding(65, 0);
|
|
172
|
+
});
|
|
173
|
+
describe('getRotateAngle', function () {
|
|
174
|
+
var assertGetRotateAngle = function assertGetRotateAngle(_ref, rotateAngle) {
|
|
175
|
+
var fontSize = _ref.fontSize,
|
|
176
|
+
height = _ref.height;
|
|
177
|
+
it('returns proper rotate angle', function () {
|
|
178
|
+
var result = utils.getRotateAngle(fontSize, height);
|
|
179
|
+
expect(result).toEqual(rotateAngle);
|
|
180
|
+
});
|
|
181
|
+
};
|
|
182
|
+
|
|
183
|
+
assertGetRotateAngle({
|
|
184
|
+
fontSize: 14,
|
|
185
|
+
height: 14
|
|
186
|
+
}, 0);
|
|
187
|
+
assertGetRotateAngle({
|
|
188
|
+
fontSize: 14,
|
|
189
|
+
height: 28
|
|
190
|
+
}, 25);
|
|
191
|
+
assertGetRotateAngle({
|
|
192
|
+
fontSize: 14,
|
|
193
|
+
height: 42
|
|
194
|
+
}, 25);
|
|
195
|
+
});
|
|
196
|
+
});
|
|
197
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vdXRpbHMudGVzdC5qcyJdLCJuYW1lcyI6WyJ4eSIsIngiLCJ5IiwiZGVzY3JpYmUiLCJhc3NlcnRHZXRUaWNrVmFsdWVzIiwicmFuZ2UiLCJwb2ludHMiLCJpdCIsInJlc3VsdCIsInV0aWxzIiwiZ2V0VGlja1ZhbHVlcyIsImV4cGVjdCIsInRvRXF1YWwiLCJtaW4iLCJtYXgiLCJzdGVwIiwiYXNzZXJ0R2V0RG9tYWluQW5kUmFuZ2VCeUNoYXJ0VHlwZSIsImRvbWFpbiIsImNoYXJ0VHlwZSIsImNvcnJlY3RWYWx1ZXMiLCJnZXREb21haW5BbmRSYW5nZUJ5Q2hhcnRUeXBlIiwibGFiZWxTdGVwIiwiYXNzZXJ0R2V0R3JpZExpbmVzQW5kQXhpc0J5Q2hhcnRUeXBlIiwiZ3JpZExpbmVzIiwiZ2V0R3JpZExpbmVzQW5kQXhpc0J5Q2hhcnRUeXBlIiwidmVydGljYWxMaW5lcyIsInVuZGVmaW5lZCIsImhvcml6b250YWxMaW5lcyIsImxlZnRBeGlzIiwiYXNzZXJ0R2V0VG9wUGFkZGluZyIsImJhcldpZHRoIiwidG9wUGFkZGluZyIsImdldFRvcFBhZGRpbmciLCJhc3NlcnRHZXRSb3RhdGVBbmdsZSIsInJvdGF0ZUFuZ2xlIiwiZm9udFNpemUiLCJoZWlnaHQiLCJnZXRSb3RhdGVBbmdsZSJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBOzs7Ozs7QUFFQSxJQUFNQSxFQUFFLEdBQUcsU0FBTEEsRUFBSyxDQUFDQyxDQUFELEVBQUlDLENBQUo7QUFBQSxTQUFXO0FBQUVELElBQUFBLENBQUMsRUFBREEsQ0FBRjtBQUFLQyxJQUFBQSxDQUFDLEVBQURBO0FBQUwsR0FBWDtBQUFBLENBQVg7O0FBRUFDLFFBQVEsQ0FBQyxPQUFELEVBQVUsWUFBTTtBQUN0QkEsRUFBQUEsUUFBUSxDQUFDLGVBQUQsRUFBa0IsWUFBTTtBQUM5QixRQUFNQyxtQkFBbUIsR0FBRyxTQUF0QkEsbUJBQXNCLENBQUNDLEtBQUQsRUFBUUMsTUFBUixFQUFt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QWNBMUIsRUFBQUEsUUFBUSxDQUFDLGdCQUFELEVBQW1CLFlBQU07QUFDL0IsUUFBTThCLG9CQUFvQixHQUFHLFNBQXZCQSxvQkFBdUIsT0FBdUJDLFdBQXZCLEVBQXVDO0FBQUEsVUFBcENDLFFBQW9DLFFBQXBDQSxRQUFvQztBQUFBLFVBQTFCQyxNQUEwQixRQUExQkEsTUFBMEI7QUFDbEU3QixNQUFBQSxFQUFFLENBQUMsNkJBQUQsRUFBZ0MsWUFBTTtBQUN0QyxZQUFNQyxNQUFNLEdBQUdDLEtBQUssQ0FBQzRCLGNBQU4sQ0FBcUJGLFFBQXJCLEVBQStCQyxNQUEvQixDQUFmO0FBQ0F6QixRQUFBQSxNQUFNLENBQUNILE1BQUQsQ0FBTixDQUFlSSxPQUFmLENBQXVCc0IsV0FBdkI7QUFDRCxPQUhDLENBQUY7QUFJRCxLQUxEOztBQU9BRCxJQUFBQSxvQkFBb0IsQ0FBQztBQUFFRSxNQUFBQSxRQUFRLEVBQUUsRUFBWjtBQUFnQkMsTUFBQUEsTUFBTSxFQUFFO0FBQXhCLEtBQUQsRUFBK0IsQ0FBL0IsQ0FBcEI7QUFDQUgsSUFBQUEsb0JBQW9CLENBQUM7QUFBRUUsTUFBQUEsUUFBUSxFQUFFLEVBQVo7QUFBZ0JDLE1BQUFBLE1BQU0sRUFBRTtBQUF4QixLQUFELEVBQStCLEVBQS9CLENBQXBCO0FBQ0FILElBQUFBLG9CQUFvQixDQUFDO0FBQUVFLE1BQUFBLFFBQVEsRUFBRSxFQUFaO0FBQWdCQyxNQUFBQSxNQUFNLEVBQUU7QUFBeEIsS0FBRCxFQUErQixFQUEvQixDQUFwQjtBQUNELEdBWE8sQ0FBUjtBQVlELENBL0ZPLENBQVIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB1dGlscyBmcm9tICcuLi91dGlscyc7XG5cbmNvbnN0IHh5ID0gKHgsIHkpID0+ICh7IHgsIHkgfSk7XG5cbmRlc2NyaWJlKCd1dGlscycsICgpID0+IHtcbiAgZGVzY3JpYmUoJ2dldFRpY2tWYWx1ZXMnLCAoKSA9PiB7XG4gICAgY29uc3QgYXNzZXJ0R2V0VGlja1ZhbHVlcyA9IChyYW5nZSwgcG9pbnRzKSA9PiB7XG4gICAgICBpdChgY29udmVydHMgJHtyYW5nZX0gLT4gJHtwb2ludHN9YCwgKCkgPT4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSB1dGlscy5nZXRUaWNrVmFsdWVzKHJhbmdlKTtcbiAgICAgICAgZXhwZWN0KHJlc3VsdCkudG9FcXVhbChwb2ludHMpO1xuICAgICAgfSk7XG4gICAgfTtcblxuICAgIGFzc2VydEdldFRpY2tWYWx1ZXMoeyBtaW46IDAsIG1heDogNSwgc3RlcDogMSB9LCBbMCwgMSwgMiwgMywgNCwgNV0pO1xuICAgIGFzc2VydEdldFRpY2tWYWx1ZXMoeyBtaW46IDAsIG1heDogNSwgc3RlcDogMC41IH0sIFswLCAwLjUsIDEsIDEuNSwgMiwgMi41LCAzLCAzLjUsIDQsIDQuNSwgNV0pO1xuICAgIGFzc2VydEdldFRpY2tWYWx1ZXMoeyBtaW46IDAuNCwgbWF4OiAyLCBzdGVwOiAwLjMgfSwgWzAuNCwgMC43LCAxLCAxLjMsIDEuNiwgMS45XSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdnZXREb21haW5BbmRSYW5nZUJ5Q2hhcnRUeXBlJywgKCkgPT4ge1xuICAgIGNvbnN0IGFzc2VydEdldERvbWFpbkFuZFJhbmdlQnlDaGFydFR5cGUgPSAoZG9tYWluLCByYW5nZSwgY2hhcnRUeXBlLCBjb3JyZWN0VmFsdWVzKSA9PiB7XG4gICAgICBpdCgncmV0dXJucyBjb3JyZWN0IHZhbHVlcyBmb3IgZG9tYWluIGFuZCByYW5nZScsICgpID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gdXRpbHMuZ2V0RG9tYWluQW5kUmFuZ2VCeUNoYXJ0VHlwZShkb21haW4sIHJhbmdlLCBjaGFydFR5cGUpO1xuICAgICAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKGNvcnJlY3RWYWx1ZXMpO1xuICAgICAgfSk7XG4gICAgfTtcblxuICAgIGFzc2VydEdldERvbWFpbkFuZFJhbmdlQnlDaGFydFR5cGUoeyBtaW46IC0xLCBtYXg6IDQgfSwgeyBtaW46IDEsIG1heDogMiwgc3RlcDogMSB9LCAnbGluZScsIHtcbiAgICAgIGRvbWFpbjogeyBtaW46IDAsIG1heDogMSwgc3RlcDogMSwgbGFiZWxTdGVwOiAxIH0sXG4gICAgICByYW5nZTogeyBtaW46IDEsIG1heDogMiwgc3RlcDogMSwgbGFiZWxTdGVwOiAxIH0sXG4gICAgfSk7XG4gICAgYXNzZXJ0R2V0RG9tYWluQW5kUmFuZ2VCeUNoYXJ0VHlwZSh7IG1pbjogLTEsIG1heDogNCB9LCB7IG1pbjogMC4xLCBtYXg6IDIsIGxhYmVsU3RlcDogMC4xIH0sICdsaW5lJywge1xuICAgICAgZG9tYWluOiB7IG1pbjogMCwgbWF4OiAxLCBzdGVwOiAxLCBsYWJlbFN0ZXA6IDEgfSxcbiAgICAgIHJhbmdlOiB7IG1pbjogMC4xLCBtYXg6IDIsIHN0ZXA6IDAuMSwgbGFiZWxTdGVwOiAwLjEgfSxcbiAgICB9KTtcbiAgICBhc3NlcnRHZXREb21haW5BbmRSYW5nZUJ5Q2hhcnRUeXBlKHsgbWluOiAtMSwgbWF4OiA0IH0sIHsgbWluOiAwLjIsIG1heDogMi40LCBzdGVwOiAwLjEgfSwgJ2RvdFBsb3QnLCB7XG4gICAgICBkb21haW46IHsgbWluOiAwLCBtYXg6IDEsIHN0ZXA6IDEsIGxhYmVsU3RlcDogMSB9LFxuICAgICAgcmFuZ2U6IHsgbWluOiAwLCBtYXg6IDIsIHN0ZXA6IDEsIGxhYmVsU3RlcDogMC4xIH0sXG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdnZXRHcmlkTGluZXNBbmRBeGlzQnlDaGFydFR5cGUnLCAoKSA9PiB7XG4gICAgY29uc3QgYXNzZXJ0R2V0R3JpZExpbmVzQW5kQXhpc0J5Q2hhcnRUeXBlID0gKHJhbmdlLCBjaGFydFR5cGUsIGdyaWRMaW5lcykgPT4ge1xuICAgICAgaXQoJ3JldHVybnMgcHJvcGVyIGdyaWQgdmFsdWVzJywgKCkgPT4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSB1dGlscy5nZXRHcmlkTGluZXNBbmRBeGlzQnlDaGFydFR5cGUocmFuZ2UsIGNoYXJ0VHlwZSk7XG4gICAgICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoZ3JpZExpbmVzKTtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBhc3NlcnRHZXRHcmlkTGluZXNBbmRBeGlzQnlDaGFydFR5cGUoeyBtaW46IDAsIG1heDogMSwgc3RlcDogMSB9LCAnbGluZURvdCcsIHtcbiAgICAgIHZlcnRpY2FsTGluZXM6IHVuZGVmaW5lZCxcbiAgICAgIGhvcml6b250YWxMaW5lczogWzAsIDFdLFxuICAgICAgbGVmdEF4aXM6IHRydWUsXG4gICAgfSk7XG5cbiAgICBhc3NlcnRHZXRHcmlkTGluZXNBbmRBeGlzQnlDaGFydFR5cGUoeyBtaW46IDAsIG1heDogMSwgc3RlcDogMSB9LCAnbGluZUNyb3NzJywge1xuICAgICAgdmVydGljYWxMaW5lczogdW5kZWZpbmVkLFxuICAgICAgaG9yaXpvbnRhbExpbmVzOiBbMCwgMV0sXG4gICAgICBsZWZ0QXhpczogdHJ1ZSxcbiAgICB9KTtcblxuICAgIGFzc2VydEdldEdyaWRMaW5lc0FuZEF4aXNCeUNoYXJ0VHlwZSh7IG1pbjogMCwgbWF4OiAxLCBzdGVwOiAxIH0sICdiYXInLCB7XG4gICAgICB2ZXJ0aWNhbExpbmVzOiBbXSxcbiAgICAgIGhvcml6b250YWxMaW5lczogWzAsIDFdLFxuICAgICAgbGVmdEF4aXM6IHRydWUsXG4gICAgfSk7XG5cbiAgICBhc3NlcnRHZXRHcmlkTGluZXNBbmRBeGlzQnlDaGFydFR5cGUoeyBtaW46IDAsIG1heDogMSwgc3RlcDogMSB9LCAnZG90UGxvdCcsIHtcbiAgICAgIHZlcnRpY2FsTGluZXM6IFtdLFxuICAgICAgaG9yaXpvbnRhbExpbmVzOiBbXSxcbiAgICAgIGxlZnRBeGlzOiBmYWxzZSxcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2dldFRvcFBhZGRpbmcnLCAoKSA9PiB7XG4gICAgY29uc3QgYXNzZXJ0R2V0VG9wUGFkZGluZyA9IChiYXJXaWR0aCwgdG9wUGFkZGluZykgPT4ge1xuICAgICAgaXQoJ3JldHVybnMgcHJvcGVyIHRvcCBwYWRkaW5nJywgKCkgPT4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSB1dGlscy5nZXRUb3BQYWRkaW5nKGJhcldpZHRoKTtcbiAgICAgICAgZXhwZWN0KHJlc3VsdCkudG9FcXVhbCh0b3BQYWRkaW5nKTtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBhc3NlcnRHZXRUb3BQYWRkaW5nKDIwLCA1MCk7XG4gICAgYXNzZXJ0R2V0VG9wUGFkZGluZygzNSwgMzApO1xuICAgIGFzc2VydEdldFRvcFBhZGRpbmcoNTUsIDE1KTtcbiAgICBhc3NlcnRHZXRUb3BQYWRkaW5nKDY1LCAwKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2dldFJvdGF0ZUFuZ2xlJywgKCkgPT4ge1xuICAgIGNvbnN0IGFzc2VydEdldFJvdGF0ZUFuZ2xlID0gKHsgZm9udFNpemUsIGhlaWdodCB9LCByb3RhdGVBbmdsZSkgPT4ge1xuICAgICAgaXQoJ3JldHVybnMgcHJvcGVyIHJvdGF0ZSBhbmdsZScsICgpID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gdXRpbHMuZ2V0Um90YXRlQW5nbGUoZm9udFNpemUsIGhlaWdodCk7XG4gICAgICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwocm90YXRlQW5nbGUpO1xuICAgICAgfSk7XG4gICAgfTtcblxuICAgIGFzc2VydEdldFJvdGF0ZUFuZ2xlKHsgZm9udFNpemU6IDE0LCBoZWlnaHQ6IDE0IH0sIDApO1xuICAgIGFzc2VydEdldFJvdGF0ZUFuZ2xlKHsgZm9udFNpemU6IDE0LCBoZWlnaHQ6IDI4IH0sIDI1KTtcbiAgICBhc3NlcnRHZXRSb3RhdGVBbmdsZSh7IGZvbnRTaXplOiAxNCwgaGVpZ2h0OiA0MiB9LCAyNSk7XG4gIH0pO1xufSk7XG4iXX0=
|
package/lib/axes.js
CHANGED
|
@@ -173,6 +173,13 @@ var TickComponent = /*#__PURE__*/function (_React$Component) {
|
|
|
173
173
|
}
|
|
174
174
|
|
|
175
175
|
(0, _createClass2["default"])(TickComponent, [{
|
|
176
|
+
key: "componentDidUpdate",
|
|
177
|
+
value: function componentDidUpdate(prevProps) {
|
|
178
|
+
if (this.props.autoFocus && !prevProps.autoFocus) {
|
|
179
|
+
this.props.onAutoFocusUsed();
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}, {
|
|
176
183
|
key: "render",
|
|
177
184
|
value: function render() {
|
|
178
185
|
var _this2 = this;
|
|
@@ -193,7 +200,9 @@ var TickComponent = /*#__PURE__*/function (_React$Component) {
|
|
|
193
200
|
formattedValue = _this$props5.formattedValue,
|
|
194
201
|
changeInteractiveEnabled = _this$props5.changeInteractiveEnabled,
|
|
195
202
|
changeEditableEnabled = _this$props5.changeEditableEnabled,
|
|
196
|
-
error = _this$props5.error
|
|
203
|
+
error = _this$props5.error,
|
|
204
|
+
autoFocus = _this$props5.autoFocus,
|
|
205
|
+
hiddenLabelRef = _this$props5.hiddenLabelRef;
|
|
197
206
|
|
|
198
207
|
if (!formattedValue) {
|
|
199
208
|
return null;
|
|
@@ -213,9 +222,7 @@ var TickComponent = /*#__PURE__*/function (_React$Component) {
|
|
|
213
222
|
editable = _ref2.editable,
|
|
214
223
|
interactive = _ref2.interactive,
|
|
215
224
|
label = _ref2.label,
|
|
216
|
-
correctness = _ref2.correctness
|
|
217
|
-
autoFocus = _ref2.autoFocus,
|
|
218
|
-
inDefineChart = _ref2.inDefineChart;
|
|
225
|
+
correctness = _ref2.correctness;
|
|
219
226
|
|
|
220
227
|
var barX = xBand((0, _utils.bandKey)({
|
|
221
228
|
label: label
|
|
@@ -225,7 +232,6 @@ var TickComponent = /*#__PURE__*/function (_React$Component) {
|
|
|
225
232
|
var lengthB = b && b.label ? b.label.length : 0;
|
|
226
233
|
return lengthA > lengthB ? a : b;
|
|
227
234
|
});
|
|
228
|
-
var longestLabel = longestCategory && longestCategory.label || '';
|
|
229
235
|
var distinctMessages = error ? (0, _toConsumableArray2["default"])(new Set(Object.values(error))).join(' ') : '';
|
|
230
236
|
return /*#__PURE__*/_react["default"].createElement("g", null, /*#__PURE__*/_react["default"].createElement("foreignObject", {
|
|
231
237
|
x: bandWidth ? barX : x - barWidth / 2,
|
|
@@ -236,18 +242,15 @@ var TickComponent = /*#__PURE__*/function (_React$Component) {
|
|
|
236
242
|
pointerEvents: 'none',
|
|
237
243
|
overflow: 'visible'
|
|
238
244
|
}
|
|
239
|
-
}, index === 0 && /*#__PURE__*/_react["default"].createElement("
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
}
|
|
249
|
-
}, longestLabel), /*#__PURE__*/_react["default"].createElement(_markLabel["default"], {
|
|
250
|
-
autoFocus: inDefineChart ? defineChart && autoFocus : autoFocus,
|
|
245
|
+
}, index === 0 && /*#__PURE__*/_react["default"].createElement(_markLabel["default"], {
|
|
246
|
+
isHiddenLabel: true,
|
|
247
|
+
inputRef: hiddenLabelRef,
|
|
248
|
+
disabled: true,
|
|
249
|
+
mark: longestCategory,
|
|
250
|
+
graphProps: graphProps,
|
|
251
|
+
barWidth: barWidth
|
|
252
|
+
}), /*#__PURE__*/_react["default"].createElement(_markLabel["default"], {
|
|
253
|
+
autoFocus: defineChart && autoFocus,
|
|
251
254
|
inputRef: function inputRef(r) {
|
|
252
255
|
return _this2.input = r;
|
|
253
256
|
},
|
|
@@ -334,6 +337,7 @@ var TickComponent = /*#__PURE__*/function (_React$Component) {
|
|
|
334
337
|
overflow: 'visible'
|
|
335
338
|
}
|
|
336
339
|
}, /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
|
|
340
|
+
className: classes.customColor,
|
|
337
341
|
style: {
|
|
338
342
|
position: 'fixed'
|
|
339
343
|
},
|
|
@@ -351,6 +355,7 @@ var TickComponent = /*#__PURE__*/function (_React$Component) {
|
|
|
351
355
|
overflow: 'visible'
|
|
352
356
|
}
|
|
353
357
|
}, /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
|
|
358
|
+
className: classes.customColor,
|
|
354
359
|
style: {
|
|
355
360
|
position: 'fixed'
|
|
356
361
|
},
|
|
@@ -402,7 +407,9 @@ TickComponent.propTypes = {
|
|
|
402
407
|
defineChart: _propTypes["default"].bool,
|
|
403
408
|
chartingOptions: _propTypes["default"].object,
|
|
404
409
|
changeInteractiveEnabled: _propTypes["default"].bool,
|
|
405
|
-
changeEditableEnabled: _propTypes["default"].bool
|
|
410
|
+
changeEditableEnabled: _propTypes["default"].bool,
|
|
411
|
+
autoFocus: _propTypes["default"].bool,
|
|
412
|
+
onAutoFocusUsed: _propTypes["default"].func
|
|
406
413
|
};
|
|
407
414
|
|
|
408
415
|
var RawChartAxes = /*#__PURE__*/function (_React$Component2) {
|
|
@@ -421,7 +428,8 @@ var RawChartAxes = /*#__PURE__*/function (_React$Component2) {
|
|
|
421
428
|
|
|
422
429
|
_this3 = _super2.call.apply(_super2, [this].concat(args));
|
|
423
430
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this3), "state", {
|
|
424
|
-
height: 0
|
|
431
|
+
height: 0,
|
|
432
|
+
width: 0
|
|
425
433
|
});
|
|
426
434
|
return _this3;
|
|
427
435
|
}
|
|
@@ -429,14 +437,32 @@ var RawChartAxes = /*#__PURE__*/function (_React$Component2) {
|
|
|
429
437
|
(0, _createClass2["default"])(RawChartAxes, [{
|
|
430
438
|
key: "componentDidMount",
|
|
431
439
|
value: function componentDidMount() {
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
440
|
+
if (this.hiddenLabelRef) {
|
|
441
|
+
var boundingClientRect = this.hiddenLabelRef.getBoundingClientRect();
|
|
442
|
+
this.setState({
|
|
443
|
+
height: Math.floor(boundingClientRect.height),
|
|
444
|
+
width: Math.floor(boundingClientRect.width)
|
|
445
|
+
});
|
|
446
|
+
}
|
|
447
|
+
}
|
|
448
|
+
}, {
|
|
449
|
+
key: "componentDidUpdate",
|
|
450
|
+
value: function componentDidUpdate(prevProps, prevState, snapshot) {
|
|
451
|
+
if (this.hiddenLabelRef) {
|
|
452
|
+
var width = Math.floor(this.hiddenLabelRef.getBoundingClientRect().width);
|
|
453
|
+
|
|
454
|
+
if (width !== this.state.width) {
|
|
455
|
+
this.setState({
|
|
456
|
+
width: width
|
|
457
|
+
});
|
|
458
|
+
}
|
|
459
|
+
}
|
|
436
460
|
}
|
|
437
461
|
}, {
|
|
438
462
|
key: "render",
|
|
439
463
|
value: function render() {
|
|
464
|
+
var _this4 = this;
|
|
465
|
+
|
|
440
466
|
var _this$props6 = this.props,
|
|
441
467
|
classes = _this$props6.classes,
|
|
442
468
|
graphProps = _this$props6.graphProps,
|
|
@@ -452,6 +478,8 @@ var RawChartAxes = /*#__PURE__*/function (_React$Component2) {
|
|
|
452
478
|
changeInteractiveEnabled = _this$props6.changeInteractiveEnabled,
|
|
453
479
|
changeEditableEnabled = _this$props6.changeEditableEnabled,
|
|
454
480
|
theme = _this$props6.theme,
|
|
481
|
+
autoFocus = _this$props6.autoFocus,
|
|
482
|
+
onAutoFocusUsed = _this$props6.onAutoFocusUsed,
|
|
455
483
|
error = _this$props6.error;
|
|
456
484
|
var axis = classes.axis,
|
|
457
485
|
axisLine = classes.axisLine,
|
|
@@ -467,7 +495,9 @@ var RawChartAxes = /*#__PURE__*/function (_React$Component2) {
|
|
|
467
495
|
_ref3$size = _ref3.size,
|
|
468
496
|
size = _ref3$size === void 0 ? {} : _ref3$size;
|
|
469
497
|
|
|
470
|
-
var
|
|
498
|
+
var _this$state = this.state,
|
|
499
|
+
height = _this$state.height,
|
|
500
|
+
width = _this$state.width;
|
|
471
501
|
var bottomScale = xBand && typeof xBand.rangeRound === 'function' && xBand.rangeRound([0, size.width]);
|
|
472
502
|
var bandWidth = xBand && typeof xBand.bandwidth === 'function' && xBand.bandwidth(); // for chartType "line", bandWidth will be 0, so we have to calculate it
|
|
473
503
|
|
|
@@ -475,8 +505,11 @@ var RawChartAxes = /*#__PURE__*/function (_React$Component2) {
|
|
|
475
505
|
var rowTickValues = (0, _utils.getTickValues)(_objectSpread(_objectSpread({}, range), {}, {
|
|
476
506
|
step: range.labelStep
|
|
477
507
|
}));
|
|
478
|
-
var fontSize = theme && theme.typography ? theme.typography.fontSize : 14;
|
|
479
|
-
|
|
508
|
+
var fontSize = theme && theme.typography ? theme.typography.fontSize : 14; // this mostly applies for labels that are not editable
|
|
509
|
+
|
|
510
|
+
var rotateBecauseOfHeight = (0, _utils.getRotateAngle)(fontSize, height); // this applies for labels that are editable
|
|
511
|
+
|
|
512
|
+
var rotateBecauseOfWidth = width > barWidth ? 25 : 0;
|
|
480
513
|
|
|
481
514
|
var getTickLabelProps = function getTickLabelProps(value) {
|
|
482
515
|
return {
|
|
@@ -487,15 +520,20 @@ var RawChartAxes = /*#__PURE__*/function (_React$Component2) {
|
|
|
487
520
|
|
|
488
521
|
var getTickComponent = function getTickComponent(props) {
|
|
489
522
|
var properties = {
|
|
523
|
+
hiddenLabelRef: function hiddenLabelRef(ref) {
|
|
524
|
+
_this4.hiddenLabelRef = ref;
|
|
525
|
+
},
|
|
490
526
|
classes: classes,
|
|
491
527
|
categories: categories,
|
|
492
528
|
xBand: xBand,
|
|
493
529
|
bandWidth: bandWidth,
|
|
494
530
|
barWidth: barWidth,
|
|
495
|
-
rotate:
|
|
531
|
+
rotate: rotateBecauseOfHeight || rotateBecauseOfWidth,
|
|
496
532
|
top: top,
|
|
497
533
|
defineChart: defineChart,
|
|
498
534
|
chartingOptions: chartingOptions,
|
|
535
|
+
autoFocus: autoFocus,
|
|
536
|
+
onAutoFocusUsed: onAutoFocusUsed,
|
|
499
537
|
error: error,
|
|
500
538
|
onChangeCategory: onChangeCategory,
|
|
501
539
|
changeInteractiveEnabled: changeInteractiveEnabled,
|
|
@@ -536,7 +574,9 @@ var RawChartAxes = /*#__PURE__*/function (_React$Component2) {
|
|
|
536
574
|
tickFormat: function tickFormat(count) {
|
|
537
575
|
return count;
|
|
538
576
|
},
|
|
539
|
-
tickComponent: getTickComponent
|
|
577
|
+
tickComponent: getTickComponent,
|
|
578
|
+
autoFocus: autoFocus,
|
|
579
|
+
onAutoFocusUsed: onAutoFocusUsed
|
|
540
580
|
}));
|
|
541
581
|
}
|
|
542
582
|
}]);
|
|
@@ -559,7 +599,9 @@ exports.RawChartAxes = RawChartAxes;
|
|
|
559
599
|
theme: _propTypes["default"].object,
|
|
560
600
|
chartingOptions: _propTypes["default"].object,
|
|
561
601
|
changeInteractiveEnabled: _propTypes["default"].bool,
|
|
562
|
-
changeEditableEnabled: _propTypes["default"].bool
|
|
602
|
+
changeEditableEnabled: _propTypes["default"].bool,
|
|
603
|
+
autoFocus: _propTypes["default"].bool,
|
|
604
|
+
onAutoFocusUsed: _propTypes["default"].func
|
|
563
605
|
});
|
|
564
606
|
var ChartAxes = (0, _styles.withStyles)(function (theme) {
|
|
565
607
|
return {
|
|
@@ -588,6 +630,9 @@ var ChartAxes = (0, _styles.withStyles)(function (theme) {
|
|
|
588
630
|
error: {
|
|
589
631
|
fontSize: theme.typography.fontSize - 2,
|
|
590
632
|
fill: theme.palette.error.main
|
|
633
|
+
},
|
|
634
|
+
customColor: {
|
|
635
|
+
color: "".concat(_renderUi.color.tertiary(), " !important")
|
|
591
636
|
}
|
|
592
637
|
};
|
|
593
638
|
}, {
|
|
@@ -595,4 +640,4 @@ var ChartAxes = (0, _styles.withStyles)(function (theme) {
|
|
|
595
640
|
})(RawChartAxes);
|
|
596
641
|
var _default = ChartAxes;
|
|
597
642
|
exports["default"] = _default;
|
|
598
|
-
//# sourceMappingURL=axes.js.map
|
|
643
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9heGVzLmpzeCJdLCJuYW1lcyI6WyJUaWNrQ29tcG9uZW50IiwicHJvcHMiLCJvcGVuIiwiY2FsbGJhY2siLCJzZXRTdGF0ZSIsImRpYWxvZyIsImluZGV4IiwibmV3TGFiZWwiLCJjYXRlZ29yaWVzIiwib25DaGFuZ2VDYXRlZ29yeSIsImNhdGVnb3J5IiwibGFiZWwiLCJvbkNoYW5nZSIsInNsaWNlIiwidmFsdWUiLCJ0aXRsZSIsInRleHQiLCJvbkNvbmZpcm0iLCJoYW5kbGVBbGVydERpYWxvZyIsImludGVyYWN0aXZlIiwib25DbG9zZSIsImVkaXRhYmxlIiwibWF4Q2hhciIsImNodW5rcyIsImxlbmd0aCIsImluZGV4VG9TcGxpdCIsImxhc3RJbmRleE9mIiwicHVzaCIsInN1YnN0cmluZyIsInRyaW0iLCJzdGF0ZSIsInByZXZQcm9wcyIsImF1dG9Gb2N1cyIsIm9uQXV0b0ZvY3VzVXNlZCIsImNsYXNzZXMiLCJ4QmFuZCIsImJhbmRXaWR0aCIsImJhcldpZHRoIiwicm90YXRlIiwidG9wIiwiZ3JhcGhQcm9wcyIsImRlZmluZUNoYXJ0IiwiY2hhcnRpbmdPcHRpb25zIiwieCIsInkiLCJmb3JtYXR0ZWRWYWx1ZSIsImNoYW5nZUludGVyYWN0aXZlRW5hYmxlZCIsImNoYW5nZUVkaXRhYmxlRW5hYmxlZCIsImVycm9yIiwiaGlkZGVuTGFiZWxSZWYiLCJjaGFuZ2VFZGl0YWJsZSIsImNoYW5nZUludGVyYWN0aXZlIiwicGFyc2VJbnQiLCJzcGxpdCIsImRlbGV0YWJsZSIsImNvcnJlY3RuZXNzIiwiYmFyWCIsImxvbmdlc3RDYXRlZ29yeSIsInJlZHVjZSIsImEiLCJiIiwibGVuZ3RoQSIsImxlbmd0aEIiLCJkaXN0aW5jdE1lc3NhZ2VzIiwiU2V0IiwiT2JqZWN0IiwidmFsdWVzIiwiam9pbiIsInBvaW50ZXJFdmVudHMiLCJvdmVyZmxvdyIsInIiLCJpbnB1dCIsImNoYW5nZUNhdGVnb3J5IiwiZG90dGVkTGluZSIsImRlbGV0ZUNhdGVnb3J5IiwicG9zaXRpb24iLCJ3b3JkQnJlYWsiLCJtYXhXaWR0aCIsImRpc3BsYXkiLCJzcGxpdFRleHQiLCJhdXRob3JpbmdMYWJlbCIsIm1hcCIsIndvcmQiLCJjdXN0b21Db2xvciIsImUiLCJ0YXJnZXQiLCJjaGVja2VkIiwiUmVhY3QiLCJDb21wb25lbnQiLCJQcm9wVHlwZXMiLCJib29sIiwiYW55IiwicHJvcFR5cGVzIiwiYXJyYXkiLCJmdW5jIiwibnVtYmVyIiwib2JqZWN0Iiwic3RyaW5nIiwiUmF3Q2hhcnRBeGVzIiwiaGVpZ2h0Iiwid2lkdGgiLCJib3VuZGluZ0NsaWVudFJlY3QiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJNYXRoIiwiZmxvb3IiLCJwcmV2U3RhdGUiLCJzbmFwc2hvdCIsImxlZnRBeGlzIiwidGhlbWUiLCJheGlzIiwiYXhpc0xpbmUiLCJ0aWNrIiwic2NhbGUiLCJyYW5nZSIsImRvbWFpbiIsInNpemUiLCJib3R0b21TY2FsZSIsInJhbmdlUm91bmQiLCJiYW5kd2lkdGgiLCJtYXgiLCJyb3dUaWNrVmFsdWVzIiwic3RlcCIsImxhYmVsU3RlcCIsImZvbnRTaXplIiwidHlwb2dyYXBoeSIsInJvdGF0ZUJlY2F1c2VPZkhlaWdodCIsInJvdGF0ZUJlY2F1c2VPZldpZHRoIiwiZ2V0VGlja0xhYmVsUHJvcHMiLCJkeSIsImR4IiwidG9Mb2NhbGVTdHJpbmciLCJnZXRUaWNrQ29tcG9uZW50IiwicHJvcGVydGllcyIsInJlZiIsIm1pbiIsInRleHRBbmNob3IiLCJjb3VudCIsImlzUmVxdWlyZWQiLCJ0eXBlcyIsIkdyYXBoUHJvcHNUeXBlIiwiQ2hhcnRBeGVzIiwic3Ryb2tlIiwiY29sb3IiLCJwcmltYXJ5RGFyayIsInN0cm9rZVdpZHRoIiwiZmlsbCIsImZvbnRGYW1pbHkiLCJib2R5MSIsInByaW1hcnlMaWdodCIsIm9wYWNpdHkiLCJwYWxldHRlIiwibWFpbiIsInRlcnRpYXJ5Iiwid2l0aFRoZW1lIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7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b20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyB3aXRoU3R5bGVzIH0gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvc3R5bGVzJztcbmltcG9ydCB7IHR5cGVzIH0gZnJvbSAnQHBpZS1saWIvcGxvdCc7XG5pbXBvcnQgeyBjb2xvciB9IGZyb20gJ0BwaWUtbGliL3JlbmRlci11aSc7XG5pbXBvcnQgeyBBbGVydERpYWxvZyB9IGZyb20gJ0BwaWUtbGliL2NvbmZpZy11aSc7XG5pbXBvcnQgeyBBeGlzTGVmdCwgQXhpc0JvdHRvbSB9IGZyb20gJ0B2eC9heGlzJztcbmltcG9ydCB7IGJhbmRLZXksIGdldFRpY2tWYWx1ZXMsIGdldFJvdGF0ZUFuZ2xlIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgTWFya0xhYmVsIGZyb20gJy4vbWFyay1sYWJlbCc7XG5pbXBvcnQgQ2hlY2tib3ggZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvQ2hlY2tib3gnO1xuXG5leHBvcnQgY2xhc3MgVGlja0NvbXBvbmVudCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgZGVmaW5lQ2hhcnQ6IFByb3BUeXBlcy5ib29sLFxuICAgIGVycm9yOiBQcm9wVHlwZXMuYW55LFxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICBkaWFsb2c6IHtcbiAgICAgICAgb3BlbjogZmFsc2UsXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgaWYgKHRoaXMucHJvcHMuYXV0b0ZvY3VzICYmICFwcmV2UHJvcHMuYXV0b0ZvY3VzKSB7XG4gICAgICB0aGlzLnByb3BzLm9uQXV0b0ZvY3VzVXNlZCgpO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZUFsZXJ0RGlhbG9nID0gKG9wZW4sIGNhbGxiYWNrKSA9PlxuICAgIHRoaXMuc2V0U3RhdGUoXG4gICAgICB7XG4gICAgICAgIGRpYWxvZzogeyBvcGVuIH0sXG4gICAgICB9LFxuICAgICAgY2FsbGJhY2ssXG4gICAgKTtcblxuICBjaGFuZ2VDYXRlZ29yeSA9IChpbmRleCwgbmV3TGFiZWwpID0+IHtcbiAgICBjb25zdCB7IGNhdGVnb3JpZXMsIG9uQ2hhbmdlQ2F0ZWdvcnkgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgY2F0ZWdvcnkgPSBjYXRlZ29yaWVzW2luZGV4XTtcblxuICAgIG9uQ2hhbmdlQ2F0ZWdvcnkoaW5kZXgsIHsgLi4uY2F0ZWdvcnksIGxhYmVsOiBuZXdMYWJlbCB9KTtcbiAgfTtcblxuICBkZWxldGVDYXRlZ29yeSA9IChpbmRleCkgPT4ge1xuICAgIGNvbnN0IHsgY2F0ZWdvcmllcywgb25DaGFuZ2UgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBpZiAoaW5kZXggPj0gMCAmJiBjYXRlZ29yaWVzW2luZGV4XSkge1xuICAgICAgb25DaGFuZ2UoWy4uLmNhdGVnb3JpZXMuc2xpY2UoMCwgaW5kZXgpLCAuLi5jYXRlZ29yaWVzLnNsaWNlKGluZGV4ICsgMSldKTtcbiAgICB9XG4gIH07XG5cbiAgY2hhbmdlSW50ZXJhY3RpdmUgPSAoaW5kZXgsIHZhbHVlKSA9PiB7XG4gICAgY29uc3QgeyBjYXRlZ29yaWVzLCBvbkNoYW5nZUNhdGVnb3J5IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNhdGVnb3J5ID0gY2F0ZWdvcmllc1tpbmRleF07XG5cbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgZGlhbG9nOiB7XG4gICAgICAgICAgb3BlbjogdHJ1ZSxcbiAgICAgICAgICB0aXRsZTogJ1dhcm5pbmcnLFxuICAgICAgICAgIHRleHQ6ICdUaGlzIHdpbGwgcmVtb3ZlIHRoZSBjb3JyZWN0IGFuc3dlciB2YWx1ZSB0aGF0IGhhcyBiZWVuIGRlZmluZWQgZm9yIHRoaXMgY2F0ZWdvcnkuJyxcbiAgICAgICAgICBvbkNvbmZpcm06ICgpID0+XG4gICAgICAgICAgICB0aGlzLmhhbmRsZUFsZXJ0RGlhbG9nKGZhbHNlLCBvbkNoYW5nZUNhdGVnb3J5KGluZGV4LCB7IC4uLmNhdGVnb3J5LCBpbnRlcmFjdGl2ZTogIWNhdGVnb3J5LmludGVyYWN0aXZlIH0pKSxcbiAgICAgICAgICBvbkNsb3NlOiAoKSA9PiB0aGlzLmhhbmRsZUFsZXJ0RGlhbG9nKGZhbHNlKSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBvbkNoYW5nZUNhdGVnb3J5KGluZGV4LCB7IC4uLmNhdGVnb3J5LCBpbnRlcmFjdGl2ZTogIWNhdGVnb3J5LmludGVyYWN0aXZlIH0pO1xuICAgIH1cbiAgfTtcblxuICBjaGFuZ2VFZGl0YWJsZSA9IChpbmRleCwgdmFsdWUpID0+IHtcbiAgICBjb25zdCB7IGNhdGVnb3JpZXMsIG9uQ2hhbmdlQ2F0ZWdvcnkgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgY2F0ZWdvcnkgPSBjYXRlZ29yaWVzW2luZGV4XTtcblxuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICBkaWFsb2c6IHtcbiAgICAgICAgICBvcGVuOiB0cnVlLFxuICAgICAgICAgIHRpdGxlOiAnV2FybmluZycsXG4gICAgICAgICAgdGV4dDogJ1RoaXMgd2lsbCByZW1vdmUgdGhlIGNvcnJlY3QgYW5zd2VyIGNhdGVnb3J5IG5hbWUgdGhhdCBoYXMgYmVlbiBkZWZpbmVkIGZvciB0aGlzIGNhdGVnb3J5LicsXG4gICAgICAgICAgb25Db25maXJtOiAoKSA9PlxuICAgICAgICAgICAgdGhpcy5oYW5kbGVBbGVydERpYWxvZyhcbiAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAgIG9uQ2hhbmdlQ2F0ZWdvcnkoaW5kZXgsIHsgLi4uY2F0ZWdvcnksIGVkaXRhYmxlOiAhY2F0ZWdvcnkuZWRpdGFibGUgfHwgZmFsc2UgfSksXG4gICAgICAgICAgICApLFxuICAgICAgICAgIG9uQ2xvc2U6ICgpID0+IHRoaXMuaGFuZGxlQWxlcnREaWFsb2coZmFsc2UpLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG9uQ2hhbmdlQ2F0ZWdvcnkoaW5kZXgsIHsgLi4uY2F0ZWdvcnksIGVkaXRhYmxlOiAhY2F0ZWdvcnkuZWRpdGFibGUgfHwgZmFsc2UgfSk7XG4gICAgfVxuICB9O1xuXG4gIHNwbGl0VGV4dCA9ICh0ZXh0LCBtYXhDaGFyKSA9PiB7XG4gICAgbGV0IGNodW5rcyA9IFtdO1xuICAgIHdoaWxlICgodGV4dCB8fCAnJykubGVuZ3RoID4gMCkge1xuICAgICAgbGV0IGluZGV4VG9TcGxpdDtcbiAgICAgIGlmICh0ZXh0Lmxlbmd0aCA+IG1heENoYXIpIHtcbiAgICAgICAgaW5kZXhUb1NwbGl0ID0gdGV4dC5sYXN0SW5kZXhPZignICcsIG1heENoYXIpO1xuICAgICAgICBpZiAoaW5kZXhUb1NwbGl0ID09PSAtMSkge1xuICAgICAgICAgIGluZGV4VG9TcGxpdCA9IG1heENoYXI7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGluZGV4VG9TcGxpdCA9IHRleHQubGVuZ3RoO1xuICAgICAgfVxuICAgICAgY2h1bmtzLnB1c2godGV4dC5zdWJzdHJpbmcoMCwgaW5kZXhUb1NwbGl0KSk7XG4gICAgICB0ZXh0ID0gdGV4dC5zdWJzdHJpbmcoaW5kZXhUb1NwbGl0KS50cmltKCk7XG4gICAgfVxuICAgIHJldHVybiBjaHVua3M7XG4gIH07XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHtcbiAgICAgIGNsYXNzZXMsXG4gICAgICBjYXRlZ29yaWVzLFxuICAgICAgeEJhbmQsXG4gICAgICBiYW5kV2lkdGgsXG4gICAgICBiYXJXaWR0aCxcbiAgICAgIHJvdGF0ZSxcbiAgICAgIHRvcCxcbiAgICAgIGdyYXBoUHJvcHMsXG4gICAgICBkZWZpbmVDaGFydCxcbiAgICAgIGNoYXJ0aW5nT3B0aW9ucyxcbiAgICAgIHgsXG4gICAgICB5LFxuICAgICAgZm9ybWF0dGVkVmFsdWUsXG4gICAgICBjaGFuZ2VJbnRlcmFjdGl2ZUVuYWJsZWQsXG4gICAgICBjaGFuZ2VFZGl0YWJsZUVuYWJsZWQsXG4gICAgICBlcnJvcixcbiAgICAgIGF1dG9Gb2N1cyxcbiAgICAgIGhpZGRlbkxhYmVsUmVmLFxuICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFmb3JtYXR0ZWRWYWx1ZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgeyBkaWFsb2cgfSA9IHRoaXMuc3RhdGU7XG4gICAgY29uc3QgeyBjaGFuZ2VFZGl0YWJsZSwgY2hhbmdlSW50ZXJhY3RpdmUgfSA9IGNoYXJ0aW5nT3B0aW9ucyB8fCB7fTtcbiAgICBjb25zdCBpbmRleCA9IHBhcnNlSW50KGZvcm1hdHRlZFZhbHVlLnNwbGl0KCctJylbMF0sIDEwKTtcbiAgICBjb25zdCBjYXRlZ29yeSA9IGNhdGVnb3JpZXNbaW5kZXhdO1xuICAgIGNvbnN0IHsgZGVsZXRhYmxlLCBlZGl0YWJsZSwgaW50ZXJhY3RpdmUsIGxhYmVsLCBjb3JyZWN0bmVzcyB9ID0gY2F0ZWdvcnkgfHwge307XG4gICAgY29uc3QgYmFyWCA9IHhCYW5kKGJhbmRLZXkoeyBsYWJlbCB9LCBpbmRleCkpO1xuICAgIGNvbnN0IGxvbmdlc3RDYXRlZ29yeSA9IChjYXRlZ29yaWVzIHx8IFtdKS5yZWR1Y2UoKGEsIGIpID0+IHtcbiAgICAgIGNvbnN0IGxlbmd0aEEgPSBhICYmIGEubGFiZWwgPyBhLmxhYmVsLmxlbmd0aCA6IDA7XG4gICAgICBjb25zdCBsZW5ndGhCID0gYiAmJiBiLmxhYmVsID8gYi5sYWJlbC5sZW5ndGggOiAwO1xuXG4gICAgICByZXR1cm4gbGVuZ3RoQSA+IGxlbmd0aEIgPyBhIDogYjtcbiAgICB9KTtcbiAgICBjb25zdCBkaXN0aW5jdE1lc3NhZ2VzID0gZXJyb3IgPyBbLi4ubmV3IFNldChPYmplY3QudmFsdWVzKGVycm9yKSldLmpvaW4oJyAnKSA6ICcnO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxnPlxuICAgICAgICA8Zm9yZWlnbk9iamVjdFxuICAgICAgICAgIHg9e2JhbmRXaWR0aCA/IGJhclggOiB4IC0gYmFyV2lkdGggLyAyfVxuICAgICAgICAgIHk9ezZ9XG4gICAgICAgICAgd2lkdGg9e2JhcldpZHRofVxuICAgICAgICAgIGhlaWdodD17NH1cbiAgICAgICAgICBzdHlsZT17eyBwb2ludGVyRXZlbnRzOiAnbm9uZScsIG92ZXJmbG93OiAndmlzaWJsZScgfX1cbiAgICAgICAgPlxuICAgICAgICAgIHtpbmRleCA9PT0gMCAmJiAoXG4gICAgICAgICAgICA8TWFya0xhYmVsXG4gICAgICAgICAgICAgIGlzSGlkZGVuTGFiZWw9e3RydWV9XG4gICAgICAgICAgICAgIGlucHV0UmVmPXtoaWRkZW5MYWJlbFJlZn1cbiAgICAgICAgICAgICAgZGlzYWJsZWQ9e3RydWV9XG4gICAgICAgICAgICAgIG1hcms9e2xvbmdlc3RDYXRlZ29yeX1cbiAgICAgICAgICAgICAgZ3JhcGhQcm9wcz17Z3JhcGhQcm9wc31cbiAgICAgICAgICAgICAgYmFyV2lkdGg9e2JhcldpZHRofVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuXG4gICAgICAgICAgPE1hcmtMYWJlbFxuICAgICAgICAgICAgYXV0b0ZvY3VzPXtkZWZpbmVDaGFydCAmJiBhdXRvRm9jdXN9XG4gICAgICAgICAgICBpbnB1dFJlZj17KHIpID0+ICh0aGlzLmlucHV0ID0gcil9XG4gICAgICAgICAgICBkaXNhYmxlZD17IWRlZmluZUNoYXJ0ICYmICFlZGl0YWJsZX1cbiAgICAgICAgICAgIG1hcms9e2NhdGVnb3J5fVxuICAgICAgICAgICAgZ3JhcGhQcm9wcz17Z3JhcGhQcm9wc31cbiAgICAgICAgICAgIG9uQ2hhbmdlPXsobmV3TGFiZWwpID0+IHRoaXMuY2hhbmdlQ2F0ZWdvcnkoaW5kZXgsIG5ld0xhYmVsKX1cbiAgICAgICAgICAgIGJhcldpZHRoPXtiYXJXaWR0aH1cbiAgICAgICAgICAgIHJvdGF0ZT17cm90YXRlfVxuICAgICAgICAgICAgY29ycmVjdG5lc3M9e2NvcnJlY3RuZXNzfVxuICAgICAgICAgICAgZXJyb3I9e2Vycm9yICYmIGVycm9yW2luZGV4XX1cbiAgICAgICAgICAvPlxuICAgICAgICA8L2ZvcmVpZ25PYmplY3Q+XG5cbiAgICAgICAge2Vycm9yICYmIGluZGV4ID09PSAwICYmIChcbiAgICAgICAgICA8dGV4dCBjbGFzc05hbWU9e2NsYXNzZXMuZXJyb3J9IHk9e3kgKyAyM30gaGVpZ2h0PXs2fSB0ZXh0QW5jaG9yPVwic3RhcnRcIj5cbiAgICAgICAgICAgIHtkaXN0aW5jdE1lc3NhZ2VzfVxuICAgICAgICAgIDwvdGV4dD5cbiAgICAgICAgKX1cblxuICAgICAgICB7ZGVsZXRhYmxlICYmICFjb3JyZWN0bmVzcyAmJiAoXG4gICAgICAgICAgPGxpbmUgeDE9e3h9IHkxPXswfSB4Mj17eH0geTI9e3kgKyA0ICsgdG9wfSBjbGFzc05hbWU9e2NsYXNzZXMuZG90dGVkTGluZX0gc3Ryb2tlRGFzaGFycmF5PVwiNCAyXCIgLz5cbiAgICAgICAgKX1cblxuICAgICAgICB7ZGVsZXRhYmxlICYmICFjb3JyZWN0bmVzcyAmJiAoXG4gICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICB4PXt4IC0gOH1cbiAgICAgICAgICAgIHk9e3kgKyA2MCArIHRvcH1cbiAgICAgICAgICAgIHdpZHRoPXsxNn1cbiAgICAgICAgICAgIGhlaWdodD17MTZ9XG4gICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDUxMiA1MTJcIlxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gdGhpcy5kZWxldGVDYXRlZ29yeShpbmRleCl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHBhdGggZD1cIk0xMjggNDA1LjQyOUMxMjggNDI4Ljg0NiAxNDcuMTk4IDQ0OCAxNzAuNjY3IDQ0OGgxNzAuNjY3QzM2NC44MDIgNDQ4IDM4NCA0MjguODQ2IDM4NCA0MDUuNDI5VjE2MEgxMjh2MjQ1LjQyOXpNNDE2IDk2aC04MGwtMjYuNzg1LTMySDIwMi43ODZMMTc2IDk2SDk2djMyaDMyMFY5NnpcIiAvPlxuICAgICAgICAgIDwvc3ZnPlxuICAgICAgICApfVxuXG4gICAgICAgIHtkZWZpbmVDaGFydCAmJiBpbmRleCA9PT0gMCAmJiAoXG4gICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgeD17LTU1fVxuICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgb3ZlcmZsb3c6ICd2aXNpYmxlJyxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2NoYW5nZUludGVyYWN0aXZlRW5hYmxlZCAmJiAoXG4gICAgICAgICAgICAgIDx0ZXh0XG4gICAgICAgICAgICAgICAgeT17eSArIDkwICsgdG9wfVxuICAgICAgICAgICAgICAgIHdpZHRoPXtiYXJXaWR0aH1cbiAgICAgICAgICAgICAgICBoZWlnaHQ9ezR9XG4gICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICAgICAgICAgICAgcG9pbnRlckV2ZW50czogJ25vbmUnLFxuICAgICAgICAgICAgICAgICAgd29yZEJyZWFrOiAnYnJlYWstd29yZCcsXG4gICAgICAgICAgICAgICAgICBtYXhXaWR0aDogYmFyV2lkdGgsXG4gICAgICAgICAgICAgICAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3RoaXMuc3BsaXRUZXh0KGNoYW5nZUludGVyYWN0aXZlPy5hdXRob3JpbmdMYWJlbCwgMjApLm1hcCgod29yZCwgaW5kZXgpID0+IChcbiAgICAgICAgICAgICAgICAgIDx0c3BhbiBrZXk9e2luZGV4fSB4PVwiMFwiIGR5PXtgJHtpbmRleCA+IDAgPyAnMS4yZW0nIDogJy42ZW0nfWB9PlxuICAgICAgICAgICAgICAgICAgICB7d29yZH1cbiAgICAgICAgICAgICAgICAgIDwvdHNwYW4+XG4gICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgIDwvdGV4dD5cbiAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgIHtjaGFuZ2VFZGl0YWJsZUVuYWJsZWQgJiYgKFxuICAgICAgICAgICAgICA8dGV4dFxuICAgICAgICAgICAgICAgIHk9e3kgKyAxNDUgKyB0b3B9XG4gICAgICAgICAgICAgICAgd2lkdGg9e2JhcldpZHRofVxuICAgICAgICAgICAgICAgIGhlaWdodD17NH1cbiAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICAgICAgICAgICAgICBwb2ludGVyRXZlbnRzOiAnbm9uZScsXG4gICAgICAgICAgICAgICAgICB3b3JkQnJlYWs6ICdicmVhay13b3JkJyxcbiAgICAgICAgICAgICAgICAgIG1heFdpZHRoOiBiYXJXaWR0aCxcbiAgICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdpbmxpbmUtYmxvY2snLFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7dGhpcy5zcGxpdFRleHQoY2hhbmdlRWRpdGFibGU/LmF1dGhvcmluZ0xhYmVsLCAyMCkubWFwKCh3b3JkLCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgICAgICAgPHRzcGFuIGtleT17aW5kZXh9IHg9XCIwXCIgZHk9e2Ake2luZGV4ID4gMCA/ICcxLjJlbScgOiAnLjZlbSd9YH0+XG4gICAgICAgICAgICAgICAgICAgIHt3b3JkfVxuICAgICAgICAgICAgICAgICAgPC90c3Bhbj5cbiAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgPC90ZXh0PlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgKX1cblxuICAgICAgICB7ZGVmaW5lQ2hhcnQgJiYgY2hhbmdlSW50ZXJhY3RpdmVFbmFibGVkICYmIChcbiAgICAgICAgICA8Zm9yZWlnbk9iamVjdFxuICAgICAgICAgICAgeD17eCAtIDI0fVxuICAgICAgICAgICAgeT17eSArIDgwICsgdG9wfVxuICAgICAgICAgICAgd2lkdGg9e2JhcldpZHRofVxuICAgICAgICAgICAgaGVpZ2h0PXs0fVxuICAgICAgICAgICAgc3R5bGU9e3sgcG9pbnRlckV2ZW50czogJ3Zpc2libGUnLCBvdmVyZmxvdzogJ3Zpc2libGUnIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPENoZWNrYm94XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy5jdXN0b21Db2xvcn1cbiAgICAgICAgICAgICAgc3R5bGU9e3sgcG9zaXRpb246ICdmaXhlZCcgfX1cbiAgICAgICAgICAgICAgY2hlY2tlZD17aW50ZXJhY3RpdmV9XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gdGhpcy5jaGFuZ2VJbnRlcmFjdGl2ZShpbmRleCwgZS50YXJnZXQuY2hlY2tlZCl9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZm9yZWlnbk9iamVjdD5cbiAgICAgICAgKX1cblxuICAgICAgICB7ZGVmaW5lQ2hhcnQgJiYgY2hhbmdlRWRpdGFibGVFbmFibGVkICYmIChcbiAgICAgICAgICA8Zm9yZWlnbk9iamVjdFxuICAgICAgICAgICAgeD17eCAtIDI0fVxuICAgICAgICAgICAgeT17eSArIDEzMCArIHRvcH1cbiAgICAgICAgICAgIHdpZHRoPXtiYXJXaWR0aH1cbiAgICAgICAgICAgIGhlaWdodD17NH1cbiAgICAgICAgICAgIHN0eWxlPXt7IHBvaW50ZXJFdmVudHM6ICd2aXNpYmxlJywgb3ZlcmZsb3c6ICd2aXNpYmxlJyB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxDaGVja2JveFxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMuY3VzdG9tQ29sb3J9XG4gICAgICAgICAgICAgIHN0eWxlPXt7IHBvc2l0aW9uOiAnZml4ZWQnIH19XG4gICAgICAgICAgICAgIGNoZWNrZWQ9e2VkaXRhYmxlfVxuICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHRoaXMuY2hhbmdlRWRpdGFibGUoaW5kZXgsIGUudGFyZ2V0LmNoZWNrZWQpfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2ZvcmVpZ25PYmplY3Q+XG4gICAgICAgICl9XG5cbiAgICAgICAgPGZvcmVpZ25PYmplY3RcbiAgICAgICAgICB4PXt4IC0gMjR9XG4gICAgICAgICAgeT17eSArIDEwMCArIHRvcH1cbiAgICAgICAgICB3aWR0aD17YmFyV2lkdGh9XG4gICAgICAgICAgaGVpZ2h0PXs0fVxuICAgICAgICAgIHN0eWxlPXt7IHBvaW50ZXJFdmVudHM6ICd2aXNpYmxlJywgb3ZlcmZsb3c6ICd2aXNpYmxlJyB9fVxuICAgICAgICA+XG4gICAgICAgICAgPEFsZXJ0RGlhbG9nXG4gICAgICAgICAgICBvcGVuPXtkaWFsb2cub3Blbn1cbiAgICAgICAgICAgIHRpdGxlPXtkaWFsb2cudGl0bGV9XG4gICAgICAgICAgICB0ZXh0PXtkaWFsb2cudGV4dH1cbiAgICAgICAgICAgIG9uQ2xvc2U9e2RpYWxvZy5vbkNsb3NlfVxuICAgICAgICAgICAgb25Db25maXJtPXtkaWFsb2cub25Db25maXJtfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvZm9yZWlnbk9iamVjdD5cbiAgICAgIDwvZz5cbiAgICApO1xuICB9XG59XG5cblRpY2tDb21wb25lbnQucHJvcFR5cGVzID0ge1xuICBjYXRlZ29yaWVzOiBQcm9wVHlwZXMuYXJyYXksXG4gIHhCYW5kOiBQcm9wVHlwZXMuZnVuYyxcbiAgYmFuZFdpZHRoOiBQcm9wVHlwZXMubnVtYmVyLFxuICBiYXJXaWR0aDogUHJvcFR5cGVzLm51bWJlcixcbiAgcm90YXRlOiBQcm9wVHlwZXMubnVtYmVyLFxuICB0b3A6IFByb3BUeXBlcy5udW1iZXIsXG4gIHg6IFByb3BUeXBlcy5udW1iZXIsXG4gIHk6IFByb3BUeXBlcy5udW1iZXIsXG4gIGdyYXBoUHJvcHM6IFByb3BUeXBlcy5vYmplY3QsXG4gIGZvcm1hdHRlZFZhbHVlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBvbkNoYW5nZUNhdGVnb3J5OiBQcm9wVHlwZXMuZnVuYyxcbiAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLFxuICBjbGFzc2VzOiBQcm9wVHlwZXMub2JqZWN0LFxuICBlcnJvcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgZGVmaW5lQ2hhcnQ6IFByb3BUeXBlcy5ib29sLFxuICBjaGFydGluZ09wdGlvbnM6IFByb3BUeXBlcy5vYmplY3QsXG4gIGNoYW5nZUludGVyYWN0aXZlRW5hYmxlZDogUHJvcFR5cGVzLmJvb2wsXG4gIGNoYW5nZUVkaXRhYmxlRW5hYmxlZDogUHJvcFR5cGVzLmJvb2wsXG4gIGF1dG9Gb2N1czogUHJvcFR5cGVzLmJvb2wsXG4gIG9uQXV0b0ZvY3VzVXNlZDogUHJvcFR5cGVzLmZ1bmMsXG59O1xuXG5leHBvcnQgY2xhc3MgUmF3Q2hhcnRBeGVzIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBib3R0b21TY2FsZTogUHJvcFR5cGVzLmZ1bmMsXG4gICAgY2xhc3NlczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIGNhdGVnb3JpZXM6IFByb3BUeXBlcy5hcnJheSxcbiAgICBkZWZpbmVDaGFydDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZXJyb3I6IFByb3BUeXBlcy5hbnksXG4gICAgZ3JhcGhQcm9wczogdHlwZXMuR3JhcGhQcm9wc1R5cGUuaXNSZXF1aXJlZCxcbiAgICB4QmFuZDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgbGVmdEF4aXM6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBvbkNoYW5nZUNhdGVnb3J5OiBQcm9wVHlwZXMuZnVuYyxcbiAgICB0b3A6IFByb3BUeXBlcy5udW1iZXIsXG4gICAgdGhlbWU6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgY2hhcnRpbmdPcHRpb25zOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGNoYW5nZUludGVyYWN0aXZlRW5hYmxlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgY2hhbmdlRWRpdGFibGVFbmFibGVkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBhdXRvRm9jdXM6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uQXV0b0ZvY3VzVXNlZDogUHJvcFR5cGVzLmZ1bmMsXG4gIH07XG5cbiAgc3RhdGUgPSB7IGhlaWdodDogMCwgd2lkdGg6IDAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBpZiAodGhpcy5oaWRkZW5MYWJlbFJlZikge1xuICAgICAgY29uc3QgYm91bmRpbmdDbGllbnRSZWN0ID0gdGhpcy5oaWRkZW5MYWJlbFJlZi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICBoZWlnaHQ6IE1hdGguZmxvb3IoYm91bmRpbmdDbGllbnRSZWN0LmhlaWdodCksXG4gICAgICAgIHdpZHRoOiBNYXRoLmZsb29yKGJvdW5kaW5nQ2xpZW50UmVjdC53aWR0aCksXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzLCBwcmV2U3RhdGUsIHNuYXBzaG90KSB7XG4gICAgaWYgKHRoaXMuaGlkZGVuTGFiZWxSZWYpIHtcbiAgICAgIGNvbnN0IHdpZHRoID0gTWF0aC5mbG9vcih0aGlzLmhpZGRlbkxhYmVsUmVmLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoKTtcblxuICAgICAgaWYgKHdpZHRoICE9PSB0aGlzLnN0YXRlLndpZHRoKSB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyB3aWR0aCB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgY2xhc3NlcyxcbiAgICAgIGdyYXBoUHJvcHMsXG4gICAgICB4QmFuZCxcbiAgICAgIGxlZnRBeGlzLFxuICAgICAgb25DaGFuZ2UsXG4gICAgICBvbkNoYW5nZUNhdGVnb3J5LFxuICAgICAgY2F0ZWdvcmllcyA9IFtdLFxuICAgICAgdG9wLFxuICAgICAgZGVmaW5lQ2hhcnQsXG4gICAgICBjaGFydGluZ09wdGlvbnMsXG4gICAgICBjaGFuZ2VJbnRlcmFjdGl2ZUVuYWJsZWQsXG4gICAgICBjaGFuZ2VFZGl0YWJsZUVuYWJsZWQsXG4gICAgICB0aGVtZSxcbiAgICAgIGF1dG9Gb2N1cyxcbiAgICAgIG9uQXV0b0ZvY3VzVXNlZCxcbiAgICAgIGVycm9yLFxuICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3QgeyBheGlzLCBheGlzTGluZSwgdGljayB9ID0gY2xhc3NlcztcbiAgICBjb25zdCB7IHNjYWxlID0ge30sIHJhbmdlID0ge30sIGRvbWFpbiA9IHt9LCBzaXplID0ge30gfSA9IGdyYXBoUHJvcHMgfHwge307XG4gICAgY29uc3QgeyBoZWlnaHQsIHdpZHRoIH0gPSB0aGlzLnN0YXRlO1xuXG4gICAgY29uc3QgYm90dG9tU2NhbGUgPSB4QmFuZCAmJiB0eXBlb2YgeEJhbmQucmFuZ2VSb3VuZCA9PT0gJ2Z1bmN0aW9uJyAmJiB4QmFuZC5yYW5nZVJvdW5kKFswLCBzaXplLndpZHRoXSk7XG5cbiAgICBjb25zdCBiYW5kV2lkdGggPSB4QmFuZCAmJiB0eXBlb2YgeEJhbmQuYmFuZHdpZHRoID09PSAnZnVuY3Rpb24nICYmIHhCYW5kLmJhbmR3aWR0aCgpO1xuICAgIC8vIGZvciBjaGFydFR5cGUgXCJsaW5lXCIsIGJhbmRXaWR0aCB3aWxsIGJlIDAsIHNvIHdlIGhhdmUgdG8gY2FsY3VsYXRlIGl0XG4gICAgY29uc3QgYmFyV2lkdGggPSBiYW5kV2lkdGggfHwgKHNjYWxlLnggJiYgc2NhbGUueChkb21haW4ubWF4KSAvIGNhdGVnb3JpZXMubGVuZ3RoKTtcblxuICAgIGNvbnN0IHJvd1RpY2tWYWx1ZXMgPSBnZXRUaWNrVmFsdWVzKHsgLi4ucmFuZ2UsIHN0ZXA6IHJhbmdlLmxhYmVsU3RlcCB9KTtcbiAgICBjb25zdCBmb250U2l6ZSA9IHRoZW1lICYmIHRoZW1lLnR5cG9ncmFwaHkgPyB0aGVtZS50eXBvZ3JhcGh5LmZvbnRTaXplIDogMTQ7XG4gICAgLy8gdGhpcyBtb3N0bHkgYXBwbGllcyBmb3IgbGFiZWxzIHRoYXQgYXJlIG5vdCBlZGl0YWJsZVxuICAgIGNvbnN0IHJvdGF0ZUJlY2F1c2VPZkhlaWdodCA9IGdldFJvdGF0ZUFuZ2xlKGZvbnRTaXplLCBoZWlnaHQpO1xuICAgIC8vIHRoaXMgYXBwbGllcyBmb3IgbGFiZWxzIHRoYXQgYXJlIGVkaXRhYmxlXG4gICAgY29uc3Qgcm90YXRlQmVjYXVzZU9mV2lkdGggPSB3aWR0aCA+IGJhcldpZHRoID8gMjUgOiAwO1xuXG4gICAgY29uc3QgZ2V0VGlja0xhYmVsUHJvcHMgPSAodmFsdWUpID0+ICh7XG4gICAgICBkeTogNCxcbiAgICAgIGR4OiAtMTAgLSAodmFsdWUudG9Mb2NhbGVTdHJpbmcoKS5sZW5ndGggfHwgMSkgKiA1LFxuICAgIH0pO1xuXG4gICAgY29uc3QgZ2V0VGlja0NvbXBvbmVudCA9IChwcm9wcykgPT4ge1xuICAgICAgY29uc3QgcHJvcGVydGllcyA9IHtcbiAgICAgICAgaGlkZGVuTGFiZWxSZWY6IChyZWYpID0+IHtcbiAgICAgICAgICB0aGlzLmhpZGRlbkxhYmVsUmVmID0gcmVmO1xuICAgICAgICB9LFxuICAgICAgICBjbGFzc2VzLFxuICAgICAgICBjYXRlZ29yaWVzLFxuICAgICAgICB4QmFuZCxcbiAgICAgICAgYmFuZFdpZHRoLFxuICAgICAgICBiYXJXaWR0aCxcbiAgICAgICAgcm90YXRlOiByb3RhdGVCZWNhdXNlT2ZIZWlnaHQgfHwgcm90YXRlQmVjYXVzZU9mV2lkdGgsXG4gICAgICAgIHRvcCxcbiAgICAgICAgZGVmaW5lQ2hhcnQsXG4gICAgICAgIGNoYXJ0aW5nT3B0aW9ucyxcbiAgICAgICAgYXV0b0ZvY3VzLFxuICAgICAgICBvbkF1dG9Gb2N1c1VzZWQsXG4gICAgICAgIGVycm9yLFxuICAgICAgICBvbkNoYW5nZUNhdGVnb3J5LFxuICAgICAgICBjaGFuZ2VJbnRlcmFjdGl2ZUVuYWJsZWQsXG4gICAgICAgIGNoYW5nZUVkaXRhYmxlRW5hYmxlZCxcbiAgICAgICAgb25DaGFuZ2UsXG4gICAgICAgIGdyYXBoUHJvcHMsXG4gICAgICAgIHg6IHByb3BzLngsXG4gICAgICAgIHk6IHByb3BzLnksXG4gICAgICAgIGZvcm1hdHRlZFZhbHVlOiBwcm9wcy5mb3JtYXR0ZWRWYWx1ZSxcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiA8VGlja0NvbXBvbmVudCB7Li4ucHJvcGVydGllc30gLz47XG4gICAgfTtcblxuICAgIHJldHVybiAoXG4gICAgICA8UmVhY3QuRnJhZ21lbnQ+XG4gICAgICAgIHtsZWZ0QXhpcyAmJiAoXG4gICAgICAgICAgPEF4aXNMZWZ0XG4gICAgICAgICAgICBzY2FsZT17c2NhbGUueX1cbiAgICAgICAgICAgIGNsYXNzTmFtZT17YXhpc31cbiAgICAgICAgICAgIGF4aXNMaW5lQ2xhc3NOYW1lPXtheGlzTGluZX1cbiAgICAgICAgICAgIHRpY2tMZW5ndGg9ezEwfVxuICAgICAgICAgICAgdGlja0NsYXNzTmFtZT17dGlja31cbiAgICAgICAgICAgIHRpY2tGb3JtYXQ9eyh2YWx1ZSkgPT4gdmFsdWV9XG4gICAgICAgICAgICB0aWNrVmFsdWVzPXtyb3dUaWNrVmFsdWVzfVxuICAgICAgICAgICAgdGlja0xhYmVsUHJvcHM9e2dldFRpY2tMYWJlbFByb3BzfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIDxBeGlzQm90dG9tXG4gICAgICAgICAgYXhpc0xpbmVDbGFzc05hbWU9e2F4aXNMaW5lfVxuICAgICAgICAgIHRpY2tDbGFzc05hbWU9e3RpY2t9XG4gICAgICAgICAgc2NhbGU9e2JvdHRvbVNjYWxlfVxuICAgICAgICAgIGxhYmVsUHJvcHM9e3sgeTogNjAgKyB0b3AgfX1cbiAgICAgICAgICB0b3A9e3NjYWxlLnkgJiYgc2NhbGUueShyYW5nZS5taW4pfVxuICAgICAgICAgIHRleHRMYWJlbFByb3BzPXsoKSA9PiAoeyB0ZXh0QW5jaG9yOiAnbWlkZGxlJyB9KX1cbiAgICAgICAgICB0aWNrRm9ybWF0PXsoY291bnQpID0+IGNvdW50fVxuICAgICAgICAgIHRpY2tDb21wb25lbnQ9e2dldFRpY2tDb21wb25lbnR9XG4gICAgICAgICAgYXV0b0ZvY3VzPXthdXRvRm9jdXN9XG4gICAgICAgICAgb25BdXRvRm9jdXNVc2VkPXtvbkF1dG9Gb2N1c1VzZWR9XG4gICAgICAgIC8+XG4gICAgICA8L1JlYWN0LkZyYWdtZW50PlxuICAgICk7XG4gIH1cbn1cblxuY29uc3QgQ2hhcnRBeGVzID0gd2l0aFN0eWxlcyhcbiAgKHRoZW1lKSA9PiAoe1xuICAgIGF4aXM6IHtcbiAgICAgIHN0cm9rZTogY29sb3IucHJpbWFyeURhcmsoKSxcbiAgICAgIHN0cm9rZVdpZHRoOiAyLFxuICAgIH0sXG4gICAgYXhpc0xpbmU6IHtcbiAgICAgIHN0cm9rZTogY29sb3IucHJpbWFyeURhcmsoKSxcbiAgICAgIHN0cm9rZVdpZHRoOiAyLFxuICAgIH0sXG4gICAgdGljazoge1xuICAgICAgJyYgPiBsaW5lJzoge1xuICAgICAgICBzdHJva2U6IGNvbG9yLnByaW1hcnlEYXJrKCksXG4gICAgICAgIHN0cm9rZVdpZHRoOiAyLFxuICAgICAgfSxcbiAgICAgIGZpbGw6IGNvbG9yLnByaW1hcnlEYXJrKCksXG4gICAgICBmb250RmFtaWx5OiB0aGVtZS50eXBvZ3JhcGh5LmJvZHkxLmZvbnRGYW1pbHksXG4gICAgICBmb250U2l6ZTogdGhlbWUudHlwb2dyYXBoeS5mb250U2l6ZSxcbiAgICAgIHRleHRBbmNob3I6ICdtaWRkbGUnLFxuICAgIH0sXG4gICAgZG90dGVkTGluZToge1xuICAgICAgc3Ryb2tlOiBjb2xvci5wcmltYXJ5TGlnaHQoKSxcbiAgICAgIG9wYWNpdHk6IDAuMixcbiAgICB9LFxuICAgIGVycm9yOiB7XG4gICAgICBmb250U2l6ZTogdGhlbWUudHlwb2dyYXBoeS5mb250U2l6ZSAtIDIsXG4gICAgICBmaWxsOiB0aGVtZS5wYWxldHRlLmVycm9yLm1haW4sXG4gICAgfSxcbiAgICBjdXN0b21Db2xvcjoge1xuICAgICAgY29sb3I6IGAke2NvbG9yLnRlcnRpYXJ5KCl9ICFpbXBvcnRhbnRgXG4gICAgfSxcbiAgfSksXG4gIHsgd2l0aFRoZW1lOiB0cnVlIH0sXG4pKFJhd0NoYXJ0QXhlcyk7XG5cbmV4cG9ydCBkZWZhdWx0IENoYXJ0QXhlcztcbiJdfQ==
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
7
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
8
|
+
|
|
9
|
+
var _enzyme = require("enzyme");
|
|
10
|
+
|
|
11
|
+
var _react = _interopRequireDefault(require("react"));
|
|
12
|
+
|
|
13
|
+
var _bar = _interopRequireWildcard(require("../bar"));
|
|
14
|
+
|
|
15
|
+
var _utils = require("./utils");
|
|
16
|
+
|
|
17
|
+
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); }
|
|
18
|
+
|
|
19
|
+
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; }
|
|
20
|
+
|
|
21
|
+
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; }
|
|
22
|
+
|
|
23
|
+
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; }
|
|
24
|
+
|
|
25
|
+
describe('BarChart', function () {
|
|
26
|
+
var wrapper = function wrapper(extras) {
|
|
27
|
+
var defaults = {
|
|
28
|
+
classes: {},
|
|
29
|
+
className: 'className',
|
|
30
|
+
graphProps: (0, _utils.graphProps)(),
|
|
31
|
+
xBand: function xBand() {
|
|
32
|
+
return {
|
|
33
|
+
bandwidth: function bandwidth() {}
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
var props = _objectSpread(_objectSpread({}, defaults), extras);
|
|
39
|
+
|
|
40
|
+
return (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_bar.Bar, props));
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
describe('snapshot', function () {
|
|
44
|
+
it('renders', function () {
|
|
45
|
+
return expect(wrapper()).toMatchSnapshot();
|
|
46
|
+
});
|
|
47
|
+
it('renders without graphProps', function () {
|
|
48
|
+
return expect(wrapper({
|
|
49
|
+
graphProps: undefined
|
|
50
|
+
})).toMatchSnapshot();
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
describe('component', function () {
|
|
54
|
+
var chart = (0, _bar["default"])();
|
|
55
|
+
expect(chart).toEqual({
|
|
56
|
+
type: 'bar',
|
|
57
|
+
Component: _bar.Bar,
|
|
58
|
+
name: 'Bar'
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYXJzL19fdGVzdHNfXy9iYXIudGVzdC5qc3giXSwibmFtZXMiOlsiZGVzY3JpYmUiLCJ3cmFwcGVyIiwiZXh0cmFzIiwiZGVmYXVsdHMiLCJjbGFzc2VzIiwiY2xhc3NOYW1lIiwiZ3JhcGhQcm9wcyIsInhCYW5kIiwiYmFuZHdpZHRoIiwicHJvcHMiLCJpdCIsImV4cGVjdCIsInRvTWF0Y2hTbmFwc2hvdCIsInVuZGVmaW5lZCIsImNoYXJ0IiwidG9FcXVhbCIsInR5cGUiLCJDb21wb25lbnQiLCJCYXJDaGFydCIsIm5hbWUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7Ozs7Ozs7QUFFQUEsUUFBUSxDQUFDLFVBQUQsRUFBYSxZQUFNO0FBQ3pCLE1BQU1DLE9BQU8sR0FBRyxTQUFWQSxPQUFVLENBQUNDLE1BQUQsRUFBWTtBQUMxQixRQUFNQyxRQUFRLEdBQUc7QUFDZkMsTUFBQUEsT0FBTyxFQUFFLEVBRE07QUFFZkMsTUFBQUEsU0FBUyxFQUFFLFdBRkk7QUFHZkMsTUFBQUEsVUFBVSxFQUFFLHdCQUhHO0FBSWZDLE1BQUFBLEtBQUssRUFBRSxpQkFBTTtBQUNYLGVBQU87QUFDTEMsVUFBQUEsU0FBUyxFQUFFLHFCQUFNLENBQUU7QUFEZCxTQUFQO0FBR0Q7QUFSYyxLQUFqQjs7QUFVQSxRQUFNQyxLQUFLLG1DQUFRTixRQUFSLEdBQXFCRCxNQUFyQixDQUFYOztBQUNBLFdBQU8sbUNBQVEsZ0NBQUMsUUFBRCxFQUFjTyxLQUFkLENBQVIsQ0FBUDtBQUNELEdBYkQ7O0FBZUFULEVBQUFBLFFBQVEsQ0FBQyxVQUFELEVBQWEsWUFBTTtBQUN6QlUsSUFBQUEsRUFBRSxDQUFDLFNBQUQsRUFBWTtBQUFBLGFBQU1DLE1BQU0sQ0FBQ1YsT0FBTyxFQUFSLENBQU4sQ0FBa0JXLGVBQWxCLEVBQU47QUFBQSxLQUFaLENBQUY7QUFFQUYsSUFBQUEsRUFBRSxDQUFDLDRCQUFELEVBQStCO0FBQUEsYUFBTUMsTUFBTSxDQUFDVixPQUFPLENBQUM7QUFBRUssUUFBQUEsVUFBVSxFQUFFTztBQUFkLE9BQUQsQ0FBUixDQUFOLENBQTJDRCxlQUEzQyxFQUFOO0FBQUEsS0FBL0IsQ0FBRjtBQUNELEdBSk8sQ0FBUjtBQU1BWixFQUFBQSxRQUFRLENBQUMsV0FBRCxFQUFjLFlBQU07QUFDMUIsUUFBTWMsS0FBSyxHQUFHLHNCQUFkO0FBRUFILElBQUFBLE1BQU0sQ0FBQ0csS0FBRCxDQUFOLENBQWNDLE9BQWQsQ0FBc0I7QUFDcEJDLE1BQUFBLElBQUksRUFBRSxLQURjO0FBRXBCQyxNQUFBQSxTQUFTLEVBQUVDLFFBRlM7QUFHcEJDLE1BQUFBLElBQUksRUFBRTtBQUhjLEtBQXRCO0FBS0QsR0FSTyxDQUFSO0FBU0QsQ0EvQk8sQ0FBUiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNoYWxsb3cgfSBmcm9tICdlbnp5bWUnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBCYXIsIHsgQmFyIGFzIEJhckNoYXJ0IH0gZnJvbSAnLi4vYmFyJztcbmltcG9ydCB7IGdyYXBoUHJvcHMgfSBmcm9tICcuL3V0aWxzJztcblxuZGVzY3JpYmUoJ0JhckNoYXJ0JywgKCkgPT4ge1xuICBjb25zdCB3cmFwcGVyID0gKGV4dHJhcykgPT4ge1xuICAgIGNvbnN0IGRlZmF1bHRzID0ge1xuICAgICAgY2xhc3Nlczoge30sXG4gICAgICBjbGFzc05hbWU6ICdjbGFzc05hbWUnLFxuICAgICAgZ3JhcGhQcm9wczogZ3JhcGhQcm9wcygpLFxuICAgICAgeEJhbmQ6ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBiYW5kd2lkdGg6ICgpID0+IHt9LFxuICAgICAgICB9O1xuICAgICAgfSxcbiAgICB9O1xuICAgIGNvbnN0IHByb3BzID0geyAuLi5kZWZhdWx0cywgLi4uZXh0cmFzIH07XG4gICAgcmV0dXJuIHNoYWxsb3coPEJhckNoYXJ0IHsuLi5wcm9wc30gLz4pO1xuICB9O1xuXG4gIGRlc2NyaWJlKCdzbmFwc2hvdCcsICgpID0+IHtcbiAgICBpdCgncmVuZGVycycsICgpID0+IGV4cGVjdCh3cmFwcGVyKCkpLnRvTWF0Y2hTbmFwc2hvdCgpKTtcblxuICAgIGl0KCdyZW5kZXJzIHdpdGhvdXQgZ3JhcGhQcm9wcycsICgpID0+IGV4cGVjdCh3cmFwcGVyKHsgZ3JhcGhQcm9wczogdW5kZWZpbmVkIH0pKS50b01hdGNoU25hcHNob3QoKSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdjb21wb25lbnQnLCAoKSA9PiB7XG4gICAgY29uc3QgY2hhcnQgPSBCYXIoKTtcblxuICAgIGV4cGVjdChjaGFydCkudG9FcXVhbCh7XG4gICAgICB0eXBlOiAnYmFyJyxcbiAgICAgIENvbXBvbmVudDogQmFyQ2hhcnQsXG4gICAgICBuYW1lOiAnQmFyJyxcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
|