@khanacademy/perseus 7.2.1 → 8.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (380) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/dist/article-renderer.d.ts +26 -40
  3. package/dist/components/math-input.d.ts +1 -1
  4. package/dist/components/sortable.d.ts +1 -1
  5. package/dist/components/tex-buttons.d.ts +1 -1
  6. package/dist/es/index.js +1139 -1189
  7. package/dist/es/index.js.map +1 -1
  8. package/dist/hints-renderer.d.ts +1 -1
  9. package/dist/index.js +1141 -1192
  10. package/dist/index.js.map +1 -1
  11. package/dist/mixins/provide-keypad.d.ts +15 -12
  12. package/dist/perseus-api.d.ts +1 -1
  13. package/dist/types.d.ts +3 -2
  14. package/dist/widgets/expression.d.ts +1 -1
  15. package/dist/widgets/graded-group.d.ts +1 -1
  16. package/dist/widgets/interactive-graph.d.ts +1 -1
  17. package/dist/widgets/sequence.d.ts +1 -1
  18. package/dist/widgets/table.d.ts +8 -1
  19. package/dist/widgets.d.ts +1 -1
  20. package/package.json +33 -33
  21. package/src/__testdata__/article-renderer.testdata.ts +3 -1
  22. package/src/__testdata__/item-renderer.testdata.ts +1 -1
  23. package/src/__testdata__/renderer.testdata.ts +1 -1
  24. package/src/__tests__/item-renderer.test.tsx +1 -1
  25. package/src/__tests__/mock-asset-loading-widget.tsx +1 -1
  26. package/src/__tests__/perseus-markdown.test.ts +17 -17
  27. package/src/__tests__/renderer-api.test.tsx +21 -21
  28. package/src/__tests__/renderer.test.tsx +13 -13
  29. package/src/__tests__/server-item-renderer.test.tsx +3 -3
  30. package/src/__tests__/tex-wrangler.test.ts +1 -1
  31. package/src/article-renderer.tsx +39 -38
  32. package/src/components/__tests__/number-input.test.tsx +4 -4
  33. package/src/components/__tests__/sortable.test.tsx +2 -2
  34. package/src/components/fixed-to-responsive.tsx +1 -1
  35. package/src/components/graph.tsx +11 -11
  36. package/src/components/graphie-classes.ts +7 -7
  37. package/src/components/graphie.tsx +14 -14
  38. package/src/components/highlighting/highlightable-content.tsx +1 -1
  39. package/src/components/highlighting/ui/highlight-renderer.tsx +1 -1
  40. package/src/components/highlighting/ui/util.ts +2 -2
  41. package/src/components/highlighting/word-indexer.tsx +4 -4
  42. package/src/components/icon.tsx +1 -1
  43. package/src/components/image-loader.tsx +4 -4
  44. package/src/components/input-with-examples.tsx +2 -2
  45. package/src/components/lint.tsx +1 -1
  46. package/src/components/math-input.tsx +5 -5
  47. package/src/components/math-output.tsx +1 -1
  48. package/src/components/multi-button-group.tsx +1 -1
  49. package/src/components/number-input.tsx +10 -10
  50. package/src/components/prop-check-box.tsx +1 -1
  51. package/src/components/simple-keypad-input.tsx +4 -4
  52. package/src/components/sortable.tsx +42 -41
  53. package/src/components/svg-image.tsx +12 -12
  54. package/src/components/tex-buttons.tsx +4 -3
  55. package/src/components/text-input.tsx +8 -8
  56. package/src/components/text-list-editor.tsx +11 -11
  57. package/src/components/visibility-observer/create-visibility-observer.ts +1 -1
  58. package/src/components/visibility-observer/visibility-observer.tsx +2 -2
  59. package/src/components/zoomable-tex.tsx +3 -3
  60. package/src/components/zoomable.tsx +8 -8
  61. package/src/hint-renderer.tsx +3 -3
  62. package/src/hints-renderer.tsx +11 -11
  63. package/src/init.ts +1 -1
  64. package/src/interaction-tracker.ts +4 -4
  65. package/src/interactive2/__tests__/movable-point.test.ts +1 -1
  66. package/src/interactive2/interactive-util.ts +6 -6
  67. package/src/interactive2/movable-helper-methods.ts +2 -2
  68. package/src/interactive2/movable-line-options.ts +37 -37
  69. package/src/interactive2/movable-line.ts +2 -2
  70. package/src/interactive2/movable-point-options.ts +29 -29
  71. package/src/interactive2/movable-point.tsx +2 -2
  72. package/src/interactive2/movable-polygon-options.ts +45 -45
  73. package/src/interactive2/movable-polygon.ts +2 -2
  74. package/src/interactive2/movable.ts +2 -2
  75. package/src/interactive2/objective_.ts +1 -1
  76. package/src/interactive2/wrapped-defaults.ts +2 -2
  77. package/src/interactive2/wrapped-ellipse.ts +9 -9
  78. package/src/interactive2/wrapped-line.ts +8 -8
  79. package/src/interactive2/wrapped-path.ts +5 -5
  80. package/src/item-renderer.tsx +5 -5
  81. package/src/mixins/changeable.ts +2 -2
  82. package/src/mixins/editor-jsonify.ts +1 -1
  83. package/src/mixins/provide-keypad.tsx +23 -37
  84. package/src/mixins/widget-jsonify-deprecated.ts +1 -1
  85. package/src/multi-items/__tests__/items.test.ts +1 -1
  86. package/src/multi-items/__tests__/multi-renderer.test.tsx +7 -7
  87. package/src/multi-items/__tests__/trees.test.ts +12 -12
  88. package/src/multi-items/item-types.ts +2 -2
  89. package/src/multi-items/items.ts +1 -1
  90. package/src/multi-items/multi-renderer.tsx +14 -14
  91. package/src/multi-items/prop-type-builders.ts +2 -2
  92. package/src/multi-items/tree-types.ts +4 -4
  93. package/src/multi-items/trees.ts +16 -16
  94. package/src/perseus-env.ts +2 -2
  95. package/src/perseus-markdown.tsx +5 -5
  96. package/src/renderer.tsx +38 -38
  97. package/src/server-item-renderer.tsx +5 -5
  98. package/src/sigfigs.ts +1 -1
  99. package/src/traversal.ts +1 -1
  100. package/src/types.ts +3 -3
  101. package/src/util/answer-types.ts +14 -14
  102. package/src/util/geometry.ts +7 -7
  103. package/src/util/graphie.ts +32 -32
  104. package/src/util/interactive.ts +118 -118
  105. package/src/util/math.ts +4 -4
  106. package/src/util/react-render.tsx +1 -1
  107. package/src/util/scroll-utils.ts +2 -2
  108. package/src/util/tex.ts +3 -3
  109. package/src/util.ts +15 -15
  110. package/src/widget-container.tsx +1 -1
  111. package/src/widgets/__stories__/test-keypad-context-wrapper.tsx +3 -3
  112. package/src/widgets/__testdata__/numeric-input.testdata.ts +1 -1
  113. package/src/widgets/__tests__/__snapshots__/video.test.ts.snap +2 -2
  114. package/src/widgets/__tests__/expression.test.ts +4 -3
  115. package/src/widgets/__tests__/grapher.cypress.ts +32 -32
  116. package/src/widgets/__tests__/group.test.tsx +1 -1
  117. package/src/widgets/__tests__/interactive-graph.cypress.ts +40 -40
  118. package/src/widgets/__tests__/interactive-graph.test.ts +1 -1
  119. package/src/widgets/__tests__/numeric-input.test.ts +1 -1
  120. package/src/widgets/__tests__/passage.test.tsx +2 -2
  121. package/src/widgets/__tests__/plotter.test.tsx +2 -1
  122. package/src/widgets/__tests__/radio/base-radio.test.tsx +7 -7
  123. package/src/widgets/__tests__/renderQuestion.tsx +3 -3
  124. package/src/widgets/categorizer.tsx +4 -4
  125. package/src/widgets/cs-program.tsx +2 -2
  126. package/src/widgets/dropdown.tsx +1 -1
  127. package/src/widgets/expression.tsx +10 -9
  128. package/src/widgets/graded-group-set.tsx +5 -5
  129. package/src/widgets/graded-group.tsx +18 -19
  130. package/src/widgets/grapher/util.tsx +6 -6
  131. package/src/widgets/grapher.tsx +10 -10
  132. package/src/widgets/group.tsx +3 -3
  133. package/src/widgets/iframe.tsx +2 -2
  134. package/src/widgets/image.tsx +1 -1
  135. package/src/widgets/input-number.tsx +4 -4
  136. package/src/widgets/interaction.tsx +77 -77
  137. package/src/widgets/interactive-graph.tsx +109 -107
  138. package/src/widgets/label-image/marker.tsx +2 -2
  139. package/src/widgets/label-image.test.ts +1 -1
  140. package/src/widgets/label-image.tsx +7 -7
  141. package/src/widgets/lights-puzzle.tsx +2 -2
  142. package/src/widgets/matcher.tsx +6 -6
  143. package/src/widgets/matrix.tsx +20 -20
  144. package/src/widgets/measurer.tsx +3 -3
  145. package/src/widgets/molecule/__tests__/layout.test.ts +4 -4
  146. package/src/widgets/molecule/__tests__/parser.test.ts +14 -14
  147. package/src/widgets/molecule/smiles-parser.ts +3 -3
  148. package/src/widgets/molecule.tsx +4 -4
  149. package/src/widgets/number-line.tsx +11 -11
  150. package/src/widgets/numeric-input.tsx +11 -11
  151. package/src/widgets/orderer.tsx +38 -38
  152. package/src/widgets/passage/__tests__/passage-markdown.test.ts +1 -1
  153. package/src/widgets/passage/passage-markdown.tsx +4 -4
  154. package/src/widgets/passage-ref-target.tsx +1 -1
  155. package/src/widgets/passage-ref.tsx +4 -6
  156. package/src/widgets/passage.tsx +11 -11
  157. package/src/widgets/plotter.tsx +9 -9
  158. package/src/widgets/radio/base-radio.tsx +11 -11
  159. package/src/widgets/radio/choice-icon/choice-icon.tsx +2 -2
  160. package/src/widgets/radio/choice.tsx +1 -1
  161. package/src/widgets/radio/option-status.tsx +1 -1
  162. package/src/widgets/radio/widget.tsx +6 -6
  163. package/src/widgets/radio.ts +1 -1
  164. package/src/widgets/reaction-diagram.tsx +8 -8
  165. package/src/widgets/sequence.tsx +2 -2
  166. package/src/widgets/simulator.tsx +14 -14
  167. package/src/widgets/sorter.tsx +4 -4
  168. package/src/widgets/table.tsx +8 -8
  169. package/src/widgets/transformer.tsx +92 -92
  170. package/src/widgets/unit.tsx +17 -17
  171. package/src/widgets/video-transcript-link.test.tsx +3 -3
  172. package/src/widgets/video-transcript-link.tsx +1 -1
  173. package/src/widgets/video.tsx +1 -1
  174. package/src/widgets.ts +5 -5
  175. package/src/zoom.ts +22 -22
  176. package/tsconfig-build.tsbuildinfo +1 -1
  177. package/dist/a11y.js.flow +0 -11
  178. package/dist/all-widgets.js.flow +0 -33
  179. package/dist/article-renderer.js.flow +0 -73
  180. package/dist/asset-context.js.flow +0 -15
  181. package/dist/basic-widgets.js.flow +0 -33
  182. package/dist/components/button-group.js.flow +0 -33
  183. package/dist/components/constants.js.flow +0 -13
  184. package/dist/components/fixed-to-responsive.js.flow +0 -34
  185. package/dist/components/graph.js.flow +0 -66
  186. package/dist/components/graphie-classes.js.flow +0 -19
  187. package/dist/components/graphie-movables.js.flow +0 -22
  188. package/dist/components/graphie.js.flow +0 -69
  189. package/dist/components/highlighting/highlightable-content.js.flow +0 -56
  190. package/dist/components/highlighting/highlights.js.flow +0 -54
  191. package/dist/components/highlighting/ranges.js.flow +0 -60
  192. package/dist/components/highlighting/types.js.flow +0 -70
  193. package/dist/components/highlighting/ui/highlight-renderer.js.flow +0 -43
  194. package/dist/components/highlighting/ui/highlight-set-renderer.js.flow +0 -41
  195. package/dist/components/highlighting/ui/highlight-tooltip.js.flow +0 -22
  196. package/dist/components/highlighting/ui/highlighting-ui.js.flow +0 -30
  197. package/dist/components/highlighting/ui/selection-tracker.js.flow +0 -54
  198. package/dist/components/highlighting/ui/types.js.flow +0 -22
  199. package/dist/components/highlighting/ui/util.js.flow +0 -42
  200. package/dist/components/highlighting/word-indexer.js.flow +0 -21
  201. package/dist/components/hud.js.flow +0 -14
  202. package/dist/components/icon.js.flow +0 -31
  203. package/dist/components/image-loader.js.flow +0 -49
  204. package/dist/components/info-tip/info-tip.js.flow +0 -20
  205. package/dist/components/info-tip.js.flow +0 -18
  206. package/dist/components/inline-icon.js.flow +0 -39
  207. package/dist/components/input-with-examples.js.flow +0 -58
  208. package/dist/components/lint.js.flow +0 -58
  209. package/dist/components/math-input.js.flow +0 -49
  210. package/dist/components/math-output.js.flow +0 -33
  211. package/dist/components/multi-button-group.js.flow +0 -35
  212. package/dist/components/number-input.js.flow +0 -42
  213. package/dist/components/prop-check-box.js.flow +0 -8
  214. package/dist/components/range-input.js.flow +0 -20
  215. package/dist/components/simple-keypad-input.js.flow +0 -16
  216. package/dist/components/sortable.js.flow +0 -91
  217. package/dist/components/stub-tag-editor.js.flow +0 -18
  218. package/dist/components/svg-image.js.flow +0 -85
  219. package/dist/components/tex-buttons.js.flow +0 -26
  220. package/dist/components/tex.js.flow +0 -25
  221. package/dist/components/text-input.js.flow +0 -39
  222. package/dist/components/text-list-editor.js.flow +0 -22
  223. package/dist/components/tooltip.js.flow +0 -51
  224. package/dist/components/visibility-observer/create-visibility-observer.js.flow +0 -23
  225. package/dist/components/visibility-observer/get-scroll-parent.js.flow +0 -7
  226. package/dist/components/visibility-observer/visibility-observer.js.flow +0 -36
  227. package/dist/components/zoomable-tex.js.flow +0 -18
  228. package/dist/components/zoomable.js.flow +0 -70
  229. package/dist/components.js.flow +0 -22
  230. package/dist/definition-context.js.flow +0 -25
  231. package/dist/dependencies.js.flow +0 -9
  232. package/dist/error-boundary.js.flow +0 -19
  233. package/dist/extra-widgets.js.flow +0 -33
  234. package/dist/hint-renderer.js.flow +0 -32
  235. package/dist/hints-renderer.js.flow +0 -41
  236. package/dist/icon-paths.js.flow +0 -123
  237. package/dist/index.js.flow +0 -134
  238. package/dist/init.js.flow +0 -20
  239. package/dist/interaction-tracker.js.flow +0 -35
  240. package/dist/interactive2/interactive-util.js.flow +0 -50
  241. package/dist/interactive2/movable-helper-methods.js.flow +0 -15
  242. package/dist/interactive2/movable-line-options.js.flow +0 -44
  243. package/dist/interactive2/movable-line.js.flow +0 -8
  244. package/dist/interactive2/movable-point-options.js.flow +0 -44
  245. package/dist/interactive2/movable-point.js.flow +0 -8
  246. package/dist/interactive2/movable-polygon-options.js.flow +0 -47
  247. package/dist/interactive2/movable-polygon.js.flow +0 -8
  248. package/dist/interactive2/movable.js.flow +0 -8
  249. package/dist/interactive2/objective_.js.flow +0 -25
  250. package/dist/interactive2/types.js.flow +0 -8
  251. package/dist/interactive2/wrapped-defaults.js.flow +0 -11
  252. package/dist/interactive2/wrapped-ellipse.js.flow +0 -14
  253. package/dist/interactive2/wrapped-line.js.flow +0 -14
  254. package/dist/interactive2/wrapped-path.js.flow +0 -13
  255. package/dist/interactive2.js.flow +0 -16
  256. package/dist/item-renderer.js.flow +0 -132
  257. package/dist/item-version.js.flow +0 -11
  258. package/dist/jipt-paragraphs.js.flow +0 -14
  259. package/dist/loading-context.js.flow +0 -12
  260. package/dist/logging/log.js.flow +0 -62
  261. package/dist/mixins/changeable.js.flow +0 -33
  262. package/dist/mixins/editor-jsonify.js.flow +0 -10
  263. package/dist/mixins/provide-keypad.js.flow +0 -33
  264. package/dist/mixins/widget-jsonify-deprecated.js.flow +0 -11
  265. package/dist/mixins/widget-prop-denylist.js.flow +0 -20
  266. package/dist/multi-items/item-types.js.flow +0 -55
  267. package/dist/multi-items/items.js.flow +0 -66
  268. package/dist/multi-items/multi-renderer.js.flow +0 -213
  269. package/dist/multi-items/prop-type-builders.js.flow +0 -22
  270. package/dist/multi-items/shape-types.js.flow +0 -60
  271. package/dist/multi-items/shapes.js.flow +0 -25
  272. package/dist/multi-items/tree-types.js.flow +0 -45
  273. package/dist/multi-items/trees.js.flow +0 -147
  274. package/dist/multi-items.js.flow +0 -36
  275. package/dist/perseus-api.js.flow +0 -151
  276. package/dist/perseus-env.js.flow +0 -6
  277. package/dist/perseus-error.js.flow +0 -16
  278. package/dist/perseus-markdown.js.flow +0 -20
  279. package/dist/perseus-types.js.flow +0 -1041
  280. package/dist/question-paragraph.js.flow +0 -17
  281. package/dist/renderability.js.flow +0 -19
  282. package/dist/renderer.js.flow +0 -325
  283. package/dist/server-item-renderer.js.flow +0 -132
  284. package/dist/sigfigs.js.flow +0 -41
  285. package/dist/styles/constants.js.flow +0 -62
  286. package/dist/styles/global-constants.js.flow +0 -348
  287. package/dist/styles/global-styles.js.flow +0 -53
  288. package/dist/styles/media-queries.js.flow +0 -35
  289. package/dist/styles/shared.js.flow +0 -8
  290. package/dist/tex-wrangler.js.flow +0 -13
  291. package/dist/translation-linter.js.flow +0 -32
  292. package/dist/traversal.js.flow +0 -26
  293. package/dist/types.js.flow +0 -318
  294. package/dist/util/a11y.js.flow +0 -8
  295. package/dist/util/answer-types.js.flow +0 -49
  296. package/dist/util/colors.js.flow +0 -95
  297. package/dist/util/fix-passage-refs.js.flow +0 -8
  298. package/dist/util/geometry.js.flow +0 -37
  299. package/dist/util/graph-utils.js.flow +0 -9
  300. package/dist/util/graphie.js.flow +0 -8
  301. package/dist/util/interactive.js.flow +0 -11
  302. package/dist/util/katex-preprocess.js.flow +0 -12
  303. package/dist/util/math.js.flow +0 -62
  304. package/dist/util/mobile-native-utils.js.flow +0 -12
  305. package/dist/util/react-render.js.flow +0 -12
  306. package/dist/util/register-all-widgets-for-testing.js.flow +0 -7
  307. package/dist/util/scroll-utils.js.flow +0 -19
  308. package/dist/util/sizing-utils.js.flow +0 -20
  309. package/dist/util/tex.js.flow +0 -17
  310. package/dist/util/url-utils.js.flow +0 -11
  311. package/dist/util.graphie.js.flow +0 -14
  312. package/dist/util.js.flow +0 -319
  313. package/dist/version.js.flow +0 -17
  314. package/dist/widget-container.js.flow +0 -33
  315. package/dist/widgets/categorizer.js.flow +0 -70
  316. package/dist/widgets/cs-program.js.flow +0 -54
  317. package/dist/widgets/definition.js.flow +0 -57
  318. package/dist/widgets/dropdown.js.flow +0 -63
  319. package/dist/widgets/explanation.js.flow +0 -58
  320. package/dist/widgets/expression.js.flow +0 -116
  321. package/dist/widgets/graded-group-answer-bar.js.flow +0 -24
  322. package/dist/widgets/graded-group-set.js.flow +0 -65
  323. package/dist/widgets/graded-group.js.flow +0 -78
  324. package/dist/widgets/grapher/util.js.flow +0 -38
  325. package/dist/widgets/grapher.js.flow +0 -102
  326. package/dist/widgets/group.js.flow +0 -60
  327. package/dist/widgets/iframe.js.flow +0 -53
  328. package/dist/widgets/image.js.flow +0 -73
  329. package/dist/widgets/input-number.js.flow +0 -94
  330. package/dist/widgets/interaction/arrow-picker.js.flow +0 -21
  331. package/dist/widgets/interaction/color-picker.js.flow +0 -23
  332. package/dist/widgets/interaction/dash-picker.js.flow +0 -21
  333. package/dist/widgets/interaction/element-container.js.flow +0 -28
  334. package/dist/widgets/interaction.js.flow +0 -60
  335. package/dist/widgets/interactive-graph.js.flow +0 -239
  336. package/dist/widgets/label-image/answer-choices.js.flow +0 -55
  337. package/dist/widgets/label-image/marker.js.flow +0 -31
  338. package/dist/widgets/label-image/types.js.flow +0 -23
  339. package/dist/widgets/label-image.js.flow +0 -142
  340. package/dist/widgets/lights-puzzle.js.flow +0 -58
  341. package/dist/widgets/matcher.js.flow +0 -106
  342. package/dist/widgets/matrix.js.flow +0 -80
  343. package/dist/widgets/measurer.js.flow +0 -30
  344. package/dist/widgets/molecule/molecule-drawing.js.flow +0 -11
  345. package/dist/widgets/molecule/molecule-layout.js.flow +0 -96
  346. package/dist/widgets/molecule/smiles-parser.js.flow +0 -26
  347. package/dist/widgets/molecule.js.flow +0 -60
  348. package/dist/widgets/number-line.js.flow +0 -102
  349. package/dist/widgets/numeric-input.js.flow +0 -105
  350. package/dist/widgets/orderer.js.flow +0 -81
  351. package/dist/widgets/passage/passage-markdown.js.flow +0 -33
  352. package/dist/widgets/passage-ref-target.js.flow +0 -52
  353. package/dist/widgets/passage-ref.js.flow +0 -85
  354. package/dist/widgets/passage.js.flow +0 -157
  355. package/dist/widgets/plotter.js.flow +0 -112
  356. package/dist/widgets/radio/base-radio.js.flow +0 -50
  357. package/dist/widgets/radio/choice-a11y-text.js.flow +0 -14
  358. package/dist/widgets/radio/choice-icon/choice-icon.js.flow +0 -22
  359. package/dist/widgets/radio/choice-icon/cross-out-line.js.flow +0 -16
  360. package/dist/widgets/radio/choice-icon/shared-styles.js.flow +0 -11
  361. package/dist/widgets/radio/choice-none-above.js.flow +0 -16
  362. package/dist/widgets/radio/choice.js.flow +0 -29
  363. package/dist/widgets/radio/choice.jsx.fixture.js.flow +0 -7
  364. package/dist/widgets/radio/focus-ring.js.flow +0 -22
  365. package/dist/widgets/radio/option-status.js.flow +0 -16
  366. package/dist/widgets/radio/util.js.flow +0 -12
  367. package/dist/widgets/radio/widget.js.flow +0 -80
  368. package/dist/widgets/radio.js.flow +0 -31
  369. package/dist/widgets/reaction-diagram.js.flow +0 -46
  370. package/dist/widgets/sequence.js.flow +0 -53
  371. package/dist/widgets/simulator.js.flow +0 -107
  372. package/dist/widgets/sorter.js.flow +0 -102
  373. package/dist/widgets/table.js.flow +0 -67
  374. package/dist/widgets/transformer.js.flow +0 -127
  375. package/dist/widgets/unit.js.flow +0 -93
  376. package/dist/widgets/video-transcript-link.js.flow +0 -15
  377. package/dist/widgets/video.js.flow +0 -57
  378. package/dist/widgets.js.flow +0 -108
  379. package/dist/zoom.js.flow +0 -7
  380. package/src/multi-items/item-types.js.flow +0 -55
@@ -108,7 +108,7 @@ export class OldUnitInput extends React.Component<Props> {
108
108
  const sigfigs = rubric.sigfigs;
109
109
  const sigfigsCorrect = countSigfigs(guess.coefficient) === sigfigs;
110
110
  if (!sigfigsCorrect) {
111
- // @ts-expect-error [FEI-5003] - TS2322 - Type 'string' is not assignable to type 'null'.
111
+ // @ts-expect-error - TS2322 - Type 'string' is not assignable to type 'null'.
112
112
  message = i18n._("Check your significant figures.");
113
113
  }
114
114
 
@@ -136,7 +136,7 @@ export class OldUnitInput extends React.Component<Props> {
136
136
  }
137
137
 
138
138
  if (!numericallyCorrect) {
139
- // @ts-expect-error [FEI-5003] - TS2322 - Type 'string' is not assignable to type 'null'.
139
+ // @ts-expect-error - TS2322 - Type 'string' is not assignable to type 'null'.
140
140
  message = i18n._("That answer is numerically incorrect.");
141
141
  }
142
142
 
@@ -163,7 +163,7 @@ export class OldUnitInput extends React.Component<Props> {
163
163
  });
164
164
  }
165
165
  if (!kasCorrect) {
166
- // @ts-expect-error [FEI-5003] - TS2322 - Type 'string' is not assignable to type 'null'.
166
+ // @ts-expect-error - TS2322 - Type 'string' is not assignable to type 'null'.
167
167
  message = i18n._("Check your units.");
168
168
  }
169
169
 
@@ -180,14 +180,14 @@ export class OldUnitInput extends React.Component<Props> {
180
180
  componentDidUpdate() {
181
181
  // TODO(jeff, CP-3128): Use Wonder Blocks Timing API.
182
182
  // eslint-disable-next-line no-restricted-syntax
183
- // @ts-expect-error [FEI-5003] - TS2769 - No overload matches this call.
183
+ // @ts-expect-error - TS2769 - No overload matches this call.
184
184
  clearTimeout(this._errorTimeout);
185
185
  if (KAS.unitParse(this.props.value).parsed) {
186
186
  this._hideError();
187
187
  } else {
188
188
  // TODO(jeff, CP-3128): Use Wonder Blocks Timing API.
189
189
  // eslint-disable-next-line no-restricted-syntax
190
- // @ts-expect-error [FEI-5003] - TS2322 - Type 'Timeout' is not assignable to type 'number'.
190
+ // @ts-expect-error - TS2322 - Type 'Timeout' is not assignable to type 'number'.
191
191
  this._errorTimeout = setTimeout(this._showError, 2000);
192
192
  }
193
193
  }
@@ -195,7 +195,7 @@ export class OldUnitInput extends React.Component<Props> {
195
195
  componentWillUnmount() {
196
196
  // TODO(jeff, CP-3128): Use Wonder Blocks Timing API.
197
197
  // eslint-disable-next-line no-restricted-syntax
198
- // @ts-expect-error [FEI-5003] - TS2769 - No overload matches this call.
198
+ // @ts-expect-error - TS2769 - No overload matches this call.
199
199
  clearTimeout(this._errorTimeout);
200
200
  }
201
201
 
@@ -205,12 +205,12 @@ export class OldUnitInput extends React.Component<Props> {
205
205
  }
206
206
 
207
207
  // eslint-disable-next-line react/no-string-refs
208
- // @ts-expect-error [FEI-5003] - TS2769 - No overload matches this call.
208
+ // @ts-expect-error - TS2769 - No overload matches this call.
209
209
  const $error = $(ReactDOM.findDOMNode(this.refs.error));
210
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'is' does not exist on type 'JQueryStatic'.
210
+ // @ts-expect-error - TS2339 - Property 'is' does not exist on type 'JQueryStatic'.
211
211
  if (!$error.is(":visible")) {
212
212
  $error
213
- // @ts-expect-error [FEI-5003] - TS2554 - Expected 2 arguments, but got 1.
213
+ // @ts-expect-error - TS2554 - Expected 2 arguments, but got 1.
214
214
  .css({top: 50, opacity: 0.1})
215
215
  .show()
216
216
  .animate({top: 0, opacity: 1.0}, 300);
@@ -219,14 +219,14 @@ export class OldUnitInput extends React.Component<Props> {
219
219
 
220
220
  _hideError: () => void = () => {
221
221
  // eslint-disable-next-line react/no-string-refs
222
- // @ts-expect-error [FEI-5003] - TS2769 - No overload matches this call.
222
+ // @ts-expect-error - TS2769 - No overload matches this call.
223
223
  const $error = $(ReactDOM.findDOMNode(this.refs.error));
224
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'is' does not exist on type 'JQueryStatic'.
224
+ // @ts-expect-error - TS2339 - Property 'is' does not exist on type 'JQueryStatic'.
225
225
  if ($error.is(":visible")) {
226
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'animate' does not exist on type 'JQueryStatic'.
226
+ // @ts-expect-error - TS2339 - Property 'animate' does not exist on type 'JQueryStatic'.
227
227
  $error.animate({top: 50, opacity: 0.1}, 300, function () {
228
228
  // eslint-disable-next-line @babel/no-invalid-this
229
- // @ts-expect-error [FEI-5003] - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
229
+ // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
230
230
  // eslint-disable-next-line @babel/no-invalid-this
231
231
  $(this).hide();
232
232
  });
@@ -236,7 +236,7 @@ export class OldUnitInput extends React.Component<Props> {
236
236
  change: (...args: ReadonlyArray<any>) => any | null | undefined = (
237
237
  ...args
238
238
  ) => {
239
- // @ts-expect-error [FEI-5003] - TS2345 - Argument of type 'readonly any[]' is not assignable to parameter of type 'any[]'.
239
+ // @ts-expect-error - TS2345 - Argument of type 'readonly any[]' is not assignable to parameter of type 'any[]'.
240
240
  return Changeable.change.apply(this, args);
241
241
  };
242
242
 
@@ -244,7 +244,7 @@ export class OldUnitInput extends React.Component<Props> {
244
244
  this.props.onBlur([]);
245
245
  // TODO(jeff, CP-3128): Use Wonder Blocks Timing API.
246
246
  // eslint-disable-next-line no-restricted-syntax
247
- // @ts-expect-error [FEI-5003] - TS2769 - No overload matches this call.
247
+ // @ts-expect-error - TS2769 - No overload matches this call.
248
248
  clearTimeout(this._errorTimeout);
249
249
  if (!KAS.unitParse(this.props.value).parsed) {
250
250
  this._showError();
@@ -287,7 +287,7 @@ export class OldUnitInput extends React.Component<Props> {
287
287
  * Change to using a ref callback so that focus() can be
288
288
  * accessed.
289
289
  */
290
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'focus' does not exist on type 'Element | Text'.
290
+ // @ts-expect-error - TS2339 - Property 'focus' does not exist on type 'Element | Text'.
291
291
  input.focus();
292
292
  }
293
293
  };
@@ -305,7 +305,7 @@ export class OldUnitInput extends React.Component<Props> {
305
305
  * Change to using a ref callback so that focus() can be
306
306
  * accessed.
307
307
  */
308
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'blur' does not exist on type 'Element | Text'.
308
+ // @ts-expect-error - TS2339 - Property 'blur' does not exist on type 'Element | Text'.
309
309
  input.blur();
310
310
  }
311
311
  };
@@ -138,7 +138,7 @@ describe("VideoTranscriptLink", () => {
138
138
  // Arrange
139
139
  jest.spyOn(Dependencies, "getDependencies").mockReturnValue({
140
140
  ...testDependencies,
141
- // @ts-expect-error [FEI-5003] - TS2322 - Type '(videoId: string, kind: VideoKind) => { status: "success"; data: {}; }' is not assignable to type '(id: string, kind: VideoKind) => Result<{ video: VideoData | null | undefined; }>'.
141
+ // @ts-expect-error - TS2322 - Type '(videoId: string, kind: VideoKind) => { status: "success"; data: {}; }' is not assignable to type '(id: string, kind: VideoKind) => Result<{ video: VideoData | null | undefined; }>'.
142
142
  useVideo: (videoId, kind) => {
143
143
  return {status: "success", data: {}};
144
144
  },
@@ -169,7 +169,7 @@ describe("VideoTranscriptLink", () => {
169
169
  // Arrange
170
170
  jest.spyOn(Dependencies, "getDependencies").mockReturnValue({
171
171
  ...testDependencies,
172
- // @ts-expect-error [FEI-5003] - TS2322 - Type '(videoId: string, kind: VideoKind) => { status: "success"; data: {}; }' is not assignable to type '(id: string, kind: VideoKind) => Result<{ video: VideoData | null | undefined; }>'.
172
+ // @ts-expect-error - TS2322 - Type '(videoId: string, kind: VideoKind) => { status: "success"; data: {}; }' is not assignable to type '(id: string, kind: VideoKind) => Result<{ video: VideoData | null | undefined; }>'.
173
173
  useVideo: (videoId, kind) => {
174
174
  return {status: "success", data: {}};
175
175
  },
@@ -186,7 +186,7 @@ describe("VideoTranscriptLink", () => {
186
186
  // Arrange
187
187
  jest.spyOn(Dependencies, "getDependencies").mockReturnValue({
188
188
  ...testDependencies,
189
- // @ts-expect-error [FEI-5003] - TS2322 - Type '(videoId: string, kind: VideoKind) => { status: "error"; }' is not assignable to type '(id: string, kind: VideoKind) => Result<{ video: VideoData | null | undefined; }>'.
189
+ // @ts-expect-error - TS2322 - Type '(videoId: string, kind: VideoKind) => { status: "error"; }' is not assignable to type '(id: string, kind: VideoKind) => Result<{ video: VideoData | null | undefined; }>'.
190
190
  useVideo: (videoId, kind) => {
191
191
  return {status: "error"};
192
192
  },
@@ -39,7 +39,7 @@ const VideoTranscriptLink = (props: Props): React.ReactElement => {
39
39
  : [location, "READABLE_ID"];
40
40
  // The result value conforms to the wonder-blocks-data `Result` type
41
41
  // which is used by our GraphQL framework.
42
- // @ts-expect-error [FEI-5003] - TS2345 - Argument of type 'string' is not assignable to parameter of type 'VideoKind'.
42
+ // @ts-expect-error - TS2345 - Argument of type 'string' is not assignable to parameter of type 'VideoKind'.
43
43
  const result = useVideo(id, kind);
44
44
 
45
45
  switch (result.status) {
@@ -59,7 +59,7 @@ class Video extends React.Component<Props> {
59
59
  };
60
60
 
61
61
  change: (...args: ReadonlyArray<unknown>) => any = (...args) => {
62
- // @ts-expect-error [FEI-5003] - TS2345 - Argument of type 'readonly unknown[]' is not assignable to parameter of type 'any[]'.
62
+ // @ts-expect-error - TS2345 - Argument of type 'readonly unknown[]' is not assignable to parameter of type 'any[]'.
63
63
  return Changeable.change.apply(this, args);
64
64
  };
65
65
 
package/src/widgets.ts CHANGED
@@ -1,4 +1,3 @@
1
- import * as React from "react";
2
1
  import _ from "underscore";
3
2
 
4
3
  import {Errors, Log} from "./logging/log";
@@ -12,6 +11,7 @@ import type {
12
11
  WidgetInfo,
13
12
  WidgetTransform,
14
13
  } from "./types";
14
+ import type * as React from "react";
15
15
 
16
16
  const DEFAULT_ALIGNMENT = "block";
17
17
  // NOTE(kevinb): "default" is not one in `validAlignments`.
@@ -66,7 +66,7 @@ export const getWidget = (
66
66
 
67
67
  // Allow widgets to specify a widget directly or via a function
68
68
  if (widgets[name].getWidget) {
69
- // @ts-expect-error [FEI-5003] - TS2722 - Cannot invoke an object which is possibly 'undefined'.
69
+ // @ts-expect-error - TS2722 - Cannot invoke an object which is possibly 'undefined'.
70
70
  return widgets[name].getWidget();
71
71
  }
72
72
  return widgets[name].widget;
@@ -102,10 +102,10 @@ export const getVersionVector = (): {
102
102
 
103
103
  export const getPublicWidgets = (): ReadonlyArray<WidgetExports> => {
104
104
  // TODO(alex): Update underscore.js so that _.pick can take a function.
105
- // @ts-expect-error [FEI-5003] - TS2740 - Type 'Pick<{ [key: string]: Readonly<{ name: string; displayName: string; getWidget?: (() => ComponentType<any>) | undefined; accessible?: boolean | ((props: any) => boolean) | undefined; hidden?: boolean | undefined; ... 10 more ...; widget: ComponentType<...>; }>; }, string>' is missing the following properties from type 'readonly Readonly<{ name: string; displayName: string; getWidget?: (() => ComponentType<any>) | undefined; accessible?: boolean | ((props: any) => boolean) | undefined; hidden?: boolean | undefined; ... 10 more ...; widget: ComponentType<...>; }>[]': length, concat, join, slice, and 18 more.
105
+ // @ts-expect-error - TS2740 - Type 'Pick<{ [key: string]: Readonly<{ name: string; displayName: string; getWidget?: (() => ComponentType<any>) | undefined; accessible?: boolean | ((props: any) => boolean) | undefined; hidden?: boolean | undefined; ... 10 more ...; widget: ComponentType<...>; }>; }, string>' is missing the following properties from type 'readonly Readonly<{ name: string; displayName: string; getWidget?: (() => ComponentType<any>) | undefined; accessible?: boolean | ((props: any) => boolean) | undefined; hidden?: boolean | undefined; ... 10 more ...; widget: ComponentType<...>; }>[]': length, concat, join, slice, and 18 more.
106
106
  return _.pick(
107
107
  widgets,
108
- // @ts-expect-error [FEI-5003] - TS2345 - Argument of type '(name: string) => boolean | undefined' is not assignable to parameter of type 'Iteratee<string[], boolean, string>'.
108
+ // @ts-expect-error - TS2345 - Argument of type '(name: string) => boolean | undefined' is not assignable to parameter of type 'Iteratee<string[], boolean, string>'.
109
109
  _.reject(_.keys(widgets), function (name) {
110
110
  return widgets[name].hidden;
111
111
  }),
@@ -318,7 +318,7 @@ export const getSupportedAlignments = (
318
318
  type: string,
319
319
  ): ReadonlyArray<Alignment> => {
320
320
  const widgetExport = widgets[type];
321
- // @ts-expect-error [FEI-5003] - TS2322 - Type 'string[] | readonly Alignment[]' is not assignable to type 'readonly Alignment[]'.
321
+ // @ts-expect-error - TS2322 - Type 'string[] | readonly Alignment[]' is not assignable to type 'readonly Alignment[]'.
322
322
  return (
323
323
  (widgetExport && widgetExport.supportedAlignments) ||
324
324
  DEFAULT_SUPPORTED_ALIGNMENTS
package/src/zoom.ts CHANGED
@@ -45,7 +45,7 @@ function transitionEnd() {
45
45
  }
46
46
 
47
47
  // http://blog.alexmaccaw.com/css-transitions
48
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'emulateTransitionEnd' does not exist on type 'JQuery<HTMLElement>'.
48
+ // @ts-expect-error - TS2339 - Property 'emulateTransitionEnd' does not exist on type 'JQuery<HTMLElement>'.
49
49
  $.fn.emulateTransitionEnd = function (duration: any) {
50
50
  let called = false;
51
51
  const $el = this;
@@ -75,9 +75,9 @@ $(function () {
75
75
  bindType: $.support.transition.end,
76
76
  delegateType: $.support.transition.end,
77
77
  handle: function (e) {
78
- // @ts-expect-error [FEI-5003] - TS2769 - No overload matches this call.
78
+ // @ts-expect-error - TS2769 - No overload matches this call.
79
79
  if ($(e.target).is(this)) {
80
- // @ts-expect-error [FEI-5003] - TS2345 - Argument of type 'IArguments' is not assignable to parameter of type '[t: TriggeredEvent<EventTarget, any, any, any>, ...args: any[]]'.
80
+ // @ts-expect-error - TS2345 - Argument of type 'IArguments' is not assignable to parameter of type '[t: TriggeredEvent<EventTarget, any, any, any>, ...args: any[]]'.
81
81
  // eslint-disable-next-line prefer-rest-params
82
82
  return e.handleObj.handler.apply(this, arguments);
83
83
  }
@@ -107,14 +107,14 @@ function changeViewportTag(
107
107
 
108
108
  // Hacky way to get the page to take the changes
109
109
  // From http://stackoverflow.com/a/36894653
110
- // @ts-expect-error [FEI-5003] - TS2322 - Type 'number' is not assignable to type 'string'.
110
+ // @ts-expect-error - TS2322 - Type 'number' is not assignable to type 'string'.
111
111
  document.body.style.opacity = 0.9999;
112
112
 
113
113
  // ... and undo the temporary change.
114
114
  // TODO(jeff, CP-3128): Use Wonder Blocks Timing API.
115
115
  // eslint-disable-next-line no-restricted-syntax
116
116
  setTimeout(() => {
117
- // @ts-expect-error [FEI-5003] - TS2322 - Type 'number' is not assignable to type 'string'.
117
+ // @ts-expect-error - TS2322 - Type 'number' is not assignable to type 'string'.
118
118
  document.body.style.opacity = 1;
119
119
 
120
120
  // ... which involves restoring the scroll position, which may have
@@ -175,7 +175,7 @@ ZoomServiceClass.prototype.handleZoomClick = function (
175
175
 
176
176
  if (
177
177
  !enableMobilePinch &&
178
- // @ts-expect-error [FEI-5003] - TS2554 - Expected 1 arguments, but got 0.
178
+ // @ts-expect-error - TS2554 - Expected 1 arguments, but got 0.
179
179
  target.width >= window.innerWidth - Zoom.getOffset()
180
180
  ) {
181
181
  return;
@@ -298,15 +298,15 @@ ZoomServiceClass.prototype._touchMove = function (e) {
298
298
  * The zoom object
299
299
  */
300
300
  function Zoom(img: any, enableMobilePinch: any) {
301
- // @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. | TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
301
+ // @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. | TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
302
302
  this._fullHeight = this._fullWidth = this._overlay = null;
303
303
 
304
- // @ts-expect-error [FEI-5003] - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
304
+ // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
305
305
  this._targetImage = img;
306
- // @ts-expect-error [FEI-5003] - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
306
+ // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
307
307
  this._enableMobilePinch = enableMobilePinch;
308
308
 
309
- // @ts-expect-error [FEI-5003] - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
309
+ // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
310
310
  this._$body = $(document.body);
311
311
  }
312
312
 
@@ -330,13 +330,13 @@ Zoom.prototype.zoomImage = function () {
330
330
  img.onload = function () {
331
331
  // Load the image without specifying height and width so that we can find
332
332
  // the true height and width.
333
- // @ts-expect-error [FEI-5003] - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
333
+ // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
334
334
  this._fullHeight = Number(img.height);
335
- // @ts-expect-error [FEI-5003] - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
335
+ // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
336
336
  this._fullWidth = Number(img.width);
337
337
 
338
338
  // Set up our image to mirror the current image on the document.
339
- // @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.
339
+ // @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.
340
340
  const imageOffset = (this._imageOffset = $(this._targetImage).offset());
341
341
 
342
342
  // Position the image using viewport-fixed coordinates so that it is
@@ -345,21 +345,21 @@ Zoom.prototype.zoomImage = function () {
345
345
  // Said another way ... get the coordinates of the image relative to
346
346
  // the viewport, and use those to position our new image (which is
347
347
  // absolutely positioned within a full-bleed fixed-position container).
348
- // @ts-expect-error [FEI-5003] - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation. | TS2532 - Object is possibly 'undefined'. | TS2532 - Object is possibly 'undefined'.
348
+ // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation. | TS2532 - Object is possibly 'undefined'. | TS2532 - Object is possibly 'undefined'.
349
349
  const left = (this._left = imageOffset.left - $(window).scrollLeft());
350
- // @ts-expect-error [FEI-5003] - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation. | TS2532 - Object is possibly 'undefined'. | TS2532 - Object is possibly 'undefined'.
350
+ // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation. | TS2532 - Object is possibly 'undefined'. | TS2532 - Object is possibly 'undefined'.
351
351
  const top = (this._top = imageOffset.top - $(window).scrollTop());
352
352
 
353
353
  $zoomedImage.css({
354
354
  left: left,
355
355
  top: top,
356
- // @ts-expect-error [FEI-5003] - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
356
+ // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
357
357
  width: this._targetImage.width,
358
- // @ts-expect-error [FEI-5003] - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
358
+ // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
359
359
  height: this._targetImage.height,
360
360
  });
361
361
 
362
- // @ts-expect-error [FEI-5003] - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
362
+ // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
363
363
  this._zoomOriginal();
364
364
  }.bind(this);
365
365
 
@@ -413,9 +413,9 @@ Zoom.prototype._calculateZoom = function () {
413
413
  };
414
414
 
415
415
  Zoom.prototype._triggerAnimation = function () {
416
- // @ts-expect-error [FEI-5003] - TS2532 - Object is possibly 'undefined'.
416
+ // @ts-expect-error - TS2532 - Object is possibly 'undefined'.
417
417
  const viewportY = $(window).scrollTop() + window.innerHeight / 2;
418
- // @ts-expect-error [FEI-5003] - TS2532 - Object is possibly 'undefined'.
418
+ // @ts-expect-error - TS2532 - Object is possibly 'undefined'.
419
419
  const viewportX = $(window).scrollLeft() + window.innerWidth / 2;
420
420
 
421
421
  const scaleFactor = this._imgScaleFactor;
@@ -464,7 +464,7 @@ Zoom.prototype._onZoomInFinish = function () {
464
464
  // Horizontally center the image within the viewport, either by positioning
465
465
  // with CSS or scrolling the viewport.
466
466
  if (width < window.innerWidth) {
467
- // @ts-expect-error [FEI-5003] - TS2322 - Type 'string' is not assignable to type 'number'.
467
+ // @ts-expect-error - TS2322 - Type 'string' is not assignable to type 'number'.
468
468
  left = "50%";
469
469
  marginLeft = -width / 2;
470
470
  } else {
@@ -473,7 +473,7 @@ Zoom.prototype._onZoomInFinish = function () {
473
473
 
474
474
  // ... and similarly, vertically center the image within the viewport.
475
475
  if (height < window.innerHeight) {
476
- // @ts-expect-error [FEI-5003] - TS2322 - Type 'string' is not assignable to type 'number'.
476
+ // @ts-expect-error - TS2322 - Type 'string' is not assignable to type 'number'.
477
477
  top = "50%";
478
478
  marginTop = -height / 2;
479
479
  } else {