@khanacademy/perseus 7.2.1 → 8.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +26 -0
- package/dist/article-renderer.d.ts +26 -40
- package/dist/components/math-input.d.ts +1 -1
- package/dist/components/sortable.d.ts +1 -1
- package/dist/components/tex-buttons.d.ts +1 -1
- package/dist/es/index.js +1139 -1189
- package/dist/es/index.js.map +1 -1
- package/dist/hints-renderer.d.ts +1 -1
- package/dist/index.js +1141 -1192
- package/dist/index.js.map +1 -1
- package/dist/mixins/provide-keypad.d.ts +15 -12
- package/dist/perseus-api.d.ts +1 -1
- package/dist/types.d.ts +3 -2
- package/dist/widgets/expression.d.ts +1 -1
- package/dist/widgets/graded-group.d.ts +1 -1
- package/dist/widgets/interactive-graph.d.ts +1 -1
- package/dist/widgets/sequence.d.ts +1 -1
- package/dist/widgets/table.d.ts +8 -1
- package/dist/widgets.d.ts +1 -1
- package/package.json +33 -33
- package/src/__testdata__/article-renderer.testdata.ts +3 -1
- package/src/__testdata__/item-renderer.testdata.ts +1 -1
- package/src/__testdata__/renderer.testdata.ts +1 -1
- package/src/__tests__/item-renderer.test.tsx +1 -1
- package/src/__tests__/mock-asset-loading-widget.tsx +1 -1
- package/src/__tests__/perseus-markdown.test.ts +17 -17
- package/src/__tests__/renderer-api.test.tsx +21 -21
- package/src/__tests__/renderer.test.tsx +13 -13
- package/src/__tests__/server-item-renderer.test.tsx +3 -3
- package/src/__tests__/tex-wrangler.test.ts +1 -1
- package/src/article-renderer.tsx +39 -38
- package/src/components/__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/hint-renderer.tsx +3 -3
- package/src/hints-renderer.tsx +11 -11
- package/src/init.ts +1 -1
- package/src/interaction-tracker.ts +4 -4
- package/src/interactive2/__tests__/movable-point.test.ts +1 -1
- package/src/interactive2/interactive-util.ts +6 -6
- package/src/interactive2/movable-helper-methods.ts +2 -2
- package/src/interactive2/movable-line-options.ts +37 -37
- package/src/interactive2/movable-line.ts +2 -2
- package/src/interactive2/movable-point-options.ts +29 -29
- package/src/interactive2/movable-point.tsx +2 -2
- package/src/interactive2/movable-polygon-options.ts +45 -45
- package/src/interactive2/movable-polygon.ts +2 -2
- package/src/interactive2/movable.ts +2 -2
- package/src/interactive2/objective_.ts +1 -1
- package/src/interactive2/wrapped-defaults.ts +2 -2
- package/src/interactive2/wrapped-ellipse.ts +9 -9
- package/src/interactive2/wrapped-line.ts +8 -8
- package/src/interactive2/wrapped-path.ts +5 -5
- package/src/item-renderer.tsx +5 -5
- 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 +7 -7
- package/src/multi-items/__tests__/trees.test.ts +12 -12
- package/src/multi-items/item-types.ts +2 -2
- package/src/multi-items/items.ts +1 -1
- package/src/multi-items/multi-renderer.tsx +14 -14
- package/src/multi-items/prop-type-builders.ts +2 -2
- package/src/multi-items/tree-types.ts +4 -4
- package/src/multi-items/trees.ts +16 -16
- package/src/perseus-env.ts +2 -2
- package/src/perseus-markdown.tsx +5 -5
- package/src/renderer.tsx +38 -38
- package/src/server-item-renderer.tsx +5 -5
- package/src/sigfigs.ts +1 -1
- package/src/traversal.ts +1 -1
- package/src/types.ts +3 -3
- package/src/util/answer-types.ts +14 -14
- package/src/util/geometry.ts +7 -7
- package/src/util/graphie.ts +32 -32
- package/src/util/interactive.ts +118 -118
- package/src/util/math.ts +4 -4
- package/src/util/react-render.tsx +1 -1
- package/src/util/scroll-utils.ts +2 -2
- package/src/util/tex.ts +3 -3
- package/src/util.ts +15 -15
- package/src/widget-container.tsx +1 -1
- package/src/widgets/__stories__/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 +4 -3
- package/src/widgets/__tests__/grapher.cypress.ts +32 -32
- package/src/widgets/__tests__/group.test.tsx +1 -1
- package/src/widgets/__tests__/interactive-graph.cypress.ts +40 -40
- package/src/widgets/__tests__/interactive-graph.test.ts +1 -1
- package/src/widgets/__tests__/numeric-input.test.ts +1 -1
- package/src/widgets/__tests__/passage.test.tsx +2 -2
- package/src/widgets/__tests__/plotter.test.tsx +2 -1
- package/src/widgets/__tests__/radio/base-radio.test.tsx +7 -7
- package/src/widgets/__tests__/renderQuestion.tsx +3 -3
- 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 +10 -9
- package/src/widgets/graded-group-set.tsx +5 -5
- package/src/widgets/graded-group.tsx +18 -19
- package/src/widgets/grapher/util.tsx +6 -6
- package/src/widgets/grapher.tsx +10 -10
- package/src/widgets/group.tsx +3 -3
- package/src/widgets/iframe.tsx +2 -2
- package/src/widgets/image.tsx +1 -1
- package/src/widgets/input-number.tsx +4 -4
- package/src/widgets/interaction.tsx +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 +2 -2
- 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
|
@@ -58,7 +58,7 @@ const doJSONP = function (url: string, options) {
|
|
|
58
58
|
}
|
|
59
59
|
|
|
60
60
|
// Add the global callback.
|
|
61
|
-
// @ts-expect-error
|
|
61
|
+
// @ts-expect-error - TS2740 - Type '() => void' is missing the following properties from type 'Window': clientInformation, closed, customElements, devicePixelRatio, and 206 more.
|
|
62
62
|
window[options.callbackName] = function (...args) {
|
|
63
63
|
cleanup();
|
|
64
64
|
options.success.apply(null, args);
|
|
@@ -332,13 +332,13 @@ class SvgImage extends React.Component<Props, State> {
|
|
|
332
332
|
doJSONP(url, {
|
|
333
333
|
callbackName: "svgData" + hash,
|
|
334
334
|
success: (data) => {
|
|
335
|
-
// @ts-expect-error
|
|
335
|
+
// @ts-expect-error - TS2540 - Cannot assign to 'data' because it is a read-only property.
|
|
336
336
|
cacheData.data = data;
|
|
337
|
-
// @ts-expect-error
|
|
337
|
+
// @ts-expect-error - TS2540 - Cannot assign to 'loaded' because it is a read-only property.
|
|
338
338
|
cacheData.loaded = true;
|
|
339
339
|
|
|
340
340
|
_.each(cacheData.dataCallbacks, (callback) => {
|
|
341
|
-
// @ts-expect-error
|
|
341
|
+
// @ts-expect-error - TS2345 - Argument of type 'null' is not assignable to parameter of type '{ labels: readonly any[]; range: readonly any[]; }'.
|
|
342
342
|
callback(cacheData.data, cacheData.localized);
|
|
343
343
|
});
|
|
344
344
|
},
|
|
@@ -350,7 +350,7 @@ class SvgImage extends React.Component<Props, State> {
|
|
|
350
350
|
retrieveData(
|
|
351
351
|
getLocalizedDataUrl(this.props.src),
|
|
352
352
|
(x, status, error) => {
|
|
353
|
-
// @ts-expect-error
|
|
353
|
+
// @ts-expect-error - TS2540 - Cannot assign to 'localized' because it is a read-only property.
|
|
354
354
|
cacheData.localized = false;
|
|
355
355
|
|
|
356
356
|
// If there is isn't any localized data, fall back to
|
|
@@ -512,9 +512,9 @@ class SvgImage extends React.Component<Props, State> {
|
|
|
512
512
|
const svgHeight = (this.props.height || 0) * this.props.scale;
|
|
513
513
|
const svgWidth = (this.props.width || 0) * this.props.scale;
|
|
514
514
|
label.css({
|
|
515
|
-
// @ts-expect-error
|
|
515
|
+
// @ts-expect-error - TS2531 - Object is possibly 'null'.
|
|
516
516
|
top: (labelTop / svgHeight) * 100 + "%",
|
|
517
|
-
// @ts-expect-error
|
|
517
|
+
// @ts-expect-error - TS2531 - Object is possibly 'null'.
|
|
518
518
|
left: (labelLeft / svgWidth) * 100 + "%",
|
|
519
519
|
});
|
|
520
520
|
|
|
@@ -561,7 +561,7 @@ class SvgImage extends React.Component<Props, State> {
|
|
|
561
561
|
// nothing in that case as well. Figuring this out correctly
|
|
562
562
|
// likely required accounting for the image alignment and margins.
|
|
563
563
|
if (
|
|
564
|
-
// @ts-expect-error
|
|
564
|
+
// @ts-expect-error - TS2532 - Object is possibly 'undefined'. | TS2532 - Object is possibly 'undefined'.
|
|
565
565
|
$image.width() < this.props.width ||
|
|
566
566
|
this.props.zoomToFullSizeOnMobile
|
|
567
567
|
) {
|
|
@@ -673,7 +673,7 @@ class SvgImage extends React.Component<Props, State> {
|
|
|
673
673
|
<ImageLoader
|
|
674
674
|
src={imageSrc}
|
|
675
675
|
imgProps={imageProps}
|
|
676
|
-
// @ts-expect-error
|
|
676
|
+
// @ts-expect-error - TS2322 - Type '(() => Element) | null' is not assignable to type '() => ReactElement<any, string | JSXElementConstructor<any>> | null | undefined'.
|
|
677
677
|
preloader={preloader}
|
|
678
678
|
onUpdate={this.handleUpdate}
|
|
679
679
|
/>
|
|
@@ -685,7 +685,7 @@ class SvgImage extends React.Component<Props, State> {
|
|
|
685
685
|
return (
|
|
686
686
|
<ImageLoader
|
|
687
687
|
src={imageSrc}
|
|
688
|
-
// @ts-expect-error
|
|
688
|
+
// @ts-expect-error - TS2322 - Type '(() => Element) | null' is not assignable to type '() => ReactElement<any, string | JSXElementConstructor<any>> | null | undefined'.
|
|
689
689
|
preloader={preloader}
|
|
690
690
|
imgProps={imageProps}
|
|
691
691
|
onUpdate={this.handleUpdate}
|
|
@@ -748,7 +748,7 @@ class SvgImage extends React.Component<Props, State> {
|
|
|
748
748
|
src={imageUrl}
|
|
749
749
|
onLoad={this.onImageLoad}
|
|
750
750
|
onUpdate={this.handleUpdate}
|
|
751
|
-
// @ts-expect-error
|
|
751
|
+
// @ts-expect-error - TS2322 - Type '(() => Element) | null' is not assignable to type '() => ReactElement<any, string | JSXElementConstructor<any>> | null | undefined'.
|
|
752
752
|
preloader={preloader}
|
|
753
753
|
imgProps={imageProps}
|
|
754
754
|
/>
|
|
@@ -764,7 +764,7 @@ class SvgImage extends React.Component<Props, State> {
|
|
|
764
764
|
src={imageUrl}
|
|
765
765
|
onLoad={this.onImageLoad}
|
|
766
766
|
onUpdate={this.handleUpdate}
|
|
767
|
-
// @ts-expect-error
|
|
767
|
+
// @ts-expect-error - TS2322 - Type '(() => Element) | null' is not assignable to type '() => ReactElement<any, string | JSXElementConstructor<any>> | null | undefined'.
|
|
768
768
|
preloader={preloader}
|
|
769
769
|
imgProps={imageProps}
|
|
770
770
|
/>
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
/* eslint-disable @khanacademy/ts-no-error-suppressions */
|
|
2
|
-
import {Keys} from "@khanacademy/math-input";
|
|
3
2
|
import * as i18n from "@khanacademy/wonder-blocks-i18n";
|
|
4
3
|
import PropTypes from "prop-types";
|
|
5
4
|
import * as React from "react";
|
|
@@ -7,6 +6,8 @@ import _ from "underscore";
|
|
|
7
6
|
|
|
8
7
|
import {getDependencies} from "../dependencies";
|
|
9
8
|
|
|
9
|
+
import type {Keys} from "@khanacademy/math-input";
|
|
10
|
+
|
|
10
11
|
const prettyBig = {fontSize: "150%"} as const;
|
|
11
12
|
const slightlyBig = {fontSize: "120%"} as const;
|
|
12
13
|
const symbStyle = {fontSize: "130%"} as const;
|
|
@@ -284,7 +285,7 @@ class TexButtons extends React.Component<Props> {
|
|
|
284
285
|
// for _.keys() to return the keys in an arbitrary order, but in
|
|
285
286
|
// practice, they will be ordered as listed above.
|
|
286
287
|
const sortedButtonSets = _.sortBy(this.props.sets, (setName) =>
|
|
287
|
-
// @ts-expect-error
|
|
288
|
+
// @ts-expect-error - TS2345 - Argument of type 'string | number' is not assignable to parameter of type 'string'.
|
|
288
289
|
_.keys(buttonSets).indexOf(setName),
|
|
289
290
|
);
|
|
290
291
|
|
|
@@ -300,7 +301,7 @@ class TexButtons extends React.Component<Props> {
|
|
|
300
301
|
<button
|
|
301
302
|
onClick={() => this.props.onInsert(symbol[1])}
|
|
302
303
|
className="tex-button"
|
|
303
|
-
// @ts-expect-error
|
|
304
|
+
// @ts-expect-error - TS2533 - Object is possibly 'null' or 'undefined'. | TS2339 - Property 'key' does not exist on type 'boolean | ReactChild | ReactFragment | ReactPortal'.
|
|
304
305
|
key={symbol[0].key}
|
|
305
306
|
type="button"
|
|
306
307
|
aria-label={symbol[2]}
|
|
@@ -76,7 +76,7 @@ class TextInput extends React.Component<Props> {
|
|
|
76
76
|
onFocus={onFocus}
|
|
77
77
|
onBlur={onBlur}
|
|
78
78
|
onKeyDown={onKeyDown}
|
|
79
|
-
// @ts-expect-error
|
|
79
|
+
// @ts-expect-error - TS2322 - Type '{ style: StyleType; disabled: boolean | undefined; id: string; value: string; type: "text"; "aria-label": string | undefined; onChange: (value: string) => void; placeholder: string | undefined; ... 5 more ...; autoComplete: string; }' is not assignable to type 'IntrinsicAttributes & ExportProps & RefAttributes<HTMLInputElement>'.
|
|
80
80
|
autoCorrect="off"
|
|
81
81
|
autoCapitalize="off"
|
|
82
82
|
autoComplete="off"
|
|
@@ -85,22 +85,22 @@ class TextInput extends React.Component<Props> {
|
|
|
85
85
|
}
|
|
86
86
|
|
|
87
87
|
focus: () => void = () => {
|
|
88
|
-
// @ts-expect-error
|
|
88
|
+
// @ts-expect-error - TS2531 - Object is possibly 'null'. | TS2339 - Property 'focus' does not exist on type 'Element | Text'.
|
|
89
89
|
ReactDOM.findDOMNode(this).focus();
|
|
90
90
|
};
|
|
91
91
|
|
|
92
92
|
blur: () => void = () => {
|
|
93
|
-
// @ts-expect-error
|
|
93
|
+
// @ts-expect-error - TS2531 - Object is possibly 'null'. | TS2339 - Property 'blur' does not exist on type 'Element | Text'.
|
|
94
94
|
ReactDOM.findDOMNode(this).blur();
|
|
95
95
|
};
|
|
96
96
|
|
|
97
97
|
getValue: () => string | null | undefined = () => {
|
|
98
|
-
// @ts-expect-error
|
|
98
|
+
// @ts-expect-error - TS2339 - Property 'value' does not exist on type 'Element | Text'.
|
|
99
99
|
return ReactDOM.findDOMNode(this)?.value;
|
|
100
100
|
};
|
|
101
101
|
|
|
102
102
|
getStringValue: () => string | null | undefined = () => {
|
|
103
|
-
// @ts-expect-error
|
|
103
|
+
// @ts-expect-error - TS2339 - Property 'value' does not exist on type 'Element | Text'.
|
|
104
104
|
return ReactDOM.findDOMNode(this)?.value.toString();
|
|
105
105
|
};
|
|
106
106
|
|
|
@@ -108,7 +108,7 @@ class TextInput extends React.Component<Props> {
|
|
|
108
108
|
selectionStart,
|
|
109
109
|
selectionEnd,
|
|
110
110
|
) => {
|
|
111
|
-
// @ts-expect-error
|
|
111
|
+
// @ts-expect-error - TS2531 - Object is possibly 'null'. | TS2339 - Property 'setSelectionRange' does not exist on type 'Element | Text'.
|
|
112
112
|
ReactDOM.findDOMNode(this).setSelectionRange(
|
|
113
113
|
selectionStart,
|
|
114
114
|
selectionEnd,
|
|
@@ -116,12 +116,12 @@ class TextInput extends React.Component<Props> {
|
|
|
116
116
|
};
|
|
117
117
|
|
|
118
118
|
getSelectionStart: () => number = () => {
|
|
119
|
-
// @ts-expect-error
|
|
119
|
+
// @ts-expect-error - TS2531 - Object is possibly 'null'. | TS2339 - Property 'selectionStart' does not exist on type 'Element | Text'.
|
|
120
120
|
return ReactDOM.findDOMNode(this).selectionStart;
|
|
121
121
|
};
|
|
122
122
|
|
|
123
123
|
getSelectionEnd: () => number = () => {
|
|
124
|
-
// @ts-expect-error
|
|
124
|
+
// @ts-expect-error - TS2531 - Object is possibly 'null'. | TS2339 - Property 'selectionEnd' does not exist on type 'Element | Text'.
|
|
125
125
|
return ReactDOM.findDOMNode(this).selectionEnd;
|
|
126
126
|
};
|
|
127
127
|
}
|
|
@@ -11,7 +11,7 @@ function getTextWidth(text: any) {
|
|
|
11
11
|
if (!textWidthCache[text]) {
|
|
12
12
|
// Hacky way to guess the width of an input box
|
|
13
13
|
const $test = $("<span>").text(text).appendTo("body");
|
|
14
|
-
// @ts-expect-error
|
|
14
|
+
// @ts-expect-error - TS2532 - Object is possibly 'undefined'.
|
|
15
15
|
textWidthCache[text] = $test.width() + 5;
|
|
16
16
|
$test.remove();
|
|
17
17
|
}
|
|
@@ -57,10 +57,10 @@ class TextListEditor extends React.Component<any, any> {
|
|
|
57
57
|
type="text"
|
|
58
58
|
value={item}
|
|
59
59
|
// eslint-disable-next-line react/jsx-no-bind
|
|
60
|
-
// @ts-expect-error
|
|
60
|
+
// @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation. | TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
61
61
|
onChange={this.onChange.bind(this, i)}
|
|
62
62
|
// eslint-disable-next-line react/jsx-no-bind
|
|
63
|
-
// @ts-expect-error
|
|
63
|
+
// @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation. | TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
64
64
|
onKeyDown={this.onKeyDown.bind(this, i)}
|
|
65
65
|
style={{width: getTextWidth(item)}}
|
|
66
66
|
/>
|
|
@@ -107,17 +107,17 @@ class TextListEditor extends React.Component<any, any> {
|
|
|
107
107
|
) {
|
|
108
108
|
// ...except for the last one, iff it is the only empty
|
|
109
109
|
// input at the end.
|
|
110
|
-
// @ts-expect-error
|
|
110
|
+
// @ts-expect-error - TS2531 - Object is possibly 'null'. | TS2339 - Property 'focus' does not exist on type 'Element | Text'.
|
|
111
111
|
ReactDOM.findDOMNode(this.refs["input_" + focusIndex]).focus(); // eslint-disable-line react/no-string-refs
|
|
112
112
|
} else {
|
|
113
113
|
items.splice(index, 1);
|
|
114
114
|
this.setState({items: items}, function () {
|
|
115
|
-
// @ts-expect-error
|
|
115
|
+
// @ts-expect-error - TS2531 - Object is possibly 'null'.
|
|
116
116
|
ReactDOM.findDOMNode(
|
|
117
117
|
// eslint-disable-next-line react/no-string-refs
|
|
118
|
-
// @ts-expect-error
|
|
118
|
+
// @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
119
119
|
this.refs["input_" + focusIndex],
|
|
120
|
-
// @ts-expect-error
|
|
120
|
+
// @ts-expect-error - TS2339 - Property 'focus' does not exist on type 'Element | Text'.
|
|
121
121
|
).focus();
|
|
122
122
|
});
|
|
123
123
|
}
|
|
@@ -145,17 +145,17 @@ class TextListEditor extends React.Component<any, any> {
|
|
|
145
145
|
|
|
146
146
|
if (index === items.length - 2) {
|
|
147
147
|
// ...unless the empty input is just below.
|
|
148
|
-
// @ts-expect-error
|
|
148
|
+
// @ts-expect-error - TS2531 - Object is possibly 'null'. | TS2339 - Property 'focus' does not exist on type 'Element | Text'.
|
|
149
149
|
ReactDOM.findDOMNode(this.refs["input_" + focusIndex]).focus(); // eslint-disable-line react/no-string-refs
|
|
150
150
|
} else {
|
|
151
151
|
items.splice(focusIndex, 0, "");
|
|
152
152
|
this.setState({items: items}, function () {
|
|
153
|
-
// @ts-expect-error
|
|
153
|
+
// @ts-expect-error - TS2531 - Object is possibly 'null'.
|
|
154
154
|
ReactDOM.findDOMNode(
|
|
155
155
|
// eslint-disable-next-line react/no-string-refs
|
|
156
|
-
// @ts-expect-error
|
|
156
|
+
// @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
157
157
|
this.refs["input_" + focusIndex],
|
|
158
|
-
// @ts-expect-error
|
|
158
|
+
// @ts-expect-error - TS2339 - Property 'focus' does not exist on type 'Element | Text'.
|
|
159
159
|
).focus();
|
|
160
160
|
});
|
|
161
161
|
}
|
|
@@ -90,7 +90,7 @@ class NativeVisibilityObserver implements VisibilityObserver {
|
|
|
90
90
|
// There should be exactly one entry, but let's be defensive and loop.
|
|
91
91
|
//
|
|
92
92
|
for (const entry of entries) {
|
|
93
|
-
// @ts-expect-error
|
|
93
|
+
// @ts-expect-error - TS2345 - Argument of type 'DOMRectReadOnly | null' is not assignable to parameter of type 'DOMRectReadOnly'.
|
|
94
94
|
this._onVisibilityChange(entry.isIntersecting, entry.rootBounds);
|
|
95
95
|
}
|
|
96
96
|
};
|
|
@@ -58,9 +58,9 @@ function findPositionInScrollContainer(
|
|
|
58
58
|
}
|
|
59
59
|
|
|
60
60
|
class VisibilityObserver extends React.Component<Props> {
|
|
61
|
-
// @ts-expect-error
|
|
61
|
+
// @ts-expect-error - TS2564 - Property '_observer' has no initializer and is not definitely assigned in the constructor.
|
|
62
62
|
_observer: IVisibilityObserver;
|
|
63
|
-
// @ts-expect-error
|
|
63
|
+
// @ts-expect-error - TS2564 - Property '_node' has no initializer and is not definitely assigned in the constructor.
|
|
64
64
|
_node: HTMLElement;
|
|
65
65
|
|
|
66
66
|
static defaultProps: {onChange: () => void} = {
|
|
@@ -26,9 +26,9 @@ const computeMathBounds = (
|
|
|
26
26
|
parentNode.querySelector(".katex-html") ||
|
|
27
27
|
parentNode.querySelector(".MathJax");
|
|
28
28
|
const textBounds = {
|
|
29
|
-
// @ts-expect-error
|
|
29
|
+
// @ts-expect-error - TS2531 - Object is possibly 'null'. | TS2339 - Property 'offsetWidth' does not exist on type 'Element'.
|
|
30
30
|
width: textElement.offsetWidth,
|
|
31
|
-
// @ts-expect-error
|
|
31
|
+
// @ts-expect-error - TS2531 - Object is possibly 'null'. | TS2339 - Property 'offsetHeight' does not exist on type 'Element'.
|
|
32
32
|
height: textElement.offsetHeight,
|
|
33
33
|
} as const;
|
|
34
34
|
|
|
@@ -44,7 +44,7 @@ const computeMathBounds = (
|
|
|
44
44
|
|
|
45
45
|
export default class ZoomableTeX extends React.Component<Props, State> {
|
|
46
46
|
constructor() {
|
|
47
|
-
// @ts-expect-error
|
|
47
|
+
// @ts-expect-error - TS2554 - Expected 1-2 arguments, but got 0.
|
|
48
48
|
super();
|
|
49
49
|
|
|
50
50
|
this.state = {isRendered: false};
|
|
@@ -47,14 +47,14 @@ type State = {
|
|
|
47
47
|
};
|
|
48
48
|
|
|
49
49
|
class Zoomable extends React.Component<Props, State> {
|
|
50
|
-
// @ts-expect-error
|
|
50
|
+
// @ts-expect-error - TS2564 - Property '_isMounted' has no initializer and is not definitely assigned in the constructor.
|
|
51
51
|
_isMounted: boolean;
|
|
52
|
-
// @ts-expect-error
|
|
52
|
+
// @ts-expect-error - TS2564 - Property '_observer' has no initializer and is not definitely assigned in the constructor.
|
|
53
53
|
_observer: MutationObserver;
|
|
54
|
-
// @ts-expect-error
|
|
54
|
+
// @ts-expect-error - TS2564 - Property '_measuringInitialized' has no initializer and is not definitely assigned in the constructor.
|
|
55
55
|
_measuringInitialized: boolean;
|
|
56
56
|
_originalWidth: number | null | undefined;
|
|
57
|
-
// @ts-expect-error
|
|
57
|
+
// @ts-expect-error - TS2564 - Property '_node' has no initializer and is not definitely assigned in the constructor.
|
|
58
58
|
_node: HTMLElement;
|
|
59
59
|
|
|
60
60
|
static defaultProps: DefaultProps = {
|
|
@@ -64,9 +64,9 @@ class Zoomable extends React.Component<Props, State> {
|
|
|
64
64
|
const firstChild = parentNode.firstElementChild;
|
|
65
65
|
|
|
66
66
|
return {
|
|
67
|
-
// @ts-expect-error
|
|
67
|
+
// @ts-expect-error - TS2531 - Object is possibly 'null'. | TS2339 - Property 'offsetWidth' does not exist on type 'Element'.
|
|
68
68
|
width: firstChild.offsetWidth,
|
|
69
|
-
// @ts-expect-error
|
|
69
|
+
// @ts-expect-error - TS2531 - Object is possibly 'null'. | TS2339 - Property 'offsetHeight' does not exist on type 'Element'.
|
|
70
70
|
height: firstChild.offsetHeight,
|
|
71
71
|
};
|
|
72
72
|
},
|
|
@@ -130,7 +130,7 @@ class Zoomable extends React.Component<Props, State> {
|
|
|
130
130
|
|
|
131
131
|
if (this._isMounted && shouldInitialize) {
|
|
132
132
|
this._measuringInitialized = true;
|
|
133
|
-
// @ts-expect-error
|
|
133
|
+
// @ts-expect-error - TS2322 - Type 'Element | Text | null' is not assignable to type 'HTMLElement'.
|
|
134
134
|
this._node = ReactDOM.findDOMNode(this);
|
|
135
135
|
|
|
136
136
|
// We call measureAndScaleChildToFit asynchronously so that the browser
|
|
@@ -285,7 +285,7 @@ class Zoomable extends React.Component<Props, State> {
|
|
|
285
285
|
onTouchCancelCapture={this.stopPropagationIfZoomed}
|
|
286
286
|
onTouchEndCapture={this.stopPropagationIfZoomed}
|
|
287
287
|
onTouchStartCapture={this.stopPropagationIfZoomed}
|
|
288
|
-
// @ts-expect-error
|
|
288
|
+
// @ts-expect-error - TS2322 - Type '{ readonly transitionProperty: string; readonly transitionDuration: string; readonly transitionTimingFunction: string; readonly display: "block"; readonly width: "100%"; readonly height: number | ... 1 more ... | undefined; readonly transform: string; readonly transformOrigin: "0 0"; readonly opacity: 0 | 1; readonl...' is not assignable to type 'CSSProperties | undefined'.
|
|
289
289
|
style={style}
|
|
290
290
|
>
|
|
291
291
|
{this.props.children}
|
package/src/hint-renderer.tsx
CHANGED
|
@@ -34,7 +34,7 @@ class HintRenderer extends React.Component<Props> {
|
|
|
34
34
|
|
|
35
35
|
getSerializedState: () => void = () => {
|
|
36
36
|
// eslint-disable-next-line react/no-string-refs
|
|
37
|
-
// @ts-expect-error
|
|
37
|
+
// @ts-expect-error - TS2339 - Property 'getSerializedState' does not exist on type 'ReactInstance'.
|
|
38
38
|
return this.refs.renderer.getSerializedState();
|
|
39
39
|
};
|
|
40
40
|
|
|
@@ -43,7 +43,7 @@ class HintRenderer extends React.Component<Props> {
|
|
|
43
43
|
arg2: (...args: ReadonlyArray<any>) => unknown,
|
|
44
44
|
) => void = (state, callback) => {
|
|
45
45
|
// eslint-disable-next-line react/no-string-refs
|
|
46
|
-
// @ts-expect-error
|
|
46
|
+
// @ts-expect-error - TS2339 - Property 'restoreSerializedState' does not exist on type 'ReactInstance'.
|
|
47
47
|
this.refs.renderer.restoreSerializedState(state, callback);
|
|
48
48
|
};
|
|
49
49
|
|
|
@@ -80,7 +80,7 @@ class HintRenderer extends React.Component<Props> {
|
|
|
80
80
|
} as const;
|
|
81
81
|
|
|
82
82
|
return (
|
|
83
|
-
// @ts-expect-error
|
|
83
|
+
// @ts-expect-error - TS2322 - Type 'string' is not assignable to type 'number | undefined'.
|
|
84
84
|
<div className={classNames} tabIndex="-1">
|
|
85
85
|
{!apiOptions.isMobile && (
|
|
86
86
|
<span className="perseus-sr-only">
|
package/src/hints-renderer.tsx
CHANGED
|
@@ -9,7 +9,6 @@ import _ from "underscore";
|
|
|
9
9
|
|
|
10
10
|
import HintRenderer from "./hint-renderer";
|
|
11
11
|
import {ApiOptions} from "./perseus-api";
|
|
12
|
-
import Renderer from "./renderer";
|
|
13
12
|
import {
|
|
14
13
|
baseUnitPx,
|
|
15
14
|
hintBorderWidth,
|
|
@@ -21,11 +20,12 @@ import mediaQueries from "./styles/media-queries";
|
|
|
21
20
|
import sharedStyles from "./styles/shared";
|
|
22
21
|
import Util from "./util";
|
|
23
22
|
|
|
23
|
+
import type Renderer from "./renderer";
|
|
24
24
|
import type {APIOptionsWithDefaults} from "./types";
|
|
25
25
|
|
|
26
26
|
type Props = JSX.LibraryManagedAttributes<
|
|
27
27
|
Renderer,
|
|
28
|
-
// @ts-expect-error
|
|
28
|
+
// @ts-expect-error - TS2344 - Type 'Renderer' does not satisfy the constraint 'keyof IntrinsicElements | JSXElementConstructor<any>'.
|
|
29
29
|
React.ComponentProps<typeof Renderer>
|
|
30
30
|
> & {
|
|
31
31
|
className?: string;
|
|
@@ -36,7 +36,7 @@ type Props = JSX.LibraryManagedAttributes<
|
|
|
36
36
|
};
|
|
37
37
|
|
|
38
38
|
type DefaultProps = {
|
|
39
|
-
// @ts-expect-error
|
|
39
|
+
// @ts-expect-error - TS2339 - Property 'linterContext' does not exist on type '{ className?: string | undefined; hints: readonly any[]; hintsVisible?: number | undefined; }'.
|
|
40
40
|
linterContext: Props["linterContext"];
|
|
41
41
|
};
|
|
42
42
|
|
|
@@ -64,7 +64,7 @@ class HintsRenderer extends React.Component<Props, State> {
|
|
|
64
64
|
}
|
|
65
65
|
|
|
66
66
|
UNSAFE_componentWillReceiveProps(nextProps: Props) {
|
|
67
|
-
// @ts-expect-error
|
|
67
|
+
// @ts-expect-error - TS2532 - Object is possibly 'undefined'. | TS2532 - Object is possibly 'undefined'.
|
|
68
68
|
if (nextProps.hintsVisible - this.props.hintsVisible > 1) {
|
|
69
69
|
this.setState({isFinalHelpPage: true});
|
|
70
70
|
}
|
|
@@ -90,7 +90,7 @@ class HintsRenderer extends React.Component<Props, State> {
|
|
|
90
90
|
nextHintsVisible >= 0
|
|
91
91
|
) {
|
|
92
92
|
const pos = nextHintsVisible - 1;
|
|
93
|
-
// @ts-expect-error
|
|
93
|
+
// @ts-expect-error - TS2531 - Object is possibly 'null'. | TS2339 - Property 'focus' does not exist on type 'Element | Text'.
|
|
94
94
|
ReactDOM.findDOMNode(this.refs["hintRenderer" + pos]).focus(); // eslint-disable-line react/no-string-refs
|
|
95
95
|
}
|
|
96
96
|
}
|
|
@@ -126,7 +126,7 @@ class HintsRenderer extends React.Component<Props, State> {
|
|
|
126
126
|
// false in hints.
|
|
127
127
|
return {
|
|
128
128
|
...ApiOptions.defaults,
|
|
129
|
-
// @ts-expect-error
|
|
129
|
+
// @ts-expect-error - TS2339 - Property 'apiOptions' does not exist on type 'Readonly<{ className?: string | undefined; hints: readonly any[]; hintsVisible?: number | undefined; }> & Readonly<{ children?: ReactNode; }>'.
|
|
130
130
|
...this.props.apiOptions,
|
|
131
131
|
readOnly: false,
|
|
132
132
|
};
|
|
@@ -135,7 +135,7 @@ class HintsRenderer extends React.Component<Props, State> {
|
|
|
135
135
|
getSerializedState: () => any = () => {
|
|
136
136
|
return _.times(this._hintsVisible(), (i) => {
|
|
137
137
|
// eslint-disable-next-line react/no-string-refs
|
|
138
|
-
// @ts-expect-error
|
|
138
|
+
// @ts-expect-error - TS2339 - Property 'getSerializedState' does not exist on type 'ReactInstance'.
|
|
139
139
|
return this.refs["hintRenderer" + i].getSerializedState();
|
|
140
140
|
});
|
|
141
141
|
};
|
|
@@ -164,7 +164,7 @@ class HintsRenderer extends React.Component<Props, State> {
|
|
|
164
164
|
// have the appropriate number of hints visible already.
|
|
165
165
|
if (hintRenderer) {
|
|
166
166
|
++numCallbacks;
|
|
167
|
-
// @ts-expect-error
|
|
167
|
+
// @ts-expect-error - TS2339 - Property 'restoreSerializedState' does not exist on type 'ReactInstance'.
|
|
168
168
|
hintRenderer.restoreSerializedState(hintState, fireCallback);
|
|
169
169
|
}
|
|
170
170
|
});
|
|
@@ -196,10 +196,10 @@ class HintsRenderer extends React.Component<Props, State> {
|
|
|
196
196
|
ref={"hintRenderer" + i}
|
|
197
197
|
key={"hintRenderer" + i}
|
|
198
198
|
apiOptions={apiOptions}
|
|
199
|
-
// @ts-expect-error
|
|
199
|
+
// @ts-expect-error - TS2339 - Property 'findExternalWidgets' does not exist on type 'Readonly<{ className?: string | undefined; hints: readonly any[]; hintsVisible?: number | undefined; }> & Readonly<{ children?: ReactNode; }>'.
|
|
200
200
|
findExternalWidgets={this.props.findExternalWidgets}
|
|
201
201
|
linterContext={PerseusLinter.pushContextStack(
|
|
202
|
-
// @ts-expect-error
|
|
202
|
+
// @ts-expect-error - TS2339 - Property 'linterContext' does not exist on type 'Readonly<{ className?: string | undefined; hints: readonly any[]; hintsVisible?: number | undefined; }> & Readonly<{ children?: ReactNode; }>'.
|
|
203
203
|
this.props.linterContext,
|
|
204
204
|
"hints[" + i + "]",
|
|
205
205
|
)}
|
|
@@ -247,7 +247,7 @@ class HintsRenderer extends React.Component<Props, State> {
|
|
|
247
247
|
{hints}
|
|
248
248
|
{showGetAnotherHint && (
|
|
249
249
|
<button
|
|
250
|
-
// @ts-expect-error
|
|
250
|
+
// @ts-expect-error - TS2322 - Type '{ children: Element[]; rel: string; className: string; onClick: (evt: MouseEvent<HTMLButtonElement, MouseEvent>) => void; }' is not assignable to type 'DetailedHTMLProps<ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>'.
|
|
251
251
|
rel="button"
|
|
252
252
|
className={css(
|
|
253
253
|
styles.linkButton,
|
package/src/init.ts
CHANGED
|
@@ -25,7 +25,7 @@ const init = function (options: PerseusOptions): Promise<undefined> {
|
|
|
25
25
|
const skipMathJax = options.skipMathJax;
|
|
26
26
|
|
|
27
27
|
if (skipMathJax) {
|
|
28
|
-
// @ts-expect-error
|
|
28
|
+
// @ts-expect-error - TS2322 - Type 'Promise<void>' is not assignable to type 'Promise<undefined>'.
|
|
29
29
|
return Promise.resolve();
|
|
30
30
|
}
|
|
31
31
|
|
|
@@ -9,15 +9,15 @@ function _noop() {}
|
|
|
9
9
|
* Wrapper for the trackInteraction apiOption.
|
|
10
10
|
*/
|
|
11
11
|
class InteractionTracker {
|
|
12
|
-
// @ts-expect-error
|
|
12
|
+
// @ts-expect-error - TS2564 - Property '_tracked' has no initializer and is not definitely assigned in the constructor.
|
|
13
13
|
_tracked: boolean;
|
|
14
|
-
// @ts-expect-error
|
|
14
|
+
// @ts-expect-error - TS2564 - Property 'setting' has no initializer and is not definitely assigned in the constructor.
|
|
15
15
|
setting: Tracking;
|
|
16
16
|
track: (extraData?: any) => void;
|
|
17
17
|
trackApi: any;
|
|
18
|
-
// @ts-expect-error
|
|
18
|
+
// @ts-expect-error - TS2564 - Property 'widgetID' has no initializer and is not definitely assigned in the constructor.
|
|
19
19
|
widgetID: string;
|
|
20
|
-
// @ts-expect-error
|
|
20
|
+
// @ts-expect-error - TS2564 - Property 'widgetType' has no initializer and is not definitely assigned in the constructor.
|
|
21
21
|
widgetType: string;
|
|
22
22
|
|
|
23
23
|
constructor(
|
|
@@ -53,7 +53,7 @@ describe("MovablePoint", function () {
|
|
|
53
53
|
it("should snap to the grid when a snap is specified", function () {
|
|
54
54
|
const point = createPoint({
|
|
55
55
|
coord: [1.1, 1.1],
|
|
56
|
-
// @ts-expect-error
|
|
56
|
+
// @ts-expect-error - TS2339 - Property 'constraints' does not exist on type '(graphie: any, movable: any, options: any) => void'.
|
|
57
57
|
constraints: MovablePoint.constraints.snap([1, 1]),
|
|
58
58
|
}).point;
|
|
59
59
|
|
|
@@ -27,7 +27,7 @@ function computePrefixedTransform(): string | null | undefined {
|
|
|
27
27
|
let correctPrefix = null;
|
|
28
28
|
_.each(prefixes, function (prefix) {
|
|
29
29
|
if (typeof el.style[prefix] !== "undefined") {
|
|
30
|
-
// @ts-expect-error
|
|
30
|
+
// @ts-expect-error - TS2322 - Type 'string' is not assignable to type 'null'.
|
|
31
31
|
correctPrefix = prefix;
|
|
32
32
|
}
|
|
33
33
|
});
|
|
@@ -46,9 +46,9 @@ function computeCanUse3dTransform(): boolean {
|
|
|
46
46
|
const prefix = InteractiveUtil.getPrefixedTransform();
|
|
47
47
|
|
|
48
48
|
// Prefix could be null.
|
|
49
|
-
// @ts-expect-error
|
|
49
|
+
// @ts-expect-error - TS2538 - Type 'null' cannot be used as an index type. | TS2538 - Type 'undefined' cannot be used as an index type.
|
|
50
50
|
el.style[prefix] = "translateZ(0px)";
|
|
51
|
-
// @ts-expect-error
|
|
51
|
+
// @ts-expect-error - TS2538 - Type 'null' cannot be used as an index type. | TS2538 - Type 'undefined' cannot be used as an index type.
|
|
52
52
|
return !!el.style[prefix];
|
|
53
53
|
}
|
|
54
54
|
|
|
@@ -134,7 +134,7 @@ const InteractiveUtil = {
|
|
|
134
134
|
*/
|
|
135
135
|
getPrefixedTransform: function (): string | null | undefined {
|
|
136
136
|
// Cache result to avoid re-computation
|
|
137
|
-
// @ts-expect-error
|
|
137
|
+
// @ts-expect-error - TS2322 - Type 'string | null | undefined' is not assignable to type 'null'.
|
|
138
138
|
prefixedTransform = prefixedTransform || computePrefixedTransform();
|
|
139
139
|
return prefixedTransform;
|
|
140
140
|
},
|
|
@@ -144,10 +144,10 @@ const InteractiveUtil = {
|
|
|
144
144
|
*/
|
|
145
145
|
getCanUse3dTransform: function (): boolean {
|
|
146
146
|
if (canUse3dTransform == null) {
|
|
147
|
-
// @ts-expect-error
|
|
147
|
+
// @ts-expect-error - TS2322 - Type 'boolean' is not assignable to type 'null'.
|
|
148
148
|
canUse3dTransform = computeCanUse3dTransform();
|
|
149
149
|
}
|
|
150
|
-
// @ts-expect-error
|
|
150
|
+
// @ts-expect-error - TS2322 - Type 'null' is not assignable to type 'boolean'.
|
|
151
151
|
return canUse3dTransform;
|
|
152
152
|
},
|
|
153
153
|
} as const;
|
|
@@ -145,10 +145,10 @@ const MovableHelperMethods: any = {
|
|
|
145
145
|
function (key) {
|
|
146
146
|
if (
|
|
147
147
|
getEventName(key) === eventName &&
|
|
148
|
-
// @ts-expect-error
|
|
148
|
+
// @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
149
149
|
this._listenerMap[key] > index
|
|
150
150
|
) {
|
|
151
|
-
// @ts-expect-error
|
|
151
|
+
// @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
152
152
|
this._listenerMap[key]--;
|
|
153
153
|
}
|
|
154
154
|
},
|