| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92 | 2×
2×
2×
2×
2×
2×
2×
2×
50×
50×
50×
25×
25×
25×
25×
25×
25×
25×
2×
| var ArbitraryHtmlAndMath, LoadableItem, Question, React, ReferenceBookExercise, ReferenceBookExerciseActions, ReferenceBookExerciseShell, ReferenceBookExerciseStore, ReferenceBookMissingExercise, ref, ref1;
React = require('react');
ref = require('../../flux/reference-book-exercise'), ReferenceBookExerciseActions = ref.ReferenceBookExerciseActions, ReferenceBookExerciseStore = ref.ReferenceBookExerciseStore;
LoadableItem = require('../loadable-item');
ref1 = require('openstax-react-components'), ArbitraryHtmlAndMath = ref1.ArbitraryHtmlAndMath, Question = ref1.Question;
ReferenceBookMissingExercise = React.createClass({
displayName: 'ReferenceBookMissingExercise',
render: function() {
var exerciseAPIUrl;
exerciseAPIUrl = this.props.exerciseAPIUrl;
return React.createElement("small", {
"className": 'reference-book-missing-exercise',
"data-exercise-url": exerciseAPIUrl
}, React.createElement("i", null, "Missing exercise"));
}
});
ReferenceBookExercise = React.createClass({
displayName: 'ReferenceBookExercise',
render: function() {
var exerciseAPIUrl, items, question, questions, ref2, ref3;
exerciseAPIUrl = this.props.exerciseAPIUrl;
items = ReferenceBookExerciseStore.get(exerciseAPIUrl).items;
if (!((items != null ? items.length : void 0) && ((items != null ? (ref2 = items[0]) != null ? (ref3 = ref2.questions) != null ? ref3[0] : void 0 : void 0 : void 0) != null))) {
console.warn("WARNING: " + exerciseAPIUrl + " appears to be missing.");
return React.createElement(ReferenceBookMissingExercise, {
"exerciseAPIUrl": exerciseAPIUrl
});
}
questions = items[0].questions;
question = questions[0];
return React.createElement(Question, {
"model": question
});
}
});
ReferenceBookExerciseShell = React.createClass({
displayName: 'ReferenceBookExerciseShell',
isLoading: function() {
var exerciseAPIUrl;
exerciseAPIUrl = this.props.exerciseAPIUrl;
return ReferenceBookExerciseStore.isLoading(exerciseAPIUrl) || ReferenceBookExerciseStore.isQueued(exerciseAPIUrl);
},
load: function() {
var exerciseAPIUrl;
exerciseAPIUrl = this.props.exerciseAPIUrl;
Iif (!this.isLoading()) {
return ReferenceBookExerciseActions.load(exerciseAPIUrl);
}
},
renderExercise: function() {
var exerciseHtml;
exerciseHtml = React.renderToStaticMarkup(React.createElement(ReferenceBookExercise, React.__spread({}, this.props)));
return React.createElement(ArbitraryHtmlAndMath, {
"html": exerciseHtml
});
},
render: function() {
var exerciseAPIUrl;
exerciseAPIUrl = this.props.exerciseAPIUrl;
return React.createElement(LoadableItem, {
"id": exerciseAPIUrl,
"bindEvent": "loaded." + exerciseAPIUrl,
"isLoading": this.isLoading,
"load": this.load,
"store": ReferenceBookExerciseStore,
"actions": ReferenceBookExerciseActions,
"renderItem": this.renderExercise,
"renderLoading": (function() {
return React.createElement("span", {
"className": 'loading-exercise'
}, "Loading exercise...");
}),
"renderError": (function() {
return React.createElement(ReferenceBookMissingExercise, null);
})
});
}
});
module.exports = {
ReferenceBookExercise: ReferenceBookExercise,
ReferenceBookExerciseShell: ReferenceBookExerciseShell
};
|