@khanacademy/perseus 7.2.0 → 8.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 +38 -0
- package/dist/article-renderer.d.ts +26 -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/es/index.css +61 -61
- package/dist/es/index.js +1189 -1308
- package/dist/es/index.js.map +1 -1
- package/dist/hints-renderer.d.ts +1 -1
- package/dist/index.css +61 -61
- package/dist/index.js +1180 -1269
- package/dist/index.js.map +1 -1
- package/dist/mixins/provide-keypad.d.ts +15 -12
- package/dist/perseus-api.d.ts +1 -1
- package/dist/types.d.ts +3 -2
- package/dist/widgets/expression.d.ts +1 -1
- package/dist/widgets/graded-group.d.ts +1 -1
- package/dist/widgets/interactive-graph.d.ts +1 -1
- package/dist/widgets/plotter.d.ts +47 -13
- package/dist/widgets/sequence.d.ts +1 -1
- package/dist/widgets/table.d.ts +8 -1
- package/dist/widgets.d.ts +1 -1
- package/package.json +33 -33
- package/src/__testdata__/article-renderer.testdata.ts +3 -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 +2 -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 +3 -3
- package/src/__tests__/tex-wrangler.test.ts +1 -1
- package/src/article-renderer.tsx +39 -38
- package/src/components/__stories__/image-loader.stories.tsx +1 -0
- 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 +12 -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 +2 -1
- package/src/components/image-loader.tsx +5 -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 +11 -10
- package/src/components/prop-check-box.tsx +1 -1
- package/src/components/simple-keypad-input.tsx +4 -4
- package/src/components/sortable.tsx +43 -41
- package/src/components/svg-image.tsx +13 -12
- package/src/components/tex-buttons.tsx +5 -3
- package/src/components/text-input.tsx +9 -8
- package/src/components/text-list-editor.tsx +12 -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 +9 -8
- package/src/hint-renderer.tsx +3 -3
- package/src/hints-renderer.tsx +12 -11
- package/src/index.ts +1 -0
- package/src/init.ts +1 -1
- package/src/interaction-tracker.ts +4 -4
- 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 +6 -5
- package/src/mixins/changeable.ts +2 -2
- package/src/mixins/editor-jsonify.ts +1 -1
- package/src/mixins/provide-keypad.tsx +24 -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 +7 -7
- 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 +15 -14
- 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 -38
- package/src/server-item-renderer.tsx +6 -5
- package/src/sigfigs.ts +1 -1
- package/src/styles/articles.less +8 -4
- package/src/styles/perseus-renderer.less +47 -38
- package/src/styles/util.less +1 -1
- package/src/styles/variables.boostrap.less +158 -182
- package/src/styles/variables.less +20 -20
- package/src/styles/variables.shared.less +162 -168
- package/src/styles/widgets/categorizer.less +1 -2
- package/src/styles/widgets/expression.less +7 -4
- package/src/styles/widgets/grapher.less +2 -1
- package/src/styles/widgets/image.less +3 -2
- package/src/styles/widgets/interactive-graph.less +4 -2
- package/src/styles/widgets/label-image.less +2 -1
- package/src/styles/widgets/matrix.less +11 -7
- package/src/styles/widgets/orderer.less +2 -1
- package/src/styles/widgets/passage.less +2 -1
- package/src/styles/widgets/plotter.less +4 -3
- package/src/styles/widgets/radio.less +4 -2
- package/src/styles/widgets/sortable.less +1 -1
- package/src/styles/widgets/table.less +2 -1
- package/src/styles/widgets/transformer.less +2 -1
- package/src/styles/widgets/unit.less +2 -1
- package/src/traversal.ts +1 -1
- package/src/types.ts +3 -3
- 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__/plotter.stories.tsx +27 -0
- package/src/widgets/__stories__/test-keypad-context-wrapper.tsx +3 -3
- package/src/widgets/__testdata__/numeric-input.testdata.ts +1 -1
- package/src/widgets/__testdata__/plotter.testdata.ts +36 -0
- package/src/widgets/__tests__/__snapshots__/plotter.test.tsx.snap +863 -0
- package/src/widgets/__tests__/__snapshots__/video.test.ts.snap +2 -2
- package/src/widgets/__tests__/expression.test.ts +4 -3
- 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 +66 -0
- package/src/widgets/__tests__/radio/base-radio.test.tsx +7 -7
- package/src/widgets/__tests__/renderQuestion.tsx +3 -3
- package/src/widgets/categorizer.tsx +5 -4
- package/src/widgets/cs-program.tsx +2 -2
- package/src/widgets/dropdown.tsx +1 -1
- package/src/widgets/expression.tsx +10 -9
- package/src/widgets/graded-group-set.tsx +6 -5
- package/src/widgets/graded-group.tsx +19 -19
- 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 +78 -77
- package/src/widgets/interactive-graph.tsx +109 -107
- package/src/widgets/label-image/marker.tsx +3 -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 +7 -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 +39 -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 +2 -1
- package/src/widgets/passage-ref.tsx +4 -6
- package/src/widgets/passage.tsx +11 -11
- package/src/widgets/plotter.tsx +117 -107
- package/src/widgets/radio/base-radio.tsx +12 -11
- package/src/widgets/radio/choice-icon/choice-icon.tsx +3 -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 +2 -2
- package/src/widgets/simulator.tsx +14 -14
- package/src/widgets/sorter.tsx +5 -4
- package/src/widgets/table.tsx +8 -8
- package/src/widgets/transformer.tsx +93 -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 -78
- 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
|
@@ -133,12 +133,12 @@ export class NumericInput extends React.Component<Props, State> {
|
|
|
133
133
|
format = answer.answerForms[0];
|
|
134
134
|
}
|
|
135
135
|
|
|
136
|
-
// @ts-expect-error
|
|
136
|
+
// @ts-expect-error - TS2345 - Argument of type 'string' is not assignable to parameter of type 'MathFormat | undefined'.
|
|
137
137
|
let answerString = KhanMath.toNumericString(answer.value, format);
|
|
138
138
|
if (answer.maxError) {
|
|
139
139
|
answerString +=
|
|
140
140
|
" \u00B1 " +
|
|
141
|
-
// @ts-expect-error
|
|
141
|
+
// @ts-expect-error - TS2345 - Argument of type 'string' is not assignable to parameter of type 'MathFormat | undefined'.
|
|
142
142
|
KhanMath.toNumericString(answer.maxError, format);
|
|
143
143
|
}
|
|
144
144
|
return answerString;
|
|
@@ -200,10 +200,10 @@ export class NumericInput extends React.Component<Props, State> {
|
|
|
200
200
|
let localValue = currentValue;
|
|
201
201
|
if (rubric.coefficient) {
|
|
202
202
|
if (!localValue) {
|
|
203
|
-
// @ts-expect-error
|
|
203
|
+
// @ts-expect-error - TS2322 - Type 'number' is not assignable to type 'string'.
|
|
204
204
|
localValue = 1;
|
|
205
205
|
} else if (localValue === "-") {
|
|
206
|
-
// @ts-expect-error
|
|
206
|
+
// @ts-expect-error - TS2322 - Type 'number' is not assignable to type 'string'.
|
|
207
207
|
localValue = -1;
|
|
208
208
|
}
|
|
209
209
|
}
|
|
@@ -220,7 +220,7 @@ export class NumericInput extends React.Component<Props, State> {
|
|
|
220
220
|
if (!result) {
|
|
221
221
|
// Otherwise, if the guess is not correct
|
|
222
222
|
const otherAnswers = [].concat(
|
|
223
|
-
// @ts-expect-error
|
|
223
|
+
// @ts-expect-error - TS2769 - No overload matches this call.
|
|
224
224
|
rubric.answers.filter((answer) => answer.status === "ungraded"),
|
|
225
225
|
rubric.answers.filter((answer) => answer.status === "wrong"),
|
|
226
226
|
);
|
|
@@ -237,11 +237,11 @@ export class NumericInput extends React.Component<Props, State> {
|
|
|
237
237
|
).correct;
|
|
238
238
|
});
|
|
239
239
|
result = {
|
|
240
|
-
// @ts-expect-error
|
|
240
|
+
// @ts-expect-error - TS2339 - Property 'status' does not exist on type 'never'.
|
|
241
241
|
empty: match ? match.status === "ungraded" : false,
|
|
242
|
-
// @ts-expect-error
|
|
242
|
+
// @ts-expect-error - TS2339 - Property 'status' does not exist on type 'never'.
|
|
243
243
|
correct: match ? match.status === "correct" : false,
|
|
244
|
-
// @ts-expect-error
|
|
244
|
+
// @ts-expect-error - TS2339 - Property 'message' does not exist on type 'never'.
|
|
245
245
|
message: match ? match.message : null,
|
|
246
246
|
guess: currentValue,
|
|
247
247
|
};
|
|
@@ -284,7 +284,7 @@ export class NumericInput extends React.Component<Props, State> {
|
|
|
284
284
|
});
|
|
285
285
|
|
|
286
286
|
let examples = _.map(forms, (form) => {
|
|
287
|
-
// @ts-expect-error
|
|
287
|
+
// @ts-expect-error - TS2345 - Argument of type 'PerseusNumericInputAnswerForm | { name: string; simplify: string; }' is not assignable to parameter of type 'PerseusNumericInputAnswerForm'.
|
|
288
288
|
return formExamples[form.name](form);
|
|
289
289
|
});
|
|
290
290
|
// Ensure no duplicate tooltip text from simplified and unsimplified
|
|
@@ -460,7 +460,7 @@ export const unionAnswerForms: (
|
|
|
460
460
|
// two elements are equal, and returns a list of unique elements. This is
|
|
461
461
|
// just a helper function here, but works generally.
|
|
462
462
|
const uniqueBy = function (list, iteratee: any) {
|
|
463
|
-
// @ts-expect-error
|
|
463
|
+
// @ts-expect-error - TS2347 - Untyped function calls may not accept type arguments.
|
|
464
464
|
return list.reduce<Array<any>>((uniqueList, element) => {
|
|
465
465
|
// For each element, decide whether it's already in the list of
|
|
466
466
|
// unique items.
|
|
@@ -539,7 +539,7 @@ const propsTransform = function (
|
|
|
539
539
|
// Pull out the name of each form and whether that form has
|
|
540
540
|
// required simplification.
|
|
541
541
|
widgetOptions.answers.map((answer) => {
|
|
542
|
-
// @ts-expect-error
|
|
542
|
+
// @ts-expect-error - TS2345 - Argument of type 'readonly MathFormat[] | undefined' is not assignable to parameter of type 'Collection<any>'.
|
|
543
543
|
return _.map(answer.answerForms, (form) => {
|
|
544
544
|
return {
|
|
545
545
|
simplify: answer.simplify,
|
package/src/widgets/orderer.tsx
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/* eslint-disable @khanacademy/ts-no-error-suppressions */
|
|
1
2
|
/* eslint-disable @babel/no-invalid-this, @typescript-eslint/no-unused-vars, one-var, react/no-unsafe, react/sort-comp */
|
|
2
3
|
import {
|
|
3
4
|
linterContextProps,
|
|
@@ -55,7 +56,7 @@ const PropTypePosition = PropTypes.shape({
|
|
|
55
56
|
});
|
|
56
57
|
|
|
57
58
|
class Card extends React.Component<any, any> {
|
|
58
|
-
// @ts-expect-error
|
|
59
|
+
// @ts-expect-error - TS2564 - Property 'mouseMoveUpBound' has no initializer and is not definitely assigned in the constructor.
|
|
59
60
|
mouseMoveUpBound: boolean;
|
|
60
61
|
|
|
61
62
|
static propTypes = {
|
|
@@ -190,7 +191,7 @@ class Card extends React.Component<any, any> {
|
|
|
190
191
|
),
|
|
191
192
|
),
|
|
192
193
|
);
|
|
193
|
-
// @ts-expect-error
|
|
194
|
+
// @ts-expect-error - TS2769 - No overload matches this call. | TS2339 - Property 'animate' does not exist on type 'JQueryStatic'.
|
|
194
195
|
$(ReactDOM.findDOMNode(this)).animate(
|
|
195
196
|
this.props.animateTo,
|
|
196
197
|
Math.max(ms, 1),
|
|
@@ -378,14 +379,14 @@ class Orderer extends React.Component<OrdererProps, OrdererState> {
|
|
|
378
379
|
floating={false}
|
|
379
380
|
content={opt.content}
|
|
380
381
|
width={opt.width}
|
|
381
|
-
// @ts-expect-error
|
|
382
|
+
// @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
382
383
|
linterContext={this.props.linterContext}
|
|
383
384
|
// eslint-disable-next-line react/jsx-no-bind
|
|
384
385
|
onMouseDown={
|
|
385
|
-
// @ts-expect-error
|
|
386
|
+
// @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
386
387
|
this.state.animating
|
|
387
388
|
? $.noop
|
|
388
|
-
: // @ts-expect-error
|
|
389
|
+
: // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
389
390
|
this.onClick.bind(null, "current", i)
|
|
390
391
|
}
|
|
391
392
|
/>
|
|
@@ -408,7 +409,7 @@ class Orderer extends React.Component<OrdererProps, OrdererState> {
|
|
|
408
409
|
}
|
|
409
410
|
|
|
410
411
|
const anySortableCards = sortableCards.length > 0;
|
|
411
|
-
// @ts-expect-error
|
|
412
|
+
// @ts-expect-error - TS2345 - Argument of type 'false | Element' is not assignable to parameter of type 'Element'.
|
|
412
413
|
sortableCards.push(dragging, animating);
|
|
413
414
|
|
|
414
415
|
// If there are no cards in the list, then add a "hint" card
|
|
@@ -480,7 +481,7 @@ class Orderer extends React.Component<OrdererProps, OrdererState> {
|
|
|
480
481
|
loc,
|
|
481
482
|
draggable,
|
|
482
483
|
) => {
|
|
483
|
-
// @ts-expect-error
|
|
484
|
+
// @ts-expect-error - TS2769 - No overload matches this call.
|
|
484
485
|
const $draggable = $(ReactDOM.findDOMNode(draggable));
|
|
485
486
|
const list = this.state.current.slice();
|
|
486
487
|
|
|
@@ -492,7 +493,7 @@ class Orderer extends React.Component<OrdererProps, OrdererState> {
|
|
|
492
493
|
// card from the list
|
|
493
494
|
list.splice(index, 1);
|
|
494
495
|
opt = this.state.current[index];
|
|
495
|
-
// @ts-expect-error
|
|
496
|
+
// @ts-expect-error - TS2322 - Type 'number' is not assignable to type 'null'.
|
|
496
497
|
placeholderIndex = index;
|
|
497
498
|
} else if (type === "bank") {
|
|
498
499
|
opt = this.props.options[index];
|
|
@@ -504,13 +505,13 @@ class Orderer extends React.Component<OrdererProps, OrdererState> {
|
|
|
504
505
|
placeholderIndex: placeholderIndex,
|
|
505
506
|
dragKey: opt.key,
|
|
506
507
|
dragContent: opt.content,
|
|
507
|
-
// @ts-expect-error
|
|
508
|
+
// @ts-expect-error - TS2339 - Property 'width' does not exist on type 'JQueryStatic'.
|
|
508
509
|
dragWidth: $draggable.width(),
|
|
509
|
-
// @ts-expect-error
|
|
510
|
+
// @ts-expect-error - TS2339 - Property 'height' does not exist on type 'JQueryStatic'.
|
|
510
511
|
dragHeight: $draggable.height(),
|
|
511
512
|
grabPos: loc,
|
|
512
513
|
mousePos: loc,
|
|
513
|
-
// @ts-expect-error
|
|
514
|
+
// @ts-expect-error - TS2339 - Property 'position' does not exist on type 'JQueryStatic'.
|
|
514
515
|
offsetPos: $draggable.position(),
|
|
515
516
|
});
|
|
516
517
|
};
|
|
@@ -541,7 +542,7 @@ class Orderer extends React.Component<OrdererProps, OrdererState> {
|
|
|
541
542
|
}
|
|
542
543
|
|
|
543
544
|
this.props.onChange({
|
|
544
|
-
// @ts-expect-error
|
|
545
|
+
// @ts-expect-error - TS2345 - Argument of type '{ current: any[]; }' is not assignable to parameter of type '{ hints?: readonly Hint[] | undefined; replace?: boolean | undefined; content?: string | undefined; widgets?: WidgetDict | undefined; images?: ImageDict | undefined; ... 13 more ...; plot?: any; }'.
|
|
545
546
|
current: list,
|
|
546
547
|
});
|
|
547
548
|
this.setState({
|
|
@@ -555,7 +556,7 @@ class Orderer extends React.Component<OrdererProps, OrdererState> {
|
|
|
555
556
|
|
|
556
557
|
// Find the position of the card we should animate to
|
|
557
558
|
// TODO(alpert): Update mouse position once more before animating?
|
|
558
|
-
// @ts-expect-error
|
|
559
|
+
// @ts-expect-error - TS2769 - No overload matches this call. | TS2339 - Property 'position' does not exist on type 'JQueryStatic'.
|
|
559
560
|
const offset = $(ReactDOM.findDOMNode(draggable)).position();
|
|
560
561
|
let finalOffset = null;
|
|
561
562
|
if (inCardBank) {
|
|
@@ -564,14 +565,14 @@ class Orderer extends React.Component<OrdererProps, OrdererState> {
|
|
|
564
565
|
_.each(
|
|
565
566
|
this.props.options,
|
|
566
567
|
function (opt, i) {
|
|
567
|
-
// @ts-expect-error
|
|
568
|
+
// @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
568
569
|
if (opt.content === this.state.dragContent) {
|
|
569
570
|
const card = ReactDOM.findDOMNode(
|
|
570
571
|
// eslint-disable-next-line react/no-string-refs
|
|
571
|
-
// @ts-expect-error
|
|
572
|
+
// @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
572
573
|
this.refs["bank" + i],
|
|
573
574
|
);
|
|
574
|
-
// @ts-expect-error
|
|
575
|
+
// @ts-expect-error - TS2769 - No overload matches this call. | TS2339 - Property 'position' does not exist on type 'JQueryStatic'.
|
|
575
576
|
finalOffset = $(card).position();
|
|
576
577
|
}
|
|
577
578
|
},
|
|
@@ -582,9 +583,9 @@ class Orderer extends React.Component<OrdererProps, OrdererState> {
|
|
|
582
583
|
// Otherwise, go to the position that the placeholder is at
|
|
583
584
|
finalOffset = $(
|
|
584
585
|
// eslint-disable-next-line react/no-string-refs
|
|
585
|
-
// @ts-expect-error
|
|
586
|
+
// @ts-expect-error - TS2769 - No overload matches this call.
|
|
586
587
|
ReactDOM.findDOMNode(this.refs.placeholder),
|
|
587
|
-
// @ts-expect-error
|
|
588
|
+
// @ts-expect-error - TS2339 - Property 'position' does not exist on type 'JQueryStatic'.
|
|
588
589
|
).position();
|
|
589
590
|
}
|
|
590
591
|
|
|
@@ -628,17 +629,17 @@ class Orderer extends React.Component<OrdererProps, OrdererState> {
|
|
|
628
629
|
// Find the correct index for a card given the current cards.
|
|
629
630
|
const isHorizontal = this.props.layout === HORIZONTAL;
|
|
630
631
|
// eslint-disable-next-line react/no-string-refs
|
|
631
|
-
// @ts-expect-error
|
|
632
|
+
// @ts-expect-error - TS2769 - No overload matches this call.
|
|
632
633
|
const $dragList = $(ReactDOM.findDOMNode(this.refs.dragList));
|
|
633
|
-
// @ts-expect-error
|
|
634
|
+
// @ts-expect-error - TS2339 - Property 'offset' does not exist on type 'JQueryStatic'.
|
|
634
635
|
const leftEdge = $dragList.offset().left;
|
|
635
|
-
// @ts-expect-error
|
|
636
|
+
// @ts-expect-error - TS2339 - Property 'offset' does not exist on type 'JQueryStatic'.
|
|
636
637
|
const topEdge = $dragList.offset().top;
|
|
637
638
|
const midWidth =
|
|
638
|
-
// @ts-expect-error
|
|
639
|
+
// @ts-expect-error - TS2769 - No overload matches this call. | TS2339 - Property 'offset' does not exist on type 'JQueryStatic'.
|
|
639
640
|
$(ReactDOM.findDOMNode(draggable)).offset().left - leftEdge;
|
|
640
641
|
const midHeight =
|
|
641
|
-
// @ts-expect-error
|
|
642
|
+
// @ts-expect-error - TS2769 - No overload matches this call. | TS2339 - Property 'offset' does not exist on type 'JQueryStatic'.
|
|
642
643
|
$(ReactDOM.findDOMNode(draggable)).offset().top - topEdge;
|
|
643
644
|
let index = 0;
|
|
644
645
|
let sumWidth = 0;
|
|
@@ -650,10 +651,10 @@ class Orderer extends React.Component<OrdererProps, OrdererState> {
|
|
|
650
651
|
function (opt, i) {
|
|
651
652
|
const card = ReactDOM.findDOMNode(
|
|
652
653
|
// eslint-disable-next-line react/no-string-refs
|
|
653
|
-
// @ts-expect-error
|
|
654
|
+
// @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
654
655
|
this.refs["sortable" + i],
|
|
655
656
|
);
|
|
656
|
-
// @ts-expect-error
|
|
657
|
+
// @ts-expect-error - TS2769 - No overload matches this call. | TS2339 - Property 'outerWidth' does not exist on type 'JQueryStatic'.
|
|
657
658
|
const outerWidth = $(card).outerWidth(true);
|
|
658
659
|
if (midWidth > sumWidth + outerWidth / 2) {
|
|
659
660
|
index += 1;
|
|
@@ -668,10 +669,10 @@ class Orderer extends React.Component<OrdererProps, OrdererState> {
|
|
|
668
669
|
function (opt, i) {
|
|
669
670
|
const card = ReactDOM.findDOMNode(
|
|
670
671
|
// eslint-disable-next-line react/no-string-refs
|
|
671
|
-
// @ts-expect-error
|
|
672
|
+
// @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
672
673
|
this.refs["sortable" + i],
|
|
673
674
|
);
|
|
674
|
-
// @ts-expect-error
|
|
675
|
+
// @ts-expect-error - TS2769 - No overload matches this call. | TS2339 - Property 'outerHeight' does not exist on type 'JQueryStatic'.
|
|
675
676
|
const outerHeight = $(card).outerHeight(true);
|
|
676
677
|
if (midHeight > sumHeight + outerHeight / 2) {
|
|
677
678
|
index += 1;
|
|
@@ -691,26 +692,26 @@ class Orderer extends React.Component<OrdererProps, OrdererState> {
|
|
|
691
692
|
}
|
|
692
693
|
|
|
693
694
|
const isHorizontal = this.props.layout === HORIZONTAL,
|
|
694
|
-
// @ts-expect-error
|
|
695
|
+
// @ts-expect-error - TS2769 - No overload matches this call.
|
|
695
696
|
$draggable = $(ReactDOM.findDOMNode(draggable)),
|
|
696
697
|
// eslint-disable-next-line react/no-string-refs
|
|
697
|
-
// @ts-expect-error
|
|
698
|
+
// @ts-expect-error - TS2769 - No overload matches this call.
|
|
698
699
|
$bank = $(ReactDOM.findDOMNode(this.refs.bank)),
|
|
699
|
-
// @ts-expect-error
|
|
700
|
+
// @ts-expect-error - TS2339 - Property 'offset' does not exist on type 'JQueryStatic'.
|
|
700
701
|
draggableOffset = $draggable.offset(),
|
|
701
|
-
// @ts-expect-error
|
|
702
|
+
// @ts-expect-error - TS2339 - Property 'offset' does not exist on type 'JQueryStatic'.
|
|
702
703
|
bankOffset = $bank.offset(),
|
|
703
|
-
// @ts-expect-error
|
|
704
|
+
// @ts-expect-error - TS2339 - Property 'outerHeight' does not exist on type 'JQueryStatic'.
|
|
704
705
|
draggableHeight = $draggable.outerHeight(true),
|
|
705
|
-
// @ts-expect-error
|
|
706
|
+
// @ts-expect-error - TS2339 - Property 'outerHeight' does not exist on type 'JQueryStatic'.
|
|
706
707
|
bankHeight = $bank.outerHeight(true),
|
|
707
|
-
// @ts-expect-error
|
|
708
|
+
// @ts-expect-error - TS2339 - Property 'outerWidth' does not exist on type 'JQueryStatic'.
|
|
708
709
|
bankWidth = $bank.outerWidth(true),
|
|
709
710
|
// eslint-disable-next-line react/no-string-refs
|
|
710
711
|
dragList = ReactDOM.findDOMNode(this.refs.dragList),
|
|
711
|
-
// @ts-expect-error
|
|
712
|
+
// @ts-expect-error - TS2769 - No overload matches this call. | TS2339 - Property 'width' does not exist on type 'JQueryStatic'.
|
|
712
713
|
dragListWidth = $(dragList).width(),
|
|
713
|
-
// @ts-expect-error
|
|
714
|
+
// @ts-expect-error - TS2339 - Property 'outerWidth' does not exist on type 'JQueryStatic'.
|
|
714
715
|
draggableWidth = $draggable.outerWidth(true);
|
|
715
716
|
|
|
716
717
|
if (isHorizontal) {
|
|
@@ -733,7 +734,7 @@ class Orderer extends React.Component<OrdererProps, OrdererState> {
|
|
|
733
734
|
return {content: value};
|
|
734
735
|
});
|
|
735
736
|
this.props.onChange({
|
|
736
|
-
// @ts-expect-error
|
|
737
|
+
// @ts-expect-error - TS2345 - Argument of type '{ current: { content: string; }[]; }' is not assignable to parameter of type '{ hints?: readonly Hint[] | undefined; replace?: boolean | undefined; content?: string | undefined; widgets?: WidgetDict | undefined; images?: ImageDict | undefined; ... 13 more ...; plot?: any; }'.
|
|
737
738
|
current: list,
|
|
738
739
|
});
|
|
739
740
|
|
|
@@ -749,7 +750,7 @@ class Orderer extends React.Component<OrdererProps, OrdererState> {
|
|
|
749
750
|
};
|
|
750
751
|
|
|
751
752
|
simpleValidate: (arg1: any) => any = (rubric) => {
|
|
752
|
-
// @ts-expect-error
|
|
753
|
+
// @ts-expect-error - TS2339 - Property 'validate' does not exist on type 'typeof Orderer'.
|
|
753
754
|
return Orderer.validate(this.getUserInput(), rubric);
|
|
754
755
|
};
|
|
755
756
|
}
|
|
@@ -30,7 +30,7 @@ const validateParse = (parsed: Array<SingleASTNode>, expected) => {
|
|
|
30
30
|
|
|
31
31
|
const htmlThroughReact = function (parsed: Array<SingleASTNode>) {
|
|
32
32
|
const output = PassageMarkdown.output(parsed);
|
|
33
|
-
// @ts-expect-error
|
|
33
|
+
// @ts-expect-error - TS2339 - Property 'DOM' does not exist on type 'typeof React'.
|
|
34
34
|
// eslint-disable-next-line import/namespace
|
|
35
35
|
const rawHtml = renderToStaticMarkup(React.DOM.div(null, output));
|
|
36
36
|
const innerHtml = rawHtml.replace(/^<div>/, "").replace(/<\/div>$/, "");
|
|
@@ -68,7 +68,7 @@ class RefStart extends React.Component<Props> {
|
|
|
68
68
|
return <span style={REF_STYLE}>{i18n.doNotTranslate("_")}</span>;
|
|
69
69
|
}
|
|
70
70
|
|
|
71
|
-
// @ts-expect-error
|
|
71
|
+
// @ts-expect-error - TS2322 - Type '() => React.ReactNode' is not assignable to type '() => ReactElement<any, string | JSXElementConstructor<any>>'.
|
|
72
72
|
getRefContent: () => React.ReactElement = () => {
|
|
73
73
|
return this.props.refContent;
|
|
74
74
|
};
|
|
@@ -304,7 +304,7 @@ const rules = {
|
|
|
304
304
|
output: OutputFun,
|
|
305
305
|
state: ParseState,
|
|
306
306
|
): React.ReactElement => {
|
|
307
|
-
// @ts-expect-error
|
|
307
|
+
// @ts-expect-error - TS2739 - Type '(string | Element | null)[]' is missing the following properties from type 'ReactElement<any, string | JSXElementConstructor<any>>': type, props, key
|
|
308
308
|
return [
|
|
309
309
|
<span
|
|
310
310
|
key="visual-circle"
|
|
@@ -453,7 +453,7 @@ const parse: (
|
|
|
453
453
|
arg1: string,
|
|
454
454
|
arg2?: ParseState | null | undefined,
|
|
455
455
|
) => Array<SingleASTNode> = (source, state) => {
|
|
456
|
-
// @ts-expect-error
|
|
456
|
+
// @ts-expect-error - TS2322 - Type 'ParseState | {}' is not assignable to type 'ParseState | null | undefined'.
|
|
457
457
|
state = state || {};
|
|
458
458
|
const paragraphedSource = source + "\n\n";
|
|
459
459
|
return builtParser(
|
|
@@ -462,7 +462,7 @@ const parse: (
|
|
|
462
462
|
);
|
|
463
463
|
};
|
|
464
464
|
|
|
465
|
-
// @ts-expect-error
|
|
465
|
+
// @ts-expect-error - TS2322 - Type 'ReactOutput' is not assignable to type '(arg1: SingleASTNode[]) => ReactElement<any, string | JSXElementConstructor<any>>'.
|
|
466
466
|
const output: (arg1: Array<SingleASTNode>) => React.ReactElement =
|
|
467
467
|
SimpleMarkdown.reactFor(SimpleMarkdown.ruleOutput(rules, "react"));
|
|
468
468
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/* eslint-disable @khanacademy/ts-no-error-suppressions */
|
|
1
2
|
import {
|
|
2
3
|
linterContextProps,
|
|
3
4
|
linterContextDefault,
|
|
@@ -49,7 +50,7 @@ class PassageRefTarget extends React.Component<any> {
|
|
|
49
50
|
return (
|
|
50
51
|
<Renderer
|
|
51
52
|
content={this.props.content}
|
|
52
|
-
// @ts-expect-error
|
|
53
|
+
// @ts-expect-error - TS2322 - Type '{ content: any; inline: boolean; apiOptions: any; linterContext: any; }' is not assignable to type 'IntrinsicAttributes & IntrinsicClassAttributes<Renderer> & Pick<Readonly<Props> & Readonly<{ children?: ReactNode; }>, "children" | ... 3 more ... | "legacyPerseusLint"> & InexactPartial<...> & InexactPartial<...>'.
|
|
53
54
|
inline={true}
|
|
54
55
|
apiOptions={this.props.apiOptions}
|
|
55
56
|
linterContext={this.props.linterContext}
|
|
@@ -7,8 +7,6 @@ import * as Changeable from "../mixins/changeable";
|
|
|
7
7
|
import {removeDenylistProps} from "../mixins/widget-prop-denylist";
|
|
8
8
|
import PerseusMarkdown from "../perseus-markdown";
|
|
9
9
|
|
|
10
|
-
import {Passage} from "./passage";
|
|
11
|
-
|
|
12
10
|
import type {PerseusPassageRefWidgetOptions} from "../perseus-types";
|
|
13
11
|
import type {
|
|
14
12
|
ChangeFn,
|
|
@@ -17,7 +15,7 @@ import type {
|
|
|
17
15
|
WidgetProps,
|
|
18
16
|
LinterContextProps,
|
|
19
17
|
} from "../types";
|
|
20
|
-
import type {Reference} from "./passage";
|
|
18
|
+
import type {Passage, Reference} from "./passage";
|
|
21
19
|
|
|
22
20
|
const EN_DASH = "\u2013";
|
|
23
21
|
|
|
@@ -52,9 +50,9 @@ type State = {
|
|
|
52
50
|
|
|
53
51
|
class PassageRef extends React.Component<Props, State> {
|
|
54
52
|
displayName = "PassageRef";
|
|
55
|
-
// @ts-expect-error
|
|
53
|
+
// @ts-expect-error - TS2564 - Property '_isMounted' has no initializer and is not definitely assigned in the constructor.
|
|
56
54
|
_isMounted: boolean;
|
|
57
|
-
// @ts-expect-error
|
|
55
|
+
// @ts-expect-error - TS2564 - Property '_throttledUpdateRange' has no initializer and is not definitely assigned in the constructor.
|
|
58
56
|
_throttledUpdateRange: () => void;
|
|
59
57
|
|
|
60
58
|
static defaultProps: DefaultProps = {
|
|
@@ -100,7 +98,7 @@ class PassageRef extends React.Component<Props, State> {
|
|
|
100
98
|
|
|
101
99
|
let summaryOutput;
|
|
102
100
|
if (this.props.summaryText) {
|
|
103
|
-
// @ts-expect-error
|
|
101
|
+
// @ts-expect-error - TS2554 - Expected 2 arguments, but got 1.
|
|
104
102
|
const summaryTree = PerseusMarkdown.parseInline(
|
|
105
103
|
this.props.summaryText,
|
|
106
104
|
);
|
package/src/widgets/passage.tsx
CHANGED
|
@@ -104,9 +104,9 @@ export type Reference = {
|
|
|
104
104
|
export class Passage extends React.Component<PassageProps, PassageState> {
|
|
105
105
|
_contentRef: HTMLDivElement | null | undefined;
|
|
106
106
|
_lineHeightMeasurerRef: LineHeightMeasurer | null | undefined;
|
|
107
|
-
// @ts-expect-error
|
|
107
|
+
// @ts-expect-error - TS2564 - Property '_onResize' has no initializer and is not definitely assigned in the constructor.
|
|
108
108
|
_onResize: () => Record<any, any>;
|
|
109
|
-
// @ts-expect-error
|
|
109
|
+
// @ts-expect-error - TS2564 - Property '_stylesAppiedTimer' has no initializer and is not definitely assigned in the constructor.
|
|
110
110
|
_stylesAppiedTimer: number;
|
|
111
111
|
|
|
112
112
|
static defaultProps: DefaultPassageProps = {
|
|
@@ -127,7 +127,7 @@ export class Passage extends React.Component<PassageProps, PassageState> {
|
|
|
127
127
|
componentDidMount() {
|
|
128
128
|
this._updateState();
|
|
129
129
|
|
|
130
|
-
// @ts-expect-error
|
|
130
|
+
// @ts-expect-error - TS2322 - Type '(() => void) & Cancelable' is not assignable to type '() => Record<any, any>'.
|
|
131
131
|
this._onResize = _.throttle(() => {
|
|
132
132
|
// If we're rendering JIPT text, we won't have line numbers or a
|
|
133
133
|
// line height measurer, so skip handling this resize.
|
|
@@ -214,7 +214,7 @@ export class Passage extends React.Component<PassageProps, PassageState> {
|
|
|
214
214
|
|
|
215
215
|
_measureLines(): number {
|
|
216
216
|
const renderer = ReactDOM.findDOMNode(this._contentRef);
|
|
217
|
-
// @ts-expect-error
|
|
217
|
+
// @ts-expect-error - TS2769 - No overload matches this call. | TS2339 - Property 'height' does not exist on type 'JQueryStatic'.
|
|
218
218
|
const contentsHeight: number = $(renderer).height();
|
|
219
219
|
const lineHeight = this._getLineHeight();
|
|
220
220
|
const nLines = Math.round(contentsHeight / lineHeight);
|
|
@@ -271,11 +271,11 @@ export class Passage extends React.Component<PassageProps, PassageState> {
|
|
|
271
271
|
return null;
|
|
272
272
|
}
|
|
273
273
|
|
|
274
|
-
// @ts-expect-error
|
|
274
|
+
// @ts-expect-error - TS2769 - No overload matches this call.
|
|
275
275
|
const $ref = $(ReactDOM.findDOMNode(ref));
|
|
276
276
|
// We really care about the first text after the ref, not the
|
|
277
277
|
// ref element itself:
|
|
278
|
-
// @ts-expect-error
|
|
278
|
+
// @ts-expect-error - TS2339 - Property 'next' does not exist on type 'JQueryStatic'.
|
|
279
279
|
let $refText = $ref.next();
|
|
280
280
|
if ($refText.length === 0) {
|
|
281
281
|
// But if there are no elements after the ref, just
|
|
@@ -298,11 +298,11 @@ export class Passage extends React.Component<PassageProps, PassageState> {
|
|
|
298
298
|
return null;
|
|
299
299
|
}
|
|
300
300
|
|
|
301
|
-
// @ts-expect-error
|
|
301
|
+
// @ts-expect-error - TS2769 - No overload matches this call.
|
|
302
302
|
const $ref = $(ReactDOM.findDOMNode(ref));
|
|
303
303
|
// We really care about the last text before the ref, not the
|
|
304
304
|
// ref element itself:
|
|
305
|
-
// @ts-expect-error
|
|
305
|
+
// @ts-expect-error - TS2339 - Property 'prev' does not exist on type 'JQueryStatic'.
|
|
306
306
|
let $refText = $ref.prev();
|
|
307
307
|
if ($refText.length === 0) {
|
|
308
308
|
// But if there are no elements before the ref, just
|
|
@@ -328,7 +328,7 @@ export class Passage extends React.Component<PassageProps, PassageState> {
|
|
|
328
328
|
|
|
329
329
|
_convertPosToLineNumber(absoluteVPos: number): number {
|
|
330
330
|
const content = ReactDOM.findDOMNode(this._contentRef);
|
|
331
|
-
// @ts-expect-error
|
|
331
|
+
// @ts-expect-error - TS2769 - No overload matches this call. | TS2339 - Property 'offset' does not exist on type 'JQueryStatic'.
|
|
332
332
|
const relativeVPos = absoluteVPos - $(content).offset().top;
|
|
333
333
|
const lineHeight = this._getLineHeight();
|
|
334
334
|
|
|
@@ -342,7 +342,7 @@ export class Passage extends React.Component<PassageProps, PassageState> {
|
|
|
342
342
|
if (!ref) {
|
|
343
343
|
return null;
|
|
344
344
|
}
|
|
345
|
-
// @ts-expect-error
|
|
345
|
+
// @ts-expect-error - TS2339 - Property 'getRefContent' does not exist on type 'ReactInstance'.
|
|
346
346
|
return ref.getRefContent();
|
|
347
347
|
}
|
|
348
348
|
|
|
@@ -523,7 +523,7 @@ export class Passage extends React.Component<PassageProps, PassageState> {
|
|
|
523
523
|
/>
|
|
524
524
|
</h3>
|
|
525
525
|
)}
|
|
526
|
-
{/* @ts-expect-error
|
|
526
|
+
{/* @ts-expect-error - TS2454 - Variable 'lineNumbers' is used before being assigned. */}
|
|
527
527
|
{lineNumbers && (
|
|
528
528
|
<div className="line-numbers" aria-hidden={true}>
|
|
529
529
|
{lineNumbers}
|