@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,9 +133,9 @@ export default class Marker extends React.Component<Props, State> {
|
|
|
133
133
|
tabIndex={isDisabled ? -1 : 0}
|
|
134
134
|
onFocus={() => this.handleFocus()}
|
|
135
135
|
onBlur={() => this.handleBlur()}
|
|
136
|
-
// @ts-expect-error
|
|
136
|
+
// @ts-expect-error - TS2345 - Argument of type 'MouseEvent<HTMLButtonElement, MouseEvent>' is not assignable to parameter of type 'MouseEvent'.
|
|
137
137
|
onClick={(e) => this.props.onClick(e)}
|
|
138
|
-
// @ts-expect-error
|
|
138
|
+
// @ts-expect-error - TS2345 - Argument of type 'KeyboardEvent<HTMLButtonElement>' is not assignable to parameter of type 'KeyboardEvent'.
|
|
139
139
|
onKeyDown={(e) => this.props.onKeyDown(e)}
|
|
140
140
|
>
|
|
141
141
|
{this.renderIcon()}
|
|
@@ -335,7 +335,7 @@ describe("LabelImage", function () {
|
|
|
335
335
|
|
|
336
336
|
expect(
|
|
337
337
|
markers[
|
|
338
|
-
// @ts-expect-error
|
|
338
|
+
// @ts-expect-error - TS2345 - Argument of type '({ label: string; answers: readonly []; selected: readonly []; x: 0; y: 0; } | { label: string; y: number; showCorrectness: string; answers: readonly []; selected: readonly []; x: 0; } | { label: string; x: number; showCorrectness: string; answers: readonly []; selected: readonly []; y: 0; })[]' is not assignable to parameter of type 'readonly InteractiveMarkerType[]'.
|
|
339
339
|
LabelImage.navigateToMarkerIndex({x: 0, y: 0}, markers, 0)
|
|
340
340
|
].label,
|
|
341
341
|
).toEqual("this");
|
|
@@ -99,7 +99,7 @@ class LabelImage extends React.Component<LabelImageProps, LabelImageState> {
|
|
|
99
99
|
} as const;
|
|
100
100
|
|
|
101
101
|
if (marker.selected && marker.selected.length > 0) {
|
|
102
|
-
// @ts-expect-error
|
|
102
|
+
// @ts-expect-error - TS2540 - Cannot assign to 'hasAnswers' because it is a read-only property.
|
|
103
103
|
score.hasAnswers = true;
|
|
104
104
|
}
|
|
105
105
|
|
|
@@ -109,14 +109,14 @@ class LabelImage extends React.Component<LabelImageProps, LabelImageState> {
|
|
|
109
109
|
marker.selected.length === marker.answers.length
|
|
110
110
|
) {
|
|
111
111
|
// All correct answers are selected by the user.
|
|
112
|
-
// @ts-expect-error
|
|
112
|
+
// @ts-expect-error - TS2540 - Cannot assign to 'isCorrect' because it is a read-only property.
|
|
113
113
|
score.isCorrect = marker.selected.every((choice) =>
|
|
114
114
|
marker.answers.includes(choice),
|
|
115
115
|
);
|
|
116
116
|
}
|
|
117
117
|
} else if (!marker.selected || marker.selected.length === 0) {
|
|
118
118
|
// Correct as no answers should be selected by the user.
|
|
119
|
-
// @ts-expect-error
|
|
119
|
+
// @ts-expect-error - TS2540 - Cannot assign to 'isCorrect' because it is a read-only property.
|
|
120
120
|
score.isCorrect = true;
|
|
121
121
|
}
|
|
122
122
|
|
|
@@ -217,9 +217,9 @@ class LabelImage extends React.Component<LabelImageProps, LabelImageState> {
|
|
|
217
217
|
for (const side of Object.keys(triangles)) {
|
|
218
218
|
const corners = triangles[side];
|
|
219
219
|
|
|
220
|
-
// @ts-expect-error
|
|
220
|
+
// @ts-expect-error - TS2556 - A spread argument must either have a tuple type or be passed to a rest parameter.
|
|
221
221
|
if (LabelImage.pointInTriangle(p, ...corners)) {
|
|
222
|
-
// @ts-expect-error
|
|
222
|
+
// @ts-expect-error - TS2322 - Type 'string' is not assignable to type '"left" | "top" | "center" | "right" | "bottom"'.
|
|
223
223
|
return side;
|
|
224
224
|
}
|
|
225
225
|
}
|
|
@@ -385,7 +385,7 @@ class LabelImage extends React.Component<LabelImageProps, LabelImageState> {
|
|
|
385
385
|
|
|
386
386
|
// Update Perseus widget state with user selected answers without
|
|
387
387
|
// triggering interaction events for listeners.
|
|
388
|
-
// @ts-expect-error
|
|
388
|
+
// @ts-expect-error - TS2345 - Argument of type 'null' is not assignable to parameter of type '(() => unknown) | undefined'.
|
|
389
389
|
onChange({markers: updatedMarkers}, null, true);
|
|
390
390
|
}
|
|
391
391
|
|
|
@@ -526,7 +526,7 @@ class LabelImage extends React.Component<LabelImageProps, LabelImageState> {
|
|
|
526
526
|
const marker =
|
|
527
527
|
this._markers[
|
|
528
528
|
LabelImage.navigateToMarkerIndex(
|
|
529
|
-
// @ts-expect-error
|
|
529
|
+
// @ts-expect-error - TS2345 - Argument of type '{ x: number; y: number; } | { x: number; y: number; } | { x: number; y: number; } | { x: number; y: number; }' is not assignable to parameter of type 'Direction'.
|
|
530
530
|
navigateDirection,
|
|
531
531
|
markers,
|
|
532
532
|
index,
|
|
@@ -173,7 +173,7 @@ const flipTilesPattern = (oldCells: any, tileY: any, tileX, pattern: any) => {
|
|
|
173
173
|
class LightsPuzzle extends React.Component<any> {
|
|
174
174
|
_currPattern: any;
|
|
175
175
|
_nextPattern: any;
|
|
176
|
-
// @ts-expect-error
|
|
176
|
+
// @ts-expect-error - TS2564 - Property '_patternIndex' has no initializer and is not definitely assigned in the constructor.
|
|
177
177
|
_patternIndex: number;
|
|
178
178
|
|
|
179
179
|
static propTypes = {
|
|
@@ -237,7 +237,7 @@ class LightsPuzzle extends React.Component<any> {
|
|
|
237
237
|
}
|
|
238
238
|
|
|
239
239
|
change: (...args: ReadonlyArray<unknown>) => any = (...args) => {
|
|
240
|
-
// @ts-expect-error
|
|
240
|
+
// @ts-expect-error - TS2345 - Argument of type 'readonly unknown[]' is not assignable to parameter of type 'any[]'.
|
|
241
241
|
return Changeable.change.apply(this, args);
|
|
242
242
|
};
|
|
243
243
|
|
package/src/widgets/matcher.tsx
CHANGED
|
@@ -157,7 +157,7 @@ class Matcher extends React.Component<any, any> {
|
|
|
157
157
|
</td>
|
|
158
158
|
<td className={css(styles.column, styles.columnRight)}>
|
|
159
159
|
<Sortable
|
|
160
|
-
// @ts-expect-error
|
|
160
|
+
// @ts-expect-error - TS2322 - Type 'readonly unknown[]' is not assignable to type 'readonly string[]'.
|
|
161
161
|
options={right}
|
|
162
162
|
layout={Layout.VERTICAL}
|
|
163
163
|
padding={this.props.padding}
|
|
@@ -204,10 +204,10 @@ class Matcher extends React.Component<any, any> {
|
|
|
204
204
|
|
|
205
205
|
return {
|
|
206
206
|
// eslint-disable-next-line react/no-string-refs
|
|
207
|
-
// @ts-expect-error
|
|
207
|
+
// @ts-expect-error - TS2339 - Property 'getOptions' does not exist on type 'ReactInstance'.
|
|
208
208
|
left: this.refs.left.getOptions(),
|
|
209
209
|
// eslint-disable-next-line react/no-string-refs
|
|
210
|
-
// @ts-expect-error
|
|
210
|
+
// @ts-expect-error - TS2339 - Property 'getOptions' does not exist on type 'ReactInstance'.
|
|
211
211
|
right: this.refs.right.getOptions(),
|
|
212
212
|
};
|
|
213
213
|
};
|
|
@@ -219,7 +219,7 @@ class Matcher extends React.Component<any, any> {
|
|
|
219
219
|
index,
|
|
220
220
|
) => {
|
|
221
221
|
// eslint-disable-next-line react/no-string-refs
|
|
222
|
-
// @ts-expect-error
|
|
222
|
+
// @ts-expect-error - TS2339 - Property 'moveOptionToIndex' does not exist on type 'ReactInstance'.
|
|
223
223
|
this.refs.left.moveOptionToIndex(option, index);
|
|
224
224
|
};
|
|
225
225
|
|
|
@@ -230,12 +230,12 @@ class Matcher extends React.Component<any, any> {
|
|
|
230
230
|
index,
|
|
231
231
|
) => {
|
|
232
232
|
// eslint-disable-next-line react/no-string-refs
|
|
233
|
-
// @ts-expect-error
|
|
233
|
+
// @ts-expect-error - TS2339 - Property 'moveOptionToIndex' does not exist on type 'ReactInstance'.
|
|
234
234
|
this.refs.right.moveOptionToIndex(option, index);
|
|
235
235
|
};
|
|
236
236
|
|
|
237
237
|
simpleValidate: (arg1: any) => any = (rubric) => {
|
|
238
|
-
// @ts-expect-error
|
|
238
|
+
// @ts-expect-error - TS2339 - Property 'validate' does not exist on type 'typeof Matcher'.
|
|
239
239
|
return Matcher.validate(this.getUserInput(), rubric);
|
|
240
240
|
};
|
|
241
241
|
}
|
package/src/widgets/matrix.tsx
CHANGED
|
@@ -123,7 +123,7 @@ type State = {
|
|
|
123
123
|
enterTheMatrix: number;
|
|
124
124
|
};
|
|
125
125
|
class Matrix extends React.Component<Props, State> {
|
|
126
|
-
// @ts-expect-error
|
|
126
|
+
// @ts-expect-error - TS2564 - Property 'cursorPosition' has no initializer and is not definitely assigned in the constructor.
|
|
127
127
|
cursorPosition: [number, number];
|
|
128
128
|
|
|
129
129
|
static defaultProps: DefaultProps = {
|
|
@@ -323,7 +323,7 @@ class Matrix extends React.Component<Props, State> {
|
|
|
323
323
|
} as const;
|
|
324
324
|
|
|
325
325
|
MatrixInput = (
|
|
326
|
-
// @ts-expect-error
|
|
326
|
+
// @ts-expect-error - TS2322 - Type '{ style: CSSProperties; className: "inside" | "outside"; ref: string; value: number | null; disabled: boolean; onFocus: () => void; onBlur: () => void; onKeyDown: (e: any) => void; onChange: (value: any, cb: any) => void; }' is not assignable to type 'Pick<Readonly<Props> & Readonly<{ children?: ReactNode; }>, "children" | "style" | "id" | "className" | "placeholder" | "onFocus" | "onBlur" | "onChange" | "onKeyDown" | "labelText">'.
|
|
327
327
|
<TextInput {...updatedProps} />
|
|
328
328
|
);
|
|
329
329
|
}
|
|
@@ -387,7 +387,7 @@ class Matrix extends React.Component<Props, State> {
|
|
|
387
387
|
focusInputPath: (arg1: any) => void = (path) => {
|
|
388
388
|
const inputID = getRefForPath(path);
|
|
389
389
|
// eslint-disable-next-line react/no-string-refs
|
|
390
|
-
// @ts-expect-error
|
|
390
|
+
// @ts-expect-error - TS2339 - Property 'focus' does not exist on type 'ReactInstance'.
|
|
391
391
|
this.refs[inputID].focus();
|
|
392
392
|
};
|
|
393
393
|
|
|
@@ -398,7 +398,7 @@ class Matrix extends React.Component<Props, State> {
|
|
|
398
398
|
|
|
399
399
|
const inputID = getRefForPath(path);
|
|
400
400
|
// eslint-disable-next-line react/no-string-refs
|
|
401
|
-
// @ts-expect-error
|
|
401
|
+
// @ts-expect-error - TS2339 - Property 'blur' does not exist on type 'ReactInstance'.
|
|
402
402
|
this.refs[inputID].blur();
|
|
403
403
|
};
|
|
404
404
|
|
|
@@ -431,37 +431,37 @@ class Matrix extends React.Component<Props, State> {
|
|
|
431
431
|
|
|
432
432
|
// eslint-disable-next-line react/no-string-refs
|
|
433
433
|
const curInput = this.refs[getRefForPath(getInputPath(row, col))];
|
|
434
|
-
// @ts-expect-error
|
|
434
|
+
// @ts-expect-error - TS2339 - Property 'getStringValue' does not exist on type 'ReactInstance'.
|
|
435
435
|
const curValueString = curInput.getStringValue();
|
|
436
|
-
// @ts-expect-error
|
|
436
|
+
// @ts-expect-error - TS2339 - Property 'getSelectionStart' does not exist on type 'ReactInstance'.
|
|
437
437
|
const cursorStartPosition = curInput.getSelectionStart();
|
|
438
|
-
// @ts-expect-error
|
|
438
|
+
// @ts-expect-error - TS2339 - Property 'getSelectionEnd' does not exist on type 'ReactInstance'.
|
|
439
439
|
const cursorEndPosition = curInput.getSelectionEnd();
|
|
440
440
|
|
|
441
441
|
let nextPath = null;
|
|
442
442
|
if (e.key === "ArrowUp" && row > 0) {
|
|
443
|
-
// @ts-expect-error
|
|
443
|
+
// @ts-expect-error - TS2322 - Type 'readonly string[]' is not assignable to type 'null'.
|
|
444
444
|
nextPath = getInputPath(row - 1, col);
|
|
445
445
|
} else if (e.key === "ArrowDown" && row + 1 < maxRow) {
|
|
446
|
-
// @ts-expect-error
|
|
446
|
+
// @ts-expect-error - TS2322 - Type 'readonly string[]' is not assignable to type 'null'.
|
|
447
447
|
nextPath = getInputPath(row + 1, col);
|
|
448
448
|
} else if (e.key === "ArrowLeft" && col > 0) {
|
|
449
449
|
if (cursorStartPosition === 0 && cursorEndPosition === 0) {
|
|
450
450
|
// Only go to next input if we're at the *start* of the content
|
|
451
|
-
// @ts-expect-error
|
|
451
|
+
// @ts-expect-error - TS2322 - Type 'readonly string[]' is not assignable to type 'null'.
|
|
452
452
|
nextPath = getInputPath(row, col - 1);
|
|
453
453
|
}
|
|
454
454
|
} else if (e.key === "ArrowRight" && col + 1 < maxCol) {
|
|
455
455
|
if (cursorStartPosition === curValueString.length) {
|
|
456
456
|
// Only go to next input if we're at the *end* of the content
|
|
457
|
-
// @ts-expect-error
|
|
457
|
+
// @ts-expect-error - TS2322 - Type 'readonly string[]' is not assignable to type 'null'.
|
|
458
458
|
nextPath = getInputPath(row, col + 1);
|
|
459
459
|
}
|
|
460
460
|
} else if (e.key === "Enter") {
|
|
461
|
-
// @ts-expect-error
|
|
461
|
+
// @ts-expect-error - TS2322 - Type 'number' is not assignable to type 'null'.
|
|
462
462
|
enterTheMatrix = this.state.enterTheMatrix + 1;
|
|
463
463
|
} else if (e.key === "Escape") {
|
|
464
|
-
// @ts-expect-error
|
|
464
|
+
// @ts-expect-error - TS2322 - Type '0' is not assignable to type 'null'.
|
|
465
465
|
enterTheMatrix = 0;
|
|
466
466
|
}
|
|
467
467
|
|
|
@@ -475,17 +475,17 @@ class Matrix extends React.Component<Props, State> {
|
|
|
475
475
|
|
|
476
476
|
// Multiply by 2 to ensure the cursor always ends up at the end;
|
|
477
477
|
// Opera sometimes sees a carriage return as 2 characters.
|
|
478
|
-
// @ts-expect-error
|
|
478
|
+
// @ts-expect-error - TS2339 - Property 'getStringValue' does not exist on type 'ReactInstance'.
|
|
479
479
|
const inputValString = input.getStringValue();
|
|
480
480
|
const valueLength = inputValString.length * 2;
|
|
481
481
|
|
|
482
|
-
// @ts-expect-error
|
|
482
|
+
// @ts-expect-error - TS2339 - Property 'focus' does not exist on type 'ReactInstance'.
|
|
483
483
|
input.focus();
|
|
484
484
|
if (e.key === "ArrowRight") {
|
|
485
|
-
// @ts-expect-error
|
|
485
|
+
// @ts-expect-error - TS2339 - Property 'setSelectionRange' does not exist on type 'ReactInstance'.
|
|
486
486
|
input.setSelectionRange(0, 0);
|
|
487
487
|
} else {
|
|
488
|
-
// @ts-expect-error
|
|
488
|
+
// @ts-expect-error - TS2339 - Property 'setSelectionRange' does not exist on type 'ReactInstance'.
|
|
489
489
|
input.setSelectionRange(valueLength, valueLength);
|
|
490
490
|
}
|
|
491
491
|
}
|
|
@@ -524,7 +524,7 @@ class Matrix extends React.Component<Props, State> {
|
|
|
524
524
|
};
|
|
525
525
|
|
|
526
526
|
simpleValidate: (arg1: any) => any = (rubric) => {
|
|
527
|
-
// @ts-expect-error
|
|
527
|
+
// @ts-expect-error - TS2339 - Property 'validate' does not exist on type 'typeof Matrix'.
|
|
528
528
|
return Matrix.validate(this.getUserInput(), rubric);
|
|
529
529
|
};
|
|
530
530
|
}
|
|
@@ -559,7 +559,7 @@ _.extend(Matrix, {
|
|
|
559
559
|
});
|
|
560
560
|
const result = validator(supplied[row][col]);
|
|
561
561
|
if (result.message) {
|
|
562
|
-
// @ts-expect-error
|
|
562
|
+
// @ts-expect-error - TS2322 - Type 'string' is not assignable to type 'null'.
|
|
563
563
|
message = result.message;
|
|
564
564
|
}
|
|
565
565
|
if (!result.correct) {
|
|
@@ -616,7 +616,7 @@ const staticTransform: (arg1: any) => any = (editorProps) => {
|
|
|
616
616
|
);
|
|
617
617
|
// We convert matrix cells from numbers to string to match the expected
|
|
618
618
|
// input into the rendered widget.
|
|
619
|
-
// @ts-expect-error
|
|
619
|
+
// @ts-expect-error - TS2339 - Property 'answers' does not exist on type 'Pick<any, "suffix" | "prefix" | "matrixBoardSize">'.
|
|
620
620
|
widgetProps.answers = _.map(editorProps.answers, (row) => {
|
|
621
621
|
// Replace null values with empty string
|
|
622
622
|
return _.map(row, (cell) => (cell != null ? String(cell) : ""));
|
package/src/widgets/measurer.tsx
CHANGED
|
@@ -79,7 +79,7 @@ const Measurer: any = createReactClass({
|
|
|
79
79
|
left: image.left,
|
|
80
80
|
}}
|
|
81
81
|
>
|
|
82
|
-
{/* @ts-expect-error
|
|
82
|
+
{/* @ts-expect-error - TS2741 - Property 'alt' is missing in type '{ src: any; }' but required in type 'Pick<Readonly<Props> & Readonly<{ children?: ReactNode; }>, "children" | "height" | "width" | "title" | "alt" | "trackInteraction" | "preloader" | "allowFullBleed" | "extraGraphie" | "overrideAriaHidden">'. */}
|
|
83
83
|
<SvgImage src={image.url} />
|
|
84
84
|
</div>
|
|
85
85
|
)}
|
|
@@ -105,7 +105,7 @@ const Measurer: any = createReactClass({
|
|
|
105
105
|
"rulerLength",
|
|
106
106
|
],
|
|
107
107
|
function (prop) {
|
|
108
|
-
// @ts-expect-error
|
|
108
|
+
// @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
109
109
|
return prevProps[prop] !== this.props[prop];
|
|
110
110
|
},
|
|
111
111
|
this,
|
|
@@ -119,7 +119,7 @@ const Measurer: any = createReactClass({
|
|
|
119
119
|
setupGraphie: function () {
|
|
120
120
|
// eslint-disable-next-line react/no-string-refs
|
|
121
121
|
const graphieDiv = ReactDOM.findDOMNode(this.refs.graphieDiv);
|
|
122
|
-
// @ts-expect-error
|
|
122
|
+
// @ts-expect-error - TS2769 - No overload matches this call. | TS2339 - Property 'empty' does not exist on type 'JQueryStatic'.
|
|
123
123
|
$(graphieDiv).empty();
|
|
124
124
|
const graphie = (this.graphie = GraphUtils.createGraphie(graphieDiv));
|
|
125
125
|
|
|
@@ -7,7 +7,7 @@ function assertApproximately(actual: any, expected: number, allowed: number) {
|
|
|
7
7
|
|
|
8
8
|
describe("Molecule layout", () => {
|
|
9
9
|
describe("Simple molecules", () => {
|
|
10
|
-
// @ts-expect-error
|
|
10
|
+
// @ts-expect-error - TS2554 - Expected 2 arguments, but got 1.
|
|
11
11
|
const parsedAtoms = SmilesParser.parse("CC");
|
|
12
12
|
const converted = Layout._convertTree({}, [], parsedAtoms);
|
|
13
13
|
const atoms = converted[0];
|
|
@@ -72,7 +72,7 @@ describe("Molecule layout", () => {
|
|
|
72
72
|
});
|
|
73
73
|
|
|
74
74
|
describe("Layout at a three-way junction", () => {
|
|
75
|
-
// @ts-expect-error
|
|
75
|
+
// @ts-expect-error - TS2554 - Expected 2 arguments, but got 1.
|
|
76
76
|
const layoutItems = Layout.layout(SmilesParser.parse("CC(C)C"), 0);
|
|
77
77
|
it("should place the second atom in the center", () => {
|
|
78
78
|
const centerAtom = layoutItems.find((item) => item.idx === "2,0");
|
|
@@ -112,7 +112,7 @@ describe("Molecule layout", () => {
|
|
|
112
112
|
});
|
|
113
113
|
|
|
114
114
|
describe("Layout at a four-way junction", () => {
|
|
115
|
-
// @ts-expect-error
|
|
115
|
+
// @ts-expect-error - TS2554 - Expected 2 arguments, but got 1.
|
|
116
116
|
const layoutItems = Layout.layout(SmilesParser.parse("CC(C)(C)C"), 0);
|
|
117
117
|
it("should place the second atom in the center", () => {
|
|
118
118
|
const centerAtom = layoutItems.find((item) => item.idx === "2,0");
|
|
@@ -148,7 +148,7 @@ describe("Molecule layout", () => {
|
|
|
148
148
|
});
|
|
149
149
|
|
|
150
150
|
describe("Triple bond layout", () => {
|
|
151
|
-
// @ts-expect-error
|
|
151
|
+
// @ts-expect-error - TS2554 - Expected 2 arguments, but got 1.
|
|
152
152
|
const layoutItems = Layout.layout(SmilesParser.parse("CC#CC"), 0);
|
|
153
153
|
it("should place all the atoms colinearly", () => {
|
|
154
154
|
const atoms = layoutItems.filter((item) => item.idx);
|
|
@@ -5,7 +5,7 @@ const parser = SmilesParser.parse;
|
|
|
5
5
|
describe("SMILES parser", () => {
|
|
6
6
|
describe("single atom parsing", () => {
|
|
7
7
|
it("should parse a single bare atom", () => {
|
|
8
|
-
// @ts-expect-error
|
|
8
|
+
// @ts-expect-error - TS2554 - Expected 2 arguments, but got 1.
|
|
9
9
|
const parsed = parser("C");
|
|
10
10
|
expect(parsed).toEqual({
|
|
11
11
|
type: "atom",
|
|
@@ -16,7 +16,7 @@ describe("SMILES parser", () => {
|
|
|
16
16
|
});
|
|
17
17
|
|
|
18
18
|
it("should parse a bracketed atom", () => {
|
|
19
|
-
// @ts-expect-error
|
|
19
|
+
// @ts-expect-error - TS2554 - Expected 2 arguments, but got 1.
|
|
20
20
|
const parsed = parser("[At]");
|
|
21
21
|
expect(parsed).toEqual({
|
|
22
22
|
type: "atom",
|
|
@@ -27,7 +27,7 @@ describe("SMILES parser", () => {
|
|
|
27
27
|
});
|
|
28
28
|
|
|
29
29
|
it("should parse certain common two-letter atoms", () => {
|
|
30
|
-
// @ts-expect-error
|
|
30
|
+
// @ts-expect-error - TS2554 - Expected 2 arguments, but got 1.
|
|
31
31
|
const parsed = parser("Br");
|
|
32
32
|
expect(parsed).toEqual({
|
|
33
33
|
type: "atom",
|
|
@@ -40,7 +40,7 @@ describe("SMILES parser", () => {
|
|
|
40
40
|
it("should fail to parse an unusual atom when not bracketed", () => {
|
|
41
41
|
// Arrange
|
|
42
42
|
// Act
|
|
43
|
-
// @ts-expect-error
|
|
43
|
+
// @ts-expect-error - TS2554 - Expected 2 arguments, but got 1.
|
|
44
44
|
const underTest = () => parser("At");
|
|
45
45
|
|
|
46
46
|
// Assert
|
|
@@ -50,7 +50,7 @@ describe("SMILES parser", () => {
|
|
|
50
50
|
|
|
51
51
|
describe("bond parsing", () => {
|
|
52
52
|
it("should parse a single bond", () => {
|
|
53
|
-
// @ts-expect-error
|
|
53
|
+
// @ts-expect-error - TS2554 - Expected 2 arguments, but got 1.
|
|
54
54
|
const parsed = parser("CC");
|
|
55
55
|
const expectedBond = {
|
|
56
56
|
type: "bond",
|
|
@@ -71,7 +71,7 @@ describe("SMILES parser", () => {
|
|
|
71
71
|
});
|
|
72
72
|
|
|
73
73
|
it("should parse a double bond", () => {
|
|
74
|
-
// @ts-expect-error
|
|
74
|
+
// @ts-expect-error - TS2554 - Expected 2 arguments, but got 1.
|
|
75
75
|
const parsed = parser("C=C");
|
|
76
76
|
const expectedBond = {
|
|
77
77
|
type: "bond",
|
|
@@ -92,7 +92,7 @@ describe("SMILES parser", () => {
|
|
|
92
92
|
});
|
|
93
93
|
|
|
94
94
|
it("should parse a triple bond", () => {
|
|
95
|
-
// @ts-expect-error
|
|
95
|
+
// @ts-expect-error - TS2554 - Expected 2 arguments, but got 1.
|
|
96
96
|
const parsed = parser("C#C");
|
|
97
97
|
const expectedBond = {
|
|
98
98
|
type: "bond",
|
|
@@ -115,7 +115,7 @@ describe("SMILES parser", () => {
|
|
|
115
115
|
|
|
116
116
|
describe("branch parsing", () => {
|
|
117
117
|
it("should parse a branch", () => {
|
|
118
|
-
// @ts-expect-error
|
|
118
|
+
// @ts-expect-error - TS2554 - Expected 2 arguments, but got 1.
|
|
119
119
|
const parsed = parser("C(C)C");
|
|
120
120
|
expect(parsed.bonds).toHaveLength(2);
|
|
121
121
|
expect(parsed.bonds[0].type).toBe("bond");
|
|
@@ -129,12 +129,12 @@ describe("SMILES parser", () => {
|
|
|
129
129
|
});
|
|
130
130
|
|
|
131
131
|
it("should apply bond modifiers only to one branch", () => {
|
|
132
|
-
// @ts-expect-error
|
|
132
|
+
// @ts-expect-error - TS2554 - Expected 2 arguments, but got 1.
|
|
133
133
|
let parsed = parser("C(=O)C");
|
|
134
134
|
expect(parsed.bonds).toHaveLength(2);
|
|
135
135
|
expect(parsed.bonds[0].bondType).toBe("double");
|
|
136
136
|
expect(parsed.bonds[1].bondType).toBe("single");
|
|
137
|
-
// @ts-expect-error
|
|
137
|
+
// @ts-expect-error - TS2554 - Expected 2 arguments, but got 1.
|
|
138
138
|
parsed = parser("C(O)=C");
|
|
139
139
|
expect(parsed.bonds).toHaveLength(2);
|
|
140
140
|
expect(parsed.bonds[0].bondType).toBe("single");
|
|
@@ -142,13 +142,13 @@ describe("SMILES parser", () => {
|
|
|
142
142
|
});
|
|
143
143
|
|
|
144
144
|
it("should error on mismatched parentheses", () => {
|
|
145
|
-
// @ts-expect-error
|
|
145
|
+
// @ts-expect-error - TS2554 - Expected 2 arguments, but got 1.
|
|
146
146
|
expect(() => parser("C)")).toThrow();
|
|
147
|
-
// @ts-expect-error
|
|
147
|
+
// @ts-expect-error - TS2554 - Expected 2 arguments, but got 1.
|
|
148
148
|
expect(() => parser("C(")).toThrow();
|
|
149
|
-
// @ts-expect-error
|
|
149
|
+
// @ts-expect-error - TS2554 - Expected 2 arguments, but got 1.
|
|
150
150
|
expect(() => parser("C(()")).toThrow();
|
|
151
|
-
// @ts-expect-error
|
|
151
|
+
// @ts-expect-error - TS2554 - Expected 2 arguments, but got 1.
|
|
152
152
|
expect(() => parser("C())")).toThrow();
|
|
153
153
|
});
|
|
154
154
|
});
|
|
@@ -10,7 +10,7 @@ const smilesRe = new RegExp("^[A-Za-z\\[\\]()=#+-]*$");
|
|
|
10
10
|
const atomRe = new RegExp("^(Cl|Br|[CONPSFBI]|\\[)");
|
|
11
11
|
|
|
12
12
|
function ParseError(message: string) {
|
|
13
|
-
// @ts-expect-error
|
|
13
|
+
// @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
14
14
|
this.message = message;
|
|
15
15
|
}
|
|
16
16
|
|
|
@@ -180,9 +180,9 @@ function readAtomSymbol(smiles: any, _ctx) {
|
|
|
180
180
|
rest = smiles.slice(closingIdx + 1);
|
|
181
181
|
} else {
|
|
182
182
|
const match = atomRe.exec(smiles);
|
|
183
|
-
// @ts-expect-error
|
|
183
|
+
// @ts-expect-error - TS2322 - Type 'string' is not assignable to type 'null'. | TS2531 - Object is possibly 'null'.
|
|
184
184
|
sym = match[1];
|
|
185
|
-
// @ts-expect-error
|
|
185
|
+
// @ts-expect-error - TS2531 - Object is possibly 'null'.
|
|
186
186
|
rest = smiles.slice(sym.length);
|
|
187
187
|
}
|
|
188
188
|
|
package/src/widgets/molecule.tsx
CHANGED
|
@@ -44,13 +44,13 @@ export class Molecule extends React.Component<any, any> {
|
|
|
44
44
|
stateFromSmiles: (arg1: any) => void = (smiles) => {
|
|
45
45
|
try {
|
|
46
46
|
this.setState({
|
|
47
|
-
// @ts-expect-error
|
|
47
|
+
// @ts-expect-error - TS2554 - Expected 2 arguments, but got 1.
|
|
48
48
|
parsedSmiles: parse(smiles),
|
|
49
49
|
error: null,
|
|
50
50
|
});
|
|
51
51
|
} catch (e: any) {
|
|
52
52
|
if (e instanceof ParseError) {
|
|
53
|
-
// @ts-expect-error
|
|
53
|
+
// @ts-expect-error - TS2339 - Property 'message' does not exist on type '{}'.
|
|
54
54
|
this.setState({error: e.message});
|
|
55
55
|
} else {
|
|
56
56
|
throw e;
|
|
@@ -89,9 +89,9 @@ export class Molecule extends React.Component<any, any> {
|
|
|
89
89
|
// eslint-disable-next-line react/no-string-refs
|
|
90
90
|
const canvas = this.refs.canvas;
|
|
91
91
|
const translation = this.setCanvasBounds(canvas, items);
|
|
92
|
-
// @ts-expect-error
|
|
92
|
+
// @ts-expect-error - TS2339 - Property 'getContext' does not exist on type 'ReactInstance'.
|
|
93
93
|
const ctx = canvas.getContext("2d");
|
|
94
|
-
// @ts-expect-error
|
|
94
|
+
// @ts-expect-error - TS2339 - Property 'width' does not exist on type 'ReactInstance'. | TS2339 - Property 'height' does not exist on type 'ReactInstance'.
|
|
95
95
|
ctx.clearRect(0, 0, canvas.width, canvas.height);
|
|
96
96
|
ctx.save();
|
|
97
97
|
ctx.translate(translation[0], translation[1]);
|
|
@@ -16,9 +16,9 @@ import KhanMath from "../util/math";
|
|
|
16
16
|
import type {ChangeableProps} from "../mixins/changeable";
|
|
17
17
|
import type {APIOptions, WidgetExports} from "../types";
|
|
18
18
|
|
|
19
|
-
// @ts-expect-error
|
|
19
|
+
// @ts-expect-error - TS2339 - Property 'MovablePoint' does not exist on type 'typeof Graphie'.
|
|
20
20
|
const MovablePoint = Graphie.MovablePoint;
|
|
21
|
-
// @ts-expect-error
|
|
21
|
+
// @ts-expect-error - TS2339 - Property 'Line' does not exist on type 'typeof Graphie'.
|
|
22
22
|
const Line = Graphie.Line;
|
|
23
23
|
const {assert} = InteractiveUtil;
|
|
24
24
|
|
|
@@ -111,7 +111,7 @@ const _label = (
|
|
|
111
111
|
}
|
|
112
112
|
};
|
|
113
113
|
|
|
114
|
-
// @ts-expect-error
|
|
114
|
+
// @ts-expect-error - TS2339 - Property 'createSimpleClass' does not exist on type 'typeof Graphie'.
|
|
115
115
|
const TickMarks: any = Graphie.createSimpleClass((graphie, props) => {
|
|
116
116
|
// Avoid infinite loop
|
|
117
117
|
if (!_.isFinite(props.tickStep) || props.tickStep <= 0) {
|
|
@@ -252,7 +252,7 @@ class NumberLine extends React.Component<Props, State> {
|
|
|
252
252
|
};
|
|
253
253
|
|
|
254
254
|
change: (...args: ReadonlyArray<unknown>) => any = (...args) => {
|
|
255
|
-
// @ts-expect-error
|
|
255
|
+
// @ts-expect-error - TS2345 - Argument of type 'readonly unknown[]' is not assignable to parameter of type 'any[]'.
|
|
256
256
|
return Changeable.change.apply(this, args);
|
|
257
257
|
};
|
|
258
258
|
|
|
@@ -333,7 +333,7 @@ class NumberLine extends React.Component<Props, State> {
|
|
|
333
333
|
focus: () => boolean | null | undefined = () => {
|
|
334
334
|
if (this.props.isTickCtrl) {
|
|
335
335
|
// eslint-disable-next-line react/no-string-refs
|
|
336
|
-
// @ts-expect-error
|
|
336
|
+
// @ts-expect-error - TS2339 - Property 'focus' does not exist on type 'ReactInstance'.
|
|
337
337
|
this.refs["tick-ctrl"].focus();
|
|
338
338
|
return true;
|
|
339
339
|
}
|
|
@@ -342,7 +342,7 @@ class NumberLine extends React.Component<Props, State> {
|
|
|
342
342
|
focusInputPath: (arg1: any) => void = (path) => {
|
|
343
343
|
if (path.length === 1) {
|
|
344
344
|
// eslint-disable-next-line react/no-string-refs
|
|
345
|
-
// @ts-expect-error
|
|
345
|
+
// @ts-expect-error - TS2339 - Property 'focus' does not exist on type 'ReactInstance'.
|
|
346
346
|
this.refs[path[0]].focus();
|
|
347
347
|
}
|
|
348
348
|
};
|
|
@@ -350,7 +350,7 @@ class NumberLine extends React.Component<Props, State> {
|
|
|
350
350
|
blurInputPath: (arg1: any) => void = (path) => {
|
|
351
351
|
if (path.length === 1) {
|
|
352
352
|
// eslint-disable-next-line react/no-string-refs
|
|
353
|
-
// @ts-expect-error
|
|
353
|
+
// @ts-expect-error - TS2339 - Property 'blur' does not exist on type 'ReactInstance'.
|
|
354
354
|
this.refs[path[0]].blur();
|
|
355
355
|
}
|
|
356
356
|
};
|
|
@@ -414,7 +414,7 @@ class NumberLine extends React.Component<Props, State> {
|
|
|
414
414
|
options={options}
|
|
415
415
|
onMouseDown={(coord) => {
|
|
416
416
|
// eslint-disable-next-line react/no-string-refs
|
|
417
|
-
// @ts-expect-error
|
|
417
|
+
// @ts-expect-error - TS2339 - Property 'movables' does not exist on type 'ReactInstance'.
|
|
418
418
|
this.refs.graphie.movables.numberLinePoint.grab(coord);
|
|
419
419
|
}}
|
|
420
420
|
setup={this._setupGraphie}
|
|
@@ -532,7 +532,7 @@ class NumberLine extends React.Component<Props, State> {
|
|
|
532
532
|
this.props.onChange({rel: newRel});
|
|
533
533
|
};
|
|
534
534
|
|
|
535
|
-
// @ts-expect-error
|
|
535
|
+
// @ts-expect-error - TS2322 - Type '(props: any) => any[]' is not assignable to type '(arg1: any) => [number, number]'.
|
|
536
536
|
_getInequalityEndpoint: (arg1: any) => [number, number] = (props) => {
|
|
537
537
|
const isGreater = _(["ge", "gt"]).contains(props.rel);
|
|
538
538
|
const widthInPixels = 400;
|
|
@@ -545,7 +545,7 @@ class NumberLine extends React.Component<Props, State> {
|
|
|
545
545
|
return end;
|
|
546
546
|
};
|
|
547
547
|
|
|
548
|
-
// @ts-expect-error
|
|
548
|
+
// @ts-expect-error - TS2322 - Type '(props: any) => Element | null' is not assignable to type '(arg1: any) => ReactElement<any, string | JSXElementConstructor<any>>'.
|
|
549
549
|
_renderInequality: (arg1: any) => React.ReactElement = (props) => {
|
|
550
550
|
if (props.isInequality) {
|
|
551
551
|
const end = this._getInequalityEndpoint(props);
|
|
@@ -625,7 +625,7 @@ class NumberLine extends React.Component<Props, State> {
|
|
|
625
625
|
};
|
|
626
626
|
|
|
627
627
|
simpleValidate: (arg1: any) => any = (rubric) => {
|
|
628
|
-
// @ts-expect-error
|
|
628
|
+
// @ts-expect-error - TS2339 - Property 'validate' does not exist on type 'typeof NumberLine'.
|
|
629
629
|
return NumberLine.validate(this.getUserInput(), rubric);
|
|
630
630
|
};
|
|
631
631
|
|