@instructure/quiz-core 22.10.2 → 22.11.1

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 (43) hide show
  1. package/es/banks/api/banks.js +18 -97
  2. package/es/banks/components/SharingModal/index.js +6 -3
  3. package/es/banks/components/SharingModal/presenter.js +207 -131
  4. package/es/building/api/items.js +120 -24
  5. package/es/building/api/quizEntries.js +78 -15
  6. package/es/building/components/resources/quizEntry/QuizEntryShow/presenter.js +11 -2
  7. package/es/common/actions/sharedBanks.js +13 -1
  8. package/es/common/actions/sharingModal.js +7 -0
  9. package/es/common/components/resources/quiz/AddContent/Body/index.js +1 -1
  10. package/es/common/components/resources/quiz/AddContent/Body/presenter.js +129 -141
  11. package/es/common/components/resources/quiz/AddContent/Modal/presenter.js +59 -72
  12. package/es/common/components/resources/quiz/AddContent/Popover/presenter.js +126 -119
  13. package/es/common/components/shared/InteractionTypes/index.js +1 -4
  14. package/es/common/components/shared/InteractionTypes/presenter.js +1 -3
  15. package/es/common/middleware/sharedBanksMiddleware.js +243 -0
  16. package/es/common/records/Item.js +2 -1
  17. package/es/common/records/QuizEntry.js +7 -0
  18. package/es/common/reducers/sharingModal.js +17 -0
  19. package/es/common/util/useRemoteComponent.js +127 -0
  20. package/es/configureStore.js +4 -1
  21. package/es/index.js +3 -2
  22. package/lib/banks/api/banks.js +17 -96
  23. package/lib/banks/components/SharingModal/index.js +5 -2
  24. package/lib/banks/components/SharingModal/presenter.js +205 -129
  25. package/lib/building/api/items.js +120 -23
  26. package/lib/building/api/quizEntries.js +78 -14
  27. package/lib/building/components/resources/quizEntry/QuizEntryShow/presenter.js +10 -1
  28. package/lib/common/actions/sharedBanks.js +13 -1
  29. package/lib/common/actions/sharingModal.js +13 -0
  30. package/lib/common/components/resources/quiz/AddContent/Body/index.js +1 -1
  31. package/lib/common/components/resources/quiz/AddContent/Body/presenter.js +132 -141
  32. package/lib/common/components/resources/quiz/AddContent/Modal/presenter.js +59 -74
  33. package/lib/common/components/resources/quiz/AddContent/Popover/presenter.js +127 -119
  34. package/lib/common/components/shared/InteractionTypes/index.js +1 -4
  35. package/lib/common/components/shared/InteractionTypes/presenter.js +1 -3
  36. package/lib/common/middleware/sharedBanksMiddleware.js +250 -0
  37. package/lib/common/records/Item.js +2 -1
  38. package/lib/common/records/QuizEntry.js +7 -0
  39. package/lib/common/reducers/sharingModal.js +23 -0
  40. package/lib/common/util/useRemoteComponent.js +134 -0
  41. package/lib/configureStore.js +4 -1
  42. package/lib/index.js +22 -0
  43. package/package.json +8 -8
@@ -4,147 +4,144 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports["default"] = exports.AddContentBody = void 0;
8
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
9
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
11
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
12
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
13
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
14
- var _react = require("react");
15
- var _propTypes = _interopRequireDefault(require("prop-types"));
16
- var _reactImmutableProptypes = _interopRequireDefault(require("react-immutable-proptypes"));
17
- var _first = _interopRequireDefault(require("lodash/first"));
18
- var _uiIcons = require("@instructure/ui-icons");
7
+ exports.quizGenerationButtonPropTypes = exports["default"] = exports.AddContentBody = void 0;
8
+ var _emotion = require("@instructure/emotion");
9
+ var _quizCommon = require("@instructure/quiz-common");
10
+ var _formatMessage = _interopRequireDefault(require("@instructure/quiz-i18n/es/format-message"));
19
11
  var _uiButtons = require("@instructure/ui-buttons");
20
12
  var _uiGrid = require("@instructure/ui-grid");
21
- var _uiView = require("@instructure/ui-view");
13
+ var _uiIcons = require("@instructure/ui-icons");
22
14
  var _uiText = require("@instructure/ui-text");
23
- var _emotion = require("@instructure/emotion");
15
+ var _uiView = require("@instructure/ui-view");
16
+ var _first = _interopRequireDefault(require("lodash/first"));
17
+ var _propTypes = _interopRequireDefault(require("prop-types"));
18
+ var _react = _interopRequireWildcard(require("react"));
19
+ var _reactImmutableProptypes = _interopRequireDefault(require("react-immutable-proptypes"));
24
20
  var _InteractionTypes = _interopRequireDefault(require("../../../../shared/InteractionTypes"));
25
- var _formatMessage = _interopRequireDefault(require("@instructure/quiz-i18n/es/format-message"));
26
- var _quizCommon = require("@instructure/quiz-common");
27
21
  var _styles = _interopRequireDefault(require("./styles"));
28
22
  var _theme = _interopRequireDefault(require("./theme"));
29
- var _dec, _class, _AddContentBody;
23
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
24
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
30
25
  /** @jsx jsx */
31
- function _callSuper(_this, derived, args) {
32
- function isNativeReflectConstruct() {
33
- if (typeof Reflect === "undefined" || !Reflect.construct) return false;
34
- if (Reflect.construct.sham) return false;
35
- if (typeof Proxy === "function") return true;
36
- try {
37
- return !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
38
- } catch (e) {
39
- return false;
40
- }
41
- }
42
- derived = (0, _getPrototypeOf2["default"])(derived);
43
- return (0, _possibleConstructorReturn2["default"])(_this, isNativeReflectConstruct() ? Reflect.construct(derived, args || [], (0, _getPrototypeOf2["default"])(_this).constructor) : derived.apply(_this, args));
44
- }
45
- var AddContentBody = exports.AddContentBody = (_dec = (0, _quizCommon.withStyleOverrides)(_styles["default"], _theme["default"]), _dec(_class = (_AddContentBody = /*#__PURE__*/function (_Component) {
46
- function AddContentBody() {
47
- var _this2;
48
- (0, _classCallCheck2["default"])(this, AddContentBody);
49
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
50
- args[_key] = arguments[_key];
26
+
27
+ function UnstyledAddContentBody(_ref) {
28
+ var allowStimulusCreation = _ref.allowStimulusCreation,
29
+ createItem = _ref.createItem,
30
+ createStimulus = _ref.createStimulus,
31
+ editingQuizEntry = _ref.editingQuizEntry,
32
+ interactionTypes = _ref.interactionTypes,
33
+ _ref$onOpenBankTray = _ref.onOpenBankTray,
34
+ onOpenBankTray = _ref$onOpenBankTray === void 0 ? function () {} : _ref$onOpenBankTray,
35
+ _ref$onAddItem = _ref.onAddItem,
36
+ onAddItem = _ref$onAddItem === void 0 ? function () {} : _ref$onAddItem,
37
+ parentEntryId = _ref.parentEntryId,
38
+ position = _ref.position,
39
+ quizEntryWithErrorsShowing = _ref.quizEntryWithErrorsShowing,
40
+ quizId = _ref.quizId,
41
+ screenreaderNotification = _ref.screenreaderNotification,
42
+ setNextQuizEntry = _ref.setNextQuizEntry,
43
+ setUi = _ref.setUi,
44
+ _ref$showHeaderText = _ref.showHeaderText,
45
+ showHeaderText = _ref$showHeaderText === void 0 ? true : _ref$showHeaderText,
46
+ stimulusId = _ref.stimulusId,
47
+ styles = _ref.styles,
48
+ _ref$slotProps = _ref.slotProps,
49
+ slotProps = _ref$slotProps === void 0 ? {} : _ref$slotProps;
50
+ var openBankTray = (0, _react.useCallback)(function () {
51
+ onOpenBankTray();
52
+ setUi(_quizCommon.BUILD_TRAY_OPEN, true);
53
+ setUi(_quizCommon.BUILD_TRAY_POSITION, position);
54
+ setUi(_quizCommon.BUILD_TRAY_STIMULUS_ID, parentEntryId);
55
+ }, [onOpenBankTray, setUi, position, parentEntryId]);
56
+ var addStimulus = (0, _react.useCallback)(function (isPassage) {
57
+ if (editingQuizEntry) {
58
+ setNextQuizEntry(null, quizId, position);
59
+ } else {
60
+ createStimulus(quizId, position, isPassage);
51
61
  }
52
- _this2 = _callSuper(this, AddContentBody, [].concat(args));
53
- // ==============================
54
- // ACTIONS
55
- // ==============================
56
- (0, _defineProperty2["default"])(_this2, "openBankTray", function () {
57
- _this2.props.onOpenBankTray();
58
- _this2.props.setUi(_quizCommon.BUILD_TRAY_OPEN, true);
59
- _this2.props.setUi(_quizCommon.BUILD_TRAY_POSITION, _this2.props.position);
60
- _this2.props.setUi(_quizCommon.BUILD_TRAY_STIMULUS_ID, _this2.props.parentEntryId);
61
- });
62
- (0, _defineProperty2["default"])(_this2, "addStimulus", function (isPassage) {
63
- if (_this2.props.editingQuizEntry) {
64
- _this2.props.setNextQuizEntry(null, _this2.props.quizId, _this2.props.position);
65
- } else {
66
- _this2.props.createStimulus(_this2.props.quizId, _this2.props.position, isPassage);
67
- }
68
- _this2.props.onAddItem();
69
- });
70
- (0, _defineProperty2["default"])(_this2, "addItem", function (interactionTypeData) {
71
- if (_this2.props.quizEntryWithErrorsShowing) {
72
- _this2.props.screenreaderNotification((0, _formatMessage["default"])('Question {itemPosition, number} cannot be saved due to invalid input data', {
73
- itemPosition: Math.ceil(_this2.props.quizEntryWithErrorsShowing.position)
74
- }));
62
+ onAddItem();
63
+ }, [editingQuizEntry, setNextQuizEntry, quizId, position, createStimulus, onAddItem]);
64
+ var addItem = (0, _react.useCallback)(function (interactionTypeData) {
65
+ if (quizEntryWithErrorsShowing) {
66
+ screenreaderNotification((0, _formatMessage["default"])('Question {itemPosition, number} cannot be saved due to invalid input data', {
67
+ itemPosition: Math.ceil(quizEntryWithErrorsShowing.position)
68
+ }));
69
+ } else {
70
+ if (editingQuizEntry) {
71
+ setNextQuizEntry(interactionTypeData, quizId, position, stimulusId, parentEntryId);
75
72
  } else {
76
- var _this2$props = _this2.props,
77
- quizId = _this2$props.quizId,
78
- position = _this2$props.position,
79
- stimulusId = _this2$props.stimulusId,
80
- parentEntryId = _this2$props.parentEntryId;
81
- if (_this2.props.editingQuizEntry) {
82
- _this2.props.setNextQuizEntry(interactionTypeData, quizId, position, stimulusId, parentEntryId);
83
- } else {
84
- var defaultInteractionData = interactionTypeData.getDefaultInteractionData();
85
- var scoringData = interactionTypeData.getDefaultScoringData(defaultInteractionData);
86
- _this2.props.createItem(quizId, position, {
87
- id: interactionTypeData.id,
88
- interactionData: defaultInteractionData,
89
- itemBody: interactionTypeData.itemBody,
90
- properties: interactionTypeData.defaultProperties,
91
- scoringAlgorithm: interactionTypeData.scoringAlgorithmDefault,
92
- scoringData: scoringData,
93
- userResponseType: (0, _first["default"])(interactionTypeData.userResponseTypeOptions)
94
- }, parentEntryId, stimulusId);
95
- }
73
+ var defaultInteractionData = interactionTypeData.getDefaultInteractionData();
74
+ var scoringData = interactionTypeData.getDefaultScoringData(defaultInteractionData);
75
+ createItem(quizId, position, {
76
+ id: interactionTypeData.id,
77
+ interactionData: defaultInteractionData,
78
+ itemBody: interactionTypeData.itemBody,
79
+ properties: interactionTypeData.defaultProperties,
80
+ scoringAlgorithm: interactionTypeData.scoringAlgorithmDefault,
81
+ scoringData: scoringData,
82
+ userResponseType: (0, _first["default"])(interactionTypeData.userResponseTypeOptions)
83
+ }, parentEntryId, stimulusId);
96
84
  }
97
- _this2.props.onAddItem();
98
- });
99
- // ==============================
100
- // RENDERING
101
- // ==============================
102
- (0, _defineProperty2["default"])(_this2, "renderBankButton", function () {
103
- return (0, _emotion.jsx)(_uiButtons.IconButton, {
104
- size: "large",
105
- onClick: _this2.openBankTray,
106
- "data-automation": "sdk-add-banked-content-button",
107
- screenReaderLabel: (0, _formatMessage["default"])('Add banked content')
108
- }, (0, _emotion.jsx)(_uiIcons.IconBankLine, null));
109
- });
110
- (0, _defineProperty2["default"])(_this2, "renderPopoverHeader", function () {
111
- var text = _this2.props.showHeaderText ? (0, _formatMessage["default"])('Insert Content') : '';
112
- return (0, _emotion.jsx)("div", {
113
- css: _this2.props.styles.popoverHeaderBox
114
- }, (0, _emotion.jsx)("div", {
115
- css: _this2.props.styles.popoverHeader
116
- }, (0, _emotion.jsx)(_uiGrid.Grid, {
117
- vAlign: "middle",
118
- colSpacing: "none",
119
- rowSpacing: "none"
120
- }, (0, _emotion.jsx)(_uiGrid.Grid.Row, null, (0, _emotion.jsx)(_uiGrid.Grid.Col, null, (0, _emotion.jsx)(_uiText.Text, {
121
- color: "primary"
122
- }, text)), (0, _emotion.jsx)(_uiGrid.Grid.Col, {
123
- width: "auto"
124
- }, _this2.renderBankButton())))));
125
- });
126
- return _this2;
127
- }
128
- (0, _inherits2["default"])(AddContentBody, _Component);
129
- return (0, _createClass2["default"])(AddContentBody, [{
130
- key: "render",
131
- value: function render() {
132
- return (0, _emotion.jsx)("div", {
133
- css: this.props.styles.popoverContent,
134
- role: "dialog",
135
- "aria-label": (0, _formatMessage["default"])('Insert Content')
136
- }, this.renderPopoverHeader(), (0, _emotion.jsx)(_uiView.View, {
137
- padding: "small"
138
- }, (0, _emotion.jsx)(_InteractionTypes["default"], {
139
- columns: 2,
140
- addItem: this.addItem,
141
- addStimulus: this.addStimulus,
142
- allowStimulusCreation: this.props.allowStimulusCreation,
143
- types: this.props.interactionTypes
144
- })));
145
85
  }
146
- }]);
147
- }(_react.Component), (0, _defineProperty2["default"])(_AddContentBody, "displayName", 'AddContentBody'), (0, _defineProperty2["default"])(_AddContentBody, "componentId", "Quizzes".concat(_AddContentBody.displayName)), (0, _defineProperty2["default"])(_AddContentBody, "propTypes", {
86
+ onAddItem();
87
+ }, [quizEntryWithErrorsShowing, screenreaderNotification, editingQuizEntry, setNextQuizEntry, quizId, position, stimulusId, parentEntryId, createItem, onAddItem]);
88
+ var renderBankButton = function renderBankButton() {
89
+ return (0, _emotion.jsx)(_uiButtons.IconButton, {
90
+ size: "large",
91
+ onClick: openBankTray,
92
+ "data-automation": "sdk-add-banked-content-button",
93
+ screenReaderLabel: (0, _formatMessage["default"])('Add banked content')
94
+ }, (0, _emotion.jsx)(_uiIcons.IconBankLine, null));
95
+ };
96
+ var renderPopoverHeader = function renderPopoverHeader() {
97
+ var _slotProps$quizGenera, _slotProps$quizGenera2, _slotProps$quizGenera3;
98
+ var text = showHeaderText ? (0, _formatMessage["default"])('Insert Content') : '';
99
+ return (0, _emotion.jsx)("div", {
100
+ css: styles.popoverHeaderBox
101
+ }, (0, _emotion.jsx)("div", {
102
+ css: styles.popoverHeader
103
+ }, (0, _emotion.jsx)(_uiGrid.Grid, {
104
+ vAlign: "middle",
105
+ colSpacing: "none",
106
+ rowSpacing: "none"
107
+ }, (0, _emotion.jsx)(_uiGrid.Grid.Row, null, (0, _emotion.jsx)(_uiGrid.Grid.Col, null, (0, _emotion.jsx)(_uiText.Text, {
108
+ color: "primary"
109
+ }, text)), (0, _emotion.jsx)(_uiGrid.Grid.Col, {
110
+ width: "auto"
111
+ }, renderBankButton())))), ((_slotProps$quizGenera = slotProps.quizGenerationButton) === null || _slotProps$quizGenera === void 0 ? void 0 : _slotProps$quizGenera.visible) && (0, _emotion.jsx)(_uiView.View, {
112
+ as: "div",
113
+ padding: "x-small 0 small"
114
+ }, (0, _emotion.jsx)(_uiButtons.Button, {
115
+ color: "ai-primary",
116
+ display: "block",
117
+ renderIcon: _uiIcons.IconAiSolid,
118
+ onClick: (_slotProps$quizGenera2 = slotProps.quizGenerationButton) === null || _slotProps$quizGenera2 === void 0 ? void 0 : _slotProps$quizGenera2.onClick,
119
+ disabled: (_slotProps$quizGenera3 = slotProps.quizGenerationButton) === null || _slotProps$quizGenera3 === void 0 ? void 0 : _slotProps$quizGenera3.disabled
120
+ }, (0, _formatMessage["default"])('Generate with AI'))));
121
+ };
122
+ return (0, _emotion.jsx)("div", {
123
+ css: styles.popoverContent,
124
+ role: "dialog",
125
+ "aria-label": (0, _formatMessage["default"])('Insert Content')
126
+ }, renderPopoverHeader(), (0, _emotion.jsx)(_uiView.View, {
127
+ padding: "small"
128
+ }, (0, _emotion.jsx)(_InteractionTypes["default"], {
129
+ columns: 2,
130
+ addItem: addItem,
131
+ addStimulus: addStimulus,
132
+ allowStimulusCreation: allowStimulusCreation,
133
+ types: interactionTypes
134
+ })));
135
+ }
136
+ var AddContentBody = exports.AddContentBody = (0, _quizCommon.withStyleOverrides)(_styles["default"], _theme["default"])(UnstyledAddContentBody);
137
+ var quizGenerationButtonPropTypes = exports.quizGenerationButtonPropTypes = _propTypes["default"].shape({
138
+ onClick: _propTypes["default"].func.isRequired,
139
+ visible: _propTypes["default"].bool,
140
+ disabled: _propTypes["default"].bool
141
+ });
142
+ AddContentBody.displayName = 'AddContentBody';
143
+ AddContentBody.componentId = "Quizzes".concat(AddContentBody.displayName);
144
+ AddContentBody.propTypes = {
148
145
  allowStimulusCreation: _propTypes["default"].bool.isRequired,
149
146
  createItem: _propTypes["default"].func.isRequired,
150
147
  createStimulus: _propTypes["default"].func.isRequired,
@@ -161,15 +158,9 @@ var AddContentBody = exports.AddContentBody = (_dec = (0, _quizCommon.withStyleO
161
158
  setUi: _propTypes["default"].func.isRequired,
162
159
  showHeaderText: _propTypes["default"].bool,
163
160
  stimulusId: _propTypes["default"].string,
164
- styles: _propTypes["default"].object
165
- }), (0, _defineProperty2["default"])(_AddContentBody, "defaultProps", {
166
- editingQuizEntry: void 0,
167
- interactionTypes: void 0,
168
- onAddItem: Function.prototype,
169
- parentEntryId: void 0,
170
- onOpenBankTray: Function.prototype,
171
- quizEntryWithErrorsShowing: void 0,
172
- showHeaderText: true,
173
- stimulusId: void 0
174
- }), _AddContentBody)) || _class);
161
+ styles: _propTypes["default"].object,
162
+ slotProps: _propTypes["default"].shape({
163
+ quizGenerationButton: quizGenerationButtonPropTypes
164
+ })
165
+ };
175
166
  var _default = exports["default"] = AddContentBody;
@@ -4,94 +4,79 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports["default"] = exports.AddContentModal = void 0;
8
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
9
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
11
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
12
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
7
+ exports.AddContentModal = AddContentModal;
13
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
14
- var _react = _interopRequireWildcard(require("react"));
9
+ var _react = _interopRequireDefault(require("react"));
15
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
16
11
  var _uiButtons = require("@instructure/ui-buttons");
17
12
  var _uiHeading = require("@instructure/ui-heading");
18
13
  var _quizCommon = require("@instructure/quiz-common");
19
14
  var _formatMessage = _interopRequireDefault(require("@instructure/quiz-i18n/es/format-message"));
20
15
  var _Body = _interopRequireDefault(require("../Body"));
21
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
22
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
23
- function _callSuper(_this, derived, args) {
24
- function isNativeReflectConstruct() {
25
- if (typeof Reflect === "undefined" || !Reflect.construct) return false;
26
- if (Reflect.construct.sham) return false;
27
- if (typeof Proxy === "function") return true;
28
- try {
29
- return !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
30
- } catch (e) {
31
- return false;
16
+ var _presenter = require("../Body/presenter");
17
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
18
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
19
+ function AddContentModal(_ref) {
20
+ var allowStimulusCreation = _ref.allowStimulusCreation,
21
+ closeModal = _ref.closeModal,
22
+ modalOpen = _ref.modalOpen,
23
+ _ref$parentEntryId = _ref.parentEntryId,
24
+ parentEntryId = _ref$parentEntryId === void 0 ? void 0 : _ref$parentEntryId,
25
+ position = _ref.position,
26
+ quizId = _ref.quizId,
27
+ _ref$stimulusId = _ref.stimulusId,
28
+ stimulusId = _ref$stimulusId === void 0 ? void 0 : _ref$stimulusId,
29
+ _ref$slotProps = _ref.slotProps,
30
+ slotProps = _ref$slotProps === void 0 ? {} : _ref$slotProps;
31
+ var handleGenerateWithAiClick = function handleGenerateWithAiClick() {
32
+ var _slotProps$quizGenera, _slotProps$quizGenera2;
33
+ slotProps === null || slotProps === void 0 || (_slotProps$quizGenera = slotProps.quizGenerationButton) === null || _slotProps$quizGenera === void 0 || (_slotProps$quizGenera2 = _slotProps$quizGenera.onClick) === null || _slotProps$quizGenera2 === void 0 || _slotProps$quizGenera2.call(_slotProps$quizGenera, position);
34
+ closeModal();
35
+ };
36
+ return /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_quizCommon.Modal, {
37
+ open: modalOpen,
38
+ onDismiss: closeModal,
39
+ size: "large",
40
+ label: (0, _formatMessage["default"])('Add Content')
41
+ }, /*#__PURE__*/_react["default"].createElement(_quizCommon.ModalHeader, null, /*#__PURE__*/_react["default"].createElement(_uiHeading.Heading, {
42
+ level: "reset",
43
+ as: "h2"
44
+ }, (0, _formatMessage["default"])('Insert Content')), /*#__PURE__*/_react["default"].createElement(_uiButtons.CloseButton, {
45
+ onClick: closeModal,
46
+ placement: "end",
47
+ offset: "medium",
48
+ screenReaderLabel: (0, _formatMessage["default"])('Close')
49
+ })), /*#__PURE__*/_react["default"].createElement(_quizCommon.ModalBody, null, /*#__PURE__*/_react["default"].createElement(_Body["default"], {
50
+ allowStimulusCreation: allowStimulusCreation,
51
+ onOpenBankTray: closeModal,
52
+ onAddItem: closeModal,
53
+ parentEntryId: parentEntryId,
54
+ position: position,
55
+ quizId: quizId,
56
+ showHeaderText: false,
57
+ stimulusId: stimulusId,
58
+ slotProps: {
59
+ quizGenerationButton: _objectSpread(_objectSpread({}, (slotProps === null || slotProps === void 0 ? void 0 : slotProps.quizGenerationButton) || {}), {}, {
60
+ onClick: handleGenerateWithAiClick
61
+ })
32
62
  }
33
- }
34
- derived = (0, _getPrototypeOf2["default"])(derived);
35
- return (0, _possibleConstructorReturn2["default"])(_this, isNativeReflectConstruct() ? Reflect.construct(derived, args || [], (0, _getPrototypeOf2["default"])(_this).constructor) : derived.apply(_this, args));
63
+ })), /*#__PURE__*/_react["default"].createElement(_quizCommon.ModalFooter, null, /*#__PURE__*/_react["default"].createElement(_uiButtons.Button, {
64
+ onClick: closeModal
65
+ }, (0, _formatMessage["default"])('Cancel')))));
36
66
  }
37
- var AddContentModal = exports.AddContentModal = /*#__PURE__*/function (_Component) {
38
- function AddContentModal() {
39
- (0, _classCallCheck2["default"])(this, AddContentModal);
40
- return _callSuper(this, AddContentModal, arguments);
41
- }
42
- (0, _inherits2["default"])(AddContentModal, _Component);
43
- return (0, _createClass2["default"])(AddContentModal, [{
44
- key: "cancelButton",
45
- value: function cancelButton() {
46
- return /*#__PURE__*/_react["default"].createElement(_uiButtons.Button, {
47
- onClick: this.props.closeModal
48
- }, (0, _formatMessage["default"])('Cancel'));
49
- }
50
- }, {
51
- key: "renderContent",
52
- value: function renderContent() {
53
- return /*#__PURE__*/_react["default"].createElement(_Body["default"], {
54
- allowStimulusCreation: this.props.allowStimulusCreation,
55
- onOpenBankTray: this.props.closeModal,
56
- onAddItem: this.props.closeModal,
57
- parentEntryId: this.props.parentEntryId,
58
- position: this.props.position,
59
- quizId: this.props.quizId,
60
- showHeaderText: false,
61
- stimulusId: this.props.stimulusId
62
- });
63
- }
64
- }, {
65
- key: "render",
66
- value: function render() {
67
- return /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_quizCommon.Modal, {
68
- open: this.props.modalOpen,
69
- onDismiss: this.props.closeModal,
70
- size: "large",
71
- label: (0, _formatMessage["default"])('Add Content')
72
- }, /*#__PURE__*/_react["default"].createElement(_quizCommon.ModalHeader, null, /*#__PURE__*/_react["default"].createElement(_uiHeading.Heading, {
73
- level: "reset",
74
- as: "h2"
75
- }, (0, _formatMessage["default"])('Insert Content')), /*#__PURE__*/_react["default"].createElement(_uiButtons.CloseButton, {
76
- onClick: this.props.closeModal,
77
- placement: "end",
78
- offset: "medium",
79
- screenReaderLabel: (0, _formatMessage["default"])('Close')
80
- })), /*#__PURE__*/_react["default"].createElement(_quizCommon.ModalBody, null, this.renderContent()), /*#__PURE__*/_react["default"].createElement(_quizCommon.ModalFooter, null, this.cancelButton())));
81
- }
82
- }]);
83
- }(_react.Component);
84
- (0, _defineProperty2["default"])(AddContentModal, "propTypes", {
67
+ AddContentModal.propTypes = {
85
68
  allowStimulusCreation: _propTypes["default"].bool.isRequired,
86
69
  closeModal: _propTypes["default"].func.isRequired,
87
70
  modalOpen: _propTypes["default"].bool.isRequired,
88
71
  parentEntryId: _propTypes["default"].string,
89
72
  position: _propTypes["default"].number.isRequired,
90
73
  quizId: _propTypes["default"].string.isRequired,
91
- stimulusId: _propTypes["default"].string
92
- });
93
- (0, _defineProperty2["default"])(AddContentModal, "defaultProps", {
74
+ stimulusId: _propTypes["default"].string,
75
+ slotProps: _propTypes["default"].shape({
76
+ quizGenerationButton: _presenter.quizGenerationButtonPropTypes
77
+ })
78
+ };
79
+ AddContentModal.defaultProps = {
94
80
  parentEntryId: void 0,
95
81
  stimulusId: void 0
96
- });
97
- var _default = exports["default"] = AddContentModal;
82
+ };