@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.
Files changed (380) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/dist/article-renderer.d.ts +26 -40
  3. package/dist/components/math-input.d.ts +1 -1
  4. package/dist/components/sortable.d.ts +1 -1
  5. package/dist/components/tex-buttons.d.ts +1 -1
  6. package/dist/es/index.js +1139 -1189
  7. package/dist/es/index.js.map +1 -1
  8. package/dist/hints-renderer.d.ts +1 -1
  9. package/dist/index.js +1141 -1192
  10. package/dist/index.js.map +1 -1
  11. package/dist/mixins/provide-keypad.d.ts +15 -12
  12. package/dist/perseus-api.d.ts +1 -1
  13. package/dist/types.d.ts +3 -2
  14. package/dist/widgets/expression.d.ts +1 -1
  15. package/dist/widgets/graded-group.d.ts +1 -1
  16. package/dist/widgets/interactive-graph.d.ts +1 -1
  17. package/dist/widgets/sequence.d.ts +1 -1
  18. package/dist/widgets/table.d.ts +8 -1
  19. package/dist/widgets.d.ts +1 -1
  20. package/package.json +33 -33
  21. package/src/__testdata__/article-renderer.testdata.ts +3 -1
  22. package/src/__testdata__/item-renderer.testdata.ts +1 -1
  23. package/src/__testdata__/renderer.testdata.ts +1 -1
  24. package/src/__tests__/item-renderer.test.tsx +1 -1
  25. package/src/__tests__/mock-asset-loading-widget.tsx +1 -1
  26. package/src/__tests__/perseus-markdown.test.ts +17 -17
  27. package/src/__tests__/renderer-api.test.tsx +21 -21
  28. package/src/__tests__/renderer.test.tsx +13 -13
  29. package/src/__tests__/server-item-renderer.test.tsx +3 -3
  30. package/src/__tests__/tex-wrangler.test.ts +1 -1
  31. package/src/article-renderer.tsx +39 -38
  32. package/src/components/__tests__/number-input.test.tsx +4 -4
  33. package/src/components/__tests__/sortable.test.tsx +2 -2
  34. package/src/components/fixed-to-responsive.tsx +1 -1
  35. package/src/components/graph.tsx +11 -11
  36. package/src/components/graphie-classes.ts +7 -7
  37. package/src/components/graphie.tsx +14 -14
  38. package/src/components/highlighting/highlightable-content.tsx +1 -1
  39. package/src/components/highlighting/ui/highlight-renderer.tsx +1 -1
  40. package/src/components/highlighting/ui/util.ts +2 -2
  41. package/src/components/highlighting/word-indexer.tsx +4 -4
  42. package/src/components/icon.tsx +1 -1
  43. package/src/components/image-loader.tsx +4 -4
  44. package/src/components/input-with-examples.tsx +2 -2
  45. package/src/components/lint.tsx +1 -1
  46. package/src/components/math-input.tsx +5 -5
  47. package/src/components/math-output.tsx +1 -1
  48. package/src/components/multi-button-group.tsx +1 -1
  49. package/src/components/number-input.tsx +10 -10
  50. package/src/components/prop-check-box.tsx +1 -1
  51. package/src/components/simple-keypad-input.tsx +4 -4
  52. package/src/components/sortable.tsx +42 -41
  53. package/src/components/svg-image.tsx +12 -12
  54. package/src/components/tex-buttons.tsx +4 -3
  55. package/src/components/text-input.tsx +8 -8
  56. package/src/components/text-list-editor.tsx +11 -11
  57. package/src/components/visibility-observer/create-visibility-observer.ts +1 -1
  58. package/src/components/visibility-observer/visibility-observer.tsx +2 -2
  59. package/src/components/zoomable-tex.tsx +3 -3
  60. package/src/components/zoomable.tsx +8 -8
  61. package/src/hint-renderer.tsx +3 -3
  62. package/src/hints-renderer.tsx +11 -11
  63. package/src/init.ts +1 -1
  64. package/src/interaction-tracker.ts +4 -4
  65. package/src/interactive2/__tests__/movable-point.test.ts +1 -1
  66. package/src/interactive2/interactive-util.ts +6 -6
  67. package/src/interactive2/movable-helper-methods.ts +2 -2
  68. package/src/interactive2/movable-line-options.ts +37 -37
  69. package/src/interactive2/movable-line.ts +2 -2
  70. package/src/interactive2/movable-point-options.ts +29 -29
  71. package/src/interactive2/movable-point.tsx +2 -2
  72. package/src/interactive2/movable-polygon-options.ts +45 -45
  73. package/src/interactive2/movable-polygon.ts +2 -2
  74. package/src/interactive2/movable.ts +2 -2
  75. package/src/interactive2/objective_.ts +1 -1
  76. package/src/interactive2/wrapped-defaults.ts +2 -2
  77. package/src/interactive2/wrapped-ellipse.ts +9 -9
  78. package/src/interactive2/wrapped-line.ts +8 -8
  79. package/src/interactive2/wrapped-path.ts +5 -5
  80. package/src/item-renderer.tsx +5 -5
  81. package/src/mixins/changeable.ts +2 -2
  82. package/src/mixins/editor-jsonify.ts +1 -1
  83. package/src/mixins/provide-keypad.tsx +23 -37
  84. package/src/mixins/widget-jsonify-deprecated.ts +1 -1
  85. package/src/multi-items/__tests__/items.test.ts +1 -1
  86. package/src/multi-items/__tests__/multi-renderer.test.tsx +7 -7
  87. package/src/multi-items/__tests__/trees.test.ts +12 -12
  88. package/src/multi-items/item-types.ts +2 -2
  89. package/src/multi-items/items.ts +1 -1
  90. package/src/multi-items/multi-renderer.tsx +14 -14
  91. package/src/multi-items/prop-type-builders.ts +2 -2
  92. package/src/multi-items/tree-types.ts +4 -4
  93. package/src/multi-items/trees.ts +16 -16
  94. package/src/perseus-env.ts +2 -2
  95. package/src/perseus-markdown.tsx +5 -5
  96. package/src/renderer.tsx +38 -38
  97. package/src/server-item-renderer.tsx +5 -5
  98. package/src/sigfigs.ts +1 -1
  99. package/src/traversal.ts +1 -1
  100. package/src/types.ts +3 -3
  101. package/src/util/answer-types.ts +14 -14
  102. package/src/util/geometry.ts +7 -7
  103. package/src/util/graphie.ts +32 -32
  104. package/src/util/interactive.ts +118 -118
  105. package/src/util/math.ts +4 -4
  106. package/src/util/react-render.tsx +1 -1
  107. package/src/util/scroll-utils.ts +2 -2
  108. package/src/util/tex.ts +3 -3
  109. package/src/util.ts +15 -15
  110. package/src/widget-container.tsx +1 -1
  111. package/src/widgets/__stories__/test-keypad-context-wrapper.tsx +3 -3
  112. package/src/widgets/__testdata__/numeric-input.testdata.ts +1 -1
  113. package/src/widgets/__tests__/__snapshots__/video.test.ts.snap +2 -2
  114. package/src/widgets/__tests__/expression.test.ts +4 -3
  115. package/src/widgets/__tests__/grapher.cypress.ts +32 -32
  116. package/src/widgets/__tests__/group.test.tsx +1 -1
  117. package/src/widgets/__tests__/interactive-graph.cypress.ts +40 -40
  118. package/src/widgets/__tests__/interactive-graph.test.ts +1 -1
  119. package/src/widgets/__tests__/numeric-input.test.ts +1 -1
  120. package/src/widgets/__tests__/passage.test.tsx +2 -2
  121. package/src/widgets/__tests__/plotter.test.tsx +2 -1
  122. package/src/widgets/__tests__/radio/base-radio.test.tsx +7 -7
  123. package/src/widgets/__tests__/renderQuestion.tsx +3 -3
  124. package/src/widgets/categorizer.tsx +4 -4
  125. package/src/widgets/cs-program.tsx +2 -2
  126. package/src/widgets/dropdown.tsx +1 -1
  127. package/src/widgets/expression.tsx +10 -9
  128. package/src/widgets/graded-group-set.tsx +5 -5
  129. package/src/widgets/graded-group.tsx +18 -19
  130. package/src/widgets/grapher/util.tsx +6 -6
  131. package/src/widgets/grapher.tsx +10 -10
  132. package/src/widgets/group.tsx +3 -3
  133. package/src/widgets/iframe.tsx +2 -2
  134. package/src/widgets/image.tsx +1 -1
  135. package/src/widgets/input-number.tsx +4 -4
  136. package/src/widgets/interaction.tsx +77 -77
  137. package/src/widgets/interactive-graph.tsx +109 -107
  138. package/src/widgets/label-image/marker.tsx +2 -2
  139. package/src/widgets/label-image.test.ts +1 -1
  140. package/src/widgets/label-image.tsx +7 -7
  141. package/src/widgets/lights-puzzle.tsx +2 -2
  142. package/src/widgets/matcher.tsx +6 -6
  143. package/src/widgets/matrix.tsx +20 -20
  144. package/src/widgets/measurer.tsx +3 -3
  145. package/src/widgets/molecule/__tests__/layout.test.ts +4 -4
  146. package/src/widgets/molecule/__tests__/parser.test.ts +14 -14
  147. package/src/widgets/molecule/smiles-parser.ts +3 -3
  148. package/src/widgets/molecule.tsx +4 -4
  149. package/src/widgets/number-line.tsx +11 -11
  150. package/src/widgets/numeric-input.tsx +11 -11
  151. package/src/widgets/orderer.tsx +38 -38
  152. package/src/widgets/passage/__tests__/passage-markdown.test.ts +1 -1
  153. package/src/widgets/passage/passage-markdown.tsx +4 -4
  154. package/src/widgets/passage-ref-target.tsx +1 -1
  155. package/src/widgets/passage-ref.tsx +4 -6
  156. package/src/widgets/passage.tsx +11 -11
  157. package/src/widgets/plotter.tsx +9 -9
  158. package/src/widgets/radio/base-radio.tsx +11 -11
  159. package/src/widgets/radio/choice-icon/choice-icon.tsx +2 -2
  160. package/src/widgets/radio/choice.tsx +1 -1
  161. package/src/widgets/radio/option-status.tsx +1 -1
  162. package/src/widgets/radio/widget.tsx +6 -6
  163. package/src/widgets/radio.ts +1 -1
  164. package/src/widgets/reaction-diagram.tsx +8 -8
  165. package/src/widgets/sequence.tsx +2 -2
  166. package/src/widgets/simulator.tsx +14 -14
  167. package/src/widgets/sorter.tsx +4 -4
  168. package/src/widgets/table.tsx +8 -8
  169. package/src/widgets/transformer.tsx +92 -92
  170. package/src/widgets/unit.tsx +17 -17
  171. package/src/widgets/video-transcript-link.test.tsx +3 -3
  172. package/src/widgets/video-transcript-link.tsx +1 -1
  173. package/src/widgets/video.tsx +1 -1
  174. package/src/widgets.ts +5 -5
  175. package/src/zoom.ts +22 -22
  176. package/tsconfig-build.tsbuildinfo +1 -1
  177. package/dist/a11y.js.flow +0 -11
  178. package/dist/all-widgets.js.flow +0 -33
  179. package/dist/article-renderer.js.flow +0 -73
  180. package/dist/asset-context.js.flow +0 -15
  181. package/dist/basic-widgets.js.flow +0 -33
  182. package/dist/components/button-group.js.flow +0 -33
  183. package/dist/components/constants.js.flow +0 -13
  184. package/dist/components/fixed-to-responsive.js.flow +0 -34
  185. package/dist/components/graph.js.flow +0 -66
  186. package/dist/components/graphie-classes.js.flow +0 -19
  187. package/dist/components/graphie-movables.js.flow +0 -22
  188. package/dist/components/graphie.js.flow +0 -69
  189. package/dist/components/highlighting/highlightable-content.js.flow +0 -56
  190. package/dist/components/highlighting/highlights.js.flow +0 -54
  191. package/dist/components/highlighting/ranges.js.flow +0 -60
  192. package/dist/components/highlighting/types.js.flow +0 -70
  193. package/dist/components/highlighting/ui/highlight-renderer.js.flow +0 -43
  194. package/dist/components/highlighting/ui/highlight-set-renderer.js.flow +0 -41
  195. package/dist/components/highlighting/ui/highlight-tooltip.js.flow +0 -22
  196. package/dist/components/highlighting/ui/highlighting-ui.js.flow +0 -30
  197. package/dist/components/highlighting/ui/selection-tracker.js.flow +0 -54
  198. package/dist/components/highlighting/ui/types.js.flow +0 -22
  199. package/dist/components/highlighting/ui/util.js.flow +0 -42
  200. package/dist/components/highlighting/word-indexer.js.flow +0 -21
  201. package/dist/components/hud.js.flow +0 -14
  202. package/dist/components/icon.js.flow +0 -31
  203. package/dist/components/image-loader.js.flow +0 -49
  204. package/dist/components/info-tip/info-tip.js.flow +0 -20
  205. package/dist/components/info-tip.js.flow +0 -18
  206. package/dist/components/inline-icon.js.flow +0 -39
  207. package/dist/components/input-with-examples.js.flow +0 -58
  208. package/dist/components/lint.js.flow +0 -58
  209. package/dist/components/math-input.js.flow +0 -49
  210. package/dist/components/math-output.js.flow +0 -33
  211. package/dist/components/multi-button-group.js.flow +0 -35
  212. package/dist/components/number-input.js.flow +0 -42
  213. package/dist/components/prop-check-box.js.flow +0 -8
  214. package/dist/components/range-input.js.flow +0 -20
  215. package/dist/components/simple-keypad-input.js.flow +0 -16
  216. package/dist/components/sortable.js.flow +0 -91
  217. package/dist/components/stub-tag-editor.js.flow +0 -18
  218. package/dist/components/svg-image.js.flow +0 -85
  219. package/dist/components/tex-buttons.js.flow +0 -26
  220. package/dist/components/tex.js.flow +0 -25
  221. package/dist/components/text-input.js.flow +0 -39
  222. package/dist/components/text-list-editor.js.flow +0 -22
  223. package/dist/components/tooltip.js.flow +0 -51
  224. package/dist/components/visibility-observer/create-visibility-observer.js.flow +0 -23
  225. package/dist/components/visibility-observer/get-scroll-parent.js.flow +0 -7
  226. package/dist/components/visibility-observer/visibility-observer.js.flow +0 -36
  227. package/dist/components/zoomable-tex.js.flow +0 -18
  228. package/dist/components/zoomable.js.flow +0 -70
  229. package/dist/components.js.flow +0 -22
  230. package/dist/definition-context.js.flow +0 -25
  231. package/dist/dependencies.js.flow +0 -9
  232. package/dist/error-boundary.js.flow +0 -19
  233. package/dist/extra-widgets.js.flow +0 -33
  234. package/dist/hint-renderer.js.flow +0 -32
  235. package/dist/hints-renderer.js.flow +0 -41
  236. package/dist/icon-paths.js.flow +0 -123
  237. package/dist/index.js.flow +0 -134
  238. package/dist/init.js.flow +0 -20
  239. package/dist/interaction-tracker.js.flow +0 -35
  240. package/dist/interactive2/interactive-util.js.flow +0 -50
  241. package/dist/interactive2/movable-helper-methods.js.flow +0 -15
  242. package/dist/interactive2/movable-line-options.js.flow +0 -44
  243. package/dist/interactive2/movable-line.js.flow +0 -8
  244. package/dist/interactive2/movable-point-options.js.flow +0 -44
  245. package/dist/interactive2/movable-point.js.flow +0 -8
  246. package/dist/interactive2/movable-polygon-options.js.flow +0 -47
  247. package/dist/interactive2/movable-polygon.js.flow +0 -8
  248. package/dist/interactive2/movable.js.flow +0 -8
  249. package/dist/interactive2/objective_.js.flow +0 -25
  250. package/dist/interactive2/types.js.flow +0 -8
  251. package/dist/interactive2/wrapped-defaults.js.flow +0 -11
  252. package/dist/interactive2/wrapped-ellipse.js.flow +0 -14
  253. package/dist/interactive2/wrapped-line.js.flow +0 -14
  254. package/dist/interactive2/wrapped-path.js.flow +0 -13
  255. package/dist/interactive2.js.flow +0 -16
  256. package/dist/item-renderer.js.flow +0 -132
  257. package/dist/item-version.js.flow +0 -11
  258. package/dist/jipt-paragraphs.js.flow +0 -14
  259. package/dist/loading-context.js.flow +0 -12
  260. package/dist/logging/log.js.flow +0 -62
  261. package/dist/mixins/changeable.js.flow +0 -33
  262. package/dist/mixins/editor-jsonify.js.flow +0 -10
  263. package/dist/mixins/provide-keypad.js.flow +0 -33
  264. package/dist/mixins/widget-jsonify-deprecated.js.flow +0 -11
  265. package/dist/mixins/widget-prop-denylist.js.flow +0 -20
  266. package/dist/multi-items/item-types.js.flow +0 -55
  267. package/dist/multi-items/items.js.flow +0 -66
  268. package/dist/multi-items/multi-renderer.js.flow +0 -213
  269. package/dist/multi-items/prop-type-builders.js.flow +0 -22
  270. package/dist/multi-items/shape-types.js.flow +0 -60
  271. package/dist/multi-items/shapes.js.flow +0 -25
  272. package/dist/multi-items/tree-types.js.flow +0 -45
  273. package/dist/multi-items/trees.js.flow +0 -147
  274. package/dist/multi-items.js.flow +0 -36
  275. package/dist/perseus-api.js.flow +0 -151
  276. package/dist/perseus-env.js.flow +0 -6
  277. package/dist/perseus-error.js.flow +0 -16
  278. package/dist/perseus-markdown.js.flow +0 -20
  279. package/dist/perseus-types.js.flow +0 -1041
  280. package/dist/question-paragraph.js.flow +0 -17
  281. package/dist/renderability.js.flow +0 -19
  282. package/dist/renderer.js.flow +0 -325
  283. package/dist/server-item-renderer.js.flow +0 -132
  284. package/dist/sigfigs.js.flow +0 -41
  285. package/dist/styles/constants.js.flow +0 -62
  286. package/dist/styles/global-constants.js.flow +0 -348
  287. package/dist/styles/global-styles.js.flow +0 -53
  288. package/dist/styles/media-queries.js.flow +0 -35
  289. package/dist/styles/shared.js.flow +0 -8
  290. package/dist/tex-wrangler.js.flow +0 -13
  291. package/dist/translation-linter.js.flow +0 -32
  292. package/dist/traversal.js.flow +0 -26
  293. package/dist/types.js.flow +0 -318
  294. package/dist/util/a11y.js.flow +0 -8
  295. package/dist/util/answer-types.js.flow +0 -49
  296. package/dist/util/colors.js.flow +0 -95
  297. package/dist/util/fix-passage-refs.js.flow +0 -8
  298. package/dist/util/geometry.js.flow +0 -37
  299. package/dist/util/graph-utils.js.flow +0 -9
  300. package/dist/util/graphie.js.flow +0 -8
  301. package/dist/util/interactive.js.flow +0 -11
  302. package/dist/util/katex-preprocess.js.flow +0 -12
  303. package/dist/util/math.js.flow +0 -62
  304. package/dist/util/mobile-native-utils.js.flow +0 -12
  305. package/dist/util/react-render.js.flow +0 -12
  306. package/dist/util/register-all-widgets-for-testing.js.flow +0 -7
  307. package/dist/util/scroll-utils.js.flow +0 -19
  308. package/dist/util/sizing-utils.js.flow +0 -20
  309. package/dist/util/tex.js.flow +0 -17
  310. package/dist/util/url-utils.js.flow +0 -11
  311. package/dist/util.graphie.js.flow +0 -14
  312. package/dist/util.js.flow +0 -319
  313. package/dist/version.js.flow +0 -17
  314. package/dist/widget-container.js.flow +0 -33
  315. package/dist/widgets/categorizer.js.flow +0 -70
  316. package/dist/widgets/cs-program.js.flow +0 -54
  317. package/dist/widgets/definition.js.flow +0 -57
  318. package/dist/widgets/dropdown.js.flow +0 -63
  319. package/dist/widgets/explanation.js.flow +0 -58
  320. package/dist/widgets/expression.js.flow +0 -116
  321. package/dist/widgets/graded-group-answer-bar.js.flow +0 -24
  322. package/dist/widgets/graded-group-set.js.flow +0 -65
  323. package/dist/widgets/graded-group.js.flow +0 -78
  324. package/dist/widgets/grapher/util.js.flow +0 -38
  325. package/dist/widgets/grapher.js.flow +0 -102
  326. package/dist/widgets/group.js.flow +0 -60
  327. package/dist/widgets/iframe.js.flow +0 -53
  328. package/dist/widgets/image.js.flow +0 -73
  329. package/dist/widgets/input-number.js.flow +0 -94
  330. package/dist/widgets/interaction/arrow-picker.js.flow +0 -21
  331. package/dist/widgets/interaction/color-picker.js.flow +0 -23
  332. package/dist/widgets/interaction/dash-picker.js.flow +0 -21
  333. package/dist/widgets/interaction/element-container.js.flow +0 -28
  334. package/dist/widgets/interaction.js.flow +0 -60
  335. package/dist/widgets/interactive-graph.js.flow +0 -239
  336. package/dist/widgets/label-image/answer-choices.js.flow +0 -55
  337. package/dist/widgets/label-image/marker.js.flow +0 -31
  338. package/dist/widgets/label-image/types.js.flow +0 -23
  339. package/dist/widgets/label-image.js.flow +0 -142
  340. package/dist/widgets/lights-puzzle.js.flow +0 -58
  341. package/dist/widgets/matcher.js.flow +0 -106
  342. package/dist/widgets/matrix.js.flow +0 -80
  343. package/dist/widgets/measurer.js.flow +0 -30
  344. package/dist/widgets/molecule/molecule-drawing.js.flow +0 -11
  345. package/dist/widgets/molecule/molecule-layout.js.flow +0 -96
  346. package/dist/widgets/molecule/smiles-parser.js.flow +0 -26
  347. package/dist/widgets/molecule.js.flow +0 -60
  348. package/dist/widgets/number-line.js.flow +0 -102
  349. package/dist/widgets/numeric-input.js.flow +0 -105
  350. package/dist/widgets/orderer.js.flow +0 -81
  351. package/dist/widgets/passage/passage-markdown.js.flow +0 -33
  352. package/dist/widgets/passage-ref-target.js.flow +0 -52
  353. package/dist/widgets/passage-ref.js.flow +0 -85
  354. package/dist/widgets/passage.js.flow +0 -157
  355. package/dist/widgets/plotter.js.flow +0 -112
  356. package/dist/widgets/radio/base-radio.js.flow +0 -50
  357. package/dist/widgets/radio/choice-a11y-text.js.flow +0 -14
  358. package/dist/widgets/radio/choice-icon/choice-icon.js.flow +0 -22
  359. package/dist/widgets/radio/choice-icon/cross-out-line.js.flow +0 -16
  360. package/dist/widgets/radio/choice-icon/shared-styles.js.flow +0 -11
  361. package/dist/widgets/radio/choice-none-above.js.flow +0 -16
  362. package/dist/widgets/radio/choice.js.flow +0 -29
  363. package/dist/widgets/radio/choice.jsx.fixture.js.flow +0 -7
  364. package/dist/widgets/radio/focus-ring.js.flow +0 -22
  365. package/dist/widgets/radio/option-status.js.flow +0 -16
  366. package/dist/widgets/radio/util.js.flow +0 -12
  367. package/dist/widgets/radio/widget.js.flow +0 -80
  368. package/dist/widgets/radio.js.flow +0 -31
  369. package/dist/widgets/reaction-diagram.js.flow +0 -46
  370. package/dist/widgets/sequence.js.flow +0 -53
  371. package/dist/widgets/simulator.js.flow +0 -107
  372. package/dist/widgets/sorter.js.flow +0 -102
  373. package/dist/widgets/table.js.flow +0 -67
  374. package/dist/widgets/transformer.js.flow +0 -127
  375. package/dist/widgets/unit.js.flow +0 -93
  376. package/dist/widgets/video-transcript-link.js.flow +0 -15
  377. package/dist/widgets/video.js.flow +0 -57
  378. package/dist/widgets.js.flow +0 -108
  379. package/dist/zoom.js.flow +0 -7
  380. package/src/multi-items/item-types.js.flow +0 -55
@@ -1,5 +1,5 @@
1
1
  import * as KAS from "@khanacademy/kas";
2
- import {KeypadInput, KeypadType, Keys as Key} from "@khanacademy/math-input";
2
+ import {KeypadInput, KeypadType} from "@khanacademy/math-input";
3
3
  import {linterContextDefault} from "@khanacademy/perseus-linter";
4
4
  import * as i18n from "@khanacademy/wonder-blocks-i18n";
5
5
  import classNames from "classnames";
@@ -24,6 +24,7 @@ import type {
24
24
  PerseusExpressionAnswerForm,
25
25
  } from "../perseus-types";
26
26
  import type {PerseusScore, WidgetExports, WidgetProps} from "../types";
27
+ import type {Keys as Key} from "@khanacademy/math-input";
27
28
 
28
29
  const sendExpressionEvaluatedEvent = (
29
30
  result: "correct" | "incorrect" | "invalid",
@@ -126,7 +127,7 @@ export class Expression extends React.Component<Props, ExpressionState> {
126
127
  static validate(
127
128
  userInput: string,
128
129
  rubric: Rubric,
129
- // @ts-expect-error [FEI-5003] - TS2322 - Type '() => void' is not assignable to type 'OnInputErrorFunctionType'.
130
+ // @ts-expect-error - TS2322 - Type '() => void' is not assignable to type 'OnInputErrorFunctionType'.
130
131
  onInputError: OnInputErrorFunctionType = function () {},
131
132
  ): PerseusScore {
132
133
  const options = _.clone(rubric);
@@ -329,7 +330,7 @@ export class Expression extends React.Component<Props, ExpressionState> {
329
330
  ) {
330
331
  // TODO(jeff, CP-3128): Use Wonder Blocks Timing API.
331
332
  // eslint-disable-next-line no-restricted-syntax
332
- // @ts-expect-error [FEI-5003] - TS2769 - No overload matches this call.
333
+ // @ts-expect-error - TS2769 - No overload matches this call.
333
334
  clearTimeout(this.errorTimeout);
334
335
 
335
336
  if (this.parse(this.props.value, this.props).parsed) {
@@ -339,7 +340,7 @@ export class Expression extends React.Component<Props, ExpressionState> {
339
340
  // Store timeout ID so that we can clear it above
340
341
  // TODO(jeff, CP-3128): Use Wonder Blocks Timing API.
341
342
  // eslint-disable-next-line no-restricted-syntax
342
- // @ts-expect-error [FEI-5003] - TS2322 - Type 'Timeout' is not assignable to type 'number'.
343
+ // @ts-expect-error - TS2322 - Type 'Timeout' is not assignable to type 'number'.
343
344
  this.errorTimeout = setTimeout(() => {
344
345
  const apiResult = this.props.apiOptions.onInputError(
345
346
  null, // reserved for some widget identifier
@@ -357,7 +358,7 @@ export class Expression extends React.Component<Props, ExpressionState> {
357
358
  componentWillUnmount: () => void = () => {
358
359
  // TODO(jeff, CP-3128): Use Wonder Blocks Timing API.
359
360
  // eslint-disable-next-line no-restricted-syntax
360
- // @ts-expect-error [FEI-5003] - TS2769 - No overload matches this call.
361
+ // @ts-expect-error - TS2769 - No overload matches this call.
361
362
  clearTimeout(this.errorTimeout);
362
363
 
363
364
  this._isMounted = false;
@@ -413,7 +414,7 @@ export class Expression extends React.Component<Props, ExpressionState> {
413
414
  focus: () => boolean = () => {
414
415
  if (this.props.apiOptions.customKeypad) {
415
416
  // eslint-disable-next-line react/no-string-refs
416
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'focus' does not exist on type 'ReactInstance'.
417
+ // @ts-expect-error - TS2339 - Property 'focus' does not exist on type 'ReactInstance'.
417
418
  this.refs.input.focus();
418
419
  } else {
419
420
  // The buttons are often on top of text you're trying to read, so
@@ -425,20 +426,20 @@ export class Expression extends React.Component<Props, ExpressionState> {
425
426
 
426
427
  focusInputPath: (inputPath: InputPath) => void = (inputPath: InputPath) => {
427
428
  // eslint-disable-next-line react/no-string-refs
428
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'focus' does not exist on type 'ReactInstance'.
429
+ // @ts-expect-error - TS2339 - Property 'focus' does not exist on type 'ReactInstance'.
429
430
  this.refs.input.focus();
430
431
  };
431
432
 
432
433
  blurInputPath: (inputPath: InputPath) => void = (inputPath: InputPath) => {
433
434
  // eslint-disable-next-line react/no-string-refs
434
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'blur' does not exist on type 'ReactInstance'.
435
+ // @ts-expect-error - TS2339 - Property 'blur' does not exist on type 'ReactInstance'.
435
436
  this.refs.input.blur();
436
437
  };
437
438
 
438
439
  // HACK(joel)
439
440
  insert(keyPressed: Key) {
440
441
  // eslint-disable-next-line react/no-string-refs
441
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'insert' does not exist on type 'ReactInstance'.
442
+ // @ts-expect-error - TS2339 - Property 'insert' does not exist on type 'ReactInstance'.
442
443
  this.refs.input.insert(keyPressed);
443
444
  }
444
445
 
@@ -87,7 +87,7 @@ type State = {
87
87
  // TODO(jared): find a better name for this :) and for GradedGroup; the names
88
88
  // are currently a little confusing.
89
89
  class GradedGroupSet extends React.Component<Props, State> {
90
- // @ts-expect-error [FEI-5003] - TS2564 - Property '_childGroup' has no initializer and is not definitely assigned in the constructor.
90
+ // @ts-expect-error - TS2564 - Property '_childGroup' has no initializer and is not definitely assigned in the constructor.
91
91
  _childGroup: GradedGroup;
92
92
 
93
93
  static defaultProps: DefaultProps = {
@@ -105,7 +105,7 @@ class GradedGroupSet extends React.Component<Props, State> {
105
105
  }
106
106
 
107
107
  change: (...args: ReadonlyArray<unknown>) => any = (...args) => {
108
- // @ts-expect-error [FEI-5003] - TS2345 - Argument of type 'readonly unknown[]' is not assignable to parameter of type 'any[]'.
108
+ // @ts-expect-error - TS2345 - Argument of type 'readonly unknown[]' is not assignable to parameter of type 'any[]'.
109
109
  return Changeable.change.apply(this, args);
110
110
  };
111
111
 
@@ -157,7 +157,7 @@ class GradedGroupSet extends React.Component<Props, State> {
157
157
  return (
158
158
  // TODO(jeremy): Don't spread this.props, instead
159
159
  // pass in all props GradedGroup needs explicilty
160
- // @ts-expect-error [FEI-5003] - TS2769 - No overload matches this call.
160
+ // @ts-expect-error - TS2769 - No overload matches this call.
161
161
  <GradedGroup
162
162
  key={i}
163
163
  {...this.props}
@@ -200,10 +200,10 @@ class GradedGroupSet extends React.Component<Props, State> {
200
200
  </div>
201
201
  {/* TODO(jeremy): Don't spread this.props, instead
202
202
  pass in all props GradedGroup needs explicitly */}
203
- {/* @ts-expect-error [FEI-5003] - TS2769 - No overload matches this call. */}
203
+ {/* @ts-expect-error - TS2769 - No overload matches this call. */}
204
204
  <GradedGroup
205
205
  key={this.state.currentGroup}
206
- // @ts-expect-error [FEI-5003] - TS2322 - Type 'GradedGroup | null' is not assignable to type 'GradedGroup'.
206
+ // @ts-expect-error - TS2322 - Type 'GradedGroup | null' is not assignable to type 'GradedGroup'.
207
207
  // Type 'null' is not assignable to type 'GradedGroup'.
208
208
  ref={(comp) => (this._childGroup = comp)}
209
209
  // We should pass in the set of props explicitly
@@ -22,12 +22,11 @@ import {
22
22
  } from "../styles/constants";
23
23
  import a11y from "../util/a11y";
24
24
 
25
- import GradedGroupAnswerBar, {
26
- ANSWER_BAR_STATES,
27
- } from "./graded-group-answer-bar";
25
+ import GradedGroupAnswerBar from "./graded-group-answer-bar";
28
26
 
29
27
  import type {PerseusGradedGroupWidgetOptions} from "../perseus-types";
30
28
  import type {PerseusScore, WidgetExports, WidgetProps} from "../types";
29
+ import type {ANSWER_BAR_STATES} from "./graded-group-answer-bar";
31
30
 
32
31
  const GRADING_STATUSES = {
33
32
  ungraded: "ungraded" as const,
@@ -114,7 +113,7 @@ export class GradedGroup extends React.Component<Props, State> {
114
113
  }
115
114
 
116
115
  change: (...args: ReadonlyArray<unknown>) => any = (...args) => {
117
- // @ts-expect-error [FEI-5003] - TS2345 - Argument of type 'readonly unknown[]' is not assignable to parameter of type 'any[]'.
116
+ // @ts-expect-error - TS2345 - Argument of type 'readonly unknown[]' is not assignable to parameter of type 'any[]'.
118
117
  return Changeable.change.apply(this, args);
119
118
  };
120
119
 
@@ -134,7 +133,7 @@ export class GradedGroup extends React.Component<Props, State> {
134
133
  if (this.refs.renderer) {
135
134
  this.change("widgets", this.props.widgets);
136
135
  // eslint-disable-next-line react/no-string-refs
137
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'emptyWidgets' does not exist on type 'ReactInstance'.
136
+ // @ts-expect-error - TS2339 - Property 'emptyWidgets' does not exist on type 'ReactInstance'.
138
137
  const emptyWidgets = this.refs.renderer.emptyWidgets();
139
138
  const answerable = emptyWidgets.length === 0;
140
139
  const answerBarState = this.state.answerBarState;
@@ -146,10 +145,10 @@ export class GradedGroup extends React.Component<Props, State> {
146
145
 
147
146
  _checkAnswer: () => void = () => {
148
147
  // eslint-disable-next-line react/no-string-refs
149
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'showRationalesForCurrentlySelectedChoices' does not exist on type 'ReactInstance'.
148
+ // @ts-expect-error - TS2339 - Property 'showRationalesForCurrentlySelectedChoices' does not exist on type 'ReactInstance'.
150
149
  this.refs.renderer.showRationalesForCurrentlySelectedChoices();
151
150
  // eslint-disable-next-line react/no-string-refs
152
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'score' does not exist on type 'ReactInstance'.
151
+ // @ts-expect-error - TS2339 - Property 'score' does not exist on type 'ReactInstance'.
153
152
  const score: PerseusScore = this.refs.renderer.score();
154
153
 
155
154
  const status =
@@ -180,7 +179,7 @@ export class GradedGroup extends React.Component<Props, State> {
180
179
  // Mobile API
181
180
  getInputPaths: () => ReadonlyArray<ReadonlyArray<string>> = () => {
182
181
  // eslint-disable-next-line react/no-string-refs
183
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'getInputPaths' does not exist on type 'ReactInstance'.
182
+ // @ts-expect-error - TS2339 - Property 'getInputPaths' does not exist on type 'ReactInstance'.
184
183
  return this.refs.renderer.getInputPaths();
185
184
  };
186
185
 
@@ -190,25 +189,25 @@ export class GradedGroup extends React.Component<Props, State> {
190
189
  cb,
191
190
  ) => {
192
191
  // eslint-disable-next-line react/no-string-refs
193
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'setInputValue' does not exist on type 'ReactInstance'.
192
+ // @ts-expect-error - TS2339 - Property 'setInputValue' does not exist on type 'ReactInstance'.
194
193
  return this.refs.renderer.setInputValue(path, newValue, cb);
195
194
  };
196
195
 
197
196
  focus: () => boolean = () => {
198
197
  // eslint-disable-next-line react/no-string-refs
199
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'focus' does not exist on type 'ReactInstance'.
198
+ // @ts-expect-error - TS2339 - Property 'focus' does not exist on type 'ReactInstance'.
200
199
  return this.refs.renderer.focus();
201
200
  };
202
201
 
203
202
  focusInputPath: (arg1: any) => void = (path) => {
204
203
  // eslint-disable-next-line react/no-string-refs
205
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'focusPath' does not exist on type 'ReactInstance'.
204
+ // @ts-expect-error - TS2339 - Property 'focusPath' does not exist on type 'ReactInstance'.
206
205
  this.refs.renderer.focusPath(path);
207
206
  };
208
207
 
209
208
  blurInputPath: (arg1: any) => void = (path) => {
210
209
  // eslint-disable-next-line react/no-string-refs
211
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'blurPath' does not exist on type 'ReactInstance'.
210
+ // @ts-expect-error - TS2339 - Property 'blurPath' does not exist on type 'ReactInstance'.
212
211
  this.refs.renderer.blurPath(path);
213
212
  };
214
213
 
@@ -236,15 +235,15 @@ export class GradedGroup extends React.Component<Props, State> {
236
235
  // Colors are 10% darker than the colors in graded-group.less
237
236
  if (this.state.status === GRADING_STATUSES.correct) {
238
237
  // TODO(jeremy): update to a WB colour
239
- // @ts-expect-error [FEI-5003] - TS2322 - Type 'Element' is not assignable to type 'null'.
238
+ // @ts-expect-error - TS2322 - Type 'Element' is not assignable to type 'null'.
240
239
  icon = <InlineIcon {...iconOk} style={{color: "#526f03"}} />;
241
- // @ts-expect-error [FEI-5003] - TS2322 - Type 'string' is not assignable to type 'null'.
240
+ // @ts-expect-error - TS2322 - Type 'string' is not assignable to type 'null'.
242
241
  gradeStatus = i18n._("Correct");
243
242
  } else if (this.state.status === GRADING_STATUSES.incorrect) {
244
243
  // TODO(jeremy): update to a WB colour
245
- // @ts-expect-error [FEI-5003] - TS2322 - Type 'Element' is not assignable to type 'null'.
244
+ // @ts-expect-error - TS2322 - Type 'Element' is not assignable to type 'null'.
246
245
  icon = <InlineIcon {...iconRemove} style={{color: "#ff5454"}} />;
247
- // @ts-expect-error [FEI-5003] - TS2322 - Type 'string' is not assignable to type 'null'.
246
+ // @ts-expect-error - TS2322 - Type 'string' is not assignable to type 'null'.
248
247
  gradeStatus = i18n._("Incorrect");
249
248
  }
250
249
 
@@ -283,7 +282,7 @@ export class GradedGroup extends React.Component<Props, State> {
283
282
  * props that are needed.
284
283
  * TODO(FEI-4034): Only pass what the Renderer expects.
285
284
  */}
286
- {/* @ts-expect-error [FEI-5003] - TS2322 - Type '{ ref: string; apiOptions: any; onInteractWithWidget: (arg1: string) => void; linterContext: LinterContextProps; title: string; hasHint?: boolean | null | undefined; ... 22 more ...; children?: ReactNode; }' is not assignable to type 'Pick<Readonly<Props> & Readonly<{ children?: ReactNode; }>, "children" | "keypadElement" | "problemNum" | "apiOptions" | "legacyPerseusLint">'. */}
285
+ {/* @ts-expect-error - TS2322 - Type '{ ref: string; apiOptions: any; onInteractWithWidget: (arg1: string) => void; linterContext: LinterContextProps; title: string; hasHint?: boolean | null | undefined; ... 22 more ...; children?: ReactNode; }' is not assignable to type 'Pick<Readonly<Props> & Readonly<{ children?: ReactNode; }>, "children" | "keypadElement" | "problemNum" | "apiOptions" | "legacyPerseusLint">'. */}
287
286
  <Renderer
288
287
  {...this.props}
289
288
  // eslint-disable-next-line react/no-string-refs
@@ -337,7 +336,7 @@ export class GradedGroup extends React.Component<Props, State> {
337
336
  <div>
338
337
  {/* Not using Button here bc the styles won't work. */}
339
338
  <button
340
- // @ts-expect-error [FEI-5003] - TS2322 - Type 'string' is not assignable to type 'number | undefined'.
339
+ // @ts-expect-error - TS2322 - Type 'string' is not assignable to type 'number | undefined'.
341
340
  tabIndex="0"
342
341
  className={css(styles.explanationTitle)}
343
342
  onClick={() => this.setState({showHint: false})}
@@ -364,7 +363,7 @@ export class GradedGroup extends React.Component<Props, State> {
364
363
  ) : (
365
364
  // Not using Button here bc the styles won't work.
366
365
  <button
367
- // @ts-expect-error [FEI-5003] - TS2322 - Type 'string' is not assignable to type 'number | undefined'.
366
+ // @ts-expect-error - TS2322 - Type 'string' is not assignable to type 'number | undefined'.
368
367
  tabIndex="0"
369
368
  onClick={() => this.setState({showHint: true})}
370
369
  onKeyPress={(e) => {
@@ -10,7 +10,7 @@ import Util from "../../util";
10
10
  import type {Coord} from "../../interactive2/types";
11
11
  import type {PerseusScore} from "../../types";
12
12
 
13
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'Plot' does not exist on type 'typeof Graphie'.
13
+ // @ts-expect-error - TS2339 - Property 'Plot' does not exist on type 'typeof Graphie'.
14
14
  const Plot = Graphie.Plot;
15
15
 
16
16
  export const DEFAULT_BACKGROUND_IMAGE = {
@@ -98,7 +98,7 @@ const PlotDefaults = {
98
98
 
99
99
  getPropsForCoeffs: function (coeffs) {
100
100
  return {
101
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'getFunctionForCoeffs' does not exist on type '{ readonly areEqual: (coeffs1: any, coeffs2: any) => boolean; readonly Movable: any; readonly getPropsForCoeffs: (coeffs: any) => any; }'.
101
+ // @ts-expect-error - TS2339 - Property 'getFunctionForCoeffs' does not exist on type '{ readonly areEqual: (coeffs1: any, coeffs2: any) => boolean; readonly Movable: any; readonly getPropsForCoeffs: (coeffs: any) => any; }'.
102
102
  fn: _.partial(this.getFunctionForCoeffs, coeffs),
103
103
  };
104
104
  },
@@ -149,7 +149,7 @@ const Quadratic = _.extend({}, PlotDefaults, {
149
149
  [0.5, 0.5],
150
150
  [0.75, 0.75],
151
151
  ],
152
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'Parabola' does not exist on type 'typeof Graphie'.
152
+ // @ts-expect-error - TS2339 - Property 'Parabola' does not exist on type 'typeof Graphie'.
153
153
  Movable: Graphie.Parabola,
154
154
 
155
155
  getCoefficients: function (coords) {
@@ -206,7 +206,7 @@ const Sinusoid = _.extend({}, PlotDefaults, {
206
206
  [0.5, 0.5],
207
207
  [0.6, 0.6],
208
208
  ],
209
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'Sinusoid' does not exist on type 'typeof Graphie'.
209
+ // @ts-expect-error - TS2339 - Property 'Sinusoid' does not exist on type 'typeof Graphie'.
210
210
  Movable: Graphie.Sinusoid,
211
211
 
212
212
  getCoefficients: function (coords) {
@@ -664,7 +664,7 @@ export const pointsFromNormalized = (
664
664
  return Math.floor((range[1] - range[0]) / step);
665
665
  };
666
666
 
667
- // @ts-expect-error [FEI-5003] - TS2322 - Type 'number[][]' is not assignable to type 'readonly Coord[]'.
667
+ // @ts-expect-error - TS2322 - Type 'number[][]' is not assignable to type 'readonly Coord[]'.
668
668
  return coordsList.map((coords) => {
669
669
  const unsnappedPoint = coords.map((coord, i) => {
670
670
  const currRange = range[i];
@@ -719,7 +719,7 @@ export const defaultPlotProps = (type: string, graph: any): any => {
719
719
  // might get a free win.
720
720
  const model = functionForType(type);
721
721
  const gridStep = [1, 1];
722
- // @ts-expect-error [FEI-5003] - TS2345 - Argument of type 'number[]' is not assignable to parameter of type '[number, number]'.
722
+ // @ts-expect-error - TS2345 - Argument of type 'number[]' is not assignable to parameter of type '[number, number]'.
723
723
  const snapStep = Util.snapStepFromGridStep(gridStep);
724
724
  return {
725
725
  type,
@@ -37,9 +37,9 @@ import type {PerseusGrapherWidgetOptions} from "../perseus-types";
37
37
  import type {PerseusScore, WidgetExports, WidgetProps} from "../types";
38
38
  import type {GridDimensions} from "../util";
39
39
 
40
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'MovablePoint' does not exist on type 'typeof Graphie'.
40
+ // @ts-expect-error - TS2339 - Property 'MovablePoint' does not exist on type 'typeof Graphie'.
41
41
  const MovablePoint = Graphie.MovablePoint;
42
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'MovableLine' does not exist on type 'typeof Graphie'.
42
+ // @ts-expect-error - TS2339 - Property 'MovableLine' does not exist on type 'typeof Graphie'.
43
43
  const MovableLine = Graphie.MovableLine;
44
44
 
45
45
  function isFlipped(newCoord: Coord, oldCoord: Coord, line: Line) {
@@ -118,9 +118,9 @@ class FunctionGrapher extends React.Component<FunctionGrapherProps> {
118
118
  coord={coord}
119
119
  static={this.props.static}
120
120
  constraints={[
121
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'constraints' does not exist on type '(graphie: any, movable: any, options: any) => void'.
121
+ // @ts-expect-error - TS2339 - Property 'constraints' does not exist on type '(graphie: any, movable: any, options: any) => void'.
122
122
  Interactive2.MovablePoint.constraints.bound(),
123
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'constraints' does not exist on type '(graphie: any, movable: any, options: any) => void'.
123
+ // @ts-expect-error - TS2339 - Property 'constraints' does not exist on type '(graphie: any, movable: any, options: any) => void'.
124
124
  Interactive2.MovablePoint.constraints.snap(),
125
125
  (coord: any) => {
126
126
  // Always enforce that this is a function
@@ -200,9 +200,9 @@ class FunctionGrapher extends React.Component<FunctionGrapherProps> {
200
200
  let image = null;
201
201
  if (imageDescription.url) {
202
202
  const scale = box[0] / interactiveSizes.defaultBoxSize;
203
- // @ts-expect-error [FEI-5003] - TS2322 - Type 'Element' is not assignable to type 'null'.
203
+ // @ts-expect-error - TS2322 - Type 'Element' is not assignable to type 'null'.
204
204
  image = (
205
- // @ts-expect-error [FEI-5003] - TS2741 - Property 'alt' is missing in type '{ src: any; width: any; height: any; scale: number; }' but required in type 'Pick<Readonly<Props> & Readonly<{ children?: ReactNode; }>, "children" | "height" | "width" | "title" | "alt" | "trackInteraction" | "preloader" | "allowFullBleed" | "extraGraphie" | "overrideAriaHidden">'.
205
+ // @ts-expect-error - TS2741 - Property 'alt' is missing in type '{ src: any; width: any; height: any; scale: number; }' but required in type 'Pick<Readonly<Props> & Readonly<{ children?: ReactNode; }>, "children" | "height" | "width" | "title" | "alt" | "trackInteraction" | "preloader" | "allowFullBleed" | "extraGraphie" | "overrideAriaHidden">'.
206
206
  <SvgImage
207
207
  src={imageDescription.url}
208
208
  width={imageDescription.width}
@@ -291,9 +291,9 @@ class FunctionGrapher extends React.Component<FunctionGrapherProps> {
291
291
  });
292
292
  }}
293
293
  constraints={[
294
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'constraints' does not exist on type '(graphie: any, movable: any, options: any) => void'.
294
+ // @ts-expect-error - TS2339 - Property 'constraints' does not exist on type '(graphie: any, movable: any, options: any) => void'.
295
295
  Interactive2.MovableLine.constraints.bound(),
296
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'constraints' does not exist on type '(graphie: any, movable: any, options: any) => void'.
296
+ // @ts-expect-error - TS2339 - Property 'constraints' does not exist on type '(graphie: any, movable: any, options: any) => void'.
297
297
  Interactive2.MovableLine.constraints.snap(),
298
298
  (newCoord, oldCoord: any) => {
299
299
  // Calculate and apply proposed displacement
@@ -429,7 +429,7 @@ class Grapher extends React.Component<Props> {
429
429
 
430
430
  return (
431
431
  <div>
432
- {/* @ts-expect-error [FEI-5003] - TS2769 - No overload matches this call. */}
432
+ {/* @ts-expect-error - TS2769 - No overload matches this call. */}
433
433
  <FunctionGrapher {...grapherProps} />
434
434
  {this.props.availableTypes.length > 1 && typeSelector}
435
435
  </div>
@@ -638,7 +638,7 @@ const propTransform: (arg1: PerseusGrapherWidgetOptions) => RenderProps = (
638
638
  if (widgetProps.availableTypes.length === 1) {
639
639
  const graph = widgetProps.graph;
640
640
  const type = chooseType(widgetProps.availableTypes);
641
- // @ts-expect-error [FEI-5003] - TS2345 - Argument of type 'string | undefined' is not assignable to parameter of type 'string'.
641
+ // @ts-expect-error - TS2345 - Argument of type 'string | undefined' is not assignable to parameter of type 'string'.
642
642
  widgetProps.plot = defaultPlotProps(type, graph);
643
643
  }
644
644
 
@@ -127,7 +127,7 @@ class Group extends React.Component<Props> {
127
127
  // really we should have a more unidirectional flow. TODO(marcia): fix.
128
128
  const groupWidgets: ReadonlyArray<Widget> =
129
129
  this.props.findWidgets("group");
130
- // @ts-expect-error [FEI-5003] - TS2345 - Argument of type 'this' is not assignable to parameter of type 'Widget'.
130
+ // @ts-expect-error - TS2345 - Argument of type 'this' is not assignable to parameter of type 'Widget'.
131
131
  const number: number = groupWidgets.indexOf(this);
132
132
  const problemNumComponent = this.props.apiOptions.groupAnnotator(
133
133
  number,
@@ -171,9 +171,9 @@ class Group extends React.Component<Props> {
171
171
  onInteractWithWidget={onInteractWithWidget}
172
172
  linterContext={this.props.linterContext}
173
173
  />
174
- {/* @ts-expect-error [FEI-5003] - TS2339 - Property 'icon' does not exist on type 'Readonly<Props> & Readonly<{ children?: ReactNode; }>'. */}
174
+ {/* @ts-expect-error - TS2339 - Property 'icon' does not exist on type 'Readonly<Props> & Readonly<{ children?: ReactNode; }>'. */}
175
175
  {this.props.icon && (
176
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'icon' does not exist on type 'Readonly<Props> & Readonly<{ children?: ReactNode; }>'.
176
+ // @ts-expect-error - TS2339 - Property 'icon' does not exist on type 'Readonly<Props> & Readonly<{ children?: ReactNode; }>'.
177
177
  <div className="group-icon">{this.props.icon}</div>
178
178
  )}
179
179
  </div>
@@ -146,12 +146,12 @@ class Iframe extends React.Component<any> {
146
146
  }
147
147
 
148
148
  change: (...args: ReadonlyArray<unknown>) => any = (...args) => {
149
- // @ts-expect-error [FEI-5003] - TS2345 - Argument of type 'readonly unknown[]' is not assignable to parameter of type 'any[]'.
149
+ // @ts-expect-error - TS2345 - Argument of type 'readonly unknown[]' is not assignable to parameter of type 'any[]'.
150
150
  return Changeable.change.apply(this, args);
151
151
  };
152
152
 
153
153
  simpleValidate: (arg1: any) => any = (rubric) => {
154
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'validate' does not exist on type 'typeof Iframe'.
154
+ // @ts-expect-error - TS2339 - Property 'validate' does not exist on type 'typeof Iframe'.
155
155
  return Iframe.validate(this.getUserInput(), rubric);
156
156
  };
157
157
  }
@@ -204,7 +204,7 @@ class ImageWidget extends React.Component<Props> {
204
204
  <div
205
205
  className={css(styles.caption)}
206
206
  style={{
207
- // @ts-expect-error [FEI-5003] - TS2322 - Type 'string | null' is not assignable to type 'MinWidth<string | number> | undefined'.
207
+ // @ts-expect-error - TS2322 - Type 'string | null' is not assignable to type 'MinWidth<string | number> | undefined'.
208
208
  minWidth: minWidth,
209
209
  }}
210
210
  >
@@ -217,20 +217,20 @@ class InputNumber extends React.Component<Props> {
217
217
 
218
218
  focus: () => boolean = () => {
219
219
  // eslint-disable-next-line react/no-string-refs
220
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'focus' does not exist on type 'ReactInstance'.
220
+ // @ts-expect-error - TS2339 - Property 'focus' does not exist on type 'ReactInstance'.
221
221
  this.refs.input.focus();
222
222
  return true;
223
223
  };
224
224
 
225
225
  focusInputPath: (arg1: Path) => void = (inputPath) => {
226
226
  // eslint-disable-next-line react/no-string-refs
227
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'focus' does not exist on type 'ReactInstance'.
227
+ // @ts-expect-error - TS2339 - Property 'focus' does not exist on type 'ReactInstance'.
228
228
  this.refs.input.focus();
229
229
  };
230
230
 
231
231
  blurInputPath: (arg1: Path) => void = (inputPath) => {
232
232
  // eslint-disable-next-line react/no-string-refs
233
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'blur' does not exist on type 'ReactInstance'.
233
+ // @ts-expect-error - TS2339 - Property 'blur' does not exist on type 'ReactInstance'.
234
234
  this.refs.input.blur();
235
235
  };
236
236
 
@@ -281,7 +281,7 @@ class InputNumber extends React.Component<Props> {
281
281
  forms,
282
282
  function (form) {
283
283
  // eslint-disable-next-line @babel/no-invalid-this
284
- // @ts-expect-error [FEI-5003] - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
284
+ // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
285
285
  // eslint-disable-next-line @babel/no-invalid-this
286
286
  return formExamples[form](this.props);
287
287
  },