@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.
- package/dist/components/graph.d.ts +0 -1
- package/dist/components/graphie.d.ts +0 -1
- package/dist/es/index.js +319 -212
- package/dist/es/index.js.map +1 -1
- package/dist/index.js +338 -222
- package/dist/index.js.map +1 -1
- package/dist/interactive2/movable-point.d.ts +195 -1
- package/dist/interactive2/movable.d.ts +1 -1
- package/dist/interactive2/types.d.ts +4 -2
- package/dist/interactive2.d.ts +2 -1
- package/dist/server-item-renderer.d.ts +2 -2
- package/dist/util/graphie.d.ts +12 -2
- package/dist/widgets/expression.d.ts +6 -6
- package/package.json +11 -8
- package/.babelrc.js +0 -8
- package/.eslintrc.js +0 -12
- package/CHANGELOG.md +0 -1432
- package/src/__stories__/article-renderer.stories.tsx +0 -100
- package/src/__stories__/hints-renderer.stories.tsx +0 -55
- package/src/__stories__/server-item-renderer.stories.tsx +0 -44
- package/src/__testdata__/article-renderer.testdata.ts +0 -212
- package/src/__testdata__/graphie.testdata.ts +0 -51
- package/src/__testdata__/renderer.testdata.ts +0 -274
- package/src/__testdata__/server-item-renderer.testdata.ts +0 -171
- package/src/__tests__/__snapshots__/perseus-markdown.test.ts.snap +0 -507
- package/src/__tests__/__snapshots__/renderer.test.tsx.snap +0 -525
- package/src/__tests__/__snapshots__/server-item-renderer.test.tsx.snap +0 -285
- package/src/__tests__/a11y.test.ts +0 -303
- package/src/__tests__/article-renderer.test.tsx +0 -130
- package/src/__tests__/error-boundary.test.tsx +0 -76
- package/src/__tests__/extract-perseus-data.test.ts +0 -1027
- package/src/__tests__/init.test.ts +0 -10
- package/src/__tests__/jipt-paragraphs.test.ts +0 -32
- package/src/__tests__/mock-asset-loading-widget.tsx +0 -53
- package/src/__tests__/mock-widget.tsx +0 -33
- package/src/__tests__/perseus-markdown.test.ts +0 -764
- package/src/__tests__/renderability.test.ts +0 -480
- package/src/__tests__/renderer-api.test.tsx +0 -302
- package/src/__tests__/renderer.test.tsx +0 -1816
- package/src/__tests__/server-item-renderer.test.tsx +0 -582
- package/src/__tests__/test-items/image-item.ts +0 -24
- package/src/__tests__/test-items/input-number-1-item.ts +0 -26
- package/src/__tests__/test-items/input-number-2-item.ts +0 -38
- package/src/__tests__/test-items/table-item.ts +0 -29
- package/src/__tests__/tex-wrangler.test.ts +0 -82
- package/src/__tests__/util.test.ts +0 -40
- package/src/__tests__/widget-container.test.tsx +0 -126
- package/src/__tests__/widgets.test.ts +0 -91
- package/src/a11y.ts +0 -45
- package/src/all-widgets.ts +0 -9
- package/src/article-renderer.tsx +0 -237
- package/src/asset-context.ts +0 -30
- package/src/basic-widgets.ts +0 -16
- package/src/components/__stories__/button-group.stories.tsx +0 -55
- package/src/components/__stories__/fixed-to-responsive.stories.tsx +0 -141
- package/src/components/__stories__/graph.stories.tsx +0 -28
- package/src/components/__stories__/graphie.stories.tsx +0 -33
- package/src/components/__stories__/hud.stories.tsx +0 -35
- package/src/components/__stories__/icon.stories.tsx +0 -63
- package/src/components/__stories__/image-loader.stories.tsx +0 -63
- package/src/components/__stories__/info-tip.stories.tsx +0 -31
- package/src/components/__stories__/inline-icon.stories.tsx +0 -40
- package/src/components/__stories__/input-with-examples.stories.tsx +0 -53
- package/src/components/__stories__/lint.stories.tsx +0 -86
- package/src/components/__stories__/math-input.stories.tsx +0 -43
- package/src/components/__stories__/math-output.stories.tsx +0 -23
- package/src/components/__stories__/multi-button-group.stories.tsx +0 -66
- package/src/components/__stories__/number-input.stories.tsx +0 -41
- package/src/components/__stories__/prop-check-box.stories.tsx +0 -65
- package/src/components/__stories__/range-input.stories.tsx +0 -29
- package/src/components/__stories__/simple-keypad-input.stories.tsx +0 -27
- package/src/components/__stories__/sortable.stories.tsx +0 -77
- package/src/components/__stories__/stub-tag-editor.stories.tsx +0 -45
- package/src/components/__stories__/svg-image.stories.tsx +0 -74
- package/src/components/__stories__/tex.stories.tsx +0 -23
- package/src/components/__stories__/text-input.stories.tsx +0 -33
- package/src/components/__stories__/text-list-editor.stories.tsx +0 -32
- package/src/components/__stories__/tooltip.stories.tsx +0 -52
- package/src/components/__stories__/zoomable-tex.stories.tsx +0 -41
- package/src/components/__stories__/zoomable.stories.tsx +0 -49
- package/src/components/__testdata__/sorter.testdata.ts +0 -19
- package/src/components/__tests__/__snapshots__/sortable.test.tsx.snap +0 -163
- package/src/components/__tests__/__snapshots__/sorter.test.tsx.snap +0 -265
- package/src/components/__tests__/math-input.test.tsx +0 -147
- package/src/components/__tests__/number-input.test.tsx +0 -128
- package/src/components/__tests__/sortable.test.tsx +0 -269
- package/src/components/__tests__/sorter.test.tsx +0 -114
- package/src/components/__tests__/zoomable.test.tsx +0 -399
- package/src/components/button-group.tsx +0 -130
- package/src/components/constants.ts +0 -14
- package/src/components/fixed-to-responsive.tsx +0 -169
- package/src/components/graph.tsx +0 -444
- package/src/components/graphie-classes.ts +0 -153
- package/src/components/graphie-movables.ts +0 -338
- package/src/components/graphie.tsx +0 -400
- package/src/components/highlighting/highlightable-content.tsx +0 -240
- package/src/components/highlighting/highlights.ts +0 -207
- package/src/components/highlighting/ranges.ts +0 -304
- package/src/components/highlighting/types.ts +0 -73
- package/src/components/highlighting/ui/highlight-renderer.tsx +0 -172
- package/src/components/highlighting/ui/highlight-set-renderer.tsx +0 -185
- package/src/components/highlighting/ui/highlight-tooltip.tsx +0 -141
- package/src/components/highlighting/ui/highlighting-ui.tsx +0 -143
- package/src/components/highlighting/ui/selection-tracker.tsx +0 -186
- package/src/components/highlighting/ui/types.ts +0 -21
- package/src/components/highlighting/ui/util.ts +0 -165
- package/src/components/highlighting/word-indexer.tsx +0 -152
- package/src/components/hud.tsx +0 -167
- package/src/components/icon.tsx +0 -141
- package/src/components/image-loader.tsx +0 -177
- package/src/components/info-tip/info-tip.tsx +0 -144
- package/src/components/info-tip.tsx +0 -39
- package/src/components/inline-icon.tsx +0 -60
- package/src/components/input-with-examples.tsx +0 -249
- package/src/components/lint.tsx +0 -459
- package/src/components/math-input.tsx +0 -474
- package/src/components/math-output.tsx +0 -134
- package/src/components/multi-button-group.tsx +0 -135
- package/src/components/number-input.tsx +0 -249
- package/src/components/prop-check-box.tsx +0 -79
- package/src/components/range-input.tsx +0 -60
- package/src/components/simple-keypad-input.tsx +0 -88
- package/src/components/sortable.tsx +0 -958
- package/src/components/stub-tag-editor.tsx +0 -53
- package/src/components/svg-image.tsx +0 -779
- package/src/components/tex.tsx +0 -67
- package/src/components/text-input.tsx +0 -129
- package/src/components/text-list-editor.tsx +0 -166
- package/src/components/tooltip.tsx +0 -410
- package/src/components/visibility-observer/__stories__/visibility-observer.stories.tsx +0 -141
- package/src/components/visibility-observer/create-visibility-observer.ts +0 -108
- package/src/components/visibility-observer/get-scroll-parent.ts +0 -46
- package/src/components/visibility-observer/visibility-observer.tsx +0 -124
- package/src/components/zoomable-tex.tsx +0 -78
- package/src/components/zoomable.tsx +0 -304
- package/src/components.ts +0 -15
- package/src/definition-context.tsx +0 -59
- package/src/dependencies.ts +0 -40
- package/src/error-boundary.tsx +0 -70
- package/src/extra-widgets.ts +0 -75
- package/src/hint-renderer.tsx +0 -151
- package/src/hints-renderer.tsx +0 -372
- package/src/icon-paths.ts +0 -119
- package/src/index.ts +0 -171
- package/src/init.ts +0 -56
- package/src/interaction-tracker.ts +0 -62
- package/src/interactive2/__tests__/movable-mock.ts +0 -55
- package/src/interactive2/__tests__/movable-point.test.ts +0 -144
- package/src/interactive2/interactive-util.test.ts +0 -93
- package/src/interactive2/interactive-util.ts +0 -159
- package/src/interactive2/movable-helper-methods.ts +0 -166
- package/src/interactive2/movable-line-options.ts +0 -419
- package/src/interactive2/movable-line.ts +0 -307
- package/src/interactive2/movable-point-options.ts +0 -224
- package/src/interactive2/movable-point.tsx +0 -585
- package/src/interactive2/movable-polygon-options.ts +0 -389
- package/src/interactive2/movable-polygon.ts +0 -360
- package/src/interactive2/movable.test.ts +0 -249
- package/src/interactive2/movable.ts +0 -437
- package/src/interactive2/objective_.ts +0 -79
- package/src/interactive2/types.ts +0 -17
- package/src/interactive2/wrapped-defaults.ts +0 -87
- package/src/interactive2/wrapped-ellipse.ts +0 -94
- package/src/interactive2/wrapped-line.ts +0 -116
- package/src/interactive2/wrapped-path.ts +0 -51
- package/src/interactive2.ts +0 -70
- package/src/item-version.ts +0 -10
- package/src/jipt-paragraphs.ts +0 -49
- package/src/jquery.mobile.vmouse.js +0 -545
- package/src/loading-context.ts +0 -21
- package/src/logging/log.test.ts +0 -39
- package/src/logging/log.ts +0 -97
- package/src/mixins/__tests__/widget-prop-denylist.test.ts +0 -21
- package/src/mixins/changeable.ts +0 -133
- package/src/mixins/editor-jsonify.ts +0 -13
- package/src/mixins/widget-jsonify-deprecated.ts +0 -23
- package/src/mixins/widget-prop-denylist.ts +0 -48
- package/src/multi-items/__stories__/multi-renderer.stories.tsx +0 -83
- package/src/multi-items/__testdata__/multi-renderer.testdata.ts +0 -172
- package/src/multi-items/__tests__/__snapshots__/multi-renderer.test.tsx.snap +0 -1164
- package/src/multi-items/__tests__/items.test.ts +0 -240
- package/src/multi-items/__tests__/multi-renderer.test.tsx +0 -914
- package/src/multi-items/__tests__/prop-type-builders.test.ts +0 -133
- package/src/multi-items/__tests__/shapes.test.ts +0 -43
- package/src/multi-items/__tests__/trees.test.ts +0 -317
- package/src/multi-items/item-types.ts +0 -56
- package/src/multi-items/items.ts +0 -176
- package/src/multi-items/multi-renderer.tsx +0 -569
- package/src/multi-items/prop-type-builders.ts +0 -106
- package/src/multi-items/shape-types.ts +0 -52
- package/src/multi-items/shapes.ts +0 -52
- package/src/multi-items/tree-types.ts +0 -47
- package/src/multi-items/trees.ts +0 -360
- package/src/multi-items.ts +0 -75
- package/src/perseus-api.tsx +0 -188
- package/src/perseus-env.ts +0 -27
- package/src/perseus-error.ts +0 -17
- package/src/perseus-markdown.tsx +0 -405
- package/src/perseus-types.ts +0 -1366
- package/src/perseus-version.ts +0 -9
- package/src/question-paragraph.tsx +0 -34
- package/src/renderability.ts +0 -109
- package/src/renderer.tsx +0 -2000
- package/src/server-item-renderer.tsx +0 -495
- package/src/sigfigs.ts +0 -490
- package/src/styles/articles.less +0 -749
- package/src/styles/constants.ts +0 -94
- package/src/styles/global-constants.ts +0 -343
- package/src/styles/global-styles.ts +0 -306
- package/src/styles/khan-exercise.css +0 -1468
- package/src/styles/media-queries.ts +0 -47
- package/src/styles/perseus-renderer.less +0 -732
- package/src/styles/shared.ts +0 -130
- package/src/styles/util.less +0 -47
- package/src/styles/variables.boostrap.less +0 -277
- package/src/styles/variables.less +0 -56
- package/src/styles/variables.shared.less +0 -340
- package/src/styles/widgets/categorizer.less +0 -38
- package/src/styles/widgets/dropdown.less +0 -3
- package/src/styles/widgets/expression.less +0 -65
- package/src/styles/widgets/graded-group.less +0 -36
- package/src/styles/widgets/grapher.less +0 -12
- package/src/styles/widgets/group.less +0 -19
- package/src/styles/widgets/image.less +0 -54
- package/src/styles/widgets/interactive-graph.less +0 -64
- package/src/styles/widgets/label-image.less +0 -57
- package/src/styles/widgets/matcher.less +0 -8
- package/src/styles/widgets/matrix.less +0 -126
- package/src/styles/widgets/measurer.less +0 -20
- package/src/styles/widgets/orderer.less +0 -98
- package/src/styles/widgets/passage.less +0 -154
- package/src/styles/widgets/plotter.less +0 -31
- package/src/styles/widgets/radio.less +0 -58
- package/src/styles/widgets/reaction-diagram.less +0 -35
- package/src/styles/widgets/sequence.less +0 -5
- package/src/styles/widgets/sortable.less +0 -113
- package/src/styles/widgets/table.less +0 -57
- package/src/styles/widgets/unit.less +0 -15
- package/src/tex-wrangler.ts +0 -182
- package/src/translation-linter.ts +0 -126
- package/src/traversal.ts +0 -138
- package/src/types.ts +0 -513
- package/src/util/a11y.ts +0 -23
- package/src/util/answer-types.test.ts +0 -114
- package/src/util/answer-types.ts +0 -876
- package/src/util/colors.ts +0 -93
- package/src/util/drawing-transform.test.ts +0 -67
- package/src/util/drawing-transform.ts +0 -102
- package/src/util/extract-perseus-data.ts +0 -539
- package/src/util/fix-passage-refs.ts +0 -121
- package/src/util/geometry.test.ts +0 -75
- package/src/util/geometry.ts +0 -312
- package/src/util/graph-bounds.ts +0 -23
- package/src/util/graph-utils.ts +0 -15
- package/src/util/graphie.test.ts +0 -1277
- package/src/util/graphie.ts +0 -1576
- package/src/util/interactive.ts +0 -4174
- package/src/util/interval.ts +0 -4
- package/src/util/katex-preprocess.ts +0 -14
- package/src/util/math.test.ts +0 -11
- package/src/util/math.ts +0 -294
- package/src/util/mobile-native-utils.test.ts +0 -22
- package/src/util/mobile-native-utils.ts +0 -12
- package/src/util/parse-perseus-json.test.ts +0 -10
- package/src/util/parse-perseus-json.ts +0 -13
- package/src/util/react-render.tsx +0 -27
- package/src/util/register-all-widgets-for-testing.ts +0 -13
- package/src/util/scroll-utils.ts +0 -155
- package/src/util/sizing-utils.ts +0 -46
- package/src/util/tex.ts +0 -73
- package/src/util/url-utils.ts +0 -34
- package/src/util.graphie.test.ts +0 -45
- package/src/util.graphie.ts +0 -59
- package/src/util.ts +0 -966
- package/src/version.ts +0 -10
- package/src/widget-container.tsx +0 -199
- package/src/widgets/__stories__/categorizer.stories.tsx +0 -14
- package/src/widgets/__stories__/cs-program.stories.tsx +0 -14
- package/src/widgets/__stories__/definition.stories.tsx +0 -114
- package/src/widgets/__stories__/dropdown.stories.tsx +0 -14
- package/src/widgets/__stories__/explanation.stories.tsx +0 -18
- package/src/widgets/__stories__/expression.stories.tsx +0 -145
- package/src/widgets/__stories__/graded-group-set.stories.tsx +0 -31
- package/src/widgets/__stories__/graded-group.stories.tsx +0 -31
- package/src/widgets/__stories__/grapher.stories.tsx +0 -46
- package/src/widgets/__stories__/group.stories.tsx +0 -14
- package/src/widgets/__stories__/iframe.stories.tsx +0 -14
- package/src/widgets/__stories__/image.stories.tsx +0 -85
- package/src/widgets/__stories__/input-number.stories.tsx +0 -101
- package/src/widgets/__stories__/interaction.stories.tsx +0 -14
- package/src/widgets/__stories__/interactive-graph.stories.tsx +0 -60
- package/src/widgets/__stories__/label-image.stories.tsx +0 -130
- package/src/widgets/__stories__/matcher.stories.tsx +0 -14
- package/src/widgets/__stories__/matrix.stories.tsx +0 -14
- package/src/widgets/__stories__/number-line.stories.tsx +0 -14
- package/src/widgets/__stories__/numeric-input.stories.tsx +0 -105
- package/src/widgets/__stories__/orderer.stories.tsx +0 -18
- package/src/widgets/__stories__/passage-ref.stories.tsx +0 -33
- package/src/widgets/__stories__/passage.stories.tsx +0 -39
- package/src/widgets/__stories__/plotter.stories.tsx +0 -27
- package/src/widgets/__stories__/radio.stories.tsx +0 -86
- package/src/widgets/__stories__/random-widgets.stories.tsx +0 -59
- package/src/widgets/__stories__/sorter.stories.tsx +0 -14
- package/src/widgets/__stories__/test-keypad-context-wrapper.tsx +0 -66
- package/src/widgets/__stories__/unit.stories.tsx +0 -28
- package/src/widgets/__stories__/video-transcript-link.stories.tsx +0 -23
- package/src/widgets/__stories__/video.stories.tsx +0 -22
- package/src/widgets/__testdata__/base-radio.testdata.ts +0 -21
- package/src/widgets/__testdata__/categorizer.testdata.ts +0 -89
- package/src/widgets/__testdata__/cs-program.testdata.ts +0 -27
- package/src/widgets/__testdata__/dropdown.testdata.ts +0 -71
- package/src/widgets/__testdata__/explanation.testdata.ts +0 -85
- package/src/widgets/__testdata__/expression.testdata.ts +0 -198
- package/src/widgets/__testdata__/graded-group-set.testdata.ts +0 -356
- package/src/widgets/__testdata__/graded-group.testdata.ts +0 -77
- package/src/widgets/__testdata__/grapher.testdata.ts +0 -374
- package/src/widgets/__testdata__/group.testdata.ts +0 -153
- package/src/widgets/__testdata__/iframe.testdata.ts +0 -35
- package/src/widgets/__testdata__/image.testdata.ts +0 -36
- package/src/widgets/__testdata__/input-number.testdata.ts +0 -72
- package/src/widgets/__testdata__/interaction.testdata.ts +0 -262
- package/src/widgets/__testdata__/interactive-graph-random.testdata.ts +0 -269
- package/src/widgets/__testdata__/interactive-graph.testdata.ts +0 -644
- package/src/widgets/__testdata__/label-image.testdata.ts +0 -308
- package/src/widgets/__testdata__/matcher.testdata.ts +0 -33
- package/src/widgets/__testdata__/matrix.testdata.ts +0 -28
- package/src/widgets/__testdata__/number-line.testdata.ts +0 -30
- package/src/widgets/__testdata__/numeric-input.testdata.ts +0 -265
- package/src/widgets/__testdata__/orderer.testdata.ts +0 -123
- package/src/widgets/__testdata__/passage-ref.testdata.ts +0 -101
- package/src/widgets/__testdata__/passage.testdata.ts +0 -95
- package/src/widgets/__testdata__/plotter.testdata.ts +0 -36
- package/src/widgets/__testdata__/radio.testdata.ts +0 -324
- package/src/widgets/__testdata__/randomizers.ts +0 -51
- package/src/widgets/__testdata__/sorter.testdata.ts +0 -19
- package/src/widgets/__testdata__/video.testdata.ts +0 -61
- package/src/widgets/__tests__/__snapshots__/categorizer.test.ts.snap +0 -940
- package/src/widgets/__tests__/__snapshots__/cs-program.test.ts.snap +0 -67
- package/src/widgets/__tests__/__snapshots__/definition.test.ts.snap +0 -97
- package/src/widgets/__tests__/__snapshots__/dropdown.test.ts.snap +0 -133
- package/src/widgets/__tests__/__snapshots__/explanation.test.ts.snap +0 -425
- package/src/widgets/__tests__/__snapshots__/graded-group-set-jipt.test.ts.snap +0 -729
- package/src/widgets/__tests__/__snapshots__/graded-group-set.test.ts.snap +0 -339
- package/src/widgets/__tests__/__snapshots__/graded-group.test.ts.snap +0 -801
- package/src/widgets/__tests__/__snapshots__/grapher.test.ts.snap +0 -2673
- package/src/widgets/__tests__/__snapshots__/group.test.tsx.snap +0 -1211
- package/src/widgets/__tests__/__snapshots__/iframe.test.ts.snap +0 -61
- package/src/widgets/__tests__/__snapshots__/image.test.ts.snap +0 -378
- package/src/widgets/__tests__/__snapshots__/input-number.test.ts.snap +0 -495
- package/src/widgets/__tests__/__snapshots__/interaction.test.ts.snap +0 -292
- package/src/widgets/__tests__/__snapshots__/interactive-graph.test.ts.snap +0 -2889
- package/src/widgets/__tests__/__snapshots__/matcher.test.tsx.snap +0 -883
- package/src/widgets/__tests__/__snapshots__/matrix.test.ts.snap +0 -514
- package/src/widgets/__tests__/__snapshots__/number-line.test.ts.snap +0 -814
- package/src/widgets/__tests__/__snapshots__/numeric-input.test.ts.snap +0 -470
- package/src/widgets/__tests__/__snapshots__/orderer.test.ts.snap +0 -243
- package/src/widgets/__tests__/__snapshots__/passage-ref.test.ts.snap +0 -434
- package/src/widgets/__tests__/__snapshots__/passage.test.tsx.snap +0 -1956
- package/src/widgets/__tests__/__snapshots__/plotter.test.tsx.snap +0 -827
- package/src/widgets/__tests__/__snapshots__/radio.test.ts.snap +0 -4237
- package/src/widgets/__tests__/__snapshots__/unit.test.tsx.snap +0 -20
- package/src/widgets/__tests__/__snapshots__/video.test.ts.snap +0 -153
- package/src/widgets/__tests__/categorizer.test.ts +0 -203
- package/src/widgets/__tests__/cs-program.test.ts +0 -43
- package/src/widgets/__tests__/definition.test.ts +0 -136
- package/src/widgets/__tests__/dropdown.test.ts +0 -105
- package/src/widgets/__tests__/explanation.test.ts +0 -198
- package/src/widgets/__tests__/expression-mobile.test.tsx +0 -363
- package/src/widgets/__tests__/expression.test.tsx +0 -484
- package/src/widgets/__tests__/graded-group-set-jipt.test.ts +0 -30
- package/src/widgets/__tests__/graded-group-set.test.ts +0 -288
- package/src/widgets/__tests__/graded-group.test.ts +0 -232
- package/src/widgets/__tests__/grapher.cypress.ts +0 -576
- package/src/widgets/__tests__/grapher.test.ts +0 -33
- package/src/widgets/__tests__/group.test.tsx +0 -510
- package/src/widgets/__tests__/iframe.test.ts +0 -45
- package/src/widgets/__tests__/image.test.ts +0 -62
- package/src/widgets/__tests__/input-number.test.ts +0 -354
- package/src/widgets/__tests__/interaction.test.ts +0 -31
- package/src/widgets/__tests__/interactive-graph.cypress.ts +0 -815
- package/src/widgets/__tests__/interactive-graph.test.ts +0 -106
- package/src/widgets/__tests__/matcher.test.tsx +0 -176
- package/src/widgets/__tests__/matrix.test.ts +0 -82
- package/src/widgets/__tests__/number-line.test.ts +0 -79
- package/src/widgets/__tests__/numeric-input.test.ts +0 -575
- package/src/widgets/__tests__/orderer.test.ts +0 -73
- package/src/widgets/__tests__/passage-ref.test.ts +0 -168
- package/src/widgets/__tests__/passage.test.tsx +0 -224
- package/src/widgets/__tests__/plotter.test.tsx +0 -69
- package/src/widgets/__tests__/radio/base-radio.test.tsx +0 -470
- package/src/widgets/__tests__/radio/choice-icon.test.tsx +0 -90
- package/src/widgets/__tests__/radio/choice.test.tsx +0 -310
- package/src/widgets/__tests__/radio/focus-ring.test.tsx +0 -22
- package/src/widgets/__tests__/radio/option-status.test.tsx +0 -77
- package/src/widgets/__tests__/radio.test.ts +0 -807
- package/src/widgets/__tests__/randomizers.test.ts +0 -53
- package/src/widgets/__tests__/renderQuestion.tsx +0 -101
- package/src/widgets/__tests__/unit.test.tsx +0 -168
- package/src/widgets/__tests__/video.test.ts +0 -69
- package/src/widgets/categorizer.tsx +0 -344
- package/src/widgets/cs-program.tsx +0 -227
- package/src/widgets/definition.tsx +0 -121
- package/src/widgets/deprecated-standin/__stories__/deprecated-standin.stories.tsx +0 -30
- package/src/widgets/deprecated-standin/__tests__/__snapshots__/deprecated-standin.test.ts.snap +0 -70
- package/src/widgets/deprecated-standin/__tests__/deprecated-standin.test.ts +0 -93
- package/src/widgets/deprecated-standin/index.tsx +0 -58
- package/src/widgets/dropdown.tsx +0 -142
- package/src/widgets/explanation.tsx +0 -317
- package/src/widgets/expression.tsx +0 -707
- package/src/widgets/graded-group-answer-bar.tsx +0 -142
- package/src/widgets/graded-group-set.tsx +0 -338
- package/src/widgets/graded-group.tsx +0 -471
- package/src/widgets/grapher/util.tsx +0 -799
- package/src/widgets/grapher.tsx +0 -660
- package/src/widgets/group.tsx +0 -195
- package/src/widgets/iframe.tsx +0 -195
- package/src/widgets/image.tsx +0 -312
- package/src/widgets/input-number.tsx +0 -412
- package/src/widgets/interaction/arrow-picker.tsx +0 -38
- package/src/widgets/interaction/color-picker.tsx +0 -69
- package/src/widgets/interaction/dash-picker.tsx +0 -45
- package/src/widgets/interaction/element-container.tsx +0 -100
- package/src/widgets/interaction.tsx +0 -826
- package/src/widgets/interactive-graph.tsx +0 -2597
- package/src/widgets/label-image/__stories__/answer-choices.stories.tsx +0 -91
- package/src/widgets/label-image/__stories__/answer-pill.stories.tsx +0 -62
- package/src/widgets/label-image/__stories__/marker.stories.tsx +0 -171
- package/src/widgets/label-image/__tests__/answer-pill.test.tsx +0 -75
- package/src/widgets/label-image/__tests__/hide-answers-toggle.test.tsx +0 -39
- package/src/widgets/label-image/answer-choices.tsx +0 -88
- package/src/widgets/label-image/answer-pill.tsx +0 -103
- package/src/widgets/label-image/hide-answers-toggle.tsx +0 -40
- package/src/widgets/label-image/marker.tsx +0 -268
- package/src/widgets/label-image/strings.ts +0 -5
- package/src/widgets/label-image/types.ts +0 -27
- package/src/widgets/label-image.test.ts +0 -928
- package/src/widgets/label-image.tsx +0 -819
- package/src/widgets/lights-puzzle.tsx +0 -359
- package/src/widgets/matcher.tsx +0 -298
- package/src/widgets/matrix.tsx +0 -634
- package/src/widgets/measurer.tsx +0 -222
- package/src/widgets/molecule/__tests__/layout.test.ts +0 -162
- package/src/widgets/molecule/__tests__/parser.test.ts +0 -155
- package/src/widgets/molecule/molecule-drawing.ts +0 -173
- package/src/widgets/molecule/molecule-layout.ts +0 -362
- package/src/widgets/molecule/smiles-parser.ts +0 -296
- package/src/widgets/molecule.tsx +0 -172
- package/src/widgets/number-line.tsx +0 -862
- package/src/widgets/numeric-input.tsx +0 -576
- package/src/widgets/orderer.tsx +0 -786
- package/src/widgets/passage/__tests__/passage-markdown.test.ts +0 -376
- package/src/widgets/passage/passage-markdown.tsx +0 -475
- package/src/widgets/passage-ref-target.tsx +0 -76
- package/src/widgets/passage-ref.tsx +0 -213
- package/src/widgets/passage.tsx +0 -582
- package/src/widgets/plotter.tsx +0 -1194
- package/src/widgets/radio/__stories__/base-radio.stories.tsx +0 -196
- package/src/widgets/radio/__stories__/choice-icon.stories.tsx +0 -166
- package/src/widgets/radio/__stories__/choice-none-above.stories.tsx +0 -40
- package/src/widgets/radio/__stories__/choice.stories.tsx +0 -137
- package/src/widgets/radio/__stories__/focus-ring.stories.tsx +0 -43
- package/src/widgets/radio/__stories__/option-status.stories.tsx +0 -103
- package/src/widgets/radio/base-radio.tsx +0 -511
- package/src/widgets/radio/choice-a11y-text.ts +0 -61
- package/src/widgets/radio/choice-icon/choice-icon.tsx +0 -218
- package/src/widgets/radio/choice-icon/cross-out-line.tsx +0 -51
- package/src/widgets/radio/choice-icon/shared-styles.ts +0 -15
- package/src/widgets/radio/choice-none-above.tsx +0 -56
- package/src/widgets/radio/choice.jsx.fixture.ts +0 -45
- package/src/widgets/radio/choice.tsx +0 -359
- package/src/widgets/radio/focus-ring.tsx +0 -57
- package/src/widgets/radio/option-status.tsx +0 -98
- package/src/widgets/radio/util.test.ts +0 -18
- package/src/widgets/radio/util.ts +0 -31
- package/src/widgets/radio/widget.tsx +0 -520
- package/src/widgets/radio.ts +0 -157
- package/src/widgets/reaction-diagram.tsx +0 -144
- package/src/widgets/sequence.tsx +0 -142
- package/src/widgets/simulator.tsx +0 -829
- package/src/widgets/sorter.tsx +0 -155
- package/src/widgets/table.tsx +0 -393
- package/src/widgets/unit.tsx +0 -374
- package/src/widgets/video-transcript-link.test.tsx +0 -213
- package/src/widgets/video-transcript-link.tsx +0 -84
- package/src/widgets/video.tsx +0 -135
- package/src/widgets.ts +0 -489
- package/src/zoom.ts +0 -555
- package/tsconfig-build.json +0 -26
- package/tsconfig-build.tsbuildinfo +0 -1
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import {removeDenylistProps} from "../widget-prop-denylist";
|
|
2
|
-
|
|
3
|
-
describe("removeDenylistProps", () => {
|
|
4
|
-
it("removes props that are in denylist from input", () => {
|
|
5
|
-
// Arrange
|
|
6
|
-
const props = {
|
|
7
|
-
// These props are not on the denylist
|
|
8
|
-
foo: "bar",
|
|
9
|
-
gandalf: "awesome",
|
|
10
|
-
// These props are on the denylist
|
|
11
|
-
key: "f-sharp",
|
|
12
|
-
id: 42,
|
|
13
|
-
} as const;
|
|
14
|
-
|
|
15
|
-
// Act
|
|
16
|
-
const result = removeDenylistProps(props);
|
|
17
|
-
|
|
18
|
-
// Assert
|
|
19
|
-
expect(result).toStrictEqual({foo: "bar", gandalf: "awesome"});
|
|
20
|
-
});
|
|
21
|
-
});
|
package/src/mixins/changeable.ts
DELETED
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
/* eslint-disable @babel/no-invalid-this */
|
|
2
|
-
/**
|
|
3
|
-
* Changeable
|
|
4
|
-
*
|
|
5
|
-
* Adds a this.change() function to a component
|
|
6
|
-
*
|
|
7
|
-
* This.change takes prop changes as parameters, and calls
|
|
8
|
-
* this.props.onChange with the modified props.
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
import PropTypes from "prop-types";
|
|
12
|
-
import _ from "underscore";
|
|
13
|
-
|
|
14
|
-
import {Errors} from "../logging/log";
|
|
15
|
-
import {PerseusError} from "../perseus-error";
|
|
16
|
-
|
|
17
|
-
import WIDGET_PROP_DENYLIST from "./widget-prop-denylist";
|
|
18
|
-
|
|
19
|
-
import type {ChangeFn} from "../types";
|
|
20
|
-
|
|
21
|
-
const USAGE =
|
|
22
|
-
"Usage:\n" +
|
|
23
|
-
" this.change({propName: 5}, callback);\n" +
|
|
24
|
-
' this.change("propName", 5, callback);\n' +
|
|
25
|
-
' this.change("propName")';
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Primary helper function for this.change()
|
|
29
|
-
*
|
|
30
|
-
* Takes the parameters in a consistent style, once this.change() has
|
|
31
|
-
* figured out which way it was called.
|
|
32
|
-
*/
|
|
33
|
-
const _changeMultiple = function (
|
|
34
|
-
component: any,
|
|
35
|
-
newProps:
|
|
36
|
-
| string
|
|
37
|
-
| Record<any, any>
|
|
38
|
-
| {
|
|
39
|
-
[key: string]: any;
|
|
40
|
-
},
|
|
41
|
-
callback,
|
|
42
|
-
) {
|
|
43
|
-
// Omit "default" props:
|
|
44
|
-
// ref and key come from react, and don't actually represent
|
|
45
|
-
// the conceptual state of our component
|
|
46
|
-
// onChange comes from our parent to allow this modification,
|
|
47
|
-
// and doesn't conceptually represent the state of our component
|
|
48
|
-
const currProps = _.omit(component.props, WIDGET_PROP_DENYLIST);
|
|
49
|
-
const nextProps = _.extend(currProps, newProps);
|
|
50
|
-
component.props.onChange(nextProps, callback);
|
|
51
|
-
};
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
* Helper function for changing a single prop
|
|
55
|
-
*/
|
|
56
|
-
const _changeSingle = function (
|
|
57
|
-
component: any,
|
|
58
|
-
propName: string,
|
|
59
|
-
value: any,
|
|
60
|
-
callback,
|
|
61
|
-
) {
|
|
62
|
-
if (value === undefined) {
|
|
63
|
-
// If called with a single prop name, return a lambda to change
|
|
64
|
-
// a single prop on the current object
|
|
65
|
-
return _.partial(_changeSingle, component, propName);
|
|
66
|
-
}
|
|
67
|
-
// If called with two values, change a single prop of the
|
|
68
|
-
// current object
|
|
69
|
-
const newProps: Record<string, any> = {};
|
|
70
|
-
newProps[propName] = value;
|
|
71
|
-
_changeMultiple(component, newProps, callback);
|
|
72
|
-
};
|
|
73
|
-
|
|
74
|
-
/**
|
|
75
|
-
* this.change()
|
|
76
|
-
*
|
|
77
|
-
* Can be called as follows:
|
|
78
|
-
* this.change(newProps, callback);
|
|
79
|
-
*
|
|
80
|
-
* this.change(propName, propValue, callback);
|
|
81
|
-
*
|
|
82
|
-
* this.change(propName) -> returns a lambda that takes a prop value to
|
|
83
|
-
* set and a callback to call after having set that value.
|
|
84
|
-
*/
|
|
85
|
-
// TODO(WEB-1727): use proper TypeScript syntax for overloaded functions
|
|
86
|
-
export const change: ChangeFn = function (
|
|
87
|
-
newPropsOrSinglePropName,
|
|
88
|
-
propValue,
|
|
89
|
-
callback,
|
|
90
|
-
) {
|
|
91
|
-
if (_.isObject(newPropsOrSinglePropName) && callback === undefined) {
|
|
92
|
-
// Called with an object of multiple props to change
|
|
93
|
-
callback = propValue;
|
|
94
|
-
return _changeMultiple(
|
|
95
|
-
// @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
96
|
-
this,
|
|
97
|
-
newPropsOrSinglePropName, // object newProps
|
|
98
|
-
callback,
|
|
99
|
-
);
|
|
100
|
-
}
|
|
101
|
-
if (typeof newPropsOrSinglePropName === "string") {
|
|
102
|
-
// Called with a string propName of a single prop to change
|
|
103
|
-
return _changeSingle(
|
|
104
|
-
// @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
105
|
-
this,
|
|
106
|
-
newPropsOrSinglePropName, // string propName
|
|
107
|
-
propValue,
|
|
108
|
-
callback,
|
|
109
|
-
);
|
|
110
|
-
}
|
|
111
|
-
throw new PerseusError(
|
|
112
|
-
"Invalid types sent to this.change(): " +
|
|
113
|
-
// eslint-disable-next-line prefer-rest-params
|
|
114
|
-
_.toArray(arguments).join() +
|
|
115
|
-
"\n" +
|
|
116
|
-
USAGE,
|
|
117
|
-
Errors.Internal,
|
|
118
|
-
);
|
|
119
|
-
};
|
|
120
|
-
|
|
121
|
-
export const propTypes = {
|
|
122
|
-
onChange: PropTypes.func.isRequired,
|
|
123
|
-
} as const;
|
|
124
|
-
|
|
125
|
-
export type ChangeableProps = {
|
|
126
|
-
onChange: (
|
|
127
|
-
values: {
|
|
128
|
-
[key: string]: any;
|
|
129
|
-
},
|
|
130
|
-
callback?: (() => unknown) | null | undefined,
|
|
131
|
-
silent?: boolean,
|
|
132
|
-
) => unknown;
|
|
133
|
-
};
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import _ from "underscore";
|
|
2
|
-
|
|
3
|
-
import WIDGET_PROP_DENYLIST from "./widget-prop-denylist";
|
|
4
|
-
|
|
5
|
-
const EditorJsonify = {
|
|
6
|
-
serialize: function (): any {
|
|
7
|
-
// Omit props that get passed to all widgets
|
|
8
|
-
// @ts-expect-error - TS2339 - Property 'props' does not exist on type '{ readonly serialize: () => any; }'.
|
|
9
|
-
return _.omit(this.props, WIDGET_PROP_DENYLIST);
|
|
10
|
-
},
|
|
11
|
-
} as const;
|
|
12
|
-
|
|
13
|
-
export default EditorJsonify;
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
/* Free implementation of getUserInput. This should be used sparingly, since it
|
|
2
|
-
* just returns all the widget's props rather than picking out those which were
|
|
3
|
-
* input by the user.
|
|
4
|
-
*/
|
|
5
|
-
import _ from "underscore";
|
|
6
|
-
|
|
7
|
-
import WIDGET_PROP_DENYLIST from "./widget-prop-denylist";
|
|
8
|
-
|
|
9
|
-
const WidgetJsonifyDeprecated = {
|
|
10
|
-
getUserInput: function (): any {
|
|
11
|
-
// Omit props that get passed to all widgets
|
|
12
|
-
// @ts-expect-error - TS2339 - Property 'props' does not exist on type '{ readonly getUserInput: () => any; readonly getUserInputFromProps: (props: any) => any; }'.
|
|
13
|
-
return _.omit(this.props, WIDGET_PROP_DENYLIST);
|
|
14
|
-
},
|
|
15
|
-
|
|
16
|
-
// Static version of `WidgetJsonifyDeprecated.getUserInput`
|
|
17
|
-
getUserInputFromProps: function (props: any): any {
|
|
18
|
-
// Omit props that get passed to all widgets
|
|
19
|
-
return _.omit(props, WIDGET_PROP_DENYLIST);
|
|
20
|
-
},
|
|
21
|
-
} as const;
|
|
22
|
-
|
|
23
|
-
export default WidgetJsonifyDeprecated;
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* These are things that widgets should exclude when serializing themselves.
|
|
3
|
-
*
|
|
4
|
-
* The use of this list needs to die. Basically, there are codepaths that
|
|
5
|
-
* blindly serialize the "props" of a widget so that it can pass around its
|
|
6
|
-
* info. Unfortunately, props aren't guaranteed to be serializable, and
|
|
7
|
-
* automatically serializing schemaless list of attributes causes issues (e.g.
|
|
8
|
-
* circular JSON structures sometimes).
|
|
9
|
-
*
|
|
10
|
-
* This blocks things that we know don't need to be serialized.
|
|
11
|
-
*/
|
|
12
|
-
|
|
13
|
-
const denylist = [
|
|
14
|
-
// standard props "added" by react
|
|
15
|
-
// (technically the renderer still adds them)
|
|
16
|
-
"key",
|
|
17
|
-
"ref",
|
|
18
|
-
// added by src/renderer.jsx
|
|
19
|
-
"containerSizeClass",
|
|
20
|
-
"widgetId",
|
|
21
|
-
"onChange",
|
|
22
|
-
"problemNum",
|
|
23
|
-
"apiOptions",
|
|
24
|
-
"questionCompleted",
|
|
25
|
-
"findWidgets",
|
|
26
|
-
// added by src/editor.jsx, for widgets removing themselves
|
|
27
|
-
// this is soooo not the right place for this, but alas.
|
|
28
|
-
"onRemove",
|
|
29
|
-
// also added by src/editor.jsx
|
|
30
|
-
"id",
|
|
31
|
-
// Callbacks and items for interaction handling
|
|
32
|
-
"onBlur",
|
|
33
|
-
"onFocus",
|
|
34
|
-
"trackInteraction",
|
|
35
|
-
"keypadElement",
|
|
36
|
-
];
|
|
37
|
-
|
|
38
|
-
export const removeDenylistProps = (props: any): any => {
|
|
39
|
-
const newProps = {...props} as const;
|
|
40
|
-
for (const prop of denylist) {
|
|
41
|
-
if (prop in newProps) {
|
|
42
|
-
delete newProps[prop];
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
return newProps;
|
|
46
|
-
};
|
|
47
|
-
|
|
48
|
-
export default denylist;
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import {View} from "@khanacademy/wonder-blocks-core";
|
|
2
|
-
import * as i18n from "@khanacademy/wonder-blocks-i18n";
|
|
3
|
-
import {HeadingSmall} from "@khanacademy/wonder-blocks-typography";
|
|
4
|
-
import {StyleSheet} from "aphrodite";
|
|
5
|
-
import * as React from "react";
|
|
6
|
-
|
|
7
|
-
import {MultiItemRendererWithDebugUI} from "../../../../../testing/multi-item-renderer-with-debug-ui";
|
|
8
|
-
import {question1} from "../__testdata__/multi-renderer.testdata";
|
|
9
|
-
|
|
10
|
-
type StoryArgs = Record<any, any>;
|
|
11
|
-
|
|
12
|
-
type Story = {
|
|
13
|
-
title: string;
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
export const SingleItem = (args: StoryArgs): React.ReactElement => {
|
|
17
|
-
const item = {
|
|
18
|
-
_multi: {
|
|
19
|
-
...question1._multi,
|
|
20
|
-
blurb: {
|
|
21
|
-
...question1._multi.blurb,
|
|
22
|
-
content:
|
|
23
|
-
"This is a short snippet to help you understand the context of the question. We call it the 'blurb'.",
|
|
24
|
-
},
|
|
25
|
-
},
|
|
26
|
-
} as const;
|
|
27
|
-
return (
|
|
28
|
-
<MultiItemRendererWithDebugUI simpleItem={item}>
|
|
29
|
-
{({renderers}) => {
|
|
30
|
-
const {blurb, question, hints} = renderers;
|
|
31
|
-
return (
|
|
32
|
-
<View>
|
|
33
|
-
<View style={styles.section}>
|
|
34
|
-
<HeadingSmall style={styles.heading}>
|
|
35
|
-
{i18n.doNotTranslate("Blurb")}
|
|
36
|
-
</HeadingSmall>
|
|
37
|
-
{blurb}
|
|
38
|
-
</View>
|
|
39
|
-
<View style={styles.section}>
|
|
40
|
-
<HeadingSmall style={styles.heading}>
|
|
41
|
-
{i18n.doNotTranslate("Question")}
|
|
42
|
-
</HeadingSmall>
|
|
43
|
-
{question}
|
|
44
|
-
</View>
|
|
45
|
-
<View style={styles.section}>
|
|
46
|
-
<HeadingSmall style={styles.heading}>
|
|
47
|
-
{i18n.doNotTranslate("Hints")}
|
|
48
|
-
</HeadingSmall>
|
|
49
|
-
<View style={styles.hints}>
|
|
50
|
-
{
|
|
51
|
-
// @ts-expect-error [FEI-5003] - TS2339 - Property 'firstN' does not exist on type 'readonly ReactNode[]'.
|
|
52
|
-
hints?.firstN(2)
|
|
53
|
-
}
|
|
54
|
-
</View>
|
|
55
|
-
</View>
|
|
56
|
-
</View>
|
|
57
|
-
);
|
|
58
|
-
}}
|
|
59
|
-
</MultiItemRendererWithDebugUI>
|
|
60
|
-
);
|
|
61
|
-
};
|
|
62
|
-
|
|
63
|
-
const styles = StyleSheet.create({
|
|
64
|
-
section: {
|
|
65
|
-
backgroundColor: "#F5F5F5",
|
|
66
|
-
padding: "5px",
|
|
67
|
-
borderWidth: "1px",
|
|
68
|
-
marginTop: "5px",
|
|
69
|
-
marginBottom: "5px",
|
|
70
|
-
},
|
|
71
|
-
heading: {
|
|
72
|
-
backgroundColor: "#A9A9A9",
|
|
73
|
-
margin: "-5px",
|
|
74
|
-
padding: "5px",
|
|
75
|
-
},
|
|
76
|
-
hints: {
|
|
77
|
-
marginLeft: "50px",
|
|
78
|
-
},
|
|
79
|
-
});
|
|
80
|
-
|
|
81
|
-
export default {
|
|
82
|
-
title: "Perseus/Renderers/Multi Renderer",
|
|
83
|
-
} as Story;
|
|
@@ -1,172 +0,0 @@
|
|
|
1
|
-
import shapes from "../shapes";
|
|
2
|
-
|
|
3
|
-
import type {Item} from "../item-types";
|
|
4
|
-
import type {Shape} from "../shape-types";
|
|
5
|
-
|
|
6
|
-
export const simpleQuestionShape: Shape = shapes.shape({
|
|
7
|
-
blurb: shapes.content,
|
|
8
|
-
question: shapes.content,
|
|
9
|
-
hints: shapes.hints,
|
|
10
|
-
});
|
|
11
|
-
|
|
12
|
-
// Shape: simpleQuestionShape
|
|
13
|
-
export const question1: Item = {
|
|
14
|
-
_multi: {
|
|
15
|
-
blurb: {
|
|
16
|
-
__type: "content",
|
|
17
|
-
content: "",
|
|
18
|
-
images: {},
|
|
19
|
-
widgets: {},
|
|
20
|
-
},
|
|
21
|
-
hints: [
|
|
22
|
-
{
|
|
23
|
-
__type: "hint",
|
|
24
|
-
content:
|
|
25
|
-
"If two triangles are congruent, then they have the same side lengths and angle measures.",
|
|
26
|
-
images: {},
|
|
27
|
-
replace: false,
|
|
28
|
-
widgets: {},
|
|
29
|
-
},
|
|
30
|
-
{
|
|
31
|
-
__type: "hint",
|
|
32
|
-
content:
|
|
33
|
-
"A triangle congruent to triangle $ABC$ must also have side lengths of $12$, $14$ and $20$.",
|
|
34
|
-
images: {},
|
|
35
|
-
replace: false,
|
|
36
|
-
widgets: {},
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
__type: "hint",
|
|
40
|
-
content:
|
|
41
|
-
"The following triangle is congruent to triangle $ABC$:\n\n* A triangle with side lengths of $12$, $14$, and $20$",
|
|
42
|
-
images: {},
|
|
43
|
-
replace: false,
|
|
44
|
-
widgets: {},
|
|
45
|
-
},
|
|
46
|
-
],
|
|
47
|
-
question: {
|
|
48
|
-
__type: "content",
|
|
49
|
-
content:
|
|
50
|
-
"Triangle $ABC$ has side lengths of $12$, $14$, and $20$. Which of the following triangles is congruent to triangle $ABC$ ?\n\n[[☃ radio 1]]\n\nEnter the number 3 into this field: [[☃ input-number 1]]",
|
|
51
|
-
widgets: {
|
|
52
|
-
"radio 1": {
|
|
53
|
-
alignment: "default",
|
|
54
|
-
graded: true,
|
|
55
|
-
options: {
|
|
56
|
-
choices: [
|
|
57
|
-
{
|
|
58
|
-
clue: "Congruent triangles have the same side lengths.",
|
|
59
|
-
content:
|
|
60
|
-
"A triangle with side lengths of $3$, $4$, and $5$",
|
|
61
|
-
correct: false,
|
|
62
|
-
},
|
|
63
|
-
{
|
|
64
|
-
clue: "Congruent triangles have the same side lengths.\n\nThis choice is similar to triangle $ABC$.",
|
|
65
|
-
content:
|
|
66
|
-
"A triangle with side lengths of $6$, $7$, and $10$",
|
|
67
|
-
correct: false,
|
|
68
|
-
},
|
|
69
|
-
{
|
|
70
|
-
clue: "Congruent triangles have the same side lengths.",
|
|
71
|
-
content:
|
|
72
|
-
"A triangle with side lengths of $10$, $12$, and $18$",
|
|
73
|
-
correct: false,
|
|
74
|
-
isNoneOfTheAbove: false,
|
|
75
|
-
},
|
|
76
|
-
{
|
|
77
|
-
clue: "Congruent triangles have the same side lengths.",
|
|
78
|
-
content:
|
|
79
|
-
"A triangle with side lengths of $12$, $14$, and $20$",
|
|
80
|
-
correct: true,
|
|
81
|
-
isNoneOfTheAbove: false,
|
|
82
|
-
},
|
|
83
|
-
{
|
|
84
|
-
clue: "Congruent triangles have the same side lengths.\n\nThis choice is similar to triangle $ABC$.",
|
|
85
|
-
content:
|
|
86
|
-
"A triangle with side lengths of $24$, $28$, and $40$",
|
|
87
|
-
correct: false,
|
|
88
|
-
isNoneOfTheAbove: false,
|
|
89
|
-
},
|
|
90
|
-
],
|
|
91
|
-
countChoices: false,
|
|
92
|
-
deselectEnabled: false,
|
|
93
|
-
displayCount: null,
|
|
94
|
-
hasNoneOfTheAbove: false,
|
|
95
|
-
multipleSelect: false,
|
|
96
|
-
randomize: false,
|
|
97
|
-
},
|
|
98
|
-
static: false,
|
|
99
|
-
type: "radio",
|
|
100
|
-
version: {
|
|
101
|
-
major: 1,
|
|
102
|
-
minor: 0,
|
|
103
|
-
},
|
|
104
|
-
},
|
|
105
|
-
"input-number 1": {
|
|
106
|
-
type: "input-number",
|
|
107
|
-
graded: true,
|
|
108
|
-
options: {
|
|
109
|
-
answerType: "number",
|
|
110
|
-
value: "-42",
|
|
111
|
-
simplify: "required",
|
|
112
|
-
size: "normal",
|
|
113
|
-
inexact: false,
|
|
114
|
-
maxError: 0.1,
|
|
115
|
-
},
|
|
116
|
-
},
|
|
117
|
-
},
|
|
118
|
-
},
|
|
119
|
-
},
|
|
120
|
-
};
|
|
121
|
-
|
|
122
|
-
const mockWidgetConfig = {
|
|
123
|
-
graded: true,
|
|
124
|
-
version: {major: 0, minor: 0},
|
|
125
|
-
static: false,
|
|
126
|
-
type: "mock-widget",
|
|
127
|
-
options: {static: false, smiling: true},
|
|
128
|
-
alignment: "default",
|
|
129
|
-
} as const;
|
|
130
|
-
|
|
131
|
-
// Shape: simpleQuestionShape
|
|
132
|
-
export const mockedQuestion1: Item = {
|
|
133
|
-
_multi: {
|
|
134
|
-
blurb: {
|
|
135
|
-
__type: "content",
|
|
136
|
-
content: "Here's a blurb [[☃ mock-widget 1]]",
|
|
137
|
-
images: {},
|
|
138
|
-
widgets: {
|
|
139
|
-
"mock-widget 1": mockWidgetConfig,
|
|
140
|
-
},
|
|
141
|
-
},
|
|
142
|
-
hints: [
|
|
143
|
-
{
|
|
144
|
-
__type: "hint",
|
|
145
|
-
content: "Hint #1 [[☃ mock-widget 2]]",
|
|
146
|
-
images: {},
|
|
147
|
-
replace: false,
|
|
148
|
-
widgets: {
|
|
149
|
-
"mock-widget 2": mockWidgetConfig,
|
|
150
|
-
},
|
|
151
|
-
},
|
|
152
|
-
{
|
|
153
|
-
__type: "hint",
|
|
154
|
-
content: "Hint #1 [[☃ mock-widget 3]]",
|
|
155
|
-
images: {},
|
|
156
|
-
replace: false,
|
|
157
|
-
widgets: {
|
|
158
|
-
"mock-widget 3": mockWidgetConfig,
|
|
159
|
-
},
|
|
160
|
-
},
|
|
161
|
-
],
|
|
162
|
-
question: {
|
|
163
|
-
__type: "content",
|
|
164
|
-
content:
|
|
165
|
-
"What is the answer to this?\n\n[[☃ mock-widget 4]]\n\n[[☃ mock-widget 5]]",
|
|
166
|
-
widgets: {
|
|
167
|
-
"mock-widget 4": mockWidgetConfig,
|
|
168
|
-
"mock-widget 5": mockWidgetConfig,
|
|
169
|
-
},
|
|
170
|
-
},
|
|
171
|
-
},
|
|
172
|
-
};
|