@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
|
@@ -60,7 +60,7 @@ class WordIndexer extends React.PureComponent<Props> {
|
|
|
60
60
|
container,
|
|
61
61
|
NodeFilter.SHOW_TEXT | NodeFilter.SHOW_ELEMENT,
|
|
62
62
|
() => NodeFilter.FILTER_ACCEPT,
|
|
63
|
-
// @ts-expect-error
|
|
63
|
+
// @ts-expect-error - TS2554 - Expected 1-3 arguments, but got 4.
|
|
64
64
|
false,
|
|
65
65
|
);
|
|
66
66
|
|
|
@@ -101,7 +101,7 @@ class WordIndexer extends React.PureComponent<Props> {
|
|
|
101
101
|
const wordPattern = /\S+/g;
|
|
102
102
|
let wordMatch;
|
|
103
103
|
let newTrailingWordRange = null;
|
|
104
|
-
// @ts-expect-error
|
|
104
|
+
// @ts-expect-error - TS2345 - Argument of type 'string | null' is not assignable to parameter of type 'string'.
|
|
105
105
|
while ((wordMatch = wordPattern.exec(text)) !== null) {
|
|
106
106
|
const startOffset = wordMatch.index;
|
|
107
107
|
const endOffset = wordMatch.index + wordMatch[0].length;
|
|
@@ -121,14 +121,14 @@ class WordIndexer extends React.PureComponent<Props> {
|
|
|
121
121
|
} else {
|
|
122
122
|
// Otherwise, start a new word range here, and add it
|
|
123
123
|
// to the list.
|
|
124
|
-
// @ts-expect-error
|
|
124
|
+
// @ts-expect-error - TS2531 - Object is possibly 'null'.
|
|
125
125
|
range = node.ownerDocument.createRange();
|
|
126
126
|
range.setStart(node, startOffset);
|
|
127
127
|
range.setEnd(node, endOffset);
|
|
128
128
|
index.push(range);
|
|
129
129
|
}
|
|
130
130
|
|
|
131
|
-
// @ts-expect-error
|
|
131
|
+
// @ts-expect-error - TS2531 - Object is possibly 'null'.
|
|
132
132
|
if (endOffset === text.length) {
|
|
133
133
|
newTrailingWordRange = range;
|
|
134
134
|
}
|
package/src/components/icon.tsx
CHANGED
|
@@ -125,7 +125,7 @@ class Icon extends React.Component<Props> {
|
|
|
125
125
|
aria-hidden={title ? null : true}
|
|
126
126
|
className={className}
|
|
127
127
|
style={style}
|
|
128
|
-
// @ts-expect-error
|
|
128
|
+
// @ts-expect-error - TS2322 - Type 'string' is not assignable to type '"auto" | Booleanish | undefined'.
|
|
129
129
|
focusable={focusable.toString()}
|
|
130
130
|
width={width + units}
|
|
131
131
|
height={height + units}
|
|
@@ -125,14 +125,14 @@ class ImageLoader extends React.Component<Props, State> {
|
|
|
125
125
|
let onKeyUp = null;
|
|
126
126
|
let onKeyDown = null;
|
|
127
127
|
if (imgProps.onClick != null) {
|
|
128
|
-
// @ts-expect-error
|
|
128
|
+
// @ts-expect-error - TS2322 - Type '(e: React.KeyboardEvent) => void' is not assignable to type 'null'.
|
|
129
129
|
onKeyUp = (e: React.KeyboardEvent) => {
|
|
130
130
|
// 13 is enter key, 32 is space key
|
|
131
131
|
if (e.keyCode === 13 || e.keyCode === 32) {
|
|
132
132
|
imgProps.onClick && imgProps.onClick(e);
|
|
133
133
|
}
|
|
134
134
|
};
|
|
135
|
-
// @ts-expect-error
|
|
135
|
+
// @ts-expect-error - TS2322 - Type '(e: React.KeyboardEvent) => void' is not assignable to type 'null'.
|
|
136
136
|
onKeyDown = (e: React.KeyboardEvent) => {
|
|
137
137
|
// 32 is space key
|
|
138
138
|
if (e.keyCode === 32) {
|
|
@@ -146,9 +146,9 @@ class ImageLoader extends React.Component<Props, State> {
|
|
|
146
146
|
return (
|
|
147
147
|
<img
|
|
148
148
|
src={staticUrl(src)}
|
|
149
|
-
// @ts-expect-error
|
|
149
|
+
// @ts-expect-error - TS2322 - Type 'null' is not assignable to type 'KeyboardEventHandler<HTMLImageElement> | undefined'.
|
|
150
150
|
onKeyUp={onKeyUp}
|
|
151
|
-
// @ts-expect-error
|
|
151
|
+
// @ts-expect-error - TS2322 - Type 'null' is not assignable to type 'KeyboardEventHandler<HTMLImageElement> | undefined'.
|
|
152
152
|
onKeyDown={onKeyDown}
|
|
153
153
|
{...imgProps}
|
|
154
154
|
/>
|
|
@@ -231,13 +231,13 @@ class InputWithExamples extends React.Component<Props, State> {
|
|
|
231
231
|
|
|
232
232
|
focus: () => void = () => {
|
|
233
233
|
// eslint-disable-next-line react/no-string-refs
|
|
234
|
-
// @ts-expect-error
|
|
234
|
+
// @ts-expect-error - TS2339 - Property 'focus' does not exist on type 'ReactInstance'.
|
|
235
235
|
this.refs.input.focus();
|
|
236
236
|
};
|
|
237
237
|
|
|
238
238
|
blur: () => void = () => {
|
|
239
239
|
// eslint-disable-next-line react/no-string-refs
|
|
240
|
-
// @ts-expect-error
|
|
240
|
+
// @ts-expect-error - TS2339 - Property 'blur' does not exist on type 'ReactInstance'.
|
|
241
241
|
this.refs.input.blur();
|
|
242
242
|
};
|
|
243
243
|
|
package/src/components/lint.tsx
CHANGED
|
@@ -88,7 +88,7 @@ class Lint extends React.Component<Props, State> {
|
|
|
88
88
|
// borrow a timeout approach from learnstorm-dashboard.jsx and set our
|
|
89
89
|
// state once the component has mounted and we can get what we need.
|
|
90
90
|
getPosition: () => void = () => {
|
|
91
|
-
// @ts-expect-error
|
|
91
|
+
// @ts-expect-error - TS2531 - Object is possibly 'null'. | TS2339 - Property 'getBoundingClientRect' does not exist on type 'Element | Text'.
|
|
92
92
|
const rect = ReactDOM.findDOMNode(this).getBoundingClientRect();
|
|
93
93
|
// TODO(scottgrant): This is a magic number! We don't know the size
|
|
94
94
|
// of the tooltip at this point, so we're arbitrarily choosing a
|
|
@@ -2,7 +2,6 @@ import {
|
|
|
2
2
|
keyTranslator,
|
|
3
3
|
createMathField,
|
|
4
4
|
mathQuillInstance,
|
|
5
|
-
MathFieldInterface,
|
|
6
5
|
} from "@khanacademy/math-input";
|
|
7
6
|
import classNames from "classnames";
|
|
8
7
|
import $ from "jquery";
|
|
@@ -13,6 +12,7 @@ import _ from "underscore";
|
|
|
13
12
|
import TexButtons from "./tex-buttons";
|
|
14
13
|
|
|
15
14
|
import type {ButtonSetsType} from "./tex-buttons";
|
|
15
|
+
import type {MathFieldInterface} from "@khanacademy/math-input";
|
|
16
16
|
|
|
17
17
|
type ButtonsVisibleType = "always" | "never" | "focused";
|
|
18
18
|
|
|
@@ -54,7 +54,7 @@ const customKeyTranslator = {
|
|
|
54
54
|
|
|
55
55
|
// A WYSIWYG math input that calls `onChange(LaTeX-string)`
|
|
56
56
|
class MathInput extends React.Component<Props, State> {
|
|
57
|
-
// @ts-expect-error
|
|
57
|
+
// @ts-expect-error - TS2564 - Property 'mouseDown' has no initializer and is not definitely assigned in the constructor.
|
|
58
58
|
mouseDown: boolean;
|
|
59
59
|
__mathFieldWrapperRef: HTMLSpanElement | null = null;
|
|
60
60
|
__mathField: MathFieldInterface | null = null;
|
|
@@ -97,7 +97,7 @@ class MathInput extends React.Component<Props, State> {
|
|
|
97
97
|
};
|
|
98
98
|
|
|
99
99
|
handleMouseDown: (arg1: MouseEvent) => void = (event) => {
|
|
100
|
-
// @ts-expect-error
|
|
100
|
+
// @ts-expect-error - TS2531 - Object is possibly 'null'. | TS2345 - Argument of type 'EventTarget | null' is not assignable to parameter of type 'Node | null'.
|
|
101
101
|
const focused = ReactDOM.findDOMNode(this).contains(event.target);
|
|
102
102
|
this.mouseDown = focused;
|
|
103
103
|
if (!focused) {
|
|
@@ -121,7 +121,7 @@ class MathInput extends React.Component<Props, State> {
|
|
|
121
121
|
// close (blur) the button group in order to focus on next page element.
|
|
122
122
|
if (
|
|
123
123
|
!this.mouseDown &&
|
|
124
|
-
// @ts-expect-error
|
|
124
|
+
// @ts-expect-error - TS2531 - Object is possibly 'null'.
|
|
125
125
|
!ReactDOM.findDOMNode(this).contains(e.relatedTarget)
|
|
126
126
|
) {
|
|
127
127
|
this.setState({focused: false});
|
|
@@ -260,7 +260,7 @@ class MathInput extends React.Component<Props, State> {
|
|
|
260
260
|
|
|
261
261
|
let buttons = null;
|
|
262
262
|
if (this._shouldShowButtons()) {
|
|
263
|
-
// @ts-expect-error
|
|
263
|
+
// @ts-expect-error - TS2322 - Type 'Element' is not assignable to type 'null'.
|
|
264
264
|
buttons = (
|
|
265
265
|
<TexButtons
|
|
266
266
|
sets={this.props.buttonSets}
|
|
@@ -113,7 +113,7 @@ class MathOutput extends React.Component<Props, State> {
|
|
|
113
113
|
$(document).bind("vclick." + this.state.selectorNamespace, (e) => {
|
|
114
114
|
// Detect whether the target has our React DOM node as a parent
|
|
115
115
|
const $closestWidget = $(e.target).closest(
|
|
116
|
-
// @ts-expect-error
|
|
116
|
+
// @ts-expect-error - TS2769 - No overload matches this call.
|
|
117
117
|
ReactDOM.findDOMNode(this),
|
|
118
118
|
);
|
|
119
119
|
if (!$closestWidget.length) {
|
|
@@ -42,7 +42,7 @@ class MultiButtonGroup extends React.Component<Props> {
|
|
|
42
42
|
};
|
|
43
43
|
|
|
44
44
|
focus(): boolean {
|
|
45
|
-
// @ts-expect-error
|
|
45
|
+
// @ts-expect-error - TS2339 - Property 'focus' does not exist on type 'Element | Text'.
|
|
46
46
|
ReactDOM.findDOMNode(this)?.focus();
|
|
47
47
|
return true;
|
|
48
48
|
}
|
|
@@ -89,7 +89,7 @@ class NumberInput extends React.Component<any, any> {
|
|
|
89
89
|
onBlur={this._handleBlur}
|
|
90
90
|
onKeyPress={this._handleBlur}
|
|
91
91
|
onKeyDown={this._onKeyDown}
|
|
92
|
-
// @ts-expect-error
|
|
92
|
+
// @ts-expect-error - TS2322 - Type '(e: TouchEvent) => void' is not assignable to type 'TouchEventHandler<HTMLInputElement>'.
|
|
93
93
|
onTouchStart={captureScratchpadTouchStart}
|
|
94
94
|
defaultValue={toNumericString(
|
|
95
95
|
this.props.value,
|
|
@@ -111,14 +111,14 @@ class NumberInput extends React.Component<any, any> {
|
|
|
111
111
|
*/
|
|
112
112
|
getValue: () => any = () => {
|
|
113
113
|
return this.parseInputValue(
|
|
114
|
-
// @ts-expect-error
|
|
114
|
+
// @ts-expect-error - TS2531 - Object is possibly 'null'. | TS2339 - Property 'value' does not exist on type 'Element | Text'.
|
|
115
115
|
ReactDOM.findDOMNode(this.refs.input).value, // eslint-disable-line react/no-string-refs
|
|
116
116
|
);
|
|
117
117
|
};
|
|
118
118
|
|
|
119
119
|
/* Return the current string value of this input */
|
|
120
120
|
getStringValue: () => string = () => {
|
|
121
|
-
// @ts-expect-error
|
|
121
|
+
// @ts-expect-error - TS2531 - Object is possibly 'null'. | TS2339 - Property 'value' does not exist on type 'Element | Text'.
|
|
122
122
|
return ReactDOM.findDOMNode(this.refs.input).value.toString(); // eslint-disable-line react/no-string-refs
|
|
123
123
|
};
|
|
124
124
|
|
|
@@ -133,13 +133,13 @@ class NumberInput extends React.Component<any, any> {
|
|
|
133
133
|
|
|
134
134
|
/* Set text input focus to this input */
|
|
135
135
|
focus: () => void = () => {
|
|
136
|
-
// @ts-expect-error
|
|
136
|
+
// @ts-expect-error - TS2531 - Object is possibly 'null'. | TS2339 - Property 'focus' does not exist on type 'Element | Text'.
|
|
137
137
|
ReactDOM.findDOMNode(this.refs.input).focus(); // eslint-disable-line react/no-string-refs
|
|
138
138
|
this._handleFocus();
|
|
139
139
|
};
|
|
140
140
|
|
|
141
141
|
blur: () => void = () => {
|
|
142
|
-
// @ts-expect-error
|
|
142
|
+
// @ts-expect-error - TS2531 - Object is possibly 'null'. | TS2339 - Property 'blur' does not exist on type 'Element | Text'.
|
|
143
143
|
ReactDOM.findDOMNode(this.refs.input).blur(); // eslint-disable-line react/no-string-refs
|
|
144
144
|
this._handleBlur();
|
|
145
145
|
};
|
|
@@ -148,7 +148,7 @@ class NumberInput extends React.Component<any, any> {
|
|
|
148
148
|
selectionStart,
|
|
149
149
|
selectionEnd,
|
|
150
150
|
) => {
|
|
151
|
-
// @ts-expect-error
|
|
151
|
+
// @ts-expect-error - TS2531 - Object is possibly 'null'. | TS2339 - Property 'setSelectionRange' does not exist on type 'Element | Text'.
|
|
152
152
|
ReactDOM.findDOMNode(this).setSelectionRange(
|
|
153
153
|
selectionStart,
|
|
154
154
|
selectionEnd,
|
|
@@ -156,12 +156,12 @@ class NumberInput extends React.Component<any, any> {
|
|
|
156
156
|
};
|
|
157
157
|
|
|
158
158
|
getSelectionStart: () => number = () => {
|
|
159
|
-
// @ts-expect-error
|
|
159
|
+
// @ts-expect-error - TS2531 - Object is possibly 'null'. | TS2339 - Property 'selectionStart' does not exist on type 'Element | Text'.
|
|
160
160
|
return ReactDOM.findDOMNode(this).selectionStart;
|
|
161
161
|
};
|
|
162
162
|
|
|
163
163
|
getSelectionEnd: () => number = () => {
|
|
164
|
-
// @ts-expect-error
|
|
164
|
+
// @ts-expect-error - TS2531 - Object is possibly 'null'. | TS2339 - Property 'selectionEnd' does not exist on type 'Element | Text'.
|
|
165
165
|
return ReactDOM.findDOMNode(this).selectionEnd;
|
|
166
166
|
};
|
|
167
167
|
|
|
@@ -198,7 +198,7 @@ class NumberInput extends React.Component<any, any> {
|
|
|
198
198
|
|
|
199
199
|
_handleBlur: (e?: React.FocusEvent | React.KeyboardEvent) => void = (e) => {
|
|
200
200
|
// Only continue on blur or "enter"
|
|
201
|
-
// @ts-expect-error
|
|
201
|
+
// @ts-expect-error - TS2339 - Property 'keyCode' does not exist on type 'KeyboardEvent<Element> | FocusEvent<Element, Element>'.
|
|
202
202
|
if (e && e.type === "keypress" && e.keyCode !== 13) {
|
|
203
203
|
return;
|
|
204
204
|
}
|
|
@@ -239,7 +239,7 @@ class NumberInput extends React.Component<any, any> {
|
|
|
239
239
|
|
|
240
240
|
_setValue: (arg1: number, arg2: MathFormat) => void = (val, format) => {
|
|
241
241
|
// eslint-disable-next-line react/no-string-refs
|
|
242
|
-
// @ts-expect-error
|
|
242
|
+
// @ts-expect-error - TS2769 - No overload matches this call. | TS2339 - Property 'val' does not exist on type 'JQueryStatic'.
|
|
243
243
|
$(ReactDOM.findDOMNode(this.refs.input)).val(
|
|
244
244
|
toNumericString(val, format),
|
|
245
245
|
);
|
|
@@ -33,7 +33,7 @@ const PropCheckBox: any = createReactClass({
|
|
|
33
33
|
const propName = _.find(
|
|
34
34
|
_.keys(this.props),
|
|
35
35
|
function (localPropName) {
|
|
36
|
-
// @ts-expect-error
|
|
36
|
+
// @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
37
37
|
return !_.has(this.DEFAULT_PROPS, localPropName);
|
|
38
38
|
},
|
|
39
39
|
this,
|
|
@@ -30,12 +30,12 @@ export default class SimpleKeypadInput extends React.Component<any> {
|
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
focus() {
|
|
33
|
-
// @ts-expect-error
|
|
33
|
+
// @ts-expect-error - TS2339 - Property 'focus' does not exist on type 'ReactInstance'.
|
|
34
34
|
this.refs.input.focus(); // eslint-disable-line react/no-string-refs
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
blur() {
|
|
38
|
-
// @ts-expect-error
|
|
38
|
+
// @ts-expect-error - TS2339 - Property 'blur' does not exist on type 'ReactInstance'.
|
|
39
39
|
this.refs.input.blur(); // eslint-disable-line react/no-string-refs
|
|
40
40
|
}
|
|
41
41
|
|
|
@@ -52,7 +52,7 @@ export default class SimpleKeypadInput extends React.Component<any> {
|
|
|
52
52
|
const {keypadElement, onFocus, value, ...rest} = _this.props;
|
|
53
53
|
|
|
54
54
|
return (
|
|
55
|
-
// @ts-expect-error
|
|
55
|
+
// @ts-expect-error - TS2769 - No overload matches this call.
|
|
56
56
|
<KeypadInput
|
|
57
57
|
// eslint-disable-next-line react/no-string-refs
|
|
58
58
|
ref="input"
|
|
@@ -80,7 +80,7 @@ export default class SimpleKeypadInput extends React.Component<any> {
|
|
|
80
80
|
}
|
|
81
81
|
}
|
|
82
82
|
|
|
83
|
-
// @ts-expect-error
|
|
83
|
+
// @ts-expect-error - TS2339 - Property 'propTypes' does not exist on type 'typeof SimpleKeypadInput'.
|
|
84
84
|
SimpleKeypadInput.propTypes = {
|
|
85
85
|
keypadElement: keypadElementPropType,
|
|
86
86
|
onFocus: PropTypes.func,
|
|
@@ -11,9 +11,10 @@ import _ from "underscore";
|
|
|
11
11
|
import {getDependencies} from "../dependencies";
|
|
12
12
|
import {ClassNames as ApiClassNames} from "../perseus-api";
|
|
13
13
|
import Renderer from "../renderer";
|
|
14
|
-
import Util
|
|
14
|
+
import Util from "../util";
|
|
15
15
|
|
|
16
16
|
import type {LinterContextProps} from "../types";
|
|
17
|
+
import type {Position} from "../util";
|
|
17
18
|
|
|
18
19
|
export enum Layout {
|
|
19
20
|
HORIZONTAL = "horizontal",
|
|
@@ -112,9 +113,9 @@ type DraggableState = {
|
|
|
112
113
|
class Draggable extends React.Component<DraggableProps, DraggableState> {
|
|
113
114
|
// Handler returned by requestAnimationFrame.
|
|
114
115
|
animationFrameRequest = null;
|
|
115
|
-
// @ts-expect-error
|
|
116
|
+
// @ts-expect-error - TS2564 - Property 'isMouseMoveUpBound' has no initializer and is not definitely assigned in the constructor.
|
|
116
117
|
isMouseMoveUpBound: boolean;
|
|
117
|
-
// @ts-expect-error
|
|
118
|
+
// @ts-expect-error - TS2564 - Property '_mounted' has no initializer and is not definitely assigned in the constructor.
|
|
118
119
|
_mounted: boolean;
|
|
119
120
|
|
|
120
121
|
static defaultProps: DefaultDraggableProps = {
|
|
@@ -273,7 +274,7 @@ class Draggable extends React.Component<DraggableProps, DraggableState> {
|
|
|
273
274
|
),
|
|
274
275
|
);
|
|
275
276
|
|
|
276
|
-
// @ts-expect-error
|
|
277
|
+
// @ts-expect-error - TS2769 - No overload matches this call. | TS2339 - Property 'animate' does not exist on type 'JQueryStatic'.
|
|
277
278
|
$(ReactDOM.findDOMNode(this)).animate(this.props.endPosition, {
|
|
278
279
|
duration: Math.max(duration, 1),
|
|
279
280
|
// Animating -> Static
|
|
@@ -281,7 +282,7 @@ class Draggable extends React.Component<DraggableProps, DraggableState> {
|
|
|
281
282
|
});
|
|
282
283
|
} else if (this.props.state === ItemState.STATIC) {
|
|
283
284
|
// Ensure that any animations are done
|
|
284
|
-
// @ts-expect-error
|
|
285
|
+
// @ts-expect-error - TS2769 - No overload matches this call. | TS2339 - Property 'finish' does not exist on type 'JQueryStatic'.
|
|
285
286
|
$(ReactDOM.findDOMNode(this)).finish();
|
|
286
287
|
}
|
|
287
288
|
}
|
|
@@ -317,14 +318,14 @@ class Draggable extends React.Component<DraggableProps, DraggableState> {
|
|
|
317
318
|
|
|
318
319
|
// TODO(jeff, CP-3128): Use Wonder Blocks Timing API.
|
|
319
320
|
// eslint-disable-next-line no-restricted-syntax
|
|
320
|
-
// @ts-expect-error
|
|
321
|
+
// @ts-expect-error - TS2322 - Type 'number' is not assignable to type 'null'.
|
|
321
322
|
this.animationFrameRequest = requestAnimationFrame(() => {
|
|
322
|
-
// @ts-expect-error
|
|
323
|
+
// @ts-expect-error - TS2769 - No overload matches this call.
|
|
323
324
|
const $el = $(ReactDOM.findDOMNode(this));
|
|
324
325
|
|
|
325
326
|
// jQuery.position() gets the position of the element wrt its offset parent,
|
|
326
327
|
// but subtracts the scroll position of the parent. We need to add that back.
|
|
327
|
-
// @ts-expect-error
|
|
328
|
+
// @ts-expect-error - TS2339 - Property 'position' does not exist on type 'JQueryStatic'.
|
|
328
329
|
const position = $el.position();
|
|
329
330
|
const startPosition = addOffsetParentScroll($el, position);
|
|
330
331
|
|
|
@@ -340,11 +341,11 @@ class Draggable extends React.Component<DraggableProps, DraggableState> {
|
|
|
340
341
|
dragging: true,
|
|
341
342
|
},
|
|
342
343
|
function () {
|
|
343
|
-
// @ts-expect-error
|
|
344
|
+
// @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
344
345
|
this.bindMouseMoveUp();
|
|
345
346
|
|
|
346
347
|
// Static -> Dragging
|
|
347
|
-
// @ts-expect-error
|
|
348
|
+
// @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
348
349
|
this.props.onMouseDown();
|
|
349
350
|
},
|
|
350
351
|
);
|
|
@@ -366,7 +367,7 @@ class Draggable extends React.Component<DraggableProps, DraggableState> {
|
|
|
366
367
|
if (loc) {
|
|
367
368
|
// TODO(jeff, CP-3128): Use Wonder Blocks Timing API.
|
|
368
369
|
// eslint-disable-next-line no-restricted-syntax
|
|
369
|
-
// @ts-expect-error
|
|
370
|
+
// @ts-expect-error - TS2322 - Type 'number' is not assignable to type 'null'.
|
|
370
371
|
this.animationFrameRequest = requestAnimationFrame(() => {
|
|
371
372
|
this.setState(
|
|
372
373
|
{
|
|
@@ -549,7 +550,7 @@ class Sortable extends React.Component<SortableProps, SortableState> {
|
|
|
549
550
|
items,
|
|
550
551
|
function (item) {
|
|
551
552
|
// eslint-disable-next-line react/no-string-refs
|
|
552
|
-
// @ts-expect-error
|
|
553
|
+
// @ts-expect-error - TS2769 - No overload matches this call. | TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
553
554
|
return $(ReactDOM.findDOMNode(this.refs[item.key]));
|
|
554
555
|
},
|
|
555
556
|
this,
|
|
@@ -654,13 +655,13 @@ class Sortable extends React.Component<SortableProps, SortableState> {
|
|
|
654
655
|
item.state === ItemState.DISABLED;
|
|
655
656
|
let margin;
|
|
656
657
|
|
|
657
|
-
// @ts-expect-error
|
|
658
|
+
// @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
658
659
|
if (this.props.layout === Layout.HORIZONTAL) {
|
|
659
|
-
// @ts-expect-error
|
|
660
|
+
// @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
660
661
|
margin = "0 " + this.props.margin + "px 0 0"; // right
|
|
661
|
-
// @ts-expect-error
|
|
662
|
+
// @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
662
663
|
} else if (this.props.layout === Layout.VERTICAL) {
|
|
663
|
-
// @ts-expect-error
|
|
664
|
+
// @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
664
665
|
margin = "0 0 " + this.props.margin + "px 0"; // bottom
|
|
665
666
|
}
|
|
666
667
|
|
|
@@ -669,44 +670,44 @@ class Sortable extends React.Component<SortableProps, SortableState> {
|
|
|
669
670
|
content={item.option}
|
|
670
671
|
key={item.key}
|
|
671
672
|
state={item.state}
|
|
672
|
-
// @ts-expect-error
|
|
673
|
+
// @ts-expect-error - TS2769 - No overload matches this call.
|
|
673
674
|
ref={item.key}
|
|
674
675
|
width={syncWidth ? item.width : undefined}
|
|
675
676
|
height={syncHeight ? item.height : undefined}
|
|
676
677
|
layout={layout}
|
|
677
|
-
// @ts-expect-error
|
|
678
|
+
// @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
678
679
|
includePadding={this.props.padding}
|
|
679
680
|
margin={isLast && isStatic ? 0 : margin}
|
|
680
681
|
endPosition={item.endPosition}
|
|
681
682
|
linterContext={PerseusLinter.pushContextStack(
|
|
682
|
-
// @ts-expect-error
|
|
683
|
+
// @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
683
684
|
this.props.linterContext,
|
|
684
685
|
"sortable",
|
|
685
686
|
)}
|
|
686
|
-
// @ts-expect-error
|
|
687
|
+
// @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
687
688
|
onRender={this.remeasureItems}
|
|
688
689
|
// eslint-disable-next-line react/jsx-no-bind
|
|
689
|
-
// @ts-expect-error
|
|
690
|
+
// @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.
|
|
690
691
|
onMouseDown={this.onMouseDown.bind(this, item.key)}
|
|
691
692
|
// eslint-disable-next-line react/jsx-no-bind
|
|
692
|
-
// @ts-expect-error
|
|
693
|
+
// @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.
|
|
693
694
|
onMouseMove={this.onMouseMove.bind(this, item.key)}
|
|
694
695
|
// eslint-disable-next-line react/jsx-no-bind
|
|
695
|
-
// @ts-expect-error
|
|
696
|
+
// @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.
|
|
696
697
|
onMouseUp={this.onMouseUp.bind(this, item.key)}
|
|
697
698
|
// eslint-disable-next-line react/jsx-no-bind
|
|
698
|
-
// @ts-expect-error
|
|
699
|
+
// @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.
|
|
699
700
|
onTouchMove={this.onMouseMove.bind(this, item.key)}
|
|
700
701
|
// eslint-disable-next-line react/jsx-no-bind
|
|
701
|
-
// @ts-expect-error
|
|
702
|
+
// @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.
|
|
702
703
|
onTouchEnd={this.onMouseUp.bind(this, item.key)}
|
|
703
704
|
// eslint-disable-next-line react/jsx-no-bind
|
|
704
|
-
// @ts-expect-error
|
|
705
|
+
// @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.
|
|
705
706
|
onTouchCancel={this.onMouseUp.bind(this, item.key)}
|
|
706
707
|
// eslint-disable-next-line react/jsx-no-bind
|
|
707
|
-
// @ts-expect-error
|
|
708
|
+
// @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
708
709
|
onAnimationEnd={this.onAnimationEnd.bind(
|
|
709
|
-
// @ts-expect-error
|
|
710
|
+
// @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
710
711
|
this,
|
|
711
712
|
item.key,
|
|
712
713
|
)}
|
|
@@ -774,9 +775,9 @@ class Sortable extends React.Component<SortableProps, SortableState> {
|
|
|
774
775
|
return i.key === item.key;
|
|
775
776
|
});
|
|
776
777
|
|
|
777
|
-
// @ts-expect-error
|
|
778
|
+
// @ts-expect-error - TS2551 - Property 'splice' does not exist on type 'readonly SortableItem[]'. Did you mean 'slice'?
|
|
778
779
|
nextItems.splice(currentIndex, 1);
|
|
779
|
-
// @ts-expect-error
|
|
780
|
+
// @ts-expect-error - TS2551 - Property 'splice' does not exist on type 'readonly SortableItem[]'. Did you mean 'slice'?
|
|
780
781
|
nextItems.splice(index, 0, item);
|
|
781
782
|
|
|
782
783
|
this.setState({items: nextItems});
|
|
@@ -786,22 +787,22 @@ class Sortable extends React.Component<SortableProps, SortableState> {
|
|
|
786
787
|
onMouseMove(key: SortableItem["key"]) {
|
|
787
788
|
// Dragging: Rearrange items based on draggable's position
|
|
788
789
|
// eslint-disable-next-line react/no-string-refs
|
|
789
|
-
// @ts-expect-error
|
|
790
|
+
// @ts-expect-error - TS2769 - No overload matches this call.
|
|
790
791
|
const $draggable = $(ReactDOM.findDOMNode(this.refs[key]));
|
|
791
|
-
// @ts-expect-error
|
|
792
|
+
// @ts-expect-error - TS2769 - No overload matches this call.
|
|
792
793
|
const $sortable = $(ReactDOM.findDOMNode(this));
|
|
793
794
|
const items = _.clone(this.state.items);
|
|
794
795
|
const item = _.findWhere(this.state.items, {key: key});
|
|
795
796
|
const margin = this.props.margin || 0;
|
|
796
|
-
// @ts-expect-error
|
|
797
|
+
// @ts-expect-error - TS2345 - Argument of type 'SortableItem | undefined' is not assignable to parameter of type 'SortableItem'.
|
|
797
798
|
const currentIndex = _.indexOf(items, item);
|
|
798
799
|
let newIndex = 0;
|
|
799
800
|
|
|
800
|
-
// @ts-expect-error
|
|
801
|
+
// @ts-expect-error - TS2551 - Property 'splice' does not exist on type 'readonly SortableItem[]'. Did you mean 'slice'?
|
|
801
802
|
items.splice(currentIndex, 1);
|
|
802
803
|
|
|
803
804
|
if (this.props.layout === Layout.HORIZONTAL) {
|
|
804
|
-
// @ts-expect-error
|
|
805
|
+
// @ts-expect-error - TS2339 - Property 'offset' does not exist on type 'JQueryStatic'. | TS2339 - Property 'offset' does not exist on type 'JQueryStatic'.
|
|
805
806
|
const midWidth = $draggable.offset().left - $sortable.offset().left;
|
|
806
807
|
let sumWidth = 0;
|
|
807
808
|
let cardWidth;
|
|
@@ -814,7 +815,7 @@ class Sortable extends React.Component<SortableProps, SortableState> {
|
|
|
814
815
|
sumWidth += cardWidth + margin;
|
|
815
816
|
});
|
|
816
817
|
} else {
|
|
817
|
-
// @ts-expect-error
|
|
818
|
+
// @ts-expect-error - TS2339 - Property 'offset' does not exist on type 'JQueryStatic'. | TS2339 - Property 'offset' does not exist on type 'JQueryStatic'.
|
|
818
819
|
const midHeight = $draggable.offset().top - $sortable.offset().top;
|
|
819
820
|
let sumHeight = 0;
|
|
820
821
|
let cardHeight;
|
|
@@ -829,7 +830,7 @@ class Sortable extends React.Component<SortableProps, SortableState> {
|
|
|
829
830
|
}
|
|
830
831
|
|
|
831
832
|
if (newIndex !== currentIndex) {
|
|
832
|
-
// @ts-expect-error
|
|
833
|
+
// @ts-expect-error - TS2551 - Property 'splice' does not exist on type 'readonly SortableItem[]'. Did you mean 'slice'?
|
|
833
834
|
items.splice(newIndex, 0, item);
|
|
834
835
|
this.setState({items: items});
|
|
835
836
|
}
|
|
@@ -846,14 +847,14 @@ class Sortable extends React.Component<SortableProps, SortableState> {
|
|
|
846
847
|
if (item.key === key) {
|
|
847
848
|
item.state = ItemState.ANIMATING;
|
|
848
849
|
const $placeholder = $(
|
|
849
|
-
// @ts-expect-error
|
|
850
|
+
// @ts-expect-error - TS2769 - No overload matches this call.
|
|
850
851
|
ReactDOM.findDOMNode(
|
|
851
852
|
// eslint-disable-next-line react/no-string-refs
|
|
852
|
-
// @ts-expect-error
|
|
853
|
+
// @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
853
854
|
this.refs["placeholder_" + key],
|
|
854
855
|
),
|
|
855
856
|
);
|
|
856
|
-
// @ts-expect-error
|
|
857
|
+
// @ts-expect-error - TS2339 - Property 'position' does not exist on type 'JQueryStatic'.
|
|
857
858
|
const position = $placeholder.position();
|
|
858
859
|
const endPosition = addOffsetParentScroll(
|
|
859
860
|
$placeholder,
|
|
@@ -873,7 +874,7 @@ class Sortable extends React.Component<SortableProps, SortableState> {
|
|
|
873
874
|
this.props.onChange && this.props.onChange({});
|
|
874
875
|
});
|
|
875
876
|
|
|
876
|
-
// @ts-expect-error
|
|
877
|
+
// @ts-expect-error - TS2339 - Property 'animationFrameRequest' does not exist on type 'Sortable'.
|
|
877
878
|
this.animationFrameRequest = nextAnimationFrame;
|
|
878
879
|
}
|
|
879
880
|
|