@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
@@ -1,1041 +0,0 @@
1
- /**
2
- * Flowtype definitions for data
3
- * Generated by Flowgen from a Typescript Definition
4
- * Flowgen v1.21.0
5
- * @flow
6
- */
7
- import type { Coord } from "./interactive2/types";
8
- export type Range = [number, number];
9
- export type Size = [number, number];
10
- declare type Empty = { [key: empty]: empty };
11
- export type PerseusItem = {|
12
- question: PerseusRenderer,
13
- hints: $ReadOnlyArray<PerseusRenderer>,
14
- answerArea: PerseusAnswerArea | null | void,
15
- _multi: any,
16
- itemDataVersion: Version,
17
- answer: any,
18
- |};
19
- export type PerseusArticle = $ReadOnlyArray<PerseusRenderer>;
20
- export type Version = {|
21
- major: number,
22
- minor: number,
23
- |};
24
- export type PerseusRenderer = {|
25
- content: string,
26
- widgets: {
27
- [key: string]: PerseusWidget,
28
- },
29
- replace?: boolean,
30
- metadata?: $ReadOnlyArray<string>,
31
- images: {
32
- [key: string]: PerseusImageDetail,
33
- },
34
- |};
35
- export type PerseusImageDetail = {|
36
- width: number,
37
- height: number,
38
- |};
39
- export type PerseusAnswerArea = {|
40
- zTable: boolean,
41
- chi2Table: boolean,
42
- tTable: boolean,
43
- calculator: boolean,
44
- periodicTable: boolean,
45
- |};
46
- declare type Widget<Type: string, Options> = {|
47
- type: Type,
48
- static?: boolean,
49
- graded?: boolean,
50
- alignment?: string,
51
- options: Options | null | void,
52
- key?: number,
53
- version?: Version,
54
- |};
55
- export type CategorizerWidget = Widget<
56
- "categorizer",
57
- PerseusCategorizerWidgetOptions
58
- >;
59
- export type CSProgramWidget = Widget<
60
- "cs-program",
61
- PerseusCSProgramWidgetOptions
62
- >;
63
- export type DefinitionWidget = Widget<
64
- "definition",
65
- PerseusDefinitionWidgetOptions
66
- >;
67
- export type DropdownWidget = Widget<"dropdown", PerseusDropdownWidgetOptions>;
68
- export type ExplanationWidget = Widget<
69
- "explanation",
70
- PerseusExplanationWidgetOptions
71
- >;
72
- export type ExpressionWidget = Widget<
73
- "expression",
74
- PerseusExpressionWidgetOptions
75
- >;
76
- export type GradedGroupSetWidget = Widget<
77
- "graded-group-set",
78
- PerseusGradedGroupSetWidgetOptions
79
- >;
80
- export type GradedGroupWidget = Widget<
81
- "graded-group",
82
- PerseusGradedGroupWidgetOptions
83
- >;
84
- export type GrapherWidget = Widget<"grapher", PerseusGrapherWidgetOptions>;
85
- export type GroupWidget = Widget<"group", PerseusGroupWidgetOptions>;
86
- export type IFrameWidget = Widget<"iframe", PerseusIFrameWidgetOptions>;
87
- export type ImageWidget = Widget<"image", PerseusImageWidgetOptions>;
88
- export type InteractionWidget = Widget<
89
- "interaction",
90
- PerseusInteractionWidgetOptions
91
- >;
92
- export type InteractiveGraphWidget = Widget<
93
- "interactive-graph",
94
- PerseusInteractiveGraphWidgetOptions
95
- >;
96
- export type LabelImageWidget = Widget<
97
- "label-image",
98
- PerseusLabelImageWidgetOptions
99
- >;
100
- export type MatcherWidget = Widget<"matcher", PerseusMatcherWidgetOptions>;
101
- export type MatrixWidget = Widget<"matrix", PerseusMatrixWidgetOptions>;
102
- export type MeasurerWidget = Widget<"measurer", PerseusMeasurerWidgetOptions>;
103
- export type NumberLineWidget = Widget<
104
- "number-line",
105
- PerseusNumberLineWidgetOptions
106
- >;
107
- export type NumericInputWidget = Widget<
108
- "numeric-input",
109
- PerseusNumericInputWidgetOptions
110
- >;
111
- export type OrdererWidget = Widget<"orderer", PerseusOrdererWidgetOptions>;
112
- export type PassageRefWidget = Widget<
113
- "passage-ref",
114
- PerseusPassageRefWidgetOptions
115
- >;
116
- export type PassageWidget = Widget<"passage", PerseusPassageWidgetOptions>;
117
- export type PlotterWidget = Widget<"plotter", PerseusPlotterWidgetOptions>;
118
- export type RadioWidget = Widget<"radio", PerseusRadioWidgetOptions>;
119
- export type SequenceWidget = Widget<"sequence", PerseusSequenceWidgetOptions>;
120
- export type SimulatorWidget = Widget<
121
- "simulator",
122
- PerseusSimulatorWidgetOptions
123
- >;
124
- export type SorterWidget = Widget<"sorter", PerseusSorterWidgetOptions>;
125
- export type TableWidget = Widget<"table", PerseusTableWidgetOptions>;
126
- export type TransformerWidget = Widget<
127
- "transformer",
128
- PerseusTransformerWidgetOptions
129
- >;
130
- export type ExampleGraphieWidget = Widget<
131
- "example-graphie-widget",
132
- PerseusExampleGraphieWidgetOptions
133
- >;
134
- export type ExampleWidget = Widget<
135
- "example-widget",
136
- PerseusExampleWidgetOptions
137
- >;
138
- export type InputNumberWidget = Widget<
139
- "input-number",
140
- PerseusInputNumberWidgetOptions
141
- >;
142
- export type LightsPuzzleWidget = Widget<
143
- "lights-puzzle",
144
- PerseusLightsPuzzleWidgetOptions
145
- >;
146
- export type MoleculeRendererWidget = Widget<
147
- "molecule-renderer",
148
- PerseusMoleculeRendererWidgetOptions
149
- >;
150
- export type RefTargetWidget = Widget<
151
- "passage-ref-target",
152
- PerseusPassageRefTargetWidgetOptions
153
- >;
154
- export type ReactionDiagramWidget = Widget<
155
- "reaction-diagtram",
156
- PerseusReactionDiagramWidgetOptions
157
- >;
158
- export type SimpleMarkdownTesterWidget = Widget<
159
- "simple-markdown-tester",
160
- PerseusSimpleMarkdownTesterWidgetOptions
161
- >;
162
- export type UnitInputWidget = Widget<
163
- "unit-input",
164
- PerseusUnitInputWidgetOptions
165
- >;
166
- export type VideoWidget = Widget<"video", PerseusVideoWidgetOptions>;
167
- export type PerseusWidget =
168
- | CategorizerWidget
169
- | CSProgramWidget
170
- | DefinitionWidget
171
- | DropdownWidget
172
- | ExampleGraphieWidget
173
- | ExampleWidget
174
- | ExplanationWidget
175
- | ExpressionWidget
176
- | GradedGroupSetWidget
177
- | GradedGroupWidget
178
- | GrapherWidget
179
- | GroupWidget
180
- | IFrameWidget
181
- | ImageWidget
182
- | InputNumberWidget
183
- | InteractionWidget
184
- | InteractiveGraphWidget
185
- | LabelImageWidget
186
- | LightsPuzzleWidget
187
- | MatcherWidget
188
- | MatrixWidget
189
- | MeasurerWidget
190
- | MoleculeRendererWidget
191
- | NumberLineWidget
192
- | NumericInputWidget
193
- | OrdererWidget
194
- | PassageRefWidget
195
- | PassageWidget
196
- | PlotterWidget
197
- | RadioWidget
198
- | ReactionDiagramWidget
199
- | RefTargetWidget
200
- | SequenceWidget
201
- | SimpleMarkdownTesterWidget
202
- | SimulatorWidget
203
- | SorterWidget
204
- | TableWidget
205
- | TransformerWidget
206
- | UnitInputWidget
207
- | VideoWidget;
208
- export type PerseusImageBackground = {|
209
- url: string | null | void,
210
- width?: number,
211
- height?: number,
212
- top?: number,
213
- left?: number,
214
- scale?: number | string,
215
- bottom?: number,
216
- |};
217
- export type PerseusCategorizerWidgetOptions = {|
218
- items: $ReadOnlyArray<string>,
219
- categories: $ReadOnlyArray<string>,
220
- randomizeItems: boolean,
221
- static: boolean,
222
- values: $ReadOnlyArray<number>,
223
- highlightLint?: boolean,
224
- linterContext?: PerseusLinterContext,
225
- |};
226
- export type PerseusLinterContext = {|
227
- contentType: string,
228
- paths: $ReadOnlyArray<string>,
229
- stack: $ReadOnlyArray<string>,
230
- |};
231
- export type PerseusDefinitionWidgetOptions = {|
232
- togglePrompt: string,
233
- definition: string,
234
- static: boolean,
235
- |};
236
- export type PerseusDropdownWidgetOptions = {|
237
- choices: $ReadOnlyArray<PerseusDropdownChoice>,
238
- placeholder: string,
239
- static: boolean,
240
- |};
241
- export type PerseusDropdownChoice = {|
242
- content: string,
243
- correct: boolean,
244
- |};
245
- export type PerseusExplanationWidgetOptions = {|
246
- showPrompt: string,
247
- hidePrompt: string,
248
- explanation: string,
249
- widgets: {
250
- [key: string]: PerseusWidget,
251
- },
252
- static: boolean,
253
- |};
254
- export type PerseusExpressionWidgetOptions = {|
255
- answerForms: $ReadOnlyArray<PerseusExpressionAnswerForm>,
256
- buttonSets: $ReadOnlyArray<string>,
257
- functions: $ReadOnlyArray<string>,
258
- times: boolean,
259
- buttonsVisible?: "always" | "never" | "focused",
260
- |};
261
- declare export var PerseusExpressionAnswerFormConsidered: [
262
- "correct",
263
- "wrong",
264
- "ungraded"
265
- ];
266
- export type PerseusExpressionAnswerForm = {|
267
- value: string,
268
- form: boolean,
269
- simplify: boolean,
270
- considered: $ElementType<
271
- typeof PerseusExpressionAnswerFormConsidered,
272
- number
273
- >,
274
- key?: string,
275
- |};
276
- export type PerseusGradedGroupWidgetOptions = {|
277
- title: string,
278
- hasHint?: boolean | null | void,
279
- hint?: PerseusRenderer | null | void,
280
- content: string,
281
- widgets: {
282
- [key: string]: PerseusWidget,
283
- },
284
- widgetEnabled?: boolean | null | void,
285
- immutableWidgets?: boolean | null | void,
286
- images: {
287
- [key: string]: PerseusImageDetail,
288
- },
289
- |};
290
- export type PerseusGradedGroupSetWidgetOptions = {|
291
- gradedGroups: $ReadOnlyArray<PerseusGradedGroupWidgetOptions>,
292
- |};
293
- export type PerseusGrapherWidgetOptions = {|
294
- availableTypes: $ReadOnlyArray<
295
- | "absolute_value"
296
- | "exponential"
297
- | "linear"
298
- | "logarithm"
299
- | "quadratic"
300
- | "sinusoid"
301
- | "tangent"
302
- >,
303
- correct:
304
- | {|
305
- type: "absolute_value",
306
- coords: [Coord, Coord],
307
- |}
308
- | {|
309
- type: "exponential",
310
- asymptote: [Coord, Coord],
311
- coords: [Coord, Coord],
312
- |}
313
- | {|
314
- type: "linear",
315
- coords: [Coord, Coord],
316
- |}
317
- | {|
318
- type: "logarithm",
319
- asymptote: [Coord, Coord],
320
- coords: [Coord, Coord],
321
- |}
322
- | {|
323
- type: "quadratic",
324
- coords: [Coord, Coord],
325
- |}
326
- | {|
327
- type: "sinusoid",
328
- coords: [Coord, Coord],
329
- |}
330
- | {|
331
- type: "tangent",
332
- coords: [Coord, Coord],
333
- |},
334
- graph: {|
335
- backgroundImage: {|
336
- bottom?: number,
337
- height?: number,
338
- left?: number,
339
- scale?: number,
340
- url?: string | null | void,
341
- width?: number,
342
- |},
343
- box?: [number, number],
344
- editableSettings?: $ReadOnlyArray<"graph" | "snap" | "image" | "measure">,
345
- gridStep?: [number, number],
346
- labels: [string, string],
347
- markings: "graph" | "none" | "grid",
348
- range: [[number, number], [number, number]],
349
- rulerLabel: "",
350
- rulerTicks: number,
351
- showProtractor?: boolean,
352
- showRuler?: boolean,
353
- showTooltips?: boolean,
354
- snapStep?: [number, number],
355
- step: [number, number],
356
- valid?: boolean | string,
357
- |},
358
- |};
359
- export type PerseusGroupWidgetOptions = PerseusRenderer;
360
- export type PerseusImageWidgetOptions = {|
361
- title?: string,
362
- caption?: string,
363
- alt?: string,
364
- backgroundImage: PerseusImageBackground,
365
- static?: boolean,
366
- labels?: $ReadOnlyArray<PerseusImageLabel>,
367
- range?: [Range, Range],
368
- box?: Size,
369
- |};
370
- export type PerseusImageLabel = {|
371
- content: string,
372
- alignment: string,
373
- coordinates: $ReadOnlyArray<number>,
374
- |};
375
- export type PerseusInteractiveGraphWidgetOptions = {|
376
- step: [number, number],
377
- gridStep: [number, number],
378
- snapStep: [number, number],
379
- backgroundImage?: PerseusImageBackground,
380
- markings: string,
381
- labels: $ReadOnlyArray<string>,
382
- showProtractor: boolean,
383
- showRuler: boolean,
384
- showTooltips?: boolean,
385
- rulerLabel: string,
386
- rulerTicks: number,
387
- range: [[number, number], [number, number]],
388
- graph: PerseusGraphType,
389
- correct: PerseusGraphType,
390
- |};
391
- export type PerseusGraphType =
392
- | PerseusGraphTypeAngle
393
- | PerseusGraphTypeCircle
394
- | PerseusGraphTypeLinear
395
- | PerseusGraphTypeLinearSystem
396
- | PerseusGraphTypePoint
397
- | PerseusGraphTypePolygon
398
- | PerseusGraphTypeQuadratic
399
- | PerseusGraphTypeRay
400
- | PerseusGraphTypeSegment
401
- | PerseusGraphTypeSinusoid;
402
- export type PerseusGraphTypeCommon = {|
403
- coord?: Coord,
404
- |};
405
- export type PerseusGraphTypeAngle = {|
406
- type: "angle",
407
- showAngles?: boolean,
408
- allowReflexAngles?: boolean,
409
- angleOffsetDeg?: number,
410
- snapDegrees?: number,
411
- match?: "congruent",
412
- coords?: $ReadOnlyArray<Coord>,
413
- |};
414
- export type PerseusGraphTypeCircle = {|
415
- ...{|
416
- type: "circle",
417
- center?: Coord,
418
- radius?: number,
419
- |},
420
- ...PerseusGraphTypeCommon,
421
- |};
422
- export type PerseusGraphTypeLinear = {|
423
- ...{|
424
- type: "linear",
425
- coords?: $ReadOnlyArray<Coord>,
426
- |},
427
- ...PerseusGraphTypeCommon,
428
- |};
429
- export type PerseusGraphTypeLinearSystem = {|
430
- ...{|
431
- type: "linear-system",
432
- coords?: $ReadOnlyArray<$ReadOnlyArray<Coord>>,
433
- |},
434
- ...PerseusGraphTypeCommon,
435
- |};
436
- export type PerseusGraphTypePoint = {|
437
- ...{|
438
- type: "point",
439
- numPoints?: number | "unlimited",
440
- coords?: $ReadOnlyArray<Coord>,
441
- |},
442
- ...PerseusGraphTypeCommon,
443
- |};
444
- export type PerseusGraphTypePolygon = {|
445
- ...{|
446
- type: "polygon",
447
- numSides?: number | "unlimited",
448
- showAngles?: boolean,
449
- showSides?: boolean,
450
- snapTo?: string,
451
- match?: "similar" | "congruent" | "approx",
452
- coords?: $ReadOnlyArray<Coord>,
453
- |},
454
- ...PerseusGraphTypeCommon,
455
- |};
456
- export type PerseusGraphTypeQuadratic = {|
457
- ...{|
458
- type: "quadratic",
459
- coords?: $ReadOnlyArray<Coord>,
460
- |},
461
- ...PerseusGraphTypeCommon,
462
- |};
463
- export type PerseusGraphTypeSegment = {|
464
- ...{|
465
- type: "segment",
466
- numSegments?: number,
467
- coords?: $ReadOnlyArray<$ReadOnlyArray<Coord>>,
468
- |},
469
- ...PerseusGraphTypeCommon,
470
- |};
471
- export type PerseusGraphTypeSinusoid = {|
472
- ...{|
473
- type: "sinusoid",
474
- coords?: $ReadOnlyArray<Coord>,
475
- |},
476
- ...PerseusGraphTypeCommon,
477
- |};
478
- export type PerseusGraphTypeRay = {|
479
- ...{|
480
- type: "ray",
481
- coords?: $ReadOnlyArray<Coord>,
482
- |},
483
- ...PerseusGraphTypeCommon,
484
- |};
485
- export type PerseusLabelImageWidgetOptions = {|
486
- choices: $ReadOnlyArray<string>,
487
- imageUrl: string,
488
- imageAlt: string,
489
- imageHeight: number,
490
- imageWidth: number,
491
- markers: $ReadOnlyArray<PerseusLabelImageMarker>,
492
- hideChoicesFromInstructions: boolean,
493
- multipleAnswers: boolean,
494
- static: boolean,
495
- |};
496
- export type PerseusLabelImageMarker = {|
497
- answers: $ReadOnlyArray<string>,
498
- label: string,
499
- x: number,
500
- y: number,
501
- |};
502
- export type PerseusMatcherWidgetOptions = {|
503
- labels: $ReadOnlyArray<string>,
504
- left: $ReadOnlyArray<string>,
505
- right: $ReadOnlyArray<string>,
506
- orderMatters: boolean,
507
- padding: boolean,
508
- |};
509
- export type PerseusMatrixWidgetOptions = {|
510
- prefix: string,
511
- suffix: string,
512
- answers: $ReadOnlyArray<$ReadOnlyArray<number>>,
513
- cursorPosition: $ReadOnlyArray<number>,
514
- matrixBoardSize: $ReadOnlyArray<number>,
515
- static: boolean,
516
- |};
517
- export type PerseusMeasurerWidgetOptions = {|
518
- image: PerseusImageBackground,
519
- showProtractor: boolean,
520
- showRuler: boolean,
521
- rulerLabel: string,
522
- rulerTicks: number,
523
- rulerPixels: number,
524
- rulerLength: number,
525
- box: $ReadOnlyArray<number>,
526
- static: boolean,
527
- |};
528
- export type MathFormat =
529
- | "integer"
530
- | "mixed"
531
- | "improper"
532
- | "proper"
533
- | "decimal"
534
- | "percent"
535
- | "pi";
536
- export type PerseusNumericInputAnswerForm = {|
537
- simplify: "required" | "correct" | "enforced" | "optional" | null | void,
538
- name: MathFormat,
539
- |};
540
- export type PerseusNumericInputWidgetOptions = {|
541
- answers: $ReadOnlyArray<PerseusNumericInputAnswer>,
542
- labelText: string,
543
- size: string,
544
- coefficient: boolean,
545
- rightAlign?: boolean,
546
- static: boolean,
547
- answerForms?: $ReadOnlyArray<PerseusNumericInputAnswerForm>,
548
- |};
549
- export type PerseusNumericInputAnswer = {|
550
- message: string,
551
- value: number,
552
- status: string,
553
- answerForms?: $ReadOnlyArray<MathFormat>,
554
- strict: boolean,
555
- maxError: number | null | void,
556
- simplify: string | null | void,
557
- |};
558
- export type PerseusNumberLineWidgetOptions = {|
559
- range: $ReadOnlyArray<number>,
560
- labelRange: $ReadOnlyArray<number | null>,
561
- labelStyle: string,
562
- labelTicks: boolean,
563
- isTickCtrl?: boolean | null | void,
564
- divisionRange: $ReadOnlyArray<number>,
565
- numDivisions: number | null | void,
566
- snapDivisions: number,
567
- tickStep: number | null | void,
568
- correctRel: string | null | void,
569
- correctX: number | null | void,
570
- initialX: number | null | void,
571
- showTooltip?: boolean,
572
- static: boolean,
573
- |};
574
- export type PerseusOrdererWidgetOptions = {|
575
- options: $ReadOnlyArray<PerseusRenderer>,
576
- correctOptions: $ReadOnlyArray<PerseusRenderer>,
577
- otherOptions: $ReadOnlyArray<PerseusRenderer>,
578
- height: string,
579
- layout: string,
580
- |};
581
- export type PerseusPassageWidgetOptions = {|
582
- footnotes: string,
583
- passageText: string,
584
- passageTitle: string,
585
- showLineNumbers: boolean,
586
- static: boolean,
587
- |};
588
- export type PerseusPassageRefWidgetOptions = {|
589
- passageNumber: number,
590
- referenceNumber: number,
591
- summaryText: string,
592
- |};
593
- export type PerseusPlotterWidgetOptions = {|
594
- labels: $ReadOnlyArray<string>,
595
- categories: $ReadOnlyArray<string>,
596
- type: string,
597
- maxY: number,
598
- scaleY: number,
599
- labelInterval: number | null | void,
600
- snapsPerLine: number,
601
- starting: $ReadOnlyArray<number>,
602
- correct: $ReadOnlyArray<number>,
603
- picUrl: number | null | void,
604
- picSize: number | null | void,
605
- picBoxHeight: number | null | void,
606
- plotDimensions: $ReadOnlyArray<number>,
607
- |};
608
- export type PerseusRadioWidgetOptions = {|
609
- choices: $ReadOnlyArray<PerseusRadioChoice>,
610
- hasNoneOfTheAbove?: boolean,
611
- countChoices?: boolean,
612
- randomize?: boolean,
613
- multipleSelect?: boolean,
614
- deselectEnabled?: boolean,
615
- onePerLine?: boolean,
616
- displayCount?: any,
617
- noneOfTheAbove?: false,
618
- |};
619
- export type PerseusRadioChoice = {|
620
- content: string,
621
- clue?: string,
622
- correct?: boolean,
623
- isNoneOfTheAbove?: boolean,
624
- widgets?: {
625
- [key: string]: PerseusWidget,
626
- },
627
- |};
628
- export type PerseusSequenceWidgetOptions = {|
629
- json: $ReadOnlyArray<PerseusRenderer>,
630
- |};
631
- export type PerseusSimulatorWidgetOptions = {|
632
- xAxisLabel: string,
633
- yAxisLabel: string,
634
- proportionLabel: string,
635
- proportionOrPercentage: string,
636
- numTrials: number,
637
- |};
638
- export type PerseusSorterWidgetOptions = {|
639
- correct: $ReadOnlyArray<string>,
640
- padding: boolean,
641
- layout: string,
642
- |};
643
- export type PerseusTableWidgetOptions = {|
644
- headers: $ReadOnlyArray<string>,
645
- rows: number,
646
- columns: number,
647
- answers: $ReadOnlyArray<$ReadOnlyArray<string>>,
648
- |};
649
- export type PerseusTransformerWidgetOptions = {|
650
- correct: {|
651
- shape: {|
652
- type: $ReadOnlyArray<
653
- | "polygon-5"
654
- | "polygon-3"
655
- | "polygon-4"
656
- | "lineSegment"
657
- | "polygon-6"
658
- | "angle"
659
- | "line"
660
- | "circle"
661
- >,
662
- coords: $ReadOnlyArray<Coord>,
663
- options?: $ReadOnlyArray<{|
664
- reflex?: boolean,
665
- |}>,
666
- |},
667
- transformations: $ReadOnlyArray<PerseusTransformerTransformation>,
668
- |},
669
- drawSolutionShape: boolean,
670
- gradeEmpty: boolean,
671
- graph: {|
672
- backgroundImage: {|
673
- bottom?: number,
674
- height?: number,
675
- left?: number,
676
- scale?: number,
677
- url?: string,
678
- width?: number,
679
- |},
680
- gridStep?: [number, number],
681
- labels?: ["x", "y"],
682
- markings: "none" | "graph" | "grid",
683
- range: [[number, number], [number, number]],
684
- rulerLabel?: string,
685
- rulerTicks?: number,
686
- showProtractor: boolean,
687
- showRuler?: boolean,
688
- snapStep?: [number, number],
689
- step: [number, number],
690
- |},
691
- graphMode: "dynamic" | "interactive" | "static",
692
- listMode: "interactive" | "dynamic" | "static",
693
- starting: {|
694
- shape:
695
- | {|
696
- type: $ReadOnlyArray<
697
- | "polygon-5"
698
- | "polygon-3"
699
- | "polygon-4"
700
- | "lineSegment"
701
- | "polygon-6"
702
- >,
703
- coords: $ReadOnlyArray<Coord>,
704
- options?: $ReadOnlyArray<Empty>,
705
- |}
706
- | {|
707
- type: "polygon-3",
708
- coords: [Coord, Coord, Coord],
709
- |}
710
- | {|
711
- type: [
712
- | "polygon-3"
713
- | "lineSegment"
714
- | "polygon-4"
715
- | "polygon-5"
716
- | "polygon-6"
717
- | "line"
718
- | "circle"
719
- ],
720
- coords: $ReadOnlyArray<Coord>,
721
- options: [Empty],
722
- |}
723
- | {|
724
- type: ["polygon-3"],
725
- coords: [Coord, Coord, Coord],
726
- options?: [Empty],
727
- |}
728
- | {|
729
- type: ["angle"],
730
- coords: [Coord, Coord, Coord],
731
- options: [
732
- {|
733
- reflex: boolean,
734
- |}
735
- ],
736
- |}
737
- | {|
738
- type: ["line" | "lineSegment"],
739
- coords: [Coord, Coord],
740
- options?: [Empty],
741
- |}
742
- | {|
743
- type: "polygon",
744
- coords: $ReadOnlyArray<Coord>,
745
- |},
746
- transformations: $ReadOnlyArray<PerseusTransformerTransformation>,
747
- |},
748
- tools: {|
749
- dilation: DilationTool,
750
- reflection: ReflectionTool,
751
- rotation: RotationTool,
752
- translation: TranslationTool,
753
- |},
754
- version: number,
755
- |};
756
- export type DilationTransformation = {|
757
- type: "dilation",
758
- center: Coord,
759
- scale: number,
760
- constraints: {|
761
- fixed: boolean,
762
- |},
763
- |};
764
- export type ReflectionTransformation = {|
765
- type: "reflection",
766
- line: [Coord, Coord],
767
- constraints?: {|
768
- fixed: boolean,
769
- |},
770
- |};
771
- export type RotationTransformation = {|
772
- type: "rotation",
773
- angleDeg: number,
774
- center: Coord,
775
- constraints: {|
776
- fixed: boolean,
777
- |},
778
- |};
779
- export type TranslationTransformation = {|
780
- type: "translation",
781
- vector: Coord,
782
- contraints: Empty,
783
- |};
784
- export type PerseusTransformerTransformation =
785
- | DilationTransformation
786
- | ReflectionTransformation
787
- | RotationTransformation
788
- | TranslationTransformation;
789
- declare type DilationTool = {|
790
- constraints: PerseusTransformerToolConstraints,
791
- coord: Coord,
792
- enabled: boolean,
793
- required?: boolean,
794
- |};
795
- declare type ReflectionTool = {|
796
- constraints: PerseusTransformerToolConstraints,
797
- coords: [Coord, Coord],
798
- enabled: boolean,
799
- required?: boolean,
800
- |};
801
- declare type RotationTool = {|
802
- constraints: PerseusTransformerToolConstraints,
803
- coord: Coord,
804
- enabled: boolean,
805
- required?: boolean,
806
- |};
807
- declare type TranslationTool = {|
808
- constraints: Empty,
809
- enabled: boolean,
810
- required?: boolean,
811
- |};
812
- export type PerseusTransformerToolConstraints = {|
813
- fixed: boolean,
814
- |};
815
- export type PerseusInteractionWidgetOptions = {|
816
- graph: PerseusInteractionGraph,
817
- elements: $ReadOnlyArray<PerseusInteractionElement>,
818
- static: boolean,
819
- |};
820
- export type PerseusInteractionGraph = {|
821
- editableSettings?: $ReadOnlyArray<"canvas" | "graph">,
822
- box: Size,
823
- labels: $ReadOnlyArray<string>,
824
- range: [Range, Range],
825
- gridStep: $ReadOnly<[number, number]>,
826
- markings: string,
827
- snapStep?: $ReadOnly<[number, number]>,
828
- valid?: boolean | string,
829
- backgroundImage?: PerseusImageBackground,
830
- showProtractor?: boolean,
831
- showRuler?: boolean,
832
- rulerLabel?: string,
833
- rulerTicks?: number,
834
- tickStep: $ReadOnly<[number, number]>,
835
- |};
836
- export type PerseusInteractionElement =
837
- | {|
838
- type: "function",
839
- key: string,
840
- options: PerseusInteractionFunctionElementOptions,
841
- |}
842
- | {|
843
- type: "label",
844
- key: string,
845
- options: PerseusInteractionLabelElementOptions,
846
- |}
847
- | {|
848
- type: "line",
849
- key: string,
850
- options: PerseusInteractionLineElementOptions,
851
- |}
852
- | {|
853
- type: "movable-line",
854
- key: string,
855
- options: PerseusInteractionMovableLineElementOptions,
856
- |}
857
- | {|
858
- type: "movable-point",
859
- key: string,
860
- options: PerseusInteractionMovablePointElementOptions,
861
- |}
862
- | {|
863
- type: "parametric",
864
- key: string,
865
- options: PerseusInteractionParametricElementOptions,
866
- |}
867
- | {|
868
- type: "point",
869
- key: string,
870
- options: PerseusInteractionPointElementOptions,
871
- |}
872
- | {|
873
- type: "rectangle",
874
- key: string,
875
- options: PerseusInteractionRectangleElementOptions,
876
- |};
877
- export type PerseusInteractionFunctionElementOptions = {|
878
- value: string,
879
- funcName: string,
880
- rangeMin: string,
881
- rangeMax: string,
882
- color: string,
883
- strokeDasharray: string,
884
- strokeWidth: number,
885
- |};
886
- export type PerseusInteractionLabelElementOptions = {|
887
- label: string,
888
- color: string,
889
- coordX: string,
890
- coordY: string,
891
- |};
892
- export type PerseusInteractionLineElementOptions = {|
893
- color: string,
894
- startX: string,
895
- startY: string,
896
- endX: string,
897
- endY: string,
898
- strokeDasharray: string,
899
- strokeWidth: number,
900
- arrows: string,
901
- |};
902
- export type PerseusInteractionMovableLineElementOptions = {|
903
- startX: string,
904
- startY: string,
905
- startSubscript: number,
906
- endX: string,
907
- endY: string,
908
- endSubscript: number,
909
- constraint: string,
910
- snap: number,
911
- constraintFn: string,
912
- constraintXMin: string,
913
- constraintXMax: string,
914
- constraintYMin: string,
915
- constraintYMax: string,
916
- |};
917
- export type PerseusInteractionMovablePointElementOptions = {|
918
- startX: string,
919
- startY: string,
920
- varSubscript: number,
921
- constraint: string,
922
- snap: number,
923
- constraintFn: string,
924
- constraintXMin: string,
925
- constraintXMax: string,
926
- constraintYMin: string,
927
- constraintYMax: string,
928
- |};
929
- export type PerseusInteractionParametricElementOptions = {|
930
- x: string,
931
- y: string,
932
- rangeMin: string,
933
- rangeMax: string,
934
- color: string,
935
- strokeDasharray: string,
936
- strokeWidth: number,
937
- |};
938
- export type PerseusInteractionPointElementOptions = {|
939
- color: string,
940
- coordX: string,
941
- coordY: string,
942
- |};
943
- export type PerseusInteractionRectangleElementOptions = {|
944
- color: string,
945
- coordX: string,
946
- coordY: string,
947
- width: string,
948
- height: string,
949
- |};
950
- export type PerseusCSProgramWidgetOptions = {|
951
- programID: string,
952
- programType?: any,
953
- settings: $ReadOnlyArray<PerseusCSProgramSetting>,
954
- showEditor: boolean,
955
- showButtons: boolean,
956
- width: number,
957
- height: number,
958
- static: boolean,
959
- |};
960
- export type PerseusCSProgramSetting = {|
961
- name: string,
962
- value: string,
963
- |};
964
- export type PerseusIFrameWidgetOptions = {|
965
- url: string,
966
- settings: $ReadOnlyArray<PerseusCSProgramSetting>,
967
- width: number | string,
968
- height: number | string,
969
- allowFullScreen: boolean,
970
- allowTopNavigation?: boolean,
971
- static: boolean,
972
- |};
973
- export type PerseusVideoWidgetOptions = {|
974
- location: string,
975
- static?: boolean,
976
- |};
977
- export type PerseusInputNumberWidgetOptions = {|
978
- answerType?:
979
- | "number"
980
- | "decimal"
981
- | "integer"
982
- | "rational"
983
- | "improper"
984
- | "mixed"
985
- | "percent"
986
- | "pi",
987
- inexact?: boolean,
988
- maxError?: number | string,
989
- rightAlign?: boolean,
990
- simplify: "required" | "optional" | "enforced",
991
- size: "normal" | "small",
992
- value: string | number,
993
- customKeypad?: boolean,
994
- |};
995
- export type PerseusExampleGraphieWidgetOptions = any;
996
- export type PerseusExampleWidgetOptions = any;
997
- export type PerseusLightsPuzzleWidgetOptions = any;
998
- export type PerseusMoleculeRendererWidgetOptions = any;
999
- export type PerseusPassageRefTargetWidgetOptions = any;
1000
- export type PerseusReactionDiagramWidgetOptions = any;
1001
- export type PerseusSimpleMarkdownTesterWidgetOptions = any;
1002
- export type PerseusUnitInputWidgetOptions = any;
1003
- export type PerseusWidgetOptions =
1004
- | PerseusCategorizerWidgetOptions
1005
- | PerseusCSProgramWidgetOptions
1006
- | PerseusDefinitionWidgetOptions
1007
- | PerseusDropdownWidgetOptions
1008
- | PerseusExampleGraphieWidgetOptions
1009
- | PerseusExampleWidgetOptions
1010
- | PerseusExplanationWidgetOptions
1011
- | PerseusExpressionWidgetOptions
1012
- | PerseusGradedGroupSetWidgetOptions
1013
- | PerseusGradedGroupWidgetOptions
1014
- | PerseusIFrameWidgetOptions
1015
- | PerseusImageWidgetOptions
1016
- | PerseusInputNumberWidgetOptions
1017
- | PerseusInteractionWidgetOptions
1018
- | PerseusInteractiveGraphWidgetOptions
1019
- | PerseusLabelImageWidgetOptions
1020
- | PerseusLightsPuzzleWidgetOptions
1021
- | PerseusMatcherWidgetOptions
1022
- | PerseusMatrixWidgetOptions
1023
- | PerseusMeasurerWidgetOptions
1024
- | PerseusMoleculeRendererWidgetOptions
1025
- | PerseusNumberLineWidgetOptions
1026
- | PerseusNumericInputWidgetOptions
1027
- | PerseusOrdererWidgetOptions
1028
- | PerseusPassageRefTargetWidgetOptions
1029
- | PerseusPassageRefWidgetOptions
1030
- | PerseusPassageWidgetOptions
1031
- | PerseusPlotterWidgetOptions
1032
- | PerseusRadioWidgetOptions
1033
- | PerseusReactionDiagramWidgetOptions
1034
- | PerseusSequenceWidgetOptions
1035
- | PerseusSimpleMarkdownTesterWidgetOptions
1036
- | PerseusSimulatorWidgetOptions
1037
- | PerseusSorterWidgetOptions
1038
- | PerseusTableWidgetOptions
1039
- | PerseusTransformerWidgetOptions
1040
- | PerseusUnitInputWidgetOptions
1041
- | PerseusVideoWidgetOptions;