@khanacademy/perseus 7.2.0 → 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 (409) hide show
  1. package/CHANGELOG.md +38 -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.css +61 -61
  7. package/dist/es/index.js +1189 -1308
  8. package/dist/es/index.js.map +1 -1
  9. package/dist/hints-renderer.d.ts +1 -1
  10. package/dist/index.css +61 -61
  11. package/dist/index.js +1180 -1269
  12. package/dist/index.js.map +1 -1
  13. package/dist/mixins/provide-keypad.d.ts +15 -12
  14. package/dist/perseus-api.d.ts +1 -1
  15. package/dist/types.d.ts +3 -2
  16. package/dist/widgets/expression.d.ts +1 -1
  17. package/dist/widgets/graded-group.d.ts +1 -1
  18. package/dist/widgets/interactive-graph.d.ts +1 -1
  19. package/dist/widgets/plotter.d.ts +47 -13
  20. package/dist/widgets/sequence.d.ts +1 -1
  21. package/dist/widgets/table.d.ts +8 -1
  22. package/dist/widgets.d.ts +1 -1
  23. package/package.json +33 -33
  24. package/src/__testdata__/article-renderer.testdata.ts +3 -1
  25. package/src/__testdata__/item-renderer.testdata.ts +1 -1
  26. package/src/__testdata__/renderer.testdata.ts +1 -1
  27. package/src/__tests__/item-renderer.test.tsx +2 -2
  28. package/src/__tests__/mock-asset-loading-widget.tsx +1 -1
  29. package/src/__tests__/perseus-markdown.test.ts +17 -17
  30. package/src/__tests__/renderer-api.test.tsx +21 -21
  31. package/src/__tests__/renderer.test.tsx +13 -13
  32. package/src/__tests__/server-item-renderer.test.tsx +3 -3
  33. package/src/__tests__/tex-wrangler.test.ts +1 -1
  34. package/src/article-renderer.tsx +39 -38
  35. package/src/components/__stories__/image-loader.stories.tsx +1 -0
  36. package/src/components/__tests__/number-input.test.tsx +4 -4
  37. package/src/components/__tests__/sortable.test.tsx +2 -2
  38. package/src/components/fixed-to-responsive.tsx +1 -1
  39. package/src/components/graph.tsx +12 -11
  40. package/src/components/graphie-classes.ts +7 -7
  41. package/src/components/graphie.tsx +14 -14
  42. package/src/components/highlighting/highlightable-content.tsx +1 -1
  43. package/src/components/highlighting/ui/highlight-renderer.tsx +1 -1
  44. package/src/components/highlighting/ui/util.ts +2 -2
  45. package/src/components/highlighting/word-indexer.tsx +4 -4
  46. package/src/components/icon.tsx +2 -1
  47. package/src/components/image-loader.tsx +5 -4
  48. package/src/components/input-with-examples.tsx +2 -2
  49. package/src/components/lint.tsx +1 -1
  50. package/src/components/math-input.tsx +5 -5
  51. package/src/components/math-output.tsx +1 -1
  52. package/src/components/multi-button-group.tsx +1 -1
  53. package/src/components/number-input.tsx +11 -10
  54. package/src/components/prop-check-box.tsx +1 -1
  55. package/src/components/simple-keypad-input.tsx +4 -4
  56. package/src/components/sortable.tsx +43 -41
  57. package/src/components/svg-image.tsx +13 -12
  58. package/src/components/tex-buttons.tsx +5 -3
  59. package/src/components/text-input.tsx +9 -8
  60. package/src/components/text-list-editor.tsx +12 -11
  61. package/src/components/visibility-observer/create-visibility-observer.ts +1 -1
  62. package/src/components/visibility-observer/visibility-observer.tsx +2 -2
  63. package/src/components/zoomable-tex.tsx +3 -3
  64. package/src/components/zoomable.tsx +9 -8
  65. package/src/hint-renderer.tsx +3 -3
  66. package/src/hints-renderer.tsx +12 -11
  67. package/src/index.ts +1 -0
  68. package/src/init.ts +1 -1
  69. package/src/interaction-tracker.ts +4 -4
  70. package/src/interactive2/__tests__/movable-point.test.ts +1 -1
  71. package/src/interactive2/interactive-util.ts +6 -6
  72. package/src/interactive2/movable-helper-methods.ts +2 -2
  73. package/src/interactive2/movable-line-options.ts +37 -37
  74. package/src/interactive2/movable-line.ts +2 -2
  75. package/src/interactive2/movable-point-options.ts +29 -29
  76. package/src/interactive2/movable-point.tsx +2 -2
  77. package/src/interactive2/movable-polygon-options.ts +45 -45
  78. package/src/interactive2/movable-polygon.ts +2 -2
  79. package/src/interactive2/movable.ts +2 -2
  80. package/src/interactive2/objective_.ts +1 -1
  81. package/src/interactive2/wrapped-defaults.ts +2 -2
  82. package/src/interactive2/wrapped-ellipse.ts +9 -9
  83. package/src/interactive2/wrapped-line.ts +8 -8
  84. package/src/interactive2/wrapped-path.ts +5 -5
  85. package/src/item-renderer.tsx +6 -5
  86. package/src/mixins/changeable.ts +2 -2
  87. package/src/mixins/editor-jsonify.ts +1 -1
  88. package/src/mixins/provide-keypad.tsx +24 -37
  89. package/src/mixins/widget-jsonify-deprecated.ts +1 -1
  90. package/src/multi-items/__tests__/items.test.ts +1 -1
  91. package/src/multi-items/__tests__/multi-renderer.test.tsx +7 -7
  92. package/src/multi-items/__tests__/trees.test.ts +12 -12
  93. package/src/multi-items/item-types.ts +2 -2
  94. package/src/multi-items/items.ts +1 -1
  95. package/src/multi-items/multi-renderer.tsx +15 -14
  96. package/src/multi-items/prop-type-builders.ts +2 -2
  97. package/src/multi-items/tree-types.ts +4 -4
  98. package/src/multi-items/trees.ts +16 -16
  99. package/src/perseus-env.ts +2 -2
  100. package/src/perseus-markdown.tsx +5 -5
  101. package/src/renderer.tsx +39 -38
  102. package/src/server-item-renderer.tsx +6 -5
  103. package/src/sigfigs.ts +1 -1
  104. package/src/styles/articles.less +8 -4
  105. package/src/styles/perseus-renderer.less +47 -38
  106. package/src/styles/util.less +1 -1
  107. package/src/styles/variables.boostrap.less +158 -182
  108. package/src/styles/variables.less +20 -20
  109. package/src/styles/variables.shared.less +162 -168
  110. package/src/styles/widgets/categorizer.less +1 -2
  111. package/src/styles/widgets/expression.less +7 -4
  112. package/src/styles/widgets/grapher.less +2 -1
  113. package/src/styles/widgets/image.less +3 -2
  114. package/src/styles/widgets/interactive-graph.less +4 -2
  115. package/src/styles/widgets/label-image.less +2 -1
  116. package/src/styles/widgets/matrix.less +11 -7
  117. package/src/styles/widgets/orderer.less +2 -1
  118. package/src/styles/widgets/passage.less +2 -1
  119. package/src/styles/widgets/plotter.less +4 -3
  120. package/src/styles/widgets/radio.less +4 -2
  121. package/src/styles/widgets/sortable.less +1 -1
  122. package/src/styles/widgets/table.less +2 -1
  123. package/src/styles/widgets/transformer.less +2 -1
  124. package/src/styles/widgets/unit.less +2 -1
  125. package/src/traversal.ts +1 -1
  126. package/src/types.ts +3 -3
  127. package/src/util/answer-types.ts +14 -14
  128. package/src/util/geometry.ts +7 -7
  129. package/src/util/graphie.ts +32 -32
  130. package/src/util/interactive.ts +118 -118
  131. package/src/util/math.ts +4 -4
  132. package/src/util/react-render.tsx +1 -1
  133. package/src/util/scroll-utils.ts +2 -2
  134. package/src/util/tex.ts +3 -3
  135. package/src/util.ts +15 -15
  136. package/src/widget-container.tsx +1 -1
  137. package/src/widgets/__stories__/plotter.stories.tsx +27 -0
  138. package/src/widgets/__stories__/test-keypad-context-wrapper.tsx +3 -3
  139. package/src/widgets/__testdata__/numeric-input.testdata.ts +1 -1
  140. package/src/widgets/__testdata__/plotter.testdata.ts +36 -0
  141. package/src/widgets/__tests__/__snapshots__/plotter.test.tsx.snap +863 -0
  142. package/src/widgets/__tests__/__snapshots__/video.test.ts.snap +2 -2
  143. package/src/widgets/__tests__/expression.test.ts +4 -3
  144. package/src/widgets/__tests__/grapher.cypress.ts +32 -32
  145. package/src/widgets/__tests__/group.test.tsx +1 -1
  146. package/src/widgets/__tests__/interactive-graph.cypress.ts +40 -40
  147. package/src/widgets/__tests__/interactive-graph.test.ts +1 -1
  148. package/src/widgets/__tests__/numeric-input.test.ts +1 -1
  149. package/src/widgets/__tests__/passage.test.tsx +2 -2
  150. package/src/widgets/__tests__/plotter.test.tsx +66 -0
  151. package/src/widgets/__tests__/radio/base-radio.test.tsx +7 -7
  152. package/src/widgets/__tests__/renderQuestion.tsx +3 -3
  153. package/src/widgets/categorizer.tsx +5 -4
  154. package/src/widgets/cs-program.tsx +2 -2
  155. package/src/widgets/dropdown.tsx +1 -1
  156. package/src/widgets/expression.tsx +10 -9
  157. package/src/widgets/graded-group-set.tsx +6 -5
  158. package/src/widgets/graded-group.tsx +19 -19
  159. package/src/widgets/grapher/util.tsx +6 -6
  160. package/src/widgets/grapher.tsx +10 -10
  161. package/src/widgets/group.tsx +3 -3
  162. package/src/widgets/iframe.tsx +2 -2
  163. package/src/widgets/image.tsx +1 -1
  164. package/src/widgets/input-number.tsx +4 -4
  165. package/src/widgets/interaction.tsx +78 -77
  166. package/src/widgets/interactive-graph.tsx +109 -107
  167. package/src/widgets/label-image/marker.tsx +3 -2
  168. package/src/widgets/label-image.test.ts +1 -1
  169. package/src/widgets/label-image.tsx +7 -7
  170. package/src/widgets/lights-puzzle.tsx +2 -2
  171. package/src/widgets/matcher.tsx +7 -6
  172. package/src/widgets/matrix.tsx +20 -20
  173. package/src/widgets/measurer.tsx +3 -3
  174. package/src/widgets/molecule/__tests__/layout.test.ts +4 -4
  175. package/src/widgets/molecule/__tests__/parser.test.ts +14 -14
  176. package/src/widgets/molecule/smiles-parser.ts +3 -3
  177. package/src/widgets/molecule.tsx +4 -4
  178. package/src/widgets/number-line.tsx +11 -11
  179. package/src/widgets/numeric-input.tsx +11 -11
  180. package/src/widgets/orderer.tsx +39 -38
  181. package/src/widgets/passage/__tests__/passage-markdown.test.ts +1 -1
  182. package/src/widgets/passage/passage-markdown.tsx +4 -4
  183. package/src/widgets/passage-ref-target.tsx +2 -1
  184. package/src/widgets/passage-ref.tsx +4 -6
  185. package/src/widgets/passage.tsx +11 -11
  186. package/src/widgets/plotter.tsx +117 -107
  187. package/src/widgets/radio/base-radio.tsx +12 -11
  188. package/src/widgets/radio/choice-icon/choice-icon.tsx +3 -2
  189. package/src/widgets/radio/choice.tsx +1 -1
  190. package/src/widgets/radio/option-status.tsx +1 -1
  191. package/src/widgets/radio/widget.tsx +6 -6
  192. package/src/widgets/radio.ts +1 -1
  193. package/src/widgets/reaction-diagram.tsx +8 -8
  194. package/src/widgets/sequence.tsx +2 -2
  195. package/src/widgets/simulator.tsx +14 -14
  196. package/src/widgets/sorter.tsx +5 -4
  197. package/src/widgets/table.tsx +8 -8
  198. package/src/widgets/transformer.tsx +93 -92
  199. package/src/widgets/unit.tsx +17 -17
  200. package/src/widgets/video-transcript-link.test.tsx +3 -3
  201. package/src/widgets/video-transcript-link.tsx +1 -1
  202. package/src/widgets/video.tsx +1 -1
  203. package/src/widgets.ts +5 -5
  204. package/src/zoom.ts +22 -22
  205. package/tsconfig-build.tsbuildinfo +1 -1
  206. package/dist/a11y.js.flow +0 -11
  207. package/dist/all-widgets.js.flow +0 -33
  208. package/dist/article-renderer.js.flow +0 -73
  209. package/dist/asset-context.js.flow +0 -15
  210. package/dist/basic-widgets.js.flow +0 -33
  211. package/dist/components/button-group.js.flow +0 -33
  212. package/dist/components/constants.js.flow +0 -13
  213. package/dist/components/fixed-to-responsive.js.flow +0 -34
  214. package/dist/components/graph.js.flow +0 -66
  215. package/dist/components/graphie-classes.js.flow +0 -19
  216. package/dist/components/graphie-movables.js.flow +0 -22
  217. package/dist/components/graphie.js.flow +0 -69
  218. package/dist/components/highlighting/highlightable-content.js.flow +0 -56
  219. package/dist/components/highlighting/highlights.js.flow +0 -54
  220. package/dist/components/highlighting/ranges.js.flow +0 -60
  221. package/dist/components/highlighting/types.js.flow +0 -70
  222. package/dist/components/highlighting/ui/highlight-renderer.js.flow +0 -43
  223. package/dist/components/highlighting/ui/highlight-set-renderer.js.flow +0 -41
  224. package/dist/components/highlighting/ui/highlight-tooltip.js.flow +0 -22
  225. package/dist/components/highlighting/ui/highlighting-ui.js.flow +0 -30
  226. package/dist/components/highlighting/ui/selection-tracker.js.flow +0 -54
  227. package/dist/components/highlighting/ui/types.js.flow +0 -22
  228. package/dist/components/highlighting/ui/util.js.flow +0 -42
  229. package/dist/components/highlighting/word-indexer.js.flow +0 -21
  230. package/dist/components/hud.js.flow +0 -14
  231. package/dist/components/icon.js.flow +0 -31
  232. package/dist/components/image-loader.js.flow +0 -49
  233. package/dist/components/info-tip/info-tip.js.flow +0 -20
  234. package/dist/components/info-tip.js.flow +0 -18
  235. package/dist/components/inline-icon.js.flow +0 -39
  236. package/dist/components/input-with-examples.js.flow +0 -58
  237. package/dist/components/lint.js.flow +0 -58
  238. package/dist/components/math-input.js.flow +0 -49
  239. package/dist/components/math-output.js.flow +0 -33
  240. package/dist/components/multi-button-group.js.flow +0 -35
  241. package/dist/components/number-input.js.flow +0 -42
  242. package/dist/components/prop-check-box.js.flow +0 -8
  243. package/dist/components/range-input.js.flow +0 -20
  244. package/dist/components/simple-keypad-input.js.flow +0 -16
  245. package/dist/components/sortable.js.flow +0 -91
  246. package/dist/components/stub-tag-editor.js.flow +0 -18
  247. package/dist/components/svg-image.js.flow +0 -85
  248. package/dist/components/tex-buttons.js.flow +0 -26
  249. package/dist/components/tex.js.flow +0 -25
  250. package/dist/components/text-input.js.flow +0 -39
  251. package/dist/components/text-list-editor.js.flow +0 -22
  252. package/dist/components/tooltip.js.flow +0 -51
  253. package/dist/components/visibility-observer/create-visibility-observer.js.flow +0 -23
  254. package/dist/components/visibility-observer/get-scroll-parent.js.flow +0 -7
  255. package/dist/components/visibility-observer/visibility-observer.js.flow +0 -36
  256. package/dist/components/zoomable-tex.js.flow +0 -18
  257. package/dist/components/zoomable.js.flow +0 -70
  258. package/dist/components.js.flow +0 -22
  259. package/dist/definition-context.js.flow +0 -25
  260. package/dist/dependencies.js.flow +0 -9
  261. package/dist/error-boundary.js.flow +0 -19
  262. package/dist/extra-widgets.js.flow +0 -33
  263. package/dist/hint-renderer.js.flow +0 -32
  264. package/dist/hints-renderer.js.flow +0 -41
  265. package/dist/icon-paths.js.flow +0 -123
  266. package/dist/index.js.flow +0 -134
  267. package/dist/init.js.flow +0 -20
  268. package/dist/interaction-tracker.js.flow +0 -35
  269. package/dist/interactive2/interactive-util.js.flow +0 -50
  270. package/dist/interactive2/movable-helper-methods.js.flow +0 -15
  271. package/dist/interactive2/movable-line-options.js.flow +0 -44
  272. package/dist/interactive2/movable-line.js.flow +0 -8
  273. package/dist/interactive2/movable-point-options.js.flow +0 -44
  274. package/dist/interactive2/movable-point.js.flow +0 -8
  275. package/dist/interactive2/movable-polygon-options.js.flow +0 -47
  276. package/dist/interactive2/movable-polygon.js.flow +0 -8
  277. package/dist/interactive2/movable.js.flow +0 -8
  278. package/dist/interactive2/objective_.js.flow +0 -25
  279. package/dist/interactive2/types.js.flow +0 -8
  280. package/dist/interactive2/wrapped-defaults.js.flow +0 -11
  281. package/dist/interactive2/wrapped-ellipse.js.flow +0 -14
  282. package/dist/interactive2/wrapped-line.js.flow +0 -14
  283. package/dist/interactive2/wrapped-path.js.flow +0 -13
  284. package/dist/interactive2.js.flow +0 -16
  285. package/dist/item-renderer.js.flow +0 -132
  286. package/dist/item-version.js.flow +0 -11
  287. package/dist/jipt-paragraphs.js.flow +0 -14
  288. package/dist/loading-context.js.flow +0 -12
  289. package/dist/logging/log.js.flow +0 -62
  290. package/dist/mixins/changeable.js.flow +0 -33
  291. package/dist/mixins/editor-jsonify.js.flow +0 -10
  292. package/dist/mixins/provide-keypad.js.flow +0 -33
  293. package/dist/mixins/widget-jsonify-deprecated.js.flow +0 -11
  294. package/dist/mixins/widget-prop-denylist.js.flow +0 -20
  295. package/dist/multi-items/item-types.js.flow +0 -55
  296. package/dist/multi-items/items.js.flow +0 -66
  297. package/dist/multi-items/multi-renderer.js.flow +0 -213
  298. package/dist/multi-items/prop-type-builders.js.flow +0 -22
  299. package/dist/multi-items/shape-types.js.flow +0 -60
  300. package/dist/multi-items/shapes.js.flow +0 -25
  301. package/dist/multi-items/tree-types.js.flow +0 -45
  302. package/dist/multi-items/trees.js.flow +0 -147
  303. package/dist/multi-items.js.flow +0 -36
  304. package/dist/perseus-api.js.flow +0 -151
  305. package/dist/perseus-env.js.flow +0 -6
  306. package/dist/perseus-error.js.flow +0 -16
  307. package/dist/perseus-markdown.js.flow +0 -20
  308. package/dist/perseus-types.js.flow +0 -1041
  309. package/dist/question-paragraph.js.flow +0 -17
  310. package/dist/renderability.js.flow +0 -19
  311. package/dist/renderer.js.flow +0 -325
  312. package/dist/server-item-renderer.js.flow +0 -132
  313. package/dist/sigfigs.js.flow +0 -41
  314. package/dist/styles/constants.js.flow +0 -62
  315. package/dist/styles/global-constants.js.flow +0 -348
  316. package/dist/styles/global-styles.js.flow +0 -53
  317. package/dist/styles/media-queries.js.flow +0 -35
  318. package/dist/styles/shared.js.flow +0 -8
  319. package/dist/tex-wrangler.js.flow +0 -13
  320. package/dist/translation-linter.js.flow +0 -32
  321. package/dist/traversal.js.flow +0 -26
  322. package/dist/types.js.flow +0 -318
  323. package/dist/util/a11y.js.flow +0 -8
  324. package/dist/util/answer-types.js.flow +0 -49
  325. package/dist/util/colors.js.flow +0 -95
  326. package/dist/util/fix-passage-refs.js.flow +0 -8
  327. package/dist/util/geometry.js.flow +0 -37
  328. package/dist/util/graph-utils.js.flow +0 -9
  329. package/dist/util/graphie.js.flow +0 -8
  330. package/dist/util/interactive.js.flow +0 -11
  331. package/dist/util/katex-preprocess.js.flow +0 -12
  332. package/dist/util/math.js.flow +0 -62
  333. package/dist/util/mobile-native-utils.js.flow +0 -12
  334. package/dist/util/react-render.js.flow +0 -12
  335. package/dist/util/register-all-widgets-for-testing.js.flow +0 -7
  336. package/dist/util/scroll-utils.js.flow +0 -19
  337. package/dist/util/sizing-utils.js.flow +0 -20
  338. package/dist/util/tex.js.flow +0 -17
  339. package/dist/util/url-utils.js.flow +0 -11
  340. package/dist/util.graphie.js.flow +0 -14
  341. package/dist/util.js.flow +0 -319
  342. package/dist/version.js.flow +0 -17
  343. package/dist/widget-container.js.flow +0 -33
  344. package/dist/widgets/categorizer.js.flow +0 -70
  345. package/dist/widgets/cs-program.js.flow +0 -54
  346. package/dist/widgets/definition.js.flow +0 -57
  347. package/dist/widgets/dropdown.js.flow +0 -63
  348. package/dist/widgets/explanation.js.flow +0 -58
  349. package/dist/widgets/expression.js.flow +0 -116
  350. package/dist/widgets/graded-group-answer-bar.js.flow +0 -24
  351. package/dist/widgets/graded-group-set.js.flow +0 -65
  352. package/dist/widgets/graded-group.js.flow +0 -78
  353. package/dist/widgets/grapher/util.js.flow +0 -38
  354. package/dist/widgets/grapher.js.flow +0 -102
  355. package/dist/widgets/group.js.flow +0 -60
  356. package/dist/widgets/iframe.js.flow +0 -53
  357. package/dist/widgets/image.js.flow +0 -73
  358. package/dist/widgets/input-number.js.flow +0 -94
  359. package/dist/widgets/interaction/arrow-picker.js.flow +0 -21
  360. package/dist/widgets/interaction/color-picker.js.flow +0 -23
  361. package/dist/widgets/interaction/dash-picker.js.flow +0 -21
  362. package/dist/widgets/interaction/element-container.js.flow +0 -28
  363. package/dist/widgets/interaction.js.flow +0 -60
  364. package/dist/widgets/interactive-graph.js.flow +0 -239
  365. package/dist/widgets/label-image/answer-choices.js.flow +0 -55
  366. package/dist/widgets/label-image/marker.js.flow +0 -31
  367. package/dist/widgets/label-image/types.js.flow +0 -23
  368. package/dist/widgets/label-image.js.flow +0 -142
  369. package/dist/widgets/lights-puzzle.js.flow +0 -58
  370. package/dist/widgets/matcher.js.flow +0 -106
  371. package/dist/widgets/matrix.js.flow +0 -80
  372. package/dist/widgets/measurer.js.flow +0 -30
  373. package/dist/widgets/molecule/molecule-drawing.js.flow +0 -11
  374. package/dist/widgets/molecule/molecule-layout.js.flow +0 -96
  375. package/dist/widgets/molecule/smiles-parser.js.flow +0 -26
  376. package/dist/widgets/molecule.js.flow +0 -60
  377. package/dist/widgets/number-line.js.flow +0 -102
  378. package/dist/widgets/numeric-input.js.flow +0 -105
  379. package/dist/widgets/orderer.js.flow +0 -81
  380. package/dist/widgets/passage/passage-markdown.js.flow +0 -33
  381. package/dist/widgets/passage-ref-target.js.flow +0 -52
  382. package/dist/widgets/passage-ref.js.flow +0 -85
  383. package/dist/widgets/passage.js.flow +0 -157
  384. package/dist/widgets/plotter.js.flow +0 -78
  385. package/dist/widgets/radio/base-radio.js.flow +0 -50
  386. package/dist/widgets/radio/choice-a11y-text.js.flow +0 -14
  387. package/dist/widgets/radio/choice-icon/choice-icon.js.flow +0 -22
  388. package/dist/widgets/radio/choice-icon/cross-out-line.js.flow +0 -16
  389. package/dist/widgets/radio/choice-icon/shared-styles.js.flow +0 -11
  390. package/dist/widgets/radio/choice-none-above.js.flow +0 -16
  391. package/dist/widgets/radio/choice.js.flow +0 -29
  392. package/dist/widgets/radio/choice.jsx.fixture.js.flow +0 -7
  393. package/dist/widgets/radio/focus-ring.js.flow +0 -22
  394. package/dist/widgets/radio/option-status.js.flow +0 -16
  395. package/dist/widgets/radio/util.js.flow +0 -12
  396. package/dist/widgets/radio/widget.js.flow +0 -80
  397. package/dist/widgets/radio.js.flow +0 -31
  398. package/dist/widgets/reaction-diagram.js.flow +0 -46
  399. package/dist/widgets/sequence.js.flow +0 -53
  400. package/dist/widgets/simulator.js.flow +0 -107
  401. package/dist/widgets/sorter.js.flow +0 -102
  402. package/dist/widgets/table.js.flow +0 -67
  403. package/dist/widgets/transformer.js.flow +0 -127
  404. package/dist/widgets/unit.js.flow +0 -93
  405. package/dist/widgets/video-transcript-link.js.flow +0 -15
  406. package/dist/widgets/video.js.flow +0 -57
  407. package/dist/widgets.js.flow +0 -108
  408. package/dist/zoom.js.flow +0 -7
  409. package/src/multi-items/item-types.js.flow +0 -55
@@ -15,14 +15,14 @@ const deepEq = Util.deepEq;
15
15
  * GraphieMovables
16
16
  */
17
17
  function GraphieMovable(descriptor: any) {
18
- // @ts-expect-error [FEI-5003] - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
18
+ // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
19
19
  _.extend(this, descriptor);
20
20
  }
21
21
 
22
22
  const abstractMethod = function () {
23
23
  throw new PerseusError(
24
24
  "Abstract method! Must be implemented by Graphie Movable" +
25
- // @ts-expect-error [FEI-5003] - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
25
+ // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
26
26
  this.constructor.displayName,
27
27
  Errors.NotAllowed,
28
28
  );
@@ -64,16 +64,16 @@ const rewriteProps = function (props: any, childrenArray: any) {
64
64
  */
65
65
  const createClass = function (spec: any): any {
66
66
  const GraphieClass = function (props: any) {
67
- // @ts-expect-error [FEI-5003] - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
67
+ // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
68
68
  if (!(this instanceof GraphieClass)) {
69
69
  throw new PerseusError(
70
70
  "Use createElement or JSX with graphie movables",
71
71
  Errors.NotAllowed,
72
72
  );
73
73
  }
74
- // @ts-expect-error [FEI-5003] - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
74
+ // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
75
75
  this.props = rewriteProps(props, props.children || []);
76
- // @ts-expect-error [FEI-5003] - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
76
+ // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
77
77
  return this;
78
78
  };
79
79
 
@@ -125,7 +125,7 @@ const createSimpleClass = function (addFunction: any): any {
125
125
  },
126
126
 
127
127
  remove: function () {
128
- // @ts-expect-error [FEI-5003] - TS2554 - Expected 3 arguments, but got 2.
128
+ // @ts-expect-error - TS2554 - Expected 3 arguments, but got 2.
129
129
  nestedMap(this._elements, (elem) => {
130
130
  if (elem) {
131
131
  elem.remove();
@@ -136,7 +136,7 @@ const createSimpleClass = function (addFunction: any): any {
136
136
  },
137
137
 
138
138
  toFront: function () {
139
- // @ts-expect-error [FEI-5003] - TS2554 - Expected 3 arguments, but got 2.
139
+ // @ts-expect-error - TS2554 - Expected 3 arguments, but got 2.
140
140
  nestedMap(this._elements, (elem) => {
141
141
  if (_.isFunction(elem.toFront)) {
142
142
  elem.toFront();
@@ -120,7 +120,7 @@ class Graphie extends React.Component<Props> {
120
120
  * Use it for good and not evil.
121
121
  */
122
122
  getGraphie: () => any = () => {
123
- // @ts-expect-error [FEI-5003] - TS2339 - Property '_graphie' does not exist on type 'Graphie'.
123
+ // @ts-expect-error - TS2339 - Property '_graphie' does not exist on type 'Graphie'.
124
124
  return this._graphie;
125
125
  };
126
126
 
@@ -164,9 +164,9 @@ class Graphie extends React.Component<Props> {
164
164
  this._removeMovables();
165
165
 
166
166
  const graphieDiv = ReactDOM.findDOMNode(this.graphieDivRef.current);
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
- // @ts-expect-error [FEI-5003] - TS2339 - Property '_graphie' does not exist on type 'Graphie'.
169
+ // @ts-expect-error - TS2339 - Property '_graphie' does not exist on type 'Graphie'.
170
170
  const graphie = (this._graphie = createGraphie(graphieDiv));
171
171
 
172
172
  // This has to be called before addMouseLayer. You can re-init
@@ -193,7 +193,7 @@ class Graphie extends React.Component<Props> {
193
193
  // Overwrite fixed styles set in init()
194
194
  // TODO(alex): Either make this component always responsive by
195
195
  // itself, or always wrap it in other components so that it is.
196
- // @ts-expect-error [FEI-5003] - TS2769 - No overload matches this call. | TS2554 - Expected 2 arguments, but got 1.
196
+ // @ts-expect-error - TS2769 - No overload matches this call. | TS2554 - Expected 2 arguments, but got 1.
197
197
  $(graphieDiv).css({width: "100%", height: "100%"});
198
198
  graphie.raphael.setSize("100%", "100%");
199
199
  }
@@ -212,13 +212,13 @@ class Graphie extends React.Component<Props> {
212
212
 
213
213
  _removeMovables: () => void = () => {
214
214
  // _.invoke works even when this._movables is undefined
215
- // @ts-expect-error [FEI-5003] - TS2339 - Property '_movables' does not exist on type 'Graphie'.
215
+ // @ts-expect-error - TS2339 - Property '_movables' does not exist on type 'Graphie'.
216
216
  _.invoke(this._movables, "remove");
217
- // @ts-expect-error [FEI-5003] - TS2339 - Property '_movables' does not exist on type 'Graphie'.
217
+ // @ts-expect-error - TS2339 - Property '_movables' does not exist on type 'Graphie'.
218
218
  this._movables = {};
219
219
  };
220
220
 
221
- // @ts-expect-error [FEI-5003] - TS2322 - Type '(children: readonly any[], options: any) => ReactElement<any, string | JSXElementConstructor<any>> | readonly ReactElement<any, string | JSXElementConstructor<any>>[]' is not assignable to type '(children: readonly any[], arg2: any) => ReactElement<any, string | JSXElementConstructor<any>>'.
221
+ // @ts-expect-error - TS2322 - Type '(children: readonly any[], options: any) => ReactElement<any, string | JSXElementConstructor<any>> | readonly ReactElement<any, string | JSXElementConstructor<any>>[]' is not assignable to type '(children: readonly any[], arg2: any) => ReactElement<any, string | JSXElementConstructor<any>>'.
222
222
  _renderMovables: (
223
223
  children: ReadonlyArray<any>,
224
224
  arg2: any,
@@ -260,7 +260,7 @@ class Graphie extends React.Component<Props> {
260
260
  // elements occurring afterwards. If this happens, we set
261
261
  // `areMovablesOutOfOrder` to true:
262
262
  let areMovablesOutOfOrder = false;
263
- // @ts-expect-error [FEI-5003] - TS2554 - Expected 3 arguments, but got 2.
263
+ // @ts-expect-error - TS2554 - Expected 3 arguments, but got 2.
264
264
  return nestedMap(children, (childDescriptor) => {
265
265
  if (!childDescriptor) {
266
266
  // Still increment the key to avoid cascading key changes
@@ -333,7 +333,7 @@ class Graphie extends React.Component<Props> {
333
333
  }
334
334
 
335
335
  if (ref) {
336
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'movables' does not exist on type 'Graphie'.
336
+ // @ts-expect-error - TS2339 - Property 'movables' does not exist on type 'Graphie'.
337
337
  this.movables[ref] = newMovables[key];
338
338
  }
339
339
 
@@ -343,18 +343,18 @@ class Graphie extends React.Component<Props> {
343
343
 
344
344
  // Sort of like react diffing, but for movables
345
345
  _updateMovables: () => void = () => {
346
- // @ts-expect-error [FEI-5003] - TS2339 - Property '_graphie' does not exist on type 'Graphie'.
346
+ // @ts-expect-error - TS2339 - Property '_graphie' does not exist on type 'Graphie'.
347
347
  const graphie = this._graphie;
348
348
 
349
- // @ts-expect-error [FEI-5003] - TS2339 - Property '_movables' does not exist on type 'Graphie'.
349
+ // @ts-expect-error - TS2339 - Property '_movables' does not exist on type 'Graphie'.
350
350
  const oldMovables = this._movables;
351
351
  const newMovables: Record<string, any> = {};
352
- // @ts-expect-error [FEI-5003] - TS2339 - Property '_movables' does not exist on type 'Graphie'.
352
+ // @ts-expect-error - TS2339 - Property '_movables' does not exist on type 'Graphie'.
353
353
  this._movables = newMovables;
354
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'movables' does not exist on type 'Graphie'.
354
+ // @ts-expect-error - TS2339 - Property 'movables' does not exist on type 'Graphie'.
355
355
  this.movables = {};
356
356
 
357
- // @ts-expect-error [FEI-5003] - TS2345 - Argument of type 'ReactNode' is not assignable to parameter of type 'readonly any[]'.
357
+ // @ts-expect-error - TS2345 - Argument of type 'ReactNode' is not assignable to parameter of type 'readonly any[]'.
358
358
  this._renderMovables(this.props.children, {
359
359
  nextKey: 1,
360
360
  graphie: graphie,
@@ -131,7 +131,7 @@ class HighlightableContent extends React.PureComponent<Props, State> {
131
131
  ) => {
132
132
  const {serializedHighlights} = this.props;
133
133
  const newSerializedHighlights = {...serializedHighlights} as const;
134
- // @ts-expect-error [FEI-5003] - TS2542 - Index signature in type '{ readonly [x: string]: SerializedHighlight; }' only permits reading.
134
+ // @ts-expect-error - TS2542 - Index signature in type '{ readonly [x: string]: SerializedHighlight; }' only permits reading.
135
135
  delete newSerializedHighlights[keyToRemove];
136
136
  this.props.onSerializedHighlightsUpdate(newSerializedHighlights);
137
137
  };
@@ -53,7 +53,7 @@ type State = {
53
53
  class HighlightRenderer extends React.PureComponent<Props, State> {
54
54
  state: State = {
55
55
  cachedHighlightRects: this._computeRects(this.props),
56
- // @ts-expect-error [FEI-5003] - TS2322 - Type '{ cachedHighlightRects: readonly Rect[]; tooltipIsHovered: boolean; }' is not assignable to type 'HighlightRendererState'.
56
+ // @ts-expect-error - TS2322 - Type '{ cachedHighlightRects: readonly Rect[]; tooltipIsHovered: boolean; }' is not assignable to type 'HighlightRendererState'.
57
57
  tooltipIsHovered: false,
58
58
  };
59
59
 
@@ -117,7 +117,7 @@ function addClientRectsForText(
117
117
  mutableRects: Array<Rect>,
118
118
  ): void {
119
119
  const parentElement = textNode.parentElement;
120
- // @ts-expect-error [FEI-5003] - TS2345 - Argument of type 'HTMLElement | null' is not assignable to parameter of type 'Element'.
120
+ // @ts-expect-error - TS2345 - Argument of type 'HTMLElement | null' is not assignable to parameter of type 'Element'.
121
121
  const computedStyle = window.getComputedStyle(parentElement);
122
122
 
123
123
  // NOTE(mdr): I'm not sure how computed line height works in all contexts
@@ -134,7 +134,7 @@ function addClientRectsForText(
134
134
  ) {
135
135
  const parsedLineHeight = parseFloat(computedStyle.lineHeight);
136
136
  if (!isNaN(parsedLineHeight)) {
137
- // @ts-expect-error [FEI-5003] - TS2322 - Type 'number' is not assignable to type 'null'.
137
+ // @ts-expect-error - TS2322 - Type 'number' is not assignable to type 'null'.
138
138
  lineHeight = parsedLineHeight;
139
139
  }
140
140
  }
@@ -60,7 +60,7 @@ class WordIndexer extends React.PureComponent<Props> {
60
60
  container,
61
61
  NodeFilter.SHOW_TEXT | NodeFilter.SHOW_ELEMENT,
62
62
  () => NodeFilter.FILTER_ACCEPT,
63
- // @ts-expect-error [FEI-5003] - TS2554 - Expected 1-3 arguments, but got 4.
63
+ // @ts-expect-error - TS2554 - Expected 1-3 arguments, but got 4.
64
64
  false,
65
65
  );
66
66
 
@@ -101,7 +101,7 @@ class WordIndexer extends React.PureComponent<Props> {
101
101
  const wordPattern = /\S+/g;
102
102
  let wordMatch;
103
103
  let newTrailingWordRange = null;
104
- // @ts-expect-error [FEI-5003] - TS2345 - Argument of type 'string | null' is not assignable to parameter of type 'string'.
104
+ // @ts-expect-error - TS2345 - Argument of type 'string | null' is not assignable to parameter of type 'string'.
105
105
  while ((wordMatch = wordPattern.exec(text)) !== null) {
106
106
  const startOffset = wordMatch.index;
107
107
  const endOffset = wordMatch.index + wordMatch[0].length;
@@ -121,14 +121,14 @@ class WordIndexer extends React.PureComponent<Props> {
121
121
  } else {
122
122
  // Otherwise, start a new word range here, and add it
123
123
  // to the list.
124
- // @ts-expect-error [FEI-5003] - TS2531 - Object is possibly 'null'.
124
+ // @ts-expect-error - TS2531 - Object is possibly 'null'.
125
125
  range = node.ownerDocument.createRange();
126
126
  range.setStart(node, startOffset);
127
127
  range.setEnd(node, endOffset);
128
128
  index.push(range);
129
129
  }
130
130
 
131
- // @ts-expect-error [FEI-5003] - TS2531 - Object is possibly 'null'.
131
+ // @ts-expect-error - TS2531 - Object is possibly 'null'.
132
132
  if (endOffset === text.length) {
133
133
  newTrailingWordRange = range;
134
134
  }
@@ -1,3 +1,4 @@
1
+ /* eslint-disable @khanacademy/ts-no-error-suppressions */
1
2
  /**
2
3
  * SVG Icon React Component
3
4
  *
@@ -124,7 +125,7 @@ class Icon extends React.Component<Props> {
124
125
  aria-hidden={title ? null : true}
125
126
  className={className}
126
127
  style={style}
127
- // @ts-expect-error [FEI-5003] - TS2322 - Type 'string' is not assignable to type '"auto" | Booleanish | undefined'.
128
+ // @ts-expect-error - TS2322 - Type 'string' is not assignable to type '"auto" | Booleanish | undefined'.
128
129
  focusable={focusable.toString()}
129
130
  width={width + units}
130
131
  height={height + units}
@@ -1,3 +1,4 @@
1
+ /* eslint-disable @khanacademy/ts-no-error-suppressions */
1
2
  /* eslint-disable jsx-a11y/alt-text, react/no-unsafe */
2
3
  // TODO(scottgrant): Enable the alt-text eslint rule above.
3
4
  /**
@@ -124,14 +125,14 @@ class ImageLoader extends React.Component<Props, State> {
124
125
  let onKeyUp = null;
125
126
  let onKeyDown = null;
126
127
  if (imgProps.onClick != null) {
127
- // @ts-expect-error [FEI-5003] - TS2322 - Type '(e: React.KeyboardEvent) => void' is not assignable to type 'null'.
128
+ // @ts-expect-error - TS2322 - Type '(e: React.KeyboardEvent) => void' is not assignable to type 'null'.
128
129
  onKeyUp = (e: React.KeyboardEvent) => {
129
130
  // 13 is enter key, 32 is space key
130
131
  if (e.keyCode === 13 || e.keyCode === 32) {
131
132
  imgProps.onClick && imgProps.onClick(e);
132
133
  }
133
134
  };
134
- // @ts-expect-error [FEI-5003] - TS2322 - Type '(e: React.KeyboardEvent) => void' is not assignable to type 'null'.
135
+ // @ts-expect-error - TS2322 - Type '(e: React.KeyboardEvent) => void' is not assignable to type 'null'.
135
136
  onKeyDown = (e: React.KeyboardEvent) => {
136
137
  // 32 is space key
137
138
  if (e.keyCode === 32) {
@@ -145,9 +146,9 @@ class ImageLoader extends React.Component<Props, State> {
145
146
  return (
146
147
  <img
147
148
  src={staticUrl(src)}
148
- // @ts-expect-error [FEI-5003] - TS2322 - Type 'null' is not assignable to type 'KeyboardEventHandler<HTMLImageElement> | undefined'.
149
+ // @ts-expect-error - TS2322 - Type 'null' is not assignable to type 'KeyboardEventHandler<HTMLImageElement> | undefined'.
149
150
  onKeyUp={onKeyUp}
150
- // @ts-expect-error [FEI-5003] - TS2322 - Type 'null' is not assignable to type 'KeyboardEventHandler<HTMLImageElement> | undefined'.
151
+ // @ts-expect-error - TS2322 - Type 'null' is not assignable to type 'KeyboardEventHandler<HTMLImageElement> | undefined'.
151
152
  onKeyDown={onKeyDown}
152
153
  {...imgProps}
153
154
  />
@@ -231,13 +231,13 @@ class InputWithExamples extends React.Component<Props, State> {
231
231
 
232
232
  focus: () => void = () => {
233
233
  // eslint-disable-next-line react/no-string-refs
234
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'focus' does not exist on type 'ReactInstance'.
234
+ // @ts-expect-error - TS2339 - Property 'focus' does not exist on type 'ReactInstance'.
235
235
  this.refs.input.focus();
236
236
  };
237
237
 
238
238
  blur: () => void = () => {
239
239
  // eslint-disable-next-line react/no-string-refs
240
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'blur' does not exist on type 'ReactInstance'.
240
+ // @ts-expect-error - TS2339 - Property 'blur' does not exist on type 'ReactInstance'.
241
241
  this.refs.input.blur();
242
242
  };
243
243
 
@@ -88,7 +88,7 @@ class Lint extends React.Component<Props, State> {
88
88
  // borrow a timeout approach from learnstorm-dashboard.jsx and set our
89
89
  // state once the component has mounted and we can get what we need.
90
90
  getPosition: () => void = () => {
91
- // @ts-expect-error [FEI-5003] - TS2531 - Object is possibly 'null'. | TS2339 - Property 'getBoundingClientRect' does not exist on type 'Element | Text'.
91
+ // @ts-expect-error - TS2531 - Object is possibly 'null'. | TS2339 - Property 'getBoundingClientRect' does not exist on type 'Element | Text'.
92
92
  const rect = ReactDOM.findDOMNode(this).getBoundingClientRect();
93
93
  // TODO(scottgrant): This is a magic number! We don't know the size
94
94
  // of the tooltip at this point, so we're arbitrarily choosing a
@@ -2,7 +2,6 @@ import {
2
2
  keyTranslator,
3
3
  createMathField,
4
4
  mathQuillInstance,
5
- MathFieldInterface,
6
5
  } from "@khanacademy/math-input";
7
6
  import classNames from "classnames";
8
7
  import $ from "jquery";
@@ -13,6 +12,7 @@ import _ from "underscore";
13
12
  import TexButtons from "./tex-buttons";
14
13
 
15
14
  import type {ButtonSetsType} from "./tex-buttons";
15
+ import type {MathFieldInterface} from "@khanacademy/math-input";
16
16
 
17
17
  type ButtonsVisibleType = "always" | "never" | "focused";
18
18
 
@@ -54,7 +54,7 @@ const customKeyTranslator = {
54
54
 
55
55
  // A WYSIWYG math input that calls `onChange(LaTeX-string)`
56
56
  class MathInput extends React.Component<Props, State> {
57
- // @ts-expect-error [FEI-5003] - TS2564 - Property 'mouseDown' has no initializer and is not definitely assigned in the constructor.
57
+ // @ts-expect-error - TS2564 - Property 'mouseDown' has no initializer and is not definitely assigned in the constructor.
58
58
  mouseDown: boolean;
59
59
  __mathFieldWrapperRef: HTMLSpanElement | null = null;
60
60
  __mathField: MathFieldInterface | null = null;
@@ -97,7 +97,7 @@ class MathInput extends React.Component<Props, State> {
97
97
  };
98
98
 
99
99
  handleMouseDown: (arg1: MouseEvent) => void = (event) => {
100
- // @ts-expect-error [FEI-5003] - TS2531 - Object is possibly 'null'. | TS2345 - Argument of type 'EventTarget | null' is not assignable to parameter of type 'Node | null'.
100
+ // @ts-expect-error - TS2531 - Object is possibly 'null'. | TS2345 - Argument of type 'EventTarget | null' is not assignable to parameter of type 'Node | null'.
101
101
  const focused = ReactDOM.findDOMNode(this).contains(event.target);
102
102
  this.mouseDown = focused;
103
103
  if (!focused) {
@@ -121,7 +121,7 @@ class MathInput extends React.Component<Props, State> {
121
121
  // close (blur) the button group in order to focus on next page element.
122
122
  if (
123
123
  !this.mouseDown &&
124
- // @ts-expect-error [FEI-5003] - TS2531 - Object is possibly 'null'.
124
+ // @ts-expect-error - TS2531 - Object is possibly 'null'.
125
125
  !ReactDOM.findDOMNode(this).contains(e.relatedTarget)
126
126
  ) {
127
127
  this.setState({focused: false});
@@ -260,7 +260,7 @@ class MathInput extends React.Component<Props, State> {
260
260
 
261
261
  let buttons = null;
262
262
  if (this._shouldShowButtons()) {
263
- // @ts-expect-error [FEI-5003] - TS2322 - Type 'Element' is not assignable to type 'null'.
263
+ // @ts-expect-error - TS2322 - Type 'Element' is not assignable to type 'null'.
264
264
  buttons = (
265
265
  <TexButtons
266
266
  sets={this.props.buttonSets}
@@ -113,7 +113,7 @@ class MathOutput extends React.Component<Props, State> {
113
113
  $(document).bind("vclick." + this.state.selectorNamespace, (e) => {
114
114
  // Detect whether the target has our React DOM node as a parent
115
115
  const $closestWidget = $(e.target).closest(
116
- // @ts-expect-error [FEI-5003] - TS2769 - No overload matches this call.
116
+ // @ts-expect-error - TS2769 - No overload matches this call.
117
117
  ReactDOM.findDOMNode(this),
118
118
  );
119
119
  if (!$closestWidget.length) {
@@ -42,7 +42,7 @@ class MultiButtonGroup extends React.Component<Props> {
42
42
  };
43
43
 
44
44
  focus(): boolean {
45
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'focus' does not exist on type 'Element | Text'.
45
+ // @ts-expect-error - TS2339 - Property 'focus' does not exist on type 'Element | Text'.
46
46
  ReactDOM.findDOMNode(this)?.focus();
47
47
  return true;
48
48
  }
@@ -1,3 +1,4 @@
1
+ /* eslint-disable @khanacademy/ts-no-error-suppressions */
1
2
  /* eslint-disable react/sort-comp */
2
3
  import {number as knumber} from "@khanacademy/kmath";
3
4
  import classNames from "classnames";
@@ -88,7 +89,7 @@ class NumberInput extends React.Component<any, any> {
88
89
  onBlur={this._handleBlur}
89
90
  onKeyPress={this._handleBlur}
90
91
  onKeyDown={this._onKeyDown}
91
- // @ts-expect-error [FEI-5003] - TS2322 - Type '(e: TouchEvent) => void' is not assignable to type 'TouchEventHandler<HTMLInputElement>'.
92
+ // @ts-expect-error - TS2322 - Type '(e: TouchEvent) => void' is not assignable to type 'TouchEventHandler<HTMLInputElement>'.
92
93
  onTouchStart={captureScratchpadTouchStart}
93
94
  defaultValue={toNumericString(
94
95
  this.props.value,
@@ -110,14 +111,14 @@ class NumberInput extends React.Component<any, any> {
110
111
  */
111
112
  getValue: () => any = () => {
112
113
  return this.parseInputValue(
113
- // @ts-expect-error [FEI-5003] - TS2531 - Object is possibly 'null'. | TS2339 - Property 'value' does not exist on type 'Element | Text'.
114
+ // @ts-expect-error - TS2531 - Object is possibly 'null'. | TS2339 - Property 'value' does not exist on type 'Element | Text'.
114
115
  ReactDOM.findDOMNode(this.refs.input).value, // eslint-disable-line react/no-string-refs
115
116
  );
116
117
  };
117
118
 
118
119
  /* Return the current string value of this input */
119
120
  getStringValue: () => string = () => {
120
- // @ts-expect-error [FEI-5003] - TS2531 - Object is possibly 'null'. | TS2339 - Property 'value' does not exist on type 'Element | Text'.
121
+ // @ts-expect-error - TS2531 - Object is possibly 'null'. | TS2339 - Property 'value' does not exist on type 'Element | Text'.
121
122
  return ReactDOM.findDOMNode(this.refs.input).value.toString(); // eslint-disable-line react/no-string-refs
122
123
  };
123
124
 
@@ -132,13 +133,13 @@ class NumberInput extends React.Component<any, any> {
132
133
 
133
134
  /* Set text input focus to this input */
134
135
  focus: () => void = () => {
135
- // @ts-expect-error [FEI-5003] - TS2531 - Object is possibly 'null'. | TS2339 - Property 'focus' does not exist on type 'Element | Text'.
136
+ // @ts-expect-error - TS2531 - Object is possibly 'null'. | TS2339 - Property 'focus' does not exist on type 'Element | Text'.
136
137
  ReactDOM.findDOMNode(this.refs.input).focus(); // eslint-disable-line react/no-string-refs
137
138
  this._handleFocus();
138
139
  };
139
140
 
140
141
  blur: () => void = () => {
141
- // @ts-expect-error [FEI-5003] - TS2531 - Object is possibly 'null'. | TS2339 - Property 'blur' does not exist on type 'Element | Text'.
142
+ // @ts-expect-error - TS2531 - Object is possibly 'null'. | TS2339 - Property 'blur' does not exist on type 'Element | Text'.
142
143
  ReactDOM.findDOMNode(this.refs.input).blur(); // eslint-disable-line react/no-string-refs
143
144
  this._handleBlur();
144
145
  };
@@ -147,7 +148,7 @@ class NumberInput extends React.Component<any, any> {
147
148
  selectionStart,
148
149
  selectionEnd,
149
150
  ) => {
150
- // @ts-expect-error [FEI-5003] - TS2531 - Object is possibly 'null'. | TS2339 - Property 'setSelectionRange' does not exist on type 'Element | Text'.
151
+ // @ts-expect-error - TS2531 - Object is possibly 'null'. | TS2339 - Property 'setSelectionRange' does not exist on type 'Element | Text'.
151
152
  ReactDOM.findDOMNode(this).setSelectionRange(
152
153
  selectionStart,
153
154
  selectionEnd,
@@ -155,12 +156,12 @@ class NumberInput extends React.Component<any, any> {
155
156
  };
156
157
 
157
158
  getSelectionStart: () => number = () => {
158
- // @ts-expect-error [FEI-5003] - TS2531 - Object is possibly 'null'. | TS2339 - Property 'selectionStart' does not exist on type 'Element | Text'.
159
+ // @ts-expect-error - TS2531 - Object is possibly 'null'. | TS2339 - Property 'selectionStart' does not exist on type 'Element | Text'.
159
160
  return ReactDOM.findDOMNode(this).selectionStart;
160
161
  };
161
162
 
162
163
  getSelectionEnd: () => number = () => {
163
- // @ts-expect-error [FEI-5003] - TS2531 - Object is possibly 'null'. | TS2339 - Property 'selectionEnd' does not exist on type 'Element | Text'.
164
+ // @ts-expect-error - TS2531 - Object is possibly 'null'. | TS2339 - Property 'selectionEnd' does not exist on type 'Element | Text'.
164
165
  return ReactDOM.findDOMNode(this).selectionEnd;
165
166
  };
166
167
 
@@ -197,7 +198,7 @@ class NumberInput extends React.Component<any, any> {
197
198
 
198
199
  _handleBlur: (e?: React.FocusEvent | React.KeyboardEvent) => void = (e) => {
199
200
  // Only continue on blur or "enter"
200
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'keyCode' does not exist on type 'KeyboardEvent<Element> | FocusEvent<Element, Element>'.
201
+ // @ts-expect-error - TS2339 - Property 'keyCode' does not exist on type 'KeyboardEvent<Element> | FocusEvent<Element, Element>'.
201
202
  if (e && e.type === "keypress" && e.keyCode !== 13) {
202
203
  return;
203
204
  }
@@ -238,7 +239,7 @@ class NumberInput extends React.Component<any, any> {
238
239
 
239
240
  _setValue: (arg1: number, arg2: MathFormat) => void = (val, format) => {
240
241
  // eslint-disable-next-line react/no-string-refs
241
- // @ts-expect-error [FEI-5003] - TS2769 - No overload matches this call. | TS2339 - Property 'val' does not exist on type 'JQueryStatic'.
242
+ // @ts-expect-error - TS2769 - No overload matches this call. | TS2339 - Property 'val' does not exist on type 'JQueryStatic'.
242
243
  $(ReactDOM.findDOMNode(this.refs.input)).val(
243
244
  toNumericString(val, format),
244
245
  );
@@ -33,7 +33,7 @@ const PropCheckBox: any = createReactClass({
33
33
  const propName = _.find(
34
34
  _.keys(this.props),
35
35
  function (localPropName) {
36
- // @ts-expect-error [FEI-5003] - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
36
+ // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
37
37
  return !_.has(this.DEFAULT_PROPS, localPropName);
38
38
  },
39
39
  this,
@@ -30,12 +30,12 @@ export default class SimpleKeypadInput extends React.Component<any> {
30
30
  }
31
31
 
32
32
  focus() {
33
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'focus' does not exist on type 'ReactInstance'.
33
+ // @ts-expect-error - TS2339 - Property 'focus' does not exist on type 'ReactInstance'.
34
34
  this.refs.input.focus(); // eslint-disable-line react/no-string-refs
35
35
  }
36
36
 
37
37
  blur() {
38
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'blur' does not exist on type 'ReactInstance'.
38
+ // @ts-expect-error - TS2339 - Property 'blur' does not exist on type 'ReactInstance'.
39
39
  this.refs.input.blur(); // eslint-disable-line react/no-string-refs
40
40
  }
41
41
 
@@ -52,7 +52,7 @@ export default class SimpleKeypadInput extends React.Component<any> {
52
52
  const {keypadElement, onFocus, value, ...rest} = _this.props;
53
53
 
54
54
  return (
55
- // @ts-expect-error [FEI-5003] - TS2769 - No overload matches this call.
55
+ // @ts-expect-error - TS2769 - No overload matches this call.
56
56
  <KeypadInput
57
57
  // eslint-disable-next-line react/no-string-refs
58
58
  ref="input"
@@ -80,7 +80,7 @@ export default class SimpleKeypadInput extends React.Component<any> {
80
80
  }
81
81
  }
82
82
 
83
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'propTypes' does not exist on type 'typeof SimpleKeypadInput'.
83
+ // @ts-expect-error - TS2339 - Property 'propTypes' does not exist on type 'typeof SimpleKeypadInput'.
84
84
  SimpleKeypadInput.propTypes = {
85
85
  keypadElement: keypadElementPropType,
86
86
  onFocus: PropTypes.func,