@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
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* A work-in-progress of _ methods for objects.
|
|
3
|
-
* That is, they take an object as a parameter,
|
|
4
|
-
* and return an object instead of an array.
|
|
5
|
-
*
|
|
6
|
-
* TODO(aria): Move this out of interactive2
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
import _ from "underscore";
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Does a pluck on keys inside objects in an object
|
|
13
|
-
*
|
|
14
|
-
* Ex:
|
|
15
|
-
* tools = {
|
|
16
|
-
* translation: {
|
|
17
|
-
* enabled: true
|
|
18
|
-
* },
|
|
19
|
-
* rotation: {
|
|
20
|
-
* enabled: false
|
|
21
|
-
* }
|
|
22
|
-
* };
|
|
23
|
-
* pluckObject(tools, "enabled") returns {
|
|
24
|
-
* translation: true
|
|
25
|
-
* rotation: false
|
|
26
|
-
* }
|
|
27
|
-
*/
|
|
28
|
-
const pluck = function (table: any, subKey: string): any {
|
|
29
|
-
return _.object(
|
|
30
|
-
_.map(table, function (value, key) {
|
|
31
|
-
return [key, value[subKey]];
|
|
32
|
-
}),
|
|
33
|
-
);
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* Maps an object to an object
|
|
38
|
-
*
|
|
39
|
-
* > mapObject({a: '1', b: '2'}, (value, key) => {
|
|
40
|
-
* return value + 1;
|
|
41
|
-
* });
|
|
42
|
-
* {a: 2, b: 3}
|
|
43
|
-
*/
|
|
44
|
-
const mapObject = function <K extends string, V, U>(
|
|
45
|
-
obj: Partial<Record<K, V>>,
|
|
46
|
-
lambda: (arg1: V, arg2: K) => U,
|
|
47
|
-
): Partial<Record<K, U>> {
|
|
48
|
-
const result: Record<string, any> = {};
|
|
49
|
-
_.each(_.keys(obj), function (key) {
|
|
50
|
-
// @ts-expect-error - TS2345 - Argument of type 'string' is not assignable to parameter of type 'K'.
|
|
51
|
-
result[key] = lambda(obj[key], key);
|
|
52
|
-
});
|
|
53
|
-
return result;
|
|
54
|
-
};
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* Maps an array to an object
|
|
58
|
-
*
|
|
59
|
-
* > mapObjectFromArray(['a', 'b'], function(elem) {
|
|
60
|
-
* return elem + elem;
|
|
61
|
-
* });
|
|
62
|
-
* {a: 'aa', b: 'bb'}
|
|
63
|
-
*/
|
|
64
|
-
const mapObjectFromArray = function <K extends string, V>(
|
|
65
|
-
arr: ReadonlyArray<K>,
|
|
66
|
-
lambda: (arg1: K) => V,
|
|
67
|
-
): Partial<Record<K, V>> {
|
|
68
|
-
const result: Record<string, any> = {};
|
|
69
|
-
_.each(arr, function (elem) {
|
|
70
|
-
result[elem] = lambda(elem);
|
|
71
|
-
});
|
|
72
|
-
return result;
|
|
73
|
-
};
|
|
74
|
-
|
|
75
|
-
export default {
|
|
76
|
-
pluck: pluck,
|
|
77
|
-
mapObject: mapObject,
|
|
78
|
-
mapObjectFromArray: mapObjectFromArray,
|
|
79
|
-
};
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
/* eslint-disable @babel/no-invalid-this */
|
|
2
|
-
/**
|
|
3
|
-
* Default methods for a wrapped movable.
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import {vector as kvector} from "@khanacademy/kmath";
|
|
7
|
-
import $ from "jquery";
|
|
8
|
-
import _ from "underscore";
|
|
9
|
-
|
|
10
|
-
import InteractiveUtil from "./interactive-util";
|
|
11
|
-
import objective_ from "./objective_";
|
|
12
|
-
|
|
13
|
-
/*
|
|
14
|
-
* These functions, when called on the wrapped object, simply pass the
|
|
15
|
-
* arguments to the underlying Raphael object.
|
|
16
|
-
*/
|
|
17
|
-
const PASS_TO_RAPHAEL = ["attr", "animate"];
|
|
18
|
-
|
|
19
|
-
const WrappedDefaults: any = _.extend(
|
|
20
|
-
{
|
|
21
|
-
transform: function (transformation) {
|
|
22
|
-
const prefixedTransform = InteractiveUtil.getPrefixedTransform();
|
|
23
|
-
// @ts-expect-error - TS2538 - Type 'null' cannot be used as an index type. | TS2538 - Type 'undefined' cannot be used as an index type.
|
|
24
|
-
this.wrapper.style[prefixedTransform] = transformation;
|
|
25
|
-
},
|
|
26
|
-
|
|
27
|
-
toFront: function () {
|
|
28
|
-
const parentNode = this.wrapper.parentNode;
|
|
29
|
-
// TODO(emily): Sometimes, we call `.remove()` but then hold a
|
|
30
|
-
// reference to this object, and sometimes call `.toFront` on it.
|
|
31
|
-
// Notably, this happens in the reflection transformation in the
|
|
32
|
-
// Transformer widget. This is a hacky fix. Make this less bad.
|
|
33
|
-
if (parentNode) {
|
|
34
|
-
parentNode.appendChild(this.wrapper);
|
|
35
|
-
}
|
|
36
|
-
},
|
|
37
|
-
|
|
38
|
-
toBack: function () {
|
|
39
|
-
const parentNode = this.wrapper.parentNode;
|
|
40
|
-
if (parentNode.firstChild !== this.wrapper) {
|
|
41
|
-
parentNode.insertBefore(this.wrapper, parentNode.firstChild);
|
|
42
|
-
}
|
|
43
|
-
},
|
|
44
|
-
|
|
45
|
-
remove: function () {
|
|
46
|
-
this.visibleShape.remove();
|
|
47
|
-
$(this.wrapper).remove();
|
|
48
|
-
},
|
|
49
|
-
|
|
50
|
-
getMouseTarget: function () {
|
|
51
|
-
return this.visibleShape[0];
|
|
52
|
-
},
|
|
53
|
-
|
|
54
|
-
moveTo: function (point) {
|
|
55
|
-
const delta = kvector.subtract(
|
|
56
|
-
this.graphie.scalePoint(point),
|
|
57
|
-
this.graphie.scalePoint(this.initialPoint),
|
|
58
|
-
);
|
|
59
|
-
const do3dTransform = InteractiveUtil.getCanUse3dTransform();
|
|
60
|
-
const transformation =
|
|
61
|
-
"translateX(" +
|
|
62
|
-
delta[0] +
|
|
63
|
-
"px) " +
|
|
64
|
-
"translateY(" +
|
|
65
|
-
delta[1] +
|
|
66
|
-
"px)" +
|
|
67
|
-
(do3dTransform ? " translateZ(0)" : "");
|
|
68
|
-
this.transform(transformation);
|
|
69
|
-
},
|
|
70
|
-
|
|
71
|
-
hide: function () {
|
|
72
|
-
this.visibleShape.hide();
|
|
73
|
-
},
|
|
74
|
-
|
|
75
|
-
show: function () {
|
|
76
|
-
this.visibleShape.show();
|
|
77
|
-
},
|
|
78
|
-
},
|
|
79
|
-
objective_.mapObjectFromArray(PASS_TO_RAPHAEL, function (attribute) {
|
|
80
|
-
return function (...args) {
|
|
81
|
-
// @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
82
|
-
this.visibleShape[attribute](...args);
|
|
83
|
-
};
|
|
84
|
-
}),
|
|
85
|
-
);
|
|
86
|
-
|
|
87
|
-
export default WrappedDefaults;
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
import {vector as kvector} from "@khanacademy/kmath";
|
|
2
|
-
import _ from "underscore";
|
|
3
|
-
|
|
4
|
-
import InteractiveUtil from "./interactive-util";
|
|
5
|
-
import WrappedDefaults from "./wrapped-defaults";
|
|
6
|
-
|
|
7
|
-
import type {Coord} from "./types";
|
|
8
|
-
|
|
9
|
-
const DEFAULT_OPTIONS = {
|
|
10
|
-
maxScale: 1,
|
|
11
|
-
mouselayer: false,
|
|
12
|
-
shadow: false,
|
|
13
|
-
disableMouseEventsOnWrapper: false,
|
|
14
|
-
} as const;
|
|
15
|
-
|
|
16
|
-
const WrappedEllipse = function (
|
|
17
|
-
graphie: any,
|
|
18
|
-
center: Coord,
|
|
19
|
-
radii: [number, number],
|
|
20
|
-
options: any,
|
|
21
|
-
) {
|
|
22
|
-
options = _.extend({}, DEFAULT_OPTIONS, options);
|
|
23
|
-
|
|
24
|
-
// Add `wrapper`, `visibleShape`, and remaining properties.
|
|
25
|
-
const fixedEllipse = graphie.fixedEllipse(
|
|
26
|
-
center,
|
|
27
|
-
radii,
|
|
28
|
-
options.maxScale,
|
|
29
|
-
options.padding,
|
|
30
|
-
);
|
|
31
|
-
// @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
32
|
-
_.extend(this, fixedEllipse, {
|
|
33
|
-
graphie: graphie,
|
|
34
|
-
initialPoint: center,
|
|
35
|
-
});
|
|
36
|
-
|
|
37
|
-
if (options.interactiveKindForTesting) {
|
|
38
|
-
// @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
39
|
-
this.wrapper.setAttribute(
|
|
40
|
-
"data-interactive-kind-for-testing",
|
|
41
|
-
options.interactiveKindForTesting,
|
|
42
|
-
);
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
// Add to appropriate graphie layer
|
|
46
|
-
if (options.mouselayer) {
|
|
47
|
-
// Disable browser handling of all panning and zooming gestures on the
|
|
48
|
-
// movable wrapper so that when moved the browser does not scroll page
|
|
49
|
-
// @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
50
|
-
this.wrapper.style.touchAction = "none";
|
|
51
|
-
|
|
52
|
-
// @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation. | TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
53
|
-
this.graphie.addToMouseLayerWrapper(this.wrapper);
|
|
54
|
-
} else {
|
|
55
|
-
// @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation. | TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
56
|
-
this.graphie.addToVisibleLayerWrapper(this.wrapper);
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
if (options.shadow) {
|
|
60
|
-
const filter = "drop-shadow(0px 0px 5px rgba(0, 0, 0, 0.5))";
|
|
61
|
-
// @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
62
|
-
const wrapper = this.wrapper;
|
|
63
|
-
wrapper.style.filter = filter;
|
|
64
|
-
|
|
65
|
-
// @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
66
|
-
this.moveTo = function (point: any) {
|
|
67
|
-
const delta = kvector.subtract(
|
|
68
|
-
this.graphie.scalePoint(point),
|
|
69
|
-
this.graphie.scalePoint(this.initialPoint),
|
|
70
|
-
);
|
|
71
|
-
const do3dTransform = InteractiveUtil.getCanUse3dTransform();
|
|
72
|
-
const transform =
|
|
73
|
-
"translateX(" +
|
|
74
|
-
Math.round(delta[0]) +
|
|
75
|
-
"px) " +
|
|
76
|
-
"translateY(" +
|
|
77
|
-
Math.round(delta[1]) +
|
|
78
|
-
"px)" +
|
|
79
|
-
(do3dTransform ? " translateZ(0)" : "");
|
|
80
|
-
this.transform(transform);
|
|
81
|
-
};
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
if (options.disableMouseEventsOnWrapper) {
|
|
85
|
-
// @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
86
|
-
this.wrapper.style.pointerEvents = "none";
|
|
87
|
-
// @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
88
|
-
this.visibleShape.node.style.pointerEvents = "auto";
|
|
89
|
-
}
|
|
90
|
-
};
|
|
91
|
-
|
|
92
|
-
_.extend(WrappedEllipse.prototype, WrappedDefaults);
|
|
93
|
-
|
|
94
|
-
export default WrappedEllipse;
|
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
import {point as kpoint, vector as kvector} from "@khanacademy/kmath";
|
|
2
|
-
import _ from "underscore";
|
|
3
|
-
|
|
4
|
-
import KhanMath from "../util/math";
|
|
5
|
-
|
|
6
|
-
import InteractiveUtil from "./interactive-util";
|
|
7
|
-
import WrappedDefaults from "./wrapped-defaults";
|
|
8
|
-
|
|
9
|
-
import type {Coord} from "./types";
|
|
10
|
-
|
|
11
|
-
const DEFAULT_OPTIONS = {
|
|
12
|
-
thickness: 2,
|
|
13
|
-
mouselayer: false,
|
|
14
|
-
} as const;
|
|
15
|
-
|
|
16
|
-
const WrappedLine = function (
|
|
17
|
-
graphie: any,
|
|
18
|
-
start: Coord,
|
|
19
|
-
end: Coord,
|
|
20
|
-
options: any,
|
|
21
|
-
) {
|
|
22
|
-
options = _.extend({}, DEFAULT_OPTIONS, options);
|
|
23
|
-
|
|
24
|
-
// Always make the line as large as possible and horizontal; this
|
|
25
|
-
// simplifies a lot of the transforms, e.g., we can rotate by exactly the
|
|
26
|
-
// angle of the argument points in `moveTo`.
|
|
27
|
-
const initialStart = [graphie.range[0][0], 0];
|
|
28
|
-
const initialEnd = [graphie.range[0][1], 0];
|
|
29
|
-
|
|
30
|
-
// Add `wrapper` and `visibleShape`
|
|
31
|
-
_.extend(
|
|
32
|
-
// @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
33
|
-
this,
|
|
34
|
-
graphie.fixedLine(initialStart, initialEnd, options.thickness),
|
|
35
|
-
);
|
|
36
|
-
|
|
37
|
-
if (options.interactiveKindForTesting) {
|
|
38
|
-
// @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
39
|
-
this.wrapper.setAttribute(
|
|
40
|
-
"data-interactive-kind-for-testing",
|
|
41
|
-
options.interactiveKindForTesting,
|
|
42
|
-
);
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
// @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
46
|
-
this.visibleShape.attr(options.normalStyle);
|
|
47
|
-
|
|
48
|
-
// Save properties for computing transformations
|
|
49
|
-
// @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
50
|
-
_.extend(this, {
|
|
51
|
-
graphie: graphie,
|
|
52
|
-
initialPoint: graphie.scalePoint(initialStart),
|
|
53
|
-
initialLength: kpoint.distanceToPoint(
|
|
54
|
-
graphie.scalePoint(initialStart),
|
|
55
|
-
graphie.scalePoint(initialEnd),
|
|
56
|
-
),
|
|
57
|
-
});
|
|
58
|
-
|
|
59
|
-
// Add to appropriate graphie layer
|
|
60
|
-
if (options.mouselayer) {
|
|
61
|
-
// Disable browser handling of all panning and zooming gestures on the
|
|
62
|
-
// movable wrapper so that when moved the browser does not scroll page
|
|
63
|
-
// @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
64
|
-
this.wrapper.style.touchAction = "none";
|
|
65
|
-
|
|
66
|
-
// @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation. | TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
67
|
-
this.graphie.addToMouseLayerWrapper(this.wrapper);
|
|
68
|
-
} else {
|
|
69
|
-
// @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation. | TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
70
|
-
this.graphie.addToVisibleLayerWrapper(this.wrapper);
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
// Move to argument points
|
|
74
|
-
// @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
75
|
-
this.moveTo(start, end);
|
|
76
|
-
};
|
|
77
|
-
|
|
78
|
-
_.extend(WrappedLine.prototype, WrappedDefaults, {
|
|
79
|
-
getMouseTarget: function () {
|
|
80
|
-
return this.wrapper;
|
|
81
|
-
},
|
|
82
|
-
|
|
83
|
-
moveTo: function (start, end) {
|
|
84
|
-
const scaledStart = this.graphie.scalePoint(start);
|
|
85
|
-
const scaledEnd = this.graphie.scalePoint(end);
|
|
86
|
-
|
|
87
|
-
// Compute transformation parameters
|
|
88
|
-
const polarDiff = kvector.polarDegFromCart(
|
|
89
|
-
kvector.subtract(scaledEnd, scaledStart),
|
|
90
|
-
);
|
|
91
|
-
const lineLength = polarDiff[0];
|
|
92
|
-
const angle = KhanMath.bound(polarDiff[1]);
|
|
93
|
-
const delta = kvector.subtract(scaledStart, this.initialPoint);
|
|
94
|
-
const scale = KhanMath.bound(lineLength / this.initialLength);
|
|
95
|
-
|
|
96
|
-
// Construct and apply transformation string
|
|
97
|
-
const do3dTransform = InteractiveUtil.getCanUse3dTransform();
|
|
98
|
-
const transformation =
|
|
99
|
-
"translateX(" +
|
|
100
|
-
delta[0] +
|
|
101
|
-
"px) " +
|
|
102
|
-
"translateY(" +
|
|
103
|
-
delta[1] +
|
|
104
|
-
"px) " +
|
|
105
|
-
(do3dTransform ? " translateZ(0)" : "") +
|
|
106
|
-
"rotate(" +
|
|
107
|
-
angle +
|
|
108
|
-
"deg) " +
|
|
109
|
-
"scaleX(" +
|
|
110
|
-
scale +
|
|
111
|
-
") scaleY(1)";
|
|
112
|
-
this.transform(transformation);
|
|
113
|
-
},
|
|
114
|
-
});
|
|
115
|
-
|
|
116
|
-
export default WrappedLine;
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import _ from "underscore";
|
|
2
|
-
|
|
3
|
-
import WrappedDefaults from "./wrapped-defaults";
|
|
4
|
-
|
|
5
|
-
import type {Coord} from "./types";
|
|
6
|
-
|
|
7
|
-
const DEFAULT_OPTIONS = {
|
|
8
|
-
center: null, // gets ignored in `graphie.fixedPath` if `null`
|
|
9
|
-
createPath: null, // gets defaulted in `graphie.fixedPath` if `null`
|
|
10
|
-
mouselayer: false,
|
|
11
|
-
} as const;
|
|
12
|
-
|
|
13
|
-
const WrappedPath = function (
|
|
14
|
-
graphie: any,
|
|
15
|
-
points: ReadonlyArray<Coord>,
|
|
16
|
-
options: any,
|
|
17
|
-
) {
|
|
18
|
-
options = _.extend({}, DEFAULT_OPTIONS, options);
|
|
19
|
-
|
|
20
|
-
// Add `wrapper` and `visibleShape`
|
|
21
|
-
_.extend(
|
|
22
|
-
// @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
23
|
-
this,
|
|
24
|
-
graphie.fixedPath(points, options.center, options.createPath),
|
|
25
|
-
);
|
|
26
|
-
|
|
27
|
-
// Add remaining properties
|
|
28
|
-
// @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
29
|
-
_.extend(this, {
|
|
30
|
-
graphie: graphie,
|
|
31
|
-
initialPoint: graphie.scalePoint(_.head(points)),
|
|
32
|
-
});
|
|
33
|
-
|
|
34
|
-
// Add to appropriate graphie layer
|
|
35
|
-
if (options.mouselayer) {
|
|
36
|
-
// Disable browser handling of all panning and zooming gestures on the
|
|
37
|
-
// movable wrapper so that when moved the browser does not scroll page
|
|
38
|
-
// @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
39
|
-
this.wrapper.style.touchAction = "none";
|
|
40
|
-
|
|
41
|
-
// @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation. | TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
42
|
-
this.graphie.addToMouseLayerWrapper(this.wrapper);
|
|
43
|
-
} else {
|
|
44
|
-
// @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation. | TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.
|
|
45
|
-
this.graphie.addToVisibleLayerWrapper(this.wrapper);
|
|
46
|
-
}
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
_.extend(WrappedPath.prototype, WrappedDefaults);
|
|
50
|
-
|
|
51
|
-
export default WrappedPath;
|
package/src/interactive2.ts
DELETED
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import Movable from "./interactive2/movable";
|
|
2
|
-
import MovableLine from "./interactive2/movable-line";
|
|
3
|
-
import MovablePoint from "./interactive2/movable-point";
|
|
4
|
-
import MovablePolygon from "./interactive2/movable-polygon";
|
|
5
|
-
import KhanColors from "./util/colors";
|
|
6
|
-
|
|
7
|
-
const Interactive2 = {
|
|
8
|
-
MovablePoint: MovablePoint,
|
|
9
|
-
addMovablePoint: function (graphie: any, options: any): any {
|
|
10
|
-
const movable = new Movable(graphie, {});
|
|
11
|
-
return new MovablePoint(graphie, movable, options);
|
|
12
|
-
},
|
|
13
|
-
MovableLine: MovableLine,
|
|
14
|
-
addMovableLine: function (graphie: any, options: any): any {
|
|
15
|
-
const movable = new Movable(graphie, {});
|
|
16
|
-
return new MovableLine(graphie, movable, options);
|
|
17
|
-
},
|
|
18
|
-
MovablePolygon: MovablePolygon,
|
|
19
|
-
addMovablePolygon: function (graphie: any, options: any): any {
|
|
20
|
-
const movable = new Movable(graphie, {});
|
|
21
|
-
return new MovablePolygon(graphie, movable, options);
|
|
22
|
-
},
|
|
23
|
-
|
|
24
|
-
addMaybeMobileMovablePoint: function (widget: any, extraProps: any): any {
|
|
25
|
-
const isMobile = widget.props.apiOptions.isMobile;
|
|
26
|
-
|
|
27
|
-
const commonStyle = isMobile
|
|
28
|
-
? {
|
|
29
|
-
stroke: "#ffffff",
|
|
30
|
-
"stroke-width": 3,
|
|
31
|
-
fill: KhanColors.INTERACTIVE,
|
|
32
|
-
}
|
|
33
|
-
: {
|
|
34
|
-
stroke: KhanColors.INTERACTIVE,
|
|
35
|
-
fill: KhanColors.INTERACTIVE,
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
const normalStyle = Object.assign(commonStyle, extraProps.normalStyle);
|
|
39
|
-
|
|
40
|
-
const highlightStyle = Object.assign(
|
|
41
|
-
isMobile
|
|
42
|
-
? {
|
|
43
|
-
...commonStyle,
|
|
44
|
-
"stroke-width": 0,
|
|
45
|
-
scale: 0.75,
|
|
46
|
-
}
|
|
47
|
-
: {},
|
|
48
|
-
extraProps.highlightStyle,
|
|
49
|
-
);
|
|
50
|
-
|
|
51
|
-
const props = Object.assign(
|
|
52
|
-
{
|
|
53
|
-
normalStyle: normalStyle,
|
|
54
|
-
highlightStyle: highlightStyle,
|
|
55
|
-
shadow: isMobile,
|
|
56
|
-
tooltip: isMobile && widget.props.showTooltips,
|
|
57
|
-
showHairlines: widget.showHairlines,
|
|
58
|
-
hideHairlines: widget.hideHairlines,
|
|
59
|
-
},
|
|
60
|
-
isMobile ? {pointSize: 7} : {},
|
|
61
|
-
);
|
|
62
|
-
|
|
63
|
-
return Interactive2.addMovablePoint(
|
|
64
|
-
widget.graphie,
|
|
65
|
-
Object.assign(extraProps, props),
|
|
66
|
-
);
|
|
67
|
-
},
|
|
68
|
-
} as const;
|
|
69
|
-
|
|
70
|
-
export default Interactive2;
|
package/src/item-version.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import allWidgets from "./all-widgets";
|
|
2
|
-
import {itemDataVersion} from "./perseus-version";
|
|
3
|
-
import * as Widgets from "./widgets";
|
|
4
|
-
|
|
5
|
-
Widgets.registerWidgets(allWidgets);
|
|
6
|
-
|
|
7
|
-
const ItemVersion = Widgets.getVersionVector();
|
|
8
|
-
ItemVersion["::renderer::"] = itemDataVersion;
|
|
9
|
-
|
|
10
|
-
export default ItemVersion;
|
package/src/jipt-paragraphs.ts
DELETED
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Paragraph parsing/splitting for article jipt i18n
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import SimpleMarkdown from "@khanacademy/simple-markdown";
|
|
6
|
-
|
|
7
|
-
import type {ParserRules} from "@khanacademy/simple-markdown";
|
|
8
|
-
|
|
9
|
-
const arrayRules: ParserRules = {
|
|
10
|
-
fence: {
|
|
11
|
-
match: SimpleMarkdown.defaultRules.fence.match,
|
|
12
|
-
order: 1,
|
|
13
|
-
parse: (capture, state, parse) => ({
|
|
14
|
-
type: "codeBlock",
|
|
15
|
-
lang: capture[2] || undefined,
|
|
16
|
-
content: capture[3],
|
|
17
|
-
}),
|
|
18
|
-
},
|
|
19
|
-
paragraph: {
|
|
20
|
-
match: SimpleMarkdown.defaultRules.paragraph.match,
|
|
21
|
-
order: 2,
|
|
22
|
-
parse: (capture, state, parse) => ({
|
|
23
|
-
content: capture[1],
|
|
24
|
-
}),
|
|
25
|
-
},
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
const builtArrayParser: ReturnType<typeof SimpleMarkdown.parserFor> =
|
|
29
|
-
SimpleMarkdown.parserFor(arrayRules);
|
|
30
|
-
|
|
31
|
-
// This should just return an array of strings! magick!
|
|
32
|
-
const parseToArray = (source: string): Array<string> => {
|
|
33
|
-
// Remove any leading newlines to avoid splitting weirdness
|
|
34
|
-
// (simple-markdown has the `newline` rule for this, and i have
|
|
35
|
-
// no idea how this will handle leading newlines without that rule),
|
|
36
|
-
// and add \n\n to let it parse at a block/paragraph level
|
|
37
|
-
const paragraphedSource = source.replace(/^\n\s*\n/, "") + "\n\n";
|
|
38
|
-
return builtArrayParser(paragraphedSource, {inline: false}).map((c) => {
|
|
39
|
-
return c["content"];
|
|
40
|
-
});
|
|
41
|
-
};
|
|
42
|
-
|
|
43
|
-
const joinFromArray = (paragraphs: ReadonlyArray<string>): string =>
|
|
44
|
-
paragraphs.join("\n\n");
|
|
45
|
-
|
|
46
|
-
export default {
|
|
47
|
-
parseToArray: parseToArray,
|
|
48
|
-
joinFromArray: joinFromArray,
|
|
49
|
-
};
|