@instructure/quiz-core 20.0.0 → 20.0.1-rc.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.
@@ -5,24 +5,17 @@ import _createSuper from "@babel/runtime/helpers/esm/createSuper";
5
5
 
6
6
  var _dec, _class, _class2, _temp;
7
7
 
8
- import React, { Component } from 'react';
8
+ /** @jsx jsx */
9
+ import { Component } from 'react';
9
10
  import { PropTypes } from 'prop-types';
10
11
  import { range } from 'd3-array';
11
- import { themeable } from '@instructure/ui-themeable';
12
+ import { withStyle, jsx } from '@instructure/emotion';
12
13
  import { ScreenReaderContent } from '@instructure/ui-a11y-content';
13
14
  import { Table } from '@instructure/ui-table';
14
15
  import Distribution from "../Distribution/index.js";
15
16
  import t from '@instructure/quiz-i18n/es/format-message';
16
- var styles = {
17
- componentId: 'owVFv',
18
- template: function template(theme) {
19
- return "\n\n.owVFv_eAvm{display:flex;flex-direction:row;justify-content:center;overflow:hidden}\n\n.owVFv_eAvm>div{flex:0 1 51rem}\n\n.owVFv_eAvm svg{overflow:visible}\n\n@media screen and (--phoneBreakPoint){.owVFv_eAvm .owVFv_cKHw{font-size:".concat(theme.phoneBarLabelFontSize || 'inherit', "}.owVFv_eAvm .owVFv_eIKC g:nth-child(odd){display:none}}");
20
- },
21
- 'centileRoot': 'owVFv_eAvm',
22
- 'barLabel': 'owVFv_cKHw',
23
- 'xAxis': 'owVFv_eIKC'
24
- };
25
- import theme from "./theme.js";
17
+ import generateStyle from "./styles.js";
18
+ import generateComponentTheme from "./theme.js";
26
19
 
27
20
  var starBin = function starBin(props) {
28
21
  if (typeof props.starScore !== 'number') return;
@@ -31,7 +24,7 @@ var starBin = function starBin(props) {
31
24
  return Math.min(Math.floor(starScore * props.visualDistribution.length), props.visualDistribution.length - 1);
32
25
  };
33
26
 
34
- export var CentileDistribution = (_dec = themeable(theme, styles), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
27
+ export var CentileDistribution = (_dec = withStyle(generateStyle, generateComponentTheme), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
35
28
  _inherits(CentileDistribution, _Component);
36
29
 
37
30
  var _super = _createSuper(CentileDistribution);
@@ -80,13 +73,13 @@ export var CentileDistribution = (_dec = themeable(theme, styles), _dec(_class =
80
73
  };
81
74
 
82
75
  _this._renderTable = function () {
83
- return /*#__PURE__*/React.createElement(ScreenReaderContent, null, /*#__PURE__*/React.createElement(Table, {
76
+ return jsx(ScreenReaderContent, null, jsx(Table, {
84
77
  caption: t('Score percentiles chart data')
85
- }, /*#__PURE__*/React.createElement(Table.Head, null, /*#__PURE__*/React.createElement(Table.Row, null, /*#__PURE__*/React.createElement(Table.ColHeader, {
78
+ }, jsx(Table.Head, null, jsx(Table.Row, null, jsx(Table.ColHeader, {
86
79
  id: "score-percentiles-chart-data-score-percentile"
87
- }, t('Score Percentile')), /*#__PURE__*/React.createElement(Table.ColHeader, {
80
+ }, t('Score Percentile')), jsx(Table.ColHeader, {
88
81
  id: "score-percentiles-chart-data-count"
89
- }, t('Count')))), /*#__PURE__*/React.createElement(Table.Body, null, _this._renderTableRows())));
82
+ }, t('Count')))), jsx(Table.Body, null, _this._renderTableRows())));
90
83
  };
91
84
 
92
85
  return _this;
@@ -97,13 +90,13 @@ export var CentileDistribution = (_dec = themeable(theme, styles), _dec(_class =
97
90
  value: function _renderTableRows() {
98
91
  var chartData = this.props.visualDistribution;
99
92
  return chartData.map(function (count, index) {
100
- return /*#__PURE__*/React.createElement(Table.Row, {
93
+ return jsx(Table.Row, {
101
94
  key: "".concat(index, ":").concat(count)
102
95
  /* eslint-disable-line react/jsx-no-literals, react/no-array-index-key */
103
96
 
104
- }, /*#__PURE__*/React.createElement(Table.Cell, null, t('{percent}%', {
97
+ }, jsx(Table.Cell, null, t('{percent}%', {
105
98
  percent: index
106
- })), /*#__PURE__*/React.createElement(Table.Cell, null, count));
99
+ })), jsx(Table.Cell, null, count));
107
100
  });
108
101
  }
109
102
  }, {
@@ -116,10 +109,11 @@ export var CentileDistribution = (_dec = themeable(theme, styles), _dec(_class =
116
109
  summarizeChart: this._summarizeChart,
117
110
  starIndex: starBin(this.props)
118
111
  });
119
- return /*#__PURE__*/React.createElement("div", {
120
- className: styles.centileRoot,
112
+ return jsx("div", {
113
+ className: "centileRoot",
114
+ css: this.props.styles.centileRoot,
121
115
  "data-automation": "sdk-reporting-centile-root"
122
- }, /*#__PURE__*/React.createElement(Distribution, props));
116
+ }, jsx(Distribution, props));
123
117
  }
124
118
  }]);
125
119
 
@@ -147,7 +141,8 @@ export var CentileDistribution = (_dec = themeable(theme, styles), _dec(_class =
147
141
  * * A list of score values for each bucket. Size of this array determines the number of buckets
148
142
  * */
149
143
  visualDistribution: PropTypes.arrayOf(PropTypes.node).isRequired,
150
- starScore: PropTypes.number
144
+ starScore: PropTypes.number,
145
+ styles: PropTypes.object
151
146
  }, _class2.defaultProps = {
152
147
  animateDelay: 200,
153
148
  animateDuration: 900,
@@ -0,0 +1,30 @@
1
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
+
3
+ var generateStyle = function generateStyle(componentTheme) {
4
+ var mq = "@media screen and ".concat(componentTheme.phoneBreakPoint);
5
+ return {
6
+ centileRoot: _defineProperty({
7
+ display: 'flex',
8
+ flexDirection: 'row',
9
+ justifyContent: 'center',
10
+ overflow: 'hidden',
11
+ '& > div': {
12
+ flex: '0 1 51rem'
13
+ },
14
+ svg: {
15
+ overflow: 'visible'
16
+ }
17
+ }, mq, {
18
+ barLabel: {
19
+ fontSize: componentTheme.phoneBarLabelFontSize
20
+ },
21
+ xAxis: {
22
+ '&g:nth-child(2n+1)': {
23
+ display: 'none'
24
+ }
25
+ }
26
+ })
27
+ };
28
+ };
29
+
30
+ export default generateStyle;
@@ -1,4 +1,4 @@
1
- export default function generator(_ref) {
1
+ var generateComponentTheme = function generateComponentTheme(_ref) {
2
2
  var colors = _ref.colors,
3
3
  typography = _ref.typography,
4
4
  breakpoints = _ref.breakpoints;
@@ -6,4 +6,6 @@ export default function generator(_ref) {
6
6
  phoneBreakPoint: "max-width: ".concat(breakpoints.medium),
7
7
  phoneBarLabelFontSize: typography.fontSizeLarge
8
8
  };
9
- }
9
+ };
10
+
11
+ export default generateComponentTheme;
@@ -5,25 +5,17 @@ import _createSuper from "@babel/runtime/helpers/esm/createSuper";
5
5
 
6
6
  var _dec, _class, _class2, _temp;
7
7
 
8
- import React, { Component } from 'react';
8
+ /** @jsx jsx */
9
+ import { Component } from 'react';
9
10
  import { PropTypes } from 'prop-types';
10
11
  import { max, range, sum } from 'd3-array';
11
12
  import { axisBottom } from 'd3-axis';
12
13
  import { scaleBand, scaleLinear } from 'd3-scale';
13
14
  import { select } from 'd3-selection';
14
- import { themeable } from '@instructure/ui-themeable';
15
+ import { withStyle, jsx, css } from '@instructure/emotion';
15
16
  import t from '@instructure/quiz-i18n/es/format-message';
16
- var styles = {
17
- componentId: 'bIUJn',
18
- template: function template(theme) {
19
- return "\n\n.bIUJn_fKwc{fill:".concat(theme.barFillColor || 'inherit', "}\n\n.bIUJn_erik{fill:").concat(theme.barStarFillColor || 'inherit', "}\n\n.bIUJn_eIKC{color:").concat(theme.xAxisColor || 'inherit', "}\n\n.bIUJn_cKHw{color:").concat(theme.barLabelColor || 'inherit', ";font-family:").concat(theme.barLabelFontFamily || 'inherit', ";font-size:").concat(theme.barLabelFontSize || 'inherit', ";text-anchor:middle}");
20
- },
21
- 'bar': 'bIUJn_fKwc',
22
- 'barStar': 'bIUJn_erik',
23
- 'xAxis': 'bIUJn_eIKC',
24
- 'barLabel': 'bIUJn_cKHw'
25
- };
26
- import theme from "./theme.js";
17
+ import generateStyle from "./styles.js";
18
+ import generateComponentTheme from "./theme.js";
27
19
  import { ScreenReaderContent, PresentationContent } from '@instructure/ui-a11y-content';
28
20
  import { transition } from 'd3-transition';
29
21
  import flow from 'lodash/flow'; // Star path copied from instructure-icons/svg/Solid/star.svg
@@ -32,7 +24,7 @@ import flow from 'lodash/flow'; // Star path copied from instructure-icons/svg/S
32
24
  export var starPathData = 'M1915.918 737.475c-10.955-33.543-42.014-56.131-77.364-56.131h-612.029l-189.063-582.1v-.112C1026.394 65.588 995.335 43 959.984 43c-35.237 0-66.41 22.588-77.365 56.245L693.443 681.344H81.415c-35.35 0-66.41 22.588-77.365 56.131-10.955 33.544.79 70.137 29.478 91.03l495.247 359.831-189.177 582.212c-10.955 33.657 1.13 70.25 29.817 90.918 14.23 10.278 30.946 15.473 47.66 15.473 16.716 0 33.432-5.195 47.775-15.586l495.134-359.718 495.021 359.718c28.574 20.781 67.087 20.781 95.662.113 28.687-20.668 40.658-57.261 29.703-91.03l-189.176-582.1 495.36-359.83c28.574-20.894 40.433-57.487 29.364-91.03';
33
25
  var MARGIN_T = 0;
34
26
  var MARGIN_B = 28;
35
- export var Distribution = (_dec = themeable(theme, styles), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
27
+ export var Distribution = (_dec = withStyle(generateStyle, generateComponentTheme), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
36
28
  _inherits(Distribution, _Component);
37
29
 
38
30
  var _super = _createSuper(Distribution);
@@ -54,7 +46,7 @@ export var Distribution = (_dec = themeable(theme, styles), _dec(_class = (_temp
54
46
 
55
47
  _this._renderStar = function (svg) {
56
48
  if (typeof _this.props.starIndex !== 'number') return;
57
- var star = svg.append('path').attr('d', starPathData).classed(styles.barStar, true);
49
+ var star = svg.append('path').attr('d', starPathData).attr('style', css(_this.props.styles.barStar).styles);
58
50
  var starIndex = _this.props.starIndex;
59
51
  var starX = _this.x(starIndex) + _this.x.bandwidth() / 2;
60
52
  var starY = _this.y(_this.props.visualDistribution[starIndex]) - 30; // scale the star down and position it on the x axis - y axis will be applied by animation
@@ -187,11 +179,11 @@ export var Distribution = (_dec = themeable(theme, styles), _dec(_class = (_temp
187
179
  this.calculateAxis(props);
188
180
  var svg = select(node).attr('role', 'document').attr('aria-role', 'document').attr('width', '100%').attr('height', '100%').attr('viewBox', "0 0 ".concat(this.width, " ").concat(this.viewportHeight)).attr('preserveAspectRatio', 'xMidYMax').append('g');
189
181
  this.title = Distribution.addTitle(svg, t('Score percentiles chart'));
190
- svg.append('g').attr('class', styles.xAxis).attr('data-role', 'xAxis').attr('aria-hidden', true).attr('transform', "translate(0,".concat(this.height, ")")).call(this.xAxis).selectAll('text').attr('class', styles.barLabel).attr('y', 9);
182
+ svg.append('g').attr('class', 'xAxis').attr('style', css(this.props.styles.xAxis).styles).attr('data-role', 'xAxis').attr('aria-hidden', true).attr('transform', "translate(0,".concat(this.height, ")")).call(this.xAxis).selectAll('text').attr('class', 'barLabel').attr('style', css(this.props.styles.barLabel).styles).attr('y', 9);
191
183
  var clipKey = "clipPath".concat(this.width, "x").concat(this.height);
192
184
  var clipPath = svg.append('clipPath').attr('id', clipKey);
193
185
  clipPath.append('rect').attr('x', 0).attr('y', 0).attr('width', this.width).attr('height', this.height);
194
- this.barContainer = svg.append('g').attr('class', styles.barContainer).attr('clip-path', "url(#".concat(clipKey, ")"));
186
+ this.barContainer = svg.append('g').attr('class', 'barContainer').attr('clip-path', "url(#".concat(clipKey, ")"));
195
187
  this.props.createChart(svg, this.width);
196
188
  return svg;
197
189
  }
@@ -216,12 +208,18 @@ export var Distribution = (_dec = themeable(theme, styles), _dec(_class = (_temp
216
208
  }, {
217
209
  key: "renderBars",
218
210
  value: function renderBars(node, props) {
211
+ var _this2 = this;
212
+
219
213
  this.chartData = props.visualDistribution;
220
214
  var height = this.height;
221
215
  var x = this.x;
222
216
  var y = this.y;
223
217
  var bars = node.selectAll('rect').data(this.chartData);
224
- var rects = bars.enter().append('rect').classed(styles.bar, true).classed(styles.barStar, this._isStarred).attr('x', function (d, i) {
218
+ var rects = bars.enter().append('rect').attr('style', function (d, i) {
219
+ return _this2._isStarred(d, i) ? css(_this2.props.styles.barStar).styles : css(_this2.props.styles.bar).styles;
220
+ }).attr('class', function (d, i) {
221
+ return _this2._isStarred(d, i) ? 'barStar' : 'bar';
222
+ }).attr('x', function (d, i) {
225
223
  return x(i);
226
224
  }).attr('width', x.bandwidth());
227
225
  this.applyTransition(rects, function (rects) {
@@ -242,7 +240,7 @@ export var Distribution = (_dec = themeable(theme, styles), _dec(_class = (_temp
242
240
  }, {
243
241
  key: "renderSummary",
244
242
  value: function renderSummary() {
245
- return /*#__PURE__*/React.createElement(ScreenReaderContent, null, this.summarizeChart());
243
+ return jsx(ScreenReaderContent, null, this.summarizeChart());
246
244
  }
247
245
  }, {
248
246
  key: "render",
@@ -253,20 +251,20 @@ export var Distribution = (_dec = themeable(theme, styles), _dec(_class = (_temp
253
251
  var viewportHeight = chartHeight + MARGIN_T + MARGIN_B; // IE11 sizes svg elements incorrectly, so we render a canvas element to
254
252
  // layout space for the chart, then position the svg absolute on top of it.
255
253
 
256
- return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(PresentationContent, {
254
+ return jsx("div", null, jsx(PresentationContent, {
257
255
  as: "div"
258
- }, /*#__PURE__*/React.createElement("div", {
256
+ }, jsx("div", {
259
257
  style: {
260
258
  position: 'relative'
261
259
  }
262
- }, /*#__PURE__*/React.createElement("canvas", {
260
+ }, jsx("canvas", {
263
261
  width: chartWidth,
264
262
  height: viewportHeight,
265
263
  style: {
266
264
  display: 'block',
267
265
  visibility: 'hidden'
268
266
  }
269
- }), /*#__PURE__*/React.createElement("svg", {
267
+ }), jsx("svg", {
270
268
  ref: this.setChartRef,
271
269
  style: {
272
270
  position: 'absolute',
@@ -316,7 +314,8 @@ export var Distribution = (_dec = themeable(theme, styles), _dec(_class = (_temp
316
314
  renderTable: PropTypes.func,
317
315
  summarizeChart: PropTypes.func,
318
316
  updateChart: PropTypes.func,
319
- starIndex: PropTypes.number
317
+ starIndex: PropTypes.number,
318
+ styles: PropTypes.object
320
319
  }, _class2.defaultProps = {
321
320
  animateDelay: 200,
322
321
  animateDuration: 900,
@@ -0,0 +1,22 @@
1
+ var generateStyle = function generateStyle(componentTheme) {
2
+ return {
3
+ bar: {
4
+ fill: componentTheme.barFillColor
5
+ },
6
+ barStar: {
7
+ fill: componentTheme.barStarFillColor
8
+ },
9
+ barContainer: {},
10
+ xAxis: {
11
+ color: componentTheme.xAxisColor
12
+ },
13
+ barLabel: {
14
+ color: componentTheme.barLabelColor,
15
+ fontFamily: componentTheme.barLabelFontFamily,
16
+ fontSize: componentTheme.barLabelFontSize,
17
+ textAnchor: 'middle'
18
+ }
19
+ };
20
+ };
21
+
22
+ export default generateStyle;
@@ -1,4 +1,4 @@
1
- export default function generator(_ref) {
1
+ var generateComponentTheme = function generateComponentTheme(_ref) {
2
2
  var colors = _ref.colors,
3
3
  typography = _ref.typography;
4
4
  return {
@@ -9,4 +9,6 @@ export default function generator(_ref) {
9
9
  barLabelFontSize: typography.fontSizeSmall,
10
10
  xAxisColor: colors.textDarkest
11
11
  };
12
- }
12
+ };
13
+
14
+ export default generateComponentTheme;
@@ -5,23 +5,19 @@ import _createSuper from "@babel/runtime/helpers/esm/createSuper";
5
5
 
6
6
  var _dec, _class, _class2, _temp;
7
7
 
8
+ /** @jsx jsx */
9
+
8
10
  /* eslint "no-mixed-operators": "warn" */
9
- import React, { Component } from 'react';
11
+ import { Component } from 'react';
10
12
  import { PropTypes } from 'prop-types';
11
- import { themeable } from '@instructure/ui-themeable';
13
+ import { withStyle, jsx, css } from '@instructure/emotion';
12
14
  import { ScreenReaderContent } from '@instructure/ui-a11y-content';
13
15
  import { Table } from '@instructure/ui-table';
14
16
  import t from '@instructure/quiz-i18n/es/format-message';
15
17
  import Distribution from "../Distribution/index.js";
16
- var styles = {
17
- componentId: 'chSyh',
18
- template: function template(theme) {
19
- return "\n\n.chSyh_cKHw{color:".concat(theme.barLabelColor || 'inherit', ";font-family:").concat(theme.barLabelFontFamily || 'inherit', ";font-size:").concat(theme.barLabelFontSize || 'inherit', ";text-anchor:middle}");
20
- },
21
- 'barLabel': 'chSyh_cKHw'
22
- };
23
- import theme from "./theme.js";
24
- export var QuintileDistribution = (_dec = themeable(theme, styles), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
18
+ import generateStyle from "./styles.js";
19
+ import generateComponentTheme from "./theme.js";
20
+ export var QuintileDistribution = (_dec = withStyle(generateStyle, generateComponentTheme), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
25
21
  _inherits(QuintileDistribution, _Component);
26
22
 
27
23
  var _super = _createSuper(QuintileDistribution);
@@ -59,7 +55,7 @@ export var QuintileDistribution = (_dec = themeable(theme, styles), _dec(_class
59
55
  _this._renderNumbers = function (svg, x, y, applyTransition, barContainer, height) {
60
56
  var chartData = _this.props.visualDistribution;
61
57
  var numbers = barContainer.selectAll('text').data(chartData);
62
- var texts = numbers.enter().insert('text', 'rect').classed(styles.barLabel, true).text(function (d) {
58
+ var texts = numbers.enter().insert('text', 'rect').attr('style', css(_this.props.styles.barLabel).styles).text(function (d) {
63
59
  return d;
64
60
  }).attr('x', function (d, i) {
65
61
  return x(i) + x.bandwidth() / 2;
@@ -79,13 +75,13 @@ export var QuintileDistribution = (_dec = themeable(theme, styles), _dec(_class
79
75
  };
80
76
 
81
77
  _this._renderTable = function () {
82
- return /*#__PURE__*/React.createElement(ScreenReaderContent, null, /*#__PURE__*/React.createElement(Table, {
78
+ return jsx(ScreenReaderContent, null, jsx(Table, {
83
79
  caption: t('Score percentiles chart data')
84
- }, /*#__PURE__*/React.createElement(Table.Head, null, /*#__PURE__*/React.createElement(Table.Row, null, /*#__PURE__*/React.createElement(Table.ColHeader, {
80
+ }, jsx(Table.Head, null, jsx(Table.Row, null, jsx(Table.ColHeader, {
85
81
  id: "score-percentiles-chart-data-score-percentile-range"
86
- }, t('Score Percentile Range')), /*#__PURE__*/React.createElement(Table.ColHeader, {
82
+ }, t('Score Percentile Range')), jsx(Table.ColHeader, {
87
83
  id: "score-percentiles-chart-data-count"
88
- }, t('Count')))), /*#__PURE__*/React.createElement(Table.Body, null, _this.renderTableRows())));
84
+ }, t('Count')))), jsx(Table.Body, null, _this.renderTableRows())));
89
85
  };
90
86
 
91
87
  return _this;
@@ -100,11 +96,11 @@ export var QuintileDistribution = (_dec = themeable(theme, styles), _dec(_class
100
96
  return chartData.map(function (count, index) {
101
97
  var label = _this2.calculateLabelForIndex(index);
102
98
 
103
- return /*#__PURE__*/React.createElement(Table.Row, {
99
+ return jsx(Table.Row, {
104
100
  key: "".concat(label, ":").concat(count)
105
101
  /* eslint-disable-line react/jsx-no-literals */
106
102
 
107
- }, /*#__PURE__*/React.createElement(Table.RowHeader, null, label), /*#__PURE__*/React.createElement(Table.Cell, null, count));
103
+ }, jsx(Table.RowHeader, null, label), jsx(Table.Cell, null, count));
108
104
  });
109
105
  }
110
106
  }, {
@@ -115,7 +111,7 @@ export var QuintileDistribution = (_dec = themeable(theme, styles), _dec(_class
115
111
  renderTable: this._renderTable,
116
112
  updateChart: this._renderNumbers
117
113
  });
118
- return /*#__PURE__*/React.createElement(Distribution, props);
114
+ return jsx(Distribution, props);
119
115
  }
120
116
  }]);
121
117
 
@@ -149,7 +145,8 @@ export var QuintileDistribution = (_dec = themeable(theme, styles), _dec(_class
149
145
  * * Should return string which will be label for chart column.
150
146
  * * If undefined uses default column label calculation
151
147
  * */
152
- calculateLabelForColumn: PropTypes.func
148
+ calculateLabelForColumn: PropTypes.func,
149
+ styles: PropTypes.object
153
150
  }, _class2.defaultProps = {
154
151
  animateDelay: 200,
155
152
  animateDuration: 900,
@@ -0,0 +1,12 @@
1
+ var generateStyle = function generateStyle(componentTheme) {
2
+ return {
3
+ barLabel: {
4
+ color: componentTheme.barLabelColor,
5
+ fontFamily: componentTheme.barLabelFontFamily,
6
+ fontSize: componentTheme.barLabelFontSize,
7
+ textAnchor: 'middle'
8
+ }
9
+ };
10
+ };
11
+
12
+ export default generateStyle;
@@ -1,4 +1,4 @@
1
- export default function generator(_ref) {
1
+ var generateComponentTheme = function generateComponentTheme(_ref) {
2
2
  var colors = _ref.colors,
3
3
  typography = _ref.typography;
4
4
  return {
@@ -6,4 +6,6 @@ export default function generator(_ref) {
6
6
  barLabelFontFamily: typography.fontFamily,
7
7
  barLabelFontSize: typography.fontSizeSmall
8
8
  };
9
- }
9
+ };
10
+
11
+ export default generateComponentTheme;
@@ -2,8 +2,6 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
@@ -17,13 +15,13 @@ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits
17
15
 
18
16
  var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
19
17
 
20
- var _react = _interopRequireWildcard(require("react"));
18
+ var _react = require("react");
21
19
 
22
20
  var _propTypes = require("prop-types");
23
21
 
24
22
  var _d3Array = require("d3-array");
25
23
 
26
- var _uiThemeable = require("@instructure/ui-themeable");
24
+ var _emotion = require("@instructure/emotion");
27
25
 
28
26
  var _uiA11yContent = require("@instructure/ui-a11y-content");
29
27
 
@@ -33,20 +31,12 @@ var _index = _interopRequireDefault(require("../Distribution/index.js"));
33
31
 
34
32
  var _formatMessage = _interopRequireDefault(require("@instructure/quiz-i18n/es/format-message"));
35
33
 
34
+ var _styles = _interopRequireDefault(require("./styles.js"));
35
+
36
36
  var _theme = _interopRequireDefault(require("./theme.js"));
37
37
 
38
38
  var _dec, _class, _class2, _temp;
39
39
 
40
- var styles = {
41
- componentId: 'owVFv',
42
- template: function template(theme) {
43
- return "\n\n.owVFv_eAvm{display:flex;flex-direction:row;justify-content:center;overflow:hidden}\n\n.owVFv_eAvm>div{flex:0 1 51rem}\n\n.owVFv_eAvm svg{overflow:visible}\n\n@media screen and (--phoneBreakPoint){.owVFv_eAvm .owVFv_cKHw{font-size:".concat(theme.phoneBarLabelFontSize || 'inherit', "}.owVFv_eAvm .owVFv_eIKC g:nth-child(odd){display:none}}");
44
- },
45
- 'centileRoot': 'owVFv_eAvm',
46
- 'barLabel': 'owVFv_cKHw',
47
- 'xAxis': 'owVFv_eIKC'
48
- };
49
-
50
40
  var starBin = function starBin(props) {
51
41
  if (typeof props.starScore !== 'number') return;
52
42
  var starScore = Math.max(0, Math.min(props.starScore, 1)); // min+floor here matches quiz_etl HistogramHelper
@@ -54,7 +44,7 @@ var starBin = function starBin(props) {
54
44
  return Math.min(Math.floor(starScore * props.visualDistribution.length), props.visualDistribution.length - 1);
55
45
  };
56
46
 
57
- var CentileDistribution = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
47
+ var CentileDistribution = (_dec = (0, _emotion.withStyle)(_styles.default, _theme.default), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
58
48
  (0, _inherits2.default)(CentileDistribution, _Component);
59
49
 
60
50
  var _super = (0, _createSuper2.default)(CentileDistribution);
@@ -103,13 +93,13 @@ var CentileDistribution = (_dec = (0, _uiThemeable.themeable)(_theme.default, st
103
93
  };
104
94
 
105
95
  _this._renderTable = function () {
106
- return /*#__PURE__*/_react.default.createElement(_uiA11yContent.ScreenReaderContent, null, /*#__PURE__*/_react.default.createElement(_uiTable.Table, {
96
+ return (0, _emotion.jsx)(_uiA11yContent.ScreenReaderContent, null, (0, _emotion.jsx)(_uiTable.Table, {
107
97
  caption: (0, _formatMessage.default)('Score percentiles chart data')
108
- }, /*#__PURE__*/_react.default.createElement(_uiTable.Table.Head, null, /*#__PURE__*/_react.default.createElement(_uiTable.Table.Row, null, /*#__PURE__*/_react.default.createElement(_uiTable.Table.ColHeader, {
98
+ }, (0, _emotion.jsx)(_uiTable.Table.Head, null, (0, _emotion.jsx)(_uiTable.Table.Row, null, (0, _emotion.jsx)(_uiTable.Table.ColHeader, {
109
99
  id: "score-percentiles-chart-data-score-percentile"
110
- }, (0, _formatMessage.default)('Score Percentile')), /*#__PURE__*/_react.default.createElement(_uiTable.Table.ColHeader, {
100
+ }, (0, _formatMessage.default)('Score Percentile')), (0, _emotion.jsx)(_uiTable.Table.ColHeader, {
111
101
  id: "score-percentiles-chart-data-count"
112
- }, (0, _formatMessage.default)('Count')))), /*#__PURE__*/_react.default.createElement(_uiTable.Table.Body, null, _this._renderTableRows())));
102
+ }, (0, _formatMessage.default)('Count')))), (0, _emotion.jsx)(_uiTable.Table.Body, null, _this._renderTableRows())));
113
103
  };
114
104
 
115
105
  return _this;
@@ -120,13 +110,13 @@ var CentileDistribution = (_dec = (0, _uiThemeable.themeable)(_theme.default, st
120
110
  value: function _renderTableRows() {
121
111
  var chartData = this.props.visualDistribution;
122
112
  return chartData.map(function (count, index) {
123
- return /*#__PURE__*/_react.default.createElement(_uiTable.Table.Row, {
113
+ return (0, _emotion.jsx)(_uiTable.Table.Row, {
124
114
  key: "".concat(index, ":").concat(count)
125
115
  /* eslint-disable-line react/jsx-no-literals, react/no-array-index-key */
126
116
 
127
- }, /*#__PURE__*/_react.default.createElement(_uiTable.Table.Cell, null, (0, _formatMessage.default)('{percent}%', {
117
+ }, (0, _emotion.jsx)(_uiTable.Table.Cell, null, (0, _formatMessage.default)('{percent}%', {
128
118
  percent: index
129
- })), /*#__PURE__*/_react.default.createElement(_uiTable.Table.Cell, null, count));
119
+ })), (0, _emotion.jsx)(_uiTable.Table.Cell, null, count));
130
120
  });
131
121
  }
132
122
  }, {
@@ -139,10 +129,11 @@ var CentileDistribution = (_dec = (0, _uiThemeable.themeable)(_theme.default, st
139
129
  summarizeChart: this._summarizeChart,
140
130
  starIndex: starBin(this.props)
141
131
  });
142
- return /*#__PURE__*/_react.default.createElement("div", {
143
- className: styles.centileRoot,
132
+ return (0, _emotion.jsx)("div", {
133
+ className: "centileRoot",
134
+ css: this.props.styles.centileRoot,
144
135
  "data-automation": "sdk-reporting-centile-root"
145
- }, /*#__PURE__*/_react.default.createElement(_index.default, props));
136
+ }, (0, _emotion.jsx)(_index.default, props));
146
137
  }
147
138
  }]);
148
139
  CentileDistribution.displayName = "CentileDistribution";
@@ -169,7 +160,8 @@ var CentileDistribution = (_dec = (0, _uiThemeable.themeable)(_theme.default, st
169
160
  * * A list of score values for each bucket. Size of this array determines the number of buckets
170
161
  * */
171
162
  visualDistribution: _propTypes.PropTypes.arrayOf(_propTypes.PropTypes.node).isRequired,
172
- starScore: _propTypes.PropTypes.number
163
+ starScore: _propTypes.PropTypes.number,
164
+ styles: _propTypes.PropTypes.object
173
165
  }, _class2.defaultProps = {
174
166
  animateDelay: 200,
175
167
  animateDuration: 900,
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
12
+ var generateStyle = function generateStyle(componentTheme) {
13
+ var mq = "@media screen and ".concat(componentTheme.phoneBreakPoint);
14
+ return {
15
+ centileRoot: (0, _defineProperty2.default)({
16
+ display: 'flex',
17
+ flexDirection: 'row',
18
+ justifyContent: 'center',
19
+ overflow: 'hidden',
20
+ '& > div': {
21
+ flex: '0 1 51rem'
22
+ },
23
+ svg: {
24
+ overflow: 'visible'
25
+ }
26
+ }, mq, {
27
+ barLabel: {
28
+ fontSize: componentTheme.phoneBarLabelFontSize
29
+ },
30
+ xAxis: {
31
+ '&g:nth-child(2n+1)': {
32
+ display: 'none'
33
+ }
34
+ }
35
+ })
36
+ };
37
+ };
38
+
39
+ var _default = generateStyle;
40
+ exports.default = _default;
@@ -3,9 +3,9 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = generator;
6
+ exports.default = void 0;
7
7
 
8
- function generator(_ref) {
8
+ var generateComponentTheme = function generateComponentTheme(_ref) {
9
9
  var colors = _ref.colors,
10
10
  typography = _ref.typography,
11
11
  breakpoints = _ref.breakpoints;
@@ -13,4 +13,7 @@ function generator(_ref) {
13
13
  phoneBreakPoint: "max-width: ".concat(breakpoints.medium),
14
14
  phoneBarLabelFontSize: typography.fontSizeLarge
15
15
  };
16
- }
16
+ };
17
+
18
+ var _default = generateComponentTheme;
19
+ exports.default = _default;
@@ -2,8 +2,6 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
@@ -17,7 +15,7 @@ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits
17
15
 
18
16
  var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
19
17
 
20
- var _react = _interopRequireWildcard(require("react"));
18
+ var _react = require("react");
21
19
 
22
20
  var _propTypes = require("prop-types");
23
21
 
@@ -29,10 +27,12 @@ var _d3Scale = require("d3-scale");
29
27
 
30
28
  var _d3Selection = require("d3-selection");
31
29
 
32
- var _uiThemeable = require("@instructure/ui-themeable");
30
+ var _emotion = require("@instructure/emotion");
33
31
 
34
32
  var _formatMessage = _interopRequireDefault(require("@instructure/quiz-i18n/es/format-message"));
35
33
 
34
+ var _styles = _interopRequireDefault(require("./styles.js"));
35
+
36
36
  var _theme = _interopRequireDefault(require("./theme.js"));
37
37
 
38
38
  var _uiA11yContent = require("@instructure/ui-a11y-content");
@@ -43,23 +43,13 @@ var _flow = _interopRequireDefault(require("lodash/flow"));
43
43
 
44
44
  var _dec, _class, _class2, _temp;
45
45
 
46
- var styles = {
47
- componentId: 'bIUJn',
48
- template: function template(theme) {
49
- return "\n\n.bIUJn_fKwc{fill:".concat(theme.barFillColor || 'inherit', "}\n\n.bIUJn_erik{fill:").concat(theme.barStarFillColor || 'inherit', "}\n\n.bIUJn_eIKC{color:").concat(theme.xAxisColor || 'inherit', "}\n\n.bIUJn_cKHw{color:").concat(theme.barLabelColor || 'inherit', ";font-family:").concat(theme.barLabelFontFamily || 'inherit', ";font-size:").concat(theme.barLabelFontSize || 'inherit', ";text-anchor:middle}");
50
- },
51
- 'bar': 'bIUJn_fKwc',
52
- 'barStar': 'bIUJn_erik',
53
- 'xAxis': 'bIUJn_eIKC',
54
- 'barLabel': 'bIUJn_cKHw'
55
- };
56
46
  // Star path copied from instructure-icons/svg/Solid/star.svg
57
47
  // eslint-disable-next-line max-len
58
48
  var starPathData = 'M1915.918 737.475c-10.955-33.543-42.014-56.131-77.364-56.131h-612.029l-189.063-582.1v-.112C1026.394 65.588 995.335 43 959.984 43c-35.237 0-66.41 22.588-77.365 56.245L693.443 681.344H81.415c-35.35 0-66.41 22.588-77.365 56.131-10.955 33.544.79 70.137 29.478 91.03l495.247 359.831-189.177 582.212c-10.955 33.657 1.13 70.25 29.817 90.918 14.23 10.278 30.946 15.473 47.66 15.473 16.716 0 33.432-5.195 47.775-15.586l495.134-359.718 495.021 359.718c28.574 20.781 67.087 20.781 95.662.113 28.687-20.668 40.658-57.261 29.703-91.03l-189.176-582.1 495.36-359.83c28.574-20.894 40.433-57.487 29.364-91.03';
59
49
  exports.starPathData = starPathData;
60
50
  var MARGIN_T = 0;
61
51
  var MARGIN_B = 28;
62
- var Distribution = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
52
+ var Distribution = (_dec = (0, _emotion.withStyle)(_styles.default, _theme.default), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
63
53
  (0, _inherits2.default)(Distribution, _Component);
64
54
 
65
55
  var _super = (0, _createSuper2.default)(Distribution);
@@ -81,7 +71,7 @@ var Distribution = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles),
81
71
 
82
72
  _this._renderStar = function (svg) {
83
73
  if (typeof _this.props.starIndex !== 'number') return;
84
- var star = svg.append('path').attr('d', starPathData).classed(styles.barStar, true);
74
+ var star = svg.append('path').attr('d', starPathData).attr('style', (0, _emotion.css)(_this.props.styles.barStar).styles);
85
75
  var starIndex = _this.props.starIndex;
86
76
  var starX = _this.x(starIndex) + _this.x.bandwidth() / 2;
87
77
  var starY = _this.y(_this.props.visualDistribution[starIndex]) - 30; // scale the star down and position it on the x axis - y axis will be applied by animation
@@ -214,11 +204,11 @@ var Distribution = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles),
214
204
  this.calculateAxis(props);
215
205
  var svg = (0, _d3Selection.select)(node).attr('role', 'document').attr('aria-role', 'document').attr('width', '100%').attr('height', '100%').attr('viewBox', "0 0 ".concat(this.width, " ").concat(this.viewportHeight)).attr('preserveAspectRatio', 'xMidYMax').append('g');
216
206
  this.title = Distribution.addTitle(svg, (0, _formatMessage.default)('Score percentiles chart'));
217
- svg.append('g').attr('class', styles.xAxis).attr('data-role', 'xAxis').attr('aria-hidden', true).attr('transform', "translate(0,".concat(this.height, ")")).call(this.xAxis).selectAll('text').attr('class', styles.barLabel).attr('y', 9);
207
+ svg.append('g').attr('class', 'xAxis').attr('style', (0, _emotion.css)(this.props.styles.xAxis).styles).attr('data-role', 'xAxis').attr('aria-hidden', true).attr('transform', "translate(0,".concat(this.height, ")")).call(this.xAxis).selectAll('text').attr('class', 'barLabel').attr('style', (0, _emotion.css)(this.props.styles.barLabel).styles).attr('y', 9);
218
208
  var clipKey = "clipPath".concat(this.width, "x").concat(this.height);
219
209
  var clipPath = svg.append('clipPath').attr('id', clipKey);
220
210
  clipPath.append('rect').attr('x', 0).attr('y', 0).attr('width', this.width).attr('height', this.height);
221
- this.barContainer = svg.append('g').attr('class', styles.barContainer).attr('clip-path', "url(#".concat(clipKey, ")"));
211
+ this.barContainer = svg.append('g').attr('class', 'barContainer').attr('clip-path', "url(#".concat(clipKey, ")"));
222
212
  this.props.createChart(svg, this.width);
223
213
  return svg;
224
214
  }
@@ -243,12 +233,18 @@ var Distribution = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles),
243
233
  }, {
244
234
  key: "renderBars",
245
235
  value: function renderBars(node, props) {
236
+ var _this2 = this;
237
+
246
238
  this.chartData = props.visualDistribution;
247
239
  var height = this.height;
248
240
  var x = this.x;
249
241
  var y = this.y;
250
242
  var bars = node.selectAll('rect').data(this.chartData);
251
- var rects = bars.enter().append('rect').classed(styles.bar, true).classed(styles.barStar, this._isStarred).attr('x', function (d, i) {
243
+ var rects = bars.enter().append('rect').attr('style', function (d, i) {
244
+ return _this2._isStarred(d, i) ? (0, _emotion.css)(_this2.props.styles.barStar).styles : (0, _emotion.css)(_this2.props.styles.bar).styles;
245
+ }).attr('class', function (d, i) {
246
+ return _this2._isStarred(d, i) ? 'barStar' : 'bar';
247
+ }).attr('x', function (d, i) {
252
248
  return x(i);
253
249
  }).attr('width', x.bandwidth());
254
250
  this.applyTransition(rects, function (rects) {
@@ -269,7 +265,7 @@ var Distribution = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles),
269
265
  }, {
270
266
  key: "renderSummary",
271
267
  value: function renderSummary() {
272
- return /*#__PURE__*/_react.default.createElement(_uiA11yContent.ScreenReaderContent, null, this.summarizeChart());
268
+ return (0, _emotion.jsx)(_uiA11yContent.ScreenReaderContent, null, this.summarizeChart());
273
269
  }
274
270
  }, {
275
271
  key: "render",
@@ -280,20 +276,20 @@ var Distribution = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles),
280
276
  var viewportHeight = chartHeight + MARGIN_T + MARGIN_B; // IE11 sizes svg elements incorrectly, so we render a canvas element to
281
277
  // layout space for the chart, then position the svg absolute on top of it.
282
278
 
283
- return /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_uiA11yContent.PresentationContent, {
279
+ return (0, _emotion.jsx)("div", null, (0, _emotion.jsx)(_uiA11yContent.PresentationContent, {
284
280
  as: "div"
285
- }, /*#__PURE__*/_react.default.createElement("div", {
281
+ }, (0, _emotion.jsx)("div", {
286
282
  style: {
287
283
  position: 'relative'
288
284
  }
289
- }, /*#__PURE__*/_react.default.createElement("canvas", {
285
+ }, (0, _emotion.jsx)("canvas", {
290
286
  width: chartWidth,
291
287
  height: viewportHeight,
292
288
  style: {
293
289
  display: 'block',
294
290
  visibility: 'hidden'
295
291
  }
296
- }), /*#__PURE__*/_react.default.createElement("svg", {
292
+ }), (0, _emotion.jsx)("svg", {
297
293
  ref: this.setChartRef,
298
294
  style: {
299
295
  position: 'absolute',
@@ -342,7 +338,8 @@ var Distribution = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles),
342
338
  renderTable: _propTypes.PropTypes.func,
343
339
  summarizeChart: _propTypes.PropTypes.func,
344
340
  updateChart: _propTypes.PropTypes.func,
345
- starIndex: _propTypes.PropTypes.number
341
+ starIndex: _propTypes.PropTypes.number,
342
+ styles: _propTypes.PropTypes.object
346
343
  }, _class2.defaultProps = {
347
344
  animateDelay: 200,
348
345
  animateDuration: 900,
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var generateStyle = function generateStyle(componentTheme) {
9
+ return {
10
+ bar: {
11
+ fill: componentTheme.barFillColor
12
+ },
13
+ barStar: {
14
+ fill: componentTheme.barStarFillColor
15
+ },
16
+ barContainer: {},
17
+ xAxis: {
18
+ color: componentTheme.xAxisColor
19
+ },
20
+ barLabel: {
21
+ color: componentTheme.barLabelColor,
22
+ fontFamily: componentTheme.barLabelFontFamily,
23
+ fontSize: componentTheme.barLabelFontSize,
24
+ textAnchor: 'middle'
25
+ }
26
+ };
27
+ };
28
+
29
+ var _default = generateStyle;
30
+ exports.default = _default;
@@ -3,9 +3,9 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = generator;
6
+ exports.default = void 0;
7
7
 
8
- function generator(_ref) {
8
+ var generateComponentTheme = function generateComponentTheme(_ref) {
9
9
  var colors = _ref.colors,
10
10
  typography = _ref.typography;
11
11
  return {
@@ -16,4 +16,7 @@ function generator(_ref) {
16
16
  barLabelFontSize: typography.fontSizeSmall,
17
17
  xAxisColor: colors.textDarkest
18
18
  };
19
- }
19
+ };
20
+
21
+ var _default = generateComponentTheme;
22
+ exports.default = _default;
@@ -2,8 +2,6 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
@@ -17,11 +15,11 @@ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits
17
15
 
18
16
  var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
19
17
 
20
- var _react = _interopRequireWildcard(require("react"));
18
+ var _react = require("react");
21
19
 
22
20
  var _propTypes = require("prop-types");
23
21
 
24
- var _uiThemeable = require("@instructure/ui-themeable");
22
+ var _emotion = require("@instructure/emotion");
25
23
 
26
24
  var _uiA11yContent = require("@instructure/ui-a11y-content");
27
25
 
@@ -31,18 +29,13 @@ var _formatMessage = _interopRequireDefault(require("@instructure/quiz-i18n/es/f
31
29
 
32
30
  var _index = _interopRequireDefault(require("../Distribution/index.js"));
33
31
 
32
+ var _styles = _interopRequireDefault(require("./styles.js"));
33
+
34
34
  var _theme = _interopRequireDefault(require("./theme.js"));
35
35
 
36
36
  var _dec, _class, _class2, _temp;
37
37
 
38
- var styles = {
39
- componentId: 'chSyh',
40
- template: function template(theme) {
41
- return "\n\n.chSyh_cKHw{color:".concat(theme.barLabelColor || 'inherit', ";font-family:").concat(theme.barLabelFontFamily || 'inherit', ";font-size:").concat(theme.barLabelFontSize || 'inherit', ";text-anchor:middle}");
42
- },
43
- 'barLabel': 'chSyh_cKHw'
44
- };
45
- var QuintileDistribution = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
38
+ var QuintileDistribution = (_dec = (0, _emotion.withStyle)(_styles.default, _theme.default), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
46
39
  (0, _inherits2.default)(QuintileDistribution, _Component);
47
40
 
48
41
  var _super = (0, _createSuper2.default)(QuintileDistribution);
@@ -80,7 +73,7 @@ var QuintileDistribution = (_dec = (0, _uiThemeable.themeable)(_theme.default, s
80
73
  _this._renderNumbers = function (svg, x, y, applyTransition, barContainer, height) {
81
74
  var chartData = _this.props.visualDistribution;
82
75
  var numbers = barContainer.selectAll('text').data(chartData);
83
- var texts = numbers.enter().insert('text', 'rect').classed(styles.barLabel, true).text(function (d) {
76
+ var texts = numbers.enter().insert('text', 'rect').attr('style', (0, _emotion.css)(_this.props.styles.barLabel).styles).text(function (d) {
84
77
  return d;
85
78
  }).attr('x', function (d, i) {
86
79
  return x(i) + x.bandwidth() / 2;
@@ -100,13 +93,13 @@ var QuintileDistribution = (_dec = (0, _uiThemeable.themeable)(_theme.default, s
100
93
  };
101
94
 
102
95
  _this._renderTable = function () {
103
- return /*#__PURE__*/_react.default.createElement(_uiA11yContent.ScreenReaderContent, null, /*#__PURE__*/_react.default.createElement(_uiTable.Table, {
96
+ return (0, _emotion.jsx)(_uiA11yContent.ScreenReaderContent, null, (0, _emotion.jsx)(_uiTable.Table, {
104
97
  caption: (0, _formatMessage.default)('Score percentiles chart data')
105
- }, /*#__PURE__*/_react.default.createElement(_uiTable.Table.Head, null, /*#__PURE__*/_react.default.createElement(_uiTable.Table.Row, null, /*#__PURE__*/_react.default.createElement(_uiTable.Table.ColHeader, {
98
+ }, (0, _emotion.jsx)(_uiTable.Table.Head, null, (0, _emotion.jsx)(_uiTable.Table.Row, null, (0, _emotion.jsx)(_uiTable.Table.ColHeader, {
106
99
  id: "score-percentiles-chart-data-score-percentile-range"
107
- }, (0, _formatMessage.default)('Score Percentile Range')), /*#__PURE__*/_react.default.createElement(_uiTable.Table.ColHeader, {
100
+ }, (0, _formatMessage.default)('Score Percentile Range')), (0, _emotion.jsx)(_uiTable.Table.ColHeader, {
108
101
  id: "score-percentiles-chart-data-count"
109
- }, (0, _formatMessage.default)('Count')))), /*#__PURE__*/_react.default.createElement(_uiTable.Table.Body, null, _this.renderTableRows())));
102
+ }, (0, _formatMessage.default)('Count')))), (0, _emotion.jsx)(_uiTable.Table.Body, null, _this.renderTableRows())));
110
103
  };
111
104
 
112
105
  return _this;
@@ -121,11 +114,11 @@ var QuintileDistribution = (_dec = (0, _uiThemeable.themeable)(_theme.default, s
121
114
  return chartData.map(function (count, index) {
122
115
  var label = _this2.calculateLabelForIndex(index);
123
116
 
124
- return /*#__PURE__*/_react.default.createElement(_uiTable.Table.Row, {
117
+ return (0, _emotion.jsx)(_uiTable.Table.Row, {
125
118
  key: "".concat(label, ":").concat(count)
126
119
  /* eslint-disable-line react/jsx-no-literals */
127
120
 
128
- }, /*#__PURE__*/_react.default.createElement(_uiTable.Table.RowHeader, null, label), /*#__PURE__*/_react.default.createElement(_uiTable.Table.Cell, null, count));
121
+ }, (0, _emotion.jsx)(_uiTable.Table.RowHeader, null, label), (0, _emotion.jsx)(_uiTable.Table.Cell, null, count));
129
122
  });
130
123
  }
131
124
  }, {
@@ -136,7 +129,7 @@ var QuintileDistribution = (_dec = (0, _uiThemeable.themeable)(_theme.default, s
136
129
  renderTable: this._renderTable,
137
130
  updateChart: this._renderNumbers
138
131
  });
139
- return /*#__PURE__*/_react.default.createElement(_index.default, props);
132
+ return (0, _emotion.jsx)(_index.default, props);
140
133
  }
141
134
  }]);
142
135
  QuintileDistribution.displayName = "QuintileDistribution";
@@ -169,7 +162,8 @@ var QuintileDistribution = (_dec = (0, _uiThemeable.themeable)(_theme.default, s
169
162
  * * Should return string which will be label for chart column.
170
163
  * * If undefined uses default column label calculation
171
164
  * */
172
- calculateLabelForColumn: _propTypes.PropTypes.func
165
+ calculateLabelForColumn: _propTypes.PropTypes.func,
166
+ styles: _propTypes.PropTypes.object
173
167
  }, _class2.defaultProps = {
174
168
  animateDelay: 200,
175
169
  animateDuration: 900,
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var generateStyle = function generateStyle(componentTheme) {
9
+ return {
10
+ barLabel: {
11
+ color: componentTheme.barLabelColor,
12
+ fontFamily: componentTheme.barLabelFontFamily,
13
+ fontSize: componentTheme.barLabelFontSize,
14
+ textAnchor: 'middle'
15
+ }
16
+ };
17
+ };
18
+
19
+ var _default = generateStyle;
20
+ exports.default = _default;
@@ -3,9 +3,9 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = generator;
6
+ exports.default = void 0;
7
7
 
8
- function generator(_ref) {
8
+ var generateComponentTheme = function generateComponentTheme(_ref) {
9
9
  var colors = _ref.colors,
10
10
  typography = _ref.typography;
11
11
  return {
@@ -13,4 +13,7 @@ function generator(_ref) {
13
13
  barLabelFontFamily: typography.fontFamily,
14
14
  barLabelFontSize: typography.fontSizeSmall
15
15
  };
16
- }
16
+ };
17
+
18
+ var _default = generateComponentTheme;
19
+ exports.default = _default;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@instructure/quiz-core",
3
- "version": "20.0.0",
3
+ "version": "20.0.1-rc.0+d73dfdd1f",
4
4
  "license": "MIT",
5
5
  "description": "The Quiz React SDK by Instructure Inc.",
6
6
  "author": "Instructure, Inc. Engineering and Product Design",
@@ -44,11 +44,11 @@
44
44
  "@instructure/emotion": "^8.48.3",
45
45
  "@instructure/grading-utils": "^1.0.0",
46
46
  "@instructure/outcomes-ui": "^2.1.9",
47
- "@instructure/quiz-common": "^20.0.0",
48
- "@instructure/quiz-i18n": "^20.0.0",
49
- "@instructure/quiz-interactions": "^20.0.0",
50
- "@instructure/quiz-number-input": "^20.0.0",
51
- "@instructure/quiz-rce": "^20.0.0",
47
+ "@instructure/quiz-common": "20.0.1-rc.0+d73dfdd1f",
48
+ "@instructure/quiz-i18n": "20.0.1-rc.0+d73dfdd1f",
49
+ "@instructure/quiz-interactions": "20.0.1-rc.0+d73dfdd1f",
50
+ "@instructure/quiz-number-input": "20.0.1-rc.0+d73dfdd1f",
51
+ "@instructure/quiz-rce": "20.0.1-rc.0+d73dfdd1f",
52
52
  "@instructure/ui-a11y-content": "^8.48.3",
53
53
  "@instructure/ui-alerts": "^8.48.3",
54
54
  "@instructure/ui-avatar": "^8.48.3",
@@ -110,7 +110,7 @@
110
110
  "file-saver": "~2.0.5",
111
111
  "humps": "^2.0.0",
112
112
  "immutable": "^3.8.1",
113
- "instructure-validations": "^20.0.0",
113
+ "instructure-validations": "20.0.1-rc.0+d73dfdd1f",
114
114
  "ipaddr.js": "^1.5.4",
115
115
  "isomorphic-fetch": "^2.2.0",
116
116
  "isuuid": "^0.1.0",
@@ -142,7 +142,7 @@
142
142
  "uuid": "^3.2.1"
143
143
  },
144
144
  "devDependencies": {
145
- "@instructure/quiz-scripts": "^20.0.0",
145
+ "@instructure/quiz-scripts": "20.0.0",
146
146
  "@instructure/ui-axe-check": "^8.48.3",
147
147
  "@instructure/ui-babel-preset": "^7.22.1",
148
148
  "@instructure/ui-karma-config": "^7.22.1",
@@ -162,7 +162,7 @@
162
162
  "intl": "^1.2.4",
163
163
  "jquery": "^2.2.3",
164
164
  "most-subject": "^5.3.0",
165
- "quiz-presets": "^20.0.0",
165
+ "quiz-presets": "20.0.1-rc.0+d73dfdd1f",
166
166
  "react": "^16.8.6",
167
167
  "react-addons-test-utils": "^15.6.2",
168
168
  "react-dom": "^16.8.6",
@@ -178,5 +178,5 @@
178
178
  "publishConfig": {
179
179
  "access": "public"
180
180
  },
181
- "gitHead": "76d9fc4082ab232befa2d3d206efeb51c0415966"
181
+ "gitHead": "d73dfdd1f711381c3a637e104a9295d4963d45a9"
182
182
  }