@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
package/src/util/math.ts CHANGED
@@ -38,7 +38,7 @@ const KhanMath = {
38
38
  // TODO(kevinb): rewrite using rest args instead of arguments
39
39
  // eslint-disable-next-line prefer-rest-params
40
40
  const rest = [].slice.call(arguments, 1);
41
- // @ts-expect-error [FEI-5003] - TS2556 - A spread argument must either have a tuple type or be passed to a rest parameter.
41
+ // @ts-expect-error - TS2556 - A spread argument must either have a tuple type or be passed to a rest parameter.
42
42
  return KhanMath.getGCD(a, KhanMath.getGCD(...rest));
43
43
  }
44
44
  let mod;
@@ -60,7 +60,7 @@ const KhanMath = {
60
60
  // TODO(kevinb): rewrite using rest args instead of arguments
61
61
  // eslint-disable-next-line prefer-rest-params
62
62
  const rest = [].slice.call(arguments, 1);
63
- // @ts-expect-error [FEI-5003] - TS2556 - A spread argument must either have a tuple type or be passed to a rest parameter.
63
+ // @ts-expect-error - TS2556 - A spread argument must either have a tuple type or be passed to a rest parameter.
64
64
  return KhanMath.getLCM(a, KhanMath.getLCM(...rest));
65
65
  }
66
66
  return Math.abs(a * b) / KhanMath.getGCD(a, b);
@@ -91,7 +91,7 @@ const KhanMath = {
91
91
 
92
92
  return true;
93
93
  },
94
- // @ts-expect-error [FEI-5003] - TS2366 - Function lacks ending return statement and return type does not include 'undefined'.
94
+ // @ts-expect-error - TS2366 - Function lacks ending return statement and return type does not include 'undefined'.
95
95
  getPrimeFactorization: function (number: number): ReadonlyArray<number> {
96
96
  if (number === 1) {
97
97
  return [];
@@ -121,7 +121,7 @@ const KhanMath = {
121
121
  // Round a number to a certain number of decimal places
122
122
  roundTo: function (precision: number, num: number): number {
123
123
  const factor = Math.pow(10, precision).toFixed(5);
124
- // @ts-expect-error [FEI-5003] - TS2345 - Argument of type 'string' is not assignable to parameter of type 'number'. | TS2363 - The right-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type. | TS2363 - The right-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type.
124
+ // @ts-expect-error - TS2345 - Argument of type 'string' is not assignable to parameter of type 'number'. | TS2363 - The right-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type. | TS2363 - The right-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type.
125
125
  return Math.round((num * factor).toFixed(5)) / factor;
126
126
  },
127
127
 
@@ -8,7 +8,7 @@ export default function render<ElementType extends React.ElementType>(
8
8
  callback?: () => void,
9
9
  ): React.ElementRef<ElementType> {
10
10
  // TODO(LP-11406): Replace this, or callers, with React Portal
11
- // @ts-expect-error [FEI-5003] - TS2322 - Type 'void' is not assignable to type 'ElementRef<ElementType>'.
11
+ // @ts-expect-error - TS2322 - Type 'void' is not assignable to type 'ElementRef<ElementType>'.
12
12
  // eslint-disable-next-line no-restricted-syntax
13
13
  return ReactDOM.render(
14
14
  /**
@@ -4,7 +4,7 @@
4
4
 
5
5
  // Polyfill scrollTo if it doesn't exist
6
6
  if (typeof HTMLElement !== "undefined" && !HTMLElement.prototype.scrollTo) {
7
- // @ts-expect-error [FEI-5003] - TS2322 - Type '(left: number, top: any) => void' is not assignable to type '{ (options?: ScrollToOptions | undefined): void; (x: number, y: number): void; }'.
7
+ // @ts-expect-error - TS2322 - Type '(left: number, top: any) => void' is not assignable to type '{ (options?: ScrollToOptions | undefined): void; (x: number, y: number): void; }'.
8
8
  HTMLElement.prototype.scrollTo = function (left, top: any) {
9
9
  this.scrollLeft = left;
10
10
  this.scrollTop = top;
@@ -44,7 +44,7 @@ const scrollElementToOffset = (
44
44
  const startPosition =
45
45
  elementOrWindow === window
46
46
  ? window.pageYOffset
47
- : // @ts-expect-error [FEI-5003] - TS2551 - Property 'scrollTop' does not exist on type 'HTMLElement | Window'. Did you mean 'scrollTo'?
47
+ : // @ts-expect-error - TS2551 - Property 'scrollTop' does not exist on type 'HTMLElement | Window'. Did you mean 'scrollTo'?
48
48
  elementOrWindow.scrollTop;
49
49
  const endPosition = offset;
50
50
  const scrollDistance = endPosition - startPosition;
package/src/util/tex.ts CHANGED
@@ -79,11 +79,11 @@ export default {
79
79
  if (text == null) {
80
80
  if ($elem.attr("data-math-formula")) {
81
81
  // The old typeset formula
82
- // @ts-expect-error [FEI-5003] - TS2322 - Type 'string | undefined' is not assignable to type 'string'.
82
+ // @ts-expect-error - TS2322 - Type 'string | undefined' is not assignable to type 'string'.
83
83
  text = $elem.attr("data-math-formula");
84
84
  } else if (script) {
85
85
  // The contents of the <script> tag
86
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'text' does not exist on type 'HTMLElement'.
86
+ // @ts-expect-error - TS2339 - Property 'text' does not exist on type 'HTMLElement'.
87
87
  text = script.text || script.textContent;
88
88
  }
89
89
  }
@@ -130,7 +130,7 @@ export default {
130
130
  }
131
131
  }
132
132
 
133
- // @ts-expect-error [FEI-5003] - TS2769 - No overload matches this call.
133
+ // @ts-expect-error - TS2769 - No overload matches this call.
134
134
  $elem.text($elem.attr("data-math-formula"));
135
135
  $elem.attr("data-math-formula", null);
136
136
  $elem.attr("data-math-type", null);
package/src/util.ts CHANGED
@@ -58,9 +58,9 @@ const nestedMap = function <T, M>(
58
58
  context: unknown,
59
59
  ): M | ReadonlyArray<M> {
60
60
  if (Array.isArray(children)) {
61
- // @ts-expect-error [FEI-5003] - TS2322 - Type '(M | readonly M[])[]' is not assignable to type 'M | readonly M[]'.
61
+ // @ts-expect-error - TS2322 - Type '(M | readonly M[])[]' is not assignable to type 'M | readonly M[]'.
62
62
  return _.map(children, function (child) {
63
- // @ts-expect-error [FEI-5003] - TS2554 - Expected 3 arguments, but got 2.
63
+ // @ts-expect-error - TS2554 - Expected 3 arguments, but got 2.
64
64
  return nestedMap(child, func);
65
65
  });
66
66
  }
@@ -149,9 +149,9 @@ function shuffle<T>(
149
149
  const newEnd = Math.floor(random() * top),
150
150
  temp = shuffled[newEnd];
151
151
 
152
- // @ts-expect-error [FEI-5003] - TS2542 - Index signature in type 'readonly T[]' only permits reading.
152
+ // @ts-expect-error - TS2542 - Index signature in type 'readonly T[]' only permits reading.
153
153
  shuffled[newEnd] = shuffled[top - 1];
154
- // @ts-expect-error [FEI-5003] - TS2542 - Index signature in type 'readonly T[]' only permits reading.
154
+ // @ts-expect-error - TS2542 - Index signature in type 'readonly T[]' only permits reading.
155
155
  shuffled[top - 1] = temp;
156
156
  }
157
157
  } while (ensurePermuted && _.isEqual(array, shuffled));
@@ -179,14 +179,14 @@ const split: (str: string, r: RegExp) => ReadonlyArray<string> = "x".split(
179
179
 
180
180
  while ((match = r.exec(str))) {
181
181
  const m = match;
182
- // @ts-expect-error [FEI-5003] - TS2345 - Argument of type 'string' is not assignable to parameter of type 'never'.
182
+ // @ts-expect-error - TS2345 - Argument of type 'string' is not assignable to parameter of type 'never'.
183
183
  output.push(str.slice(lastIndex, m.index));
184
- // @ts-expect-error [FEI-5003] - TS2345 - Argument of type 'any' is not assignable to parameter of type 'never'.
184
+ // @ts-expect-error - TS2345 - Argument of type 'any' is not assignable to parameter of type 'never'.
185
185
  output.push(...m.slice(1));
186
186
  lastIndex = m.index + m[0].length;
187
187
  }
188
188
 
189
- // @ts-expect-error [FEI-5003] - TS2345 - Argument of type 'string' is not assignable to parameter of type 'never'.
189
+ // @ts-expect-error - TS2345 - Argument of type 'string' is not assignable to parameter of type 'never'.
190
190
  output.push(str.slice(lastIndex));
191
191
  return output;
192
192
  };
@@ -287,7 +287,7 @@ function keScoreFromPerseusScore(
287
287
  };
288
288
  }
289
289
  throw new PerseusError(
290
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'type' does not exist on type 'never'.
290
+ // @ts-expect-error - TS2339 - Property 'type' does not exist on type 'never'.
291
291
  "Invalid score type: " + score.type,
292
292
  Errors.InvalidInput,
293
293
  {
@@ -375,7 +375,7 @@ function getGridStep(
375
375
  step: Coordinates,
376
376
  boxSize: number,
377
377
  ): Coordinates {
378
- // @ts-expect-error [FEI-5003] - TS2322 - Type '(number | null | undefined)[]' is not assignable to type 'Coordinates'.
378
+ // @ts-expect-error - TS2322 - Type '(number | null | undefined)[]' is not assignable to type 'Coordinates'.
379
379
  return _(2).times(function (i) {
380
380
  const scale = scaleFromExtent(range[i], boxSize);
381
381
  const gridStep = gridStepFromTickStep(step[i], scale);
@@ -542,9 +542,9 @@ const DeprecationMixin: any = {
542
542
  _.each(
543
543
  this.deprecatedProps,
544
544
  function (func, prop) {
545
- // @ts-expect-error [FEI-5003] - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
545
+ // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
546
546
  if (_.has(this.props, prop)) {
547
- // @ts-expect-error [FEI-5003] - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
547
+ // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
548
548
  _.extend(newProps, func(this.props));
549
549
  }
550
550
  },
@@ -605,11 +605,11 @@ function deepEq<T>(x: T, y: T): boolean {
605
605
  return (
606
606
  x === y ||
607
607
  (_.all(x, function (v, k) {
608
- // @ts-expect-error [FEI-5003] - TS2536 - Type 'CollectionKey<T>' cannot be used to index type 'T'.
608
+ // @ts-expect-error - TS2536 - Type 'CollectionKey<T>' cannot be used to index type 'T'.
609
609
  return deepEq(y[k], v);
610
610
  }) &&
611
611
  _.all(y, function (v, k) {
612
- // @ts-expect-error [FEI-5003] - TS2536 - Type 'CollectionKey<T>' cannot be used to index type 'T'.
612
+ // @ts-expect-error - TS2536 - Type 'CollectionKey<T>' cannot be used to index type 'T'.
613
613
  return deepEq(x[k], v);
614
614
  }))
615
615
  );
@@ -813,9 +813,9 @@ const supportsPassiveEvents: () => boolean = () => {
813
813
  supportsPassive = true;
814
814
  },
815
815
  });
816
- // @ts-expect-error [FEI-5003] - TS2769 - No overload matches this call.
816
+ // @ts-expect-error - TS2769 - No overload matches this call.
817
817
  window.addEventListener("testPassive", null, opts);
818
- // @ts-expect-error [FEI-5003] - TS2769 - No overload matches this call.
818
+ // @ts-expect-error - TS2769 - No overload matches this call.
819
819
  window.removeEventListener("testPassive", null, opts);
820
820
  } catch (e: any) {
821
821
  // Intentionally left empty!
@@ -45,7 +45,7 @@ class WidgetContainer extends React.Component<Props, State> {
45
45
  // Only relay size class changes for mobile right now. We may want to
46
46
  // this for desktop as well at some point in the future.
47
47
  if (this.state.widgetProps.apiOptions.isMobile) {
48
- // @ts-expect-error [FEI-5003] - TS2531 - Object is possibly 'null'. | TS2339 - Property 'offsetWidth' does not exist on type 'Element | Text'.
48
+ // @ts-expect-error - TS2531 - Object is possibly 'null'. | TS2339 - Property 'offsetWidth' does not exist on type 'Element | Text'.
49
49
  const containerWidth = ReactDOM.findDOMNode(this).offsetWidth;
50
50
 
51
51
  // NOTE(benkomalo): in the common case, this won't change anything.
@@ -33,13 +33,13 @@ const TestKeypadContextWrapper = (props: Props): React.ReactElement => {
33
33
  return (
34
34
  <KeypadContext.Provider
35
35
  value={{
36
- // @ts-expect-error [FEI-5003] - TS2322 - Type 'Dispatch<SetStateAction<HTMLElement>>' is not assignable to type '(scrollableElement?: HTMLElement | null | undefined) => void'.
36
+ // @ts-expect-error - TS2322 - Type 'Dispatch<SetStateAction<HTMLElement>>' is not assignable to type '(scrollableElement?: HTMLElement | null | undefined) => void'.
37
37
  setKeypadElement,
38
38
  keypadElement,
39
- // @ts-expect-error [FEI-5003] - TS2322 - Type 'Dispatch<SetStateAction<HTMLElement>>' is not assignable to type '(scrollableElement?: HTMLElement | null | undefined) => void'.
39
+ // @ts-expect-error - TS2322 - Type 'Dispatch<SetStateAction<HTMLElement>>' is not assignable to type '(scrollableElement?: HTMLElement | null | undefined) => void'.
40
40
  setRenderer,
41
41
  renderer,
42
- // @ts-expect-error [FEI-5003] - TS2322 - Type 'Dispatch<SetStateAction<HTMLElement>>' is not assignable to type '(scrollableElement?: HTMLElement | null | undefined) => void'.
42
+ // @ts-expect-error - TS2322 - Type 'Dispatch<SetStateAction<HTMLElement>>' is not assignable to type '(scrollableElement?: HTMLElement | null | undefined) => void'.
43
43
  setScrollableElement,
44
44
  scrollableElement,
45
45
  }}
@@ -70,7 +70,7 @@ export const percentageProblem: PerseusRenderer = {
70
70
  content: "$5008 \\div 4 =$ [[\u2603 numeric-input 1]] ",
71
71
  images: {},
72
72
  widgets: {
73
- // @ts-expect-error [FEI-5003] - TS2352 - Conversion of type '{ graded: true; version: { major: number; minor: number; }; static: false; type: "numeric-input"; options: { coefficient: false; static: false; answers: { status: string; maxError: null; strict: false; value: string; simplify: string; message: string; }[]; labelText: string; size: string; }; alignment: string; }' to type 'NumericInputWidget' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first.
73
+ // @ts-expect-error - TS2352 - Conversion of type '{ graded: true; version: { major: number; minor: number; }; static: false; type: "numeric-input"; options: { coefficient: false; static: false; answers: { status: string; maxError: null; strict: false; value: string; simplify: string; message: string; }[]; labelText: string; size: string; }; alignment: string; }' to type 'NumericInputWidget' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first.
74
74
  "numeric-input 1": {
75
75
  graded: true,
76
76
  version: {
@@ -60,7 +60,7 @@ exports[`video widget should snapshot on mobile: first mobile render 1`] = `
60
60
  class="default_xu2jcg-o_O-inlineStyles_sc01dy"
61
61
  />
62
62
  <a
63
- class="shared_htyo3s-o_O-resting_nelfll visited-no-recolor"
63
+ class="shared_17fj7pd-o_O-resting_nelfll visited-no-recolor"
64
64
  href="/transcript/videoNotFound"
65
65
  rel="noopener noreferrer"
66
66
  target="_blank"
@@ -136,7 +136,7 @@ exports[`video widget should snapshot: first render 1`] = `
136
136
  class="default_xu2jcg-o_O-inlineStyles_sc01dy"
137
137
  />
138
138
  <a
139
- class="shared_htyo3s-o_O-resting_nelfll visited-no-recolor"
139
+ class="shared_17fj7pd-o_O-resting_nelfll visited-no-recolor"
140
140
  href="/transcript/videoNotFound"
141
141
  rel="noopener noreferrer"
142
142
  target="_blank"
@@ -5,7 +5,6 @@ import "@testing-library/jest-dom";
5
5
 
6
6
  import {testDependencies} from "../../../../../testing/test-dependencies";
7
7
  import * as Dependencies from "../../dependencies";
8
- import {PerseusItem} from "../../perseus-types";
9
8
  import {
10
9
  expressionItem2,
11
10
  expressionItem3,
@@ -15,6 +14,8 @@ import {Expression} from "../expression";
15
14
 
16
15
  import {renderQuestion} from "./renderQuestion";
17
16
 
17
+ import type {PerseusItem} from "../../perseus-types";
18
+
18
19
  const assertComplete = (itemData: PerseusItem, input, isCorrect: boolean) => {
19
20
  const {renderer} = renderQuestion(itemData.question);
20
21
  userEvent.type(screen.getByRole("textbox"), input);
@@ -334,7 +335,7 @@ describe("interaction", () => {
334
335
  expect(score.type).toBe("points");
335
336
  // Score.total doesn't exist if the input is invalid
336
337
  // In this case we know that it'll be valid so we can assert directly
337
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'earned' does not exist on type 'PerseusScore'. | TS2339 - Property 'total' does not exist on type 'PerseusScore'.
338
+ // @ts-expect-error - TS2339 - Property 'earned' does not exist on type 'PerseusScore'. | TS2339 - Property 'total' does not exist on type 'PerseusScore'.
338
339
  expect(score.earned).toBe(score.total);
339
340
  });
340
341
 
@@ -350,7 +351,7 @@ describe("interaction", () => {
350
351
  // Assert
351
352
  // Score.total doesn't exist if the input is invalid
352
353
  // In this case we know that it'll be valid so we can assert directly
353
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'total' does not exist on type 'PerseusScore'.
354
+ // @ts-expect-error - TS2339 - Property 'total' does not exist on type 'PerseusScore'.
354
355
  expect(score.total).toBe(1);
355
356
  });
356
357
  });
@@ -43,12 +43,12 @@ describe("Grapher widget", () => {
43
43
  cy.get(POINTS)
44
44
  .eq(0)
45
45
  .should("exist")
46
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'dragTo' does not exist on type 'Chainable<JQuery<HTMLElement>>'.
46
+ // @ts-expect-error - TS2339 - Property 'dragTo' does not exist on type 'Chainable<JQuery<HTMLElement>>'.
47
47
  .dragTo({x: left + 360, y: top + 180});
48
48
  cy.get(POINTS)
49
49
  .eq(1)
50
50
  .should("exist")
51
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'dragTo' does not exist on type 'Chainable<JQuery<HTMLElement>>'.
51
+ // @ts-expect-error - TS2339 - Property 'dragTo' does not exist on type 'Chainable<JQuery<HTMLElement>>'.
52
52
  .dragTo({x: left + 340, y: top + 140});
53
53
  });
54
54
 
@@ -78,12 +78,12 @@ describe("Grapher widget", () => {
78
78
  cy.get(POINTS)
79
79
  .eq(0)
80
80
  .should("exist")
81
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'dragTo' does not exist on type 'Chainable<JQuery<HTMLElement>>'.
81
+ // @ts-expect-error - TS2339 - Property 'dragTo' does not exist on type 'Chainable<JQuery<HTMLElement>>'.
82
82
  .dragTo({x: left + 200, y: top + 200});
83
83
  cy.get(POINTS)
84
84
  .eq(1)
85
85
  .should("exist")
86
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'dragTo' does not exist on type 'Chainable<JQuery<HTMLElement>>'.
86
+ // @ts-expect-error - TS2339 - Property 'dragTo' does not exist on type 'Chainable<JQuery<HTMLElement>>'.
87
87
  .dragTo({x: left + 100, y: top + 100});
88
88
  });
89
89
 
@@ -113,19 +113,19 @@ describe("Grapher widget", () => {
113
113
  cy.get(LINES)
114
114
  .eq(0)
115
115
  .should("exist")
116
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'dragTo' does not exist on type 'Chainable<JQuery<HTMLElement>>'.
116
+ // @ts-expect-error - TS2339 - Property 'dragTo' does not exist on type 'Chainable<JQuery<HTMLElement>>'.
117
117
  .dragTo({x: left + 200, y: top + 75});
118
118
  // [0, 3],
119
119
  // [1, -1],
120
120
  cy.get(POINTS)
121
121
  .eq(0)
122
122
  .should("exist")
123
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'dragTo' does not exist on type 'Chainable<JQuery<HTMLElement>>'.
123
+ // @ts-expect-error - TS2339 - Property 'dragTo' does not exist on type 'Chainable<JQuery<HTMLElement>>'.
124
124
  .dragTo({x: left + 200, y: top + 120});
125
125
  cy.get(POINTS)
126
126
  .eq(1)
127
127
  .should("exist")
128
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'dragTo' does not exist on type 'Chainable<JQuery<HTMLElement>>'.
128
+ // @ts-expect-error - TS2339 - Property 'dragTo' does not exist on type 'Chainable<JQuery<HTMLElement>>'.
129
129
  .dragTo({x: left + 225, y: top + 225});
130
130
  });
131
131
 
@@ -153,17 +153,17 @@ describe("Grapher widget", () => {
153
153
  cy.get(LINES)
154
154
  .eq(0)
155
155
  .should("exist")
156
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'dragTo' does not exist on type 'Chainable<JQuery<HTMLElement>>'.
156
+ // @ts-expect-error - TS2339 - Property 'dragTo' does not exist on type 'Chainable<JQuery<HTMLElement>>'.
157
157
  .dragTo({x: left + 200, y: top + 200});
158
158
  cy.get(POINTS)
159
159
  .eq(0)
160
160
  .should("exist")
161
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'dragTo' does not exist on type 'Chainable<JQuery<HTMLElement>>'.
161
+ // @ts-expect-error - TS2339 - Property 'dragTo' does not exist on type 'Chainable<JQuery<HTMLElement>>'.
162
162
  .dragTo({x: left + 25, y: top + 25});
163
163
  cy.get(POINTS)
164
164
  .eq(1)
165
165
  .should("exist")
166
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'dragTo' does not exist on type 'Chainable<JQuery<HTMLElement>>'.
166
+ // @ts-expect-error - TS2339 - Property 'dragTo' does not exist on type 'Chainable<JQuery<HTMLElement>>'.
167
167
  .dragTo({x: left + 200, y: top + 200});
168
168
  });
169
169
 
@@ -193,12 +193,12 @@ describe("Grapher widget", () => {
193
193
  cy.get(POINTS)
194
194
  .eq(0)
195
195
  .should("exist")
196
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'dragTo' does not exist on type 'Chainable<JQuery<HTMLElement>>'.
196
+ // @ts-expect-error - TS2339 - Property 'dragTo' does not exist on type 'Chainable<JQuery<HTMLElement>>'.
197
197
  .dragTo({x: left + 200, y: top + 100});
198
198
  cy.get(POINTS)
199
199
  .eq(1)
200
200
  .should("exist")
201
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'dragTo' does not exist on type 'Chainable<JQuery<HTMLElement>>'.
201
+ // @ts-expect-error - TS2339 - Property 'dragTo' does not exist on type 'Chainable<JQuery<HTMLElement>>'.
202
202
  .dragTo({x: left + 260, y: top + 200});
203
203
  });
204
204
 
@@ -226,12 +226,12 @@ describe("Grapher widget", () => {
226
226
  cy.get(POINTS)
227
227
  .eq(0)
228
228
  .should("exist")
229
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'dragTo' does not exist on type 'Chainable<JQuery<HTMLElement>>'.
229
+ // @ts-expect-error - TS2339 - Property 'dragTo' does not exist on type 'Chainable<JQuery<HTMLElement>>'.
230
230
  .dragTo({x: left + 100, y: top + 100});
231
231
  cy.get(POINTS)
232
232
  .eq(1)
233
233
  .should("exist")
234
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'dragTo' does not exist on type 'Chainable<JQuery<HTMLElement>>'.
234
+ // @ts-expect-error - TS2339 - Property 'dragTo' does not exist on type 'Chainable<JQuery<HTMLElement>>'.
235
235
  .dragTo({x: left + 300, y: top + 300});
236
236
  });
237
237
 
@@ -262,7 +262,7 @@ describe("Grapher widget", () => {
262
262
  cy.get(LINES)
263
263
  .eq(0)
264
264
  .should("exist")
265
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'dragTo' does not exist on type 'Chainable<JQuery<HTMLElement>>'.
265
+ // @ts-expect-error - TS2339 - Property 'dragTo' does not exist on type 'Chainable<JQuery<HTMLElement>>'.
266
266
  .dragTo({
267
267
  x: left + 50,
268
268
  y: top + 200, // It's a vertical line, so this doesn't matter much
@@ -271,7 +271,7 @@ describe("Grapher widget", () => {
271
271
  cy.get(POINTS)
272
272
  .eq(0)
273
273
  .should("exist")
274
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'dragTo' does not exist on type 'Chainable<JQuery<HTMLElement>>'.
274
+ // @ts-expect-error - TS2339 - Property 'dragTo' does not exist on type 'Chainable<JQuery<HTMLElement>>'.
275
275
  .dragTo({
276
276
  x: left + 100,
277
277
  y: top + 275,
@@ -280,7 +280,7 @@ describe("Grapher widget", () => {
280
280
  cy.get(POINTS)
281
281
  .eq(1)
282
282
  .should("exist")
283
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'dragTo' does not exist on type 'Chainable<JQuery<HTMLElement>>'.
283
+ // @ts-expect-error - TS2339 - Property 'dragTo' does not exist on type 'Chainable<JQuery<HTMLElement>>'.
284
284
  .dragTo({
285
285
  x: left + 75,
286
286
  y: top + 375,
@@ -312,7 +312,7 @@ describe("Grapher widget", () => {
312
312
  cy.get(LINES)
313
313
  .eq(0)
314
314
  .should("exist")
315
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'dragTo' does not exist on type 'Chainable<JQuery<HTMLElement>>'.
315
+ // @ts-expect-error - TS2339 - Property 'dragTo' does not exist on type 'Chainable<JQuery<HTMLElement>>'.
316
316
  .dragTo({
317
317
  x: left + 50,
318
318
  y: top + 200, // It's a vertical line, so this doesn't matter much
@@ -321,7 +321,7 @@ describe("Grapher widget", () => {
321
321
  cy.get(POINTS)
322
322
  .eq(0)
323
323
  .should("exist")
324
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'dragTo' does not exist on type 'Chainable<JQuery<HTMLElement>>'.
324
+ // @ts-expect-error - TS2339 - Property 'dragTo' does not exist on type 'Chainable<JQuery<HTMLElement>>'.
325
325
  .dragTo({
326
326
  x: left + 225,
327
327
  y: top + 125,
@@ -330,7 +330,7 @@ describe("Grapher widget", () => {
330
330
  cy.get(POINTS)
331
331
  .eq(1)
332
332
  .should("exist")
333
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'dragTo' does not exist on type 'Chainable<JQuery<HTMLElement>>'.
333
+ // @ts-expect-error - TS2339 - Property 'dragTo' does not exist on type 'Chainable<JQuery<HTMLElement>>'.
334
334
  .dragTo({
335
335
  x: left + 100,
336
336
  y: top + 300,
@@ -364,13 +364,13 @@ describe("Grapher widget", () => {
364
364
  cy.get(POINTS)
365
365
  .eq(0)
366
366
  .should("exist")
367
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'dragTo' does not exist on type 'Chainable<JQuery<HTMLElement>>'.
367
+ // @ts-expect-error - TS2339 - Property 'dragTo' does not exist on type 'Chainable<JQuery<HTMLElement>>'.
368
368
  .dragTo({x: left + 260, y: top + 360});
369
369
  // Move point B
370
370
  cy.get(POINTS)
371
371
  .eq(1)
372
372
  .should("exist")
373
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'dragTo' does not exist on type 'Chainable<JQuery<HTMLElement>>'.
373
+ // @ts-expect-error - TS2339 - Property 'dragTo' does not exist on type 'Chainable<JQuery<HTMLElement>>'.
374
374
  .dragTo({x: left + 220, y: top + 200});
375
375
  });
376
376
 
@@ -399,13 +399,13 @@ describe("Grapher widget", () => {
399
399
  cy.get(POINTS)
400
400
  .eq(0)
401
401
  .should("exist")
402
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'dragTo' does not exist on type 'Chainable<JQuery<HTMLElement>>'.
402
+ // @ts-expect-error - TS2339 - Property 'dragTo' does not exist on type 'Chainable<JQuery<HTMLElement>>'.
403
403
  .dragTo({x: left + 50, y: top + 50});
404
404
  // Move point B
405
405
  cy.get(POINTS)
406
406
  .eq(1)
407
407
  .should("exist")
408
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'dragTo' does not exist on type 'Chainable<JQuery<HTMLElement>>'.
408
+ // @ts-expect-error - TS2339 - Property 'dragTo' does not exist on type 'Chainable<JQuery<HTMLElement>>'.
409
409
  .dragTo({x: left + 200, y: top + 300});
410
410
  });
411
411
 
@@ -436,12 +436,12 @@ describe("Grapher widget", () => {
436
436
  cy.get(POINTS)
437
437
  .eq(0)
438
438
  .should("exist")
439
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'dragTo' does not exist on type 'Chainable<JQuery<HTMLElement>>'.
439
+ // @ts-expect-error - TS2339 - Property 'dragTo' does not exist on type 'Chainable<JQuery<HTMLElement>>'.
440
440
  .dragTo({x: left + 220, y: top + 140});
441
441
  cy.get(POINTS)
442
442
  .eq(1)
443
443
  .should("exist")
444
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'dragTo' does not exist on type 'Chainable<JQuery<HTMLElement>>'.
444
+ // @ts-expect-error - TS2339 - Property 'dragTo' does not exist on type 'Chainable<JQuery<HTMLElement>>'.
445
445
  .dragTo({x: left + 200, y: top + 220});
446
446
  });
447
447
 
@@ -470,12 +470,12 @@ describe("Grapher widget", () => {
470
470
  cy.get(POINTS)
471
471
  .eq(0)
472
472
  .should("exist")
473
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'dragTo' does not exist on type 'Chainable<JQuery<HTMLElement>>'.
473
+ // @ts-expect-error - TS2339 - Property 'dragTo' does not exist on type 'Chainable<JQuery<HTMLElement>>'.
474
474
  .dragTo({x: left + 100, y: top + 140});
475
475
  cy.get(POINTS)
476
476
  .eq(1)
477
477
  .should("exist")
478
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'dragTo' does not exist on type 'Chainable<JQuery<HTMLElement>>'.
478
+ // @ts-expect-error - TS2339 - Property 'dragTo' does not exist on type 'Chainable<JQuery<HTMLElement>>'.
479
479
  .dragTo({x: left + 200, y: top + 220});
480
480
  });
481
481
 
@@ -512,12 +512,12 @@ describe("Grapher widget", () => {
512
512
  cy.get(POINTS)
513
513
  .eq(0)
514
514
  .should("exist")
515
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'dragTo' does not exist on type 'Chainable<JQuery<HTMLElement>>'.
515
+ // @ts-expect-error - TS2339 - Property 'dragTo' does not exist on type 'Chainable<JQuery<HTMLElement>>'.
516
516
  .dragTo({x: left + 220, y: top + 260});
517
517
  cy.get(POINTS)
518
518
  .eq(1)
519
519
  .should("exist")
520
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'dragTo' does not exist on type 'Chainable<JQuery<HTMLElement>>'.
520
+ // @ts-expect-error - TS2339 - Property 'dragTo' does not exist on type 'Chainable<JQuery<HTMLElement>>'.
521
521
  .dragTo({x: left + 200, y: top + 200});
522
522
  });
523
523
 
@@ -552,12 +552,12 @@ describe("Grapher widget", () => {
552
552
  cy.get(POINTS)
553
553
  .eq(0)
554
554
  .should("exist")
555
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'dragTo' does not exist on type 'Chainable<JQuery<HTMLElement>>'.
555
+ // @ts-expect-error - TS2339 - Property 'dragTo' does not exist on type 'Chainable<JQuery<HTMLElement>>'.
556
556
  .dragTo({x: left + 200, y: top + 200});
557
557
  cy.get(POINTS)
558
558
  .eq(1)
559
559
  .should("exist")
560
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'dragTo' does not exist on type 'Chainable<JQuery<HTMLElement>>'.
560
+ // @ts-expect-error - TS2339 - Property 'dragTo' does not exist on type 'Chainable<JQuery<HTMLElement>>'.
561
561
  .dragTo({x: left + 100, y: top + 100});
562
562
  });
563
563
 
@@ -477,7 +477,7 @@ describe("group widget", () => {
477
477
  // Arrange
478
478
  const widgetIds = [];
479
479
  const widgetCallback = (_: any, widgetId: string) =>
480
- // @ts-expect-error [FEI-5003] - TS2345 - Argument of type 'string' is not assignable to parameter of type 'never'.
480
+ // @ts-expect-error - TS2345 - Argument of type 'string' is not assignable to parameter of type 'never'.
481
481
  widgetIds.push(widgetId);
482
482
 
483
483
  // Act