@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
|
@@ -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
|
@@ -56,7 +56,7 @@ const PropTypePosition = PropTypes.shape({
|
|
|
56
56
|
});
|
|
57
57
|
|
|
58
58
|
class Card extends React.Component<any, any> {
|
|
59
|
-
// @ts-expect-error
|
|
59
|
+
// @ts-expect-error - TS2564 - Property 'mouseMoveUpBound' has no initializer and is not definitely assigned in the constructor.
|
|
60
60
|
mouseMoveUpBound: boolean;
|
|
61
61
|
|
|
62
62
|
static propTypes = {
|
|
@@ -191,7 +191,7 @@ class Card extends React.Component<any, any> {
|
|
|
191
191
|
),
|
|
192
192
|
),
|
|
193
193
|
);
|
|
194
|
-
// @ts-expect-error
|
|
194
|
+
// @ts-expect-error - TS2769 - No overload matches this call. | TS2339 - Property 'animate' does not exist on type 'JQueryStatic'.
|
|
195
195
|
$(ReactDOM.findDOMNode(this)).animate(
|
|
196
196
|
this.props.animateTo,
|
|
197
197
|
Math.max(ms, 1),
|
|
@@ -379,14 +379,14 @@ class Orderer extends React.Component<OrdererProps, OrdererState> {
|
|
|
379
379
|
floating={false}
|
|
380
380
|
content={opt.content}
|
|
381
381
|
width={opt.width}
|
|
382
|
-
// @ts-expect-error
|
|
382
|
+
// @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
383
383
|
linterContext={this.props.linterContext}
|
|
384
384
|
// eslint-disable-next-line react/jsx-no-bind
|
|
385
385
|
onMouseDown={
|
|
386
|
-
// @ts-expect-error
|
|
386
|
+
// @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
387
387
|
this.state.animating
|
|
388
388
|
? $.noop
|
|
389
|
-
: // @ts-expect-error
|
|
389
|
+
: // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
390
390
|
this.onClick.bind(null, "current", i)
|
|
391
391
|
}
|
|
392
392
|
/>
|
|
@@ -409,7 +409,7 @@ class Orderer extends React.Component<OrdererProps, OrdererState> {
|
|
|
409
409
|
}
|
|
410
410
|
|
|
411
411
|
const anySortableCards = sortableCards.length > 0;
|
|
412
|
-
// @ts-expect-error
|
|
412
|
+
// @ts-expect-error - TS2345 - Argument of type 'false | Element' is not assignable to parameter of type 'Element'.
|
|
413
413
|
sortableCards.push(dragging, animating);
|
|
414
414
|
|
|
415
415
|
// If there are no cards in the list, then add a "hint" card
|
|
@@ -481,7 +481,7 @@ class Orderer extends React.Component<OrdererProps, OrdererState> {
|
|
|
481
481
|
loc,
|
|
482
482
|
draggable,
|
|
483
483
|
) => {
|
|
484
|
-
// @ts-expect-error
|
|
484
|
+
// @ts-expect-error - TS2769 - No overload matches this call.
|
|
485
485
|
const $draggable = $(ReactDOM.findDOMNode(draggable));
|
|
486
486
|
const list = this.state.current.slice();
|
|
487
487
|
|
|
@@ -493,7 +493,7 @@ class Orderer extends React.Component<OrdererProps, OrdererState> {
|
|
|
493
493
|
// card from the list
|
|
494
494
|
list.splice(index, 1);
|
|
495
495
|
opt = this.state.current[index];
|
|
496
|
-
// @ts-expect-error
|
|
496
|
+
// @ts-expect-error - TS2322 - Type 'number' is not assignable to type 'null'.
|
|
497
497
|
placeholderIndex = index;
|
|
498
498
|
} else if (type === "bank") {
|
|
499
499
|
opt = this.props.options[index];
|
|
@@ -505,13 +505,13 @@ class Orderer extends React.Component<OrdererProps, OrdererState> {
|
|
|
505
505
|
placeholderIndex: placeholderIndex,
|
|
506
506
|
dragKey: opt.key,
|
|
507
507
|
dragContent: opt.content,
|
|
508
|
-
// @ts-expect-error
|
|
508
|
+
// @ts-expect-error - TS2339 - Property 'width' does not exist on type 'JQueryStatic'.
|
|
509
509
|
dragWidth: $draggable.width(),
|
|
510
|
-
// @ts-expect-error
|
|
510
|
+
// @ts-expect-error - TS2339 - Property 'height' does not exist on type 'JQueryStatic'.
|
|
511
511
|
dragHeight: $draggable.height(),
|
|
512
512
|
grabPos: loc,
|
|
513
513
|
mousePos: loc,
|
|
514
|
-
// @ts-expect-error
|
|
514
|
+
// @ts-expect-error - TS2339 - Property 'position' does not exist on type 'JQueryStatic'.
|
|
515
515
|
offsetPos: $draggable.position(),
|
|
516
516
|
});
|
|
517
517
|
};
|
|
@@ -542,7 +542,7 @@ class Orderer extends React.Component<OrdererProps, OrdererState> {
|
|
|
542
542
|
}
|
|
543
543
|
|
|
544
544
|
this.props.onChange({
|
|
545
|
-
// @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; }'.
|
|
546
546
|
current: list,
|
|
547
547
|
});
|
|
548
548
|
this.setState({
|
|
@@ -556,7 +556,7 @@ class Orderer extends React.Component<OrdererProps, OrdererState> {
|
|
|
556
556
|
|
|
557
557
|
// Find the position of the card we should animate to
|
|
558
558
|
// TODO(alpert): Update mouse position once more before animating?
|
|
559
|
-
// @ts-expect-error
|
|
559
|
+
// @ts-expect-error - TS2769 - No overload matches this call. | TS2339 - Property 'position' does not exist on type 'JQueryStatic'.
|
|
560
560
|
const offset = $(ReactDOM.findDOMNode(draggable)).position();
|
|
561
561
|
let finalOffset = null;
|
|
562
562
|
if (inCardBank) {
|
|
@@ -565,14 +565,14 @@ class Orderer extends React.Component<OrdererProps, OrdererState> {
|
|
|
565
565
|
_.each(
|
|
566
566
|
this.props.options,
|
|
567
567
|
function (opt, i) {
|
|
568
|
-
// @ts-expect-error
|
|
568
|
+
// @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
569
569
|
if (opt.content === this.state.dragContent) {
|
|
570
570
|
const card = ReactDOM.findDOMNode(
|
|
571
571
|
// eslint-disable-next-line react/no-string-refs
|
|
572
|
-
// @ts-expect-error
|
|
572
|
+
// @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
573
573
|
this.refs["bank" + i],
|
|
574
574
|
);
|
|
575
|
-
// @ts-expect-error
|
|
575
|
+
// @ts-expect-error - TS2769 - No overload matches this call. | TS2339 - Property 'position' does not exist on type 'JQueryStatic'.
|
|
576
576
|
finalOffset = $(card).position();
|
|
577
577
|
}
|
|
578
578
|
},
|
|
@@ -583,9 +583,9 @@ class Orderer extends React.Component<OrdererProps, OrdererState> {
|
|
|
583
583
|
// Otherwise, go to the position that the placeholder is at
|
|
584
584
|
finalOffset = $(
|
|
585
585
|
// eslint-disable-next-line react/no-string-refs
|
|
586
|
-
// @ts-expect-error
|
|
586
|
+
// @ts-expect-error - TS2769 - No overload matches this call.
|
|
587
587
|
ReactDOM.findDOMNode(this.refs.placeholder),
|
|
588
|
-
// @ts-expect-error
|
|
588
|
+
// @ts-expect-error - TS2339 - Property 'position' does not exist on type 'JQueryStatic'.
|
|
589
589
|
).position();
|
|
590
590
|
}
|
|
591
591
|
|
|
@@ -629,17 +629,17 @@ class Orderer extends React.Component<OrdererProps, OrdererState> {
|
|
|
629
629
|
// Find the correct index for a card given the current cards.
|
|
630
630
|
const isHorizontal = this.props.layout === HORIZONTAL;
|
|
631
631
|
// eslint-disable-next-line react/no-string-refs
|
|
632
|
-
// @ts-expect-error
|
|
632
|
+
// @ts-expect-error - TS2769 - No overload matches this call.
|
|
633
633
|
const $dragList = $(ReactDOM.findDOMNode(this.refs.dragList));
|
|
634
|
-
// @ts-expect-error
|
|
634
|
+
// @ts-expect-error - TS2339 - Property 'offset' does not exist on type 'JQueryStatic'.
|
|
635
635
|
const leftEdge = $dragList.offset().left;
|
|
636
|
-
// @ts-expect-error
|
|
636
|
+
// @ts-expect-error - TS2339 - Property 'offset' does not exist on type 'JQueryStatic'.
|
|
637
637
|
const topEdge = $dragList.offset().top;
|
|
638
638
|
const midWidth =
|
|
639
|
-
// @ts-expect-error
|
|
639
|
+
// @ts-expect-error - TS2769 - No overload matches this call. | TS2339 - Property 'offset' does not exist on type 'JQueryStatic'.
|
|
640
640
|
$(ReactDOM.findDOMNode(draggable)).offset().left - leftEdge;
|
|
641
641
|
const midHeight =
|
|
642
|
-
// @ts-expect-error
|
|
642
|
+
// @ts-expect-error - TS2769 - No overload matches this call. | TS2339 - Property 'offset' does not exist on type 'JQueryStatic'.
|
|
643
643
|
$(ReactDOM.findDOMNode(draggable)).offset().top - topEdge;
|
|
644
644
|
let index = 0;
|
|
645
645
|
let sumWidth = 0;
|
|
@@ -651,10 +651,10 @@ class Orderer extends React.Component<OrdererProps, OrdererState> {
|
|
|
651
651
|
function (opt, i) {
|
|
652
652
|
const card = ReactDOM.findDOMNode(
|
|
653
653
|
// eslint-disable-next-line react/no-string-refs
|
|
654
|
-
// @ts-expect-error
|
|
654
|
+
// @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
655
655
|
this.refs["sortable" + i],
|
|
656
656
|
);
|
|
657
|
-
// @ts-expect-error
|
|
657
|
+
// @ts-expect-error - TS2769 - No overload matches this call. | TS2339 - Property 'outerWidth' does not exist on type 'JQueryStatic'.
|
|
658
658
|
const outerWidth = $(card).outerWidth(true);
|
|
659
659
|
if (midWidth > sumWidth + outerWidth / 2) {
|
|
660
660
|
index += 1;
|
|
@@ -669,10 +669,10 @@ class Orderer extends React.Component<OrdererProps, OrdererState> {
|
|
|
669
669
|
function (opt, i) {
|
|
670
670
|
const card = ReactDOM.findDOMNode(
|
|
671
671
|
// eslint-disable-next-line react/no-string-refs
|
|
672
|
-
// @ts-expect-error
|
|
672
|
+
// @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
673
673
|
this.refs["sortable" + i],
|
|
674
674
|
);
|
|
675
|
-
// @ts-expect-error
|
|
675
|
+
// @ts-expect-error - TS2769 - No overload matches this call. | TS2339 - Property 'outerHeight' does not exist on type 'JQueryStatic'.
|
|
676
676
|
const outerHeight = $(card).outerHeight(true);
|
|
677
677
|
if (midHeight > sumHeight + outerHeight / 2) {
|
|
678
678
|
index += 1;
|
|
@@ -692,26 +692,26 @@ class Orderer extends React.Component<OrdererProps, OrdererState> {
|
|
|
692
692
|
}
|
|
693
693
|
|
|
694
694
|
const isHorizontal = this.props.layout === HORIZONTAL,
|
|
695
|
-
// @ts-expect-error
|
|
695
|
+
// @ts-expect-error - TS2769 - No overload matches this call.
|
|
696
696
|
$draggable = $(ReactDOM.findDOMNode(draggable)),
|
|
697
697
|
// eslint-disable-next-line react/no-string-refs
|
|
698
|
-
// @ts-expect-error
|
|
698
|
+
// @ts-expect-error - TS2769 - No overload matches this call.
|
|
699
699
|
$bank = $(ReactDOM.findDOMNode(this.refs.bank)),
|
|
700
|
-
// @ts-expect-error
|
|
700
|
+
// @ts-expect-error - TS2339 - Property 'offset' does not exist on type 'JQueryStatic'.
|
|
701
701
|
draggableOffset = $draggable.offset(),
|
|
702
|
-
// @ts-expect-error
|
|
702
|
+
// @ts-expect-error - TS2339 - Property 'offset' does not exist on type 'JQueryStatic'.
|
|
703
703
|
bankOffset = $bank.offset(),
|
|
704
|
-
// @ts-expect-error
|
|
704
|
+
// @ts-expect-error - TS2339 - Property 'outerHeight' does not exist on type 'JQueryStatic'.
|
|
705
705
|
draggableHeight = $draggable.outerHeight(true),
|
|
706
|
-
// @ts-expect-error
|
|
706
|
+
// @ts-expect-error - TS2339 - Property 'outerHeight' does not exist on type 'JQueryStatic'.
|
|
707
707
|
bankHeight = $bank.outerHeight(true),
|
|
708
|
-
// @ts-expect-error
|
|
708
|
+
// @ts-expect-error - TS2339 - Property 'outerWidth' does not exist on type 'JQueryStatic'.
|
|
709
709
|
bankWidth = $bank.outerWidth(true),
|
|
710
710
|
// eslint-disable-next-line react/no-string-refs
|
|
711
711
|
dragList = ReactDOM.findDOMNode(this.refs.dragList),
|
|
712
|
-
// @ts-expect-error
|
|
712
|
+
// @ts-expect-error - TS2769 - No overload matches this call. | TS2339 - Property 'width' does not exist on type 'JQueryStatic'.
|
|
713
713
|
dragListWidth = $(dragList).width(),
|
|
714
|
-
// @ts-expect-error
|
|
714
|
+
// @ts-expect-error - TS2339 - Property 'outerWidth' does not exist on type 'JQueryStatic'.
|
|
715
715
|
draggableWidth = $draggable.outerWidth(true);
|
|
716
716
|
|
|
717
717
|
if (isHorizontal) {
|
|
@@ -734,7 +734,7 @@ class Orderer extends React.Component<OrdererProps, OrdererState> {
|
|
|
734
734
|
return {content: value};
|
|
735
735
|
});
|
|
736
736
|
this.props.onChange({
|
|
737
|
-
// @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; }'.
|
|
738
738
|
current: list,
|
|
739
739
|
});
|
|
740
740
|
|
|
@@ -750,7 +750,7 @@ class Orderer extends React.Component<OrdererProps, OrdererState> {
|
|
|
750
750
|
};
|
|
751
751
|
|
|
752
752
|
simpleValidate: (arg1: any) => any = (rubric) => {
|
|
753
|
-
// @ts-expect-error
|
|
753
|
+
// @ts-expect-error - TS2339 - Property 'validate' does not exist on type 'typeof Orderer'.
|
|
754
754
|
return Orderer.validate(this.getUserInput(), rubric);
|
|
755
755
|
};
|
|
756
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
|
|
|
@@ -50,7 +50,7 @@ class PassageRefTarget extends React.Component<any> {
|
|
|
50
50
|
return (
|
|
51
51
|
<Renderer
|
|
52
52
|
content={this.props.content}
|
|
53
|
-
// @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<...>'.
|
|
54
54
|
inline={true}
|
|
55
55
|
apiOptions={this.props.apiOptions}
|
|
56
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}
|
package/src/widgets/plotter.tsx
CHANGED
|
@@ -67,7 +67,7 @@ type State = {
|
|
|
67
67
|
};
|
|
68
68
|
|
|
69
69
|
export class Plotter extends React.Component<Props, State> {
|
|
70
|
-
// @ts-expect-error
|
|
70
|
+
// @ts-expect-error - TS2564 - Property 'shouldSetupGraphie' has no initializer and is not definitely assigned in the constructor.
|
|
71
71
|
shouldSetupGraphie: boolean;
|
|
72
72
|
_isMounted = false;
|
|
73
73
|
horizHairline: any;
|
|
@@ -164,7 +164,7 @@ export class Plotter extends React.Component<Props, State> {
|
|
|
164
164
|
const self = this;
|
|
165
165
|
self.shouldSetupGraphie = false;
|
|
166
166
|
const graphieDiv = ReactDOM.findDOMNode(self.refs.graphieDiv);
|
|
167
|
-
// @ts-expect-error
|
|
167
|
+
// @ts-expect-error - TS2769 - No overload matches this call. | TS2339 - Property 'empty' does not exist on type 'JQueryStatic'.
|
|
168
168
|
$(graphieDiv).empty();
|
|
169
169
|
const graphie = GraphUtils.createGraphie(graphieDiv);
|
|
170
170
|
|
|
@@ -561,7 +561,7 @@ export class Plotter extends React.Component<Props, State> {
|
|
|
561
561
|
_.each(self.props.categories, function (category, i) {
|
|
562
562
|
const x = 0.5 + i * c.barWidth;
|
|
563
563
|
|
|
564
|
-
// @ts-expect-error
|
|
564
|
+
// @ts-expect-error - TS2345 - Argument of type 'Promise<any>' is not assignable to parameter of type 'never'.
|
|
565
565
|
categoryHeightPromises.push(self.labelCategory(x, category));
|
|
566
566
|
const tickHeight = 6 / c.scale[1];
|
|
567
567
|
graphie.style(
|
|
@@ -611,7 +611,7 @@ export class Plotter extends React.Component<Props, State> {
|
|
|
611
611
|
i === self.props.categories.length - 1
|
|
612
612
|
) {
|
|
613
613
|
categoryHeightPromises.push(
|
|
614
|
-
// @ts-expect-error
|
|
614
|
+
// @ts-expect-error - TS2345 - Argument of type 'Promise<any>' is not assignable to parameter of type 'never'.
|
|
615
615
|
self.labelCategory(x, category),
|
|
616
616
|
);
|
|
617
617
|
tickStart *= 1.5;
|
|
@@ -619,7 +619,7 @@ export class Plotter extends React.Component<Props, State> {
|
|
|
619
619
|
}
|
|
620
620
|
} else {
|
|
621
621
|
categoryHeightPromises.push(
|
|
622
|
-
// @ts-expect-error
|
|
622
|
+
// @ts-expect-error - TS2345 - Argument of type 'Promise<any>' is not assignable to parameter of type 'never'.
|
|
623
623
|
self.labelCategory(x, category),
|
|
624
624
|
);
|
|
625
625
|
}
|
|
@@ -915,7 +915,7 @@ export class Plotter extends React.Component<Props, State> {
|
|
|
915
915
|
if (i > 0) {
|
|
916
916
|
c.graph.lines[i] = Interactive2.addMovableLine(graphie, {
|
|
917
917
|
points: [c.graph.points[i - 1], c.graph.points[i]],
|
|
918
|
-
// @ts-expect-error
|
|
918
|
+
// @ts-expect-error - TS2339 - Property 'constraints' does not exist on type '(graphie: any, movable: any, options: any) => void'.
|
|
919
919
|
constraints: Interactive2.MovablePoint.constraints.fixed(),
|
|
920
920
|
normalStyle: {
|
|
921
921
|
stroke: KhanColors.BLUE_C,
|
|
@@ -1039,7 +1039,7 @@ export class Plotter extends React.Component<Props, State> {
|
|
|
1039
1039
|
.css({fill: "#000", opacity: 0.0, cursor: "pointer"})
|
|
1040
1040
|
.on("vmousedown", function (e) {
|
|
1041
1041
|
e.preventDefault();
|
|
1042
|
-
// @ts-expect-error
|
|
1042
|
+
// @ts-expect-error - TS2339 - Property 'whichPicClicked' does not exist on type 'Plotter'.
|
|
1043
1043
|
self.whichPicClicked = i;
|
|
1044
1044
|
self.setPicHeight(i, topY);
|
|
1045
1045
|
|
|
@@ -1069,7 +1069,7 @@ export class Plotter extends React.Component<Props, State> {
|
|
|
1069
1069
|
newMidY + 0.5 * c.scaleY,
|
|
1070
1070
|
c.dimY,
|
|
1071
1071
|
);
|
|
1072
|
-
// @ts-expect-error
|
|
1072
|
+
// @ts-expect-error - TS2339 - Property 'whichPicClicked' does not exist on type 'Plotter'.
|
|
1073
1073
|
self.setPicHeight(self.whichPicClicked, newTopY);
|
|
1074
1074
|
});
|
|
1075
1075
|
});
|
|
@@ -1158,7 +1158,7 @@ export class Plotter extends React.Component<Props, State> {
|
|
|
1158
1158
|
};
|
|
1159
1159
|
|
|
1160
1160
|
simpleValidate: (arg1: any) => any = (rubric) => {
|
|
1161
|
-
// @ts-expect-error
|
|
1161
|
+
// @ts-expect-error - TS2339 - Property 'validate' does not exist on type 'typeof Plotter'.
|
|
1162
1162
|
return Plotter.validate(this.getUserInput(), rubric);
|
|
1163
1163
|
};
|
|
1164
1164
|
|