@khanacademy/perseus 7.2.0 → 8.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +38 -0
- package/dist/article-renderer.d.ts +26 -40
- package/dist/components/math-input.d.ts +1 -1
- package/dist/components/sortable.d.ts +1 -1
- package/dist/components/tex-buttons.d.ts +1 -1
- package/dist/es/index.css +61 -61
- package/dist/es/index.js +1189 -1308
- package/dist/es/index.js.map +1 -1
- package/dist/hints-renderer.d.ts +1 -1
- package/dist/index.css +61 -61
- package/dist/index.js +1180 -1269
- package/dist/index.js.map +1 -1
- package/dist/mixins/provide-keypad.d.ts +15 -12
- package/dist/perseus-api.d.ts +1 -1
- package/dist/types.d.ts +3 -2
- package/dist/widgets/expression.d.ts +1 -1
- package/dist/widgets/graded-group.d.ts +1 -1
- package/dist/widgets/interactive-graph.d.ts +1 -1
- package/dist/widgets/plotter.d.ts +47 -13
- package/dist/widgets/sequence.d.ts +1 -1
- package/dist/widgets/table.d.ts +8 -1
- package/dist/widgets.d.ts +1 -1
- package/package.json +33 -33
- package/src/__testdata__/article-renderer.testdata.ts +3 -1
- package/src/__testdata__/item-renderer.testdata.ts +1 -1
- package/src/__testdata__/renderer.testdata.ts +1 -1
- package/src/__tests__/item-renderer.test.tsx +2 -2
- package/src/__tests__/mock-asset-loading-widget.tsx +1 -1
- package/src/__tests__/perseus-markdown.test.ts +17 -17
- package/src/__tests__/renderer-api.test.tsx +21 -21
- package/src/__tests__/renderer.test.tsx +13 -13
- package/src/__tests__/server-item-renderer.test.tsx +3 -3
- package/src/__tests__/tex-wrangler.test.ts +1 -1
- package/src/article-renderer.tsx +39 -38
- package/src/components/__stories__/image-loader.stories.tsx +1 -0
- package/src/components/__tests__/number-input.test.tsx +4 -4
- package/src/components/__tests__/sortable.test.tsx +2 -2
- package/src/components/fixed-to-responsive.tsx +1 -1
- package/src/components/graph.tsx +12 -11
- package/src/components/graphie-classes.ts +7 -7
- package/src/components/graphie.tsx +14 -14
- package/src/components/highlighting/highlightable-content.tsx +1 -1
- package/src/components/highlighting/ui/highlight-renderer.tsx +1 -1
- package/src/components/highlighting/ui/util.ts +2 -2
- package/src/components/highlighting/word-indexer.tsx +4 -4
- package/src/components/icon.tsx +2 -1
- package/src/components/image-loader.tsx +5 -4
- package/src/components/input-with-examples.tsx +2 -2
- package/src/components/lint.tsx +1 -1
- package/src/components/math-input.tsx +5 -5
- package/src/components/math-output.tsx +1 -1
- package/src/components/multi-button-group.tsx +1 -1
- package/src/components/number-input.tsx +11 -10
- package/src/components/prop-check-box.tsx +1 -1
- package/src/components/simple-keypad-input.tsx +4 -4
- package/src/components/sortable.tsx +43 -41
- package/src/components/svg-image.tsx +13 -12
- package/src/components/tex-buttons.tsx +5 -3
- package/src/components/text-input.tsx +9 -8
- package/src/components/text-list-editor.tsx +12 -11
- package/src/components/visibility-observer/create-visibility-observer.ts +1 -1
- package/src/components/visibility-observer/visibility-observer.tsx +2 -2
- package/src/components/zoomable-tex.tsx +3 -3
- package/src/components/zoomable.tsx +9 -8
- package/src/hint-renderer.tsx +3 -3
- package/src/hints-renderer.tsx +12 -11
- package/src/index.ts +1 -0
- package/src/init.ts +1 -1
- package/src/interaction-tracker.ts +4 -4
- package/src/interactive2/__tests__/movable-point.test.ts +1 -1
- package/src/interactive2/interactive-util.ts +6 -6
- package/src/interactive2/movable-helper-methods.ts +2 -2
- package/src/interactive2/movable-line-options.ts +37 -37
- package/src/interactive2/movable-line.ts +2 -2
- package/src/interactive2/movable-point-options.ts +29 -29
- package/src/interactive2/movable-point.tsx +2 -2
- package/src/interactive2/movable-polygon-options.ts +45 -45
- package/src/interactive2/movable-polygon.ts +2 -2
- package/src/interactive2/movable.ts +2 -2
- package/src/interactive2/objective_.ts +1 -1
- package/src/interactive2/wrapped-defaults.ts +2 -2
- package/src/interactive2/wrapped-ellipse.ts +9 -9
- package/src/interactive2/wrapped-line.ts +8 -8
- package/src/interactive2/wrapped-path.ts +5 -5
- package/src/item-renderer.tsx +6 -5
- package/src/mixins/changeable.ts +2 -2
- package/src/mixins/editor-jsonify.ts +1 -1
- package/src/mixins/provide-keypad.tsx +24 -37
- package/src/mixins/widget-jsonify-deprecated.ts +1 -1
- package/src/multi-items/__tests__/items.test.ts +1 -1
- package/src/multi-items/__tests__/multi-renderer.test.tsx +7 -7
- package/src/multi-items/__tests__/trees.test.ts +12 -12
- package/src/multi-items/item-types.ts +2 -2
- package/src/multi-items/items.ts +1 -1
- package/src/multi-items/multi-renderer.tsx +15 -14
- package/src/multi-items/prop-type-builders.ts +2 -2
- package/src/multi-items/tree-types.ts +4 -4
- package/src/multi-items/trees.ts +16 -16
- package/src/perseus-env.ts +2 -2
- package/src/perseus-markdown.tsx +5 -5
- package/src/renderer.tsx +39 -38
- package/src/server-item-renderer.tsx +6 -5
- package/src/sigfigs.ts +1 -1
- package/src/styles/articles.less +8 -4
- package/src/styles/perseus-renderer.less +47 -38
- package/src/styles/util.less +1 -1
- package/src/styles/variables.boostrap.less +158 -182
- package/src/styles/variables.less +20 -20
- package/src/styles/variables.shared.less +162 -168
- package/src/styles/widgets/categorizer.less +1 -2
- package/src/styles/widgets/expression.less +7 -4
- package/src/styles/widgets/grapher.less +2 -1
- package/src/styles/widgets/image.less +3 -2
- package/src/styles/widgets/interactive-graph.less +4 -2
- package/src/styles/widgets/label-image.less +2 -1
- package/src/styles/widgets/matrix.less +11 -7
- package/src/styles/widgets/orderer.less +2 -1
- package/src/styles/widgets/passage.less +2 -1
- package/src/styles/widgets/plotter.less +4 -3
- package/src/styles/widgets/radio.less +4 -2
- package/src/styles/widgets/sortable.less +1 -1
- package/src/styles/widgets/table.less +2 -1
- package/src/styles/widgets/transformer.less +2 -1
- package/src/styles/widgets/unit.less +2 -1
- package/src/traversal.ts +1 -1
- package/src/types.ts +3 -3
- package/src/util/answer-types.ts +14 -14
- package/src/util/geometry.ts +7 -7
- package/src/util/graphie.ts +32 -32
- package/src/util/interactive.ts +118 -118
- package/src/util/math.ts +4 -4
- package/src/util/react-render.tsx +1 -1
- package/src/util/scroll-utils.ts +2 -2
- package/src/util/tex.ts +3 -3
- package/src/util.ts +15 -15
- package/src/widget-container.tsx +1 -1
- package/src/widgets/__stories__/plotter.stories.tsx +27 -0
- package/src/widgets/__stories__/test-keypad-context-wrapper.tsx +3 -3
- package/src/widgets/__testdata__/numeric-input.testdata.ts +1 -1
- package/src/widgets/__testdata__/plotter.testdata.ts +36 -0
- package/src/widgets/__tests__/__snapshots__/plotter.test.tsx.snap +863 -0
- package/src/widgets/__tests__/__snapshots__/video.test.ts.snap +2 -2
- package/src/widgets/__tests__/expression.test.ts +4 -3
- package/src/widgets/__tests__/grapher.cypress.ts +32 -32
- package/src/widgets/__tests__/group.test.tsx +1 -1
- package/src/widgets/__tests__/interactive-graph.cypress.ts +40 -40
- package/src/widgets/__tests__/interactive-graph.test.ts +1 -1
- package/src/widgets/__tests__/numeric-input.test.ts +1 -1
- package/src/widgets/__tests__/passage.test.tsx +2 -2
- package/src/widgets/__tests__/plotter.test.tsx +66 -0
- package/src/widgets/__tests__/radio/base-radio.test.tsx +7 -7
- package/src/widgets/__tests__/renderQuestion.tsx +3 -3
- package/src/widgets/categorizer.tsx +5 -4
- package/src/widgets/cs-program.tsx +2 -2
- package/src/widgets/dropdown.tsx +1 -1
- package/src/widgets/expression.tsx +10 -9
- package/src/widgets/graded-group-set.tsx +6 -5
- package/src/widgets/graded-group.tsx +19 -19
- package/src/widgets/grapher/util.tsx +6 -6
- package/src/widgets/grapher.tsx +10 -10
- package/src/widgets/group.tsx +3 -3
- package/src/widgets/iframe.tsx +2 -2
- package/src/widgets/image.tsx +1 -1
- package/src/widgets/input-number.tsx +4 -4
- package/src/widgets/interaction.tsx +78 -77
- package/src/widgets/interactive-graph.tsx +109 -107
- package/src/widgets/label-image/marker.tsx +3 -2
- package/src/widgets/label-image.test.ts +1 -1
- package/src/widgets/label-image.tsx +7 -7
- package/src/widgets/lights-puzzle.tsx +2 -2
- package/src/widgets/matcher.tsx +7 -6
- package/src/widgets/matrix.tsx +20 -20
- package/src/widgets/measurer.tsx +3 -3
- package/src/widgets/molecule/__tests__/layout.test.ts +4 -4
- package/src/widgets/molecule/__tests__/parser.test.ts +14 -14
- package/src/widgets/molecule/smiles-parser.ts +3 -3
- package/src/widgets/molecule.tsx +4 -4
- package/src/widgets/number-line.tsx +11 -11
- package/src/widgets/numeric-input.tsx +11 -11
- package/src/widgets/orderer.tsx +39 -38
- package/src/widgets/passage/__tests__/passage-markdown.test.ts +1 -1
- package/src/widgets/passage/passage-markdown.tsx +4 -4
- package/src/widgets/passage-ref-target.tsx +2 -1
- package/src/widgets/passage-ref.tsx +4 -6
- package/src/widgets/passage.tsx +11 -11
- package/src/widgets/plotter.tsx +117 -107
- package/src/widgets/radio/base-radio.tsx +12 -11
- package/src/widgets/radio/choice-icon/choice-icon.tsx +3 -2
- package/src/widgets/radio/choice.tsx +1 -1
- package/src/widgets/radio/option-status.tsx +1 -1
- package/src/widgets/radio/widget.tsx +6 -6
- package/src/widgets/radio.ts +1 -1
- package/src/widgets/reaction-diagram.tsx +8 -8
- package/src/widgets/sequence.tsx +2 -2
- package/src/widgets/simulator.tsx +14 -14
- package/src/widgets/sorter.tsx +5 -4
- package/src/widgets/table.tsx +8 -8
- package/src/widgets/transformer.tsx +93 -92
- package/src/widgets/unit.tsx +17 -17
- package/src/widgets/video-transcript-link.test.tsx +3 -3
- package/src/widgets/video-transcript-link.tsx +1 -1
- package/src/widgets/video.tsx +1 -1
- package/src/widgets.ts +5 -5
- package/src/zoom.ts +22 -22
- package/tsconfig-build.tsbuildinfo +1 -1
- package/dist/a11y.js.flow +0 -11
- package/dist/all-widgets.js.flow +0 -33
- package/dist/article-renderer.js.flow +0 -73
- package/dist/asset-context.js.flow +0 -15
- package/dist/basic-widgets.js.flow +0 -33
- package/dist/components/button-group.js.flow +0 -33
- package/dist/components/constants.js.flow +0 -13
- package/dist/components/fixed-to-responsive.js.flow +0 -34
- package/dist/components/graph.js.flow +0 -66
- package/dist/components/graphie-classes.js.flow +0 -19
- package/dist/components/graphie-movables.js.flow +0 -22
- package/dist/components/graphie.js.flow +0 -69
- package/dist/components/highlighting/highlightable-content.js.flow +0 -56
- package/dist/components/highlighting/highlights.js.flow +0 -54
- package/dist/components/highlighting/ranges.js.flow +0 -60
- package/dist/components/highlighting/types.js.flow +0 -70
- package/dist/components/highlighting/ui/highlight-renderer.js.flow +0 -43
- package/dist/components/highlighting/ui/highlight-set-renderer.js.flow +0 -41
- package/dist/components/highlighting/ui/highlight-tooltip.js.flow +0 -22
- package/dist/components/highlighting/ui/highlighting-ui.js.flow +0 -30
- package/dist/components/highlighting/ui/selection-tracker.js.flow +0 -54
- package/dist/components/highlighting/ui/types.js.flow +0 -22
- package/dist/components/highlighting/ui/util.js.flow +0 -42
- package/dist/components/highlighting/word-indexer.js.flow +0 -21
- package/dist/components/hud.js.flow +0 -14
- package/dist/components/icon.js.flow +0 -31
- package/dist/components/image-loader.js.flow +0 -49
- package/dist/components/info-tip/info-tip.js.flow +0 -20
- package/dist/components/info-tip.js.flow +0 -18
- package/dist/components/inline-icon.js.flow +0 -39
- package/dist/components/input-with-examples.js.flow +0 -58
- package/dist/components/lint.js.flow +0 -58
- package/dist/components/math-input.js.flow +0 -49
- package/dist/components/math-output.js.flow +0 -33
- package/dist/components/multi-button-group.js.flow +0 -35
- package/dist/components/number-input.js.flow +0 -42
- package/dist/components/prop-check-box.js.flow +0 -8
- package/dist/components/range-input.js.flow +0 -20
- package/dist/components/simple-keypad-input.js.flow +0 -16
- package/dist/components/sortable.js.flow +0 -91
- package/dist/components/stub-tag-editor.js.flow +0 -18
- package/dist/components/svg-image.js.flow +0 -85
- package/dist/components/tex-buttons.js.flow +0 -26
- package/dist/components/tex.js.flow +0 -25
- package/dist/components/text-input.js.flow +0 -39
- package/dist/components/text-list-editor.js.flow +0 -22
- package/dist/components/tooltip.js.flow +0 -51
- package/dist/components/visibility-observer/create-visibility-observer.js.flow +0 -23
- package/dist/components/visibility-observer/get-scroll-parent.js.flow +0 -7
- package/dist/components/visibility-observer/visibility-observer.js.flow +0 -36
- package/dist/components/zoomable-tex.js.flow +0 -18
- package/dist/components/zoomable.js.flow +0 -70
- package/dist/components.js.flow +0 -22
- package/dist/definition-context.js.flow +0 -25
- package/dist/dependencies.js.flow +0 -9
- package/dist/error-boundary.js.flow +0 -19
- package/dist/extra-widgets.js.flow +0 -33
- package/dist/hint-renderer.js.flow +0 -32
- package/dist/hints-renderer.js.flow +0 -41
- package/dist/icon-paths.js.flow +0 -123
- package/dist/index.js.flow +0 -134
- package/dist/init.js.flow +0 -20
- package/dist/interaction-tracker.js.flow +0 -35
- package/dist/interactive2/interactive-util.js.flow +0 -50
- package/dist/interactive2/movable-helper-methods.js.flow +0 -15
- package/dist/interactive2/movable-line-options.js.flow +0 -44
- package/dist/interactive2/movable-line.js.flow +0 -8
- package/dist/interactive2/movable-point-options.js.flow +0 -44
- package/dist/interactive2/movable-point.js.flow +0 -8
- package/dist/interactive2/movable-polygon-options.js.flow +0 -47
- package/dist/interactive2/movable-polygon.js.flow +0 -8
- package/dist/interactive2/movable.js.flow +0 -8
- package/dist/interactive2/objective_.js.flow +0 -25
- package/dist/interactive2/types.js.flow +0 -8
- package/dist/interactive2/wrapped-defaults.js.flow +0 -11
- package/dist/interactive2/wrapped-ellipse.js.flow +0 -14
- package/dist/interactive2/wrapped-line.js.flow +0 -14
- package/dist/interactive2/wrapped-path.js.flow +0 -13
- package/dist/interactive2.js.flow +0 -16
- package/dist/item-renderer.js.flow +0 -132
- package/dist/item-version.js.flow +0 -11
- package/dist/jipt-paragraphs.js.flow +0 -14
- package/dist/loading-context.js.flow +0 -12
- package/dist/logging/log.js.flow +0 -62
- package/dist/mixins/changeable.js.flow +0 -33
- package/dist/mixins/editor-jsonify.js.flow +0 -10
- package/dist/mixins/provide-keypad.js.flow +0 -33
- package/dist/mixins/widget-jsonify-deprecated.js.flow +0 -11
- package/dist/mixins/widget-prop-denylist.js.flow +0 -20
- package/dist/multi-items/item-types.js.flow +0 -55
- package/dist/multi-items/items.js.flow +0 -66
- package/dist/multi-items/multi-renderer.js.flow +0 -213
- package/dist/multi-items/prop-type-builders.js.flow +0 -22
- package/dist/multi-items/shape-types.js.flow +0 -60
- package/dist/multi-items/shapes.js.flow +0 -25
- package/dist/multi-items/tree-types.js.flow +0 -45
- package/dist/multi-items/trees.js.flow +0 -147
- package/dist/multi-items.js.flow +0 -36
- package/dist/perseus-api.js.flow +0 -151
- package/dist/perseus-env.js.flow +0 -6
- package/dist/perseus-error.js.flow +0 -16
- package/dist/perseus-markdown.js.flow +0 -20
- package/dist/perseus-types.js.flow +0 -1041
- package/dist/question-paragraph.js.flow +0 -17
- package/dist/renderability.js.flow +0 -19
- package/dist/renderer.js.flow +0 -325
- package/dist/server-item-renderer.js.flow +0 -132
- package/dist/sigfigs.js.flow +0 -41
- package/dist/styles/constants.js.flow +0 -62
- package/dist/styles/global-constants.js.flow +0 -348
- package/dist/styles/global-styles.js.flow +0 -53
- package/dist/styles/media-queries.js.flow +0 -35
- package/dist/styles/shared.js.flow +0 -8
- package/dist/tex-wrangler.js.flow +0 -13
- package/dist/translation-linter.js.flow +0 -32
- package/dist/traversal.js.flow +0 -26
- package/dist/types.js.flow +0 -318
- package/dist/util/a11y.js.flow +0 -8
- package/dist/util/answer-types.js.flow +0 -49
- package/dist/util/colors.js.flow +0 -95
- package/dist/util/fix-passage-refs.js.flow +0 -8
- package/dist/util/geometry.js.flow +0 -37
- package/dist/util/graph-utils.js.flow +0 -9
- package/dist/util/graphie.js.flow +0 -8
- package/dist/util/interactive.js.flow +0 -11
- package/dist/util/katex-preprocess.js.flow +0 -12
- package/dist/util/math.js.flow +0 -62
- package/dist/util/mobile-native-utils.js.flow +0 -12
- package/dist/util/react-render.js.flow +0 -12
- package/dist/util/register-all-widgets-for-testing.js.flow +0 -7
- package/dist/util/scroll-utils.js.flow +0 -19
- package/dist/util/sizing-utils.js.flow +0 -20
- package/dist/util/tex.js.flow +0 -17
- package/dist/util/url-utils.js.flow +0 -11
- package/dist/util.graphie.js.flow +0 -14
- package/dist/util.js.flow +0 -319
- package/dist/version.js.flow +0 -17
- package/dist/widget-container.js.flow +0 -33
- package/dist/widgets/categorizer.js.flow +0 -70
- package/dist/widgets/cs-program.js.flow +0 -54
- package/dist/widgets/definition.js.flow +0 -57
- package/dist/widgets/dropdown.js.flow +0 -63
- package/dist/widgets/explanation.js.flow +0 -58
- package/dist/widgets/expression.js.flow +0 -116
- package/dist/widgets/graded-group-answer-bar.js.flow +0 -24
- package/dist/widgets/graded-group-set.js.flow +0 -65
- package/dist/widgets/graded-group.js.flow +0 -78
- package/dist/widgets/grapher/util.js.flow +0 -38
- package/dist/widgets/grapher.js.flow +0 -102
- package/dist/widgets/group.js.flow +0 -60
- package/dist/widgets/iframe.js.flow +0 -53
- package/dist/widgets/image.js.flow +0 -73
- package/dist/widgets/input-number.js.flow +0 -94
- package/dist/widgets/interaction/arrow-picker.js.flow +0 -21
- package/dist/widgets/interaction/color-picker.js.flow +0 -23
- package/dist/widgets/interaction/dash-picker.js.flow +0 -21
- package/dist/widgets/interaction/element-container.js.flow +0 -28
- package/dist/widgets/interaction.js.flow +0 -60
- package/dist/widgets/interactive-graph.js.flow +0 -239
- package/dist/widgets/label-image/answer-choices.js.flow +0 -55
- package/dist/widgets/label-image/marker.js.flow +0 -31
- package/dist/widgets/label-image/types.js.flow +0 -23
- package/dist/widgets/label-image.js.flow +0 -142
- package/dist/widgets/lights-puzzle.js.flow +0 -58
- package/dist/widgets/matcher.js.flow +0 -106
- package/dist/widgets/matrix.js.flow +0 -80
- package/dist/widgets/measurer.js.flow +0 -30
- package/dist/widgets/molecule/molecule-drawing.js.flow +0 -11
- package/dist/widgets/molecule/molecule-layout.js.flow +0 -96
- package/dist/widgets/molecule/smiles-parser.js.flow +0 -26
- package/dist/widgets/molecule.js.flow +0 -60
- package/dist/widgets/number-line.js.flow +0 -102
- package/dist/widgets/numeric-input.js.flow +0 -105
- package/dist/widgets/orderer.js.flow +0 -81
- package/dist/widgets/passage/passage-markdown.js.flow +0 -33
- package/dist/widgets/passage-ref-target.js.flow +0 -52
- package/dist/widgets/passage-ref.js.flow +0 -85
- package/dist/widgets/passage.js.flow +0 -157
- package/dist/widgets/plotter.js.flow +0 -78
- package/dist/widgets/radio/base-radio.js.flow +0 -50
- package/dist/widgets/radio/choice-a11y-text.js.flow +0 -14
- package/dist/widgets/radio/choice-icon/choice-icon.js.flow +0 -22
- package/dist/widgets/radio/choice-icon/cross-out-line.js.flow +0 -16
- package/dist/widgets/radio/choice-icon/shared-styles.js.flow +0 -11
- package/dist/widgets/radio/choice-none-above.js.flow +0 -16
- package/dist/widgets/radio/choice.js.flow +0 -29
- package/dist/widgets/radio/choice.jsx.fixture.js.flow +0 -7
- package/dist/widgets/radio/focus-ring.js.flow +0 -22
- package/dist/widgets/radio/option-status.js.flow +0 -16
- package/dist/widgets/radio/util.js.flow +0 -12
- package/dist/widgets/radio/widget.js.flow +0 -80
- package/dist/widgets/radio.js.flow +0 -31
- package/dist/widgets/reaction-diagram.js.flow +0 -46
- package/dist/widgets/sequence.js.flow +0 -53
- package/dist/widgets/simulator.js.flow +0 -107
- package/dist/widgets/sorter.js.flow +0 -102
- package/dist/widgets/table.js.flow +0 -67
- package/dist/widgets/transformer.js.flow +0 -127
- package/dist/widgets/unit.js.flow +0 -93
- package/dist/widgets/video-transcript-link.js.flow +0 -15
- package/dist/widgets/video.js.flow +0 -57
- package/dist/widgets.js.flow +0 -108
- package/dist/zoom.js.flow +0 -7
- package/src/multi-items/item-types.js.flow +0 -55
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Flowtype definitions for data
|
|
3
|
-
* Generated by Flowgen from a Typescript Definition
|
|
4
|
-
* Flowgen v1.21.0
|
|
5
|
-
* @flow
|
|
6
|
-
*/
|
|
7
|
-
import type { Coord } from "./types";
|
|
8
|
-
declare var _default: {|
|
|
9
|
-
add: {|
|
|
10
|
-
+constrain: () => void,
|
|
11
|
-
+pointsToFront: (state: any) => void,
|
|
12
|
-
|},
|
|
13
|
-
modify: {|
|
|
14
|
-
+draw: () => void,
|
|
15
|
-
|},
|
|
16
|
-
draw: {|
|
|
17
|
-
+basic: (state: any, prevState: any) => void,
|
|
18
|
-
+labels: (state: any, prevState: any) => void,
|
|
19
|
-
+highlight: (state: any, prevState: any) => void,
|
|
20
|
-
|},
|
|
21
|
-
remove: {|
|
|
22
|
-
+basic: () => void,
|
|
23
|
-
+labels: () => void,
|
|
24
|
-
|},
|
|
25
|
-
onMoveStart: {|
|
|
26
|
-
standard: null,
|
|
27
|
-
|},
|
|
28
|
-
constraints: {|
|
|
29
|
-
+fixed: () => () => boolean,
|
|
30
|
-
+snap: (snap: any) => (arg1: Coord) => mixed,
|
|
31
|
-
+bound: (
|
|
32
|
-
range: any,
|
|
33
|
-
snap: any,
|
|
34
|
-
paddingPx: number
|
|
35
|
-
) => (arg1: Coord, arg2: Coord) => Coord,
|
|
36
|
-
|},
|
|
37
|
-
onMove: {|
|
|
38
|
-
+updatePoints: (coord: Coord, prevCoord: Coord) => void,
|
|
39
|
-
|},
|
|
40
|
-
onMoveEnd: {|
|
|
41
|
-
standard: null,
|
|
42
|
-
|},
|
|
43
|
-
onClick: {|
|
|
44
|
-
standard: null,
|
|
45
|
-
|},
|
|
46
|
-
|};
|
|
47
|
-
declare export default typeof _default;
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Flowtype definitions for data
|
|
3
|
-
* Generated by Flowgen from a Typescript Definition
|
|
4
|
-
* Flowgen v1.21.0
|
|
5
|
-
* @flow
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* A work-in-progress of _ methods for objects.
|
|
9
|
-
* That is, they take an object as a parameter,
|
|
10
|
-
* and return an object instead of an array.
|
|
11
|
-
*
|
|
12
|
-
* TODO(aria): Move this out of interactive2
|
|
13
|
-
*/
|
|
14
|
-
declare var _default: {|
|
|
15
|
-
pluck: (table: any, subKey: string) => any,
|
|
16
|
-
mapObject: <K: string, V, U>(
|
|
17
|
-
obj: $Rest<{ [key: K]: V }, {}>,
|
|
18
|
-
lambda: (arg1: V, arg2: K) => U
|
|
19
|
-
) => $Rest<{ [key: K]: U }, {}>,
|
|
20
|
-
mapObjectFromArray: <K_1: string, V_1>(
|
|
21
|
-
arr: $ReadOnlyArray<K_1>,
|
|
22
|
-
lambda: (arg1: K_1) => V_1
|
|
23
|
-
) => $Rest<{ [key: K_1]: V_1 }, {}>,
|
|
24
|
-
|};
|
|
25
|
-
declare export default typeof _default;
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Flowtype definitions for data
|
|
3
|
-
* Generated by Flowgen from a Typescript Definition
|
|
4
|
-
* Flowgen v1.21.0
|
|
5
|
-
* @flow
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* Default methods for a wrapped movable.
|
|
9
|
-
*/
|
|
10
|
-
declare var WrappedDefaults: any;
|
|
11
|
-
declare export default typeof WrappedDefaults;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Flowtype definitions for data
|
|
3
|
-
* Generated by Flowgen from a Typescript Definition
|
|
4
|
-
* Flowgen v1.21.0
|
|
5
|
-
* @flow
|
|
6
|
-
*/
|
|
7
|
-
import type { Coord } from "./types";
|
|
8
|
-
declare var WrappedEllipse: (
|
|
9
|
-
graphie: any,
|
|
10
|
-
center: Coord,
|
|
11
|
-
radii: [number, number],
|
|
12
|
-
options: any
|
|
13
|
-
) => void;
|
|
14
|
-
declare export default typeof WrappedEllipse;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Flowtype definitions for data
|
|
3
|
-
* Generated by Flowgen from a Typescript Definition
|
|
4
|
-
* Flowgen v1.21.0
|
|
5
|
-
* @flow
|
|
6
|
-
*/
|
|
7
|
-
import type { Coord } from "./types";
|
|
8
|
-
declare var WrappedLine: (
|
|
9
|
-
graphie: any,
|
|
10
|
-
start: Coord,
|
|
11
|
-
end: Coord,
|
|
12
|
-
options: any
|
|
13
|
-
) => void;
|
|
14
|
-
declare export default typeof WrappedLine;
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Flowtype definitions for data
|
|
3
|
-
* Generated by Flowgen from a Typescript Definition
|
|
4
|
-
* Flowgen v1.21.0
|
|
5
|
-
* @flow
|
|
6
|
-
*/
|
|
7
|
-
import type { Coord } from "./types";
|
|
8
|
-
declare var WrappedPath: (
|
|
9
|
-
graphie: any,
|
|
10
|
-
points: $ReadOnlyArray<Coord>,
|
|
11
|
-
options: any
|
|
12
|
-
) => void;
|
|
13
|
-
declare export default typeof WrappedPath;
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Flowtype definitions for data
|
|
3
|
-
* Generated by Flowgen from a Typescript Definition
|
|
4
|
-
* Flowgen v1.21.0
|
|
5
|
-
* @flow
|
|
6
|
-
*/
|
|
7
|
-
declare var Interactive2: {|
|
|
8
|
-
+MovablePoint: (graphie: any, movable: any, options: any) => void,
|
|
9
|
-
+addMovablePoint: (graphie: any, options: any) => any,
|
|
10
|
-
+MovableLine: (graphie: any, movable: any, options: any) => void,
|
|
11
|
-
+addMovableLine: (graphie: any, options: any) => any,
|
|
12
|
-
+MovablePolygon: (graphie: any, movable: any, options: any) => void,
|
|
13
|
-
+addMovablePolygon: (graphie: any, options: any) => any,
|
|
14
|
-
+addMaybeMobileMovablePoint: (widget: any, extraProps: any) => any,
|
|
15
|
-
|};
|
|
16
|
-
declare export default typeof Interactive2;
|
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Flowtype definitions for data
|
|
3
|
-
* Generated by Flowgen from a Typescript Definition
|
|
4
|
-
* Flowgen v1.21.0
|
|
5
|
-
* @flow
|
|
6
|
-
*/
|
|
7
|
-
import * as React from "react";
|
|
8
|
-
import HintsRenderer from "./hints-renderer";
|
|
9
|
-
import Renderer from "./renderer";
|
|
10
|
-
import type { KeypadProps } from "./mixins/provide-keypad";
|
|
11
|
-
import type { PerseusItem } from "./perseus-types";
|
|
12
|
-
import type { APIOptions, FocusPath, LinterContextProps } from "./types";
|
|
13
|
-
import type { KEScore } from "@khanacademy/perseus-core";
|
|
14
|
-
declare type Props = {|
|
|
15
|
-
...KeypadProps,
|
|
16
|
-
...{|
|
|
17
|
-
apiOptions: APIOptions,
|
|
18
|
-
controlPeripherals?: boolean,
|
|
19
|
-
workAreaSelector: string,
|
|
20
|
-
hintsAreaSelector: string,
|
|
21
|
-
initialHintsVisible?: number,
|
|
22
|
-
item: PerseusItem | any,
|
|
23
|
-
onShowCalculator?: () => mixed,
|
|
24
|
-
onShowChi2Table?: () => mixed,
|
|
25
|
-
onShowPeriodicTable?: () => mixed,
|
|
26
|
-
onShowTTable?: () => mixed,
|
|
27
|
-
onShowZTable?: () => mixed,
|
|
28
|
-
problemNum: number,
|
|
29
|
-
reviewMode: boolean,
|
|
30
|
-
savedState: any,
|
|
31
|
-
linterContext: LinterContextProps,
|
|
32
|
-
legacyPerseusLint?: $ReadOnlyArray<string>,
|
|
33
|
-
|},
|
|
34
|
-
|};
|
|
35
|
-
declare type DefaultProps = {|
|
|
36
|
-
apiOptions: $PropertyType<Props, "apiOptions">,
|
|
37
|
-
controlPeripherals: $PropertyType<Props, "controlPeripherals">,
|
|
38
|
-
hintsAreaSelector: $PropertyType<Props, "hintsAreaSelector">,
|
|
39
|
-
initialHintsVisible: $PropertyType<Props, "initialHintsVisible">,
|
|
40
|
-
linterContext: $PropertyType<Props, "linterContext">,
|
|
41
|
-
reviewMode: $PropertyType<Props, "reviewMode">,
|
|
42
|
-
workAreaSelector: $PropertyType<Props, "workAreaSelector">,
|
|
43
|
-
|};
|
|
44
|
-
declare type State = {|
|
|
45
|
-
keypadElement: HTMLElement | null | void,
|
|
46
|
-
hintsVisible: number,
|
|
47
|
-
questionCompleted: boolean,
|
|
48
|
-
questionHighlightedWidgets: $ReadOnlyArray<string>,
|
|
49
|
-
|};
|
|
50
|
-
declare type SerializedState = {|
|
|
51
|
-
hints: any,
|
|
52
|
-
question: {
|
|
53
|
-
[id: string]: any,
|
|
54
|
-
},
|
|
55
|
-
|};
|
|
56
|
-
declare class ItemRenderer extends React.Component<Props, State> {
|
|
57
|
-
questionRenderer: Renderer;
|
|
58
|
-
hintsRenderer: React.ElementRef<typeof HintsRenderer> | null | void;
|
|
59
|
-
_currentFocus: FocusPath;
|
|
60
|
-
static defaultProps: DefaultProps;
|
|
61
|
-
constructor(props: Props): this;
|
|
62
|
-
componentDidMount(): void;
|
|
63
|
-
UNSAFE_componentWillReceiveProps(nextProps: Props): void;
|
|
64
|
-
componentDidUpdate(): void;
|
|
65
|
-
componentWillUnmount(): void;
|
|
66
|
-
keypadElement(): any;
|
|
67
|
-
update(): void;
|
|
68
|
-
_handleFocusChange: (newFocus: FocusPath, oldFocus: FocusPath) => void;
|
|
69
|
-
_setCurrentFocus(newFocus: FocusPath): void;
|
|
70
|
-
_onRendererBlur(blurPath: FocusPath): void;
|
|
71
|
-
|
|
72
|
-
/**
|
|
73
|
-
* Accepts a question area widgetId, or an answer area widgetId of
|
|
74
|
-
* the form "answer-input-number 1", or the string "answer-area"
|
|
75
|
-
* for the whole answer area (if the answer area is a single widget).
|
|
76
|
-
*/
|
|
77
|
-
_setWidgetProps(widgetId: string, newProps: any, callback: any): void;
|
|
78
|
-
|
|
79
|
-
/**
|
|
80
|
-
* Sets the input value into the widget found at `path`. The `focus`
|
|
81
|
-
* function provided is called when all affected widgets have been
|
|
82
|
-
* re-rendered with the new value.
|
|
83
|
-
*/
|
|
84
|
-
setInputValue(path: FocusPath, newValue: string, focus: () => void): void;
|
|
85
|
-
focusPath(path: FocusPath): void;
|
|
86
|
-
blurPath(path: FocusPath): void;
|
|
87
|
-
getDOMNodeForPath(path: FocusPath): Element | Text | null | void;
|
|
88
|
-
getGrammarTypeForPath(path: FocusPath): string | null | void;
|
|
89
|
-
getInputPaths(): $ReadOnlyArray<FocusPath>;
|
|
90
|
-
handleInteractWithWidget: (widgetId: string) => void;
|
|
91
|
-
focus(): boolean | null | void;
|
|
92
|
-
blur(): void;
|
|
93
|
-
showHint(): void;
|
|
94
|
-
getNumHints(): number;
|
|
95
|
-
|
|
96
|
-
/**
|
|
97
|
-
* Grades the item.
|
|
98
|
-
*
|
|
99
|
-
* Returns a KE-style score of {
|
|
100
|
-
* empty: bool,
|
|
101
|
-
* correct: bool,
|
|
102
|
-
* message: string|null,
|
|
103
|
-
* guess: Array
|
|
104
|
-
* }
|
|
105
|
-
*/
|
|
106
|
-
scoreInput(): KEScore;
|
|
107
|
-
|
|
108
|
-
/**
|
|
109
|
-
* Returns an array of all widget IDs in the order they occur in
|
|
110
|
-
* the question content.
|
|
111
|
-
*/
|
|
112
|
-
getWidgetIds(): $ReadOnlyArray<string>;
|
|
113
|
-
|
|
114
|
-
/**
|
|
115
|
-
* Returns an object mapping from widget ID to KE-style score.
|
|
116
|
-
* The keys of this object are the values of the array returned
|
|
117
|
-
* from `getWidgetIds`.
|
|
118
|
-
*/
|
|
119
|
-
scoreWidgets(): {
|
|
120
|
-
[id: string]: KEScore,
|
|
121
|
-
};
|
|
122
|
-
|
|
123
|
-
/**
|
|
124
|
-
* Get a representation of the current state of the item.
|
|
125
|
-
*/
|
|
126
|
-
getSerializedState(): SerializedState;
|
|
127
|
-
restoreSerializedState(state: SerializedState, callback?: () => void): void;
|
|
128
|
-
showRationalesForCurrentlySelectedChoices(): void;
|
|
129
|
-
deselectIncorrectSelectedChoices(): void;
|
|
130
|
-
render(): React.Node;
|
|
131
|
-
}
|
|
132
|
-
declare export default typeof ItemRenderer;
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Flowtype definitions for data
|
|
3
|
-
* Generated by Flowgen from a Typescript Definition
|
|
4
|
-
* Flowgen v1.21.0
|
|
5
|
-
* @flow
|
|
6
|
-
*/
|
|
7
|
-
import * as $Flowgen$Import$_2e__2f_types from "./types";
|
|
8
|
-
declare var ItemVersion: {
|
|
9
|
-
[key: string]: $Flowgen$Import$_2e__2f_types.Version,
|
|
10
|
-
};
|
|
11
|
-
declare export default typeof ItemVersion;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Flowtype definitions for data
|
|
3
|
-
* Generated by Flowgen from a Typescript Definition
|
|
4
|
-
* Flowgen v1.21.0
|
|
5
|
-
* @flow
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* Paragraph parsing/splitting for article jipt i18n
|
|
9
|
-
*/
|
|
10
|
-
declare var _default: {|
|
|
11
|
-
parseToArray: (source: string) => string[],
|
|
12
|
-
joinFromArray: (paragraphs: $ReadOnlyArray<string>) => string,
|
|
13
|
-
|};
|
|
14
|
-
declare export default typeof _default;
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Flowtype definitions for data
|
|
3
|
-
* Generated by Flowgen from a Typescript Definition
|
|
4
|
-
* Flowgen v1.21.0
|
|
5
|
-
* @flow
|
|
6
|
-
*/
|
|
7
|
-
import * as React from "react";
|
|
8
|
-
declare type Context = {|
|
|
9
|
-
onRendered: (isRendered: boolean) => void,
|
|
10
|
-
|};
|
|
11
|
-
declare var context: React.Context<Context>;
|
|
12
|
-
declare export default typeof context;
|
package/dist/logging/log.js.flow
DELETED
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Flowtype definitions for data
|
|
3
|
-
* Generated by Flowgen from a Typescript Definition
|
|
4
|
-
* Flowgen v1.21.0
|
|
5
|
-
* @flow
|
|
6
|
-
*/
|
|
7
|
-
import type { Metadata } from "@khanacademy/wonder-stuff-core";
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* @typedef {Object} Errors utility for referencing the Perseus error taxonomy.
|
|
11
|
-
*/
|
|
12
|
-
declare export var Errors: $ReadOnly<{|
|
|
13
|
-
/**
|
|
14
|
-
* @property {ErrorKind} Unknown The kind of error is not known.
|
|
15
|
-
*/
|
|
16
|
-
Unknown: "Unknown",
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* @property {ErrorKind} Internal The error is internal to the executing code.
|
|
20
|
-
*/
|
|
21
|
-
Internal: "Internal",
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* @property {ErrorKind} InvalidInput There was a problem with the provided
|
|
25
|
-
* input, such as the wrong format or a null value.
|
|
26
|
-
*/
|
|
27
|
-
InvalidInput: "InvalidInput",
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* @property [object Object],[object Object],[object Object],[object Object],[object Object]
|
|
31
|
-
*/
|
|
32
|
-
NotAllowed: "NotAllowed",
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* @property {ErrorKind} TransientService There was a problem when making a
|
|
36
|
-
* request to a service.
|
|
37
|
-
*/
|
|
38
|
-
TransientService: "TransientService",
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* @property {ErrorKind} Service There was a non-transient problem when
|
|
42
|
-
* making a request to service.
|
|
43
|
-
*/
|
|
44
|
-
Service: "Service",
|
|
45
|
-
|}>;
|
|
46
|
-
/**
|
|
47
|
-
* @type {ErrorKind} The kind of error being reported
|
|
48
|
-
*/
|
|
49
|
-
export type ErrorKind = $ElementType<typeof Errors, $Keys<typeof Errors>>;
|
|
50
|
-
export type LogErrorOptions = {|
|
|
51
|
-
cause?: Error | null | void,
|
|
52
|
-
loggedMetadata?: Metadata | null | void,
|
|
53
|
-
metadata?: Metadata | null | void,
|
|
54
|
-
|};
|
|
55
|
-
/**
|
|
56
|
-
* Provides logging infrastructure for Perseus
|
|
57
|
-
*/
|
|
58
|
-
export interface ILogger {
|
|
59
|
-
log(message: string, extra?: Metadata | null | void): void;
|
|
60
|
-
error(message: string, kind: ErrorKind, extra?: LogErrorOptions): void;
|
|
61
|
-
}
|
|
62
|
-
declare export var Log: ILogger;
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Flowtype definitions for data
|
|
3
|
-
* Generated by Flowgen from a Typescript Definition
|
|
4
|
-
* Flowgen v1.21.0
|
|
5
|
-
* @flow
|
|
6
|
-
*/
|
|
7
|
-
import PropTypes from "prop-types";
|
|
8
|
-
import type { ChangeFn } from "../types";
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* this.change()
|
|
12
|
-
*
|
|
13
|
-
* Can be called as follows:
|
|
14
|
-
* this.change(newProps, callback);
|
|
15
|
-
*
|
|
16
|
-
* this.change(propName, propValue, callback);
|
|
17
|
-
*
|
|
18
|
-
* this.change(propName) -> returns a lambda that takes a prop value to
|
|
19
|
-
* set and a callback to call after having set that value.
|
|
20
|
-
*/
|
|
21
|
-
declare export var change: ChangeFn;
|
|
22
|
-
declare export var propTypes: {|
|
|
23
|
-
+onChange: PropTypes.Validator<(...args: any[]) => any>,
|
|
24
|
-
|};
|
|
25
|
-
export type ChangeableProps = {|
|
|
26
|
-
onChange: (
|
|
27
|
-
values: {
|
|
28
|
-
[key: string]: any,
|
|
29
|
-
},
|
|
30
|
-
callback?: () => mixed | null | void,
|
|
31
|
-
silent?: boolean
|
|
32
|
-
) => mixed,
|
|
33
|
-
|};
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Flowtype definitions for data
|
|
3
|
-
* Generated by Flowgen from a Typescript Definition
|
|
4
|
-
* Flowgen v1.21.0
|
|
5
|
-
* @flow
|
|
6
|
-
*/
|
|
7
|
-
import PropTypes from "prop-types";
|
|
8
|
-
import type { CSSProperties } from "aphrodite";
|
|
9
|
-
export type KeypadProps = {|
|
|
10
|
-
keypadStyle?: CSSProperties,
|
|
11
|
-
|};
|
|
12
|
-
export type KeypadApiOptions = {|
|
|
13
|
-
customKeypad: boolean,
|
|
14
|
-
nativeKeypadProxy: any,
|
|
15
|
-
|};
|
|
16
|
-
declare var ProvideKeypad: {|
|
|
17
|
-
+propTypes: {|
|
|
18
|
-
+apiOptions: PropTypes.Requireable<
|
|
19
|
-
PropTypes.InferProps<{|
|
|
20
|
-
customKeypad: PropTypes.Requireable<boolean>,
|
|
21
|
-
nativeKeypadProxy: PropTypes.Requireable<(...args: any[]) => any>,
|
|
22
|
-
|}>
|
|
23
|
-
>,
|
|
24
|
-
+keypadStyle: PropTypes.Requireable<any>,
|
|
25
|
-
|},
|
|
26
|
-
+getInitialState: () => {|
|
|
27
|
-
keypadElement: any | null,
|
|
28
|
-
|},
|
|
29
|
-
+componentDidMount: () => void,
|
|
30
|
-
+componentWillUnmount: () => void,
|
|
31
|
-
+keypadElement: () => any,
|
|
32
|
-
|};
|
|
33
|
-
declare export default typeof ProvideKeypad;
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Flowtype definitions for data
|
|
3
|
-
* Generated by Flowgen from a Typescript Definition
|
|
4
|
-
* Flowgen v1.21.0
|
|
5
|
-
* @flow
|
|
6
|
-
*/
|
|
7
|
-
declare var WidgetJsonifyDeprecated: {|
|
|
8
|
-
+getUserInput: () => any,
|
|
9
|
-
+getUserInputFromProps: (props: any) => any,
|
|
10
|
-
|};
|
|
11
|
-
declare export default typeof WidgetJsonifyDeprecated;
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Flowtype definitions for data
|
|
3
|
-
* Generated by Flowgen from a Typescript Definition
|
|
4
|
-
* Flowgen v1.21.0
|
|
5
|
-
* @flow
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* These are things that widgets should exclude when serializing themselves.
|
|
9
|
-
*
|
|
10
|
-
* The use of this list needs to die. Basically, there are codepaths that
|
|
11
|
-
* blindly serialize the "props" of a widget so that it can pass around its
|
|
12
|
-
* info. Unfortunately, props aren't guaranteed to be serializable, and
|
|
13
|
-
* automatically serializing schemaless list of attributes causes issues (e.g.
|
|
14
|
-
* circular JSON structures sometimes).
|
|
15
|
-
*
|
|
16
|
-
* This blocks things that we know don't need to be serialized.
|
|
17
|
-
*/
|
|
18
|
-
declare var denylist: string[];
|
|
19
|
-
declare export var removeDenylistProps: (props: any) => any;
|
|
20
|
-
declare export default typeof denylist;
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
/**
|
|
3
|
-
* Type definitions for multi-item types, including:
|
|
4
|
-
*
|
|
5
|
-
* - Item: A multi-item tree wrapped in a `_multi` key, to help us recognize it
|
|
6
|
-
* as a multi-item in other contexts and avoid misinterpreting its
|
|
7
|
-
* other properties.
|
|
8
|
-
* - ItemTree: A multi-item without the `_multi` key. Conforms to the Tree
|
|
9
|
-
* interface, so it's compatible with our tree traversal functions.
|
|
10
|
-
* - And the various types of nodes that compose a tree.
|
|
11
|
-
*/
|
|
12
|
-
import type {WidgetDict, ImageDict} from "../types.js";
|
|
13
|
-
import type {Tree, ArrayNode, ObjectNode} from "./tree-types.js";
|
|
14
|
-
|
|
15
|
-
export type ContentNode = {
|
|
16
|
-
// TODO(mdr): When we first drafted the multi-item feature, we named
|
|
17
|
-
// content nodes "item" nodes, and later decided the term was
|
|
18
|
-
// ambiguous and switched to "content". But we're temporarily keeping
|
|
19
|
-
// support for the "item" string when inferring item shape, so that we
|
|
20
|
-
// don't crash on multi-items we've already created - but all new
|
|
21
|
-
// content nodes will be generated with the "content" string.
|
|
22
|
-
//
|
|
23
|
-
// Code blocks that enable this legacy support are greppable with the
|
|
24
|
-
// keyword #LegacyContentNode.
|
|
25
|
-
__type: "content" | "item",
|
|
26
|
-
// Perseus has default values for these fields, so they're all optional.
|
|
27
|
-
content?: ?string,
|
|
28
|
-
images?: ?ImageDict,
|
|
29
|
-
widgets?: ?WidgetDict,
|
|
30
|
-
...
|
|
31
|
-
};
|
|
32
|
-
export type HintNode = {
|
|
33
|
-
__type: "hint",
|
|
34
|
-
// Perseus has default values for these fields, so they're all optional.
|
|
35
|
-
content?: ?string,
|
|
36
|
-
images?: ?ImageDict,
|
|
37
|
-
widgets?: ?WidgetDict,
|
|
38
|
-
replace?: ?boolean,
|
|
39
|
-
...
|
|
40
|
-
};
|
|
41
|
-
export type TagsNode = $ReadOnlyArray<string>;
|
|
42
|
-
|
|
43
|
-
export type ItemArrayNode = ArrayNode<ContentNode, HintNode, TagsNode>;
|
|
44
|
-
export type ItemObjectNode = ObjectNode<ContentNode, HintNode, TagsNode>;
|
|
45
|
-
export type ItemTree = Tree<ContentNode, HintNode, TagsNode>;
|
|
46
|
-
|
|
47
|
-
// TODO(jeremy): I think we could refine this root type for multi items. Right
|
|
48
|
-
// now a _multi's value can be _anything_ including "primitive" node types such
|
|
49
|
-
// as "type: content" or "type: hint". That doesn't seem to match the shapes
|
|
50
|
-
// that are in use to date. We could also move to a strict type at that point
|
|
51
|
-
// because it appears that we _never_ add other root keys to an item that
|
|
52
|
-
// specifies the `_multi` key. I think we'd be safe to restrict this root
|
|
53
|
-
// object type to something like the following:
|
|
54
|
-
// export type Item = {|_multi: ItemArrayNode | ItemObjectNode|};
|
|
55
|
-
export type Item = {_multi: ItemTree, ...};
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Flowtype definitions for data
|
|
3
|
-
* Generated by Flowgen from a Typescript Definition
|
|
4
|
-
* Flowgen v1.21.0
|
|
5
|
-
* @flow
|
|
6
|
-
*/
|
|
7
|
-
import type { Item, ItemTree, ContentNode, HintNode } from "./item-types";
|
|
8
|
-
import type { Shape } from "./shape-types";
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Return a semantically empty ItemTree that conforms to the given shape.
|
|
12
|
-
*
|
|
13
|
-
* - An empty content node has an empty content string and no widgets/images.
|
|
14
|
-
* - An empty hint node has an empty content string and no widgets/images.
|
|
15
|
-
* - An empty array node has no elements.
|
|
16
|
-
* - An empty object node has a semantically empty node for each of its keys.
|
|
17
|
-
* (That is, we recursively call buildEmptyItemTreeForShape for each key.)
|
|
18
|
-
*/
|
|
19
|
-
declare export function buildEmptyItemTreeForShape(shape: Shape): ItemTree;
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Return a semantically empty Item that conforms to the given shape.
|
|
23
|
-
*
|
|
24
|
-
* - An empty content node has an empty content string and no widgets/images.
|
|
25
|
-
* - An empty hint node has an empty content string and no widgets/images.
|
|
26
|
-
* - An empty array node has no elements.
|
|
27
|
-
* - An empty object node has a semantically empty node for each of its keys.
|
|
28
|
-
* (That is, we recursively call buildEmptyItemTreeForShape for each key.)
|
|
29
|
-
*/
|
|
30
|
-
declare export function buildEmptyItemForShape(shape: Shape): Item;
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Given an Item and its Shape, yield all of its content nodes to the callback.
|
|
34
|
-
*/
|
|
35
|
-
declare export function findContentNodesInItem(
|
|
36
|
-
item: Item,
|
|
37
|
-
shape: Shape,
|
|
38
|
-
callback: (c: ContentNode) => any
|
|
39
|
-
): void;
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* Given an Item and its Shape, yield all of its hint nodes to the callback.
|
|
43
|
-
*/
|
|
44
|
-
declare export function findHintNodesInItem(
|
|
45
|
-
item: Item,
|
|
46
|
-
shape: Shape,
|
|
47
|
-
callback: (h: HintNode) => any
|
|
48
|
-
): void;
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* Given an ItemTree, return a Shape that it conforms to.
|
|
52
|
-
*
|
|
53
|
-
* The Shape might not be complete or correct Shape that this Item was designed
|
|
54
|
-
* for. If you have access to the intended Shape, use that instead.
|
|
55
|
-
*/
|
|
56
|
-
declare export function inferItemShape(item: Item): Shape;
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
* Convert the given Item to an ItemTree, by unwrapping the `_multi` key.
|
|
60
|
-
*/
|
|
61
|
-
declare export function itemToTree(item: Item): ItemTree;
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* Convert the given ItemTree to an Item, by wrapping it in the `_multi` key.
|
|
65
|
-
*/
|
|
66
|
-
declare export function treeToItem(node: ItemTree): Item;
|