@khanacademy/perseus 19.1.4 → 19.1.6
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/graphie.d.ts +9 -1
- package/dist/es/index.js +255 -122
- package/dist/es/index.js.map +1 -1
- package/dist/index.js +261 -126
- package/dist/index.js.map +1 -1
- package/dist/interactive2/interactive-util.d.ts +1 -1
- package/dist/interactive2/movable-point-options.d.ts +5 -4
- package/dist/interactive2/movable.d.ts +90 -13
- package/dist/interactive2/types.d.ts +6 -0
- package/dist/util/graphie.d.ts +5 -0
- package/dist/widgets/expression.d.ts +4 -4
- package/package.json +11 -8
- package/.babelrc.js +0 -8
- package/.eslintrc.js +0 -12
- package/CHANGELOG.md +0 -1422
- 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 -392
- 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 -43
- package/src/interactive2/__tests__/movable-point.test.ts +0 -144
- package/src/interactive2/__tests__/movable.test.ts +0 -157
- 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 -212
- 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.ts +0 -279
- package/src/interactive2/objective_.ts +0 -79
- package/src/interactive2/types.ts +0 -2
- 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 -1566
- package/src/util/interactive.ts +0 -4172
- 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
package/dist/index.js
CHANGED
|
@@ -3999,10 +3999,10 @@ class FixedToResponsive extends React__namespace.Component {
|
|
|
3999
3999
|
|
|
4000
4000
|
/* Local helper methods. */
|
|
4001
4001
|
|
|
4002
|
-
function getKey(eventName, id) {
|
|
4002
|
+
function getKey$1(eventName, id) {
|
|
4003
4003
|
return eventName + ":" + id;
|
|
4004
4004
|
}
|
|
4005
|
-
function getEventName(key) {
|
|
4005
|
+
function getEventName$1(key) {
|
|
4006
4006
|
return key.split(":")[0];
|
|
4007
4007
|
}
|
|
4008
4008
|
const MovableHelperMethods = {
|
|
@@ -4083,7 +4083,7 @@ const MovableHelperMethods = {
|
|
|
4083
4083
|
|
|
4084
4084
|
// If there's an existing handler, replace it by using its index in
|
|
4085
4085
|
// `this.state[eventName]`; otherwise, add this handler to the end
|
|
4086
|
-
const key = getKey(eventName, id);
|
|
4086
|
+
const key = getKey$1(eventName, id);
|
|
4087
4087
|
const index = this._listenerMap[key] = this._listenerMap[key] || this.state[eventName].length;
|
|
4088
4088
|
this.state[eventName][index] = func;
|
|
4089
4089
|
},
|
|
@@ -4095,7 +4095,7 @@ const MovableHelperMethods = {
|
|
|
4095
4095
|
*/
|
|
4096
4096
|
unlisten: function (eventName, id) {
|
|
4097
4097
|
this._listenerMap = this._listenerMap || {};
|
|
4098
|
-
const key = getKey(eventName, id);
|
|
4098
|
+
const key = getKey$1(eventName, id);
|
|
4099
4099
|
const index = this._listenerMap[key];
|
|
4100
4100
|
if (index !== undefined) {
|
|
4101
4101
|
// Remove handler from list of event handlers and listenerMap
|
|
@@ -4105,7 +4105,7 @@ const MovableHelperMethods = {
|
|
|
4105
4105
|
// Re-index existing events: if they occur after `index`, decrement
|
|
4106
4106
|
const keys = ___default["default"].keys(this._listenerMap);
|
|
4107
4107
|
___default["default"].each(keys, function (key) {
|
|
4108
|
-
if (getEventName(key) === eventName &&
|
|
4108
|
+
if (getEventName$1(key) === eventName &&
|
|
4109
4109
|
// @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
4110
4110
|
this._listenerMap[key] > index) {
|
|
4111
4111
|
// @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
@@ -8707,6 +8707,9 @@ class Graphie$1 {
|
|
|
8707
8707
|
// TODO(benchristel): xpixels and ypixels are never used by this class, but
|
|
8708
8708
|
// other code reaches in to access them :(
|
|
8709
8709
|
// Refactor to accessor methods that look at this.dimensions.
|
|
8710
|
+
// set by Movables
|
|
8711
|
+
// TODO(benchristel): consider putting this state on the Movable instead of
|
|
8712
|
+
// on the Graphie
|
|
8710
8713
|
constructor(el) {
|
|
8711
8714
|
this.el = el;
|
|
8712
8715
|
$__default["default"](el).css("position", "relative");
|
|
@@ -9538,6 +9541,11 @@ class Graphie$1 {
|
|
|
9538
9541
|
});
|
|
9539
9542
|
return processed;
|
|
9540
9543
|
}
|
|
9544
|
+
|
|
9545
|
+
// This is a stub that's overridden in interactive.ts
|
|
9546
|
+
getMouseCoord(event) {
|
|
9547
|
+
throw new Error("getMouseCoord is a stub, and is not implemented");
|
|
9548
|
+
}
|
|
9541
9549
|
}
|
|
9542
9550
|
const labelDirections = {
|
|
9543
9551
|
center: [-0.5, -0.5],
|
|
@@ -13746,8 +13754,7 @@ var GraphieClasses = {
|
|
|
13746
13754
|
const normalizeOptions$3 = InteractiveUtil.normalizeOptions;
|
|
13747
13755
|
const assert$8 = InteractiveUtil.assert;
|
|
13748
13756
|
|
|
13749
|
-
// Default "props" and "state". Both are added to this.state
|
|
13750
|
-
// receive magic getter methods (this.isHovering() etc).
|
|
13757
|
+
// Default "props" and "state". Both are added to this.state.
|
|
13751
13758
|
// However, properties in DEFAULT_PROPS are updated on `modify()`,
|
|
13752
13759
|
// while those in DEFAULT_STATE persist and are not updated.
|
|
13753
13760
|
// Things that the user might want to change should be on "props",
|
|
@@ -13762,29 +13769,26 @@ const DEFAULT_STATE$3 = {
|
|
|
13762
13769
|
isDragging: false,
|
|
13763
13770
|
mouseTarget: null
|
|
13764
13771
|
};
|
|
13765
|
-
|
|
13766
|
-
//
|
|
13767
|
-
|
|
13768
|
-
|
|
13769
|
-
|
|
13770
|
-
|
|
13772
|
+
class Movable {
|
|
13773
|
+
// TODO(benchristel): delete _listenerMap; it's unused
|
|
13774
|
+
_listenerMap = {};
|
|
13775
|
+
constructor(graphie, options) {
|
|
13776
|
+
this.graphie = graphie;
|
|
13777
|
+
this.state = {
|
|
13771
13778
|
id: ___default["default"].uniqueId("movable")
|
|
13772
|
-
}
|
|
13773
|
-
});
|
|
13774
|
-
|
|
13775
|
-
// We only set DEFAULT_STATE once, here
|
|
13776
|
-
// @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
13777
|
-
this.modify(___default["default"].extend({}, DEFAULT_STATE$3, options));
|
|
13778
|
-
};
|
|
13779
|
-
InteractiveUtil.createGettersFor(Movable, ___default["default"].extend({}, DEFAULT_PROPS$3, DEFAULT_STATE$3));
|
|
13780
|
-
InteractiveUtil.addMovableHelperMethodsTo(Movable);
|
|
13781
|
-
___default["default"].extend(Movable.prototype, {
|
|
13782
|
-
cloneState: function () {
|
|
13783
|
-
return {
|
|
13784
|
-
...this.state
|
|
13785
13779
|
};
|
|
13786
|
-
|
|
13787
|
-
|
|
13780
|
+
this.modify({
|
|
13781
|
+
...DEFAULT_STATE$3,
|
|
13782
|
+
...options
|
|
13783
|
+
});
|
|
13784
|
+
}
|
|
13785
|
+
modify(options) {
|
|
13786
|
+
this.update({
|
|
13787
|
+
...this._createDefaultState(),
|
|
13788
|
+
...options
|
|
13789
|
+
});
|
|
13790
|
+
}
|
|
13791
|
+
_createDefaultState() {
|
|
13788
13792
|
return {
|
|
13789
13793
|
id: this.state.id,
|
|
13790
13794
|
add: [],
|
|
@@ -13799,66 +13803,11 @@ ___default["default"].extend(Movable.prototype, {
|
|
|
13799
13803
|
// be persistent, and updated appropriately in modify()
|
|
13800
13804
|
...DEFAULT_PROPS$3
|
|
13801
13805
|
};
|
|
13802
|
-
}
|
|
13803
|
-
|
|
13804
|
-
|
|
13805
|
-
|
|
13806
|
-
|
|
13807
|
-
* Analogous to React.js's replaceProps
|
|
13808
|
-
*/
|
|
13809
|
-
modify: function (options) {
|
|
13810
|
-
this.update({
|
|
13811
|
-
...this._createDefaultState(),
|
|
13812
|
-
...options
|
|
13813
|
-
});
|
|
13814
|
-
},
|
|
13815
|
-
/**
|
|
13816
|
-
* Simulates a mouse grab event on the movable object.
|
|
13817
|
-
*/
|
|
13818
|
-
grab: function (coord) {
|
|
13819
|
-
assert$8(kmath.point.is(coord));
|
|
13820
|
-
const self = this;
|
|
13821
|
-
const graphie = self.graphie;
|
|
13822
|
-
const state = self.state;
|
|
13823
|
-
state.isHovering = true;
|
|
13824
|
-
state.isDragging = true;
|
|
13825
|
-
graphie.isDragging = true;
|
|
13826
|
-
const startMouseCoord = coord;
|
|
13827
|
-
let prevMouseCoord = startMouseCoord;
|
|
13828
|
-
self._fireEvent(state.onMoveStart, startMouseCoord, startMouseCoord);
|
|
13829
|
-
const moveHandler = function (e) {
|
|
13830
|
-
e.preventDefault();
|
|
13831
|
-
const mouseCoord = graphie.getMouseCoord(e);
|
|
13832
|
-
self._fireEvent(state.onMove, mouseCoord, prevMouseCoord);
|
|
13833
|
-
self.draw();
|
|
13834
|
-
prevMouseCoord = mouseCoord;
|
|
13835
|
-
};
|
|
13836
|
-
const upHandler = function (e) {
|
|
13837
|
-
$__default["default"](document).unbind("vmousemove", moveHandler);
|
|
13838
|
-
$__default["default"](document).unbind("vmouseup", upHandler);
|
|
13839
|
-
if (state.isHovering) {
|
|
13840
|
-
self._fireEvent(state.onClick, prevMouseCoord, startMouseCoord);
|
|
13841
|
-
}
|
|
13842
|
-
state.isHovering = self.state.isMouseOver;
|
|
13843
|
-
state.isDragging = false;
|
|
13844
|
-
graphie.isDragging = false;
|
|
13845
|
-
self._fireEvent(state.onMoveEnd, prevMouseCoord, startMouseCoord);
|
|
13846
|
-
self.draw();
|
|
13847
|
-
};
|
|
13848
|
-
$__default["default"](document).bind("vmousemove", moveHandler);
|
|
13849
|
-
$__default["default"](document).bind("vmouseup", upHandler);
|
|
13850
|
-
},
|
|
13851
|
-
/**
|
|
13852
|
-
* Adjusts constructor parameters without changing previous settings
|
|
13853
|
-
* for any option not specified
|
|
13854
|
-
*
|
|
13855
|
-
* Analogous to React.js's setProps
|
|
13856
|
-
*/
|
|
13857
|
-
update: function (options) {
|
|
13858
|
-
const self = this;
|
|
13859
|
-
const graphie = self.graphie;
|
|
13860
|
-
const prevState = self.cloneState();
|
|
13861
|
-
const state = ___default["default"].extend(self.state, normalizeOptions$3(options));
|
|
13806
|
+
}
|
|
13807
|
+
update(options) {
|
|
13808
|
+
const graphie = this.graphie;
|
|
13809
|
+
const prevState = this.cloneState();
|
|
13810
|
+
const state = Object.assign(this.state, normalizeOptions$3(options));
|
|
13862
13811
|
|
|
13863
13812
|
// the invisible shape in front of the point that gets mouse events
|
|
13864
13813
|
if (state.mouseTarget && !prevState.mouseTarget) {
|
|
@@ -13870,24 +13819,24 @@ ___default["default"].extend(Movable.prototype, {
|
|
|
13870
13819
|
}
|
|
13871
13820
|
const isMouse = !("ontouchstart" in window);
|
|
13872
13821
|
if (isMouse) {
|
|
13873
|
-
$mouseTarget.on("vmouseover",
|
|
13822
|
+
$mouseTarget.on("vmouseover", () => {
|
|
13874
13823
|
state.isMouseOver = true;
|
|
13875
13824
|
if (!graphie.isDragging) {
|
|
13876
13825
|
state.isHovering = true;
|
|
13877
13826
|
}
|
|
13878
|
-
if (
|
|
13827
|
+
if (this.state.added) {
|
|
13879
13828
|
// Avoid drawing if the point has been removed
|
|
13880
|
-
|
|
13829
|
+
this.draw();
|
|
13881
13830
|
}
|
|
13882
13831
|
});
|
|
13883
|
-
$mouseTarget.on("vmouseout",
|
|
13832
|
+
$mouseTarget.on("vmouseout", () => {
|
|
13884
13833
|
state.isMouseOver = false;
|
|
13885
13834
|
if (!state.isDragging) {
|
|
13886
13835
|
state.isHovering = false;
|
|
13887
13836
|
}
|
|
13888
|
-
if (
|
|
13837
|
+
if (this.state.added) {
|
|
13889
13838
|
// Avoid drawing if the point has been removed
|
|
13890
|
-
|
|
13839
|
+
this.draw();
|
|
13891
13840
|
}
|
|
13892
13841
|
});
|
|
13893
13842
|
}
|
|
@@ -13899,13 +13848,13 @@ ___default["default"].extend(Movable.prototype, {
|
|
|
13899
13848
|
}, {
|
|
13900
13849
|
passive: false
|
|
13901
13850
|
});
|
|
13902
|
-
$mouseTarget.on("vmousedown",
|
|
13851
|
+
$mouseTarget.on("vmousedown", e => {
|
|
13903
13852
|
if (e.which !== 0 && e.which !== 1) {
|
|
13904
13853
|
return;
|
|
13905
13854
|
}
|
|
13906
13855
|
e.preventDefault();
|
|
13907
13856
|
const mouseCoord = graphie.getMouseCoord(e);
|
|
13908
|
-
|
|
13857
|
+
this.grab(mouseCoord);
|
|
13909
13858
|
});
|
|
13910
13859
|
}
|
|
13911
13860
|
if (state.mouseTarget && state.cursor !== undefined) {
|
|
@@ -13922,39 +13871,217 @@ ___default["default"].extend(Movable.prototype, {
|
|
|
13922
13871
|
|
|
13923
13872
|
// Trigger an add event if this hasn't been added before
|
|
13924
13873
|
if (!state.added) {
|
|
13925
|
-
|
|
13874
|
+
// TODO(benchristel): No one seems to handle the modify event. Can
|
|
13875
|
+
// we delete this?
|
|
13876
|
+
// @ts-expect-error - TS2345: Argument of type '{}' is not assignable to parameter of type 'State'.
|
|
13877
|
+
this._fireEvent(state.modify, this.cloneState(), {});
|
|
13926
13878
|
state.added = true;
|
|
13927
13879
|
|
|
13928
13880
|
// Update the state for `added` and in case the add event
|
|
13929
13881
|
// changed it
|
|
13930
|
-
|
|
13882
|
+
this.prevState = this.cloneState();
|
|
13931
13883
|
}
|
|
13932
13884
|
|
|
13933
13885
|
// Trigger a modify event
|
|
13934
|
-
|
|
13935
|
-
}
|
|
13936
|
-
|
|
13937
|
-
|
|
13938
|
-
|
|
13939
|
-
|
|
13940
|
-
|
|
13941
|
-
|
|
13942
|
-
|
|
13886
|
+
this._fireEvent(state.modify, this.cloneState(), this.prevState);
|
|
13887
|
+
}
|
|
13888
|
+
cloneState() {
|
|
13889
|
+
return {
|
|
13890
|
+
...this.state
|
|
13891
|
+
};
|
|
13892
|
+
}
|
|
13893
|
+
|
|
13894
|
+
/**
|
|
13895
|
+
* Fire an onSomething type event to all functions in listeners
|
|
13896
|
+
*/
|
|
13897
|
+
_fireEvent(listeners) {
|
|
13898
|
+
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
13899
|
+
args[_key - 1] = arguments[_key];
|
|
13943
13900
|
}
|
|
13944
|
-
|
|
13901
|
+
if (listeners == null) {
|
|
13902
|
+
return;
|
|
13903
|
+
}
|
|
13904
|
+
for (const listener of listeners) {
|
|
13905
|
+
listener.call(this, ...args);
|
|
13906
|
+
}
|
|
13907
|
+
}
|
|
13908
|
+
|
|
13909
|
+
/**
|
|
13910
|
+
* Call all draw functions, and update our prevState for the next
|
|
13911
|
+
* draw function
|
|
13912
|
+
*/
|
|
13913
|
+
draw() {
|
|
13914
|
+
const currState = this.cloneState();
|
|
13915
|
+
this._fireEvent(this.state.draw, currState, this.prevState);
|
|
13916
|
+
this.prevState = currState;
|
|
13917
|
+
}
|
|
13918
|
+
|
|
13919
|
+
/**
|
|
13920
|
+
* Simulates a mouse grab event on the movable object.
|
|
13921
|
+
*/
|
|
13922
|
+
grab(coord) {
|
|
13923
|
+
assert$8(kmath.point.is(coord));
|
|
13924
|
+
const graphie = this.graphie;
|
|
13925
|
+
const state = this.state;
|
|
13926
|
+
state.isHovering = true;
|
|
13927
|
+
state.isDragging = true;
|
|
13928
|
+
graphie.isDragging = true;
|
|
13929
|
+
const startMouseCoord = coord;
|
|
13930
|
+
let prevMouseCoord = startMouseCoord;
|
|
13931
|
+
this._fireEvent(state.onMoveStart, startMouseCoord, startMouseCoord);
|
|
13932
|
+
const moveHandler = e => {
|
|
13933
|
+
e.preventDefault();
|
|
13934
|
+
const mouseCoord = graphie.getMouseCoord(e);
|
|
13935
|
+
this._fireEvent(state.onMove, mouseCoord, prevMouseCoord);
|
|
13936
|
+
this.draw();
|
|
13937
|
+
prevMouseCoord = mouseCoord;
|
|
13938
|
+
};
|
|
13939
|
+
const upHandler = () => {
|
|
13940
|
+
$__default["default"](document).unbind("vmousemove", moveHandler);
|
|
13941
|
+
$__default["default"](document).unbind("vmouseup", upHandler);
|
|
13942
|
+
if (state.isHovering) {
|
|
13943
|
+
this._fireEvent(state.onClick, prevMouseCoord, startMouseCoord);
|
|
13944
|
+
}
|
|
13945
|
+
state.isHovering = this.state.isMouseOver;
|
|
13946
|
+
state.isDragging = false;
|
|
13947
|
+
graphie.isDragging = false;
|
|
13948
|
+
this._fireEvent(state.onMoveEnd, prevMouseCoord, startMouseCoord);
|
|
13949
|
+
this.draw();
|
|
13950
|
+
};
|
|
13951
|
+
$__default["default"](document).bind("vmousemove", moveHandler);
|
|
13952
|
+
$__default["default"](document).bind("vmouseup", upHandler);
|
|
13953
|
+
}
|
|
13954
|
+
_applyConstraints(current, previous, extraOptions) {
|
|
13955
|
+
let skipRemaining = false;
|
|
13956
|
+
return (this.state.constraints ?? []).reduce((memo, constraint) => {
|
|
13957
|
+
// A move that has been cancelled won't be propagated to later
|
|
13958
|
+
// constraints calls
|
|
13959
|
+
if (memo === false) {
|
|
13960
|
+
return false;
|
|
13961
|
+
}
|
|
13962
|
+
if (skipRemaining) {
|
|
13963
|
+
return memo;
|
|
13964
|
+
}
|
|
13965
|
+
const result = constraint.call(this, memo, previous, {
|
|
13966
|
+
onSkipRemaining: () => {
|
|
13967
|
+
skipRemaining = true;
|
|
13968
|
+
},
|
|
13969
|
+
...extraOptions
|
|
13970
|
+
});
|
|
13971
|
+
if (result === false) {
|
|
13972
|
+
// Returning false cancels the move
|
|
13973
|
+
return false;
|
|
13974
|
+
}
|
|
13975
|
+
if (kmath.point.is(result, 2)) {
|
|
13976
|
+
// Returning a coord from constraints overrides the move
|
|
13977
|
+
return result;
|
|
13978
|
+
}
|
|
13979
|
+
if (result === true || result == null) {
|
|
13980
|
+
// Returning true or undefined allow the move to occur
|
|
13981
|
+
return memo;
|
|
13982
|
+
}
|
|
13983
|
+
// Anything else is an error
|
|
13984
|
+
throw new PerseusError("Constraint returned invalid result: " + result, Errors.Internal);
|
|
13985
|
+
}, current);
|
|
13986
|
+
}
|
|
13987
|
+
|
|
13945
13988
|
// Change z-order to back
|
|
13946
|
-
toBack
|
|
13989
|
+
toBack() {
|
|
13947
13990
|
if (this.state.mouseTarget) {
|
|
13948
13991
|
this.state.mouseTarget.toBack();
|
|
13949
13992
|
}
|
|
13950
|
-
}
|
|
13993
|
+
}
|
|
13994
|
+
|
|
13951
13995
|
// Change z-order to front
|
|
13952
|
-
toFront
|
|
13996
|
+
toFront() {
|
|
13953
13997
|
if (this.state.mouseTarget) {
|
|
13954
13998
|
this.state.mouseTarget.toFront();
|
|
13955
13999
|
}
|
|
13956
14000
|
}
|
|
13957
|
-
|
|
14001
|
+
|
|
14002
|
+
/**
|
|
14003
|
+
* Add a listener to any event: startMove, constraints, onMove, onMoveEnd,
|
|
14004
|
+
* etc. If a listener is already bound to the given eventName and id, then
|
|
14005
|
+
* it is overwritten by func.
|
|
14006
|
+
*
|
|
14007
|
+
* eventName: the string name of the event to listen to. one of:
|
|
14008
|
+
* "onMoveStart", "onMove", "onMoveEnd", "draw", "remove"
|
|
14009
|
+
*
|
|
14010
|
+
* id: a string id that can be used to remove this event at a later time
|
|
14011
|
+
* note: adding multiple listeners with the same id is undefined behavior
|
|
14012
|
+
*
|
|
14013
|
+
* func: the function to call when the event happens, which is called
|
|
14014
|
+
* with the event's standard parameters [usually (coord, prevCoord) or
|
|
14015
|
+
* (state, prevState)]
|
|
14016
|
+
*/
|
|
14017
|
+
listen(eventName, id, func) {
|
|
14018
|
+
this._listenerMap = this._listenerMap || {};
|
|
14019
|
+
|
|
14020
|
+
// If there's an existing handler, replace it by using its index in
|
|
14021
|
+
// `this.state[eventName]`; otherwise, add this handler to the end
|
|
14022
|
+
const key = getKey(eventName, id);
|
|
14023
|
+
const index = this._listenerMap[key] = this._listenerMap[key] || this.state[eventName].length;
|
|
14024
|
+
this.state[eventName][index] = func;
|
|
14025
|
+
}
|
|
14026
|
+
|
|
14027
|
+
/**
|
|
14028
|
+
* Remove a previously added listener, by the id specified in the
|
|
14029
|
+
* corresponding listen() call
|
|
14030
|
+
*
|
|
14031
|
+
* If the given id has not been registered already, this is a no-op
|
|
14032
|
+
*/
|
|
14033
|
+
unlisten(eventName, id) {
|
|
14034
|
+
this._listenerMap = this._listenerMap || {};
|
|
14035
|
+
const key = getKey(eventName, id);
|
|
14036
|
+
const index = this._listenerMap[key];
|
|
14037
|
+
if (index !== undefined) {
|
|
14038
|
+
// Remove handler from list of event handlers and listenerMap
|
|
14039
|
+
this.state[eventName].splice(index, 1);
|
|
14040
|
+
delete this._listenerMap[key];
|
|
14041
|
+
|
|
14042
|
+
// Re-index existing events: if they occur after `index`, decrement
|
|
14043
|
+
const keys = ___default["default"].keys(this._listenerMap);
|
|
14044
|
+
keys.forEach(key => {
|
|
14045
|
+
if (getEventName(key) === eventName && this._listenerMap[key] > index) {
|
|
14046
|
+
this._listenerMap[key]--;
|
|
14047
|
+
}
|
|
14048
|
+
});
|
|
14049
|
+
}
|
|
14050
|
+
}
|
|
14051
|
+
remove() {
|
|
14052
|
+
this.state.added = false;
|
|
14053
|
+
this._fireEvent(this.state.remove);
|
|
14054
|
+
if (this.state.mouseTarget) {
|
|
14055
|
+
$__default["default"](this.state.mouseTarget).off();
|
|
14056
|
+
this.state.mouseTarget.remove();
|
|
14057
|
+
this.state.mouseTarget = null;
|
|
14058
|
+
}
|
|
14059
|
+
}
|
|
14060
|
+
cursor() {
|
|
14061
|
+
return this.state.cursor;
|
|
14062
|
+
}
|
|
14063
|
+
added() {
|
|
14064
|
+
return this.state.added;
|
|
14065
|
+
}
|
|
14066
|
+
isHovering() {
|
|
14067
|
+
return this.state.isHovering;
|
|
14068
|
+
}
|
|
14069
|
+
isMouseOver() {
|
|
14070
|
+
return this.state.isMouseOver;
|
|
14071
|
+
}
|
|
14072
|
+
isDragging() {
|
|
14073
|
+
return this.state.isDragging;
|
|
14074
|
+
}
|
|
14075
|
+
mouseTarget() {
|
|
14076
|
+
return this.state.mouseTarget;
|
|
14077
|
+
}
|
|
14078
|
+
}
|
|
14079
|
+
function getKey(eventName, id) {
|
|
14080
|
+
return eventName + ":" + id;
|
|
14081
|
+
}
|
|
14082
|
+
function getEventName(key) {
|
|
14083
|
+
return key.split(":")[0];
|
|
14084
|
+
}
|
|
13958
14085
|
|
|
13959
14086
|
/* eslint-disable @babel/no-invalid-this */
|
|
13960
14087
|
/**
|
|
@@ -14800,31 +14927,39 @@ const constraints$1 = {
|
|
|
14800
14927
|
snap: function (snap) {
|
|
14801
14928
|
return function (coord) {
|
|
14802
14929
|
if (snap === null) {
|
|
14803
|
-
// NOTE(kevinb): this should probably return
|
|
14930
|
+
// TODO(benchristel), NOTE(kevinb): this should probably return
|
|
14931
|
+
// the original point
|
|
14804
14932
|
return true;
|
|
14805
14933
|
}
|
|
14806
|
-
// @ts-expect-error -
|
|
14807
|
-
|
|
14808
|
-
return kmath.point.roundTo(coord, snap);
|
|
14934
|
+
// @ts-expect-error - TS2339: Property 'snap' does not exist on type 'Graphie'.
|
|
14935
|
+
return kmath.point.roundTo(coord, snap || this.graphie.snap);
|
|
14809
14936
|
};
|
|
14810
14937
|
},
|
|
14811
|
-
bound: function (range, snap,
|
|
14812
|
-
|
|
14813
|
-
if (
|
|
14814
|
-
|
|
14938
|
+
bound: function (range, snap, optionalPaddingPx) {
|
|
14939
|
+
const paddingPx = (() => {
|
|
14940
|
+
if (optionalPaddingPx === undefined) {
|
|
14941
|
+
if (range === undefined) {
|
|
14942
|
+
return 10;
|
|
14943
|
+
} else {
|
|
14944
|
+
return 0;
|
|
14945
|
+
}
|
|
14815
14946
|
} else {
|
|
14816
|
-
|
|
14947
|
+
return optionalPaddingPx;
|
|
14817
14948
|
}
|
|
14818
|
-
}
|
|
14949
|
+
})();
|
|
14819
14950
|
return function (coord, prev, options) {
|
|
14820
|
-
// @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
14821
14951
|
const graphie = this.graphie;
|
|
14822
14952
|
range = range || graphie.range;
|
|
14823
14953
|
if (snap === undefined) {
|
|
14954
|
+
// @ts-expect-error - Property 'snap' does not exist on type 'Graphie'.
|
|
14824
14955
|
snap = graphie.snap;
|
|
14825
14956
|
}
|
|
14826
|
-
let lower = graphie.unscalePoint([paddingPx,
|
|
14827
|
-
|
|
14957
|
+
let lower = graphie.unscalePoint([paddingPx,
|
|
14958
|
+
// @ts-expect-error - 'graphie.ypixels' is possibly 'undefined'.
|
|
14959
|
+
graphie.ypixels - paddingPx]);
|
|
14960
|
+
let upper = graphie.unscalePoint([
|
|
14961
|
+
// @ts-expect-error - 'graphie.ypixels' is possibly 'undefined'.
|
|
14962
|
+
graphie.xpixels - paddingPx, paddingPx]);
|
|
14828
14963
|
if (snap) {
|
|
14829
14964
|
lower = kmath.point.ceilTo(lower, snap);
|
|
14830
14965
|
upper = kmath.point.floorTo(upper, snap);
|
|
@@ -41611,7 +41746,7 @@ const init = function (options) {
|
|
|
41611
41746
|
|
|
41612
41747
|
// This file is processed by a Rollup plugin (replace) to inject the production
|
|
41613
41748
|
const libName = "@khanacademy/perseus";
|
|
41614
|
-
const libVersion = "19.1.
|
|
41749
|
+
const libVersion = "19.1.6";
|
|
41615
41750
|
perseusCore.addLibraryVersionToPerseusDebug(libName, libVersion);
|
|
41616
41751
|
|
|
41617
41752
|
const apiVersion = {
|