@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
@@ -60,7 +60,7 @@ class WordIndexer extends React.PureComponent<Props> {
60
60
  container,
61
61
  NodeFilter.SHOW_TEXT | NodeFilter.SHOW_ELEMENT,
62
62
  () => NodeFilter.FILTER_ACCEPT,
63
- // @ts-expect-error [FEI-5003] - TS2554 - Expected 1-3 arguments, but got 4.
63
+ // @ts-expect-error - TS2554 - Expected 1-3 arguments, but got 4.
64
64
  false,
65
65
  );
66
66
 
@@ -101,7 +101,7 @@ class WordIndexer extends React.PureComponent<Props> {
101
101
  const wordPattern = /\S+/g;
102
102
  let wordMatch;
103
103
  let newTrailingWordRange = null;
104
- // @ts-expect-error [FEI-5003] - TS2345 - Argument of type 'string | null' is not assignable to parameter of type 'string'.
104
+ // @ts-expect-error - TS2345 - Argument of type 'string | null' is not assignable to parameter of type 'string'.
105
105
  while ((wordMatch = wordPattern.exec(text)) !== null) {
106
106
  const startOffset = wordMatch.index;
107
107
  const endOffset = wordMatch.index + wordMatch[0].length;
@@ -121,14 +121,14 @@ class WordIndexer extends React.PureComponent<Props> {
121
121
  } else {
122
122
  // Otherwise, start a new word range here, and add it
123
123
  // to the list.
124
- // @ts-expect-error [FEI-5003] - TS2531 - Object is possibly 'null'.
124
+ // @ts-expect-error - TS2531 - Object is possibly 'null'.
125
125
  range = node.ownerDocument.createRange();
126
126
  range.setStart(node, startOffset);
127
127
  range.setEnd(node, endOffset);
128
128
  index.push(range);
129
129
  }
130
130
 
131
- // @ts-expect-error [FEI-5003] - TS2531 - Object is possibly 'null'.
131
+ // @ts-expect-error - TS2531 - Object is possibly 'null'.
132
132
  if (endOffset === text.length) {
133
133
  newTrailingWordRange = range;
134
134
  }
@@ -125,7 +125,7 @@ class Icon extends React.Component<Props> {
125
125
  aria-hidden={title ? null : true}
126
126
  className={className}
127
127
  style={style}
128
- // @ts-expect-error [FEI-5003] - TS2322 - Type 'string' is not assignable to type '"auto" | Booleanish | undefined'.
128
+ // @ts-expect-error - TS2322 - Type 'string' is not assignable to type '"auto" | Booleanish | undefined'.
129
129
  focusable={focusable.toString()}
130
130
  width={width + units}
131
131
  height={height + units}
@@ -125,14 +125,14 @@ class ImageLoader extends React.Component<Props, State> {
125
125
  let onKeyUp = null;
126
126
  let onKeyDown = null;
127
127
  if (imgProps.onClick != null) {
128
- // @ts-expect-error [FEI-5003] - TS2322 - Type '(e: React.KeyboardEvent) => void' is not assignable to type 'null'.
128
+ // @ts-expect-error - TS2322 - Type '(e: React.KeyboardEvent) => void' is not assignable to type 'null'.
129
129
  onKeyUp = (e: React.KeyboardEvent) => {
130
130
  // 13 is enter key, 32 is space key
131
131
  if (e.keyCode === 13 || e.keyCode === 32) {
132
132
  imgProps.onClick && imgProps.onClick(e);
133
133
  }
134
134
  };
135
- // @ts-expect-error [FEI-5003] - TS2322 - Type '(e: React.KeyboardEvent) => void' is not assignable to type 'null'.
135
+ // @ts-expect-error - TS2322 - Type '(e: React.KeyboardEvent) => void' is not assignable to type 'null'.
136
136
  onKeyDown = (e: React.KeyboardEvent) => {
137
137
  // 32 is space key
138
138
  if (e.keyCode === 32) {
@@ -146,9 +146,9 @@ class ImageLoader extends React.Component<Props, State> {
146
146
  return (
147
147
  <img
148
148
  src={staticUrl(src)}
149
- // @ts-expect-error [FEI-5003] - TS2322 - Type 'null' is not assignable to type 'KeyboardEventHandler<HTMLImageElement> | undefined'.
149
+ // @ts-expect-error - TS2322 - Type 'null' is not assignable to type 'KeyboardEventHandler<HTMLImageElement> | undefined'.
150
150
  onKeyUp={onKeyUp}
151
- // @ts-expect-error [FEI-5003] - TS2322 - Type 'null' is not assignable to type 'KeyboardEventHandler<HTMLImageElement> | undefined'.
151
+ // @ts-expect-error - TS2322 - Type 'null' is not assignable to type 'KeyboardEventHandler<HTMLImageElement> | undefined'.
152
152
  onKeyDown={onKeyDown}
153
153
  {...imgProps}
154
154
  />
@@ -231,13 +231,13 @@ class InputWithExamples extends React.Component<Props, State> {
231
231
 
232
232
  focus: () => void = () => {
233
233
  // eslint-disable-next-line react/no-string-refs
234
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'focus' does not exist on type 'ReactInstance'.
234
+ // @ts-expect-error - TS2339 - Property 'focus' does not exist on type 'ReactInstance'.
235
235
  this.refs.input.focus();
236
236
  };
237
237
 
238
238
  blur: () => void = () => {
239
239
  // eslint-disable-next-line react/no-string-refs
240
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'blur' does not exist on type 'ReactInstance'.
240
+ // @ts-expect-error - TS2339 - Property 'blur' does not exist on type 'ReactInstance'.
241
241
  this.refs.input.blur();
242
242
  };
243
243
 
@@ -88,7 +88,7 @@ class Lint extends React.Component<Props, State> {
88
88
  // borrow a timeout approach from learnstorm-dashboard.jsx and set our
89
89
  // state once the component has mounted and we can get what we need.
90
90
  getPosition: () => void = () => {
91
- // @ts-expect-error [FEI-5003] - TS2531 - Object is possibly 'null'. | TS2339 - Property 'getBoundingClientRect' does not exist on type 'Element | Text'.
91
+ // @ts-expect-error - TS2531 - Object is possibly 'null'. | TS2339 - Property 'getBoundingClientRect' does not exist on type 'Element | Text'.
92
92
  const rect = ReactDOM.findDOMNode(this).getBoundingClientRect();
93
93
  // TODO(scottgrant): This is a magic number! We don't know the size
94
94
  // of the tooltip at this point, so we're arbitrarily choosing a
@@ -2,7 +2,6 @@ import {
2
2
  keyTranslator,
3
3
  createMathField,
4
4
  mathQuillInstance,
5
- MathFieldInterface,
6
5
  } from "@khanacademy/math-input";
7
6
  import classNames from "classnames";
8
7
  import $ from "jquery";
@@ -13,6 +12,7 @@ import _ from "underscore";
13
12
  import TexButtons from "./tex-buttons";
14
13
 
15
14
  import type {ButtonSetsType} from "./tex-buttons";
15
+ import type {MathFieldInterface} from "@khanacademy/math-input";
16
16
 
17
17
  type ButtonsVisibleType = "always" | "never" | "focused";
18
18
 
@@ -54,7 +54,7 @@ const customKeyTranslator = {
54
54
 
55
55
  // A WYSIWYG math input that calls `onChange(LaTeX-string)`
56
56
  class MathInput extends React.Component<Props, State> {
57
- // @ts-expect-error [FEI-5003] - TS2564 - Property 'mouseDown' has no initializer and is not definitely assigned in the constructor.
57
+ // @ts-expect-error - TS2564 - Property 'mouseDown' has no initializer and is not definitely assigned in the constructor.
58
58
  mouseDown: boolean;
59
59
  __mathFieldWrapperRef: HTMLSpanElement | null = null;
60
60
  __mathField: MathFieldInterface | null = null;
@@ -97,7 +97,7 @@ class MathInput extends React.Component<Props, State> {
97
97
  };
98
98
 
99
99
  handleMouseDown: (arg1: MouseEvent) => void = (event) => {
100
- // @ts-expect-error [FEI-5003] - TS2531 - Object is possibly 'null'. | TS2345 - Argument of type 'EventTarget | null' is not assignable to parameter of type 'Node | null'.
100
+ // @ts-expect-error - TS2531 - Object is possibly 'null'. | TS2345 - Argument of type 'EventTarget | null' is not assignable to parameter of type 'Node | null'.
101
101
  const focused = ReactDOM.findDOMNode(this).contains(event.target);
102
102
  this.mouseDown = focused;
103
103
  if (!focused) {
@@ -121,7 +121,7 @@ class MathInput extends React.Component<Props, State> {
121
121
  // close (blur) the button group in order to focus on next page element.
122
122
  if (
123
123
  !this.mouseDown &&
124
- // @ts-expect-error [FEI-5003] - TS2531 - Object is possibly 'null'.
124
+ // @ts-expect-error - TS2531 - Object is possibly 'null'.
125
125
  !ReactDOM.findDOMNode(this).contains(e.relatedTarget)
126
126
  ) {
127
127
  this.setState({focused: false});
@@ -260,7 +260,7 @@ class MathInput extends React.Component<Props, State> {
260
260
 
261
261
  let buttons = null;
262
262
  if (this._shouldShowButtons()) {
263
- // @ts-expect-error [FEI-5003] - TS2322 - Type 'Element' is not assignable to type 'null'.
263
+ // @ts-expect-error - TS2322 - Type 'Element' is not assignable to type 'null'.
264
264
  buttons = (
265
265
  <TexButtons
266
266
  sets={this.props.buttonSets}
@@ -113,7 +113,7 @@ class MathOutput extends React.Component<Props, State> {
113
113
  $(document).bind("vclick." + this.state.selectorNamespace, (e) => {
114
114
  // Detect whether the target has our React DOM node as a parent
115
115
  const $closestWidget = $(e.target).closest(
116
- // @ts-expect-error [FEI-5003] - TS2769 - No overload matches this call.
116
+ // @ts-expect-error - TS2769 - No overload matches this call.
117
117
  ReactDOM.findDOMNode(this),
118
118
  );
119
119
  if (!$closestWidget.length) {
@@ -42,7 +42,7 @@ class MultiButtonGroup extends React.Component<Props> {
42
42
  };
43
43
 
44
44
  focus(): boolean {
45
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'focus' does not exist on type 'Element | Text'.
45
+ // @ts-expect-error - TS2339 - Property 'focus' does not exist on type 'Element | Text'.
46
46
  ReactDOM.findDOMNode(this)?.focus();
47
47
  return true;
48
48
  }
@@ -89,7 +89,7 @@ class NumberInput extends React.Component<any, any> {
89
89
  onBlur={this._handleBlur}
90
90
  onKeyPress={this._handleBlur}
91
91
  onKeyDown={this._onKeyDown}
92
- // @ts-expect-error [FEI-5003] - TS2322 - Type '(e: TouchEvent) => void' is not assignable to type 'TouchEventHandler<HTMLInputElement>'.
92
+ // @ts-expect-error - TS2322 - Type '(e: TouchEvent) => void' is not assignable to type 'TouchEventHandler<HTMLInputElement>'.
93
93
  onTouchStart={captureScratchpadTouchStart}
94
94
  defaultValue={toNumericString(
95
95
  this.props.value,
@@ -111,14 +111,14 @@ class NumberInput extends React.Component<any, any> {
111
111
  */
112
112
  getValue: () => any = () => {
113
113
  return this.parseInputValue(
114
- // @ts-expect-error [FEI-5003] - TS2531 - Object is possibly 'null'. | TS2339 - Property 'value' does not exist on type 'Element | Text'.
114
+ // @ts-expect-error - TS2531 - Object is possibly 'null'. | TS2339 - Property 'value' does not exist on type 'Element | Text'.
115
115
  ReactDOM.findDOMNode(this.refs.input).value, // eslint-disable-line react/no-string-refs
116
116
  );
117
117
  };
118
118
 
119
119
  /* Return the current string value of this input */
120
120
  getStringValue: () => string = () => {
121
- // @ts-expect-error [FEI-5003] - TS2531 - Object is possibly 'null'. | TS2339 - Property 'value' does not exist on type 'Element | Text'.
121
+ // @ts-expect-error - TS2531 - Object is possibly 'null'. | TS2339 - Property 'value' does not exist on type 'Element | Text'.
122
122
  return ReactDOM.findDOMNode(this.refs.input).value.toString(); // eslint-disable-line react/no-string-refs
123
123
  };
124
124
 
@@ -133,13 +133,13 @@ class NumberInput extends React.Component<any, any> {
133
133
 
134
134
  /* Set text input focus to this input */
135
135
  focus: () => void = () => {
136
- // @ts-expect-error [FEI-5003] - TS2531 - Object is possibly 'null'. | TS2339 - Property 'focus' does not exist on type 'Element | Text'.
136
+ // @ts-expect-error - TS2531 - Object is possibly 'null'. | TS2339 - Property 'focus' does not exist on type 'Element | Text'.
137
137
  ReactDOM.findDOMNode(this.refs.input).focus(); // eslint-disable-line react/no-string-refs
138
138
  this._handleFocus();
139
139
  };
140
140
 
141
141
  blur: () => void = () => {
142
- // @ts-expect-error [FEI-5003] - TS2531 - Object is possibly 'null'. | TS2339 - Property 'blur' does not exist on type 'Element | Text'.
142
+ // @ts-expect-error - TS2531 - Object is possibly 'null'. | TS2339 - Property 'blur' does not exist on type 'Element | Text'.
143
143
  ReactDOM.findDOMNode(this.refs.input).blur(); // eslint-disable-line react/no-string-refs
144
144
  this._handleBlur();
145
145
  };
@@ -148,7 +148,7 @@ class NumberInput extends React.Component<any, any> {
148
148
  selectionStart,
149
149
  selectionEnd,
150
150
  ) => {
151
- // @ts-expect-error [FEI-5003] - TS2531 - Object is possibly 'null'. | TS2339 - Property 'setSelectionRange' does not exist on type 'Element | Text'.
151
+ // @ts-expect-error - TS2531 - Object is possibly 'null'. | TS2339 - Property 'setSelectionRange' does not exist on type 'Element | Text'.
152
152
  ReactDOM.findDOMNode(this).setSelectionRange(
153
153
  selectionStart,
154
154
  selectionEnd,
@@ -156,12 +156,12 @@ class NumberInput extends React.Component<any, any> {
156
156
  };
157
157
 
158
158
  getSelectionStart: () => number = () => {
159
- // @ts-expect-error [FEI-5003] - TS2531 - Object is possibly 'null'. | TS2339 - Property 'selectionStart' does not exist on type 'Element | Text'.
159
+ // @ts-expect-error - TS2531 - Object is possibly 'null'. | TS2339 - Property 'selectionStart' does not exist on type 'Element | Text'.
160
160
  return ReactDOM.findDOMNode(this).selectionStart;
161
161
  };
162
162
 
163
163
  getSelectionEnd: () => number = () => {
164
- // @ts-expect-error [FEI-5003] - TS2531 - Object is possibly 'null'. | TS2339 - Property 'selectionEnd' does not exist on type 'Element | Text'.
164
+ // @ts-expect-error - TS2531 - Object is possibly 'null'. | TS2339 - Property 'selectionEnd' does not exist on type 'Element | Text'.
165
165
  return ReactDOM.findDOMNode(this).selectionEnd;
166
166
  };
167
167
 
@@ -198,7 +198,7 @@ class NumberInput extends React.Component<any, any> {
198
198
 
199
199
  _handleBlur: (e?: React.FocusEvent | React.KeyboardEvent) => void = (e) => {
200
200
  // Only continue on blur or "enter"
201
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'keyCode' does not exist on type 'KeyboardEvent<Element> | FocusEvent<Element, Element>'.
201
+ // @ts-expect-error - TS2339 - Property 'keyCode' does not exist on type 'KeyboardEvent<Element> | FocusEvent<Element, Element>'.
202
202
  if (e && e.type === "keypress" && e.keyCode !== 13) {
203
203
  return;
204
204
  }
@@ -239,7 +239,7 @@ class NumberInput extends React.Component<any, any> {
239
239
 
240
240
  _setValue: (arg1: number, arg2: MathFormat) => void = (val, format) => {
241
241
  // eslint-disable-next-line react/no-string-refs
242
- // @ts-expect-error [FEI-5003] - TS2769 - No overload matches this call. | TS2339 - Property 'val' does not exist on type 'JQueryStatic'.
242
+ // @ts-expect-error - TS2769 - No overload matches this call. | TS2339 - Property 'val' does not exist on type 'JQueryStatic'.
243
243
  $(ReactDOM.findDOMNode(this.refs.input)).val(
244
244
  toNumericString(val, format),
245
245
  );
@@ -33,7 +33,7 @@ const PropCheckBox: any = createReactClass({
33
33
  const propName = _.find(
34
34
  _.keys(this.props),
35
35
  function (localPropName) {
36
- // @ts-expect-error [FEI-5003] - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
36
+ // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
37
37
  return !_.has(this.DEFAULT_PROPS, localPropName);
38
38
  },
39
39
  this,
@@ -30,12 +30,12 @@ export default class SimpleKeypadInput extends React.Component<any> {
30
30
  }
31
31
 
32
32
  focus() {
33
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'focus' does not exist on type 'ReactInstance'.
33
+ // @ts-expect-error - TS2339 - Property 'focus' does not exist on type 'ReactInstance'.
34
34
  this.refs.input.focus(); // eslint-disable-line react/no-string-refs
35
35
  }
36
36
 
37
37
  blur() {
38
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'blur' does not exist on type 'ReactInstance'.
38
+ // @ts-expect-error - TS2339 - Property 'blur' does not exist on type 'ReactInstance'.
39
39
  this.refs.input.blur(); // eslint-disable-line react/no-string-refs
40
40
  }
41
41
 
@@ -52,7 +52,7 @@ export default class SimpleKeypadInput extends React.Component<any> {
52
52
  const {keypadElement, onFocus, value, ...rest} = _this.props;
53
53
 
54
54
  return (
55
- // @ts-expect-error [FEI-5003] - TS2769 - No overload matches this call.
55
+ // @ts-expect-error - TS2769 - No overload matches this call.
56
56
  <KeypadInput
57
57
  // eslint-disable-next-line react/no-string-refs
58
58
  ref="input"
@@ -80,7 +80,7 @@ export default class SimpleKeypadInput extends React.Component<any> {
80
80
  }
81
81
  }
82
82
 
83
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'propTypes' does not exist on type 'typeof SimpleKeypadInput'.
83
+ // @ts-expect-error - TS2339 - Property 'propTypes' does not exist on type 'typeof SimpleKeypadInput'.
84
84
  SimpleKeypadInput.propTypes = {
85
85
  keypadElement: keypadElementPropType,
86
86
  onFocus: PropTypes.func,
@@ -11,9 +11,10 @@ import _ from "underscore";
11
11
  import {getDependencies} from "../dependencies";
12
12
  import {ClassNames as ApiClassNames} from "../perseus-api";
13
13
  import Renderer from "../renderer";
14
- import Util, {Position} from "../util";
14
+ import Util from "../util";
15
15
 
16
16
  import type {LinterContextProps} from "../types";
17
+ import type {Position} from "../util";
17
18
 
18
19
  export enum Layout {
19
20
  HORIZONTAL = "horizontal",
@@ -112,9 +113,9 @@ type DraggableState = {
112
113
  class Draggable extends React.Component<DraggableProps, DraggableState> {
113
114
  // Handler returned by requestAnimationFrame.
114
115
  animationFrameRequest = null;
115
- // @ts-expect-error [FEI-5003] - TS2564 - Property 'isMouseMoveUpBound' has no initializer and is not definitely assigned in the constructor.
116
+ // @ts-expect-error - TS2564 - Property 'isMouseMoveUpBound' has no initializer and is not definitely assigned in the constructor.
116
117
  isMouseMoveUpBound: boolean;
117
- // @ts-expect-error [FEI-5003] - TS2564 - Property '_mounted' has no initializer and is not definitely assigned in the constructor.
118
+ // @ts-expect-error - TS2564 - Property '_mounted' has no initializer and is not definitely assigned in the constructor.
118
119
  _mounted: boolean;
119
120
 
120
121
  static defaultProps: DefaultDraggableProps = {
@@ -273,7 +274,7 @@ class Draggable extends React.Component<DraggableProps, DraggableState> {
273
274
  ),
274
275
  );
275
276
 
276
- // @ts-expect-error [FEI-5003] - TS2769 - No overload matches this call. | TS2339 - Property 'animate' does not exist on type 'JQueryStatic'.
277
+ // @ts-expect-error - TS2769 - No overload matches this call. | TS2339 - Property 'animate' does not exist on type 'JQueryStatic'.
277
278
  $(ReactDOM.findDOMNode(this)).animate(this.props.endPosition, {
278
279
  duration: Math.max(duration, 1),
279
280
  // Animating -> Static
@@ -281,7 +282,7 @@ class Draggable extends React.Component<DraggableProps, DraggableState> {
281
282
  });
282
283
  } else if (this.props.state === ItemState.STATIC) {
283
284
  // Ensure that any animations are done
284
- // @ts-expect-error [FEI-5003] - TS2769 - No overload matches this call. | TS2339 - Property 'finish' does not exist on type 'JQueryStatic'.
285
+ // @ts-expect-error - TS2769 - No overload matches this call. | TS2339 - Property 'finish' does not exist on type 'JQueryStatic'.
285
286
  $(ReactDOM.findDOMNode(this)).finish();
286
287
  }
287
288
  }
@@ -317,14 +318,14 @@ class Draggable extends React.Component<DraggableProps, DraggableState> {
317
318
 
318
319
  // TODO(jeff, CP-3128): Use Wonder Blocks Timing API.
319
320
  // eslint-disable-next-line no-restricted-syntax
320
- // @ts-expect-error [FEI-5003] - TS2322 - Type 'number' is not assignable to type 'null'.
321
+ // @ts-expect-error - TS2322 - Type 'number' is not assignable to type 'null'.
321
322
  this.animationFrameRequest = requestAnimationFrame(() => {
322
- // @ts-expect-error [FEI-5003] - TS2769 - No overload matches this call.
323
+ // @ts-expect-error - TS2769 - No overload matches this call.
323
324
  const $el = $(ReactDOM.findDOMNode(this));
324
325
 
325
326
  // jQuery.position() gets the position of the element wrt its offset parent,
326
327
  // but subtracts the scroll position of the parent. We need to add that back.
327
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'position' does not exist on type 'JQueryStatic'.
328
+ // @ts-expect-error - TS2339 - Property 'position' does not exist on type 'JQueryStatic'.
328
329
  const position = $el.position();
329
330
  const startPosition = addOffsetParentScroll($el, position);
330
331
 
@@ -340,11 +341,11 @@ class Draggable extends React.Component<DraggableProps, DraggableState> {
340
341
  dragging: true,
341
342
  },
342
343
  function () {
343
- // @ts-expect-error [FEI-5003] - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
344
+ // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
344
345
  this.bindMouseMoveUp();
345
346
 
346
347
  // Static -> Dragging
347
- // @ts-expect-error [FEI-5003] - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
348
+ // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
348
349
  this.props.onMouseDown();
349
350
  },
350
351
  );
@@ -366,7 +367,7 @@ class Draggable extends React.Component<DraggableProps, DraggableState> {
366
367
  if (loc) {
367
368
  // TODO(jeff, CP-3128): Use Wonder Blocks Timing API.
368
369
  // eslint-disable-next-line no-restricted-syntax
369
- // @ts-expect-error [FEI-5003] - TS2322 - Type 'number' is not assignable to type 'null'.
370
+ // @ts-expect-error - TS2322 - Type 'number' is not assignable to type 'null'.
370
371
  this.animationFrameRequest = requestAnimationFrame(() => {
371
372
  this.setState(
372
373
  {
@@ -549,7 +550,7 @@ class Sortable extends React.Component<SortableProps, SortableState> {
549
550
  items,
550
551
  function (item) {
551
552
  // eslint-disable-next-line react/no-string-refs
552
- // @ts-expect-error [FEI-5003] - TS2769 - No overload matches this call. | TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
553
+ // @ts-expect-error - TS2769 - No overload matches this call. | TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
553
554
  return $(ReactDOM.findDOMNode(this.refs[item.key]));
554
555
  },
555
556
  this,
@@ -654,13 +655,13 @@ class Sortable extends React.Component<SortableProps, SortableState> {
654
655
  item.state === ItemState.DISABLED;
655
656
  let margin;
656
657
 
657
- // @ts-expect-error [FEI-5003] - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
658
+ // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
658
659
  if (this.props.layout === Layout.HORIZONTAL) {
659
- // @ts-expect-error [FEI-5003] - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
660
+ // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
660
661
  margin = "0 " + this.props.margin + "px 0 0"; // right
661
- // @ts-expect-error [FEI-5003] - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
662
+ // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
662
663
  } else if (this.props.layout === Layout.VERTICAL) {
663
- // @ts-expect-error [FEI-5003] - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
664
+ // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
664
665
  margin = "0 0 " + this.props.margin + "px 0"; // bottom
665
666
  }
666
667
 
@@ -669,44 +670,44 @@ class Sortable extends React.Component<SortableProps, SortableState> {
669
670
  content={item.option}
670
671
  key={item.key}
671
672
  state={item.state}
672
- // @ts-expect-error [FEI-5003] - TS2769 - No overload matches this call.
673
+ // @ts-expect-error - TS2769 - No overload matches this call.
673
674
  ref={item.key}
674
675
  width={syncWidth ? item.width : undefined}
675
676
  height={syncHeight ? item.height : undefined}
676
677
  layout={layout}
677
- // @ts-expect-error [FEI-5003] - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
678
+ // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
678
679
  includePadding={this.props.padding}
679
680
  margin={isLast && isStatic ? 0 : margin}
680
681
  endPosition={item.endPosition}
681
682
  linterContext={PerseusLinter.pushContextStack(
682
- // @ts-expect-error [FEI-5003] - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
683
+ // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
683
684
  this.props.linterContext,
684
685
  "sortable",
685
686
  )}
686
- // @ts-expect-error [FEI-5003] - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
687
+ // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
687
688
  onRender={this.remeasureItems}
688
689
  // eslint-disable-next-line react/jsx-no-bind
689
- // @ts-expect-error [FEI-5003] - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation. | TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
690
+ // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation. | TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
690
691
  onMouseDown={this.onMouseDown.bind(this, item.key)}
691
692
  // eslint-disable-next-line react/jsx-no-bind
692
- // @ts-expect-error [FEI-5003] - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation. | TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
693
+ // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation. | TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
693
694
  onMouseMove={this.onMouseMove.bind(this, item.key)}
694
695
  // eslint-disable-next-line react/jsx-no-bind
695
- // @ts-expect-error [FEI-5003] - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation. | TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
696
+ // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation. | TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
696
697
  onMouseUp={this.onMouseUp.bind(this, item.key)}
697
698
  // eslint-disable-next-line react/jsx-no-bind
698
- // @ts-expect-error [FEI-5003] - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation. | TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
699
+ // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation. | TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
699
700
  onTouchMove={this.onMouseMove.bind(this, item.key)}
700
701
  // eslint-disable-next-line react/jsx-no-bind
701
- // @ts-expect-error [FEI-5003] - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation. | TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
702
+ // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation. | TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
702
703
  onTouchEnd={this.onMouseUp.bind(this, item.key)}
703
704
  // eslint-disable-next-line react/jsx-no-bind
704
- // @ts-expect-error [FEI-5003] - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation. | TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
705
+ // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation. | TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
705
706
  onTouchCancel={this.onMouseUp.bind(this, item.key)}
706
707
  // eslint-disable-next-line react/jsx-no-bind
707
- // @ts-expect-error [FEI-5003] - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
708
+ // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
708
709
  onAnimationEnd={this.onAnimationEnd.bind(
709
- // @ts-expect-error [FEI-5003] - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
710
+ // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
710
711
  this,
711
712
  item.key,
712
713
  )}
@@ -774,9 +775,9 @@ class Sortable extends React.Component<SortableProps, SortableState> {
774
775
  return i.key === item.key;
775
776
  });
776
777
 
777
- // @ts-expect-error [FEI-5003] - TS2551 - Property 'splice' does not exist on type 'readonly SortableItem[]'. Did you mean 'slice'?
778
+ // @ts-expect-error - TS2551 - Property 'splice' does not exist on type 'readonly SortableItem[]'. Did you mean 'slice'?
778
779
  nextItems.splice(currentIndex, 1);
779
- // @ts-expect-error [FEI-5003] - TS2551 - Property 'splice' does not exist on type 'readonly SortableItem[]'. Did you mean 'slice'?
780
+ // @ts-expect-error - TS2551 - Property 'splice' does not exist on type 'readonly SortableItem[]'. Did you mean 'slice'?
780
781
  nextItems.splice(index, 0, item);
781
782
 
782
783
  this.setState({items: nextItems});
@@ -786,22 +787,22 @@ class Sortable extends React.Component<SortableProps, SortableState> {
786
787
  onMouseMove(key: SortableItem["key"]) {
787
788
  // Dragging: Rearrange items based on draggable's position
788
789
  // eslint-disable-next-line react/no-string-refs
789
- // @ts-expect-error [FEI-5003] - TS2769 - No overload matches this call.
790
+ // @ts-expect-error - TS2769 - No overload matches this call.
790
791
  const $draggable = $(ReactDOM.findDOMNode(this.refs[key]));
791
- // @ts-expect-error [FEI-5003] - TS2769 - No overload matches this call.
792
+ // @ts-expect-error - TS2769 - No overload matches this call.
792
793
  const $sortable = $(ReactDOM.findDOMNode(this));
793
794
  const items = _.clone(this.state.items);
794
795
  const item = _.findWhere(this.state.items, {key: key});
795
796
  const margin = this.props.margin || 0;
796
- // @ts-expect-error [FEI-5003] - TS2345 - Argument of type 'SortableItem | undefined' is not assignable to parameter of type 'SortableItem'.
797
+ // @ts-expect-error - TS2345 - Argument of type 'SortableItem | undefined' is not assignable to parameter of type 'SortableItem'.
797
798
  const currentIndex = _.indexOf(items, item);
798
799
  let newIndex = 0;
799
800
 
800
- // @ts-expect-error [FEI-5003] - TS2551 - Property 'splice' does not exist on type 'readonly SortableItem[]'. Did you mean 'slice'?
801
+ // @ts-expect-error - TS2551 - Property 'splice' does not exist on type 'readonly SortableItem[]'. Did you mean 'slice'?
801
802
  items.splice(currentIndex, 1);
802
803
 
803
804
  if (this.props.layout === Layout.HORIZONTAL) {
804
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'offset' does not exist on type 'JQueryStatic'. | TS2339 - Property 'offset' does not exist on type 'JQueryStatic'.
805
+ // @ts-expect-error - TS2339 - Property 'offset' does not exist on type 'JQueryStatic'. | TS2339 - Property 'offset' does not exist on type 'JQueryStatic'.
805
806
  const midWidth = $draggable.offset().left - $sortable.offset().left;
806
807
  let sumWidth = 0;
807
808
  let cardWidth;
@@ -814,7 +815,7 @@ class Sortable extends React.Component<SortableProps, SortableState> {
814
815
  sumWidth += cardWidth + margin;
815
816
  });
816
817
  } else {
817
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'offset' does not exist on type 'JQueryStatic'. | TS2339 - Property 'offset' does not exist on type 'JQueryStatic'.
818
+ // @ts-expect-error - TS2339 - Property 'offset' does not exist on type 'JQueryStatic'. | TS2339 - Property 'offset' does not exist on type 'JQueryStatic'.
818
819
  const midHeight = $draggable.offset().top - $sortable.offset().top;
819
820
  let sumHeight = 0;
820
821
  let cardHeight;
@@ -829,7 +830,7 @@ class Sortable extends React.Component<SortableProps, SortableState> {
829
830
  }
830
831
 
831
832
  if (newIndex !== currentIndex) {
832
- // @ts-expect-error [FEI-5003] - TS2551 - Property 'splice' does not exist on type 'readonly SortableItem[]'. Did you mean 'slice'?
833
+ // @ts-expect-error - TS2551 - Property 'splice' does not exist on type 'readonly SortableItem[]'. Did you mean 'slice'?
833
834
  items.splice(newIndex, 0, item);
834
835
  this.setState({items: items});
835
836
  }
@@ -846,14 +847,14 @@ class Sortable extends React.Component<SortableProps, SortableState> {
846
847
  if (item.key === key) {
847
848
  item.state = ItemState.ANIMATING;
848
849
  const $placeholder = $(
849
- // @ts-expect-error [FEI-5003] - TS2769 - No overload matches this call.
850
+ // @ts-expect-error - TS2769 - No overload matches this call.
850
851
  ReactDOM.findDOMNode(
851
852
  // eslint-disable-next-line react/no-string-refs
852
- // @ts-expect-error [FEI-5003] - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
853
+ // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
853
854
  this.refs["placeholder_" + key],
854
855
  ),
855
856
  );
856
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'position' does not exist on type 'JQueryStatic'.
857
+ // @ts-expect-error - TS2339 - Property 'position' does not exist on type 'JQueryStatic'.
857
858
  const position = $placeholder.position();
858
859
  const endPosition = addOffsetParentScroll(
859
860
  $placeholder,
@@ -873,7 +874,7 @@ class Sortable extends React.Component<SortableProps, SortableState> {
873
874
  this.props.onChange && this.props.onChange({});
874
875
  });
875
876
 
876
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'animationFrameRequest' does not exist on type 'Sortable'.
877
+ // @ts-expect-error - TS2339 - Property 'animationFrameRequest' does not exist on type 'Sortable'.
877
878
  this.animationFrameRequest = nextAnimationFrame;
878
879
  }
879
880