@khanacademy/perseus-editor 1.1.0 → 2.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/.babelrc.js +1 -1
- package/.eslintrc.js +1 -0
- package/CHANGELOG.md +21 -0
- package/dist/all-editors.d.ts +2 -0
- package/dist/all-editors.js.flow +8 -0
- package/dist/all-widgets.d.ts +22 -0
- package/dist/all-widgets.js.flow +34 -0
- package/dist/article-editor.d.ts +59 -0
- package/dist/article-editor.js.flow +72 -0
- package/dist/components/blur-input.d.ts +19 -0
- package/dist/components/blur-input.js.flow +25 -0
- package/dist/components/checkbox.d.ts +20 -0
- package/dist/components/checkbox.js.flow +26 -0
- package/dist/components/device-framer.d.ts +15 -0
- package/dist/components/device-framer.js.flow +20 -0
- package/dist/components/drag-target.d.ts +2 -0
- package/dist/components/drag-target.js.flow +8 -0
- package/dist/components/dropdown-option.d.ts +35 -0
- package/dist/components/dropdown-option.js.flow +49 -0
- package/dist/components/form-wrapped-text-field.d.ts +48 -0
- package/dist/components/form-wrapped-text-field.js.flow +48 -0
- package/dist/components/graph-settings.d.ts +2 -0
- package/dist/components/graph-settings.js.flow +8 -0
- package/dist/components/hover-behavior.d.ts +85 -0
- package/dist/components/hover-behavior.js.flow +48 -0
- package/dist/components/json-editor.d.ts +2 -0
- package/dist/components/json-editor.js.flow +8 -0
- package/dist/components/link.d.ts +41 -0
- package/dist/components/link.js.flow +50 -0
- package/dist/components/simple-button.d.ts +16 -0
- package/dist/components/simple-button.js.flow +18 -0
- package/dist/components/sortable.d.ts +2 -0
- package/dist/components/sortable.js.flow +8 -0
- package/dist/components/util.d.ts +1 -0
- package/dist/components/util.js.flow +9 -0
- package/dist/components/viewport-resizer.d.ts +16 -0
- package/dist/components/viewport-resizer.js.flow +22 -0
- package/dist/diffs/__stories__/perseus-diff-wrapper.d.ts +5 -0
- package/dist/diffs/__stories__/perseus-diff-wrapper.js.flow +11 -0
- package/dist/diffs/article-diff.d.ts +50 -0
- package/dist/diffs/article-diff.js.flow +71 -0
- package/dist/diffs/item-diff.d.ts +23 -0
- package/dist/diffs/item-diff.js.flow +41 -0
- package/dist/diffs/renderer-diff.d.ts +22 -0
- package/dist/diffs/renderer-diff.js.flow +25 -0
- package/dist/diffs/split-diff.d.ts +2 -0
- package/dist/diffs/split-diff.js.flow +8 -0
- package/dist/diffs/string-array-diff.d.ts +2 -0
- package/dist/diffs/string-array-diff.js.flow +11 -0
- package/dist/diffs/structured-item-diff.d.ts +25 -0
- package/dist/diffs/structured-item-diff.js.flow +37 -0
- package/dist/diffs/tags-diff.d.ts +21 -0
- package/dist/diffs/tags-diff.js.flow +24 -0
- package/dist/diffs/text-diff.d.ts +15 -0
- package/dist/diffs/text-diff.js.flow +21 -0
- package/dist/diffs/widget-diff-performer.d.ts +2 -0
- package/dist/diffs/widget-diff-performer.js.flow +8 -0
- package/dist/diffs/widget-diff.d.ts +21 -0
- package/dist/diffs/widget-diff.js.flow +31 -0
- package/dist/editor-page.d.ts +57 -0
- package/dist/editor-page.js.flow +73 -0
- package/dist/editor.d.ts +82 -0
- package/dist/editor.js.flow +98 -0
- package/dist/es/index.js +1428 -2587
- package/dist/es/index.js.map +1 -1
- package/dist/hint-editor.d.ts +64 -0
- package/dist/hint-editor.js.flow +87 -0
- package/dist/i18n.d.ts +7 -0
- package/dist/i18n.js.flow +13 -0
- package/dist/iframe-content-renderer.d.ts +22 -0
- package/dist/iframe-content-renderer.js.flow +28 -0
- package/dist/index.d.ts +17 -2
- package/dist/index.js +1492 -2548
- package/dist/index.js.flow +23 -2
- package/dist/index.js.map +1 -1
- package/dist/item-editor.d.ts +36 -0
- package/dist/item-editor.js.flow +46 -0
- package/dist/item-extras-editor.d.ts +17 -0
- package/dist/item-extras-editor.js.flow +23 -0
- package/dist/katex-error-view.d.ts +16 -0
- package/dist/katex-error-view.js.flow +24 -0
- package/dist/multirenderer-editor.d.ts +32 -0
- package/dist/multirenderer-editor.js.flow +46 -0
- package/dist/section-control-button.d.ts +12 -0
- package/dist/section-control-button.js.flow +20 -0
- package/dist/stateful-article-editor.d.ts +10 -0
- package/dist/stateful-article-editor.js.flow +16 -0
- package/dist/stateful-editor-page.d.ts +2 -0
- package/dist/stateful-editor-page.js.flow +8 -0
- package/dist/testing-widgets.d.ts +22 -0
- package/dist/testing-widgets.js.flow +34 -0
- package/dist/util/register-all-widgets-and-editors-for-testing.d.ts +1 -0
- package/dist/util/register-all-widgets-and-editors-for-testing.js.flow +7 -0
- package/dist/widgets/categorizer-editor.d.ts +47 -0
- package/dist/widgets/categorizer-editor.js.flow +61 -0
- package/dist/widgets/cs-program-editor.d.ts +21 -0
- package/dist/widgets/cs-program-editor.js.flow +25 -0
- package/dist/widgets/definition-editor.d.ts +17 -0
- package/dist/widgets/definition-editor.js.flow +23 -0
- package/dist/widgets/dropdown-editor.d.ts +23 -0
- package/dist/widgets/dropdown-editor.js.flow +37 -0
- package/dist/widgets/example-graphie-widget-editor.d.ts +18 -0
- package/dist/widgets/example-graphie-widget-editor.js.flow +25 -0
- package/dist/widgets/example-graphie-widget.d.ts +87 -0
- package/dist/widgets/example-graphie-widget.js.flow +101 -0
- package/dist/widgets/example-widget-editor.d.ts +19 -0
- package/dist/widgets/example-widget-editor.js.flow +26 -0
- package/dist/widgets/example-widget.d.ts +71 -0
- package/dist/widgets/example-widget.js.flow +86 -0
- package/dist/widgets/explanation-editor.d.ts +21 -0
- package/dist/widgets/explanation-editor.js.flow +27 -0
- package/dist/widgets/expression-editor.d.ts +33 -0
- package/dist/widgets/expression-editor.js.flow +41 -0
- package/dist/widgets/graded-group-editor.d.ts +53 -0
- package/dist/widgets/graded-group-editor.js.flow +67 -0
- package/dist/widgets/graded-group-set-editor.d.ts +51 -0
- package/dist/widgets/graded-group-set-editor.js.flow +65 -0
- package/dist/widgets/grapher-editor.d.ts +14 -0
- package/dist/widgets/grapher-editor.js.flow +21 -0
- package/dist/widgets/group-editor.d.ts +49 -0
- package/dist/widgets/group-editor.js.flow +63 -0
- package/dist/widgets/iframe-editor.d.ts +18 -0
- package/dist/widgets/iframe-editor.js.flow +24 -0
- package/dist/widgets/image-editor.d.ts +2 -0
- package/dist/widgets/image-editor.js.flow +8 -0
- package/dist/widgets/input-number-editor.d.ts +47 -0
- package/dist/widgets/input-number-editor.js.flow +77 -0
- package/dist/widgets/interaction/constraint-editor.d.ts +26 -0
- package/dist/widgets/interaction/constraint-editor.js.flow +35 -0
- package/dist/widgets/interaction-editor.d.ts +28 -0
- package/dist/widgets/interaction-editor.js.flow +36 -0
- package/dist/widgets/interactive-graph-editor.d.ts +2 -0
- package/dist/widgets/interactive-graph-editor.js.flow +8 -0
- package/dist/widgets/label-image/answer-choices.d.ts +13 -0
- package/dist/widgets/label-image/answer-choices.js.flow +16 -0
- package/dist/widgets/label-image/behavior.d.ts +14 -0
- package/dist/widgets/label-image/behavior.js.flow +17 -0
- package/dist/widgets/label-image/marker.d.ts +30 -0
- package/dist/widgets/label-image/marker.js.flow +34 -0
- package/dist/widgets/label-image/question-markers.d.ts +22 -0
- package/dist/widgets/label-image/question-markers.js.flow +25 -0
- package/dist/widgets/label-image/select-image.d.ts +10 -0
- package/dist/widgets/label-image/select-image.js.flow +13 -0
- package/dist/widgets/label-image-editor.d.ts +45 -0
- package/dist/widgets/label-image-editor.js.flow +44 -0
- package/dist/widgets/lights-puzzle-editor.d.ts +24 -0
- package/dist/widgets/lights-puzzle-editor.js.flow +34 -0
- package/dist/widgets/matcher-editor.d.ts +19 -0
- package/dist/widgets/matcher-editor.js.flow +28 -0
- package/dist/widgets/matrix-editor.d.ts +20 -0
- package/dist/widgets/matrix-editor.js.flow +26 -0
- package/dist/widgets/measurer-editor.d.ts +32 -0
- package/dist/widgets/measurer-editor.js.flow +42 -0
- package/dist/widgets/molecule-editor.d.ts +17 -0
- package/dist/widgets/molecule-editor.js.flow +23 -0
- package/dist/widgets/number-line-editor.d.ts +36 -0
- package/dist/widgets/number-line-editor.js.flow +45 -0
- package/dist/widgets/numeric-input-editor.d.ts +2 -0
- package/dist/widgets/numeric-input-editor.js.flow +8 -0
- package/dist/widgets/orderer-editor.d.ts +20 -0
- package/dist/widgets/orderer-editor.js.flow +30 -0
- package/dist/widgets/passage-editor.d.ts +18 -0
- package/dist/widgets/passage-editor.js.flow +24 -0
- package/dist/widgets/passage-ref-editor.d.ts +11 -0
- package/dist/widgets/passage-ref-editor.js.flow +17 -0
- package/dist/widgets/passage-ref-target-editor.d.ts +16 -0
- package/dist/widgets/passage-ref-target-editor.js.flow +22 -0
- package/dist/widgets/plotter-editor.d.ts +45 -0
- package/dist/widgets/plotter-editor.js.flow +53 -0
- package/dist/widgets/radio/editor.d.ts +64 -0
- package/dist/widgets/radio/editor.js.flow +80 -0
- package/dist/widgets/reaction-diagram-editor.d.ts +20 -0
- package/dist/widgets/reaction-diagram-editor.js.flow +26 -0
- package/dist/widgets/sequence-editor.d.ts +56 -0
- package/dist/widgets/sequence-editor.js.flow +72 -0
- package/dist/widgets/simple-markdown-tester-editor.d.ts +14 -0
- package/dist/widgets/simple-markdown-tester-editor.js.flow +23 -0
- package/dist/widgets/simple-markdown-tester.d.ts +52 -0
- package/dist/widgets/simple-markdown-tester.js.flow +61 -0
- package/dist/widgets/simulator-editor.d.ts +20 -0
- package/dist/widgets/simulator-editor.js.flow +26 -0
- package/dist/widgets/sorter-editor.d.ts +16 -0
- package/dist/widgets/sorter-editor.js.flow +22 -0
- package/dist/widgets/table-editor.d.ts +18 -0
- package/dist/widgets/table-editor.js.flow +24 -0
- package/dist/widgets/transformer-editor.d.ts +11 -0
- package/dist/widgets/transformer-editor.js.flow +17 -0
- package/dist/widgets/unit-editor.d.ts +33 -0
- package/dist/widgets/unit-editor.js.flow +41 -0
- package/dist/widgets/video-editor.d.ts +19 -0
- package/dist/widgets/video-editor.js.flow +25 -0
- package/package.json +6 -5
- package/src/__stories__/{editor.stories.js → editor.stories.tsx} +4 -5
- package/src/__stories__/{section-control-button.stories.jsx → section-control-button.stories.tsx} +10 -11
- package/src/__testdata__/{input-number_testdata.js → input-number.testdata.ts} +2 -3
- package/src/__tests__/{editor_test.jsx → editor.test.tsx} +4 -7
- package/src/__tests__/{i18n_test.jsx → i18n.test.ts} +5 -5
- package/src/__tests__/{traversal_test.jsx → traversal.test.ts} +9 -10
- package/src/{all-editors_test.js → all-editors.test.ts} +1 -2
- package/src/all-editors.ts +83 -0
- package/src/all-widgets.ts +7 -0
- package/src/{article-editor.jsx → article-editor.tsx} +52 -42
- package/src/components/__stories__/{blur-input.stories.jsx → blur-input.stories.tsx} +2 -4
- package/src/components/{blur-input.jsx → blur-input.tsx} +12 -13
- package/src/components/{checkbox.jsx → checkbox.tsx} +18 -19
- package/src/components/{device-framer.jsx → device-framer.tsx} +4 -5
- package/src/components/{drag-target.jsx → drag-target.tsx} +0 -1
- package/src/components/{dropdown-option.jsx → dropdown-option.tsx} +40 -40
- package/src/components/{form-wrapped-text-field.jsx → form-wrapped-text-field.tsx} +47 -53
- package/src/components/{graph-settings.jsx → graph-settings.tsx} +4 -8
- package/src/components/{hover-behavior.jsx → hover-behavior.ts} +32 -33
- package/src/components/{json-editor.jsx → json-editor.tsx} +4 -3
- package/src/components/{link.jsx → link.ts} +33 -33
- package/src/components/{simple-button.jsx → simple-button.tsx} +3 -4
- package/src/components/{sortable.jsx → sortable.tsx} +3 -3
- package/src/components/{util.js → util.ts} +1 -2
- package/src/components/{viewport-resizer.jsx → viewport-resizer.tsx} +5 -6
- package/src/diffs/__stories__/{perseus-diff-wrapper.jsx → perseus-diff-wrapper.tsx} +3 -2
- package/src/diffs/__stories__/{structured-item-diff.stories.jsx → structured-item-diff.stories.tsx} +27 -22
- package/src/diffs/__stories__/{tags-diff.stories.jsx → tags-diff.stories.tsx} +12 -14
- package/src/diffs/__stories__/{text-diff.stories.jsx → text-diff.stories.tsx} +12 -14
- package/src/diffs/__tests__/{split-diff_test.js → split-diff.test.ts} +1 -2
- package/src/diffs/__tests__/{string-array-diff_test.js → string-array-diff.test.ts} +1 -2
- package/src/diffs/__tests__/{structured-item-diff_test.js → structured-item-diff.test.ts} +15 -14
- package/src/diffs/__tests__/{widget-diff-performer_test.js → widget-diff-performer.test.ts} +1 -2
- package/src/diffs/{article-diff.jsx → article-diff.tsx} +5 -6
- package/src/diffs/{item-diff.jsx → item-diff.tsx} +4 -5
- package/src/diffs/{renderer-diff.jsx → renderer-diff.tsx} +22 -28
- package/src/diffs/{split-diff.jsx → split-diff.ts} +4 -3
- package/src/diffs/{string-array-diff.jsx → string-array-diff.ts} +8 -9
- package/src/diffs/{structured-item-diff.jsx → structured-item-diff.tsx} +32 -27
- package/src/diffs/{tags-diff.jsx → tags-diff.tsx} +15 -16
- package/src/diffs/{text-diff.jsx → text-diff.tsx} +13 -13
- package/src/diffs/{widget-diff-performer.jsx → widget-diff-performer.ts} +3 -8
- package/src/diffs/{widget-diff.jsx → widget-diff.tsx} +15 -14
- package/src/{editor-page.jsx → editor-page.tsx} +52 -60
- package/src/{editor.jsx → editor.tsx} +315 -277
- package/src/{hint-editor.jsx → hint-editor.tsx} +105 -79
- package/src/{i18n.jsx → i18n.ts} +9 -6
- package/src/{iframe-content-renderer.jsx → iframe-content-renderer.tsx} +23 -17
- package/src/{index.js → index.ts} +15 -16
- package/src/{item-editor.jsx → item-editor.tsx} +35 -30
- package/src/{item-extras-editor.jsx → item-extras-editor.tsx} +3 -4
- package/src/{katex-error-view.jsx → katex-error-view.tsx} +4 -5
- package/src/{multirenderer-editor.jsx → multirenderer-editor.tsx} +132 -127
- package/src/{section-control-button.jsx → section-control-button.tsx} +10 -9
- package/src/{stateful-article-editor.jsx → stateful-article-editor.tsx} +2 -5
- package/src/{stateful-editor-page.jsx → stateful-editor-page.tsx} +1 -3
- package/src/{testing-widgets.js → testing-widgets.ts} +5 -6
- package/src/util/{register-all-widgets-and-editors-for-testing_test.js → register-all-widgets-and-editors-for-testing.test.ts} +1 -2
- package/src/util/{register-all-widgets-and-editors-for-testing.js → register-all-widgets-and-editors-for-testing.ts} +2 -3
- package/src/widgets/__stories__/{label-image-editor.stories.jsx → label-image-editor.stories.tsx} +22 -18
- package/src/widgets/__stories__/{radio-editor.stories.jsx → radio-editor.stories.tsx} +15 -10
- package/src/widgets/{categorizer-editor.jsx → categorizer-editor.tsx} +8 -6
- package/src/widgets/{cs-program-editor.jsx → cs-program-editor.tsx} +17 -17
- package/src/widgets/{definition-editor.jsx → definition-editor.tsx} +9 -8
- package/src/widgets/{dropdown-editor.jsx → dropdown-editor.tsx} +27 -19
- package/src/widgets/{example-graphie-widget-editor.jsx → example-graphie-widget-editor.tsx} +8 -8
- package/src/widgets/{example-graphie-widget.jsx → example-graphie-widget.tsx} +14 -17
- package/src/widgets/{example-widget-editor.jsx → example-widget-editor.tsx} +10 -7
- package/src/widgets/{example-widget.jsx → example-widget.tsx} +14 -12
- package/src/widgets/{explanation-editor.jsx → explanation-editor.tsx} +12 -10
- package/src/widgets/{expression-editor.jsx → expression-editor.tsx} +36 -26
- package/src/widgets/{graded-group-editor.jsx → graded-group-editor.tsx} +18 -10
- package/src/widgets/{graded-group-set-editor.jsx → graded-group-set-editor.tsx} +15 -12
- package/src/widgets/{grapher-editor.jsx → grapher-editor.tsx} +10 -9
- package/src/widgets/{group-editor.jsx → group-editor.tsx} +11 -9
- package/src/widgets/{iframe-editor.jsx → iframe-editor.tsx} +16 -13
- package/src/widgets/{image-editor.jsx → image-editor.tsx} +4 -7
- package/src/widgets/{input-number-editor.jsx → input-number-editor.tsx} +61 -47
- package/src/widgets/interaction/{constraint-editor.jsx → constraint-editor.tsx} +21 -24
- package/src/widgets/{interaction-editor.jsx → interaction-editor.tsx} +160 -61
- package/src/widgets/{interactive-graph-editor.jsx → interactive-graph-editor.tsx} +13 -10
- package/src/widgets/label-image/__stories__/{answer-choices.stories.jsx → answer-choices.stories.tsx} +22 -17
- package/src/widgets/label-image/__stories__/{behavior.stories.jsx → behavior.stories.tsx} +9 -10
- package/src/widgets/label-image/__stories__/{marker.stories.jsx → marker.stories.tsx} +11 -12
- package/src/widgets/label-image/__stories__/{question-markers.stories.jsx → question-markers.stories.tsx} +17 -16
- package/src/widgets/label-image/__stories__/{select-image.stories.jsx → select-image.stories.tsx} +12 -13
- package/src/widgets/label-image/{answer-choices.jsx → answer-choices.tsx} +18 -18
- package/src/widgets/label-image/{behavior.jsx → behavior.tsx} +9 -11
- package/src/widgets/label-image/{marker.jsx → marker.tsx} +17 -19
- package/src/widgets/label-image/{question-markers.jsx → question-markers.tsx} +16 -21
- package/src/widgets/label-image/{select-image.jsx → select-image.tsx} +5 -7
- package/src/widgets/{label-image-editor.jsx → label-image-editor.tsx} +38 -44
- package/src/widgets/{lights-puzzle-editor.jsx → lights-puzzle-editor.tsx} +34 -24
- package/src/widgets/{matcher-editor.jsx → matcher-editor.tsx} +9 -7
- package/src/widgets/{matrix-editor.jsx → matrix-editor.tsx} +10 -9
- package/src/widgets/{measurer-editor.jsx → measurer-editor.tsx} +21 -14
- package/src/widgets/{molecule-editor.jsx → molecule-editor.tsx} +9 -8
- package/src/widgets/{number-line-editor.jsx → number-line-editor.tsx} +19 -17
- package/src/widgets/{numeric-input-editor.jsx → numeric-input-editor.tsx} +10 -10
- package/src/widgets/{orderer-editor.jsx → orderer-editor.tsx} +17 -12
- package/src/widgets/{passage-editor.jsx → passage-editor.tsx} +9 -7
- package/src/widgets/{passage-ref-editor.jsx → passage-ref-editor.tsx} +8 -6
- package/src/widgets/{passage-ref-target-editor.jsx → passage-ref-target-editor.tsx} +9 -7
- package/src/widgets/{plotter-editor.jsx → plotter-editor.tsx} +34 -33
- package/src/widgets/radio/{editor.jsx → editor.tsx} +22 -21
- package/src/widgets/{reaction-diagram-editor.jsx → reaction-diagram-editor.tsx} +14 -10
- package/src/widgets/{sequence-editor.jsx → sequence-editor.tsx} +13 -13
- package/src/widgets/{simple-markdown-tester-editor.jsx → simple-markdown-tester-editor.tsx} +11 -9
- package/src/widgets/{simple-markdown-tester.jsx → simple-markdown-tester.tsx} +8 -7
- package/src/widgets/{simulator-editor.jsx → simulator-editor.tsx} +10 -8
- package/src/widgets/{sorter-editor.jsx → sorter-editor.tsx} +8 -6
- package/src/widgets/{table-editor.jsx → table-editor.tsx} +11 -10
- package/src/widgets/{transformer-editor.jsx → transformer-editor.tsx} +37 -35
- package/src/widgets/{unit-editor.jsx → unit-editor.tsx} +31 -25
- package/src/widgets/{video-editor.jsx → video-editor.tsx} +8 -9
- package/tsconfig.json +22 -0
- package/tsconfig.tsbuildinfo +1 -0
- package/src/all-editors.js +0 -85
- package/src/all-widgets.js +0 -10
- /package/dist/{strings.js → strings} +0 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
type Props = any;
|
|
3
|
+
/**
|
|
4
|
+
* This is the widget's editor. This is what shows up on the left side
|
|
5
|
+
* of the screen in the demo page. Only the question writer sees this.
|
|
6
|
+
*/
|
|
7
|
+
declare class ExampleGraphieWidgetEditor extends React.Component<Props> {
|
|
8
|
+
static propTypes: {
|
|
9
|
+
onChange: import("prop-types").Validator<(...args: any[]) => any>;
|
|
10
|
+
};
|
|
11
|
+
static widgetName: "example-graphie-widget";
|
|
12
|
+
static defaultProps: Props;
|
|
13
|
+
change: (arg1: any, arg2: any, arg3: any) => any;
|
|
14
|
+
handleChange: (arg1: any) => void;
|
|
15
|
+
serialize: () => any;
|
|
16
|
+
render(): React.ReactNode;
|
|
17
|
+
}
|
|
18
|
+
export default ExampleGraphieWidgetEditor;
|
|
@@ -0,0 +1,25 @@
|
|
|
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$prop_2d_types from "prop-types";
|
|
8
|
+
import * as React from "react";
|
|
9
|
+
declare type Props = any;
|
|
10
|
+
/**
|
|
11
|
+
* This is the widget's editor. This is what shows up on the left side
|
|
12
|
+
* of the screen in the demo page. Only the question writer sees this.
|
|
13
|
+
*/
|
|
14
|
+
declare class ExampleGraphieWidgetEditor extends React.Component<Props> {
|
|
15
|
+
static propTypes: {|
|
|
16
|
+
onChange: $Flowgen$Import$prop_2d_types.Validator<(...args: any[]) => any>,
|
|
17
|
+
|};
|
|
18
|
+
static widgetName: "example-graphie-widget";
|
|
19
|
+
static defaultProps: Props;
|
|
20
|
+
change: (arg1: any, arg2: any, arg3: any) => any;
|
|
21
|
+
handleChange: (arg1: any) => void;
|
|
22
|
+
serialize: () => any;
|
|
23
|
+
render(): React.Node;
|
|
24
|
+
}
|
|
25
|
+
declare export default typeof ExampleGraphieWidgetEditor;
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This is an example graphie-using widget
|
|
3
|
+
*
|
|
4
|
+
* TODO(jack): Add more comments
|
|
5
|
+
*/
|
|
6
|
+
import PropTypes from "prop-types";
|
|
7
|
+
import * as React from "react";
|
|
8
|
+
import type { Coord } from "@khanacademy/perseus";
|
|
9
|
+
type Props = any;
|
|
10
|
+
/**
|
|
11
|
+
* This is the widget's renderer. It shows up in the right column
|
|
12
|
+
* in the demo, and is what is visible to users, and where
|
|
13
|
+
* users enter their answers.
|
|
14
|
+
*/
|
|
15
|
+
declare class ExampleGraphieWidget extends React.Component<Props> {
|
|
16
|
+
static propTypes: {
|
|
17
|
+
apiOptions: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
|
|
18
|
+
isArticle: PropTypes.Validator<boolean>;
|
|
19
|
+
onInputError: PropTypes.Validator<(...args: any[]) => any>;
|
|
20
|
+
onFocusChange: PropTypes.Validator<(...args: any[]) => any>;
|
|
21
|
+
GroupMetadataEditor: PropTypes.Validator<(...args: any[]) => any>;
|
|
22
|
+
showAlignmentOptions: PropTypes.Validator<boolean>;
|
|
23
|
+
readOnly: PropTypes.Validator<boolean>;
|
|
24
|
+
answerableCallback: PropTypes.Requireable<(...args: any[]) => any>;
|
|
25
|
+
getAnotherHint: PropTypes.Requireable<(...args: any[]) => any>;
|
|
26
|
+
interactionCallback: PropTypes.Requireable<(...args: any[]) => any>;
|
|
27
|
+
groupAnnotator: PropTypes.Validator<(...args: any[]) => any>;
|
|
28
|
+
imagePlaceholder: PropTypes.Requireable<PropTypes.ReactNodeLike>;
|
|
29
|
+
widgetPlaceholder: PropTypes.Requireable<PropTypes.ReactNodeLike>;
|
|
30
|
+
baseElements: PropTypes.Requireable<PropTypes.InferProps<{
|
|
31
|
+
Link: PropTypes.Requireable<(...args: any[]) => any>;
|
|
32
|
+
}>>;
|
|
33
|
+
imagePreloader: PropTypes.Requireable<(...args: any[]) => any>;
|
|
34
|
+
trackInteraction: PropTypes.Requireable<(...args: any[]) => any>;
|
|
35
|
+
customKeypad: PropTypes.Requireable<boolean>;
|
|
36
|
+
nativeKeypadProxy: PropTypes.Requireable<(...args: any[]) => any>;
|
|
37
|
+
isMobile: PropTypes.Requireable<boolean>;
|
|
38
|
+
setDrawingAreaAvailable: PropTypes.Requireable<(...args: any[]) => any>;
|
|
39
|
+
useDraftEditor: PropTypes.Requireable<boolean>;
|
|
40
|
+
hintProgressColor: PropTypes.Requireable<string>;
|
|
41
|
+
canScrollPage: PropTypes.Requireable<boolean>;
|
|
42
|
+
inModal: PropTypes.Requireable<boolean>;
|
|
43
|
+
crossOutEnabled: PropTypes.Requireable<boolean>;
|
|
44
|
+
editorChangeDelay: PropTypes.Requireable<number>;
|
|
45
|
+
}>>>;
|
|
46
|
+
graph: PropTypes.Validator<object>;
|
|
47
|
+
coord: PropTypes.Requireable<(number | null | undefined)[]>;
|
|
48
|
+
onChange: PropTypes.Validator<(...args: any[]) => any>;
|
|
49
|
+
};
|
|
50
|
+
static defaultProps: Props;
|
|
51
|
+
/**
|
|
52
|
+
* This is the widget's grading function
|
|
53
|
+
*/
|
|
54
|
+
static validate(state: any, rubric: any): any;
|
|
55
|
+
getUserInput: () => any;
|
|
56
|
+
render(): React.ReactNode;
|
|
57
|
+
change: (arg1: any, arg2: any, arg3: any) => any;
|
|
58
|
+
movePoint: (arg1: Coord) => void;
|
|
59
|
+
_getGridConfig: (arg1: any) => any;
|
|
60
|
+
setupGraphie: (arg1: any, arg2: any) => any;
|
|
61
|
+
simpleValidate: (arg1: any) => any;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* For this widget to work, we must export it.
|
|
65
|
+
* We also must import this file in src/all-widgets.js
|
|
66
|
+
*/
|
|
67
|
+
declare const _default: Readonly<{
|
|
68
|
+
name: string;
|
|
69
|
+
displayName: string;
|
|
70
|
+
getWidget?: (() => typeof ExampleGraphieWidget) | undefined;
|
|
71
|
+
accessible?: boolean | ((props: any) => boolean) | undefined;
|
|
72
|
+
hidden?: boolean | undefined;
|
|
73
|
+
version?: import("@khanacademy/perseus").Version | undefined;
|
|
74
|
+
supportedAlignments?: readonly import("@khanacademy/perseus").Alignment[] | undefined;
|
|
75
|
+
defaultAlignment?: import("@khanacademy/perseus").Alignment | undefined;
|
|
76
|
+
getDefaultAlignment?: (() => import("@khanacademy/perseus").Alignment) | undefined;
|
|
77
|
+
isLintable?: boolean | undefined;
|
|
78
|
+
transform?: import("../../../perseus/src/types").WidgetTransform | undefined;
|
|
79
|
+
tracking?: import("../../../perseus/src/types").Tracking | undefined;
|
|
80
|
+
staticTransform?: import("../../../perseus/src/types").WidgetTransform | undefined;
|
|
81
|
+
traverseChildWidgets?: any;
|
|
82
|
+
propUpgrades?: {
|
|
83
|
+
[key: string]: (arg1: any) => any;
|
|
84
|
+
} | undefined;
|
|
85
|
+
widget: typeof ExampleGraphieWidget;
|
|
86
|
+
}>;
|
|
87
|
+
export default _default;
|
|
@@ -0,0 +1,101 @@
|
|
|
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$_40_khanacademy_2f_perseus from "@khanacademy/perseus";
|
|
8
|
+
import * as $Flowgen$Import$_2e__2e__2f__2e__2e__2f__2e__2e__2f_perseus_2f_src_2f_types from "../../../perseus/src/types";
|
|
9
|
+
import PropTypes from "prop-types";
|
|
10
|
+
import * as React from "react";
|
|
11
|
+
import type { Coord } from "@khanacademy/perseus";
|
|
12
|
+
declare type Props = any;
|
|
13
|
+
/**
|
|
14
|
+
* This is the widget's renderer. It shows up in the right column
|
|
15
|
+
* in the demo, and is what is visible to users, and where
|
|
16
|
+
* users enter their answers.
|
|
17
|
+
*/
|
|
18
|
+
declare class ExampleGraphieWidget extends React.Component<Props> {
|
|
19
|
+
static propTypes: {|
|
|
20
|
+
apiOptions: PropTypes.Validator<
|
|
21
|
+
$NonMaybeType<
|
|
22
|
+
PropTypes.InferProps<{|
|
|
23
|
+
isArticle: PropTypes.Validator<boolean>,
|
|
24
|
+
onInputError: PropTypes.Validator<(...args: any[]) => any>,
|
|
25
|
+
onFocusChange: PropTypes.Validator<(...args: any[]) => any>,
|
|
26
|
+
GroupMetadataEditor: PropTypes.Validator<(...args: any[]) => any>,
|
|
27
|
+
showAlignmentOptions: PropTypes.Validator<boolean>,
|
|
28
|
+
readOnly: PropTypes.Validator<boolean>,
|
|
29
|
+
answerableCallback: PropTypes.Requireable<(...args: any[]) => any>,
|
|
30
|
+
getAnotherHint: PropTypes.Requireable<(...args: any[]) => any>,
|
|
31
|
+
interactionCallback: PropTypes.Requireable<(...args: any[]) => any>,
|
|
32
|
+
groupAnnotator: PropTypes.Validator<(...args: any[]) => any>,
|
|
33
|
+
imagePlaceholder: PropTypes.Requireable<PropTypes.ReactNodeLike>,
|
|
34
|
+
widgetPlaceholder: PropTypes.Requireable<PropTypes.ReactNodeLike>,
|
|
35
|
+
baseElements: PropTypes.Requireable<
|
|
36
|
+
PropTypes.InferProps<{|
|
|
37
|
+
Link: PropTypes.Requireable<(...args: any[]) => any>,
|
|
38
|
+
|}>
|
|
39
|
+
>,
|
|
40
|
+
imagePreloader: PropTypes.Requireable<(...args: any[]) => any>,
|
|
41
|
+
trackInteraction: PropTypes.Requireable<(...args: any[]) => any>,
|
|
42
|
+
customKeypad: PropTypes.Requireable<boolean>,
|
|
43
|
+
nativeKeypadProxy: PropTypes.Requireable<(...args: any[]) => any>,
|
|
44
|
+
isMobile: PropTypes.Requireable<boolean>,
|
|
45
|
+
setDrawingAreaAvailable: PropTypes.Requireable<
|
|
46
|
+
(...args: any[]) => any
|
|
47
|
+
>,
|
|
48
|
+
useDraftEditor: PropTypes.Requireable<boolean>,
|
|
49
|
+
hintProgressColor: PropTypes.Requireable<string>,
|
|
50
|
+
canScrollPage: PropTypes.Requireable<boolean>,
|
|
51
|
+
inModal: PropTypes.Requireable<boolean>,
|
|
52
|
+
crossOutEnabled: PropTypes.Requireable<boolean>,
|
|
53
|
+
editorChangeDelay: PropTypes.Requireable<number>,
|
|
54
|
+
|}>
|
|
55
|
+
>
|
|
56
|
+
>,
|
|
57
|
+
graph: PropTypes.Validator<{ ... }>,
|
|
58
|
+
coord: PropTypes.Requireable<(number | null | void)[]>,
|
|
59
|
+
onChange: PropTypes.Validator<(...args: any[]) => any>,
|
|
60
|
+
|};
|
|
61
|
+
static defaultProps: Props;
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* This is the widget's grading function
|
|
65
|
+
*/
|
|
66
|
+
static validate(state: any, rubric: any): any;
|
|
67
|
+
getUserInput: () => any;
|
|
68
|
+
render(): React.Node;
|
|
69
|
+
change: (arg1: any, arg2: any, arg3: any) => any;
|
|
70
|
+
movePoint: (arg1: Coord) => void;
|
|
71
|
+
_getGridConfig: (arg1: any) => any;
|
|
72
|
+
setupGraphie: (arg1: any, arg2: any) => any;
|
|
73
|
+
simpleValidate: (arg1: any) => any;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* For this widget to work, we must export it.
|
|
77
|
+
* We also must import this file in src/all-widgets.js
|
|
78
|
+
*/
|
|
79
|
+
declare var _default: $ReadOnly<{|
|
|
80
|
+
name: string,
|
|
81
|
+
displayName: string,
|
|
82
|
+
getWidget?: (() => typeof ExampleGraphieWidget) | void,
|
|
83
|
+
accessible?: boolean | ((props: any) => boolean) | void,
|
|
84
|
+
hidden?: boolean | void,
|
|
85
|
+
version?: $Flowgen$Import$_40_khanacademy_2f_perseus.Version | void,
|
|
86
|
+
supportedAlignments?: $ReadOnlyArray<$Flowgen$Import$_40_khanacademy_2f_perseus.Alignment> | void,
|
|
87
|
+
defaultAlignment?: $Flowgen$Import$_40_khanacademy_2f_perseus.Alignment | void,
|
|
88
|
+
getDefaultAlignment?:
|
|
89
|
+
| (() => $Flowgen$Import$_40_khanacademy_2f_perseus.Alignment)
|
|
90
|
+
| void,
|
|
91
|
+
isLintable?: boolean | void,
|
|
92
|
+
transform?: $Flowgen$Import$_2e__2e__2f__2e__2e__2f__2e__2e__2f_perseus_2f_src_2f_types.WidgetTransform | void,
|
|
93
|
+
tracking?: $Flowgen$Import$_2e__2e__2f__2e__2e__2f__2e__2e__2f_perseus_2f_src_2f_types.Tracking | void,
|
|
94
|
+
staticTransform?: $Flowgen$Import$_2e__2e__2f__2e__2e__2f__2e__2e__2f_perseus_2f_src_2f_types.WidgetTransform | void,
|
|
95
|
+
traverseChildWidgets?: any,
|
|
96
|
+
propUpgrades?: {
|
|
97
|
+
[key: string]: (arg1: any) => any,
|
|
98
|
+
} | void,
|
|
99
|
+
widget: typeof ExampleGraphieWidget,
|
|
100
|
+
|}>;
|
|
101
|
+
declare export default typeof _default;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
type Props = any;
|
|
3
|
+
/**
|
|
4
|
+
* This is the widget's editor. This is what shows up on the left side
|
|
5
|
+
* of the screen in the demo. Only the question writer sees this.
|
|
6
|
+
*/
|
|
7
|
+
declare class ExampleWidgetEditor extends React.Component<Props> {
|
|
8
|
+
static propTypes: {
|
|
9
|
+
onChange: import("prop-types").Validator<(...args: any[]) => any>;
|
|
10
|
+
};
|
|
11
|
+
static widgetName: "example-widget";
|
|
12
|
+
static defaultProps: Props;
|
|
13
|
+
handleAnswerChange: (arg1: React.ChangeEvent<HTMLInputElement>) => void;
|
|
14
|
+
render(): React.ReactNode;
|
|
15
|
+
change: (arg1: any, arg2: any, arg3: any) => any;
|
|
16
|
+
focus: () => boolean;
|
|
17
|
+
serialize: () => any;
|
|
18
|
+
}
|
|
19
|
+
export default ExampleWidgetEditor;
|
|
@@ -0,0 +1,26 @@
|
|
|
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$prop_2d_types from "prop-types";
|
|
8
|
+
import * as React from "react";
|
|
9
|
+
declare type Props = any;
|
|
10
|
+
/**
|
|
11
|
+
* This is the widget's editor. This is what shows up on the left side
|
|
12
|
+
* of the screen in the demo. Only the question writer sees this.
|
|
13
|
+
*/
|
|
14
|
+
declare class ExampleWidgetEditor extends React.Component<Props> {
|
|
15
|
+
static propTypes: {|
|
|
16
|
+
onChange: $Flowgen$Import$prop_2d_types.Validator<(...args: any[]) => any>,
|
|
17
|
+
|};
|
|
18
|
+
static widgetName: "example-widget";
|
|
19
|
+
static defaultProps: Props;
|
|
20
|
+
handleAnswerChange: (arg1: SyntheticInputEvent<HTMLInputElement>) => void;
|
|
21
|
+
render(): React.Node;
|
|
22
|
+
change: (arg1: any, arg2: any, arg3: any) => any;
|
|
23
|
+
focus: () => boolean;
|
|
24
|
+
serialize: () => any;
|
|
25
|
+
}
|
|
26
|
+
declare export default typeof ExampleWidgetEditor;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import PropTypes from "prop-types";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
/**
|
|
4
|
+
* This is the widget's renderer. It shows up in the right column
|
|
5
|
+
* in the demo, and is what is visible to users, and where
|
|
6
|
+
* users enter their answers.
|
|
7
|
+
*/
|
|
8
|
+
declare class ExampleWidget extends React.Component<any> {
|
|
9
|
+
static propTypes: {
|
|
10
|
+
value: PropTypes.Requireable<string>;
|
|
11
|
+
onChange: PropTypes.Validator<(...args: any[]) => any>;
|
|
12
|
+
};
|
|
13
|
+
static defaultProps: any;
|
|
14
|
+
/**
|
|
15
|
+
* This is the widget's grading function. simpleValidate generally
|
|
16
|
+
* defers to this function.
|
|
17
|
+
*
|
|
18
|
+
* value is usually the result of getUserInput on the widget
|
|
19
|
+
* rubric is the result of calling serialize() on the editor
|
|
20
|
+
*/
|
|
21
|
+
static validate(value: string, rubric: any): any;
|
|
22
|
+
/**
|
|
23
|
+
* Tell our parent to update our props.
|
|
24
|
+
*/
|
|
25
|
+
change: (arg1: any, arg2: any, arg3: any) => any;
|
|
26
|
+
render(): React.ReactNode;
|
|
27
|
+
getUserInput: () => string;
|
|
28
|
+
/**
|
|
29
|
+
* Widgets that are focusable should add a focus method that returns
|
|
30
|
+
* true if focusing succeeded. The first such widget found will be
|
|
31
|
+
* focused on page load.
|
|
32
|
+
*/
|
|
33
|
+
focus: () => boolean;
|
|
34
|
+
/**
|
|
35
|
+
* simpleValidate is called for grading. Rubric is the result of calling
|
|
36
|
+
* getUserInput() on the editor that created this widget.
|
|
37
|
+
*
|
|
38
|
+
* Should return an object representing the grading result, such as
|
|
39
|
+
* {
|
|
40
|
+
* type: "points",
|
|
41
|
+
* earned: 1,
|
|
42
|
+
* total: 1,
|
|
43
|
+
* message: null
|
|
44
|
+
* }
|
|
45
|
+
*/
|
|
46
|
+
simpleValidate: (arg1: any) => any;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* For this widget to work, we must import this file in src/all-widgets.js
|
|
50
|
+
*/
|
|
51
|
+
declare const _default: Readonly<{
|
|
52
|
+
name: string;
|
|
53
|
+
displayName: string;
|
|
54
|
+
getWidget?: (() => typeof ExampleWidget) | undefined;
|
|
55
|
+
accessible?: boolean | ((props: any) => boolean) | undefined;
|
|
56
|
+
hidden?: boolean | undefined;
|
|
57
|
+
version?: import("@khanacademy/perseus").Version | undefined;
|
|
58
|
+
supportedAlignments?: readonly import("@khanacademy/perseus").Alignment[] | undefined;
|
|
59
|
+
defaultAlignment?: import("@khanacademy/perseus").Alignment | undefined;
|
|
60
|
+
getDefaultAlignment?: (() => import("@khanacademy/perseus").Alignment) | undefined;
|
|
61
|
+
isLintable?: boolean | undefined;
|
|
62
|
+
transform?: import("../../../perseus/src/types").WidgetTransform | undefined;
|
|
63
|
+
tracking?: import("../../../perseus/src/types").Tracking | undefined;
|
|
64
|
+
staticTransform?: import("../../../perseus/src/types").WidgetTransform | undefined;
|
|
65
|
+
traverseChildWidgets?: any;
|
|
66
|
+
propUpgrades?: {
|
|
67
|
+
[key: string]: (arg1: any) => any;
|
|
68
|
+
} | undefined;
|
|
69
|
+
widget: typeof ExampleWidget;
|
|
70
|
+
}>;
|
|
71
|
+
export default _default;
|
|
@@ -0,0 +1,86 @@
|
|
|
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$_40_khanacademy_2f_perseus from "@khanacademy/perseus";
|
|
8
|
+
import * as $Flowgen$Import$_2e__2e__2f__2e__2e__2f__2e__2e__2f_perseus_2f_src_2f_types from "../../../perseus/src/types";
|
|
9
|
+
import PropTypes from "prop-types";
|
|
10
|
+
import * as React from "react";
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* This is the widget's renderer. It shows up in the right column
|
|
14
|
+
* in the demo, and is what is visible to users, and where
|
|
15
|
+
* users enter their answers.
|
|
16
|
+
*/
|
|
17
|
+
declare class ExampleWidget extends React.Component<any> {
|
|
18
|
+
static propTypes: {|
|
|
19
|
+
value: PropTypes.Requireable<string>,
|
|
20
|
+
onChange: PropTypes.Validator<(...args: any[]) => any>,
|
|
21
|
+
|};
|
|
22
|
+
static defaultProps: any;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* This is the widget's grading function. simpleValidate generally
|
|
26
|
+
* defers to this function.
|
|
27
|
+
*
|
|
28
|
+
* value is usually the result of getUserInput on the widget
|
|
29
|
+
* rubric is the result of calling serialize() on the editor
|
|
30
|
+
*/
|
|
31
|
+
static validate(value: string, rubric: any): any;
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Tell our parent to update our props.
|
|
35
|
+
*/
|
|
36
|
+
change: (arg1: any, arg2: any, arg3: any) => any;
|
|
37
|
+
render(): React.Node;
|
|
38
|
+
getUserInput: () => string;
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Widgets that are focusable should add a focus method that returns
|
|
42
|
+
* true if focusing succeeded. The first such widget found will be
|
|
43
|
+
* focused on page load.
|
|
44
|
+
*/
|
|
45
|
+
focus: () => boolean;
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* simpleValidate is called for grading. Rubric is the result of calling
|
|
49
|
+
* getUserInput() on the editor that created this widget.
|
|
50
|
+
*
|
|
51
|
+
* Should return an object representing the grading result, such as
|
|
52
|
+
* {
|
|
53
|
+
* type: "points",
|
|
54
|
+
* earned: 1,
|
|
55
|
+
* total: 1,
|
|
56
|
+
* message: null
|
|
57
|
+
* }
|
|
58
|
+
*/
|
|
59
|
+
simpleValidate: (arg1: any) => any;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* For this widget to work, we must import this file in src/all-widgets.js
|
|
63
|
+
*/
|
|
64
|
+
declare var _default: $ReadOnly<{|
|
|
65
|
+
name: string,
|
|
66
|
+
displayName: string,
|
|
67
|
+
getWidget?: (() => typeof ExampleWidget) | void,
|
|
68
|
+
accessible?: boolean | ((props: any) => boolean) | void,
|
|
69
|
+
hidden?: boolean | void,
|
|
70
|
+
version?: $Flowgen$Import$_40_khanacademy_2f_perseus.Version | void,
|
|
71
|
+
supportedAlignments?: $ReadOnlyArray<$Flowgen$Import$_40_khanacademy_2f_perseus.Alignment> | void,
|
|
72
|
+
defaultAlignment?: $Flowgen$Import$_40_khanacademy_2f_perseus.Alignment | void,
|
|
73
|
+
getDefaultAlignment?:
|
|
74
|
+
| (() => $Flowgen$Import$_40_khanacademy_2f_perseus.Alignment)
|
|
75
|
+
| void,
|
|
76
|
+
isLintable?: boolean | void,
|
|
77
|
+
transform?: $Flowgen$Import$_2e__2e__2f__2e__2e__2f__2e__2e__2f_perseus_2f_src_2f_types.WidgetTransform | void,
|
|
78
|
+
tracking?: $Flowgen$Import$_2e__2e__2f__2e__2e__2f__2e__2e__2f_perseus_2f_src_2f_types.Tracking | void,
|
|
79
|
+
staticTransform?: $Flowgen$Import$_2e__2e__2f__2e__2e__2f__2e__2e__2f_perseus_2f_src_2f_types.WidgetTransform | void,
|
|
80
|
+
traverseChildWidgets?: any,
|
|
81
|
+
propUpgrades?: {
|
|
82
|
+
[key: string]: (arg1: any) => any,
|
|
83
|
+
} | void,
|
|
84
|
+
widget: typeof ExampleWidget,
|
|
85
|
+
|}>;
|
|
86
|
+
declare export default typeof _default;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import PropTypes from "prop-types";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
type Props = any;
|
|
4
|
+
type State = any;
|
|
5
|
+
declare class ExplanationEditor extends React.Component<Props, State> {
|
|
6
|
+
static propTypes: {
|
|
7
|
+
showPrompt: PropTypes.Requireable<string>;
|
|
8
|
+
hidePrompt: PropTypes.Requireable<string>;
|
|
9
|
+
explanation: PropTypes.Requireable<string>;
|
|
10
|
+
widgets: PropTypes.Requireable<object>;
|
|
11
|
+
apiOptions: PropTypes.Requireable<any>;
|
|
12
|
+
onChange: PropTypes.Validator<(...args: any[]) => any>;
|
|
13
|
+
};
|
|
14
|
+
static widgetName: "explanation";
|
|
15
|
+
static defaultProps: Props;
|
|
16
|
+
state: State;
|
|
17
|
+
change: (arg1: any, arg2: any, arg3: any) => any;
|
|
18
|
+
serialize: () => any;
|
|
19
|
+
render(): React.ReactNode;
|
|
20
|
+
}
|
|
21
|
+
export default ExplanationEditor;
|
|
@@ -0,0 +1,27 @@
|
|
|
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 * as React from "react";
|
|
9
|
+
declare type Props = any;
|
|
10
|
+
declare type State = any;
|
|
11
|
+
declare class ExplanationEditor extends React.Component<Props, State> {
|
|
12
|
+
static propTypes: {|
|
|
13
|
+
showPrompt: PropTypes.Requireable<string>,
|
|
14
|
+
hidePrompt: PropTypes.Requireable<string>,
|
|
15
|
+
explanation: PropTypes.Requireable<string>,
|
|
16
|
+
widgets: PropTypes.Requireable<{ ... }>,
|
|
17
|
+
apiOptions: PropTypes.Requireable<any>,
|
|
18
|
+
onChange: PropTypes.Validator<(...args: any[]) => any>,
|
|
19
|
+
|};
|
|
20
|
+
static widgetName: "explanation";
|
|
21
|
+
static defaultProps: Props;
|
|
22
|
+
state: State;
|
|
23
|
+
change: (arg1: any, arg2: any, arg3: any) => any;
|
|
24
|
+
serialize: () => any;
|
|
25
|
+
render(): React.Node;
|
|
26
|
+
}
|
|
27
|
+
declare export default typeof ExplanationEditor;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import PropTypes from "prop-types";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
declare class ExpressionEditor extends React.Component<any, any> {
|
|
4
|
+
static propTypes: {
|
|
5
|
+
answerForms: PropTypes.Requireable<(PropTypes.InferProps<{
|
|
6
|
+
considered: PropTypes.Validator<string>;
|
|
7
|
+
value: PropTypes.Validator<string>;
|
|
8
|
+
form: PropTypes.Validator<boolean>;
|
|
9
|
+
simplify: PropTypes.Validator<boolean>;
|
|
10
|
+
}> | null | undefined)[]>;
|
|
11
|
+
times: PropTypes.Requireable<boolean>;
|
|
12
|
+
buttonSets: any;
|
|
13
|
+
functions: PropTypes.Requireable<(string | null | undefined)[]>;
|
|
14
|
+
onChange: PropTypes.Validator<(...args: any[]) => any>;
|
|
15
|
+
};
|
|
16
|
+
static widgetName: "expression";
|
|
17
|
+
static defaultProps: any;
|
|
18
|
+
constructor(props: any);
|
|
19
|
+
change: (arg1: any, arg2: any, arg3: any) => any;
|
|
20
|
+
render(): React.ReactNode;
|
|
21
|
+
serialize: () => any;
|
|
22
|
+
getSaveWarnings: () => any;
|
|
23
|
+
_newEmptyAnswerForm: () => any;
|
|
24
|
+
newAnswer: () => void;
|
|
25
|
+
handleRemoveForm: (arg1: number) => void;
|
|
26
|
+
updateForm: (arg1: number, arg2: any) => void;
|
|
27
|
+
handleReorder: (arg1: any) => void;
|
|
28
|
+
handleButtonSet: (arg1: string) => void;
|
|
29
|
+
handleToggleDiv: () => void;
|
|
30
|
+
handleTexInsert: (arg1: string) => void;
|
|
31
|
+
handleFunctions: (arg1: React.ChangeEvent<HTMLInputElement>) => void;
|
|
32
|
+
}
|
|
33
|
+
export default ExpressionEditor;
|
|
@@ -0,0 +1,41 @@
|
|
|
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 * as React from "react";
|
|
9
|
+
declare class ExpressionEditor extends React.Component<any, any> {
|
|
10
|
+
static propTypes: {|
|
|
11
|
+
answerForms: PropTypes.Requireable<
|
|
12
|
+
(PropTypes.InferProps<{|
|
|
13
|
+
considered: PropTypes.Validator<string>,
|
|
14
|
+
value: PropTypes.Validator<string>,
|
|
15
|
+
form: PropTypes.Validator<boolean>,
|
|
16
|
+
simplify: PropTypes.Validator<boolean>,
|
|
17
|
+
|}> | null | void)[]
|
|
18
|
+
>,
|
|
19
|
+
times: PropTypes.Requireable<boolean>,
|
|
20
|
+
buttonSets: any,
|
|
21
|
+
functions: PropTypes.Requireable<(string | null | void)[]>,
|
|
22
|
+
onChange: PropTypes.Validator<(...args: any[]) => any>,
|
|
23
|
+
|};
|
|
24
|
+
static widgetName: "expression";
|
|
25
|
+
static defaultProps: any;
|
|
26
|
+
constructor(props: any): this;
|
|
27
|
+
change: (arg1: any, arg2: any, arg3: any) => any;
|
|
28
|
+
render(): React.Node;
|
|
29
|
+
serialize: () => any;
|
|
30
|
+
getSaveWarnings: () => any;
|
|
31
|
+
_newEmptyAnswerForm: () => any;
|
|
32
|
+
newAnswer: () => void;
|
|
33
|
+
handleRemoveForm: (arg1: number) => void;
|
|
34
|
+
updateForm: (arg1: number, arg2: any) => void;
|
|
35
|
+
handleReorder: (arg1: any) => void;
|
|
36
|
+
handleButtonSet: (arg1: string) => void;
|
|
37
|
+
handleToggleDiv: () => void;
|
|
38
|
+
handleTexInsert: (arg1: string) => void;
|
|
39
|
+
handleFunctions: (arg1: SyntheticInputEvent<HTMLInputElement>) => void;
|
|
40
|
+
}
|
|
41
|
+
declare export default typeof ExpressionEditor;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import PropTypes from "prop-types";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
type Props = any;
|
|
4
|
+
declare class GradedGroupEditor extends React.Component<Props> {
|
|
5
|
+
static propTypes: {
|
|
6
|
+
title: PropTypes.Requireable<string>;
|
|
7
|
+
content: PropTypes.Requireable<string>;
|
|
8
|
+
widgets: PropTypes.Requireable<object>;
|
|
9
|
+
images: PropTypes.Requireable<object>;
|
|
10
|
+
apiOptions: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
|
|
11
|
+
isArticle: PropTypes.Validator<boolean>;
|
|
12
|
+
onInputError: PropTypes.Validator<(...args: any[]) => any>;
|
|
13
|
+
onFocusChange: PropTypes.Validator<(...args: any[]) => any>;
|
|
14
|
+
GroupMetadataEditor: PropTypes.Validator<(...args: any[]) => any>;
|
|
15
|
+
showAlignmentOptions: PropTypes.Validator<boolean>;
|
|
16
|
+
readOnly: PropTypes.Validator<boolean>;
|
|
17
|
+
answerableCallback: PropTypes.Requireable<(...args: any[]) => any>;
|
|
18
|
+
getAnotherHint: PropTypes.Requireable<(...args: any[]) => any>;
|
|
19
|
+
interactionCallback: PropTypes.Requireable<(...args: any[]) => any>;
|
|
20
|
+
groupAnnotator: PropTypes.Validator<(...args: any[]) => any>;
|
|
21
|
+
imagePlaceholder: PropTypes.Requireable<PropTypes.ReactNodeLike>;
|
|
22
|
+
widgetPlaceholder: PropTypes.Requireable<PropTypes.ReactNodeLike>;
|
|
23
|
+
baseElements: PropTypes.Requireable<PropTypes.InferProps<{
|
|
24
|
+
Link: PropTypes.Requireable<(...args: any[]) => any>;
|
|
25
|
+
}>>;
|
|
26
|
+
imagePreloader: PropTypes.Requireable<(...args: any[]) => any>;
|
|
27
|
+
trackInteraction: PropTypes.Requireable<(...args: any[]) => any>;
|
|
28
|
+
customKeypad: PropTypes.Requireable<boolean>;
|
|
29
|
+
nativeKeypadProxy: PropTypes.Requireable<(...args: any[]) => any>;
|
|
30
|
+
isMobile: PropTypes.Requireable<boolean>;
|
|
31
|
+
setDrawingAreaAvailable: PropTypes.Requireable<(...args: any[]) => any>;
|
|
32
|
+
useDraftEditor: PropTypes.Requireable<boolean>;
|
|
33
|
+
hintProgressColor: PropTypes.Requireable<string>;
|
|
34
|
+
canScrollPage: PropTypes.Requireable<boolean>;
|
|
35
|
+
inModal: PropTypes.Requireable<boolean>;
|
|
36
|
+
crossOutEnabled: PropTypes.Requireable<boolean>;
|
|
37
|
+
editorChangeDelay: PropTypes.Requireable<number>;
|
|
38
|
+
}>>>;
|
|
39
|
+
onChange: PropTypes.Validator<(...args: any[]) => any>;
|
|
40
|
+
};
|
|
41
|
+
static widgetName: "graded-group";
|
|
42
|
+
static defaultProps: Props;
|
|
43
|
+
change: (arg1: any, arg2: any, arg3: any) => any;
|
|
44
|
+
handleAddHint: () => void;
|
|
45
|
+
handleRemoveHint: (arg1: React.MouseEvent) => void;
|
|
46
|
+
render(): React.ReactNode;
|
|
47
|
+
getSaveWarnings: () => any;
|
|
48
|
+
serialize: () => {
|
|
49
|
+
title: string;
|
|
50
|
+
hint: any | null | undefined;
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
export default GradedGroupEditor;
|