@khanacademy/perseus 19.1.5 → 19.1.7

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 (489) hide show
  1. package/dist/components/graph.d.ts +0 -1
  2. package/dist/components/graphie.d.ts +0 -1
  3. package/dist/es/index.js +319 -212
  4. package/dist/es/index.js.map +1 -1
  5. package/dist/index.js +338 -222
  6. package/dist/index.js.map +1 -1
  7. package/dist/interactive2/movable-point.d.ts +195 -1
  8. package/dist/interactive2/movable.d.ts +1 -1
  9. package/dist/interactive2/types.d.ts +4 -2
  10. package/dist/interactive2.d.ts +2 -1
  11. package/dist/server-item-renderer.d.ts +2 -2
  12. package/dist/util/graphie.d.ts +12 -2
  13. package/dist/widgets/expression.d.ts +6 -6
  14. package/package.json +11 -8
  15. package/.babelrc.js +0 -8
  16. package/.eslintrc.js +0 -12
  17. package/CHANGELOG.md +0 -1432
  18. package/src/__stories__/article-renderer.stories.tsx +0 -100
  19. package/src/__stories__/hints-renderer.stories.tsx +0 -55
  20. package/src/__stories__/server-item-renderer.stories.tsx +0 -44
  21. package/src/__testdata__/article-renderer.testdata.ts +0 -212
  22. package/src/__testdata__/graphie.testdata.ts +0 -51
  23. package/src/__testdata__/renderer.testdata.ts +0 -274
  24. package/src/__testdata__/server-item-renderer.testdata.ts +0 -171
  25. package/src/__tests__/__snapshots__/perseus-markdown.test.ts.snap +0 -507
  26. package/src/__tests__/__snapshots__/renderer.test.tsx.snap +0 -525
  27. package/src/__tests__/__snapshots__/server-item-renderer.test.tsx.snap +0 -285
  28. package/src/__tests__/a11y.test.ts +0 -303
  29. package/src/__tests__/article-renderer.test.tsx +0 -130
  30. package/src/__tests__/error-boundary.test.tsx +0 -76
  31. package/src/__tests__/extract-perseus-data.test.ts +0 -1027
  32. package/src/__tests__/init.test.ts +0 -10
  33. package/src/__tests__/jipt-paragraphs.test.ts +0 -32
  34. package/src/__tests__/mock-asset-loading-widget.tsx +0 -53
  35. package/src/__tests__/mock-widget.tsx +0 -33
  36. package/src/__tests__/perseus-markdown.test.ts +0 -764
  37. package/src/__tests__/renderability.test.ts +0 -480
  38. package/src/__tests__/renderer-api.test.tsx +0 -302
  39. package/src/__tests__/renderer.test.tsx +0 -1816
  40. package/src/__tests__/server-item-renderer.test.tsx +0 -582
  41. package/src/__tests__/test-items/image-item.ts +0 -24
  42. package/src/__tests__/test-items/input-number-1-item.ts +0 -26
  43. package/src/__tests__/test-items/input-number-2-item.ts +0 -38
  44. package/src/__tests__/test-items/table-item.ts +0 -29
  45. package/src/__tests__/tex-wrangler.test.ts +0 -82
  46. package/src/__tests__/util.test.ts +0 -40
  47. package/src/__tests__/widget-container.test.tsx +0 -126
  48. package/src/__tests__/widgets.test.ts +0 -91
  49. package/src/a11y.ts +0 -45
  50. package/src/all-widgets.ts +0 -9
  51. package/src/article-renderer.tsx +0 -237
  52. package/src/asset-context.ts +0 -30
  53. package/src/basic-widgets.ts +0 -16
  54. package/src/components/__stories__/button-group.stories.tsx +0 -55
  55. package/src/components/__stories__/fixed-to-responsive.stories.tsx +0 -141
  56. package/src/components/__stories__/graph.stories.tsx +0 -28
  57. package/src/components/__stories__/graphie.stories.tsx +0 -33
  58. package/src/components/__stories__/hud.stories.tsx +0 -35
  59. package/src/components/__stories__/icon.stories.tsx +0 -63
  60. package/src/components/__stories__/image-loader.stories.tsx +0 -63
  61. package/src/components/__stories__/info-tip.stories.tsx +0 -31
  62. package/src/components/__stories__/inline-icon.stories.tsx +0 -40
  63. package/src/components/__stories__/input-with-examples.stories.tsx +0 -53
  64. package/src/components/__stories__/lint.stories.tsx +0 -86
  65. package/src/components/__stories__/math-input.stories.tsx +0 -43
  66. package/src/components/__stories__/math-output.stories.tsx +0 -23
  67. package/src/components/__stories__/multi-button-group.stories.tsx +0 -66
  68. package/src/components/__stories__/number-input.stories.tsx +0 -41
  69. package/src/components/__stories__/prop-check-box.stories.tsx +0 -65
  70. package/src/components/__stories__/range-input.stories.tsx +0 -29
  71. package/src/components/__stories__/simple-keypad-input.stories.tsx +0 -27
  72. package/src/components/__stories__/sortable.stories.tsx +0 -77
  73. package/src/components/__stories__/stub-tag-editor.stories.tsx +0 -45
  74. package/src/components/__stories__/svg-image.stories.tsx +0 -74
  75. package/src/components/__stories__/tex.stories.tsx +0 -23
  76. package/src/components/__stories__/text-input.stories.tsx +0 -33
  77. package/src/components/__stories__/text-list-editor.stories.tsx +0 -32
  78. package/src/components/__stories__/tooltip.stories.tsx +0 -52
  79. package/src/components/__stories__/zoomable-tex.stories.tsx +0 -41
  80. package/src/components/__stories__/zoomable.stories.tsx +0 -49
  81. package/src/components/__testdata__/sorter.testdata.ts +0 -19
  82. package/src/components/__tests__/__snapshots__/sortable.test.tsx.snap +0 -163
  83. package/src/components/__tests__/__snapshots__/sorter.test.tsx.snap +0 -265
  84. package/src/components/__tests__/math-input.test.tsx +0 -147
  85. package/src/components/__tests__/number-input.test.tsx +0 -128
  86. package/src/components/__tests__/sortable.test.tsx +0 -269
  87. package/src/components/__tests__/sorter.test.tsx +0 -114
  88. package/src/components/__tests__/zoomable.test.tsx +0 -399
  89. package/src/components/button-group.tsx +0 -130
  90. package/src/components/constants.ts +0 -14
  91. package/src/components/fixed-to-responsive.tsx +0 -169
  92. package/src/components/graph.tsx +0 -444
  93. package/src/components/graphie-classes.ts +0 -153
  94. package/src/components/graphie-movables.ts +0 -338
  95. package/src/components/graphie.tsx +0 -400
  96. package/src/components/highlighting/highlightable-content.tsx +0 -240
  97. package/src/components/highlighting/highlights.ts +0 -207
  98. package/src/components/highlighting/ranges.ts +0 -304
  99. package/src/components/highlighting/types.ts +0 -73
  100. package/src/components/highlighting/ui/highlight-renderer.tsx +0 -172
  101. package/src/components/highlighting/ui/highlight-set-renderer.tsx +0 -185
  102. package/src/components/highlighting/ui/highlight-tooltip.tsx +0 -141
  103. package/src/components/highlighting/ui/highlighting-ui.tsx +0 -143
  104. package/src/components/highlighting/ui/selection-tracker.tsx +0 -186
  105. package/src/components/highlighting/ui/types.ts +0 -21
  106. package/src/components/highlighting/ui/util.ts +0 -165
  107. package/src/components/highlighting/word-indexer.tsx +0 -152
  108. package/src/components/hud.tsx +0 -167
  109. package/src/components/icon.tsx +0 -141
  110. package/src/components/image-loader.tsx +0 -177
  111. package/src/components/info-tip/info-tip.tsx +0 -144
  112. package/src/components/info-tip.tsx +0 -39
  113. package/src/components/inline-icon.tsx +0 -60
  114. package/src/components/input-with-examples.tsx +0 -249
  115. package/src/components/lint.tsx +0 -459
  116. package/src/components/math-input.tsx +0 -474
  117. package/src/components/math-output.tsx +0 -134
  118. package/src/components/multi-button-group.tsx +0 -135
  119. package/src/components/number-input.tsx +0 -249
  120. package/src/components/prop-check-box.tsx +0 -79
  121. package/src/components/range-input.tsx +0 -60
  122. package/src/components/simple-keypad-input.tsx +0 -88
  123. package/src/components/sortable.tsx +0 -958
  124. package/src/components/stub-tag-editor.tsx +0 -53
  125. package/src/components/svg-image.tsx +0 -779
  126. package/src/components/tex.tsx +0 -67
  127. package/src/components/text-input.tsx +0 -129
  128. package/src/components/text-list-editor.tsx +0 -166
  129. package/src/components/tooltip.tsx +0 -410
  130. package/src/components/visibility-observer/__stories__/visibility-observer.stories.tsx +0 -141
  131. package/src/components/visibility-observer/create-visibility-observer.ts +0 -108
  132. package/src/components/visibility-observer/get-scroll-parent.ts +0 -46
  133. package/src/components/visibility-observer/visibility-observer.tsx +0 -124
  134. package/src/components/zoomable-tex.tsx +0 -78
  135. package/src/components/zoomable.tsx +0 -304
  136. package/src/components.ts +0 -15
  137. package/src/definition-context.tsx +0 -59
  138. package/src/dependencies.ts +0 -40
  139. package/src/error-boundary.tsx +0 -70
  140. package/src/extra-widgets.ts +0 -75
  141. package/src/hint-renderer.tsx +0 -151
  142. package/src/hints-renderer.tsx +0 -372
  143. package/src/icon-paths.ts +0 -119
  144. package/src/index.ts +0 -171
  145. package/src/init.ts +0 -56
  146. package/src/interaction-tracker.ts +0 -62
  147. package/src/interactive2/__tests__/movable-mock.ts +0 -55
  148. package/src/interactive2/__tests__/movable-point.test.ts +0 -144
  149. package/src/interactive2/interactive-util.test.ts +0 -93
  150. package/src/interactive2/interactive-util.ts +0 -159
  151. package/src/interactive2/movable-helper-methods.ts +0 -166
  152. package/src/interactive2/movable-line-options.ts +0 -419
  153. package/src/interactive2/movable-line.ts +0 -307
  154. package/src/interactive2/movable-point-options.ts +0 -224
  155. package/src/interactive2/movable-point.tsx +0 -585
  156. package/src/interactive2/movable-polygon-options.ts +0 -389
  157. package/src/interactive2/movable-polygon.ts +0 -360
  158. package/src/interactive2/movable.test.ts +0 -249
  159. package/src/interactive2/movable.ts +0 -437
  160. package/src/interactive2/objective_.ts +0 -79
  161. package/src/interactive2/types.ts +0 -17
  162. package/src/interactive2/wrapped-defaults.ts +0 -87
  163. package/src/interactive2/wrapped-ellipse.ts +0 -94
  164. package/src/interactive2/wrapped-line.ts +0 -116
  165. package/src/interactive2/wrapped-path.ts +0 -51
  166. package/src/interactive2.ts +0 -70
  167. package/src/item-version.ts +0 -10
  168. package/src/jipt-paragraphs.ts +0 -49
  169. package/src/jquery.mobile.vmouse.js +0 -545
  170. package/src/loading-context.ts +0 -21
  171. package/src/logging/log.test.ts +0 -39
  172. package/src/logging/log.ts +0 -97
  173. package/src/mixins/__tests__/widget-prop-denylist.test.ts +0 -21
  174. package/src/mixins/changeable.ts +0 -133
  175. package/src/mixins/editor-jsonify.ts +0 -13
  176. package/src/mixins/widget-jsonify-deprecated.ts +0 -23
  177. package/src/mixins/widget-prop-denylist.ts +0 -48
  178. package/src/multi-items/__stories__/multi-renderer.stories.tsx +0 -83
  179. package/src/multi-items/__testdata__/multi-renderer.testdata.ts +0 -172
  180. package/src/multi-items/__tests__/__snapshots__/multi-renderer.test.tsx.snap +0 -1164
  181. package/src/multi-items/__tests__/items.test.ts +0 -240
  182. package/src/multi-items/__tests__/multi-renderer.test.tsx +0 -914
  183. package/src/multi-items/__tests__/prop-type-builders.test.ts +0 -133
  184. package/src/multi-items/__tests__/shapes.test.ts +0 -43
  185. package/src/multi-items/__tests__/trees.test.ts +0 -317
  186. package/src/multi-items/item-types.ts +0 -56
  187. package/src/multi-items/items.ts +0 -176
  188. package/src/multi-items/multi-renderer.tsx +0 -569
  189. package/src/multi-items/prop-type-builders.ts +0 -106
  190. package/src/multi-items/shape-types.ts +0 -52
  191. package/src/multi-items/shapes.ts +0 -52
  192. package/src/multi-items/tree-types.ts +0 -47
  193. package/src/multi-items/trees.ts +0 -360
  194. package/src/multi-items.ts +0 -75
  195. package/src/perseus-api.tsx +0 -188
  196. package/src/perseus-env.ts +0 -27
  197. package/src/perseus-error.ts +0 -17
  198. package/src/perseus-markdown.tsx +0 -405
  199. package/src/perseus-types.ts +0 -1366
  200. package/src/perseus-version.ts +0 -9
  201. package/src/question-paragraph.tsx +0 -34
  202. package/src/renderability.ts +0 -109
  203. package/src/renderer.tsx +0 -2000
  204. package/src/server-item-renderer.tsx +0 -495
  205. package/src/sigfigs.ts +0 -490
  206. package/src/styles/articles.less +0 -749
  207. package/src/styles/constants.ts +0 -94
  208. package/src/styles/global-constants.ts +0 -343
  209. package/src/styles/global-styles.ts +0 -306
  210. package/src/styles/khan-exercise.css +0 -1468
  211. package/src/styles/media-queries.ts +0 -47
  212. package/src/styles/perseus-renderer.less +0 -732
  213. package/src/styles/shared.ts +0 -130
  214. package/src/styles/util.less +0 -47
  215. package/src/styles/variables.boostrap.less +0 -277
  216. package/src/styles/variables.less +0 -56
  217. package/src/styles/variables.shared.less +0 -340
  218. package/src/styles/widgets/categorizer.less +0 -38
  219. package/src/styles/widgets/dropdown.less +0 -3
  220. package/src/styles/widgets/expression.less +0 -65
  221. package/src/styles/widgets/graded-group.less +0 -36
  222. package/src/styles/widgets/grapher.less +0 -12
  223. package/src/styles/widgets/group.less +0 -19
  224. package/src/styles/widgets/image.less +0 -54
  225. package/src/styles/widgets/interactive-graph.less +0 -64
  226. package/src/styles/widgets/label-image.less +0 -57
  227. package/src/styles/widgets/matcher.less +0 -8
  228. package/src/styles/widgets/matrix.less +0 -126
  229. package/src/styles/widgets/measurer.less +0 -20
  230. package/src/styles/widgets/orderer.less +0 -98
  231. package/src/styles/widgets/passage.less +0 -154
  232. package/src/styles/widgets/plotter.less +0 -31
  233. package/src/styles/widgets/radio.less +0 -58
  234. package/src/styles/widgets/reaction-diagram.less +0 -35
  235. package/src/styles/widgets/sequence.less +0 -5
  236. package/src/styles/widgets/sortable.less +0 -113
  237. package/src/styles/widgets/table.less +0 -57
  238. package/src/styles/widgets/unit.less +0 -15
  239. package/src/tex-wrangler.ts +0 -182
  240. package/src/translation-linter.ts +0 -126
  241. package/src/traversal.ts +0 -138
  242. package/src/types.ts +0 -513
  243. package/src/util/a11y.ts +0 -23
  244. package/src/util/answer-types.test.ts +0 -114
  245. package/src/util/answer-types.ts +0 -876
  246. package/src/util/colors.ts +0 -93
  247. package/src/util/drawing-transform.test.ts +0 -67
  248. package/src/util/drawing-transform.ts +0 -102
  249. package/src/util/extract-perseus-data.ts +0 -539
  250. package/src/util/fix-passage-refs.ts +0 -121
  251. package/src/util/geometry.test.ts +0 -75
  252. package/src/util/geometry.ts +0 -312
  253. package/src/util/graph-bounds.ts +0 -23
  254. package/src/util/graph-utils.ts +0 -15
  255. package/src/util/graphie.test.ts +0 -1277
  256. package/src/util/graphie.ts +0 -1576
  257. package/src/util/interactive.ts +0 -4174
  258. package/src/util/interval.ts +0 -4
  259. package/src/util/katex-preprocess.ts +0 -14
  260. package/src/util/math.test.ts +0 -11
  261. package/src/util/math.ts +0 -294
  262. package/src/util/mobile-native-utils.test.ts +0 -22
  263. package/src/util/mobile-native-utils.ts +0 -12
  264. package/src/util/parse-perseus-json.test.ts +0 -10
  265. package/src/util/parse-perseus-json.ts +0 -13
  266. package/src/util/react-render.tsx +0 -27
  267. package/src/util/register-all-widgets-for-testing.ts +0 -13
  268. package/src/util/scroll-utils.ts +0 -155
  269. package/src/util/sizing-utils.ts +0 -46
  270. package/src/util/tex.ts +0 -73
  271. package/src/util/url-utils.ts +0 -34
  272. package/src/util.graphie.test.ts +0 -45
  273. package/src/util.graphie.ts +0 -59
  274. package/src/util.ts +0 -966
  275. package/src/version.ts +0 -10
  276. package/src/widget-container.tsx +0 -199
  277. package/src/widgets/__stories__/categorizer.stories.tsx +0 -14
  278. package/src/widgets/__stories__/cs-program.stories.tsx +0 -14
  279. package/src/widgets/__stories__/definition.stories.tsx +0 -114
  280. package/src/widgets/__stories__/dropdown.stories.tsx +0 -14
  281. package/src/widgets/__stories__/explanation.stories.tsx +0 -18
  282. package/src/widgets/__stories__/expression.stories.tsx +0 -145
  283. package/src/widgets/__stories__/graded-group-set.stories.tsx +0 -31
  284. package/src/widgets/__stories__/graded-group.stories.tsx +0 -31
  285. package/src/widgets/__stories__/grapher.stories.tsx +0 -46
  286. package/src/widgets/__stories__/group.stories.tsx +0 -14
  287. package/src/widgets/__stories__/iframe.stories.tsx +0 -14
  288. package/src/widgets/__stories__/image.stories.tsx +0 -85
  289. package/src/widgets/__stories__/input-number.stories.tsx +0 -101
  290. package/src/widgets/__stories__/interaction.stories.tsx +0 -14
  291. package/src/widgets/__stories__/interactive-graph.stories.tsx +0 -60
  292. package/src/widgets/__stories__/label-image.stories.tsx +0 -130
  293. package/src/widgets/__stories__/matcher.stories.tsx +0 -14
  294. package/src/widgets/__stories__/matrix.stories.tsx +0 -14
  295. package/src/widgets/__stories__/number-line.stories.tsx +0 -14
  296. package/src/widgets/__stories__/numeric-input.stories.tsx +0 -105
  297. package/src/widgets/__stories__/orderer.stories.tsx +0 -18
  298. package/src/widgets/__stories__/passage-ref.stories.tsx +0 -33
  299. package/src/widgets/__stories__/passage.stories.tsx +0 -39
  300. package/src/widgets/__stories__/plotter.stories.tsx +0 -27
  301. package/src/widgets/__stories__/radio.stories.tsx +0 -86
  302. package/src/widgets/__stories__/random-widgets.stories.tsx +0 -59
  303. package/src/widgets/__stories__/sorter.stories.tsx +0 -14
  304. package/src/widgets/__stories__/test-keypad-context-wrapper.tsx +0 -66
  305. package/src/widgets/__stories__/unit.stories.tsx +0 -28
  306. package/src/widgets/__stories__/video-transcript-link.stories.tsx +0 -23
  307. package/src/widgets/__stories__/video.stories.tsx +0 -22
  308. package/src/widgets/__testdata__/base-radio.testdata.ts +0 -21
  309. package/src/widgets/__testdata__/categorizer.testdata.ts +0 -89
  310. package/src/widgets/__testdata__/cs-program.testdata.ts +0 -27
  311. package/src/widgets/__testdata__/dropdown.testdata.ts +0 -71
  312. package/src/widgets/__testdata__/explanation.testdata.ts +0 -85
  313. package/src/widgets/__testdata__/expression.testdata.ts +0 -198
  314. package/src/widgets/__testdata__/graded-group-set.testdata.ts +0 -356
  315. package/src/widgets/__testdata__/graded-group.testdata.ts +0 -77
  316. package/src/widgets/__testdata__/grapher.testdata.ts +0 -374
  317. package/src/widgets/__testdata__/group.testdata.ts +0 -153
  318. package/src/widgets/__testdata__/iframe.testdata.ts +0 -35
  319. package/src/widgets/__testdata__/image.testdata.ts +0 -36
  320. package/src/widgets/__testdata__/input-number.testdata.ts +0 -72
  321. package/src/widgets/__testdata__/interaction.testdata.ts +0 -262
  322. package/src/widgets/__testdata__/interactive-graph-random.testdata.ts +0 -269
  323. package/src/widgets/__testdata__/interactive-graph.testdata.ts +0 -644
  324. package/src/widgets/__testdata__/label-image.testdata.ts +0 -308
  325. package/src/widgets/__testdata__/matcher.testdata.ts +0 -33
  326. package/src/widgets/__testdata__/matrix.testdata.ts +0 -28
  327. package/src/widgets/__testdata__/number-line.testdata.ts +0 -30
  328. package/src/widgets/__testdata__/numeric-input.testdata.ts +0 -265
  329. package/src/widgets/__testdata__/orderer.testdata.ts +0 -123
  330. package/src/widgets/__testdata__/passage-ref.testdata.ts +0 -101
  331. package/src/widgets/__testdata__/passage.testdata.ts +0 -95
  332. package/src/widgets/__testdata__/plotter.testdata.ts +0 -36
  333. package/src/widgets/__testdata__/radio.testdata.ts +0 -324
  334. package/src/widgets/__testdata__/randomizers.ts +0 -51
  335. package/src/widgets/__testdata__/sorter.testdata.ts +0 -19
  336. package/src/widgets/__testdata__/video.testdata.ts +0 -61
  337. package/src/widgets/__tests__/__snapshots__/categorizer.test.ts.snap +0 -940
  338. package/src/widgets/__tests__/__snapshots__/cs-program.test.ts.snap +0 -67
  339. package/src/widgets/__tests__/__snapshots__/definition.test.ts.snap +0 -97
  340. package/src/widgets/__tests__/__snapshots__/dropdown.test.ts.snap +0 -133
  341. package/src/widgets/__tests__/__snapshots__/explanation.test.ts.snap +0 -425
  342. package/src/widgets/__tests__/__snapshots__/graded-group-set-jipt.test.ts.snap +0 -729
  343. package/src/widgets/__tests__/__snapshots__/graded-group-set.test.ts.snap +0 -339
  344. package/src/widgets/__tests__/__snapshots__/graded-group.test.ts.snap +0 -801
  345. package/src/widgets/__tests__/__snapshots__/grapher.test.ts.snap +0 -2673
  346. package/src/widgets/__tests__/__snapshots__/group.test.tsx.snap +0 -1211
  347. package/src/widgets/__tests__/__snapshots__/iframe.test.ts.snap +0 -61
  348. package/src/widgets/__tests__/__snapshots__/image.test.ts.snap +0 -378
  349. package/src/widgets/__tests__/__snapshots__/input-number.test.ts.snap +0 -495
  350. package/src/widgets/__tests__/__snapshots__/interaction.test.ts.snap +0 -292
  351. package/src/widgets/__tests__/__snapshots__/interactive-graph.test.ts.snap +0 -2889
  352. package/src/widgets/__tests__/__snapshots__/matcher.test.tsx.snap +0 -883
  353. package/src/widgets/__tests__/__snapshots__/matrix.test.ts.snap +0 -514
  354. package/src/widgets/__tests__/__snapshots__/number-line.test.ts.snap +0 -814
  355. package/src/widgets/__tests__/__snapshots__/numeric-input.test.ts.snap +0 -470
  356. package/src/widgets/__tests__/__snapshots__/orderer.test.ts.snap +0 -243
  357. package/src/widgets/__tests__/__snapshots__/passage-ref.test.ts.snap +0 -434
  358. package/src/widgets/__tests__/__snapshots__/passage.test.tsx.snap +0 -1956
  359. package/src/widgets/__tests__/__snapshots__/plotter.test.tsx.snap +0 -827
  360. package/src/widgets/__tests__/__snapshots__/radio.test.ts.snap +0 -4237
  361. package/src/widgets/__tests__/__snapshots__/unit.test.tsx.snap +0 -20
  362. package/src/widgets/__tests__/__snapshots__/video.test.ts.snap +0 -153
  363. package/src/widgets/__tests__/categorizer.test.ts +0 -203
  364. package/src/widgets/__tests__/cs-program.test.ts +0 -43
  365. package/src/widgets/__tests__/definition.test.ts +0 -136
  366. package/src/widgets/__tests__/dropdown.test.ts +0 -105
  367. package/src/widgets/__tests__/explanation.test.ts +0 -198
  368. package/src/widgets/__tests__/expression-mobile.test.tsx +0 -363
  369. package/src/widgets/__tests__/expression.test.tsx +0 -484
  370. package/src/widgets/__tests__/graded-group-set-jipt.test.ts +0 -30
  371. package/src/widgets/__tests__/graded-group-set.test.ts +0 -288
  372. package/src/widgets/__tests__/graded-group.test.ts +0 -232
  373. package/src/widgets/__tests__/grapher.cypress.ts +0 -576
  374. package/src/widgets/__tests__/grapher.test.ts +0 -33
  375. package/src/widgets/__tests__/group.test.tsx +0 -510
  376. package/src/widgets/__tests__/iframe.test.ts +0 -45
  377. package/src/widgets/__tests__/image.test.ts +0 -62
  378. package/src/widgets/__tests__/input-number.test.ts +0 -354
  379. package/src/widgets/__tests__/interaction.test.ts +0 -31
  380. package/src/widgets/__tests__/interactive-graph.cypress.ts +0 -815
  381. package/src/widgets/__tests__/interactive-graph.test.ts +0 -106
  382. package/src/widgets/__tests__/matcher.test.tsx +0 -176
  383. package/src/widgets/__tests__/matrix.test.ts +0 -82
  384. package/src/widgets/__tests__/number-line.test.ts +0 -79
  385. package/src/widgets/__tests__/numeric-input.test.ts +0 -575
  386. package/src/widgets/__tests__/orderer.test.ts +0 -73
  387. package/src/widgets/__tests__/passage-ref.test.ts +0 -168
  388. package/src/widgets/__tests__/passage.test.tsx +0 -224
  389. package/src/widgets/__tests__/plotter.test.tsx +0 -69
  390. package/src/widgets/__tests__/radio/base-radio.test.tsx +0 -470
  391. package/src/widgets/__tests__/radio/choice-icon.test.tsx +0 -90
  392. package/src/widgets/__tests__/radio/choice.test.tsx +0 -310
  393. package/src/widgets/__tests__/radio/focus-ring.test.tsx +0 -22
  394. package/src/widgets/__tests__/radio/option-status.test.tsx +0 -77
  395. package/src/widgets/__tests__/radio.test.ts +0 -807
  396. package/src/widgets/__tests__/randomizers.test.ts +0 -53
  397. package/src/widgets/__tests__/renderQuestion.tsx +0 -101
  398. package/src/widgets/__tests__/unit.test.tsx +0 -168
  399. package/src/widgets/__tests__/video.test.ts +0 -69
  400. package/src/widgets/categorizer.tsx +0 -344
  401. package/src/widgets/cs-program.tsx +0 -227
  402. package/src/widgets/definition.tsx +0 -121
  403. package/src/widgets/deprecated-standin/__stories__/deprecated-standin.stories.tsx +0 -30
  404. package/src/widgets/deprecated-standin/__tests__/__snapshots__/deprecated-standin.test.ts.snap +0 -70
  405. package/src/widgets/deprecated-standin/__tests__/deprecated-standin.test.ts +0 -93
  406. package/src/widgets/deprecated-standin/index.tsx +0 -58
  407. package/src/widgets/dropdown.tsx +0 -142
  408. package/src/widgets/explanation.tsx +0 -317
  409. package/src/widgets/expression.tsx +0 -707
  410. package/src/widgets/graded-group-answer-bar.tsx +0 -142
  411. package/src/widgets/graded-group-set.tsx +0 -338
  412. package/src/widgets/graded-group.tsx +0 -471
  413. package/src/widgets/grapher/util.tsx +0 -799
  414. package/src/widgets/grapher.tsx +0 -660
  415. package/src/widgets/group.tsx +0 -195
  416. package/src/widgets/iframe.tsx +0 -195
  417. package/src/widgets/image.tsx +0 -312
  418. package/src/widgets/input-number.tsx +0 -412
  419. package/src/widgets/interaction/arrow-picker.tsx +0 -38
  420. package/src/widgets/interaction/color-picker.tsx +0 -69
  421. package/src/widgets/interaction/dash-picker.tsx +0 -45
  422. package/src/widgets/interaction/element-container.tsx +0 -100
  423. package/src/widgets/interaction.tsx +0 -826
  424. package/src/widgets/interactive-graph.tsx +0 -2597
  425. package/src/widgets/label-image/__stories__/answer-choices.stories.tsx +0 -91
  426. package/src/widgets/label-image/__stories__/answer-pill.stories.tsx +0 -62
  427. package/src/widgets/label-image/__stories__/marker.stories.tsx +0 -171
  428. package/src/widgets/label-image/__tests__/answer-pill.test.tsx +0 -75
  429. package/src/widgets/label-image/__tests__/hide-answers-toggle.test.tsx +0 -39
  430. package/src/widgets/label-image/answer-choices.tsx +0 -88
  431. package/src/widgets/label-image/answer-pill.tsx +0 -103
  432. package/src/widgets/label-image/hide-answers-toggle.tsx +0 -40
  433. package/src/widgets/label-image/marker.tsx +0 -268
  434. package/src/widgets/label-image/strings.ts +0 -5
  435. package/src/widgets/label-image/types.ts +0 -27
  436. package/src/widgets/label-image.test.ts +0 -928
  437. package/src/widgets/label-image.tsx +0 -819
  438. package/src/widgets/lights-puzzle.tsx +0 -359
  439. package/src/widgets/matcher.tsx +0 -298
  440. package/src/widgets/matrix.tsx +0 -634
  441. package/src/widgets/measurer.tsx +0 -222
  442. package/src/widgets/molecule/__tests__/layout.test.ts +0 -162
  443. package/src/widgets/molecule/__tests__/parser.test.ts +0 -155
  444. package/src/widgets/molecule/molecule-drawing.ts +0 -173
  445. package/src/widgets/molecule/molecule-layout.ts +0 -362
  446. package/src/widgets/molecule/smiles-parser.ts +0 -296
  447. package/src/widgets/molecule.tsx +0 -172
  448. package/src/widgets/number-line.tsx +0 -862
  449. package/src/widgets/numeric-input.tsx +0 -576
  450. package/src/widgets/orderer.tsx +0 -786
  451. package/src/widgets/passage/__tests__/passage-markdown.test.ts +0 -376
  452. package/src/widgets/passage/passage-markdown.tsx +0 -475
  453. package/src/widgets/passage-ref-target.tsx +0 -76
  454. package/src/widgets/passage-ref.tsx +0 -213
  455. package/src/widgets/passage.tsx +0 -582
  456. package/src/widgets/plotter.tsx +0 -1194
  457. package/src/widgets/radio/__stories__/base-radio.stories.tsx +0 -196
  458. package/src/widgets/radio/__stories__/choice-icon.stories.tsx +0 -166
  459. package/src/widgets/radio/__stories__/choice-none-above.stories.tsx +0 -40
  460. package/src/widgets/radio/__stories__/choice.stories.tsx +0 -137
  461. package/src/widgets/radio/__stories__/focus-ring.stories.tsx +0 -43
  462. package/src/widgets/radio/__stories__/option-status.stories.tsx +0 -103
  463. package/src/widgets/radio/base-radio.tsx +0 -511
  464. package/src/widgets/radio/choice-a11y-text.ts +0 -61
  465. package/src/widgets/radio/choice-icon/choice-icon.tsx +0 -218
  466. package/src/widgets/radio/choice-icon/cross-out-line.tsx +0 -51
  467. package/src/widgets/radio/choice-icon/shared-styles.ts +0 -15
  468. package/src/widgets/radio/choice-none-above.tsx +0 -56
  469. package/src/widgets/radio/choice.jsx.fixture.ts +0 -45
  470. package/src/widgets/radio/choice.tsx +0 -359
  471. package/src/widgets/radio/focus-ring.tsx +0 -57
  472. package/src/widgets/radio/option-status.tsx +0 -98
  473. package/src/widgets/radio/util.test.ts +0 -18
  474. package/src/widgets/radio/util.ts +0 -31
  475. package/src/widgets/radio/widget.tsx +0 -520
  476. package/src/widgets/radio.ts +0 -157
  477. package/src/widgets/reaction-diagram.tsx +0 -144
  478. package/src/widgets/sequence.tsx +0 -142
  479. package/src/widgets/simulator.tsx +0 -829
  480. package/src/widgets/sorter.tsx +0 -155
  481. package/src/widgets/table.tsx +0 -393
  482. package/src/widgets/unit.tsx +0 -374
  483. package/src/widgets/video-transcript-link.test.tsx +0 -213
  484. package/src/widgets/video-transcript-link.tsx +0 -84
  485. package/src/widgets/video.tsx +0 -135
  486. package/src/widgets.ts +0 -489
  487. package/src/zoom.ts +0 -555
  488. package/tsconfig-build.json +0 -26
  489. package/tsconfig-build.tsbuildinfo +0 -1
@@ -1,545 +0,0 @@
1
- /* eslint-disable */
2
- /*
3
- * jQuery Mobile Framework : "mouse" plugin
4
- * Copyright (c) jQuery Project
5
- * Dual licensed under the MIT or GPL Version 2 licenses.
6
- * http://jquery.org/license
7
- */
8
-
9
- // This plugin is an experiment for abstracting away the touch and mouse
10
- // events so that developers don't have to worry about which method of input
11
- // the device their document is loaded on supports.
12
- //
13
- // The idea here is to allow the developer to register listeners for the
14
- // basic mouse events, such as mousedown, mousemove, mouseup, and click,
15
- // and the plugin will take care of registering the correct listeners
16
- // behind the scenes to invoke the listener at the fastest possible time
17
- // for that device, while still retaining the order of event firing in
18
- // the traditional mouse environment, should multiple handlers be registered
19
- // on the same element for different events.
20
- //
21
- // The current version exposes the following virtual events to jQuery bind methods:
22
- // "vmouseover vmousedown vmousemove vmouseup vclick vmouseout vmousecancel"
23
- import $ from "jquery";
24
-
25
- (function ($, window, document, undefined) {
26
- if (typeof $ === "undefined") {
27
- return;
28
- }
29
-
30
- var dataPropertyName = "virtualMouseBindings",
31
- touchTargetPropertyName = "virtualTouchID",
32
- virtualEventNames =
33
- "vmouseover vmousedown vmousemove vmouseup vclick vmouseout vmousecancel".split(
34
- " ",
35
- ),
36
- touchEventProps = "clientX clientY pageX pageY screenX screenY".split(
37
- " ",
38
- ),
39
- mouseHookProps = $.event.mouseHooks ? $.event.mouseHooks.props : [],
40
- mouseEventProps = $.event.props.concat(mouseHookProps),
41
- activeDocHandlers = {},
42
- resetTimerID = 0,
43
- startX = 0,
44
- startY = 0,
45
- didScroll = false,
46
- clickBlockList = [],
47
- blockMouseTriggers = false,
48
- blockTouchTriggers = false,
49
- eventCaptureSupported = "addEventListener" in document,
50
- $document = $(document),
51
- nextTouchID = 1,
52
- lastTouchID = 0;
53
-
54
- $.vmouse = {
55
- moveDistanceThreshold: 10,
56
- clickDistanceThreshold: 10,
57
- resetTimerDuration: 1500,
58
- };
59
-
60
- function getNativeEvent(event) {
61
- while (event && typeof event.originalEvent !== "undefined") {
62
- event = event.originalEvent;
63
- }
64
- return event;
65
- }
66
-
67
- function createVirtualEvent(event, eventType) {
68
- var t = event.type,
69
- oe,
70
- props,
71
- ne,
72
- prop,
73
- ct,
74
- touch,
75
- i,
76
- j,
77
- len;
78
-
79
- event = $.Event(event);
80
- event.type = eventType;
81
-
82
- oe = event.originalEvent;
83
- props = $.event.props;
84
-
85
- // addresses separation of $.event.props in to $.event.mouseHook.props and Issue 3280
86
- // https://github.com/jquery/jquery-mobile/issues/3280
87
- if (t.search(/mouse/) > -1) {
88
- props = mouseEventProps;
89
- }
90
-
91
- // copy original event properties over to the new event
92
- // this would happen if we could call $.event.fix instead of $.Event
93
- // but we don't have a way to force an event to be fixed multiple times
94
- if (oe) {
95
- for (i = props.length, prop; i; ) {
96
- prop = props[--i];
97
- event[prop] = oe[prop];
98
- }
99
- }
100
-
101
- // make sure that if the mouse and click virtual events are generated
102
- // without a .which one is defined
103
- if (t.search(/mouse(down|up)|click/) > -1 && !event.which) {
104
- event.which = 1;
105
- }
106
-
107
- if (t.search(/^touch/) !== -1) {
108
- ne = getNativeEvent(oe);
109
- t = ne.touches;
110
- ct = ne.changedTouches;
111
- touch = t && t.length ? t[0] : ct && ct.length ? ct[0] : undefined;
112
-
113
- if (touch) {
114
- for (j = 0, len = touchEventProps.length; j < len; j++) {
115
- prop = touchEventProps[j];
116
- event[prop] = touch[prop];
117
- }
118
- }
119
- }
120
-
121
- return event;
122
- }
123
-
124
- function getVirtualBindingFlags(element) {
125
- var flags = {},
126
- b,
127
- k;
128
-
129
- while (element) {
130
- b = $.data(element, dataPropertyName);
131
-
132
- for (k in b) {
133
- if (b[k]) {
134
- flags[k] = flags.hasVirtualBinding = true;
135
- }
136
- }
137
- element = element.parentNode;
138
- }
139
- return flags;
140
- }
141
-
142
- function getClosestElementWithVirtualBinding(element, eventType) {
143
- var b;
144
- while (element) {
145
- b = $.data(element, dataPropertyName);
146
-
147
- if (b && (!eventType || b[eventType])) {
148
- return element;
149
- }
150
- element = element.parentNode;
151
- }
152
- return null;
153
- }
154
-
155
- function enableTouchBindings() {
156
- blockTouchTriggers = false;
157
- }
158
-
159
- function disableTouchBindings() {
160
- blockTouchTriggers = true;
161
- }
162
-
163
- function enableMouseBindings() {
164
- lastTouchID = 0;
165
- clickBlockList.length = 0;
166
- blockMouseTriggers = false;
167
-
168
- // When mouse bindings are enabled, our
169
- // touch bindings are disabled.
170
- disableTouchBindings();
171
- }
172
-
173
- function disableMouseBindings() {
174
- // When mouse bindings are disabled, our
175
- // touch bindings are enabled.
176
- enableTouchBindings();
177
- }
178
-
179
- function startResetTimer() {
180
- clearResetTimer();
181
- resetTimerID = setTimeout(function () {
182
- resetTimerID = 0;
183
- enableMouseBindings();
184
- }, $.vmouse.resetTimerDuration);
185
- }
186
-
187
- function clearResetTimer() {
188
- if (resetTimerID) {
189
- clearTimeout(resetTimerID);
190
- resetTimerID = 0;
191
- }
192
- }
193
-
194
- function triggerVirtualEvent(eventType, event, flags) {
195
- var ve;
196
-
197
- if (
198
- (flags && flags[eventType]) ||
199
- (!flags &&
200
- getClosestElementWithVirtualBinding(event.target, eventType))
201
- ) {
202
- ve = createVirtualEvent(event, eventType);
203
-
204
- $(event.target).trigger(ve);
205
- }
206
-
207
- return ve;
208
- }
209
-
210
- function mouseEventCallback(event) {
211
- var touchID = $.data(event.target, touchTargetPropertyName);
212
-
213
- if (!blockMouseTriggers && (!lastTouchID || lastTouchID !== touchID)) {
214
- var ve = triggerVirtualEvent("v" + event.type, event);
215
- if (ve) {
216
- if (ve.isDefaultPrevented()) {
217
- event.preventDefault();
218
- }
219
- if (ve.isPropagationStopped()) {
220
- event.stopPropagation();
221
- }
222
- if (ve.isImmediatePropagationStopped()) {
223
- event.stopImmediatePropagation();
224
- }
225
- }
226
- }
227
- }
228
-
229
- function handleTouchStart(event) {
230
- var touches = getNativeEvent(event).touches,
231
- target,
232
- flags;
233
-
234
- if (touches && touches.length === 1) {
235
- target = event.target;
236
- flags = getVirtualBindingFlags(target);
237
-
238
- if (flags.hasVirtualBinding) {
239
- lastTouchID = nextTouchID++;
240
- $.data(target, touchTargetPropertyName, lastTouchID);
241
-
242
- clearResetTimer();
243
-
244
- disableMouseBindings();
245
- didScroll = false;
246
-
247
- var t = getNativeEvent(event).touches[0];
248
- startX = t.pageX;
249
- startY = t.pageY;
250
-
251
- triggerVirtualEvent("vmouseover", event, flags);
252
- triggerVirtualEvent("vmousedown", event, flags);
253
- }
254
- }
255
- }
256
-
257
- function handleScroll(event) {
258
- if (blockTouchTriggers) {
259
- return;
260
- }
261
-
262
- if (!didScroll) {
263
- triggerVirtualEvent(
264
- "vmousecancel",
265
- event,
266
- getVirtualBindingFlags(event.target),
267
- );
268
- }
269
-
270
- didScroll = true;
271
- startResetTimer();
272
- }
273
-
274
- function handleTouchMove(event) {
275
- if (blockTouchTriggers) {
276
- return;
277
- }
278
-
279
- var t = getNativeEvent(event).touches[0],
280
- didCancel = didScroll,
281
- moveThreshold = $.vmouse.moveDistanceThreshold,
282
- didScroll =
283
- didScroll ||
284
- Math.abs(t.pageX - startX) > moveThreshold ||
285
- Math.abs(t.pageY - startY) > moveThreshold,
286
- flags = getVirtualBindingFlags(event.target);
287
-
288
- if (didScroll && !didCancel) {
289
- triggerVirtualEvent("vmousecancel", event, flags);
290
- }
291
-
292
- triggerVirtualEvent("vmousemove", event, flags);
293
- startResetTimer();
294
- }
295
-
296
- function handleTouchEnd(event) {
297
- if (blockTouchTriggers) {
298
- return;
299
- }
300
-
301
- disableTouchBindings();
302
-
303
- var flags = getVirtualBindingFlags(event.target),
304
- t;
305
- triggerVirtualEvent("vmouseup", event, flags);
306
-
307
- if (!didScroll) {
308
- var ve = triggerVirtualEvent("vclick", event, flags);
309
- if (ve && ve.isDefaultPrevented()) {
310
- // The target of the mouse events that follow the touchend
311
- // event don't necessarily match the target used during the
312
- // touch. This means we need to rely on coordinates for blocking
313
- // any click that is generated.
314
- t = getNativeEvent(event).changedTouches[0];
315
- clickBlockList.push({
316
- touchID: lastTouchID,
317
- x: t.clientX,
318
- y: t.clientY,
319
- });
320
-
321
- // Prevent any mouse events that follow from triggering
322
- // virtual event notifications.
323
- blockMouseTriggers = true;
324
- }
325
- }
326
- triggerVirtualEvent("vmouseout", event, flags);
327
- didScroll = false;
328
-
329
- startResetTimer();
330
- }
331
-
332
- function hasVirtualBindings(ele) {
333
- var bindings = $.data(ele, dataPropertyName),
334
- k;
335
-
336
- if (bindings) {
337
- for (k in bindings) {
338
- if (bindings[k]) {
339
- return true;
340
- }
341
- }
342
- }
343
- return false;
344
- }
345
-
346
- function dummyMouseHandler() {}
347
-
348
- function getSpecialEventObject(eventType) {
349
- var realType = eventType.substr(1);
350
-
351
- return {
352
- setup: function (data, namespace) {
353
- // If this is the first virtual mouse binding for this element,
354
- // add a bindings object to its data.
355
-
356
- if (!hasVirtualBindings(this)) {
357
- $.data(this, dataPropertyName, {});
358
- }
359
-
360
- // If setup is called, we know it is the first binding for this
361
- // eventType, so initialize the count for the eventType to zero.
362
- var bindings = $.data(this, dataPropertyName);
363
- bindings[eventType] = true;
364
-
365
- // If this is the first virtual mouse event for this type,
366
- // register a global handler on the document.
367
-
368
- activeDocHandlers[eventType] =
369
- (activeDocHandlers[eventType] || 0) + 1;
370
-
371
- if (activeDocHandlers[eventType] === 1) {
372
- $document.bind(realType, mouseEventCallback);
373
- }
374
-
375
- // Some browsers, like Opera Mini, won't dispatch mouse/click events
376
- // for elements unless they actually have handlers registered on them.
377
- // To get around this, we register dummy handlers on the elements.
378
-
379
- $(this).bind(realType, dummyMouseHandler);
380
-
381
- // For now, if event capture is not supported, we rely on mouse handlers.
382
- if (eventCaptureSupported) {
383
- // If this is the first virtual mouse binding for the document,
384
- // register our touchstart handler on the document.
385
-
386
- activeDocHandlers["touchstart"] =
387
- (activeDocHandlers["touchstart"] || 0) + 1;
388
-
389
- if (activeDocHandlers["touchstart"] === 1) {
390
- $document
391
- .bind("touchstart", handleTouchStart)
392
- .bind("touchend", handleTouchEnd)
393
-
394
- // On touch platforms, touching the screen and then dragging your finger
395
- // causes the window content to scroll after some distance threshold is
396
- // exceeded. On these platforms, a scroll prevents a click event from being
397
- // dispatched, and on some platforms, even the touchend is suppressed. To
398
- // mimic the suppression of the click event, we need to watch for a scroll
399
- // event. Unfortunately, some platforms like iOS don't dispatch scroll
400
- // events until *AFTER* the user lifts their finger (touchend). This means
401
- // we need to watch both scroll and touchmove events to figure out whether
402
- // or not a scroll happenens before the touchend event is fired.
403
-
404
- .bind("touchmove", handleTouchMove)
405
- .bind("scroll", handleScroll);
406
- }
407
- }
408
- },
409
-
410
- teardown: function (data, namespace) {
411
- // If this is the last virtual binding for this eventType,
412
- // remove its global handler from the document.
413
-
414
- --activeDocHandlers[eventType];
415
-
416
- if (!activeDocHandlers[eventType]) {
417
- $document.unbind(realType, mouseEventCallback);
418
- }
419
-
420
- if (eventCaptureSupported) {
421
- // If this is the last virtual mouse binding in existence,
422
- // remove our document touchstart listener.
423
-
424
- --activeDocHandlers["touchstart"];
425
-
426
- if (!activeDocHandlers["touchstart"]) {
427
- $document
428
- .unbind("touchstart", handleTouchStart)
429
- .unbind("touchmove", handleTouchMove)
430
- .unbind("touchend", handleTouchEnd)
431
- .unbind("scroll", handleScroll);
432
- }
433
- }
434
-
435
- var $this = $(this),
436
- bindings = $.data(this, dataPropertyName);
437
-
438
- // teardown may be called when an element was
439
- // removed from the DOM. If this is the case,
440
- // jQuery core may have already stripped the element
441
- // of any data bindings so we need to check it before
442
- // using it.
443
- if (bindings) {
444
- bindings[eventType] = false;
445
- }
446
-
447
- // Unregister the dummy event handler.
448
-
449
- $this.unbind(realType, dummyMouseHandler);
450
-
451
- // If this is the last virtual mouse binding on the
452
- // element, remove the binding data from the element.
453
-
454
- if (!hasVirtualBindings(this)) {
455
- $this.removeData(dataPropertyName);
456
- }
457
- },
458
- };
459
- }
460
-
461
- // Expose our custom events to the jQuery bind/unbind mechanism.
462
-
463
- for (var i = 0; i < virtualEventNames.length; i++) {
464
- $.event.special[virtualEventNames[i]] = getSpecialEventObject(
465
- virtualEventNames[i],
466
- );
467
- }
468
-
469
- // Add a capture click handler to block clicks.
470
- // Note that we require event capture support for this so if the device
471
- // doesn't support it, we punt for now and rely solely on mouse events.
472
- if (eventCaptureSupported) {
473
- document.addEventListener(
474
- "click",
475
- function (e) {
476
- var cnt = clickBlockList.length,
477
- target = e.target,
478
- x,
479
- y,
480
- ele,
481
- i,
482
- o,
483
- touchID;
484
-
485
- if (cnt) {
486
- x = e.clientX;
487
- y = e.clientY;
488
- threshold = $.vmouse.clickDistanceThreshold;
489
-
490
- // The idea here is to run through the clickBlockList to see if
491
- // the current click event is in the proximity of one of our
492
- // vclick events that had preventDefault() called on it. If we find
493
- // one, then we block the click.
494
- //
495
- // Why do we have to rely on proximity?
496
- //
497
- // Because the target of the touch event that triggered the vclick
498
- // can be different from the target of the click event synthesized
499
- // by the browser. The target of a mouse/click event that is syntehsized
500
- // from a touch event seems to be implementation specific. For example,
501
- // some browsers will fire mouse/click events for a link that is near
502
- // a touch event, even though the target of the touchstart/touchend event
503
- // says the user touched outside the link. Also, it seems that with most
504
- // browsers, the target of the mouse/click event is not calculated until the
505
- // time it is dispatched, so if you replace an element that you touched
506
- // with another element, the target of the mouse/click will be the new
507
- // element underneath that point.
508
- //
509
- // Aside from proximity, we also check to see if the target and any
510
- // of its ancestors were the ones that blocked a click. This is necessary
511
- // because of the strange mouse/click target calculation done in the
512
- // Android 2.1 browser, where if you click on an element, and there is a
513
- // mouse/click handler on one of its ancestors, the target will be the
514
- // innermost child of the touched element, even if that child is no where
515
- // near the point of touch.
516
-
517
- ele = target;
518
-
519
- while (ele) {
520
- for (i = 0; i < cnt; i++) {
521
- o = clickBlockList[i];
522
- touchID = 0;
523
-
524
- if (
525
- (ele === target &&
526
- Math.abs(o.x - x) < threshold &&
527
- Math.abs(o.y - y) < threshold) ||
528
- $.data(ele, touchTargetPropertyName) ===
529
- o.touchID
530
- ) {
531
- // XXX: We may want to consider removing matches from the block list
532
- // instead of waiting for the reset timer to fire.
533
- e.preventDefault();
534
- e.stopPropagation();
535
- return;
536
- }
537
- }
538
- ele = ele.parentNode;
539
- }
540
- }
541
- },
542
- true,
543
- );
544
- }
545
- })($, window, document);
@@ -1,21 +0,0 @@
1
- /**
2
- * A React context for signaling when all of the components in a Perseus
3
- * renderer is fully rendered. This means that all images and math have
4
- * finished loading/rendering.
5
- *
6
- * Currently only used by ServerItemRender to indicate when the question
7
- * renderer is fully rendered.
8
- */
9
- import * as React from "react";
10
-
11
- type Context = {
12
- onRendered: (isRendered: boolean) => void;
13
- };
14
-
15
- const defaultContext: Context = {
16
- onRendered: (isRendered: boolean) => {},
17
- };
18
-
19
- const context: React.Context<Context> = React.createContext(defaultContext);
20
-
21
- export default context;
@@ -1,39 +0,0 @@
1
- import {testDependencies} from "../../../../testing/test-dependencies";
2
- import {setDependencies} from "../dependencies";
3
-
4
- import {Errors, Log} from "./log";
5
-
6
- describe("Perseus logging", () => {
7
- it("should proxy log() calls to the logger provided through setDependencies", () => {
8
- // Arrange
9
- const logSpy = jest.spyOn(testDependencies.Log, "log");
10
- setDependencies(testDependencies);
11
-
12
- // Act
13
- Log.log("test message", {a: 1, b: "two"});
14
-
15
- // Assert
16
- expect(logSpy).toHaveBeenCalledWith("test message", {a: 1, b: "two"});
17
- });
18
-
19
- it("should proxy error() calls to the logger provided through setDependencies", () => {
20
- // Arrange
21
- const errorSpy = jest.spyOn(testDependencies.Log, "error");
22
- setDependencies(testDependencies);
23
-
24
- // Act
25
- Log.error("test error", Errors.NotAllowed, {
26
- cause: new Error("Something baaad"),
27
- loggedMetadata: {a: 1, b: "two"},
28
- });
29
-
30
- // Assert
31
- expect(errorSpy).toHaveBeenCalledWith("test error", "NotAllowed", {
32
- cause: expect.any(Error),
33
- loggedMetadata: {
34
- a: 1,
35
- b: "two",
36
- },
37
- });
38
- });
39
- });
@@ -1,97 +0,0 @@
1
- import {getDependencies} from "../dependencies";
2
-
3
- import type {Metadata} from "@khanacademy/wonder-stuff-core";
4
-
5
- // TODO(LP-11481): Change the primary API we use for logging in Perseus to use
6
- // getDependencies() internally... simplify usage to just using a "singleton"
7
- // which get's the injected logger.
8
-
9
- /**
10
- * @typedef {Object} Errors utility for referencing the Perseus error taxonomy.
11
- */
12
- export const Errors = Object.freeze({
13
- /**
14
- * @property {ErrorKind} Unknown The kind of error is not known.
15
- */
16
- Unknown: "Unknown",
17
- /**
18
- * @property {ErrorKind} Internal The error is internal to the executing code.
19
- */
20
- Internal: "Internal",
21
- /**
22
- * @property {ErrorKind} InvalidInput There was a problem with the provided
23
- * input, such as the wrong format or a null value.
24
- */
25
- InvalidInput: "InvalidInput",
26
- /**
27
- * @property {ErrorKind} NotAllowed There was a problem due to the state of
28
- * the system not matching the requested operation or input. For example,
29
- * trying to create a username that is valid, but is already taken by
30
- * another user. Use {@link InvalidInput} instead when the input isn't
31
- * valid regardless of the state of the system. Use {@link NotFound} when
32
- * the failure is due to not being able to find a resource.
33
- */
34
- NotAllowed: "NotAllowed",
35
- /**
36
- * @property {ErrorKind} TransientService There was a problem when making a
37
- * request to a service.
38
- */
39
- TransientService: "TransientService",
40
- /**
41
- * @property {ErrorKind} Service There was a non-transient problem when
42
- * making a request to service.
43
- */
44
- Service: "Service",
45
- });
46
-
47
- /**
48
- * @type {ErrorKind} The kind of error being reported
49
- */
50
- export type ErrorKind = typeof Errors[keyof typeof Errors];
51
-
52
- export type LogErrorOptions = {
53
- // The cause of the error.
54
- cause?: Error | null | undefined;
55
- // Extra metadata about the error that is safe and small enough to send to
56
- // external log systems (think Sentry).
57
- loggedMetadata?: Metadata | null | undefined;
58
- // Extra metadata about the error. Any data included in this key is
59
- // explicitly marked to _not_ be delivered to any configured logging
60
- // systems.
61
- metadata?: Metadata | null | undefined;
62
- };
63
-
64
- /**
65
- * Provides logging infrastructure for Perseus
66
- */
67
- export interface ILogger {
68
- // Logs a message
69
- // NOTE: Prefer including any data that varies in the `extra` parameter
70
- // instead of including it in the message. This makes it easier for error
71
- // logging platforms to group like errors together.
72
- log(message: string, extra?: Metadata | null | undefined): void;
73
- // Logs an error with a message
74
- // NOTE: Prefer including any data that varies in the `extra` parameter
75
- // instead of including it in the message. This makes it easier for error
76
- // logging platforms to group like errors together.
77
- error(message: string, kind: ErrorKind, extra?: LogErrorOptions): void;
78
- }
79
-
80
- export const Log: ILogger = {
81
- // Logs a message
82
- log: (message: string, extra?: Metadata | null) => {
83
- getDependencies().Log.log(message, extra);
84
- },
85
-
86
- // Logs an error with a message
87
- error: (
88
- // NOTE: Prefer including any data that varies in the `extra` parameter
89
- // instead of including it in the message. This makes it easier for error
90
- // logging platforms to group like errors together.
91
- message: string,
92
- kind: ErrorKind,
93
- extra?: LogErrorOptions,
94
- ) => {
95
- getDependencies().Log.error(message, kind, extra);
96
- },
97
- };