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