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