@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
@@ -133,12 +133,12 @@ export class NumericInput extends React.Component<Props, State> {
133
133
  format = answer.answerForms[0];
134
134
  }
135
135
 
136
- // @ts-expect-error [FEI-5003] - TS2345 - Argument of type 'string' is not assignable to parameter of type 'MathFormat | undefined'.
136
+ // @ts-expect-error - TS2345 - Argument of type 'string' is not assignable to parameter of type 'MathFormat | undefined'.
137
137
  let answerString = KhanMath.toNumericString(answer.value, format);
138
138
  if (answer.maxError) {
139
139
  answerString +=
140
140
  " \u00B1 " +
141
- // @ts-expect-error [FEI-5003] - TS2345 - Argument of type 'string' is not assignable to parameter of type 'MathFormat | undefined'.
141
+ // @ts-expect-error - TS2345 - Argument of type 'string' is not assignable to parameter of type 'MathFormat | undefined'.
142
142
  KhanMath.toNumericString(answer.maxError, format);
143
143
  }
144
144
  return answerString;
@@ -200,10 +200,10 @@ export class NumericInput extends React.Component<Props, State> {
200
200
  let localValue = currentValue;
201
201
  if (rubric.coefficient) {
202
202
  if (!localValue) {
203
- // @ts-expect-error [FEI-5003] - TS2322 - Type 'number' is not assignable to type 'string'.
203
+ // @ts-expect-error - TS2322 - Type 'number' is not assignable to type 'string'.
204
204
  localValue = 1;
205
205
  } else if (localValue === "-") {
206
- // @ts-expect-error [FEI-5003] - TS2322 - Type 'number' is not assignable to type 'string'.
206
+ // @ts-expect-error - TS2322 - Type 'number' is not assignable to type 'string'.
207
207
  localValue = -1;
208
208
  }
209
209
  }
@@ -220,7 +220,7 @@ export class NumericInput extends React.Component<Props, State> {
220
220
  if (!result) {
221
221
  // Otherwise, if the guess is not correct
222
222
  const otherAnswers = [].concat(
223
- // @ts-expect-error [FEI-5003] - TS2769 - No overload matches this call.
223
+ // @ts-expect-error - TS2769 - No overload matches this call.
224
224
  rubric.answers.filter((answer) => answer.status === "ungraded"),
225
225
  rubric.answers.filter((answer) => answer.status === "wrong"),
226
226
  );
@@ -237,11 +237,11 @@ export class NumericInput extends React.Component<Props, State> {
237
237
  ).correct;
238
238
  });
239
239
  result = {
240
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'status' does not exist on type 'never'.
240
+ // @ts-expect-error - TS2339 - Property 'status' does not exist on type 'never'.
241
241
  empty: match ? match.status === "ungraded" : false,
242
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'status' does not exist on type 'never'.
242
+ // @ts-expect-error - TS2339 - Property 'status' does not exist on type 'never'.
243
243
  correct: match ? match.status === "correct" : false,
244
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'message' does not exist on type 'never'.
244
+ // @ts-expect-error - TS2339 - Property 'message' does not exist on type 'never'.
245
245
  message: match ? match.message : null,
246
246
  guess: currentValue,
247
247
  };
@@ -284,7 +284,7 @@ export class NumericInput extends React.Component<Props, State> {
284
284
  });
285
285
 
286
286
  let examples = _.map(forms, (form) => {
287
- // @ts-expect-error [FEI-5003] - TS2345 - Argument of type 'PerseusNumericInputAnswerForm | { name: string; simplify: string; }' is not assignable to parameter of type 'PerseusNumericInputAnswerForm'.
287
+ // @ts-expect-error - TS2345 - Argument of type 'PerseusNumericInputAnswerForm | { name: string; simplify: string; }' is not assignable to parameter of type 'PerseusNumericInputAnswerForm'.
288
288
  return formExamples[form.name](form);
289
289
  });
290
290
  // Ensure no duplicate tooltip text from simplified and unsimplified
@@ -460,7 +460,7 @@ export const unionAnswerForms: (
460
460
  // two elements are equal, and returns a list of unique elements. This is
461
461
  // just a helper function here, but works generally.
462
462
  const uniqueBy = function (list, iteratee: any) {
463
- // @ts-expect-error [FEI-5003] - TS2347 - Untyped function calls may not accept type arguments.
463
+ // @ts-expect-error - TS2347 - Untyped function calls may not accept type arguments.
464
464
  return list.reduce<Array<any>>((uniqueList, element) => {
465
465
  // For each element, decide whether it's already in the list of
466
466
  // unique items.
@@ -539,7 +539,7 @@ const propsTransform = function (
539
539
  // Pull out the name of each form and whether that form has
540
540
  // required simplification.
541
541
  widgetOptions.answers.map((answer) => {
542
- // @ts-expect-error [FEI-5003] - TS2345 - Argument of type 'readonly MathFormat[] | undefined' is not assignable to parameter of type 'Collection<any>'.
542
+ // @ts-expect-error - TS2345 - Argument of type 'readonly MathFormat[] | undefined' is not assignable to parameter of type 'Collection<any>'.
543
543
  return _.map(answer.answerForms, (form) => {
544
544
  return {
545
545
  simplify: answer.simplify,
@@ -56,7 +56,7 @@ const PropTypePosition = PropTypes.shape({
56
56
  });
57
57
 
58
58
  class Card extends React.Component<any, any> {
59
- // @ts-expect-error [FEI-5003] - TS2564 - Property 'mouseMoveUpBound' has no initializer and is not definitely assigned in the constructor.
59
+ // @ts-expect-error - TS2564 - Property 'mouseMoveUpBound' has no initializer and is not definitely assigned in the constructor.
60
60
  mouseMoveUpBound: boolean;
61
61
 
62
62
  static propTypes = {
@@ -191,7 +191,7 @@ class Card extends React.Component<any, any> {
191
191
  ),
192
192
  ),
193
193
  );
194
- // @ts-expect-error [FEI-5003] - TS2769 - No overload matches this call. | TS2339 - Property 'animate' does not exist on type 'JQueryStatic'.
194
+ // @ts-expect-error - TS2769 - No overload matches this call. | TS2339 - Property 'animate' does not exist on type 'JQueryStatic'.
195
195
  $(ReactDOM.findDOMNode(this)).animate(
196
196
  this.props.animateTo,
197
197
  Math.max(ms, 1),
@@ -379,14 +379,14 @@ class Orderer extends React.Component<OrdererProps, OrdererState> {
379
379
  floating={false}
380
380
  content={opt.content}
381
381
  width={opt.width}
382
- // @ts-expect-error [FEI-5003] - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
382
+ // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
383
383
  linterContext={this.props.linterContext}
384
384
  // eslint-disable-next-line react/jsx-no-bind
385
385
  onMouseDown={
386
- // @ts-expect-error [FEI-5003] - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
386
+ // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
387
387
  this.state.animating
388
388
  ? $.noop
389
- : // @ts-expect-error [FEI-5003] - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
389
+ : // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
390
390
  this.onClick.bind(null, "current", i)
391
391
  }
392
392
  />
@@ -409,7 +409,7 @@ class Orderer extends React.Component<OrdererProps, OrdererState> {
409
409
  }
410
410
 
411
411
  const anySortableCards = sortableCards.length > 0;
412
- // @ts-expect-error [FEI-5003] - TS2345 - Argument of type 'false | Element' is not assignable to parameter of type 'Element'.
412
+ // @ts-expect-error - TS2345 - Argument of type 'false | Element' is not assignable to parameter of type 'Element'.
413
413
  sortableCards.push(dragging, animating);
414
414
 
415
415
  // If there are no cards in the list, then add a "hint" card
@@ -481,7 +481,7 @@ class Orderer extends React.Component<OrdererProps, OrdererState> {
481
481
  loc,
482
482
  draggable,
483
483
  ) => {
484
- // @ts-expect-error [FEI-5003] - TS2769 - No overload matches this call.
484
+ // @ts-expect-error - TS2769 - No overload matches this call.
485
485
  const $draggable = $(ReactDOM.findDOMNode(draggable));
486
486
  const list = this.state.current.slice();
487
487
 
@@ -493,7 +493,7 @@ class Orderer extends React.Component<OrdererProps, OrdererState> {
493
493
  // card from the list
494
494
  list.splice(index, 1);
495
495
  opt = this.state.current[index];
496
- // @ts-expect-error [FEI-5003] - TS2322 - Type 'number' is not assignable to type 'null'.
496
+ // @ts-expect-error - TS2322 - Type 'number' is not assignable to type 'null'.
497
497
  placeholderIndex = index;
498
498
  } else if (type === "bank") {
499
499
  opt = this.props.options[index];
@@ -505,13 +505,13 @@ class Orderer extends React.Component<OrdererProps, OrdererState> {
505
505
  placeholderIndex: placeholderIndex,
506
506
  dragKey: opt.key,
507
507
  dragContent: opt.content,
508
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'width' does not exist on type 'JQueryStatic'.
508
+ // @ts-expect-error - TS2339 - Property 'width' does not exist on type 'JQueryStatic'.
509
509
  dragWidth: $draggable.width(),
510
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'height' does not exist on type 'JQueryStatic'.
510
+ // @ts-expect-error - TS2339 - Property 'height' does not exist on type 'JQueryStatic'.
511
511
  dragHeight: $draggable.height(),
512
512
  grabPos: loc,
513
513
  mousePos: loc,
514
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'position' does not exist on type 'JQueryStatic'.
514
+ // @ts-expect-error - TS2339 - Property 'position' does not exist on type 'JQueryStatic'.
515
515
  offsetPos: $draggable.position(),
516
516
  });
517
517
  };
@@ -542,7 +542,7 @@ class Orderer extends React.Component<OrdererProps, OrdererState> {
542
542
  }
543
543
 
544
544
  this.props.onChange({
545
- // @ts-expect-error [FEI-5003] - TS2345 - Argument of type '{ current: any[]; }' is not assignable to parameter of type '{ hints?: readonly Hint[] | undefined; replace?: boolean | undefined; content?: string | undefined; widgets?: WidgetDict | undefined; images?: ImageDict | undefined; ... 13 more ...; plot?: any; }'.
545
+ // @ts-expect-error - TS2345 - Argument of type '{ current: any[]; }' is not assignable to parameter of type '{ hints?: readonly Hint[] | undefined; replace?: boolean | undefined; content?: string | undefined; widgets?: WidgetDict | undefined; images?: ImageDict | undefined; ... 13 more ...; plot?: any; }'.
546
546
  current: list,
547
547
  });
548
548
  this.setState({
@@ -556,7 +556,7 @@ class Orderer extends React.Component<OrdererProps, OrdererState> {
556
556
 
557
557
  // Find the position of the card we should animate to
558
558
  // TODO(alpert): Update mouse position once more before animating?
559
- // @ts-expect-error [FEI-5003] - TS2769 - No overload matches this call. | TS2339 - Property 'position' does not exist on type 'JQueryStatic'.
559
+ // @ts-expect-error - TS2769 - No overload matches this call. | TS2339 - Property 'position' does not exist on type 'JQueryStatic'.
560
560
  const offset = $(ReactDOM.findDOMNode(draggable)).position();
561
561
  let finalOffset = null;
562
562
  if (inCardBank) {
@@ -565,14 +565,14 @@ class Orderer extends React.Component<OrdererProps, OrdererState> {
565
565
  _.each(
566
566
  this.props.options,
567
567
  function (opt, i) {
568
- // @ts-expect-error [FEI-5003] - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
568
+ // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
569
569
  if (opt.content === this.state.dragContent) {
570
570
  const card = ReactDOM.findDOMNode(
571
571
  // eslint-disable-next-line react/no-string-refs
572
- // @ts-expect-error [FEI-5003] - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
572
+ // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
573
573
  this.refs["bank" + i],
574
574
  );
575
- // @ts-expect-error [FEI-5003] - TS2769 - No overload matches this call. | TS2339 - Property 'position' does not exist on type 'JQueryStatic'.
575
+ // @ts-expect-error - TS2769 - No overload matches this call. | TS2339 - Property 'position' does not exist on type 'JQueryStatic'.
576
576
  finalOffset = $(card).position();
577
577
  }
578
578
  },
@@ -583,9 +583,9 @@ class Orderer extends React.Component<OrdererProps, OrdererState> {
583
583
  // Otherwise, go to the position that the placeholder is at
584
584
  finalOffset = $(
585
585
  // eslint-disable-next-line react/no-string-refs
586
- // @ts-expect-error [FEI-5003] - TS2769 - No overload matches this call.
586
+ // @ts-expect-error - TS2769 - No overload matches this call.
587
587
  ReactDOM.findDOMNode(this.refs.placeholder),
588
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'position' does not exist on type 'JQueryStatic'.
588
+ // @ts-expect-error - TS2339 - Property 'position' does not exist on type 'JQueryStatic'.
589
589
  ).position();
590
590
  }
591
591
 
@@ -629,17 +629,17 @@ class Orderer extends React.Component<OrdererProps, OrdererState> {
629
629
  // Find the correct index for a card given the current cards.
630
630
  const isHorizontal = this.props.layout === HORIZONTAL;
631
631
  // eslint-disable-next-line react/no-string-refs
632
- // @ts-expect-error [FEI-5003] - TS2769 - No overload matches this call.
632
+ // @ts-expect-error - TS2769 - No overload matches this call.
633
633
  const $dragList = $(ReactDOM.findDOMNode(this.refs.dragList));
634
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'offset' does not exist on type 'JQueryStatic'.
634
+ // @ts-expect-error - TS2339 - Property 'offset' does not exist on type 'JQueryStatic'.
635
635
  const leftEdge = $dragList.offset().left;
636
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'offset' does not exist on type 'JQueryStatic'.
636
+ // @ts-expect-error - TS2339 - Property 'offset' does not exist on type 'JQueryStatic'.
637
637
  const topEdge = $dragList.offset().top;
638
638
  const midWidth =
639
- // @ts-expect-error [FEI-5003] - TS2769 - No overload matches this call. | TS2339 - Property 'offset' does not exist on type 'JQueryStatic'.
639
+ // @ts-expect-error - TS2769 - No overload matches this call. | TS2339 - Property 'offset' does not exist on type 'JQueryStatic'.
640
640
  $(ReactDOM.findDOMNode(draggable)).offset().left - leftEdge;
641
641
  const midHeight =
642
- // @ts-expect-error [FEI-5003] - TS2769 - No overload matches this call. | TS2339 - Property 'offset' does not exist on type 'JQueryStatic'.
642
+ // @ts-expect-error - TS2769 - No overload matches this call. | TS2339 - Property 'offset' does not exist on type 'JQueryStatic'.
643
643
  $(ReactDOM.findDOMNode(draggable)).offset().top - topEdge;
644
644
  let index = 0;
645
645
  let sumWidth = 0;
@@ -651,10 +651,10 @@ class Orderer extends React.Component<OrdererProps, OrdererState> {
651
651
  function (opt, i) {
652
652
  const card = ReactDOM.findDOMNode(
653
653
  // eslint-disable-next-line react/no-string-refs
654
- // @ts-expect-error [FEI-5003] - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
654
+ // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
655
655
  this.refs["sortable" + i],
656
656
  );
657
- // @ts-expect-error [FEI-5003] - TS2769 - No overload matches this call. | TS2339 - Property 'outerWidth' does not exist on type 'JQueryStatic'.
657
+ // @ts-expect-error - TS2769 - No overload matches this call. | TS2339 - Property 'outerWidth' does not exist on type 'JQueryStatic'.
658
658
  const outerWidth = $(card).outerWidth(true);
659
659
  if (midWidth > sumWidth + outerWidth / 2) {
660
660
  index += 1;
@@ -669,10 +669,10 @@ class Orderer extends React.Component<OrdererProps, OrdererState> {
669
669
  function (opt, i) {
670
670
  const card = ReactDOM.findDOMNode(
671
671
  // eslint-disable-next-line react/no-string-refs
672
- // @ts-expect-error [FEI-5003] - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
672
+ // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
673
673
  this.refs["sortable" + i],
674
674
  );
675
- // @ts-expect-error [FEI-5003] - TS2769 - No overload matches this call. | TS2339 - Property 'outerHeight' does not exist on type 'JQueryStatic'.
675
+ // @ts-expect-error - TS2769 - No overload matches this call. | TS2339 - Property 'outerHeight' does not exist on type 'JQueryStatic'.
676
676
  const outerHeight = $(card).outerHeight(true);
677
677
  if (midHeight > sumHeight + outerHeight / 2) {
678
678
  index += 1;
@@ -692,26 +692,26 @@ class Orderer extends React.Component<OrdererProps, OrdererState> {
692
692
  }
693
693
 
694
694
  const isHorizontal = this.props.layout === HORIZONTAL,
695
- // @ts-expect-error [FEI-5003] - TS2769 - No overload matches this call.
695
+ // @ts-expect-error - TS2769 - No overload matches this call.
696
696
  $draggable = $(ReactDOM.findDOMNode(draggable)),
697
697
  // eslint-disable-next-line react/no-string-refs
698
- // @ts-expect-error [FEI-5003] - TS2769 - No overload matches this call.
698
+ // @ts-expect-error - TS2769 - No overload matches this call.
699
699
  $bank = $(ReactDOM.findDOMNode(this.refs.bank)),
700
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'offset' does not exist on type 'JQueryStatic'.
700
+ // @ts-expect-error - TS2339 - Property 'offset' does not exist on type 'JQueryStatic'.
701
701
  draggableOffset = $draggable.offset(),
702
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'offset' does not exist on type 'JQueryStatic'.
702
+ // @ts-expect-error - TS2339 - Property 'offset' does not exist on type 'JQueryStatic'.
703
703
  bankOffset = $bank.offset(),
704
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'outerHeight' does not exist on type 'JQueryStatic'.
704
+ // @ts-expect-error - TS2339 - Property 'outerHeight' does not exist on type 'JQueryStatic'.
705
705
  draggableHeight = $draggable.outerHeight(true),
706
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'outerHeight' does not exist on type 'JQueryStatic'.
706
+ // @ts-expect-error - TS2339 - Property 'outerHeight' does not exist on type 'JQueryStatic'.
707
707
  bankHeight = $bank.outerHeight(true),
708
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'outerWidth' does not exist on type 'JQueryStatic'.
708
+ // @ts-expect-error - TS2339 - Property 'outerWidth' does not exist on type 'JQueryStatic'.
709
709
  bankWidth = $bank.outerWidth(true),
710
710
  // eslint-disable-next-line react/no-string-refs
711
711
  dragList = ReactDOM.findDOMNode(this.refs.dragList),
712
- // @ts-expect-error [FEI-5003] - TS2769 - No overload matches this call. | TS2339 - Property 'width' does not exist on type 'JQueryStatic'.
712
+ // @ts-expect-error - TS2769 - No overload matches this call. | TS2339 - Property 'width' does not exist on type 'JQueryStatic'.
713
713
  dragListWidth = $(dragList).width(),
714
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'outerWidth' does not exist on type 'JQueryStatic'.
714
+ // @ts-expect-error - TS2339 - Property 'outerWidth' does not exist on type 'JQueryStatic'.
715
715
  draggableWidth = $draggable.outerWidth(true);
716
716
 
717
717
  if (isHorizontal) {
@@ -734,7 +734,7 @@ class Orderer extends React.Component<OrdererProps, OrdererState> {
734
734
  return {content: value};
735
735
  });
736
736
  this.props.onChange({
737
- // @ts-expect-error [FEI-5003] - TS2345 - Argument of type '{ current: { content: string; }[]; }' is not assignable to parameter of type '{ hints?: readonly Hint[] | undefined; replace?: boolean | undefined; content?: string | undefined; widgets?: WidgetDict | undefined; images?: ImageDict | undefined; ... 13 more ...; plot?: any; }'.
737
+ // @ts-expect-error - TS2345 - Argument of type '{ current: { content: string; }[]; }' is not assignable to parameter of type '{ hints?: readonly Hint[] | undefined; replace?: boolean | undefined; content?: string | undefined; widgets?: WidgetDict | undefined; images?: ImageDict | undefined; ... 13 more ...; plot?: any; }'.
738
738
  current: list,
739
739
  });
740
740
 
@@ -750,7 +750,7 @@ class Orderer extends React.Component<OrdererProps, OrdererState> {
750
750
  };
751
751
 
752
752
  simpleValidate: (arg1: any) => any = (rubric) => {
753
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'validate' does not exist on type 'typeof Orderer'.
753
+ // @ts-expect-error - TS2339 - Property 'validate' does not exist on type 'typeof Orderer'.
754
754
  return Orderer.validate(this.getUserInput(), rubric);
755
755
  };
756
756
  }
@@ -30,7 +30,7 @@ const validateParse = (parsed: Array<SingleASTNode>, expected) => {
30
30
 
31
31
  const htmlThroughReact = function (parsed: Array<SingleASTNode>) {
32
32
  const output = PassageMarkdown.output(parsed);
33
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'DOM' does not exist on type 'typeof React'.
33
+ // @ts-expect-error - TS2339 - Property 'DOM' does not exist on type 'typeof React'.
34
34
  // eslint-disable-next-line import/namespace
35
35
  const rawHtml = renderToStaticMarkup(React.DOM.div(null, output));
36
36
  const innerHtml = rawHtml.replace(/^<div>/, "").replace(/<\/div>$/, "");
@@ -68,7 +68,7 @@ class RefStart extends React.Component<Props> {
68
68
  return <span style={REF_STYLE}>{i18n.doNotTranslate("_")}</span>;
69
69
  }
70
70
 
71
- // @ts-expect-error [FEI-5003] - TS2322 - Type '() => React.ReactNode' is not assignable to type '() => ReactElement<any, string | JSXElementConstructor<any>>'.
71
+ // @ts-expect-error - TS2322 - Type '() => React.ReactNode' is not assignable to type '() => ReactElement<any, string | JSXElementConstructor<any>>'.
72
72
  getRefContent: () => React.ReactElement = () => {
73
73
  return this.props.refContent;
74
74
  };
@@ -304,7 +304,7 @@ const rules = {
304
304
  output: OutputFun,
305
305
  state: ParseState,
306
306
  ): React.ReactElement => {
307
- // @ts-expect-error [FEI-5003] - TS2739 - Type '(string | Element | null)[]' is missing the following properties from type 'ReactElement<any, string | JSXElementConstructor<any>>': type, props, key
307
+ // @ts-expect-error - TS2739 - Type '(string | Element | null)[]' is missing the following properties from type 'ReactElement<any, string | JSXElementConstructor<any>>': type, props, key
308
308
  return [
309
309
  <span
310
310
  key="visual-circle"
@@ -453,7 +453,7 @@ const parse: (
453
453
  arg1: string,
454
454
  arg2?: ParseState | null | undefined,
455
455
  ) => Array<SingleASTNode> = (source, state) => {
456
- // @ts-expect-error [FEI-5003] - TS2322 - Type 'ParseState | {}' is not assignable to type 'ParseState | null | undefined'.
456
+ // @ts-expect-error - TS2322 - Type 'ParseState | {}' is not assignable to type 'ParseState | null | undefined'.
457
457
  state = state || {};
458
458
  const paragraphedSource = source + "\n\n";
459
459
  return builtParser(
@@ -462,7 +462,7 @@ const parse: (
462
462
  );
463
463
  };
464
464
 
465
- // @ts-expect-error [FEI-5003] - TS2322 - Type 'ReactOutput' is not assignable to type '(arg1: SingleASTNode[]) => ReactElement<any, string | JSXElementConstructor<any>>'.
465
+ // @ts-expect-error - TS2322 - Type 'ReactOutput' is not assignable to type '(arg1: SingleASTNode[]) => ReactElement<any, string | JSXElementConstructor<any>>'.
466
466
  const output: (arg1: Array<SingleASTNode>) => React.ReactElement =
467
467
  SimpleMarkdown.reactFor(SimpleMarkdown.ruleOutput(rules, "react"));
468
468
 
@@ -50,7 +50,7 @@ class PassageRefTarget extends React.Component<any> {
50
50
  return (
51
51
  <Renderer
52
52
  content={this.props.content}
53
- // @ts-expect-error [FEI-5003] - TS2322 - Type '{ content: any; inline: boolean; apiOptions: any; linterContext: any; }' is not assignable to type 'IntrinsicAttributes & IntrinsicClassAttributes<Renderer> & Pick<Readonly<Props> & Readonly<{ children?: ReactNode; }>, "children" | ... 3 more ... | "legacyPerseusLint"> & InexactPartial<...> & InexactPartial<...>'.
53
+ // @ts-expect-error - TS2322 - Type '{ content: any; inline: boolean; apiOptions: any; linterContext: any; }' is not assignable to type 'IntrinsicAttributes & IntrinsicClassAttributes<Renderer> & Pick<Readonly<Props> & Readonly<{ children?: ReactNode; }>, "children" | ... 3 more ... | "legacyPerseusLint"> & InexactPartial<...> & InexactPartial<...>'.
54
54
  inline={true}
55
55
  apiOptions={this.props.apiOptions}
56
56
  linterContext={this.props.linterContext}
@@ -7,8 +7,6 @@ import * as Changeable from "../mixins/changeable";
7
7
  import {removeDenylistProps} from "../mixins/widget-prop-denylist";
8
8
  import PerseusMarkdown from "../perseus-markdown";
9
9
 
10
- import {Passage} from "./passage";
11
-
12
10
  import type {PerseusPassageRefWidgetOptions} from "../perseus-types";
13
11
  import type {
14
12
  ChangeFn,
@@ -17,7 +15,7 @@ import type {
17
15
  WidgetProps,
18
16
  LinterContextProps,
19
17
  } from "../types";
20
- import type {Reference} from "./passage";
18
+ import type {Passage, Reference} from "./passage";
21
19
 
22
20
  const EN_DASH = "\u2013";
23
21
 
@@ -52,9 +50,9 @@ type State = {
52
50
 
53
51
  class PassageRef extends React.Component<Props, State> {
54
52
  displayName = "PassageRef";
55
- // @ts-expect-error [FEI-5003] - TS2564 - Property '_isMounted' has no initializer and is not definitely assigned in the constructor.
53
+ // @ts-expect-error - TS2564 - Property '_isMounted' has no initializer and is not definitely assigned in the constructor.
56
54
  _isMounted: boolean;
57
- // @ts-expect-error [FEI-5003] - TS2564 - Property '_throttledUpdateRange' has no initializer and is not definitely assigned in the constructor.
55
+ // @ts-expect-error - TS2564 - Property '_throttledUpdateRange' has no initializer and is not definitely assigned in the constructor.
58
56
  _throttledUpdateRange: () => void;
59
57
 
60
58
  static defaultProps: DefaultProps = {
@@ -100,7 +98,7 @@ class PassageRef extends React.Component<Props, State> {
100
98
 
101
99
  let summaryOutput;
102
100
  if (this.props.summaryText) {
103
- // @ts-expect-error [FEI-5003] - TS2554 - Expected 2 arguments, but got 1.
101
+ // @ts-expect-error - TS2554 - Expected 2 arguments, but got 1.
104
102
  const summaryTree = PerseusMarkdown.parseInline(
105
103
  this.props.summaryText,
106
104
  );
@@ -104,9 +104,9 @@ export type Reference = {
104
104
  export class Passage extends React.Component<PassageProps, PassageState> {
105
105
  _contentRef: HTMLDivElement | null | undefined;
106
106
  _lineHeightMeasurerRef: LineHeightMeasurer | null | undefined;
107
- // @ts-expect-error [FEI-5003] - TS2564 - Property '_onResize' has no initializer and is not definitely assigned in the constructor.
107
+ // @ts-expect-error - TS2564 - Property '_onResize' has no initializer and is not definitely assigned in the constructor.
108
108
  _onResize: () => Record<any, any>;
109
- // @ts-expect-error [FEI-5003] - TS2564 - Property '_stylesAppiedTimer' has no initializer and is not definitely assigned in the constructor.
109
+ // @ts-expect-error - TS2564 - Property '_stylesAppiedTimer' has no initializer and is not definitely assigned in the constructor.
110
110
  _stylesAppiedTimer: number;
111
111
 
112
112
  static defaultProps: DefaultPassageProps = {
@@ -127,7 +127,7 @@ export class Passage extends React.Component<PassageProps, PassageState> {
127
127
  componentDidMount() {
128
128
  this._updateState();
129
129
 
130
- // @ts-expect-error [FEI-5003] - TS2322 - Type '(() => void) & Cancelable' is not assignable to type '() => Record<any, any>'.
130
+ // @ts-expect-error - TS2322 - Type '(() => void) & Cancelable' is not assignable to type '() => Record<any, any>'.
131
131
  this._onResize = _.throttle(() => {
132
132
  // If we're rendering JIPT text, we won't have line numbers or a
133
133
  // line height measurer, so skip handling this resize.
@@ -214,7 +214,7 @@ export class Passage extends React.Component<PassageProps, PassageState> {
214
214
 
215
215
  _measureLines(): number {
216
216
  const renderer = ReactDOM.findDOMNode(this._contentRef);
217
- // @ts-expect-error [FEI-5003] - TS2769 - No overload matches this call. | TS2339 - Property 'height' does not exist on type 'JQueryStatic'.
217
+ // @ts-expect-error - TS2769 - No overload matches this call. | TS2339 - Property 'height' does not exist on type 'JQueryStatic'.
218
218
  const contentsHeight: number = $(renderer).height();
219
219
  const lineHeight = this._getLineHeight();
220
220
  const nLines = Math.round(contentsHeight / lineHeight);
@@ -271,11 +271,11 @@ export class Passage extends React.Component<PassageProps, PassageState> {
271
271
  return null;
272
272
  }
273
273
 
274
- // @ts-expect-error [FEI-5003] - TS2769 - No overload matches this call.
274
+ // @ts-expect-error - TS2769 - No overload matches this call.
275
275
  const $ref = $(ReactDOM.findDOMNode(ref));
276
276
  // We really care about the first text after the ref, not the
277
277
  // ref element itself:
278
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'next' does not exist on type 'JQueryStatic'.
278
+ // @ts-expect-error - TS2339 - Property 'next' does not exist on type 'JQueryStatic'.
279
279
  let $refText = $ref.next();
280
280
  if ($refText.length === 0) {
281
281
  // But if there are no elements after the ref, just
@@ -298,11 +298,11 @@ export class Passage extends React.Component<PassageProps, PassageState> {
298
298
  return null;
299
299
  }
300
300
 
301
- // @ts-expect-error [FEI-5003] - TS2769 - No overload matches this call.
301
+ // @ts-expect-error - TS2769 - No overload matches this call.
302
302
  const $ref = $(ReactDOM.findDOMNode(ref));
303
303
  // We really care about the last text before the ref, not the
304
304
  // ref element itself:
305
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'prev' does not exist on type 'JQueryStatic'.
305
+ // @ts-expect-error - TS2339 - Property 'prev' does not exist on type 'JQueryStatic'.
306
306
  let $refText = $ref.prev();
307
307
  if ($refText.length === 0) {
308
308
  // But if there are no elements before the ref, just
@@ -328,7 +328,7 @@ export class Passage extends React.Component<PassageProps, PassageState> {
328
328
 
329
329
  _convertPosToLineNumber(absoluteVPos: number): number {
330
330
  const content = ReactDOM.findDOMNode(this._contentRef);
331
- // @ts-expect-error [FEI-5003] - TS2769 - No overload matches this call. | TS2339 - Property 'offset' does not exist on type 'JQueryStatic'.
331
+ // @ts-expect-error - TS2769 - No overload matches this call. | TS2339 - Property 'offset' does not exist on type 'JQueryStatic'.
332
332
  const relativeVPos = absoluteVPos - $(content).offset().top;
333
333
  const lineHeight = this._getLineHeight();
334
334
 
@@ -342,7 +342,7 @@ export class Passage extends React.Component<PassageProps, PassageState> {
342
342
  if (!ref) {
343
343
  return null;
344
344
  }
345
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'getRefContent' does not exist on type 'ReactInstance'.
345
+ // @ts-expect-error - TS2339 - Property 'getRefContent' does not exist on type 'ReactInstance'.
346
346
  return ref.getRefContent();
347
347
  }
348
348
 
@@ -523,7 +523,7 @@ export class Passage extends React.Component<PassageProps, PassageState> {
523
523
  />
524
524
  </h3>
525
525
  )}
526
- {/* @ts-expect-error [FEI-5003] - TS2454 - Variable 'lineNumbers' is used before being assigned. */}
526
+ {/* @ts-expect-error - TS2454 - Variable 'lineNumbers' is used before being assigned. */}
527
527
  {lineNumbers && (
528
528
  <div className="line-numbers" aria-hidden={true}>
529
529
  {lineNumbers}
@@ -67,7 +67,7 @@ type State = {
67
67
  };
68
68
 
69
69
  export class Plotter extends React.Component<Props, State> {
70
- // @ts-expect-error [FEI-5003] - TS2564 - Property 'shouldSetupGraphie' has no initializer and is not definitely assigned in the constructor.
70
+ // @ts-expect-error - TS2564 - Property 'shouldSetupGraphie' has no initializer and is not definitely assigned in the constructor.
71
71
  shouldSetupGraphie: boolean;
72
72
  _isMounted = false;
73
73
  horizHairline: any;
@@ -164,7 +164,7 @@ export class Plotter extends React.Component<Props, State> {
164
164
  const self = this;
165
165
  self.shouldSetupGraphie = false;
166
166
  const graphieDiv = ReactDOM.findDOMNode(self.refs.graphieDiv);
167
- // @ts-expect-error [FEI-5003] - TS2769 - No overload matches this call. | TS2339 - Property 'empty' does not exist on type 'JQueryStatic'.
167
+ // @ts-expect-error - TS2769 - No overload matches this call. | TS2339 - Property 'empty' does not exist on type 'JQueryStatic'.
168
168
  $(graphieDiv).empty();
169
169
  const graphie = GraphUtils.createGraphie(graphieDiv);
170
170
 
@@ -561,7 +561,7 @@ export class Plotter extends React.Component<Props, State> {
561
561
  _.each(self.props.categories, function (category, i) {
562
562
  const x = 0.5 + i * c.barWidth;
563
563
 
564
- // @ts-expect-error [FEI-5003] - TS2345 - Argument of type 'Promise<any>' is not assignable to parameter of type 'never'.
564
+ // @ts-expect-error - TS2345 - Argument of type 'Promise<any>' is not assignable to parameter of type 'never'.
565
565
  categoryHeightPromises.push(self.labelCategory(x, category));
566
566
  const tickHeight = 6 / c.scale[1];
567
567
  graphie.style(
@@ -611,7 +611,7 @@ export class Plotter extends React.Component<Props, State> {
611
611
  i === self.props.categories.length - 1
612
612
  ) {
613
613
  categoryHeightPromises.push(
614
- // @ts-expect-error [FEI-5003] - TS2345 - Argument of type 'Promise<any>' is not assignable to parameter of type 'never'.
614
+ // @ts-expect-error - TS2345 - Argument of type 'Promise<any>' is not assignable to parameter of type 'never'.
615
615
  self.labelCategory(x, category),
616
616
  );
617
617
  tickStart *= 1.5;
@@ -619,7 +619,7 @@ export class Plotter extends React.Component<Props, State> {
619
619
  }
620
620
  } else {
621
621
  categoryHeightPromises.push(
622
- // @ts-expect-error [FEI-5003] - TS2345 - Argument of type 'Promise<any>' is not assignable to parameter of type 'never'.
622
+ // @ts-expect-error - TS2345 - Argument of type 'Promise<any>' is not assignable to parameter of type 'never'.
623
623
  self.labelCategory(x, category),
624
624
  );
625
625
  }
@@ -915,7 +915,7 @@ export class Plotter extends React.Component<Props, State> {
915
915
  if (i > 0) {
916
916
  c.graph.lines[i] = Interactive2.addMovableLine(graphie, {
917
917
  points: [c.graph.points[i - 1], c.graph.points[i]],
918
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'constraints' does not exist on type '(graphie: any, movable: any, options: any) => void'.
918
+ // @ts-expect-error - TS2339 - Property 'constraints' does not exist on type '(graphie: any, movable: any, options: any) => void'.
919
919
  constraints: Interactive2.MovablePoint.constraints.fixed(),
920
920
  normalStyle: {
921
921
  stroke: KhanColors.BLUE_C,
@@ -1039,7 +1039,7 @@ export class Plotter extends React.Component<Props, State> {
1039
1039
  .css({fill: "#000", opacity: 0.0, cursor: "pointer"})
1040
1040
  .on("vmousedown", function (e) {
1041
1041
  e.preventDefault();
1042
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'whichPicClicked' does not exist on type 'Plotter'.
1042
+ // @ts-expect-error - TS2339 - Property 'whichPicClicked' does not exist on type 'Plotter'.
1043
1043
  self.whichPicClicked = i;
1044
1044
  self.setPicHeight(i, topY);
1045
1045
 
@@ -1069,7 +1069,7 @@ export class Plotter extends React.Component<Props, State> {
1069
1069
  newMidY + 0.5 * c.scaleY,
1070
1070
  c.dimY,
1071
1071
  );
1072
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'whichPicClicked' does not exist on type 'Plotter'.
1072
+ // @ts-expect-error - TS2339 - Property 'whichPicClicked' does not exist on type 'Plotter'.
1073
1073
  self.setPicHeight(self.whichPicClicked, newTopY);
1074
1074
  });
1075
1075
  });
@@ -1158,7 +1158,7 @@ export class Plotter extends React.Component<Props, State> {
1158
1158
  };
1159
1159
 
1160
1160
  simpleValidate: (arg1: any) => any = (rubric) => {
1161
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'validate' does not exist on type 'typeof Plotter'.
1161
+ // @ts-expect-error - TS2339 - Property 'validate' does not exist on type 'typeof Plotter'.
1162
1162
  return Plotter.validate(this.getUserInput(), rubric);
1163
1163
  };
1164
1164