@khanacademy/perseus 7.2.1 → 9.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +47 -0
- package/dist/article-renderer.d.ts +27 -40
- package/dist/components/math-input.d.ts +1 -1
- package/dist/components/sortable.d.ts +1 -1
- package/dist/components/tex-buttons.d.ts +1 -1
- package/dist/dependencies.d.ts +7 -1
- package/dist/es/index.js +1205 -1218
- package/dist/es/index.js.map +1 -1
- package/dist/hints-renderer.d.ts +1 -1
- package/dist/index.js +1207 -1221
- package/dist/index.js.map +1 -1
- package/dist/interaction-tracker.d.ts +3 -3
- package/dist/item-renderer.d.ts +2 -1
- package/dist/mixins/provide-keypad.d.ts +15 -12
- package/dist/multi-items/multi-renderer.d.ts +2 -1
- package/dist/perseus-api.d.ts +2 -2
- package/dist/renderer.d.ts +1 -1
- package/dist/server-item-renderer.d.ts +3 -1
- package/dist/types.d.ts +32 -11
- package/dist/widgets/expression.d.ts +410 -13
- package/dist/widgets/graded-group.d.ts +3 -3
- package/dist/widgets/interactive-graph.d.ts +1 -1
- package/dist/widgets/sequence.d.ts +3 -3
- package/dist/widgets/table.d.ts +8 -1
- package/dist/widgets.d.ts +1 -1
- package/package.json +34 -34
- package/src/__stories__/article-renderer.stories.tsx +35 -2
- package/src/__testdata__/article-renderer.testdata.ts +74 -1
- package/src/__testdata__/item-renderer.testdata.ts +1 -1
- package/src/__testdata__/renderer.testdata.ts +1 -1
- package/src/__tests__/item-renderer.test.tsx +13 -2
- package/src/__tests__/mock-asset-loading-widget.tsx +1 -1
- package/src/__tests__/perseus-markdown.test.ts +17 -17
- package/src/__tests__/renderer-api.test.tsx +21 -21
- package/src/__tests__/renderer.test.tsx +13 -13
- package/src/__tests__/server-item-renderer.test.tsx +12 -4
- package/src/__tests__/tex-wrangler.test.ts +1 -1
- package/src/article-renderer.tsx +75 -66
- package/src/components/__tests__/number-input.test.tsx +4 -4
- package/src/components/__tests__/sortable.test.tsx +2 -2
- package/src/components/fixed-to-responsive.tsx +1 -1
- package/src/components/graph.tsx +11 -11
- package/src/components/graphie-classes.ts +7 -7
- package/src/components/graphie.tsx +14 -14
- package/src/components/highlighting/highlightable-content.tsx +1 -1
- package/src/components/highlighting/ui/highlight-renderer.tsx +1 -1
- package/src/components/highlighting/ui/util.ts +2 -2
- package/src/components/highlighting/word-indexer.tsx +4 -4
- package/src/components/icon.tsx +1 -1
- package/src/components/image-loader.tsx +4 -4
- package/src/components/input-with-examples.tsx +2 -2
- package/src/components/lint.tsx +1 -1
- package/src/components/math-input.tsx +5 -5
- package/src/components/math-output.tsx +1 -1
- package/src/components/multi-button-group.tsx +1 -1
- package/src/components/number-input.tsx +10 -10
- package/src/components/prop-check-box.tsx +1 -1
- package/src/components/simple-keypad-input.tsx +4 -4
- package/src/components/sortable.tsx +42 -41
- package/src/components/svg-image.tsx +12 -12
- package/src/components/tex-buttons.tsx +4 -3
- package/src/components/text-input.tsx +8 -8
- package/src/components/text-list-editor.tsx +11 -11
- package/src/components/visibility-observer/create-visibility-observer.ts +1 -1
- package/src/components/visibility-observer/visibility-observer.tsx +2 -2
- package/src/components/zoomable-tex.tsx +3 -3
- package/src/components/zoomable.tsx +8 -8
- package/src/dependencies.ts +16 -1
- package/src/hint-renderer.tsx +3 -3
- package/src/hints-renderer.tsx +11 -11
- package/src/init.ts +1 -1
- package/src/interaction-tracker.ts +7 -7
- package/src/interactive2/__tests__/movable-point.test.ts +1 -1
- package/src/interactive2/interactive-util.ts +6 -6
- package/src/interactive2/movable-helper-methods.ts +2 -2
- package/src/interactive2/movable-line-options.ts +37 -37
- package/src/interactive2/movable-line.ts +2 -2
- package/src/interactive2/movable-point-options.ts +29 -29
- package/src/interactive2/movable-point.tsx +2 -2
- package/src/interactive2/movable-polygon-options.ts +45 -45
- package/src/interactive2/movable-polygon.ts +2 -2
- package/src/interactive2/movable.ts +2 -2
- package/src/interactive2/objective_.ts +1 -1
- package/src/interactive2/wrapped-defaults.ts +2 -2
- package/src/interactive2/wrapped-ellipse.ts +9 -9
- package/src/interactive2/wrapped-line.ts +8 -8
- package/src/interactive2/wrapped-path.ts +5 -5
- package/src/item-renderer.tsx +66 -48
- package/src/mixins/changeable.ts +2 -2
- package/src/mixins/editor-jsonify.ts +1 -1
- package/src/mixins/provide-keypad.tsx +23 -37
- package/src/mixins/widget-jsonify-deprecated.ts +1 -1
- package/src/multi-items/__tests__/items.test.ts +1 -1
- package/src/multi-items/__tests__/multi-renderer.test.tsx +13 -8
- package/src/multi-items/__tests__/trees.test.ts +12 -12
- package/src/multi-items/item-types.ts +2 -2
- package/src/multi-items/items.ts +1 -1
- package/src/multi-items/multi-renderer.tsx +30 -18
- package/src/multi-items/prop-type-builders.ts +2 -2
- package/src/multi-items/tree-types.ts +4 -4
- package/src/multi-items/trees.ts +16 -16
- package/src/perseus-env.ts +2 -2
- package/src/perseus-markdown.tsx +5 -5
- package/src/renderer.tsx +39 -39
- package/src/server-item-renderer.tsx +26 -21
- package/src/sigfigs.ts +1 -1
- package/src/traversal.ts +1 -1
- package/src/types.ts +52 -16
- package/src/util/answer-types.ts +14 -14
- package/src/util/geometry.ts +7 -7
- package/src/util/graphie.ts +32 -32
- package/src/util/interactive.ts +118 -118
- package/src/util/math.ts +4 -4
- package/src/util/react-render.tsx +1 -1
- package/src/util/scroll-utils.ts +2 -2
- package/src/util/tex.ts +3 -3
- package/src/util.ts +15 -15
- package/src/widget-container.tsx +1 -1
- package/src/widgets/__stories__/definition.stories.tsx +8 -1
- package/src/widgets/__stories__/expression.stories.tsx +2 -2
- package/src/widgets/__stories__/test-keypad-context-wrapper.tsx +3 -3
- package/src/widgets/__testdata__/numeric-input.testdata.ts +1 -1
- package/src/widgets/__tests__/__snapshots__/video.test.ts.snap +2 -2
- package/src/widgets/__tests__/{expression.test.ts → expression.test.tsx} +77 -11
- package/src/widgets/__tests__/grapher.cypress.ts +32 -32
- package/src/widgets/__tests__/group.test.tsx +1 -1
- package/src/widgets/__tests__/interactive-graph.cypress.ts +40 -40
- package/src/widgets/__tests__/interactive-graph.test.ts +1 -1
- package/src/widgets/__tests__/numeric-input.test.ts +1 -1
- package/src/widgets/__tests__/passage.test.tsx +2 -2
- package/src/widgets/__tests__/plotter.test.tsx +2 -1
- package/src/widgets/__tests__/radio/base-radio.test.tsx +7 -7
- package/src/widgets/__tests__/renderQuestion.tsx +29 -21
- package/src/widgets/categorizer.tsx +4 -4
- package/src/widgets/cs-program.tsx +2 -2
- package/src/widgets/dropdown.tsx +1 -1
- package/src/widgets/expression.tsx +92 -57
- package/src/widgets/graded-group-set.tsx +5 -5
- package/src/widgets/graded-group.tsx +29 -21
- package/src/widgets/grapher/util.tsx +6 -6
- package/src/widgets/grapher.tsx +10 -10
- package/src/widgets/group.tsx +3 -3
- package/src/widgets/iframe.tsx +2 -2
- package/src/widgets/image.tsx +1 -1
- package/src/widgets/input-number.tsx +4 -4
- package/src/widgets/interaction.tsx +77 -77
- package/src/widgets/interactive-graph.tsx +109 -107
- package/src/widgets/label-image/marker.tsx +2 -2
- package/src/widgets/label-image.test.ts +1 -1
- package/src/widgets/label-image.tsx +7 -7
- package/src/widgets/lights-puzzle.tsx +2 -2
- package/src/widgets/matcher.tsx +6 -6
- package/src/widgets/matrix.tsx +20 -20
- package/src/widgets/measurer.tsx +3 -3
- package/src/widgets/molecule/__tests__/layout.test.ts +4 -4
- package/src/widgets/molecule/__tests__/parser.test.ts +14 -14
- package/src/widgets/molecule/smiles-parser.ts +3 -3
- package/src/widgets/molecule.tsx +4 -4
- package/src/widgets/number-line.tsx +11 -11
- package/src/widgets/numeric-input.tsx +11 -11
- package/src/widgets/orderer.tsx +38 -38
- package/src/widgets/passage/__tests__/passage-markdown.test.ts +1 -1
- package/src/widgets/passage/passage-markdown.tsx +4 -4
- package/src/widgets/passage-ref-target.tsx +1 -1
- package/src/widgets/passage-ref.tsx +4 -6
- package/src/widgets/passage.tsx +11 -11
- package/src/widgets/plotter.tsx +9 -9
- package/src/widgets/radio/base-radio.tsx +11 -11
- package/src/widgets/radio/choice-icon/choice-icon.tsx +2 -2
- package/src/widgets/radio/choice.tsx +1 -1
- package/src/widgets/radio/option-status.tsx +1 -1
- package/src/widgets/radio/widget.tsx +6 -6
- package/src/widgets/radio.ts +1 -1
- package/src/widgets/reaction-diagram.tsx +8 -8
- package/src/widgets/sequence.tsx +12 -4
- package/src/widgets/simulator.tsx +14 -14
- package/src/widgets/sorter.tsx +4 -4
- package/src/widgets/table.tsx +8 -8
- package/src/widgets/transformer.tsx +92 -92
- package/src/widgets/unit.tsx +17 -17
- package/src/widgets/video-transcript-link.test.tsx +3 -3
- package/src/widgets/video-transcript-link.tsx +1 -1
- package/src/widgets/video.tsx +1 -1
- package/src/widgets.ts +5 -5
- package/src/zoom.ts +22 -22
- package/tsconfig-build.tsbuildinfo +1 -1
- package/dist/a11y.js.flow +0 -11
- package/dist/all-widgets.js.flow +0 -33
- package/dist/article-renderer.js.flow +0 -73
- package/dist/asset-context.js.flow +0 -15
- package/dist/basic-widgets.js.flow +0 -33
- package/dist/components/button-group.js.flow +0 -33
- package/dist/components/constants.js.flow +0 -13
- package/dist/components/fixed-to-responsive.js.flow +0 -34
- package/dist/components/graph.js.flow +0 -66
- package/dist/components/graphie-classes.js.flow +0 -19
- package/dist/components/graphie-movables.js.flow +0 -22
- package/dist/components/graphie.js.flow +0 -69
- package/dist/components/highlighting/highlightable-content.js.flow +0 -56
- package/dist/components/highlighting/highlights.js.flow +0 -54
- package/dist/components/highlighting/ranges.js.flow +0 -60
- package/dist/components/highlighting/types.js.flow +0 -70
- package/dist/components/highlighting/ui/highlight-renderer.js.flow +0 -43
- package/dist/components/highlighting/ui/highlight-set-renderer.js.flow +0 -41
- package/dist/components/highlighting/ui/highlight-tooltip.js.flow +0 -22
- package/dist/components/highlighting/ui/highlighting-ui.js.flow +0 -30
- package/dist/components/highlighting/ui/selection-tracker.js.flow +0 -54
- package/dist/components/highlighting/ui/types.js.flow +0 -22
- package/dist/components/highlighting/ui/util.js.flow +0 -42
- package/dist/components/highlighting/word-indexer.js.flow +0 -21
- package/dist/components/hud.js.flow +0 -14
- package/dist/components/icon.js.flow +0 -31
- package/dist/components/image-loader.js.flow +0 -49
- package/dist/components/info-tip/info-tip.js.flow +0 -20
- package/dist/components/info-tip.js.flow +0 -18
- package/dist/components/inline-icon.js.flow +0 -39
- package/dist/components/input-with-examples.js.flow +0 -58
- package/dist/components/lint.js.flow +0 -58
- package/dist/components/math-input.js.flow +0 -49
- package/dist/components/math-output.js.flow +0 -33
- package/dist/components/multi-button-group.js.flow +0 -35
- package/dist/components/number-input.js.flow +0 -42
- package/dist/components/prop-check-box.js.flow +0 -8
- package/dist/components/range-input.js.flow +0 -20
- package/dist/components/simple-keypad-input.js.flow +0 -16
- package/dist/components/sortable.js.flow +0 -91
- package/dist/components/stub-tag-editor.js.flow +0 -18
- package/dist/components/svg-image.js.flow +0 -85
- package/dist/components/tex-buttons.js.flow +0 -26
- package/dist/components/tex.js.flow +0 -25
- package/dist/components/text-input.js.flow +0 -39
- package/dist/components/text-list-editor.js.flow +0 -22
- package/dist/components/tooltip.js.flow +0 -51
- package/dist/components/visibility-observer/create-visibility-observer.js.flow +0 -23
- package/dist/components/visibility-observer/get-scroll-parent.js.flow +0 -7
- package/dist/components/visibility-observer/visibility-observer.js.flow +0 -36
- package/dist/components/zoomable-tex.js.flow +0 -18
- package/dist/components/zoomable.js.flow +0 -70
- package/dist/components.js.flow +0 -22
- package/dist/definition-context.js.flow +0 -25
- package/dist/dependencies.js.flow +0 -9
- package/dist/error-boundary.js.flow +0 -19
- package/dist/extra-widgets.js.flow +0 -33
- package/dist/hint-renderer.js.flow +0 -32
- package/dist/hints-renderer.js.flow +0 -41
- package/dist/icon-paths.js.flow +0 -123
- package/dist/index.js.flow +0 -134
- package/dist/init.js.flow +0 -20
- package/dist/interaction-tracker.js.flow +0 -35
- package/dist/interactive2/interactive-util.js.flow +0 -50
- package/dist/interactive2/movable-helper-methods.js.flow +0 -15
- package/dist/interactive2/movable-line-options.js.flow +0 -44
- package/dist/interactive2/movable-line.js.flow +0 -8
- package/dist/interactive2/movable-point-options.js.flow +0 -44
- package/dist/interactive2/movable-point.js.flow +0 -8
- package/dist/interactive2/movable-polygon-options.js.flow +0 -47
- package/dist/interactive2/movable-polygon.js.flow +0 -8
- package/dist/interactive2/movable.js.flow +0 -8
- package/dist/interactive2/objective_.js.flow +0 -25
- package/dist/interactive2/types.js.flow +0 -8
- package/dist/interactive2/wrapped-defaults.js.flow +0 -11
- package/dist/interactive2/wrapped-ellipse.js.flow +0 -14
- package/dist/interactive2/wrapped-line.js.flow +0 -14
- package/dist/interactive2/wrapped-path.js.flow +0 -13
- package/dist/interactive2.js.flow +0 -16
- package/dist/item-renderer.js.flow +0 -132
- package/dist/item-version.js.flow +0 -11
- package/dist/jipt-paragraphs.js.flow +0 -14
- package/dist/loading-context.js.flow +0 -12
- package/dist/logging/log.js.flow +0 -62
- package/dist/mixins/changeable.js.flow +0 -33
- package/dist/mixins/editor-jsonify.js.flow +0 -10
- package/dist/mixins/provide-keypad.js.flow +0 -33
- package/dist/mixins/widget-jsonify-deprecated.js.flow +0 -11
- package/dist/mixins/widget-prop-denylist.js.flow +0 -20
- package/dist/multi-items/item-types.js.flow +0 -55
- package/dist/multi-items/items.js.flow +0 -66
- package/dist/multi-items/multi-renderer.js.flow +0 -213
- package/dist/multi-items/prop-type-builders.js.flow +0 -22
- package/dist/multi-items/shape-types.js.flow +0 -60
- package/dist/multi-items/shapes.js.flow +0 -25
- package/dist/multi-items/tree-types.js.flow +0 -45
- package/dist/multi-items/trees.js.flow +0 -147
- package/dist/multi-items.js.flow +0 -36
- package/dist/perseus-api.js.flow +0 -151
- package/dist/perseus-env.js.flow +0 -6
- package/dist/perseus-error.js.flow +0 -16
- package/dist/perseus-markdown.js.flow +0 -20
- package/dist/perseus-types.js.flow +0 -1041
- package/dist/question-paragraph.js.flow +0 -17
- package/dist/renderability.js.flow +0 -19
- package/dist/renderer.js.flow +0 -325
- package/dist/server-item-renderer.js.flow +0 -132
- package/dist/sigfigs.js.flow +0 -41
- package/dist/styles/constants.js.flow +0 -62
- package/dist/styles/global-constants.js.flow +0 -348
- package/dist/styles/global-styles.js.flow +0 -53
- package/dist/styles/media-queries.js.flow +0 -35
- package/dist/styles/shared.js.flow +0 -8
- package/dist/tex-wrangler.js.flow +0 -13
- package/dist/translation-linter.js.flow +0 -32
- package/dist/traversal.js.flow +0 -26
- package/dist/types.js.flow +0 -318
- package/dist/util/a11y.js.flow +0 -8
- package/dist/util/answer-types.js.flow +0 -49
- package/dist/util/colors.js.flow +0 -95
- package/dist/util/fix-passage-refs.js.flow +0 -8
- package/dist/util/geometry.js.flow +0 -37
- package/dist/util/graph-utils.js.flow +0 -9
- package/dist/util/graphie.js.flow +0 -8
- package/dist/util/interactive.js.flow +0 -11
- package/dist/util/katex-preprocess.js.flow +0 -12
- package/dist/util/math.js.flow +0 -62
- package/dist/util/mobile-native-utils.js.flow +0 -12
- package/dist/util/react-render.js.flow +0 -12
- package/dist/util/register-all-widgets-for-testing.js.flow +0 -7
- package/dist/util/scroll-utils.js.flow +0 -19
- package/dist/util/sizing-utils.js.flow +0 -20
- package/dist/util/tex.js.flow +0 -17
- package/dist/util/url-utils.js.flow +0 -11
- package/dist/util.graphie.js.flow +0 -14
- package/dist/util.js.flow +0 -319
- package/dist/version.js.flow +0 -17
- package/dist/widget-container.js.flow +0 -33
- package/dist/widgets/categorizer.js.flow +0 -70
- package/dist/widgets/cs-program.js.flow +0 -54
- package/dist/widgets/definition.js.flow +0 -57
- package/dist/widgets/dropdown.js.flow +0 -63
- package/dist/widgets/explanation.js.flow +0 -58
- package/dist/widgets/expression.js.flow +0 -116
- package/dist/widgets/graded-group-answer-bar.js.flow +0 -24
- package/dist/widgets/graded-group-set.js.flow +0 -65
- package/dist/widgets/graded-group.js.flow +0 -78
- package/dist/widgets/grapher/util.js.flow +0 -38
- package/dist/widgets/grapher.js.flow +0 -102
- package/dist/widgets/group.js.flow +0 -60
- package/dist/widgets/iframe.js.flow +0 -53
- package/dist/widgets/image.js.flow +0 -73
- package/dist/widgets/input-number.js.flow +0 -94
- package/dist/widgets/interaction/arrow-picker.js.flow +0 -21
- package/dist/widgets/interaction/color-picker.js.flow +0 -23
- package/dist/widgets/interaction/dash-picker.js.flow +0 -21
- package/dist/widgets/interaction/element-container.js.flow +0 -28
- package/dist/widgets/interaction.js.flow +0 -60
- package/dist/widgets/interactive-graph.js.flow +0 -239
- package/dist/widgets/label-image/answer-choices.js.flow +0 -55
- package/dist/widgets/label-image/marker.js.flow +0 -31
- package/dist/widgets/label-image/types.js.flow +0 -23
- package/dist/widgets/label-image.js.flow +0 -142
- package/dist/widgets/lights-puzzle.js.flow +0 -58
- package/dist/widgets/matcher.js.flow +0 -106
- package/dist/widgets/matrix.js.flow +0 -80
- package/dist/widgets/measurer.js.flow +0 -30
- package/dist/widgets/molecule/molecule-drawing.js.flow +0 -11
- package/dist/widgets/molecule/molecule-layout.js.flow +0 -96
- package/dist/widgets/molecule/smiles-parser.js.flow +0 -26
- package/dist/widgets/molecule.js.flow +0 -60
- package/dist/widgets/number-line.js.flow +0 -102
- package/dist/widgets/numeric-input.js.flow +0 -105
- package/dist/widgets/orderer.js.flow +0 -81
- package/dist/widgets/passage/passage-markdown.js.flow +0 -33
- package/dist/widgets/passage-ref-target.js.flow +0 -52
- package/dist/widgets/passage-ref.js.flow +0 -85
- package/dist/widgets/passage.js.flow +0 -157
- package/dist/widgets/plotter.js.flow +0 -112
- package/dist/widgets/radio/base-radio.js.flow +0 -50
- package/dist/widgets/radio/choice-a11y-text.js.flow +0 -14
- package/dist/widgets/radio/choice-icon/choice-icon.js.flow +0 -22
- package/dist/widgets/radio/choice-icon/cross-out-line.js.flow +0 -16
- package/dist/widgets/radio/choice-icon/shared-styles.js.flow +0 -11
- package/dist/widgets/radio/choice-none-above.js.flow +0 -16
- package/dist/widgets/radio/choice.js.flow +0 -29
- package/dist/widgets/radio/choice.jsx.fixture.js.flow +0 -7
- package/dist/widgets/radio/focus-ring.js.flow +0 -22
- package/dist/widgets/radio/option-status.js.flow +0 -16
- package/dist/widgets/radio/util.js.flow +0 -12
- package/dist/widgets/radio/widget.js.flow +0 -80
- package/dist/widgets/radio.js.flow +0 -31
- package/dist/widgets/reaction-diagram.js.flow +0 -46
- package/dist/widgets/sequence.js.flow +0 -53
- package/dist/widgets/simulator.js.flow +0 -107
- package/dist/widgets/sorter.js.flow +0 -102
- package/dist/widgets/table.js.flow +0 -67
- package/dist/widgets/transformer.js.flow +0 -127
- package/dist/widgets/unit.js.flow +0 -93
- package/dist/widgets/video-transcript-link.js.flow +0 -15
- package/dist/widgets/video.js.flow +0 -57
- package/dist/widgets.js.flow +0 -108
- package/dist/zoom.js.flow +0 -7
- package/src/multi-items/item-types.js.flow +0 -55
|
@@ -22,12 +22,16 @@ import {
|
|
|
22
22
|
} from "../styles/constants";
|
|
23
23
|
import a11y from "../util/a11y";
|
|
24
24
|
|
|
25
|
-
import GradedGroupAnswerBar
|
|
26
|
-
ANSWER_BAR_STATES,
|
|
27
|
-
} from "./graded-group-answer-bar";
|
|
25
|
+
import GradedGroupAnswerBar from "./graded-group-answer-bar";
|
|
28
26
|
|
|
29
27
|
import type {PerseusGradedGroupWidgetOptions} from "../perseus-types";
|
|
30
|
-
import type {
|
|
28
|
+
import type {
|
|
29
|
+
PerseusScore,
|
|
30
|
+
TrackingGradedGroupExtraArguments,
|
|
31
|
+
WidgetExports,
|
|
32
|
+
WidgetProps,
|
|
33
|
+
} from "../types";
|
|
34
|
+
import type {ANSWER_BAR_STATES} from "./graded-group-answer-bar";
|
|
31
35
|
|
|
32
36
|
const GRADING_STATUSES = {
|
|
33
37
|
ungraded: "ungraded" as const,
|
|
@@ -65,7 +69,11 @@ const DEFAULT_INVALID_MESSAGE =
|
|
|
65
69
|
type Rubric = PerseusGradedGroupWidgetOptions;
|
|
66
70
|
type RenderProps = PerseusGradedGroupWidgetOptions; // exports has no 'transform'
|
|
67
71
|
|
|
68
|
-
type Props = WidgetProps<
|
|
72
|
+
type Props = WidgetProps<
|
|
73
|
+
RenderProps,
|
|
74
|
+
Rubric,
|
|
75
|
+
TrackingGradedGroupExtraArguments
|
|
76
|
+
> & {
|
|
69
77
|
inGradedGroupSet?: boolean; // Set by graded-group-set.jsx,
|
|
70
78
|
onNextQuestion?: () => unknown; // Set by graded-group-set.jsx
|
|
71
79
|
};
|
|
@@ -114,7 +122,7 @@ export class GradedGroup extends React.Component<Props, State> {
|
|
|
114
122
|
}
|
|
115
123
|
|
|
116
124
|
change: (...args: ReadonlyArray<unknown>) => any = (...args) => {
|
|
117
|
-
// @ts-expect-error
|
|
125
|
+
// @ts-expect-error - TS2345 - Argument of type 'readonly unknown[]' is not assignable to parameter of type 'any[]'.
|
|
118
126
|
return Changeable.change.apply(this, args);
|
|
119
127
|
};
|
|
120
128
|
|
|
@@ -134,7 +142,7 @@ export class GradedGroup extends React.Component<Props, State> {
|
|
|
134
142
|
if (this.refs.renderer) {
|
|
135
143
|
this.change("widgets", this.props.widgets);
|
|
136
144
|
// eslint-disable-next-line react/no-string-refs
|
|
137
|
-
// @ts-expect-error
|
|
145
|
+
// @ts-expect-error - TS2339 - Property 'emptyWidgets' does not exist on type 'ReactInstance'.
|
|
138
146
|
const emptyWidgets = this.refs.renderer.emptyWidgets();
|
|
139
147
|
const answerable = emptyWidgets.length === 0;
|
|
140
148
|
const answerBarState = this.state.answerBarState;
|
|
@@ -146,10 +154,10 @@ export class GradedGroup extends React.Component<Props, State> {
|
|
|
146
154
|
|
|
147
155
|
_checkAnswer: () => void = () => {
|
|
148
156
|
// eslint-disable-next-line react/no-string-refs
|
|
149
|
-
// @ts-expect-error
|
|
157
|
+
// @ts-expect-error - TS2339 - Property 'showRationalesForCurrentlySelectedChoices' does not exist on type 'ReactInstance'.
|
|
150
158
|
this.refs.renderer.showRationalesForCurrentlySelectedChoices();
|
|
151
159
|
// eslint-disable-next-line react/no-string-refs
|
|
152
|
-
// @ts-expect-error
|
|
160
|
+
// @ts-expect-error - TS2339 - Property 'score' does not exist on type 'ReactInstance'.
|
|
153
161
|
const score: PerseusScore = this.refs.renderer.score();
|
|
154
162
|
|
|
155
163
|
const status =
|
|
@@ -180,7 +188,7 @@ export class GradedGroup extends React.Component<Props, State> {
|
|
|
180
188
|
// Mobile API
|
|
181
189
|
getInputPaths: () => ReadonlyArray<ReadonlyArray<string>> = () => {
|
|
182
190
|
// eslint-disable-next-line react/no-string-refs
|
|
183
|
-
// @ts-expect-error
|
|
191
|
+
// @ts-expect-error - TS2339 - Property 'getInputPaths' does not exist on type 'ReactInstance'.
|
|
184
192
|
return this.refs.renderer.getInputPaths();
|
|
185
193
|
};
|
|
186
194
|
|
|
@@ -190,25 +198,25 @@ export class GradedGroup extends React.Component<Props, State> {
|
|
|
190
198
|
cb,
|
|
191
199
|
) => {
|
|
192
200
|
// eslint-disable-next-line react/no-string-refs
|
|
193
|
-
// @ts-expect-error
|
|
201
|
+
// @ts-expect-error - TS2339 - Property 'setInputValue' does not exist on type 'ReactInstance'.
|
|
194
202
|
return this.refs.renderer.setInputValue(path, newValue, cb);
|
|
195
203
|
};
|
|
196
204
|
|
|
197
205
|
focus: () => boolean = () => {
|
|
198
206
|
// eslint-disable-next-line react/no-string-refs
|
|
199
|
-
// @ts-expect-error
|
|
207
|
+
// @ts-expect-error - TS2339 - Property 'focus' does not exist on type 'ReactInstance'.
|
|
200
208
|
return this.refs.renderer.focus();
|
|
201
209
|
};
|
|
202
210
|
|
|
203
211
|
focusInputPath: (arg1: any) => void = (path) => {
|
|
204
212
|
// eslint-disable-next-line react/no-string-refs
|
|
205
|
-
// @ts-expect-error
|
|
213
|
+
// @ts-expect-error - TS2339 - Property 'focusPath' does not exist on type 'ReactInstance'.
|
|
206
214
|
this.refs.renderer.focusPath(path);
|
|
207
215
|
};
|
|
208
216
|
|
|
209
217
|
blurInputPath: (arg1: any) => void = (path) => {
|
|
210
218
|
// eslint-disable-next-line react/no-string-refs
|
|
211
|
-
// @ts-expect-error
|
|
219
|
+
// @ts-expect-error - TS2339 - Property 'blurPath' does not exist on type 'ReactInstance'.
|
|
212
220
|
this.refs.renderer.blurPath(path);
|
|
213
221
|
};
|
|
214
222
|
|
|
@@ -236,15 +244,15 @@ export class GradedGroup extends React.Component<Props, State> {
|
|
|
236
244
|
// Colors are 10% darker than the colors in graded-group.less
|
|
237
245
|
if (this.state.status === GRADING_STATUSES.correct) {
|
|
238
246
|
// TODO(jeremy): update to a WB colour
|
|
239
|
-
// @ts-expect-error
|
|
247
|
+
// @ts-expect-error - TS2322 - Type 'Element' is not assignable to type 'null'.
|
|
240
248
|
icon = <InlineIcon {...iconOk} style={{color: "#526f03"}} />;
|
|
241
|
-
// @ts-expect-error
|
|
249
|
+
// @ts-expect-error - TS2322 - Type 'string' is not assignable to type 'null'.
|
|
242
250
|
gradeStatus = i18n._("Correct");
|
|
243
251
|
} else if (this.state.status === GRADING_STATUSES.incorrect) {
|
|
244
252
|
// TODO(jeremy): update to a WB colour
|
|
245
|
-
// @ts-expect-error
|
|
253
|
+
// @ts-expect-error - TS2322 - Type 'Element' is not assignable to type 'null'.
|
|
246
254
|
icon = <InlineIcon {...iconRemove} style={{color: "#ff5454"}} />;
|
|
247
|
-
// @ts-expect-error
|
|
255
|
+
// @ts-expect-error - TS2322 - Type 'string' is not assignable to type 'null'.
|
|
248
256
|
gradeStatus = i18n._("Incorrect");
|
|
249
257
|
}
|
|
250
258
|
|
|
@@ -283,7 +291,7 @@ export class GradedGroup extends React.Component<Props, State> {
|
|
|
283
291
|
* props that are needed.
|
|
284
292
|
* TODO(FEI-4034): Only pass what the Renderer expects.
|
|
285
293
|
*/}
|
|
286
|
-
{/* @ts-expect-error
|
|
294
|
+
{/* @ts-expect-error - TS2322 - Type '{ ref: string; apiOptions: any; onInteractWithWidget: (arg1: string) => void; linterContext: LinterContextProps; title: string; hasHint?: boolean | null | undefined; ... 22 more ...; children?: ReactNode; }' is not assignable to type 'Pick<Readonly<Props> & Readonly<{ children?: ReactNode; }>, "children" | "keypadElement" | "problemNum" | "apiOptions" | "legacyPerseusLint">'. */}
|
|
287
295
|
<Renderer
|
|
288
296
|
{...this.props}
|
|
289
297
|
// eslint-disable-next-line react/no-string-refs
|
|
@@ -337,7 +345,7 @@ export class GradedGroup extends React.Component<Props, State> {
|
|
|
337
345
|
<div>
|
|
338
346
|
{/* Not using Button here bc the styles won't work. */}
|
|
339
347
|
<button
|
|
340
|
-
// @ts-expect-error
|
|
348
|
+
// @ts-expect-error - TS2322 - Type 'string' is not assignable to type 'number | undefined'.
|
|
341
349
|
tabIndex="0"
|
|
342
350
|
className={css(styles.explanationTitle)}
|
|
343
351
|
onClick={() => this.setState({showHint: false})}
|
|
@@ -364,7 +372,7 @@ export class GradedGroup extends React.Component<Props, State> {
|
|
|
364
372
|
) : (
|
|
365
373
|
// Not using Button here bc the styles won't work.
|
|
366
374
|
<button
|
|
367
|
-
// @ts-expect-error
|
|
375
|
+
// @ts-expect-error - TS2322 - Type 'string' is not assignable to type 'number | undefined'.
|
|
368
376
|
tabIndex="0"
|
|
369
377
|
onClick={() => this.setState({showHint: true})}
|
|
370
378
|
onKeyPress={(e) => {
|
|
@@ -10,7 +10,7 @@ import Util from "../../util";
|
|
|
10
10
|
import type {Coord} from "../../interactive2/types";
|
|
11
11
|
import type {PerseusScore} from "../../types";
|
|
12
12
|
|
|
13
|
-
// @ts-expect-error
|
|
13
|
+
// @ts-expect-error - TS2339 - Property 'Plot' does not exist on type 'typeof Graphie'.
|
|
14
14
|
const Plot = Graphie.Plot;
|
|
15
15
|
|
|
16
16
|
export const DEFAULT_BACKGROUND_IMAGE = {
|
|
@@ -98,7 +98,7 @@ const PlotDefaults = {
|
|
|
98
98
|
|
|
99
99
|
getPropsForCoeffs: function (coeffs) {
|
|
100
100
|
return {
|
|
101
|
-
// @ts-expect-error
|
|
101
|
+
// @ts-expect-error - TS2339 - Property 'getFunctionForCoeffs' does not exist on type '{ readonly areEqual: (coeffs1: any, coeffs2: any) => boolean; readonly Movable: any; readonly getPropsForCoeffs: (coeffs: any) => any; }'.
|
|
102
102
|
fn: _.partial(this.getFunctionForCoeffs, coeffs),
|
|
103
103
|
};
|
|
104
104
|
},
|
|
@@ -149,7 +149,7 @@ const Quadratic = _.extend({}, PlotDefaults, {
|
|
|
149
149
|
[0.5, 0.5],
|
|
150
150
|
[0.75, 0.75],
|
|
151
151
|
],
|
|
152
|
-
// @ts-expect-error
|
|
152
|
+
// @ts-expect-error - TS2339 - Property 'Parabola' does not exist on type 'typeof Graphie'.
|
|
153
153
|
Movable: Graphie.Parabola,
|
|
154
154
|
|
|
155
155
|
getCoefficients: function (coords) {
|
|
@@ -206,7 +206,7 @@ const Sinusoid = _.extend({}, PlotDefaults, {
|
|
|
206
206
|
[0.5, 0.5],
|
|
207
207
|
[0.6, 0.6],
|
|
208
208
|
],
|
|
209
|
-
// @ts-expect-error
|
|
209
|
+
// @ts-expect-error - TS2339 - Property 'Sinusoid' does not exist on type 'typeof Graphie'.
|
|
210
210
|
Movable: Graphie.Sinusoid,
|
|
211
211
|
|
|
212
212
|
getCoefficients: function (coords) {
|
|
@@ -664,7 +664,7 @@ export const pointsFromNormalized = (
|
|
|
664
664
|
return Math.floor((range[1] - range[0]) / step);
|
|
665
665
|
};
|
|
666
666
|
|
|
667
|
-
// @ts-expect-error
|
|
667
|
+
// @ts-expect-error - TS2322 - Type 'number[][]' is not assignable to type 'readonly Coord[]'.
|
|
668
668
|
return coordsList.map((coords) => {
|
|
669
669
|
const unsnappedPoint = coords.map((coord, i) => {
|
|
670
670
|
const currRange = range[i];
|
|
@@ -719,7 +719,7 @@ export const defaultPlotProps = (type: string, graph: any): any => {
|
|
|
719
719
|
// might get a free win.
|
|
720
720
|
const model = functionForType(type);
|
|
721
721
|
const gridStep = [1, 1];
|
|
722
|
-
// @ts-expect-error
|
|
722
|
+
// @ts-expect-error - TS2345 - Argument of type 'number[]' is not assignable to parameter of type '[number, number]'.
|
|
723
723
|
const snapStep = Util.snapStepFromGridStep(gridStep);
|
|
724
724
|
return {
|
|
725
725
|
type,
|
package/src/widgets/grapher.tsx
CHANGED
|
@@ -37,9 +37,9 @@ import type {PerseusGrapherWidgetOptions} from "../perseus-types";
|
|
|
37
37
|
import type {PerseusScore, WidgetExports, WidgetProps} from "../types";
|
|
38
38
|
import type {GridDimensions} from "../util";
|
|
39
39
|
|
|
40
|
-
// @ts-expect-error
|
|
40
|
+
// @ts-expect-error - TS2339 - Property 'MovablePoint' does not exist on type 'typeof Graphie'.
|
|
41
41
|
const MovablePoint = Graphie.MovablePoint;
|
|
42
|
-
// @ts-expect-error
|
|
42
|
+
// @ts-expect-error - TS2339 - Property 'MovableLine' does not exist on type 'typeof Graphie'.
|
|
43
43
|
const MovableLine = Graphie.MovableLine;
|
|
44
44
|
|
|
45
45
|
function isFlipped(newCoord: Coord, oldCoord: Coord, line: Line) {
|
|
@@ -118,9 +118,9 @@ class FunctionGrapher extends React.Component<FunctionGrapherProps> {
|
|
|
118
118
|
coord={coord}
|
|
119
119
|
static={this.props.static}
|
|
120
120
|
constraints={[
|
|
121
|
-
// @ts-expect-error
|
|
121
|
+
// @ts-expect-error - TS2339 - Property 'constraints' does not exist on type '(graphie: any, movable: any, options: any) => void'.
|
|
122
122
|
Interactive2.MovablePoint.constraints.bound(),
|
|
123
|
-
// @ts-expect-error
|
|
123
|
+
// @ts-expect-error - TS2339 - Property 'constraints' does not exist on type '(graphie: any, movable: any, options: any) => void'.
|
|
124
124
|
Interactive2.MovablePoint.constraints.snap(),
|
|
125
125
|
(coord: any) => {
|
|
126
126
|
// Always enforce that this is a function
|
|
@@ -200,9 +200,9 @@ class FunctionGrapher extends React.Component<FunctionGrapherProps> {
|
|
|
200
200
|
let image = null;
|
|
201
201
|
if (imageDescription.url) {
|
|
202
202
|
const scale = box[0] / interactiveSizes.defaultBoxSize;
|
|
203
|
-
// @ts-expect-error
|
|
203
|
+
// @ts-expect-error - TS2322 - Type 'Element' is not assignable to type 'null'.
|
|
204
204
|
image = (
|
|
205
|
-
// @ts-expect-error
|
|
205
|
+
// @ts-expect-error - TS2741 - Property 'alt' is missing in type '{ src: any; width: any; height: any; scale: number; }' but required in type 'Pick<Readonly<Props> & Readonly<{ children?: ReactNode; }>, "children" | "height" | "width" | "title" | "alt" | "trackInteraction" | "preloader" | "allowFullBleed" | "extraGraphie" | "overrideAriaHidden">'.
|
|
206
206
|
<SvgImage
|
|
207
207
|
src={imageDescription.url}
|
|
208
208
|
width={imageDescription.width}
|
|
@@ -291,9 +291,9 @@ class FunctionGrapher extends React.Component<FunctionGrapherProps> {
|
|
|
291
291
|
});
|
|
292
292
|
}}
|
|
293
293
|
constraints={[
|
|
294
|
-
// @ts-expect-error
|
|
294
|
+
// @ts-expect-error - TS2339 - Property 'constraints' does not exist on type '(graphie: any, movable: any, options: any) => void'.
|
|
295
295
|
Interactive2.MovableLine.constraints.bound(),
|
|
296
|
-
// @ts-expect-error
|
|
296
|
+
// @ts-expect-error - TS2339 - Property 'constraints' does not exist on type '(graphie: any, movable: any, options: any) => void'.
|
|
297
297
|
Interactive2.MovableLine.constraints.snap(),
|
|
298
298
|
(newCoord, oldCoord: any) => {
|
|
299
299
|
// Calculate and apply proposed displacement
|
|
@@ -429,7 +429,7 @@ class Grapher extends React.Component<Props> {
|
|
|
429
429
|
|
|
430
430
|
return (
|
|
431
431
|
<div>
|
|
432
|
-
{/* @ts-expect-error
|
|
432
|
+
{/* @ts-expect-error - TS2769 - No overload matches this call. */}
|
|
433
433
|
<FunctionGrapher {...grapherProps} />
|
|
434
434
|
{this.props.availableTypes.length > 1 && typeSelector}
|
|
435
435
|
</div>
|
|
@@ -638,7 +638,7 @@ const propTransform: (arg1: PerseusGrapherWidgetOptions) => RenderProps = (
|
|
|
638
638
|
if (widgetProps.availableTypes.length === 1) {
|
|
639
639
|
const graph = widgetProps.graph;
|
|
640
640
|
const type = chooseType(widgetProps.availableTypes);
|
|
641
|
-
// @ts-expect-error
|
|
641
|
+
// @ts-expect-error - TS2345 - Argument of type 'string | undefined' is not assignable to parameter of type 'string'.
|
|
642
642
|
widgetProps.plot = defaultPlotProps(type, graph);
|
|
643
643
|
}
|
|
644
644
|
|
package/src/widgets/group.tsx
CHANGED
|
@@ -127,7 +127,7 @@ class Group extends React.Component<Props> {
|
|
|
127
127
|
// really we should have a more unidirectional flow. TODO(marcia): fix.
|
|
128
128
|
const groupWidgets: ReadonlyArray<Widget> =
|
|
129
129
|
this.props.findWidgets("group");
|
|
130
|
-
// @ts-expect-error
|
|
130
|
+
// @ts-expect-error - TS2345 - Argument of type 'this' is not assignable to parameter of type 'Widget'.
|
|
131
131
|
const number: number = groupWidgets.indexOf(this);
|
|
132
132
|
const problemNumComponent = this.props.apiOptions.groupAnnotator(
|
|
133
133
|
number,
|
|
@@ -171,9 +171,9 @@ class Group extends React.Component<Props> {
|
|
|
171
171
|
onInteractWithWidget={onInteractWithWidget}
|
|
172
172
|
linterContext={this.props.linterContext}
|
|
173
173
|
/>
|
|
174
|
-
{/* @ts-expect-error
|
|
174
|
+
{/* @ts-expect-error - TS2339 - Property 'icon' does not exist on type 'Readonly<Props> & Readonly<{ children?: ReactNode; }>'. */}
|
|
175
175
|
{this.props.icon && (
|
|
176
|
-
// @ts-expect-error
|
|
176
|
+
// @ts-expect-error - TS2339 - Property 'icon' does not exist on type 'Readonly<Props> & Readonly<{ children?: ReactNode; }>'.
|
|
177
177
|
<div className="group-icon">{this.props.icon}</div>
|
|
178
178
|
)}
|
|
179
179
|
</div>
|
package/src/widgets/iframe.tsx
CHANGED
|
@@ -146,12 +146,12 @@ class Iframe extends React.Component<any> {
|
|
|
146
146
|
}
|
|
147
147
|
|
|
148
148
|
change: (...args: ReadonlyArray<unknown>) => any = (...args) => {
|
|
149
|
-
// @ts-expect-error
|
|
149
|
+
// @ts-expect-error - TS2345 - Argument of type 'readonly unknown[]' is not assignable to parameter of type 'any[]'.
|
|
150
150
|
return Changeable.change.apply(this, args);
|
|
151
151
|
};
|
|
152
152
|
|
|
153
153
|
simpleValidate: (arg1: any) => any = (rubric) => {
|
|
154
|
-
// @ts-expect-error
|
|
154
|
+
// @ts-expect-error - TS2339 - Property 'validate' does not exist on type 'typeof Iframe'.
|
|
155
155
|
return Iframe.validate(this.getUserInput(), rubric);
|
|
156
156
|
};
|
|
157
157
|
}
|
package/src/widgets/image.tsx
CHANGED
|
@@ -204,7 +204,7 @@ class ImageWidget extends React.Component<Props> {
|
|
|
204
204
|
<div
|
|
205
205
|
className={css(styles.caption)}
|
|
206
206
|
style={{
|
|
207
|
-
// @ts-expect-error
|
|
207
|
+
// @ts-expect-error - TS2322 - Type 'string | null' is not assignable to type 'MinWidth<string | number> | undefined'.
|
|
208
208
|
minWidth: minWidth,
|
|
209
209
|
}}
|
|
210
210
|
>
|
|
@@ -217,20 +217,20 @@ class InputNumber extends React.Component<Props> {
|
|
|
217
217
|
|
|
218
218
|
focus: () => boolean = () => {
|
|
219
219
|
// eslint-disable-next-line react/no-string-refs
|
|
220
|
-
// @ts-expect-error
|
|
220
|
+
// @ts-expect-error - TS2339 - Property 'focus' does not exist on type 'ReactInstance'.
|
|
221
221
|
this.refs.input.focus();
|
|
222
222
|
return true;
|
|
223
223
|
};
|
|
224
224
|
|
|
225
225
|
focusInputPath: (arg1: Path) => void = (inputPath) => {
|
|
226
226
|
// eslint-disable-next-line react/no-string-refs
|
|
227
|
-
// @ts-expect-error
|
|
227
|
+
// @ts-expect-error - TS2339 - Property 'focus' does not exist on type 'ReactInstance'.
|
|
228
228
|
this.refs.input.focus();
|
|
229
229
|
};
|
|
230
230
|
|
|
231
231
|
blurInputPath: (arg1: Path) => void = (inputPath) => {
|
|
232
232
|
// eslint-disable-next-line react/no-string-refs
|
|
233
|
-
// @ts-expect-error
|
|
233
|
+
// @ts-expect-error - TS2339 - Property 'blur' does not exist on type 'ReactInstance'.
|
|
234
234
|
this.refs.input.blur();
|
|
235
235
|
};
|
|
236
236
|
|
|
@@ -281,7 +281,7 @@ class InputNumber extends React.Component<Props> {
|
|
|
281
281
|
forms,
|
|
282
282
|
function (form) {
|
|
283
283
|
// eslint-disable-next-line @babel/no-invalid-this
|
|
284
|
-
// @ts-expect-error
|
|
284
|
+
// @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
285
285
|
// eslint-disable-next-line @babel/no-invalid-this
|
|
286
286
|
return formExamples[form](this.props);
|
|
287
287
|
},
|