@pie-element/charting 10.1.0 → 10.2.0-mui-update.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 CHANGED
@@ -3,6 +3,72 @@
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
+ ## [10.3.3](https://github.com/pie-framework/pie-elements/compare/@pie-element/charting@10.3.2...@pie-element/charting@10.3.3) (2025-11-27)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * bump libs PD-5274, PD-5211, PD-5248 ([7610b25](https://github.com/pie-framework/pie-elements/commit/7610b25423956b6492f33322513b3430051fca77))
12
+
13
+
14
+
15
+
16
+
17
+ ## [10.3.2](https://github.com/pie-framework/pie-elements/compare/@pie-element/charting@10.3.1...@pie-element/charting@10.3.2) (2025-10-22)
18
+
19
+
20
+ ### Bug Fixes
21
+
22
+ * bump libs PD-5265 ([184a978](https://github.com/pie-framework/pie-elements/commit/184a978f57a2a84dc6ba87c1eba0b92d5cdd9eae))
23
+
24
+
25
+
26
+
27
+
28
+ ## [10.3.1](https://github.com/pie-framework/pie-elements/compare/@pie-element/charting@10.2.1...@pie-element/charting@10.3.1) (2025-10-16)
29
+
30
+
31
+ ### Bug Fixes
32
+
33
+ * bump pie-lib versions and pslb module versions ([393d39f](https://github.com/pie-framework/pie-elements/commit/393d39fb850ad055568f4d20464213e9043f208f))
34
+
35
+
36
+
37
+
38
+
39
+ # [10.3.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/charting@10.2.0...@pie-element/charting@10.3.0) (2025-10-15)
40
+
41
+
42
+ ### Bug Fixes
43
+
44
+ * bump libs ([2616ab2](https://github.com/pie-framework/pie-elements/commit/2616ab24f776f4df02302f5855c381ee52527665))
45
+
46
+
47
+
48
+
49
+
50
+ ## [10.2.1](https://github.com/pie-framework/pie-elements/compare/@pie-element/charting@10.2.0...@pie-element/charting@10.2.1) (2025-10-14)
51
+
52
+
53
+ ### Bug Fixes
54
+
55
+ * bump libs ([2616ab2](https://github.com/pie-framework/pie-elements/commit/2616ab24f776f4df02302f5855c381ee52527665))
56
+
57
+
58
+
59
+
60
+
61
+ # [10.2.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/charting@10.0.0...@pie-element/charting@10.2.0) (2025-10-10)
62
+
63
+
64
+ ### Features
65
+
66
+ * update libs PD-5208, PD-5211, PD-5199, PD-5218, PD-5217 ([da327fa](https://github.com/pie-framework/pie-elements/commit/da327fa501f6e9eff1c0b30b5ef092426a91f78b))
67
+
68
+
69
+
70
+
71
+
6
72
  # [10.1.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/charting@9.0.0...@pie-element/charting@10.1.0) (2025-10-07)
7
73
 
8
74
  **Note:** Version bump only for package @pie-element/charting
@@ -3,6 +3,72 @@
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
+ ## [9.3.3](https://github.com/pie-framework/pie-elements/compare/@pie-element/charting-configure@9.3.2...@pie-element/charting-configure@9.3.3) (2025-11-27)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * bump libs PD-5274, PD-5211, PD-5248 ([7610b25](https://github.com/pie-framework/pie-elements/commit/7610b25423956b6492f33322513b3430051fca77))
12
+
13
+
14
+
15
+
16
+
17
+ ## [9.3.2](https://github.com/pie-framework/pie-elements/compare/@pie-element/charting-configure@9.3.1...@pie-element/charting-configure@9.3.2) (2025-10-22)
18
+
19
+
20
+ ### Bug Fixes
21
+
22
+ * bump libs PD-5265 ([184a978](https://github.com/pie-framework/pie-elements/commit/184a978f57a2a84dc6ba87c1eba0b92d5cdd9eae))
23
+
24
+
25
+
26
+
27
+
28
+ ## [9.3.1](https://github.com/pie-framework/pie-elements/compare/@pie-element/charting-configure@9.2.1...@pie-element/charting-configure@9.3.1) (2025-10-16)
29
+
30
+
31
+ ### Bug Fixes
32
+
33
+ * bump pie-lib versions and pslb module versions ([393d39f](https://github.com/pie-framework/pie-elements/commit/393d39fb850ad055568f4d20464213e9043f208f))
34
+
35
+
36
+
37
+
38
+
39
+ # [9.3.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/charting-configure@9.2.0...@pie-element/charting-configure@9.3.0) (2025-10-15)
40
+
41
+
42
+ ### Bug Fixes
43
+
44
+ * bump libs ([2616ab2](https://github.com/pie-framework/pie-elements/commit/2616ab24f776f4df02302f5855c381ee52527665))
45
+
46
+
47
+
48
+
49
+
50
+ ## [9.2.1](https://github.com/pie-framework/pie-elements/compare/@pie-element/charting-configure@9.2.0...@pie-element/charting-configure@9.2.1) (2025-10-14)
51
+
52
+
53
+ ### Bug Fixes
54
+
55
+ * bump libs ([2616ab2](https://github.com/pie-framework/pie-elements/commit/2616ab24f776f4df02302f5855c381ee52527665))
56
+
57
+
58
+
59
+
60
+
61
+ # [9.2.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/charting-configure@9.0.1...@pie-element/charting-configure@9.2.0) (2025-10-10)
62
+
63
+
64
+ ### Features
65
+
66
+ * update libs PD-5208, PD-5211, PD-5199, PD-5218, PD-5217 ([da327fa](https://github.com/pie-framework/pie-elements/commit/da327fa501f6e9eff1c0b30b5ef092426a91f78b))
67
+
68
+
69
+
70
+
71
+
6
72
  # [9.1.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/charting-configure@9.0.0...@pie-element/charting-configure@9.1.0) (2025-10-07)
7
73
 
8
74
  **Note:** Version bump only for package @pie-element/charting-configure
@@ -0,0 +1,215 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var React = _interopRequireWildcard(require("react"));
5
+ var _enzyme = require("enzyme");
6
+ var _configure = require("../configure");
7
+ var _chartingConfig = require("../charting-config");
8
+ var _correctResponse = require("../correct-response");
9
+ var _defaults = _interopRequireDefault(require("../defaults"));
10
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
11
+ jest.mock('@pie-lib/config-ui', () => ({
12
+ InputContainer: props => /*#__PURE__*/React.createElement("div", null, props.children),
13
+ InputCheckbox: props => /*#__PURE__*/React.createElement("div", null, props.children),
14
+ FeedbackConfig: props => /*#__PURE__*/React.createElement("div", null, props.children),
15
+ layout: {
16
+ ConfigLayout: props => /*#__PURE__*/React.createElement("div", null, props.children)
17
+ },
18
+ settings: {
19
+ Panel: props => /*#__PURE__*/React.createElement("div", {
20
+ onChange: props.onChange
21
+ }),
22
+ toggle: jest.fn(),
23
+ radio: jest.fn(),
24
+ numberFields: jest.fn()
25
+ }
26
+ }));
27
+ jest.mock('@pie-lib/charting', () => ({
28
+ Chart: () => /*#__PURE__*/React.createElement("div", null),
29
+ chartTypes: {
30
+ Bar: () => ({
31
+ Component: () => /*#__PURE__*/React.createElement("div", null),
32
+ type: 'bar'
33
+ }),
34
+ Histogram: () => ({
35
+ Component: () => /*#__PURE__*/React.createElement("div", null),
36
+ type: 'histogram'
37
+ }),
38
+ LineDot: () => ({
39
+ Component: () => /*#__PURE__*/React.createElement("div", null),
40
+ type: 'lineDot'
41
+ }),
42
+ LineCross: () => ({
43
+ Component: () => /*#__PURE__*/React.createElement("div", null),
44
+ type: 'lineCross'
45
+ }),
46
+ DotPlot: () => ({
47
+ Component: () => /*#__PURE__*/React.createElement("div", null),
48
+ type: 'dotPlot'
49
+ }),
50
+ LinePlot: () => ({
51
+ Component: () => /*#__PURE__*/React.createElement("div", null),
52
+ type: 'linePlot'
53
+ })
54
+ }
55
+ }));
56
+ describe('Configure', () => {
57
+ let wrapper;
58
+ beforeEach(() => {
59
+ wrapper = props => {
60
+ const configureProps = {
61
+ ..._defaults.default,
62
+ ...props
63
+ };
64
+ return (0, _enzyme.shallow)(/*#__PURE__*/React.createElement(_configure.Configure, configureProps));
65
+ };
66
+ });
67
+ describe('renders', () => {
68
+ it('snapshot', () => {
69
+ expect(wrapper()).toMatchSnapshot();
70
+ });
71
+ });
72
+ describe('logic', () => {
73
+ it('updates rationale', () => {
74
+ const onModelChanged = jest.fn();
75
+ const component = wrapper({
76
+ onModelChanged
77
+ });
78
+ component.instance().onRationaleChange('New Rationale');
79
+ expect(onModelChanged).toBeCalledWith(expect.objectContaining({
80
+ ..._defaults.default.model,
81
+ rationale: 'New Rationale'
82
+ }));
83
+ });
84
+ it('updates prompt', () => {
85
+ const onModelChanged = jest.fn();
86
+ const component = wrapper({
87
+ onModelChanged
88
+ });
89
+ component.instance().onPromptChange('New Prompt');
90
+ expect(onModelChanged).toBeCalledWith(expect.objectContaining({
91
+ ..._defaults.default.model,
92
+ prompt: 'New Prompt'
93
+ }));
94
+ });
95
+ it('updates teacher instructions', () => {
96
+ const onModelChanged = jest.fn();
97
+ const component = wrapper({
98
+ onModelChanged
99
+ });
100
+ component.instance().onTeacherInstructionsChange('New Teacher Instructions');
101
+ expect(onModelChanged).toBeCalledWith(expect.objectContaining({
102
+ ..._defaults.default.model,
103
+ teacherInstructions: 'New Teacher Instructions'
104
+ }));
105
+ });
106
+ it('updates chart type', () => {
107
+ const onModelChanged = jest.fn();
108
+ const component = wrapper({
109
+ onModelChanged
110
+ });
111
+ component.instance().onChartTypeChange('histogram');
112
+ expect(onModelChanged).toBeCalledWith(expect.objectContaining({
113
+ ..._defaults.default.model,
114
+ chartType: 'histogram'
115
+ }));
116
+ });
117
+ });
118
+ });
119
+ describe('CorrectResponse', () => {
120
+ let wrapper;
121
+ let props;
122
+ const onChange = jest.fn();
123
+ beforeEach(() => {
124
+ props = {
125
+ classes: {},
126
+ model: _defaults.default.model,
127
+ onChange,
128
+ tools: []
129
+ };
130
+ wrapper = newProps => {
131
+ const configureProps = {
132
+ ...props,
133
+ newProps
134
+ };
135
+ return (0, _enzyme.shallow)(/*#__PURE__*/React.createElement(_correctResponse.CorrectResponse, configureProps));
136
+ };
137
+ });
138
+ describe('renders', () => {
139
+ it('snapshot', () => {
140
+ expect(wrapper()).toMatchSnapshot();
141
+ });
142
+ });
143
+ describe('logic', () => {
144
+ let w;
145
+ beforeEach(() => {
146
+ w = wrapper();
147
+ });
148
+ it('changes correctAnswer data', () => {
149
+ w.instance().changeData([]);
150
+ expect(onChange).toHaveBeenCalledWith(expect.objectContaining({
151
+ correctAnswer: expect.objectContaining({
152
+ data: []
153
+ })
154
+ }));
155
+ const wrap = wrapper({
156
+ ..._defaults.default,
157
+ correctAnswer: {
158
+ data: []
159
+ }
160
+ });
161
+ wrap.instance().changeData([{
162
+ value: 2,
163
+ label: 'A'
164
+ }]);
165
+ expect(onChange).toHaveBeenCalledWith(expect.objectContaining({
166
+ correctAnswer: expect.objectContaining({
167
+ data: [{
168
+ value: 2,
169
+ label: 'A'
170
+ }]
171
+ })
172
+ }));
173
+ });
174
+ });
175
+ });
176
+ describe('ChartingConfig', () => {
177
+ let wrapper;
178
+ let props;
179
+ const onChange = jest.fn();
180
+ beforeEach(() => {
181
+ props = {
182
+ classes: {},
183
+ model: _defaults.default.model,
184
+ onChange,
185
+ tools: []
186
+ };
187
+ wrapper = newProps => {
188
+ const configureProps = {
189
+ ...props,
190
+ newProps
191
+ };
192
+ return (0, _enzyme.shallow)(/*#__PURE__*/React.createElement(_chartingConfig.ChartingConfig, configureProps));
193
+ };
194
+ });
195
+ describe('renders', () => {
196
+ it('snapshot', () => {
197
+ expect(wrapper()).toMatchSnapshot();
198
+ });
199
+ });
200
+ describe('logic', () => {
201
+ it('changeData calls onChange', () => {
202
+ wrapper().instance().changeData([{
203
+ value: 2,
204
+ label: 'A'
205
+ }]);
206
+ expect(onChange).toBeCalledWith(expect.objectContaining({
207
+ data: [{
208
+ value: 2,
209
+ label: 'A'
210
+ }]
211
+ }));
212
+ });
213
+ });
214
+ });
215
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsIl9lbnp5bWUiLCJfY29uZmlndXJlIiwiX2NoYXJ0aW5nQ29uZmlnIiwiX2NvcnJlY3RSZXNwb25zZSIsIl9kZWZhdWx0cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJlIiwidCIsIldlYWtNYXAiLCJyIiwibiIsIl9fZXNNb2R1bGUiLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJkZWZhdWx0IiwiaGFzIiwiZ2V0Iiwic2V0IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJqZXN0IiwibW9jayIsIklucHV0Q29udGFpbmVyIiwicHJvcHMiLCJjcmVhdGVFbGVtZW50IiwiY2hpbGRyZW4iLCJJbnB1dENoZWNrYm94IiwiRmVlZGJhY2tDb25maWciLCJsYXlvdXQiLCJDb25maWdMYXlvdXQiLCJzZXR0aW5ncyIsIlBhbmVsIiwib25DaGFuZ2UiLCJ0b2dnbGUiLCJmbiIsInJhZGlvIiwibnVtYmVyRmllbGRzIiwiQ2hhcnQiLCJjaGFydFR5cGVzIiwiQmFyIiwiQ29tcG9uZW50IiwidHlwZSIsIkhpc3RvZ3JhbSIsIkxpbmVEb3QiLCJMaW5lQ3Jvc3MiLCJEb3RQbG90IiwiTGluZVBsb3QiLCJkZXNjcmliZSIsIndyYXBwZXIiLCJiZWZvcmVFYWNoIiwiY29uZmlndXJlUHJvcHMiLCJkZWZhdWx0VmFsdWVzIiwic2hhbGxvdyIsIkNvbmZpZ3VyZSIsIml0IiwiZXhwZWN0IiwidG9NYXRjaFNuYXBzaG90Iiwib25Nb2RlbENoYW5nZWQiLCJjb21wb25lbnQiLCJpbnN0YW5jZSIsIm9uUmF0aW9uYWxlQ2hhbmdlIiwidG9CZUNhbGxlZFdpdGgiLCJvYmplY3RDb250YWluaW5nIiwibW9kZWwiLCJyYXRpb25hbGUiLCJvblByb21wdENoYW5nZSIsInByb21wdCIsIm9uVGVhY2hlckluc3RydWN0aW9uc0NoYW5nZSIsInRlYWNoZXJJbnN0cnVjdGlvbnMiLCJvbkNoYXJ0VHlwZUNoYW5nZSIsImNoYXJ0VHlwZSIsImNsYXNzZXMiLCJ0b29scyIsIm5ld1Byb3BzIiwiQ29ycmVjdFJlc3BvbnNlIiwidyIsImNoYW5nZURhdGEiLCJ0b0hhdmVCZWVuQ2FsbGVkV2l0aCIsImNvcnJlY3RBbnN3ZXIiLCJkYXRhIiwid3JhcCIsInZhbHVlIiwibGFiZWwiLCJDaGFydGluZ0NvbmZpZyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vY29uZmlndXJlLnRlc3QuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgc2hhbGxvdyB9IGZyb20gJ2VuenltZSc7XG5cbmltcG9ydCB7IENvbmZpZ3VyZSB9IGZyb20gJy4uL2NvbmZpZ3VyZSc7XG5pbXBvcnQgeyBDaGFydGluZ0NvbmZpZyB9IGZyb20gJy4uL2NoYXJ0aW5nLWNvbmZpZyc7XG5pbXBvcnQgeyBDb3JyZWN0UmVzcG9uc2UgfSBmcm9tICcuLi9jb3JyZWN0LXJlc3BvbnNlJztcbmltcG9ydCBkZWZhdWx0VmFsdWVzIGZyb20gJy4uL2RlZmF1bHRzJztcblxuamVzdC5tb2NrKCdAcGllLWxpYi9jb25maWctdWknLCAoKSA9PiAoe1xuICBJbnB1dENvbnRhaW5lcjogKHByb3BzKSA9PiA8ZGl2Pntwcm9wcy5jaGlsZHJlbn08L2Rpdj4sXG4gIElucHV0Q2hlY2tib3g6IChwcm9wcykgPT4gPGRpdj57cHJvcHMuY2hpbGRyZW59PC9kaXY+LFxuICBGZWVkYmFja0NvbmZpZzogKHByb3BzKSA9PiA8ZGl2Pntwcm9wcy5jaGlsZHJlbn08L2Rpdj4sXG4gIGxheW91dDoge1xuICAgIENvbmZpZ0xheW91dDogKHByb3BzKSA9PiA8ZGl2Pntwcm9wcy5jaGlsZHJlbn08L2Rpdj4sXG4gIH0sXG4gIHNldHRpbmdzOiB7XG4gICAgUGFuZWw6IChwcm9wcykgPT4gPGRpdiBvbkNoYW5nZT17cHJvcHMub25DaGFuZ2V9IC8+LFxuICAgIHRvZ2dsZTogamVzdC5mbigpLFxuICAgIHJhZGlvOiBqZXN0LmZuKCksXG4gICAgbnVtYmVyRmllbGRzOiBqZXN0LmZuKCksXG4gIH0sXG59KSk7XG5cbmplc3QubW9jaygnQHBpZS1saWIvY2hhcnRpbmcnLCAoKSA9PiAoe1xuICBDaGFydDogKCkgPT4gPGRpdiAvPixcbiAgY2hhcnRUeXBlczoge1xuICAgIEJhcjogKCkgPT4gKHtcbiAgICAgIENvbXBvbmVudDogKCkgPT4gPGRpdiAvPixcbiAgICAgIHR5cGU6ICdiYXInLFxuICAgIH0pLFxuICAgIEhpc3RvZ3JhbTogKCkgPT4gKHtcbiAgICAgIENvbXBvbmVudDogKCkgPT4gPGRpdiAvPixcbiAgICAgIHR5cGU6ICdoaXN0b2dyYW0nLFxuICAgIH0pLFxuICAgIExpbmVEb3Q6ICgpID0+ICh7XG4gICAgICBDb21wb25lbnQ6ICgpID0+IDxkaXYgLz4sXG4gICAgICB0eXBlOiAnbGluZURvdCcsXG4gICAgfSksXG4gICAgTGluZUNyb3NzOiAoKSA9PiAoe1xuICAgICAgQ29tcG9uZW50OiAoKSA9PiA8ZGl2IC8+LFxuICAgICAgdHlwZTogJ2xpbmVDcm9zcycsXG4gICAgfSksXG4gICAgRG90UGxvdDogKCkgPT4gKHtcbiAgICAgIENvbXBvbmVudDogKCkgPT4gPGRpdiAvPixcbiAgICAgIHR5cGU6ICdkb3RQbG90JyxcbiAgICB9KSxcbiAgICBMaW5lUGxvdDogKCkgPT4gKHtcbiAgICAgIENvbXBvbmVudDogKCkgPT4gPGRpdiAvPixcbiAgICAgIHR5cGU6ICdsaW5lUGxvdCcsXG4gICAgfSksXG4gIH0sXG59KSk7XG5cbmRlc2NyaWJlKCdDb25maWd1cmUnLCAoKSA9PiB7XG4gIGxldCB3cmFwcGVyO1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIHdyYXBwZXIgPSAocHJvcHMpID0+IHtcbiAgICAgIGNvbnN0IGNvbmZpZ3VyZVByb3BzID0geyAuLi5kZWZhdWx0VmFsdWVzLCAuLi5wcm9wcyB9O1xuXG4gICAgICByZXR1cm4gc2hhbGxvdyg8Q29uZmlndXJlIHsuLi5jb25maWd1cmVQcm9wc30gLz4pO1xuICAgIH07XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdyZW5kZXJzJywgKCkgPT4ge1xuICAgIGl0KCdzbmFwc2hvdCcsICgpID0+IHtcbiAgICAgIGV4cGVjdCh3cmFwcGVyKCkpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnbG9naWMnLCAoKSA9PiB7XG4gICAgaXQoJ3VwZGF0ZXMgcmF0aW9uYWxlJywgKCkgPT4ge1xuICAgICAgY29uc3Qgb25Nb2RlbENoYW5nZWQgPSBqZXN0LmZuKCk7XG4gICAgICBjb25zdCBjb21wb25lbnQgPSB3cmFwcGVyKHsgb25Nb2RlbENoYW5nZWQgfSk7XG5cbiAgICAgIGNvbXBvbmVudC5pbnN0YW5jZSgpLm9uUmF0aW9uYWxlQ2hhbmdlKCdOZXcgUmF0aW9uYWxlJyk7XG5cbiAgICAgIGV4cGVjdChvbk1vZGVsQ2hhbmdlZCkudG9CZUNhbGxlZFdpdGgoXG4gICAgICAgIGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgICAuLi5kZWZhdWx0VmFsdWVzLm1vZGVsLFxuICAgICAgICAgIHJhdGlvbmFsZTogJ05ldyBSYXRpb25hbGUnLFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBpdCgndXBkYXRlcyBwcm9tcHQnLCAoKSA9PiB7XG4gICAgICBjb25zdCBvbk1vZGVsQ2hhbmdlZCA9IGplc3QuZm4oKTtcbiAgICAgIGNvbnN0IGNvbXBvbmVudCA9IHdyYXBwZXIoeyBvbk1vZGVsQ2hhbmdlZCB9KTtcblxuICAgICAgY29tcG9uZW50Lmluc3RhbmNlKCkub25Qcm9tcHRDaGFuZ2UoJ05ldyBQcm9tcHQnKTtcblxuICAgICAgZXhwZWN0KG9uTW9kZWxDaGFuZ2VkKS50b0JlQ2FsbGVkV2l0aChcbiAgICAgICAgZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgIC4uLmRlZmF1bHRWYWx1ZXMubW9kZWwsXG4gICAgICAgICAgcHJvbXB0OiAnTmV3IFByb21wdCcsXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGl0KCd1cGRhdGVzIHRlYWNoZXIgaW5zdHJ1Y3Rpb25zJywgKCkgPT4ge1xuICAgICAgY29uc3Qgb25Nb2RlbENoYW5nZWQgPSBqZXN0LmZuKCk7XG4gICAgICBjb25zdCBjb21wb25lbnQgPSB3cmFwcGVyKHsgb25Nb2RlbENoYW5nZWQgfSk7XG5cbiAgICAgIGNvbXBvbmVudC5pbnN0YW5jZSgpLm9uVGVhY2hlckluc3RydWN0aW9uc0NoYW5nZSgnTmV3IFRlYWNoZXIgSW5zdHJ1Y3Rpb25zJyk7XG5cbiAgICAgIGV4cGVjdChvbk1vZGVsQ2hhbmdlZCkudG9CZUNhbGxlZFdpdGgoXG4gICAgICAgIGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgICAuLi5kZWZhdWx0VmFsdWVzLm1vZGVsLFxuICAgICAgICAgIHRlYWNoZXJJbnN0cnVjdGlvbnM6ICdOZXcgVGVhY2hlciBJbnN0cnVjdGlvbnMnLFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBpdCgndXBkYXRlcyBjaGFydCB0eXBlJywgKCkgPT4ge1xuICAgICAgY29uc3Qgb25Nb2RlbENoYW5nZWQgPSBqZXN0LmZuKCk7XG4gICAgICBjb25zdCBjb21wb25lbnQgPSB3cmFwcGVyKHsgb25Nb2RlbENoYW5nZWQgfSk7XG5cbiAgICAgIGNvbXBvbmVudC5pbnN0YW5jZSgpLm9uQ2hhcnRUeXBlQ2hhbmdlKCdoaXN0b2dyYW0nKTtcblxuICAgICAgZXhwZWN0KG9uTW9kZWxDaGFuZ2VkKS50b0JlQ2FsbGVkV2l0aChcbiAgICAgICAgZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgIC4uLmRlZmF1bHRWYWx1ZXMubW9kZWwsXG4gICAgICAgICAgY2hhcnRUeXBlOiAnaGlzdG9ncmFtJyxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuXG5kZXNjcmliZSgnQ29ycmVjdFJlc3BvbnNlJywgKCkgPT4ge1xuICBsZXQgd3JhcHBlcjtcbiAgbGV0IHByb3BzO1xuICBjb25zdCBvbkNoYW5nZSA9IGplc3QuZm4oKTtcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBwcm9wcyA9IHtcbiAgICAgIGNsYXNzZXM6IHt9LFxuICAgICAgbW9kZWw6IGRlZmF1bHRWYWx1ZXMubW9kZWwsXG4gICAgICBvbkNoYW5nZSxcbiAgICAgIHRvb2xzOiBbXSxcbiAgICB9O1xuXG4gICAgd3JhcHBlciA9IChuZXdQcm9wcykgPT4ge1xuICAgICAgY29uc3QgY29uZmlndXJlUHJvcHMgPSB7IC4uLnByb3BzLCBuZXdQcm9wcyB9O1xuXG4gICAgICByZXR1cm4gc2hhbGxvdyg8Q29ycmVjdFJlc3BvbnNlIHsuLi5jb25maWd1cmVQcm9wc30gLz4pO1xuICAgIH07XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdyZW5kZXJzJywgKCkgPT4ge1xuICAgIGl0KCdzbmFwc2hvdCcsICgpID0+IHtcbiAgICAgIGV4cGVjdCh3cmFwcGVyKCkpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnbG9naWMnLCAoKSA9PiB7XG4gICAgbGV0IHc7XG5cbiAgICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICAgIHcgPSB3cmFwcGVyKCk7XG4gICAgfSk7XG5cbiAgICBpdCgnY2hhbmdlcyBjb3JyZWN0QW5zd2VyIGRhdGEnLCAoKSA9PiB7XG4gICAgICB3Lmluc3RhbmNlKCkuY2hhbmdlRGF0YShbXSk7XG5cbiAgICAgIGV4cGVjdChvbkNoYW5nZSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoXG4gICAgICAgIGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgICBjb3JyZWN0QW5zd2VyOiBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgICAgICBkYXRhOiBbXSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgfSksXG4gICAgICApO1xuXG4gICAgICBjb25zdCB3cmFwID0gd3JhcHBlcih7XG4gICAgICAgIC4uLmRlZmF1bHRWYWx1ZXMsXG4gICAgICAgIGNvcnJlY3RBbnN3ZXI6IHtcbiAgICAgICAgICBkYXRhOiBbXSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgICAgd3JhcC5pbnN0YW5jZSgpLmNoYW5nZURhdGEoW3sgdmFsdWU6IDIsIGxhYmVsOiAnQScgfV0pO1xuXG4gICAgICBleHBlY3Qob25DaGFuZ2UpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKFxuICAgICAgICBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgICAgY29ycmVjdEFuc3dlcjogZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgICAgZGF0YTogW3sgdmFsdWU6IDIsIGxhYmVsOiAnQScgfV0sXG4gICAgICAgICAgfSksXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoJ0NoYXJ0aW5nQ29uZmlnJywgKCkgPT4ge1xuICBsZXQgd3JhcHBlcjtcbiAgbGV0IHByb3BzO1xuICBjb25zdCBvbkNoYW5nZSA9IGplc3QuZm4oKTtcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBwcm9wcyA9IHtcbiAgICAgIGNsYXNzZXM6IHt9LFxuICAgICAgbW9kZWw6IGRlZmF1bHRWYWx1ZXMubW9kZWwsXG4gICAgICBvbkNoYW5nZSxcbiAgICAgIHRvb2xzOiBbXSxcbiAgICB9O1xuXG4gICAgd3JhcHBlciA9IChuZXdQcm9wcykgPT4ge1xuICAgICAgY29uc3QgY29uZmlndXJlUHJvcHMgPSB7IC4uLnByb3BzLCBuZXdQcm9wcyB9O1xuXG4gICAgICByZXR1cm4gc2hhbGxvdyg8Q2hhcnRpbmdDb25maWcgey4uLmNvbmZpZ3VyZVByb3BzfSAvPik7XG4gICAgfTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3JlbmRlcnMnLCAoKSA9PiB7XG4gICAgaXQoJ3NuYXBzaG90JywgKCkgPT4ge1xuICAgICAgZXhwZWN0KHdyYXBwZXIoKSkudG9NYXRjaFNuYXBzaG90KCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdsb2dpYycsICgpID0+IHtcbiAgICBpdCgnY2hhbmdlRGF0YSBjYWxscyBvbkNoYW5nZScsICgpID0+IHtcbiAgICAgIHdyYXBwZXIoKVxuICAgICAgICAuaW5zdGFuY2UoKVxuICAgICAgICAuY2hhbmdlRGF0YShbeyB2YWx1ZTogMiwgbGFiZWw6ICdBJyB9XSk7XG5cbiAgICAgIGV4cGVjdChvbkNoYW5nZSkudG9CZUNhbGxlZFdpdGgoXG4gICAgICAgIGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgICBkYXRhOiBbeyB2YWx1ZTogMiwgbGFiZWw6ICdBJyB9XSxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFBQSxLQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFELE9BQUE7QUFFQSxJQUFBRSxVQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxlQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxnQkFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssU0FBQSxHQUFBQyxzQkFBQSxDQUFBTixPQUFBO0FBQXdDLFNBQUFELHdCQUFBUSxDQUFBLEVBQUFDLENBQUEsNkJBQUFDLE9BQUEsTUFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBVix1QkFBQSxZQUFBQSxDQUFBUSxDQUFBLEVBQUFDLENBQUEsU0FBQUEsQ0FBQSxJQUFBRCxDQUFBLElBQUFBLENBQUEsQ0FBQUssVUFBQSxTQUFBTCxDQUFBLE1BQUFNLENBQUEsRUFBQUMsQ0FBQSxFQUFBQyxDQUFBLEtBQUFDLFNBQUEsUUFBQUMsT0FBQSxFQUFBVixDQUFBLGlCQUFBQSxDQUFBLHVC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
@@ -0,0 +1,151 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _correctResponse = require("../correct-response");
5
+ var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
6
+ describe('CorrectResponse - getUpdatedCategories function', () => {
7
+ const prevProps = {
8
+ model: {
9
+ data: [{
10
+ label: 'A',
11
+ value: 0,
12
+ interactive: true,
13
+ editable: true
14
+ }, {
15
+ label: 'B',
16
+ value: 1,
17
+ interactive: true,
18
+ editable: false
19
+ }, {
20
+ label: 'C',
21
+ value: 2,
22
+ interactive: true,
23
+ editable: false
24
+ }],
25
+ correctAnswer: {
26
+ data: [{
27
+ label: 'A',
28
+ value: 1
29
+ }, {
30
+ label: 'B',
31
+ value: 1
32
+ }, {
33
+ label: 'C',
34
+ value: 1
35
+ }]
36
+ }
37
+ }
38
+ };
39
+ const prevState = {
40
+ categories: [{
41
+ label: 'A',
42
+ value: 0,
43
+ interactive: true,
44
+ editable: true
45
+ }, {
46
+ label: 'B',
47
+ value: 1,
48
+ interactive: true,
49
+ editable: false
50
+ }, {
51
+ label: 'C',
52
+ value: 2,
53
+ interactive: true,
54
+ editable: false
55
+ }]
56
+ };
57
+
58
+ // Test when a new category is added to Define Chart
59
+ it('should handle category addition correctly', () => {
60
+ const nextProps = (0, _cloneDeep.default)(prevProps);
61
+ nextProps.model.data.push({
62
+ label: 'D',
63
+ value: 2,
64
+ interactive: true,
65
+ editable: true
66
+ });
67
+ const updatedCategories = (0, _correctResponse.getUpdatedCategories)(nextProps, prevProps, prevState);
68
+ expect(updatedCategories).toEqual([{
69
+ label: 'A',
70
+ value: 1,
71
+ interactive: true,
72
+ editable: true,
73
+ deletable: false
74
+ }, {
75
+ label: 'B',
76
+ value: 1,
77
+ interactive: true,
78
+ editable: false,
79
+ deletable: false
80
+ }, {
81
+ label: 'C',
82
+ value: 1,
83
+ interactive: true,
84
+ editable: false,
85
+ deletable: false
86
+ }, {
87
+ label: 'D',
88
+ value: 2,
89
+ interactive: true,
90
+ editable: true,
91
+ deletable: false
92
+ }]);
93
+ });
94
+
95
+ // Test when a category is removed from Define Chart
96
+ it('should handle category removal correctly', () => {
97
+ const nextProps = {
98
+ model: {
99
+ data: [{
100
+ label: 'A',
101
+ value: 0,
102
+ interactive: true,
103
+ editable: true,
104
+ index: 0,
105
+ deletable: true
106
+ }, {
107
+ label: 'C',
108
+ value: 2,
109
+ interactive: true,
110
+ editable: false,
111
+ index: 2,
112
+ deletable: true
113
+ }]
114
+ }
115
+ };
116
+ const updatedCategories = (0, _correctResponse.getUpdatedCategories)(nextProps, prevProps, prevState);
117
+ expect(updatedCategories).toEqual([{
118
+ label: 'A',
119
+ value: 0,
120
+ interactive: true,
121
+ editable: true,
122
+ deletable: false
123
+ }, {
124
+ label: 'C',
125
+ value: 2,
126
+ interactive: true,
127
+ editable: false,
128
+ deletable: false
129
+ }]);
130
+ });
131
+
132
+ // Test when all categories are removed from Define Chart
133
+ it('should handle all category removal correctly', () => {
134
+ const nextProps = {
135
+ model: {
136
+ data: []
137
+ }
138
+ };
139
+ const prevState = {
140
+ "categories": [{
141
+ "label": "A",
142
+ "value": 0,
143
+ "editable": true,
144
+ "interactive": true
145
+ }]
146
+ };
147
+ const updatedCategories = (0, _correctResponse.getUpdatedCategories)(nextProps, prevProps, prevState);
148
+ expect(updatedCategories).toEqual([]);
149
+ });
150
+ });
151
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29ycmVjdFJlc3BvbnNlIiwicmVxdWlyZSIsIl9jbG9uZURlZXAiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiZGVzY3JpYmUiLCJwcmV2UHJvcHMiLCJtb2RlbCIsImRhdGEiLCJsYWJlbCIsInZhbHVlIiwiaW50ZXJhY3RpdmUiLCJlZGl0YWJsZSIsImNvcnJlY3RBbnN3ZXIiLCJwcmV2U3RhdGUiLCJjYXRlZ29yaWVzIiwiaXQiLCJuZXh0UHJvcHMiLCJjbG9uZURlZXAiLCJwdXNoIiwidXBkYXRlZENhdGVnb3JpZXMiLCJnZXRVcGRhdGVkQ2F0ZWdvcmllcyIsImV4cGVjdCIsInRvRXF1YWwiLCJkZWxldGFibGUiLCJpbmRleCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vY29ycmVjdFJlc3BvbnNlLnRlc3QuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0VXBkYXRlZENhdGVnb3JpZXMgfSBmcm9tICcuLi9jb3JyZWN0LXJlc3BvbnNlJztcbmltcG9ydCBjbG9uZURlZXAgZnJvbSAnbG9kYXNoL2Nsb25lRGVlcCc7XG5cbmRlc2NyaWJlKCdDb3JyZWN0UmVzcG9uc2UgLSBnZXRVcGRhdGVkQ2F0ZWdvcmllcyBmdW5jdGlvbicsICgpID0+IHtcbiAgY29uc3QgcHJldlByb3BzID0ge1xuICAgIG1vZGVsOiB7XG4gICAgICBkYXRhOiBbXG4gICAgICAgIHsgbGFiZWw6ICdBJywgdmFsdWU6IDAsIGludGVyYWN0aXZlOiB0cnVlLCBlZGl0YWJsZTogdHJ1ZSB9LFxuICAgICAgICB7IGxhYmVsOiAnQicsIHZhbHVlOiAxLCBpbnRlcmFjdGl2ZTogdHJ1ZSwgZWRpdGFibGU6IGZhbHNlIH0sXG4gICAgICAgIHsgbGFiZWw6ICdDJywgdmFsdWU6IDIsIGludGVyYWN0aXZlOiB0cnVlLCBlZGl0YWJsZTogZmFsc2UgfSxcbiAgICAgIF0sXG4gICAgICBjb3JyZWN0QW5zd2VyOiB7XG4gICAgICAgIGRhdGE6IFtcbiAgICAgICAgICB7IGxhYmVsOiAnQScsIHZhbHVlOiAxIH0sXG4gICAgICAgICAgeyBsYWJlbDogJ0InLCB2YWx1ZTogMSB9LFxuICAgICAgICAgIHsgbGFiZWw6ICdDJywgdmFsdWU6IDEgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfTtcblxuICBjb25zdCBwcmV2U3RhdGUgPSB7XG4gICAgY2F0ZWdvcmllczogW1xuICAgICAgeyBsYWJlbDogJ0EnLCB2YWx1ZTogMCwgaW50ZXJhY3RpdmU6IHRydWUsIGVkaXRhYmxlOiB0cnVlIH0sXG4gICAgICB7IGxhYmVsOiAnQicsIHZhbHVlOiAxLCBpbnRlcmFjdGl2ZTogdHJ1ZSwgZWRpdGFibGU6IGZhbHNlIH0sXG4gICAgICB7IGxhYmVsOiAnQycsIHZhbHVlOiAyLCBpbnRlcmFjdGl2ZTogdHJ1ZSwgZWRpdGFibGU6IGZhbHNlIH0sXG4gICAgXSxcbiAgfTtcblxuICAvLyBUZXN0IHdoZW4gYSBuZXcgY2F0ZWdvcnkgaXMgYWRkZWQgdG8gRGVmaW5lIENoYXJ0XG4gIGl0KCdzaG91bGQgaGFuZGxlIGNhdGVnb3J5IGFkZGl0aW9uIGNvcnJlY3RseScsICgpID0+IHtcbiAgICBjb25zdCBuZXh0UHJvcHMgPSBjbG9uZURlZXAocHJldlByb3BzKTtcbiAgICBuZXh0UHJvcHMubW9kZWwuZGF0YS5wdXNoKHsgbGFiZWw6ICdEJywgdmFsdWU6IDIsIGludGVyYWN0aXZlOiB0cnVlLCBlZGl0YWJsZTogdHJ1ZSB9KTtcblxuICAgIGNvbnN0IHVwZGF0ZWRDYXRlZ29yaWVzID0gZ2V0VXBkYXRlZENhdGVnb3JpZXMobmV4dFByb3BzLCBwcmV2UHJvcHMsIHByZXZTdGF0ZSk7XG5cbiAgICBleHBlY3QodXBkYXRlZENhdGVnb3JpZXMpLnRvRXF1YWwoW1xuICAgICAgeyBsYWJlbDogJ0EnLCB2YWx1ZTogMSwgaW50ZXJhY3RpdmU6IHRydWUsIGVkaXRhYmxlOiB0cnVlLCBkZWxldGFibGU6IGZhbHNlIH0sXG4gICAgICB7IGxhYmVsOiAnQicsIHZhbHVlOiAxLCBpbnRlcmFjdGl2ZTogdHJ1ZSwgZWRpdGFibGU6IGZhbHNlLCBkZWxldGFibGU6IGZhbHNlIH0sXG4gICAgICB7IGxhYmVsOiAnQycsIHZhbHVlOiAxLCBpbnRlcmFjdGl2ZTogdHJ1ZSwgZWRpdGFibGU6IGZhbHNlLCBkZWxldGFibGU6IGZhbHNlIH0sXG4gICAgICB7IGxhYmVsOiAnRCcsIHZhbHVlOiAyLCBpbnRlcmFjdGl2ZTogdHJ1ZSwgZWRpdGFibGU6IHRydWUsIGRlbGV0YWJsZTogZmFsc2UgfSxcbiAgICBdKTtcbiAgfSk7XG5cbiAgLy8gVGVzdCB3aGVuIGEgY2F0ZWdvcnkgaXMgcmVtb3ZlZCBmcm9tIERlZmluZSBDaGFydFxuICBpdCgnc2hvdWxkIGhhbmRsZSBjYXRlZ29yeSByZW1vdmFsIGNvcnJlY3RseScsICgpID0+IHtcbiAgICBjb25zdCBuZXh0UHJvcHMgPSB7XG4gICAgICBtb2RlbDoge1xuICAgICAgICBkYXRhOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbGFiZWw6ICdBJyxcbiAgICAgICAgICAgIHZhbHVlOiAwLFxuICAgICAgICAgICAgaW50ZXJhY3RpdmU6IHRydWUsXG4gICAgICAgICAgICBlZGl0YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIGluZGV4OiAwLFxuICAgICAgICAgICAgZGVsZXRhYmxlOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbGFiZWw6ICdDJyxcbiAgICAgICAgICAgIHZhbHVlOiAyLFxuICAgICAgICAgICAgaW50ZXJhY3RpdmU6IHRydWUsXG4gICAgICAgICAgICBlZGl0YWJsZTogZmFsc2UsXG4gICAgICAgICAgICBpbmRleDogMixcbiAgICAgICAgICAgIGRlbGV0YWJsZTogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgY29uc3QgdXBkYXRlZENhdGVnb3JpZXMgPSBnZXRVcGRhdGVkQ2F0ZWdvcmllcyhuZXh0UHJvcHMsIHByZXZQcm9wcywgcHJldlN0YXRlKTtcblxuICAgIGV4cGVjdCh1cGRhdGVkQ2F0ZWdvcmllcykudG9FcXVhbChbXG4gICAgICB7IGxhYmVsOiAnQScsIHZhbHVlOiAwLCBpbnRlcmFjdGl2ZTogdHJ1ZSwgZWRpdGFibGU6IHRydWUsIGRlbGV0YWJsZTogZmFsc2UgfSxcbiAgICAgIHsgbGFiZWw6ICdDJywgdmFsdWU6IDIsIGludGVyYWN0aXZlOiB0cnVlLCBlZGl0YWJsZTogZmFsc2UsIGRlbGV0YWJsZTogZmFsc2UgfSxcbiAgICBdKTtcbiAgfSk7XG5cbiAgLy8gVGVzdCB3aGVuIGFsbCBjYXRlZ29yaWVzIGFyZSByZW1vdmVkIGZyb20gRGVmaW5lIENoYXJ0XG4gIGl0KCdzaG91bGQgaGFuZGxlIGFsbCBjYXRlZ29yeSByZW1vdmFsIGNvcnJlY3RseScsICgpID0+IHtcbiAgICBjb25zdCBuZXh0UHJvcHMgPSB7XG4gICAgICBtb2RlbDoge1xuICAgICAgICBkYXRhOiBbXSxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIGNvbnN0IHByZXZTdGF0ZSA9IHtcbiAgICAgIFwiY2F0ZWdvcmllc1wiOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgICBcImxhYmVsXCI6IFwiQVwiLFxuICAgICAgICAgICAgICBcInZhbHVlXCI6IDAsXG4gICAgICAgICAgICAgIFwiZWRpdGFibGVcIjogdHJ1ZSxcbiAgICAgICAgICAgICAgXCJpbnRlcmFjdGl2ZVwiOiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgXVxuICB9XG5cbiAgICBjb25zdCB1cGRhdGVkQ2F0ZWdvcmllcyA9IGdldFVwZGF0ZWRDYXRlZ29yaWVzKG5leHRQcm9wcywgcHJldlByb3BzLCBwcmV2U3RhdGUpO1xuXG4gICAgZXhwZWN0KHVwZGF0ZWRDYXRlZ29yaWVzKS50b0VxdWFsKFtdKTtcbiAgfSk7XG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsSUFBQUEsZ0JBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLFVBQUEsR0FBQUMs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