@instructure/quiz-core 20.9.1-rc.4 → 20.9.1-rc.6

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.
Files changed (31) hide show
  1. package/es/banks/components/{SharingModal/asyncSearch.js → AsyncSearch/index.js} +17 -6
  2. package/es/banks/components/Banks/index.js +8 -4
  3. package/es/banks/components/Banks/presenter.js +60 -19
  4. package/es/banks/components/Banks/styles.js +0 -5
  5. package/es/banks/components/SharingModal/presenter.js +1 -1
  6. package/es/common/components/layout/Page/index.js +24 -22
  7. package/es/common/components/layout/Page/styles.js +26 -0
  8. package/es/common/components/layout/Page/theme.js +4 -3
  9. package/es/common/components/layout/header/HeaderMenuButton/presenter.js +16 -21
  10. package/es/common/components/layout/header/HeaderMenuButton/styles.js +27 -0
  11. package/es/common/components/layout/header/HeaderMenuButton/theme.js +4 -2
  12. package/es/common/components/layout/sidebar/Stimulus/Summary/presenter.js +23 -28
  13. package/es/common/components/layout/sidebar/Stimulus/Summary/styles.js +30 -0
  14. package/es/common/components/layout/sidebar/Stimulus/Summary/theme.js +4 -2
  15. package/es/common/reducers/ui.js +1 -1
  16. package/lib/banks/components/{SharingModal/asyncSearch.js → AsyncSearch/index.js} +17 -6
  17. package/lib/banks/components/Banks/index.js +7 -3
  18. package/lib/banks/components/Banks/presenter.js +63 -18
  19. package/lib/banks/components/Banks/styles.js +0 -5
  20. package/lib/banks/components/SharingModal/presenter.js +2 -2
  21. package/lib/common/components/layout/Page/index.js +22 -24
  22. package/lib/common/components/layout/Page/styles.js +37 -0
  23. package/lib/common/components/layout/Page/theme.js +6 -4
  24. package/lib/common/components/layout/header/HeaderMenuButton/presenter.js +13 -21
  25. package/lib/common/components/layout/header/HeaderMenuButton/styles.js +37 -0
  26. package/lib/common/components/layout/header/HeaderMenuButton/theme.js +6 -3
  27. package/lib/common/components/layout/sidebar/Stimulus/Summary/presenter.js +22 -29
  28. package/lib/common/components/layout/sidebar/Stimulus/Summary/styles.js +38 -0
  29. package/lib/common/components/layout/sidebar/Stimulus/Summary/theme.js +6 -3
  30. package/lib/common/reducers/ui.js +1 -1
  31. package/package.json +9 -9
@@ -0,0 +1,30 @@
1
+ var generateStyle = function generateStyle(componentTheme) {
2
+ return {
3
+ middleSection: {
4
+ flexGrow: '2'
5
+ },
6
+ endSection: {
7
+ flexGrow: '1',
8
+ textAlign: 'right'
9
+ },
10
+ questionCount: {
11
+ flexGrow: '1'
12
+ },
13
+ itemsContainer: {
14
+ color: componentTheme.itemContainerColor,
15
+ display: 'flex',
16
+ width: '100%',
17
+ padding: componentTheme.itemContainerPadding,
18
+ border: "dotted ".concat(componentTheme.itemContainerBorderWidth),
19
+ borderColor: componentTheme.itemContainerBorderColor
20
+ },
21
+ summary: {
22
+ margin: componentTheme.summaryMargin,
23
+ marginLeft: componentTheme.summaryMarginLeft,
24
+ display: 'flex',
25
+ flexGrow: '1'
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
  spacing = _ref.spacing,
4
4
  borders = _ref.borders;
@@ -10,4 +10,6 @@ export default function generator(_ref) {
10
10
  summaryMargin: spacing.small,
11
11
  summaryMarginLeft: spacing.medium
12
12
  };
13
- }
13
+ };
14
+
15
+ export default generateComponentTheme;
@@ -20,7 +20,7 @@ export default (function () {
20
20
  return state.mergeDeepIn([action.payload.key], action.payload.value);
21
21
 
22
22
  case SET_UI:
23
- return state.set(action.payload.key, action.payload.value);
23
+ return state.setIn([action.payload.key].flat(), action.payload.value);
24
24
 
25
25
  case TOGGLE_UI:
26
26
  return toggle(state, action.payload);
@@ -397,6 +397,10 @@ var AsyncSearch = /*#__PURE__*/function (_Component) {
397
397
  }, {
398
398
  key: "placeholder",
399
399
  value: function placeholder() {
400
+ if (this.props.placeholderLabel) {
401
+ return this.props.placeholderLabel;
402
+ }
403
+
400
404
  if (this.props.searchType === _quizCommon.SHARED_WITH_ACCOUNT) {
401
405
  return (0, _formatMessage.default)('Enter subaccount name');
402
406
  } else if (this.props.searchType === _quizCommon.SHARED_WITH_COURSE) {
@@ -413,7 +417,7 @@ var AsyncSearch = /*#__PURE__*/function (_Component) {
413
417
  isShowingOptions = _this$state.isShowingOptions;
414
418
  return /*#__PURE__*/_react.default.createElement(_uiSelect.Select, {
415
419
  "data-automation": "sdk-item-bank-share-input",
416
- renderLabel: (0, _formatMessage.default)('Share With'),
420
+ renderLabel: this.props.searchLabel,
417
421
  placeholder: this.placeholder(),
418
422
  inputValue: inputValue,
419
423
  isShowingOptions: isShowingOptions,
@@ -439,9 +443,9 @@ AsyncSearch.propTypes = {
439
443
  improvedBankSharingEnabled: _propTypes.default.bool.isRequired,
440
444
  minChars: _propTypes.default.number,
441
445
  onSelectionChange: _propTypes.default.func.isRequired,
442
- getShareableCourses: _propTypes.default.func.isRequired,
443
- getShareableUsers: _propTypes.default.func.isRequired,
444
- getShareableSubaccounts: _propTypes.default.func.isRequired,
446
+ getShareableCourses: _propTypes.default.func,
447
+ getShareableUsers: _propTypes.default.func,
448
+ getShareableSubaccounts: _propTypes.default.func,
445
449
  searchType: _propTypes.default.string,
446
450
  selectedOption: _propTypes.default.arrayOf(_propTypes.default.shape({
447
451
  avatar: _propTypes.default.string,
@@ -449,7 +453,9 @@ AsyncSearch.propTypes = {
449
453
  title: _propTypes.default.string,
450
454
  uuid: _propTypes.default.string.isRequired
451
455
  })).isRequired,
452
- selectionFilter: _propTypes.default.func
456
+ selectionFilter: _propTypes.default.func,
457
+ searchLabel: _propTypes.default.string,
458
+ placeholderLabel: _propTypes.default.string
453
459
  };
454
460
  AsyncSearch.defaultProps = {
455
461
  debounceDelay: 500,
@@ -457,7 +463,12 @@ AsyncSearch.defaultProps = {
457
463
  searchType: null,
458
464
  selectionFilter: function selectionFilter(value) {
459
465
  return value;
460
- }
466
+ },
467
+ getShareableCourses: null,
468
+ getShareableUsers: null,
469
+ getShareableSubaccounts: null,
470
+ searchLabel: (0, _formatMessage.default)('Share With'),
471
+ placeholder: null
461
472
  };
462
473
  var _default = AsyncSearch;
463
474
  exports.default = _default;
@@ -33,15 +33,18 @@ function mapStateToProps(state, props) {
33
33
  var sortBy = pageData.get('sortBy', 'name');
34
34
  var sortOrder = pageData.get('sortOrder', 'ascending');
35
35
  var searchTerms = pageData.get('searchTerms', null);
36
+ var searchSelection = pageData.get('searchSelection', []);
36
37
  return {
37
38
  itemBankSearchTableEnabled: (0, _featureCheck.featureOn)('item_bank_search_table'),
38
- filtersEnabled: (0, _featureCheck.featureOn)('improved_bank_sharing'),
39
+ improvedBankSharingEnabled: (0, _featureCheck.featureOn)('improved_bank_sharing'),
39
40
  newItemBankFilterNamesEnabled: (0, _featureCheck.featureOn)('new_item_bank_filter_names'),
40
41
  usedByCourseEnabled: (0, _featureCheck.featureOn)('filter_item_banks_used_by_course'),
42
+ subAccountBankSharingEnabled: (0, _featureCheck.featureOn)('sub_account_bank_sharing'),
41
43
  scopeType: scopeType,
42
44
  sortBy: sortBy,
43
45
  sortOrder: sortOrder,
44
- searchTerms: searchTerms
46
+ searchTerms: searchTerms,
47
+ searchSelection: searchSelection
45
48
  };
46
49
  }
47
50
 
@@ -51,7 +54,8 @@ function mapDispatchToProps(dispatch) {
51
54
  getBanks: (0, _redux.bindActionCreators)(_banks.getBanks, dispatch),
52
55
  openModal: (0, _redux.bindActionCreators)(modalActions.openModal, dispatch),
53
56
  clear: (0, _redux.bindActionCreators)(_ui.clear, dispatch),
54
- merge: (0, _redux.bindActionCreators)(_ui.merge, dispatch)
57
+ merge: (0, _redux.bindActionCreators)(_ui.merge, dispatch),
58
+ setUI: (0, _redux.bindActionCreators)(_ui.set, dispatch)
55
59
  };
56
60
  }
57
61
 
@@ -23,6 +23,8 @@ var _react = _interopRequireWildcard(require("react"));
23
23
 
24
24
  var _propTypes = _interopRequireDefault(require("prop-types"));
25
25
 
26
+ var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
27
+
26
28
  var _uiHeading = require("@instructure/ui-heading");
27
29
 
28
30
  var _uiImg = require("@instructure/ui-img");
@@ -41,6 +43,10 @@ var _uiSimpleSelect = require("@instructure/ui-simple-select");
41
43
 
42
44
  var _emotion = require("@instructure/emotion");
43
45
 
46
+ var _uiGrid = require("@instructure/ui-grid");
47
+
48
+ var _uiView = require("@instructure/ui-view");
49
+
44
50
  var _debounce = _interopRequireDefault(require("lodash/fp/debounce"));
45
51
 
46
52
  var _index = _interopRequireDefault(require("../../../common/components/layout/Page/index.js"));
@@ -63,6 +69,8 @@ var _styles = _interopRequireDefault(require("./styles.js"));
63
69
 
64
70
  var _theme = _interopRequireDefault(require("./theme.js"));
65
71
 
72
+ var _index6 = _interopRequireDefault(require("../AsyncSearch/index.js"));
73
+
66
74
  var _dec, _class, _class2, _temp;
67
75
 
68
76
  var sortOrderIcons = {
@@ -124,6 +132,12 @@ var Banks = (_dec = (0, _emotion.withStyle)(_styles.default, _theme.default), _d
124
132
  params['search'] = _this.props.searchTerms;
125
133
  }
126
134
 
135
+ if (_this.props.searchSelection.length > 0) {
136
+ params['account_uuids'] = _this.props.searchSelection.map(function (account) {
137
+ return account.uuid;
138
+ });
139
+ }
140
+
127
141
  return params;
128
142
  };
129
143
 
@@ -201,6 +215,10 @@ var Banks = (_dec = (0, _emotion.withStyle)(_styles.default, _theme.default), _d
201
215
  _this.search(value);
202
216
  };
203
217
 
218
+ _this.handleSearchSelectionChange = function (searchSelection) {
219
+ _this.props.setUI([_quizCommon.BANKS_BANK_FILTERS, 'searchSelection'], searchSelection);
220
+ };
221
+
204
222
  _this.renderRecords = function (recordIds) {
205
223
  return (0, _emotion.jsx)(_index3.default, {
206
224
  createBankButton: _this.createBankButton,
@@ -225,7 +243,7 @@ var Banks = (_dec = (0, _emotion.withStyle)(_styles.default, _theme.default), _d
225
243
  };
226
244
 
227
245
  _this.emptyPage = function () {
228
- if (_this.props.searchTerms) {
246
+ if (_this.props.searchTerms || _this.props.searchSelection.length > 0) {
229
247
  var message;
230
248
 
231
249
  if (_this.props.scopeType === 'course') {
@@ -259,7 +277,7 @@ var Banks = (_dec = (0, _emotion.withStyle)(_styles.default, _theme.default), _d
259
277
  (0, _createClass2.default)(Banks, [{
260
278
  key: "componentDidUpdate",
261
279
  value: function componentDidUpdate(prevProps, prevState) {
262
- if (prevProps.sortBy !== this.props.sortBy || prevProps.sortOrder !== this.props.sortOrder || prevProps.searchTerms !== this.props.searchTerms || prevProps.scopeType !== this.props.scopeType) {
280
+ if (prevProps.sortBy !== this.props.sortBy || prevProps.sortOrder !== this.props.sortOrder || prevProps.searchTerms !== this.props.searchTerms || prevProps.scopeType !== this.props.scopeType || !(0, _isEqual.default)(prevProps.searchSelection, this.props.searchSelection)) {
263
281
  this.props.clear(_quizCommon.BANKS_BANK_PAGINATION);
264
282
  }
265
283
  }
@@ -304,12 +322,20 @@ var Banks = (_dec = (0, _emotion.withStyle)(_styles.default, _theme.default), _d
304
322
  display: false
305
323
  }];
306
324
  var searchFiltersSelectOptionIdPrefix = 'banks-search-filters-select-option-';
307
- var searchFilters = (0, _emotion.jsx)(_react.default.Fragment, null, (0, _emotion.jsx)("div", {
308
- display: "inline-block"
325
+ var searchFilters = (0, _emotion.jsx)(_uiView.View, {
326
+ as: "div",
327
+ width: "100%"
328
+ }, (0, _emotion.jsx)(_uiGrid.Grid, {
329
+ startAt: "medium",
330
+ colSpacing: "small",
331
+ rowSpacing: "small",
332
+ vAlign: "bottom"
333
+ }, (0, _emotion.jsx)(_uiGrid.Grid.Row, null, (0, _emotion.jsx)(_uiGrid.Grid.Col, {
334
+ width: "auto"
309
335
  }, (0, _emotion.jsx)(_uiSimpleSelect.SimpleSelect, {
310
336
  onChange: this.handleBanksParentChange,
311
337
  value: this.props.scopeType,
312
- renderLabel: (0, _emotion.jsx)(_uiA11yContent.ScreenReaderContent, null, (0, _formatMessage.default)('Bank scope')),
338
+ renderLabel: (0, _formatMessage.default)('Filter By'),
313
339
  width: "13rem"
314
340
  }, scopeOptions.map(function (option) {
315
341
  return (0, _emotion.jsx)(_uiSimpleSelect.SimpleSelect.Option, {
@@ -317,16 +343,27 @@ var Banks = (_dec = (0, _emotion.withStyle)(_styles.default, _theme.default), _d
317
343
  key: option.slug,
318
344
  value: option.slug
319
345
  }, option.translation);
320
- }))), (0, _emotion.jsx)("div", {
321
- css: this.props.styles.searchBarContainer
346
+ }))), (0, _emotion.jsx)(_uiGrid.Grid.Col, {
347
+ width: 4
322
348
  }, (0, _emotion.jsx)(_uiTextInput.TextInput, {
323
- renderLabel: (0, _emotion.jsx)(_uiA11yContent.ScreenReaderContent, null, (0, _formatMessage.default)('Search...')),
349
+ renderLabel: (0, _formatMessage.default)('Bank'),
324
350
  type: "search",
325
351
  value: this.state.searchTerms,
326
352
  onChange: this.handleSearchInputChange,
327
- placeholder: (0, _formatMessage.default)('Search...'),
353
+ placeholder: (0, _formatMessage.default)('Search Banks'),
328
354
  "data-automation": "sdk-search-bank-textinput"
329
- })));
355
+ })), this.props.subAccountBankSharingEnabled && (0, _emotion.jsx)(_uiGrid.Grid.Col, {
356
+ width: 4
357
+ }, (0, _emotion.jsx)(_index6.default, {
358
+ getShareableSubaccounts: this.props.getShareableSubaccounts,
359
+ improvedBankSharingEnabled: this.props.improvedBankSharingEnabled,
360
+ minChars: this.props.minChars,
361
+ onSelectionChange: this.handleSearchSelectionChange,
362
+ searchType: _quizCommon.SHARED_WITH_ACCOUNT,
363
+ selectedOption: this.props.searchSelection,
364
+ searchLabel: (0, _formatMessage.default)('Account'),
365
+ placeholderLabel: (0, _formatMessage.default)('Search Accounts')
366
+ })))));
330
367
  var sortingFiltersSelectOptionIdPrefix = 'banks-sorting-filters-select-option-';
331
368
  var sortingFilters = (0, _emotion.jsx)(_react.default.Fragment, null, (0, _emotion.jsx)("div", {
332
369
  display: "inline-block",
@@ -380,7 +417,7 @@ var Banks = (_dec = (0, _emotion.withStyle)(_styles.default, _theme.default), _d
380
417
  key: "renderHeader",
381
418
  value: function renderHeader() {
382
419
  return (0, _emotion.jsx)("div", {
383
- css: [this.props.styles.filters, !this.props.filtersEnabled ? this.props.styles.borderedBottom : {}]
420
+ css: [this.props.styles.filters, !this.props.improvedBankSharingEnabled ? this.props.styles.borderedBottom : {}]
384
421
  }, (0, _emotion.jsx)(_uiHeading.Heading, {
385
422
  as: this.props.isCompact ? 'h2' : 'h1',
386
423
  level: "h1"
@@ -426,7 +463,7 @@ var Banks = (_dec = (0, _emotion.withStyle)(_styles.default, _theme.default), _d
426
463
  value: function render() {
427
464
  return (0, _emotion.jsx)(_index.default, null, this.renderNav(), (0, _emotion.jsx)("div", {
428
465
  css: this.props.styles.content
429
- }, this.renderHeader(), this.props.filtersEnabled && this.renderFilters(), this.renderBanksSearchResults(), (0, _emotion.jsx)(_index4.default, {
466
+ }, this.renderHeader(), this.props.improvedBankSharingEnabled && this.renderFilters(), this.renderBanksSearchResults(), (0, _emotion.jsx)(_index4.default, {
430
467
  itemBanksScope: this.props.scope
431
468
  })));
432
469
  }
@@ -446,8 +483,8 @@ var Banks = (_dec = (0, _emotion.withStyle)(_styles.default, _theme.default), _d
446
483
  account_name: _propTypes.default.string
447
484
  }),
448
485
  // from consumer
449
- clear: _propTypes.default.func,
450
- filtersEnabled: _propTypes.default.bool,
486
+ clear: _propTypes.default.func.isRequired,
487
+ improvedBankSharingEnabled: _propTypes.default.bool,
451
488
  getBanks: _propTypes.default.func.isRequired,
452
489
  getCourseInfo: _propTypes.default.func,
453
490
  // from consumer
@@ -483,10 +520,18 @@ var Banks = (_dec = (0, _emotion.withStyle)(_styles.default, _theme.default), _d
483
520
  }).isRequired,
484
521
  scopeType: _propTypes.default.string,
485
522
  searchTerms: _propTypes.default.string,
523
+ searchSelection: _propTypes.default.arrayOf(_propTypes.default.shape({
524
+ avatar: _propTypes.default.string,
525
+ fullName: _propTypes.default.string,
526
+ title: _propTypes.default.string,
527
+ uuid: _propTypes.default.string.isRequired
528
+ })),
486
529
  sortBy: _propTypes.default.string,
487
530
  sortOrder: _propTypes.default.string,
488
531
  usedByCourseEnabled: _propTypes.default.bool,
489
532
  itemBankSearchTableEnabled: _propTypes.default.bool,
533
+ setUI: _propTypes.default.func.isRequired,
534
+ subAccountBankSharingEnabled: _propTypes.default.bool,
490
535
  // eslint-disable-next-line react/require-default-props,react/forbid-prop-types
491
536
  styles: _propTypes.default.object
492
537
  }, _class2.defaultProps = {
@@ -503,18 +548,18 @@ var Banks = (_dec = (0, _emotion.withStyle)(_styles.default, _theme.default), _d
503
548
  isCompact: false,
504
549
  navigateToBuild: null,
505
550
  onShare: function onShare() {},
506
- clear: function clear() {},
507
- merge: function merge() {},
508
551
  scope: {},
509
552
  returnToUrl: null,
510
- filtersEnabled: false,
553
+ improvedBankSharingEnabled: false,
511
554
  scopeType: 'user',
512
555
  sortBy: 'name',
513
556
  sortOrder: 'ascending',
514
557
  searchTerms: null,
558
+ searchSelection: [],
515
559
  newItemBankFilterNamesEnabled: false,
516
560
  usedByCourseEnabled: false,
517
- itemBankSearchTableEnabled: false
561
+ itemBankSearchTableEnabled: false,
562
+ subAccountBankSharingEnabled: false
518
563
  }, _class2.contextTypes = {
519
564
  locale: _propTypes.default.string
520
565
  }, _temp)) || _class);
@@ -27,11 +27,6 @@ var generateStyle = function generateStyle(componentTheme) {
27
27
  marginTop: '1.5rem',
28
28
  display: 'flex',
29
29
  flexDirection: 'row'
30
- },
31
- searchBarContainer: {
32
- flexGrow: 0.25,
33
- padding: '0 1rem',
34
- display: 'inline-block'
35
30
  }
36
31
  };
37
32
  };
@@ -63,7 +63,7 @@ var _CustomPropTypes = _interopRequireDefault(require("../../../common/util/Cust
63
63
 
64
64
  var _index = _interopRequireDefault(require("./ShareList/index.js"));
65
65
 
66
- var _asyncSearch = _interopRequireDefault(require("./asyncSearch.js"));
66
+ var _index2 = _interopRequireDefault(require("../AsyncSearch/index.js"));
67
67
 
68
68
  var _Spinner = _interopRequireDefault(require("../../../common/components/shared/spinner/Spinner.js"));
69
69
 
@@ -412,7 +412,7 @@ var SharingModalPresenter = (_dec = (0, _emotion.withStyle)(_styles.default, _th
412
412
  return (0, _emotion.jsx)(_react.default.Fragment, null, (0, _emotion.jsx)(_uiGrid.Grid, {
413
413
  vAlign: "bottom",
414
414
  colSpacing: "small"
415
- }, (0, _emotion.jsx)(_uiGrid.Grid.Row, null, (0, _emotion.jsx)(_uiGrid.Grid.Col, null, (0, _emotion.jsx)(_asyncSearch.default, {
415
+ }, (0, _emotion.jsx)(_uiGrid.Grid.Row, null, (0, _emotion.jsx)(_uiGrid.Grid.Col, null, (0, _emotion.jsx)(_index2.default, {
416
416
  getShareableCourses: _this.props.getShareableCourses,
417
417
  getShareableUsers: _this.props.getShareableUsers,
418
418
  getShareableSubaccounts: _this.props.getShareableSubaccounts,
@@ -2,15 +2,11 @@
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
  });
10
8
  exports.default = exports.Page = void 0;
11
9
 
12
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
-
14
10
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
11
 
16
12
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
@@ -19,28 +15,19 @@ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits
19
15
 
20
16
  var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
21
17
 
22
- var _react = _interopRequireWildcard(require("react"));
18
+ var _react = require("react");
23
19
 
24
20
  var _propTypes = _interopRequireDefault(require("prop-types"));
25
21
 
26
- var _classnames2 = _interopRequireDefault(require("classnames"));
22
+ var _emotion = require("@instructure/emotion");
27
23
 
28
- var _uiThemeable = require("@instructure/ui-themeable");
24
+ var _styles = _interopRequireDefault(require("./styles.js"));
29
25
 
30
26
  var _theme = _interopRequireDefault(require("./theme.js"));
31
27
 
32
28
  var _dec, _class, _class2, _temp;
33
29
 
34
- var styles = {
35
- componentId: 'KVDkV',
36
- template: function template(theme) {
37
- return "\n\n.KVDkV_gasz{display:flex;font-family:".concat(theme.fontFamily || 'inherit', ";height:100%;margin:0}\n\n@media screen and (--phoneBreakPoint){.KVDkV_caGd{-webkit-overflow-scrolling:touch}}\n\n.KVDkV_caGd{transition:").concat(theme.contentTransition || 'inherit', ";width:100%}\n\n.KVDkV_dxaC{overflow-x:hidden;overflow-y:auto}\n\n@media print{.KVDkV_gasz{display:block}}");
38
- },
39
- 'wrapper': 'KVDkV_gasz',
40
- 'content': 'KVDkV_caGd',
41
- 'scrollable': 'KVDkV_dxaC'
42
- };
43
- var Page = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
30
+ var Page = (_dec = (0, _emotion.withStyle)(_styles.default, _theme.default), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
44
31
  (0, _inherits2.default)(Page, _Component);
45
32
 
46
33
  var _super = (0, _createSuper2.default)(Page);
@@ -51,6 +38,16 @@ var Page = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_cl
51
38
  }
52
39
 
53
40
  (0, _createClass2.default)(Page, [{
41
+ key: "componentDidMount",
42
+ value: function componentDidMount() {
43
+ this.props.makeStyles();
44
+ }
45
+ }, {
46
+ key: "componentDidUpdate",
47
+ value: function componentDidUpdate() {
48
+ this.props.makeStyles();
49
+ }
50
+ }, {
54
51
  key: "shouldRenderSidebar",
55
52
  value: function shouldRenderSidebar() {
56
53
  return this.props.sidebarComponent != null && this.props.sidebarOpen != null;
@@ -58,7 +55,7 @@ var Page = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_cl
58
55
  }, {
59
56
  key: "renderSidebar",
60
57
  value: function renderSidebar() {
61
- return /*#__PURE__*/_react.default.createElement(this.props.sidebarComponent, {
58
+ return (0, _emotion.jsx)(this.props.sidebarComponent, {
62
59
  role: this.props.sidebarRole,
63
60
  sidebarOpen: this.props.sidebarOpen,
64
61
  toggleSidebar: this.props.toggleSidebar
@@ -67,15 +64,14 @@ var Page = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_cl
67
64
  }, {
68
65
  key: "render",
69
66
  value: function render() {
70
- var childrenWrapperStyles = (0, _classnames2.default)(styles.content, (0, _defineProperty2.default)({}, styles.scrollable, this.shouldRenderSidebar()));
71
- return /*#__PURE__*/_react.default.createElement("div", {
72
- className: styles.wrapper
73
- }, this.shouldRenderSidebar() ? this.renderSidebar() : null, /*#__PURE__*/_react.default.createElement("div", {
67
+ return (0, _emotion.jsx)("div", {
68
+ css: this.props.styles.wrapper
69
+ }, this.shouldRenderSidebar() ? this.renderSidebar() : null, (0, _emotion.jsx)("div", {
74
70
  // this component is focusable for SkipToContent
75
71
  tabIndex: "-1",
76
72
  ref: this.props.childrenWrapperRef,
77
73
  role: this.props.contentRole,
78
- className: childrenWrapperStyles
74
+ css: this.props.styles.childrenWrapper
79
75
  }, this.props.children));
80
76
  }
81
77
  }]);
@@ -88,7 +84,9 @@ var Page = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_cl
88
84
  sidebarComponent: _propTypes.default.func,
89
85
  sidebarOpen: _propTypes.default.bool,
90
86
  sidebarRole: _propTypes.default.string,
91
- toggleSidebar: _propTypes.default.func
87
+ toggleSidebar: _propTypes.default.func,
88
+ styles: _propTypes.default.object,
89
+ makeStyles: _propTypes.default.func
92
90
  }, _class2.defaultProps = {
93
91
  childrenWrapperRef: function childrenWrapperRef() {},
94
92
  contentRole: 'main',
@@ -0,0 +1,37 @@
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 _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
+
12
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
+
14
+ var generateStyle = function generateStyle(componentTheme, props) {
15
+ var printMq = '@media print';
16
+ var isScrollable = props.sidebarComponent != null && props.sidebarOpen != null;
17
+ return {
18
+ wrapper: (0, _defineProperty2.default)({
19
+ display: 'flex',
20
+ fontFamily: componentTheme.fontFamily,
21
+ height: '100%',
22
+ margin: '0'
23
+ }, printMq, {
24
+ display: 'block'
25
+ }),
26
+ childrenWrapper: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, isScrollable && {
27
+ overflowX: 'hidden',
28
+ overflowY: 'auto'
29
+ }), {}, {
30
+ transition: componentTheme.contentTransition,
31
+ width: '100%'
32
+ })
33
+ };
34
+ };
35
+
36
+ var _default = generateStyle;
37
+ exports.default = _default;
@@ -3,15 +3,17 @@
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 typography = _ref.typography,
10
10
  breakpoints = _ref.breakpoints,
11
11
  transitions = _ref.transitions;
12
12
  return {
13
13
  fontFamily: typography.fontFamily,
14
- phoneBreakPoint: "max-width: ".concat(breakpoints.medium),
15
14
  contentTransition: "transform ".concat(transitions.duration)
16
15
  };
17
- }
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
  });
@@ -19,7 +17,7 @@ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits
19
17
 
20
18
  var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
21
19
 
22
- var _react = _interopRequireWildcard(require("react"));
20
+ var _react = require("react");
23
21
 
24
22
  var _propTypes = _interopRequireDefault(require("prop-types"));
25
23
 
@@ -27,26 +25,19 @@ var _uiIcons = require("@instructure/ui-icons");
27
25
 
28
26
  var _uiA11yContent = require("@instructure/ui-a11y-content");
29
27
 
30
- var _uiThemeable = require("@instructure/ui-themeable");
28
+ var _emotion = require("@instructure/emotion");
31
29
 
32
30
  var _formatMessage = _interopRequireDefault(require("@instructure/quiz-i18n/es/format-message"));
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: 'cUqra',
40
- template: function template(theme) {
41
- return "\n\n.cUqra_nvdO{display:none;height:inherit}\n\n@media screen and (--phoneBreakPoint){.cUqra_nvdO{align-items:center;display:flex}}\n\n.cUqra_cdzo{background:transparent;border:none;color:".concat(theme.menuButtonColor || 'inherit', ";font-size:").concat(theme.menuButtonFontSize || 'inherit', ";height:inherit}\n\n.cUqra_cdzo:hover{opacity:").concat(theme.menuButtonHoverOpacity || 'inherit', "}");
42
- },
43
- 'title': 'cUqra_nvdO',
44
- 'menuButton': 'cUqra_cdzo'
45
- };
46
-
47
- var _ref = /*#__PURE__*/_react.default.createElement(_uiIcons.IconHamburgerLine, null);
38
+ var _ref = (0, _emotion.jsx)(_uiIcons.IconHamburgerLine, null);
48
39
 
49
- var HeaderMenuButton = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
40
+ var HeaderMenuButton = (_dec = (0, _emotion.withStyle)(_styles.default, _theme.default), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
50
41
  (0, _inherits2.default)(HeaderMenuButton, _Component);
51
42
 
52
43
  var _super = (0, _createSuper2.default)(HeaderMenuButton);
@@ -84,14 +75,14 @@ var HeaderMenuButton = (_dec = (0, _uiThemeable.themeable)(_theme.default, style
84
75
  return null;
85
76
  }
86
77
 
87
- return /*#__PURE__*/_react.default.createElement("div", {
88
- className: styles.title
89
- }, /*#__PURE__*/_react.default.createElement("button", {
90
- className: styles.menuButton,
78
+ return (0, _emotion.jsx)("div", {
79
+ css: this.props.styles.title
80
+ }, (0, _emotion.jsx)("button", {
81
+ css: this.props.styles.menuButton,
91
82
  onClick: this.toggleNavigator,
92
83
  tabIndex: "0",
93
84
  "data-automation": "sdk-hamburger-button"
94
- }, _ref, /*#__PURE__*/_react.default.createElement(_uiA11yContent.ScreenReaderContent, null, sidebarOpen ? (0, _formatMessage.default)('Hide Question Navigator Menu') : (0, _formatMessage.default)('Show Question Navigator Menu'))));
85
+ }, _ref, (0, _emotion.jsx)(_uiA11yContent.ScreenReaderContent, null, sidebarOpen ? (0, _formatMessage.default)('Hide Question Navigator Menu') : (0, _formatMessage.default)('Show Question Navigator Menu'))));
95
86
  }
96
87
  }]);
97
88
  HeaderMenuButton.displayName = "HeaderMenuButton";
@@ -100,7 +91,8 @@ var HeaderMenuButton = (_dec = (0, _uiThemeable.themeable)(_theme.default, style
100
91
  sidebarMenuClick: _propTypes.default.func.isRequired,
101
92
  hidden: _propTypes.default.bool.isRequired,
102
93
  sidebarOpen: _propTypes.default.bool.isRequired,
103
- screenreaderNotification: _propTypes.default.func.isRequired
94
+ screenreaderNotification: _propTypes.default.func.isRequired,
95
+ styles: _propTypes.default.object
104
96
  }, _temp)) || _class);
105
97
  exports.HeaderMenuButton = HeaderMenuButton;
106
98
  var _default = HeaderMenuButton;
@@ -0,0 +1,37 @@
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
+ title: (0, _defineProperty2.default)({
16
+ /* default to none - since toggle moved to sidebar on non mobile */
17
+ display: 'none',
18
+ height: 'inherit'
19
+ }, mq, {
20
+ display: 'flex',
21
+ alignItems: 'center'
22
+ }),
23
+ menuButton: {
24
+ border: 'none',
25
+ fontSize: componentTheme.menuButtonFontSize,
26
+ color: componentTheme.menuButtonColor,
27
+ background: 'transparent',
28
+ height: 'inherit',
29
+ '&:hover': {
30
+ opacity: componentTheme.menuButtonHoverOpacity
31
+ }
32
+ }
33
+ };
34
+ };
35
+
36
+ var _default = generateStyle;
37
+ exports.default = _default;