@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
|
@@ -131,7 +131,7 @@ const BaseRadio = function (props: Props): React.ReactElement {
|
|
|
131
131
|
// note(matthew): we know this is only getting passed
|
|
132
132
|
// to a WB Clickable button, so we force it to be of
|
|
133
133
|
// type HTMLButtonElement
|
|
134
|
-
// @ts-expect-error
|
|
134
|
+
// @ts-expect-error - TS2339 - Property 'current' does not exist on type 'never'.
|
|
135
135
|
const anyNode = ReactDOM.findDOMNode(ref.current) as any;
|
|
136
136
|
const buttonNode = anyNode as
|
|
137
137
|
| HTMLButtonElement
|
|
@@ -143,7 +143,7 @@ const BaseRadio = function (props: Props): React.ReactElement {
|
|
|
143
143
|
}
|
|
144
144
|
}
|
|
145
145
|
|
|
146
|
-
// @ts-expect-error
|
|
146
|
+
// @ts-expect-error - TS2322 - Type 'PerseusRadioWidgetOptions | undefined' is not assignable to type 'undefined'.
|
|
147
147
|
prevReviewModeRubric.current = reviewModeRubric;
|
|
148
148
|
}, [apiOptions, choices, isLastUsedWidget, reviewModeRubric]);
|
|
149
149
|
|
|
@@ -200,7 +200,7 @@ const BaseRadio = function (props: Props): React.ReactElement {
|
|
|
200
200
|
// note(matthew): we know this is only getting passed
|
|
201
201
|
// to a WB Clickable button, so we force it to be of
|
|
202
202
|
// type HTMLButtonElement
|
|
203
|
-
// @ts-expect-error
|
|
203
|
+
// @ts-expect-error - TS2339 - Property 'current' does not exist on type 'never'.
|
|
204
204
|
const anyNode = ReactDOM.findDOMNode(ref.current) as any;
|
|
205
205
|
const buttonNode = anyNode as HTMLButtonElement | null | undefined;
|
|
206
206
|
|
|
@@ -250,16 +250,16 @@ const BaseRadio = function (props: Props): React.ReactElement {
|
|
|
250
250
|
className={`perseus-widget-radio-fieldset ${responsiveClassName}`}
|
|
251
251
|
>
|
|
252
252
|
<legend className="perseus-sr-only">{instructions}</legend>
|
|
253
|
-
{/* @ts-expect-error
|
|
253
|
+
{/* @ts-expect-error - TS2322 - Type 'readonly string[]' is not assignable to type 'string'. */}
|
|
254
254
|
<div className={instructionsClassName} aria-hidden="true">
|
|
255
255
|
{instructions}
|
|
256
256
|
</div>
|
|
257
|
-
{/* @ts-expect-error
|
|
257
|
+
{/* @ts-expect-error - TS2322 - Type 'readonly string[]' is not assignable to type 'string'. */}
|
|
258
258
|
<ul className={className} style={{listStyle: "none"}}>
|
|
259
259
|
{choices.map((choice, i) => {
|
|
260
260
|
let Element = Choice;
|
|
261
261
|
const ref = React.createRef<any>();
|
|
262
|
-
// @ts-expect-error
|
|
262
|
+
// @ts-expect-error - TS2322 - Type 'RefObject<unknown>' is not assignable to type 'never'.
|
|
263
263
|
choiceRefs.current[i] = ref;
|
|
264
264
|
const elementProps = {
|
|
265
265
|
apiOptions: apiOptions,
|
|
@@ -349,7 +349,7 @@ const BaseRadio = function (props: Props): React.ReactElement {
|
|
|
349
349
|
let listElem = null;
|
|
350
350
|
let clickHandler = null;
|
|
351
351
|
if (editMode) {
|
|
352
|
-
// @ts-expect-error
|
|
352
|
+
// @ts-expect-error - TS2322 - Type '(e: any) => void' is not assignable to type 'null'.
|
|
353
353
|
clickHandler = (e: any) => {
|
|
354
354
|
// Traverse the parent nodes of the clicked
|
|
355
355
|
// element.
|
|
@@ -378,13 +378,13 @@ const BaseRadio = function (props: Props): React.ReactElement {
|
|
|
378
378
|
return (
|
|
379
379
|
<li
|
|
380
380
|
key={i}
|
|
381
|
-
// @ts-expect-error
|
|
381
|
+
// @ts-expect-error - TS2322 - Type 'HTMLLIElement | null' is not assignable to type 'null'.
|
|
382
382
|
ref={(e) => (listElem = e)}
|
|
383
|
-
// @ts-expect-error
|
|
383
|
+
// @ts-expect-error - TS2322 - Type 'readonly string[]' is not assignable to type 'string'.
|
|
384
384
|
className={className}
|
|
385
|
-
// @ts-expect-error
|
|
385
|
+
// @ts-expect-error - TS2322 - Type 'null' is not assignable to type 'MouseEventHandler<HTMLLIElement> | undefined'.
|
|
386
386
|
onClick={clickHandler}
|
|
387
|
-
// @ts-expect-error
|
|
387
|
+
// @ts-expect-error - TS2322 - Type '((e: TouchEvent) => void) | null' is not assignable to type 'TouchEventHandler<HTMLLIElement> | undefined'.
|
|
388
388
|
onTouchStart={
|
|
389
389
|
!labelWrap ? null : captureScratchpadTouchStart
|
|
390
390
|
}
|
|
@@ -129,7 +129,7 @@ const ChoiceIcon = function (props: ChoiceIconProps): React.ReactElement {
|
|
|
129
129
|
multipleSelect={multipleSelect}
|
|
130
130
|
>
|
|
131
131
|
<div
|
|
132
|
-
// @ts-expect-error
|
|
132
|
+
// @ts-expect-error - TS2322 - Type '{ backgroundColor: string | null | undefined; borderColor: string; color: string; borderRadius: number; }' is not assignable to type 'Properties<string | number, string & {}>'.
|
|
133
133
|
style={dynamicStyles}
|
|
134
134
|
data-test-id="choice-icon__library-choice-icon"
|
|
135
135
|
className={css(
|
|
@@ -146,7 +146,7 @@ const ChoiceIcon = function (props: ChoiceIconProps): React.ReactElement {
|
|
|
146
146
|
data-is-radio-icon={true}
|
|
147
147
|
>
|
|
148
148
|
<div className={css(styles.innerWrapper)}>
|
|
149
|
-
{/* @ts-expect-error
|
|
149
|
+
{/* @ts-expect-error - TS2786 - 'ChoiceInner' cannot be used as a JSX component. */}
|
|
150
150
|
<ChoiceInner
|
|
151
151
|
pos={pos}
|
|
152
152
|
showCorrectness={showCorrectness}
|
|
@@ -148,7 +148,7 @@ const Choice = function (props: ChoicePropsWithForwardRef): React.ReactElement {
|
|
|
148
148
|
return (
|
|
149
149
|
<div
|
|
150
150
|
style={{
|
|
151
|
-
// @ts-expect-error
|
|
151
|
+
// @ts-expect-error - TS2322 - Type '{ dispay: string; flexDirection: "column"; color: string; }' is not assignable to type 'Properties<string | number, string & {}>'.
|
|
152
152
|
dispay: "flex",
|
|
153
153
|
flexDirection: "column",
|
|
154
154
|
color: Color.offBlack,
|
|
@@ -54,7 +54,7 @@ const OptionStatus = function (props: Props): React.ReactElement {
|
|
|
54
54
|
// Option status is shown only in review mode, or for incorrectly
|
|
55
55
|
// answered items.
|
|
56
56
|
if (!reviewMode && !previouslyAnswered) {
|
|
57
|
-
// @ts-expect-error
|
|
57
|
+
// @ts-expect-error - TS2322 - Type 'null' is not assignable to type 'ReactElement<any, string | JSXElementConstructor<any>>'.
|
|
58
58
|
return null;
|
|
59
59
|
}
|
|
60
60
|
|
|
@@ -54,7 +54,7 @@ export type RadioChoiceWithMetadata = PerseusRadioChoice & {
|
|
|
54
54
|
};
|
|
55
55
|
|
|
56
56
|
class Radio extends React.Component<Props> {
|
|
57
|
-
// @ts-expect-error
|
|
57
|
+
// @ts-expect-error - TS2564 - Property 'focusFunction' has no initializer and is not definitely assigned in the constructor.
|
|
58
58
|
focusFunction: FocusFunction;
|
|
59
59
|
|
|
60
60
|
static defaultProps: DefaultProps = {
|
|
@@ -140,7 +140,7 @@ class Radio extends React.Component<Props> {
|
|
|
140
140
|
choicesSelected[index] = choiceStates[i].selected;
|
|
141
141
|
|
|
142
142
|
if (props.choices[i].isNoneOfTheAbove) {
|
|
143
|
-
// @ts-expect-error
|
|
143
|
+
// @ts-expect-error - TS2322 - Type 'number' is not assignable to type 'null'.
|
|
144
144
|
noneOfTheAboveIndex = index;
|
|
145
145
|
|
|
146
146
|
if (choicesSelected[i]) {
|
|
@@ -174,7 +174,7 @@ class Radio extends React.Component<Props> {
|
|
|
174
174
|
choicesSelected[index] = values[i];
|
|
175
175
|
|
|
176
176
|
if (props.choices[i].isNoneOfTheAbove) {
|
|
177
|
-
// @ts-expect-error
|
|
177
|
+
// @ts-expect-error - TS2322 - Type 'number' is not assignable to type 'null'.
|
|
178
178
|
noneOfTheAboveIndex = index;
|
|
179
179
|
if (choicesSelected[i]) {
|
|
180
180
|
noneOfTheAboveSelected = true;
|
|
@@ -246,7 +246,7 @@ class Radio extends React.Component<Props> {
|
|
|
246
246
|
alwaysUpdate={true}
|
|
247
247
|
linterContext={{
|
|
248
248
|
...this.props.linterContext,
|
|
249
|
-
// @ts-expect-error
|
|
249
|
+
// @ts-expect-error - TS2322 - Type '{ blockHighlight: true; contentType: string; highlightLint: boolean; paths: readonly string[]; stack: readonly string[]; }' is not assignable to type 'LinterContextProps'.
|
|
250
250
|
blockHighlight: true,
|
|
251
251
|
}}
|
|
252
252
|
/>
|
|
@@ -370,7 +370,7 @@ class Radio extends React.Component<Props> {
|
|
|
370
370
|
{
|
|
371
371
|
choiceStates: newStates,
|
|
372
372
|
},
|
|
373
|
-
// @ts-expect-error
|
|
373
|
+
// @ts-expect-error - TS2345 - Argument of type 'null' is not assignable to parameter of type '(() => unknown) | undefined'.
|
|
374
374
|
null, // cb
|
|
375
375
|
true, // silent
|
|
376
376
|
);
|
|
@@ -396,7 +396,7 @@ class Radio extends React.Component<Props> {
|
|
|
396
396
|
{
|
|
397
397
|
choiceStates: newStates,
|
|
398
398
|
},
|
|
399
|
-
// @ts-expect-error
|
|
399
|
+
// @ts-expect-error - TS2345 - Argument of type 'null' is not assignable to parameter of type '(() => unknown) | undefined'.
|
|
400
400
|
null, // cb
|
|
401
401
|
false, // silent
|
|
402
402
|
);
|
package/src/widgets/radio.ts
CHANGED
|
@@ -47,7 +47,7 @@ const _choiceTransform = (
|
|
|
47
47
|
|
|
48
48
|
const newChoices = choices.filter((choice, index) => {
|
|
49
49
|
if (choice.isNoneOfTheAbove) {
|
|
50
|
-
// @ts-expect-error
|
|
50
|
+
// @ts-expect-error - TS2322 - Type 'RadioChoiceWithMetadata' is not assignable to type 'null'.
|
|
51
51
|
noneOfTheAbove = choice;
|
|
52
52
|
return false;
|
|
53
53
|
}
|
|
@@ -26,26 +26,26 @@ class Separator extends React.Component<any> {
|
|
|
26
26
|
drawArrow = () => {
|
|
27
27
|
// eslint-disable-next-line react/no-string-refs
|
|
28
28
|
const canvas = this.refs["arrowCanvas" + this.props.index];
|
|
29
|
-
// @ts-expect-error
|
|
29
|
+
// @ts-expect-error - TS2339 - Property 'getContext' does not exist on type 'ReactInstance'.
|
|
30
30
|
const ctx = canvas.getContext("2d");
|
|
31
|
-
// @ts-expect-error
|
|
31
|
+
// @ts-expect-error - TS2339 - Property 'width' does not exist on type 'ReactInstance'. | TS2339 - Property 'height' does not exist on type 'ReactInstance'.
|
|
32
32
|
ctx.clearRect(0, 0, canvas.width, canvas.height);
|
|
33
33
|
const path = new Path2D();
|
|
34
34
|
ctx.strokeStyle = "rgb(0,0,0)";
|
|
35
35
|
ctx.lineWidth = 1.2;
|
|
36
36
|
ctx.lineCap = "round";
|
|
37
37
|
const offset = 5;
|
|
38
|
-
// @ts-expect-error
|
|
38
|
+
// @ts-expect-error - TS2339 - Property 'height' does not exist on type 'ReactInstance'.
|
|
39
39
|
path.moveTo(offset, canvas.height / 2);
|
|
40
|
-
// @ts-expect-error
|
|
40
|
+
// @ts-expect-error - TS2339 - Property 'width' does not exist on type 'ReactInstance'. | TS2339 - Property 'height' does not exist on type 'ReactInstance'.
|
|
41
41
|
path.lineTo(canvas.width - offset, canvas.height / 2);
|
|
42
|
-
// @ts-expect-error
|
|
42
|
+
// @ts-expect-error - TS2339 - Property 'width' does not exist on type 'ReactInstance'. | TS2339 - Property 'height' does not exist on type 'ReactInstance'.
|
|
43
43
|
path.moveTo(canvas.width - 2 * offset, canvas.height / 2 - offset);
|
|
44
|
-
// @ts-expect-error
|
|
44
|
+
// @ts-expect-error - TS2339 - Property 'width' does not exist on type 'ReactInstance'. | TS2339 - Property 'height' does not exist on type 'ReactInstance'.
|
|
45
45
|
path.lineTo(canvas.width - offset, canvas.height / 2);
|
|
46
|
-
// @ts-expect-error
|
|
46
|
+
// @ts-expect-error - TS2339 - Property 'width' does not exist on type 'ReactInstance'. | TS2339 - Property 'height' does not exist on type 'ReactInstance'.
|
|
47
47
|
path.moveTo(canvas.width - 2 * offset, canvas.height / 2 + offset);
|
|
48
|
-
// @ts-expect-error
|
|
48
|
+
// @ts-expect-error - TS2339 - Property 'width' does not exist on type 'ReactInstance'. | TS2339 - Property 'height' does not exist on type 'ReactInstance'.
|
|
49
49
|
path.lineTo(canvas.width - offset, canvas.height / 2);
|
|
50
50
|
ctx.stroke(path);
|
|
51
51
|
};
|
package/src/widgets/sequence.tsx
CHANGED
|
@@ -5,15 +5,23 @@ import _ from "underscore";
|
|
|
5
5
|
import InlineIcon from "../components/inline-icon";
|
|
6
6
|
import {iconOk} from "../icon-paths";
|
|
7
7
|
import * as Changeable from "../mixins/changeable";
|
|
8
|
-
import {PerseusSequenceWidgetOptions} from "../perseus-types";
|
|
9
8
|
import Renderer from "../renderer";
|
|
10
9
|
import Util from "../util";
|
|
11
10
|
|
|
12
|
-
import type {
|
|
11
|
+
import type {PerseusSequenceWidgetOptions} from "../perseus-types";
|
|
12
|
+
import type {
|
|
13
|
+
TrackingSequenceExtraArguments,
|
|
14
|
+
WidgetExports,
|
|
15
|
+
WidgetProps,
|
|
16
|
+
} from "../types";
|
|
13
17
|
|
|
14
18
|
type Rubric = PerseusSequenceWidgetOptions;
|
|
15
19
|
|
|
16
|
-
type ExternalProps = WidgetProps<
|
|
20
|
+
type ExternalProps = WidgetProps<
|
|
21
|
+
PerseusSequenceWidgetOptions,
|
|
22
|
+
Rubric,
|
|
23
|
+
TrackingSequenceExtraArguments
|
|
24
|
+
>;
|
|
17
25
|
|
|
18
26
|
type Props = ExternalProps;
|
|
19
27
|
|
|
@@ -54,7 +62,7 @@ class Sequence extends React.Component<Props, State> {
|
|
|
54
62
|
const step = parseInt(groupWidgetId.split(" ")[1]);
|
|
55
63
|
if (step === this.state.visible - 1) {
|
|
56
64
|
// eslint-disable-next-line react/no-string-refs
|
|
57
|
-
// @ts-expect-error
|
|
65
|
+
// @ts-expect-error - TS2339 - Property 'getWidgetInstance' does not exist on type 'ReactInstance'.
|
|
58
66
|
const widget = this.refs.renderer.getWidgetInstance(
|
|
59
67
|
"group " + step,
|
|
60
68
|
);
|
|
@@ -21,7 +21,7 @@ import type {WidgetExports} from "../types";
|
|
|
21
21
|
|
|
22
22
|
const {assert} = InteractiveUtil;
|
|
23
23
|
const {seededRNG} = Util;
|
|
24
|
-
// @ts-expect-error
|
|
24
|
+
// @ts-expect-error - TS2339 - Property 'Path' does not exist on type 'typeof Graphie'. | TS2339 - Property 'Arc' does not exist on type 'typeof Graphie'. | TS2339 - Property 'Circle' does not exist on type 'typeof Graphie'. | TS2339 - Property 'Label' does not exist on type 'typeof Graphie'. | TS2339 - Property 'Line' does not exist on type 'typeof Graphie'. | TS2339 - Property 'MovablePoint' does not exist on type 'typeof Graphie'. | TS2339 - Property 'MovableLine' does not exist on type 'typeof Graphie'.
|
|
25
25
|
const {Path, Arc, Circle, Label, Line, MovablePoint, MovableLine} = Graphie;
|
|
26
26
|
|
|
27
27
|
const defaultBoxSize = 400;
|
|
@@ -45,7 +45,7 @@ class Histogram extends React.Component<any, any> {
|
|
|
45
45
|
|
|
46
46
|
UNSAFE_componentWillReceiveProps(nextProps: any) {
|
|
47
47
|
// Reset the threshold if the range has changed
|
|
48
|
-
// @ts-expect-error
|
|
48
|
+
// @ts-expect-error - TS2554 - Expected 1 arguments, but got 0.
|
|
49
49
|
const oldRange = this._range();
|
|
50
50
|
const nextRange = this._range(nextProps);
|
|
51
51
|
if (!Util.deepEq(oldRange, nextRange)) {
|
|
@@ -59,7 +59,7 @@ class Histogram extends React.Component<any, any> {
|
|
|
59
59
|
_renderThresholdLine = () => {
|
|
60
60
|
// Recall the the y-range goes from [-1, yMax] to allow for ticks on
|
|
61
61
|
// the x-axis.
|
|
62
|
-
// @ts-expect-error
|
|
62
|
+
// @ts-expect-error - TS2554 - Expected 1 arguments, but got 0.
|
|
63
63
|
const yRange = [0, this._range()[1][1]];
|
|
64
64
|
const coords = _.map(yRange, (y) => [this.state.threshold, y]);
|
|
65
65
|
|
|
@@ -151,7 +151,7 @@ class Histogram extends React.Component<any, any> {
|
|
|
151
151
|
};
|
|
152
152
|
|
|
153
153
|
// Plot the label below the circle
|
|
154
|
-
// @ts-expect-error
|
|
154
|
+
// @ts-expect-error - TS2554 - Expected 1 arguments, but got 0.
|
|
155
155
|
const xRange = this._range()[0];
|
|
156
156
|
const formattedThreshold = Math.min(
|
|
157
157
|
Math.max(this.state.threshold, xRange[0]),
|
|
@@ -188,7 +188,7 @@ class Histogram extends React.Component<any, any> {
|
|
|
188
188
|
/* Renders the actual bars of the histogram. */
|
|
189
189
|
_renderData = () => {
|
|
190
190
|
const data = this.props.data;
|
|
191
|
-
// @ts-expect-error
|
|
191
|
+
// @ts-expect-error - TS2554 - Expected 1 arguments, but got 0.
|
|
192
192
|
const range = this._range();
|
|
193
193
|
|
|
194
194
|
// Plot bars
|
|
@@ -221,7 +221,7 @@ class Histogram extends React.Component<any, any> {
|
|
|
221
221
|
|
|
222
222
|
render(): React.ReactNode {
|
|
223
223
|
const data = this.props.data;
|
|
224
|
-
// @ts-expect-error
|
|
224
|
+
// @ts-expect-error - TS2554 - Expected 1 arguments, but got 0.
|
|
225
225
|
const range = this._range();
|
|
226
226
|
|
|
227
227
|
const options = {
|
|
@@ -397,13 +397,13 @@ class Histogram extends React.Component<any, any> {
|
|
|
397
397
|
};
|
|
398
398
|
|
|
399
399
|
state = {
|
|
400
|
-
// @ts-expect-error
|
|
400
|
+
// @ts-expect-error - TS2554 - Expected 1 arguments, but got 0.
|
|
401
401
|
threshold: this._getInitialThreshold(this._range()),
|
|
402
402
|
};
|
|
403
403
|
}
|
|
404
404
|
|
|
405
405
|
class Simulator extends React.Component<any, any> {
|
|
406
|
-
// @ts-expect-error
|
|
406
|
+
// @ts-expect-error - TS2564 - Property 'generateNumber' has no initializer and is not definitely assigned in the constructor.
|
|
407
407
|
generateNumber: () => number;
|
|
408
408
|
|
|
409
409
|
static propTypes = {
|
|
@@ -632,7 +632,7 @@ class Simulator extends React.Component<any, any> {
|
|
|
632
632
|
};
|
|
633
633
|
|
|
634
634
|
change: (...args: ReadonlyArray<unknown>) => any = (...args) => {
|
|
635
|
-
// @ts-expect-error
|
|
635
|
+
// @ts-expect-error - TS2345 - Argument of type 'readonly unknown[]' is not assignable to parameter of type 'any[]'.
|
|
636
636
|
return Changeable.change.apply(this, args);
|
|
637
637
|
};
|
|
638
638
|
|
|
@@ -672,7 +672,7 @@ class Simulator extends React.Component<any, any> {
|
|
|
672
672
|
);
|
|
673
673
|
};
|
|
674
674
|
|
|
675
|
-
// @ts-expect-error
|
|
675
|
+
// @ts-expect-error - TS2322 - Type '(sampleSize: any, cb: any) => void' is not assignable to type '(number: any) => void'.
|
|
676
676
|
handleSampleSizeChange: (number: any) => void = (sampleSize, cb) => {
|
|
677
677
|
if (sampleSize != null) {
|
|
678
678
|
sampleSize = Math.min(
|
|
@@ -705,7 +705,7 @@ class Simulator extends React.Component<any, any> {
|
|
|
705
705
|
});
|
|
706
706
|
|
|
707
707
|
this.props.onChange({
|
|
708
|
-
// @ts-expect-error
|
|
708
|
+
// @ts-expect-error - TS2554 - Expected 1 arguments, but got 0.
|
|
709
709
|
data: this.generateData(),
|
|
710
710
|
});
|
|
711
711
|
this.props.trackInteraction();
|
|
@@ -753,7 +753,7 @@ class Simulator extends React.Component<any, any> {
|
|
|
753
753
|
const inputID = _.head(path);
|
|
754
754
|
// eslint-disable-next-line react/no-string-refs
|
|
755
755
|
const inputComponent = this.refs[inputID];
|
|
756
|
-
// @ts-expect-error
|
|
756
|
+
// @ts-expect-error - TS2339 - Property 'focus' does not exist on type 'ReactInstance'.
|
|
757
757
|
inputComponent.focus();
|
|
758
758
|
};
|
|
759
759
|
|
|
@@ -762,7 +762,7 @@ class Simulator extends React.Component<any, any> {
|
|
|
762
762
|
const inputID = _.head(path);
|
|
763
763
|
// eslint-disable-next-line react/no-string-refs
|
|
764
764
|
const inputComponent = this.refs[inputID];
|
|
765
|
-
// @ts-expect-error
|
|
765
|
+
// @ts-expect-error - TS2339 - Property 'blur' does not exist on type 'ReactInstance'.
|
|
766
766
|
inputComponent.blur();
|
|
767
767
|
};
|
|
768
768
|
|
|
@@ -798,7 +798,7 @@ class Simulator extends React.Component<any, any> {
|
|
|
798
798
|
};
|
|
799
799
|
|
|
800
800
|
simpleValidate: (arg1: any) => any = (rubric) => {
|
|
801
|
-
// @ts-expect-error
|
|
801
|
+
// @ts-expect-error - TS2339 - Property 'validate' does not exist on type 'typeof Simulator'.
|
|
802
802
|
return Simulator.validate(this.getUserInput(), rubric);
|
|
803
803
|
};
|
|
804
804
|
}
|
package/src/widgets/sorter.tsx
CHANGED
|
@@ -19,7 +19,7 @@ const HORIZONTAL = "horizontal";
|
|
|
19
19
|
const VERTICAL = "vertical";
|
|
20
20
|
|
|
21
21
|
class Sorter extends React.Component<any, any> {
|
|
22
|
-
// @ts-expect-error
|
|
22
|
+
// @ts-expect-error - TS2564 - Property '_isMounted' has no initializer and is not definitely assigned in the constructor.
|
|
23
23
|
_isMounted: boolean;
|
|
24
24
|
|
|
25
25
|
static propTypes = {
|
|
@@ -89,7 +89,7 @@ class Sorter extends React.Component<any, any> {
|
|
|
89
89
|
options: any;
|
|
90
90
|
} = () => {
|
|
91
91
|
// eslint-disable-next-line react/no-string-refs
|
|
92
|
-
// @ts-expect-error
|
|
92
|
+
// @ts-expect-error - TS2339 - Property 'getOptions' does not exist on type 'ReactInstance'.
|
|
93
93
|
return {options: this.refs.sortable.getOptions()};
|
|
94
94
|
};
|
|
95
95
|
|
|
@@ -98,7 +98,7 @@ class Sorter extends React.Component<any, any> {
|
|
|
98
98
|
index,
|
|
99
99
|
) => {
|
|
100
100
|
// eslint-disable-next-line react/no-string-refs
|
|
101
|
-
// @ts-expect-error
|
|
101
|
+
// @ts-expect-error - TS2339 - Property 'moveOptionToIndex' does not exist on type 'ReactInstance'.
|
|
102
102
|
this.refs.sortable.moveOptionToIndex(option, index);
|
|
103
103
|
};
|
|
104
104
|
|
|
@@ -132,7 +132,7 @@ class Sorter extends React.Component<any, any> {
|
|
|
132
132
|
return (
|
|
133
133
|
<div className="perseus-widget-sorter perseus-clearfix">
|
|
134
134
|
<Sortable
|
|
135
|
-
// @ts-expect-error
|
|
135
|
+
// @ts-expect-error - TS2322 - Type 'readonly unknown[]' is not assignable to type 'readonly string[]'.
|
|
136
136
|
options={options}
|
|
137
137
|
layout={this.props.layout}
|
|
138
138
|
margin={marginPx}
|
package/src/widgets/table.tsx
CHANGED
|
@@ -194,7 +194,7 @@ class Table extends React.Component<any> {
|
|
|
194
194
|
|
|
195
195
|
// If this is coming from an "input", the last argument will be an
|
|
196
196
|
// event. If it's coming from a SimpleKeypadInput, it'll be the value.
|
|
197
|
-
// @ts-expect-error
|
|
197
|
+
// @ts-expect-error - TS2571 - Object is of type 'unknown'.
|
|
198
198
|
answers[row][column] = eventOrValue.target
|
|
199
199
|
? eventOrValue.target.value
|
|
200
200
|
: eventOrValue;
|
|
@@ -214,7 +214,7 @@ class Table extends React.Component<any> {
|
|
|
214
214
|
};
|
|
215
215
|
|
|
216
216
|
simpleValidate: (arg1: any) => any = (rubric) => {
|
|
217
|
-
// @ts-expect-error
|
|
217
|
+
// @ts-expect-error - TS2339 - Property 'validate' does not exist on type 'typeof Table'.
|
|
218
218
|
return Table.validate(this.getUserInput(), rubric);
|
|
219
219
|
};
|
|
220
220
|
|
|
@@ -236,10 +236,10 @@ class Table extends React.Component<any> {
|
|
|
236
236
|
// eslint-disable-next-line react/no-string-refs
|
|
237
237
|
const inputComponent = this.refs[inputID];
|
|
238
238
|
if (this.props.apiOptions.customKeypad) {
|
|
239
|
-
// @ts-expect-error
|
|
239
|
+
// @ts-expect-error - TS2339 - Property 'focus' does not exist on type 'ReactInstance'.
|
|
240
240
|
inputComponent.focus();
|
|
241
241
|
} else {
|
|
242
|
-
// @ts-expect-error
|
|
242
|
+
// @ts-expect-error - TS2531 - Object is possibly 'null'. | TS2339 - Property 'focus' does not exist on type 'Element | Text'.
|
|
243
243
|
ReactDOM.findDOMNode(inputComponent).focus();
|
|
244
244
|
}
|
|
245
245
|
};
|
|
@@ -249,10 +249,10 @@ class Table extends React.Component<any> {
|
|
|
249
249
|
// eslint-disable-next-line react/no-string-refs
|
|
250
250
|
const inputComponent = this.refs[inputID];
|
|
251
251
|
if (this.props.apiOptions.customKeypad) {
|
|
252
|
-
// @ts-expect-error
|
|
252
|
+
// @ts-expect-error - TS2339 - Property 'blur' does not exist on type 'ReactInstance'.
|
|
253
253
|
inputComponent.blur();
|
|
254
254
|
} else {
|
|
255
|
-
// @ts-expect-error
|
|
255
|
+
// @ts-expect-error - TS2531 - Object is possibly 'null'. | TS2339 - Property 'blur' does not exist on type 'Element | Text'.
|
|
256
256
|
ReactDOM.findDOMNode(inputComponent).blur();
|
|
257
257
|
}
|
|
258
258
|
};
|
|
@@ -292,7 +292,7 @@ class Table extends React.Component<any> {
|
|
|
292
292
|
const column = getColumnFromPath(path);
|
|
293
293
|
|
|
294
294
|
const answers = _.map(this.props.answers, _.clone);
|
|
295
|
-
// @ts-expect-error
|
|
295
|
+
// @ts-expect-error - TS2571 - Object is of type 'unknown'.
|
|
296
296
|
answers[row][column] = newValue;
|
|
297
297
|
this.props.onChange(
|
|
298
298
|
{
|
|
@@ -348,7 +348,7 @@ _.extend(Table, {
|
|
|
348
348
|
});
|
|
349
349
|
const result = validator(cellSupplied);
|
|
350
350
|
if (result.message) {
|
|
351
|
-
// @ts-expect-error
|
|
351
|
+
// @ts-expect-error - TS2322 - Type 'string' is not assignable to type 'null'.
|
|
352
352
|
message = result.message;
|
|
353
353
|
}
|
|
354
354
|
return result.correct;
|