@khanacademy/perseus-editor 2.2.2 → 2.3.1
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 +22 -0
- package/dist/all-widgets.d.ts +2 -2
- package/dist/all-widgets.js.flow +2 -2
- package/dist/components/graph-points-count-selector.d.ts +7 -0
- package/dist/components/graph-points-count-selector.js.flow +12 -0
- package/dist/components/graph-type-selector.d.ts +7 -0
- package/dist/components/graph-type-selector.js.flow +12 -0
- package/dist/components/segment-count-selector.d.ts +6 -0
- package/dist/components/segment-count-selector.js.flow +11 -0
- package/dist/components/widget-editor.d.ts +31 -0
- package/dist/components/widget-editor.js.flow +91 -0
- package/dist/components/widget-select.d.ts +10 -0
- package/dist/components/widget-select.js.flow +16 -0
- package/dist/es/index.js +423 -229
- package/dist/es/index.js.map +1 -1
- package/dist/index.js +431 -225
- package/dist/index.js.map +1 -1
- package/dist/testing-widgets.d.ts +2 -2
- package/dist/testing-widgets.js.flow +2 -2
- package/dist/util/points.d.ts +3 -0
- package/dist/util/points.js.flow +9 -0
- package/dist/widgets/example-graphie-widget.d.ts +2 -2
- package/dist/widgets/example-graphie-widget.js.flow +2 -2
- package/dist/widgets/example-widget.d.ts +2 -2
- package/dist/widgets/example-widget.js.flow +2 -2
- package/dist/widgets/interactive-graph-editor.d.ts +3182 -1
- package/dist/widgets/interactive-graph-editor.js.flow +5290 -1
- package/package.json +9 -3
- package/src/__stories__/editor.stories.tsx +105 -4
- package/src/article-editor.tsx +1 -1
- package/src/{__stories__ → components/__stories__}/section-control-button.stories.tsx +1 -1
- package/src/components/graph-points-count-selector.tsx +29 -0
- package/src/components/graph-type-selector.tsx +31 -0
- package/src/components/json-editor.tsx +0 -1
- package/src/components/segment-count-selector.tsx +27 -0
- package/src/components/widget-editor.tsx +232 -0
- package/src/components/widget-select.tsx +48 -0
- package/src/editor.tsx +4 -270
- package/src/util/points.test.ts +24 -0
- package/src/util/points.ts +13 -0
- package/src/widgets/interactive-graph-editor.tsx +294 -48
- package/tsconfig-build.json +0 -1
- package/tsconfig-build.tsbuildinfo +1 -1
- package/dist/diffs/__stories__/perseus-diff-wrapper.d.ts +0 -6
- package/dist/diffs/__stories__/perseus-diff-wrapper.js.flow +0 -12
- /package/dist/{section-control-button.d.ts → components/section-control-button.d.ts} +0 -0
- /package/dist/{section-control-button.js.flow → components/section-control-button.js.flow} +0 -0
- /package/src/{section-control-button.tsx → components/section-control-button.tsx} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,27 @@
|
|
|
1
1
|
# @khanacademy/perseus-editor
|
|
2
2
|
|
|
3
|
+
## 2.3.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [d497118e]
|
|
8
|
+
- @khanacademy/perseus@6.3.0
|
|
9
|
+
|
|
10
|
+
## 2.3.0
|
|
11
|
+
|
|
12
|
+
### Minor Changes
|
|
13
|
+
|
|
14
|
+
- 5d88d8c5: Restore point count selector in `interactive-graph` widget editor
|
|
15
|
+
- 2e5683d3: Re-enable editing of 'polygon' graph type in interactive-graph-editor
|
|
16
|
+
- 5675178b: Re-enable editing of 'line segment' graph type in interactive-graph-editor
|
|
17
|
+
- d2cf7b67: Re-introduce graph type selector for interactive graph editor
|
|
18
|
+
|
|
19
|
+
### Patch Changes
|
|
20
|
+
|
|
21
|
+
- d28cbf34: Enhance formatting of the 'Correct answer' field on interactive-graph widget editor (to be more legible)
|
|
22
|
+
- Updated dependencies [5fba7c60]
|
|
23
|
+
- @khanacademy/perseus@6.2.2
|
|
24
|
+
|
|
3
25
|
## 2.2.2
|
|
4
26
|
|
|
5
27
|
### Patch Changes
|
package/dist/all-widgets.d.ts
CHANGED
|
@@ -10,10 +10,10 @@ declare const _default: readonly Readonly<{
|
|
|
10
10
|
defaultAlignment?: import("@khanacademy/perseus").Alignment | undefined;
|
|
11
11
|
getDefaultAlignment?: (() => import("@khanacademy/perseus").Alignment) | undefined;
|
|
12
12
|
isLintable?: boolean | undefined;
|
|
13
|
-
transform?: import("../../perseus/src/types").WidgetTransform | undefined;
|
|
14
13
|
tracking?: import("../../perseus/src/types").Tracking | undefined;
|
|
15
|
-
staticTransform?: import("../../perseus/src/types").WidgetTransform | undefined;
|
|
16
14
|
traverseChildWidgets?: any;
|
|
15
|
+
transform?: import("../../perseus/src/types").WidgetTransform | undefined;
|
|
16
|
+
staticTransform?: import("../../perseus/src/types").WidgetTransform | undefined;
|
|
17
17
|
propUpgrades?: {
|
|
18
18
|
[key: string]: (arg1: any) => any;
|
|
19
19
|
} | undefined;
|
package/dist/all-widgets.js.flow
CHANGED
|
@@ -21,10 +21,10 @@ declare var _default: $ReadOnlyArray<
|
|
|
21
21
|
| (() => $Flowgen$Import$_40_khanacademy_2f_perseus.Alignment)
|
|
22
22
|
| void,
|
|
23
23
|
isLintable?: boolean | void,
|
|
24
|
-
transform?: $Flowgen$Import$_2e__2e__2f__2e__2e__2f_perseus_2f_src_2f_types.WidgetTransform | void,
|
|
25
24
|
tracking?: $Flowgen$Import$_2e__2e__2f__2e__2e__2f_perseus_2f_src_2f_types.Tracking | void,
|
|
26
|
-
staticTransform?: $Flowgen$Import$_2e__2e__2f__2e__2e__2f_perseus_2f_src_2f_types.WidgetTransform | void,
|
|
27
25
|
traverseChildWidgets?: any,
|
|
26
|
+
transform?: $Flowgen$Import$_2e__2e__2f__2e__2e__2f_perseus_2f_src_2f_types.WidgetTransform | void,
|
|
27
|
+
staticTransform?: $Flowgen$Import$_2e__2e__2f__2e__2e__2f_perseus_2f_src_2f_types.WidgetTransform | void,
|
|
28
28
|
propUpgrades?: {
|
|
29
29
|
[key: string]: (arg1: any) => any,
|
|
30
30
|
} | void,
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { PointValue } from "../util/points";
|
|
3
|
+
declare const GraphPointsCountSelector: ({ numPoints, onChange, }: {
|
|
4
|
+
numPoints?: PointValue | undefined;
|
|
5
|
+
onChange: (points: PointValue) => void;
|
|
6
|
+
}) => JSX.Element;
|
|
7
|
+
export default GraphPointsCountSelector;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Flowtype definitions for data
|
|
3
|
+
* Generated by Flowgen from a Typescript Definition
|
|
4
|
+
* Flowgen v1.21.0
|
|
5
|
+
* @flow
|
|
6
|
+
*/
|
|
7
|
+
import { PointValue } from "../util/points";
|
|
8
|
+
declare var GraphPointsCountSelector: (x: {|
|
|
9
|
+
numPoints?: PointValue | void,
|
|
10
|
+
onChange: (points: PointValue) => void,
|
|
11
|
+
|}) => React$Node;
|
|
12
|
+
declare export default typeof GraphPointsCountSelector;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Flowtype definitions for data
|
|
3
|
+
* Generated by Flowgen from a Typescript Definition
|
|
4
|
+
* Flowgen v1.21.0
|
|
5
|
+
* @flow
|
|
6
|
+
*/
|
|
7
|
+
declare type GraphTypeSelectorProps = {|
|
|
8
|
+
graphType: string,
|
|
9
|
+
onChange: (newGraphType: string) => void,
|
|
10
|
+
|};
|
|
11
|
+
declare var GraphTypeSelector: (props: GraphTypeSelectorProps) => React$Node;
|
|
12
|
+
declare export default typeof GraphTypeSelector;
|
|
@@ -0,0 +1,11 @@
|
|
|
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 SegmentCountSelector: (x: {|
|
|
8
|
+
numSegments?: number | void,
|
|
9
|
+
onChange: (numSegments: number) => void,
|
|
10
|
+
|}) => React$Node;
|
|
11
|
+
declare export default typeof SegmentCountSelector;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import type { WidgetInfo } from "@khanacademy/perseus";
|
|
3
|
+
type WidgetEditorProps = {
|
|
4
|
+
id: string;
|
|
5
|
+
onChange: (widgetInfo: WidgetInfo, cb?: () => unknown, silent?: boolean) => unknown;
|
|
6
|
+
onRemove: () => unknown;
|
|
7
|
+
apiOptions: any;
|
|
8
|
+
} & WidgetInfo;
|
|
9
|
+
type WidgetEditorState = {
|
|
10
|
+
showWidget: boolean;
|
|
11
|
+
widgetInfo: WidgetInfo;
|
|
12
|
+
};
|
|
13
|
+
declare class WidgetEditor extends React.Component<WidgetEditorProps, WidgetEditorState> {
|
|
14
|
+
constructor(props: WidgetEditorProps);
|
|
15
|
+
UNSAFE_componentWillReceiveProps(nextProps: WidgetEditorProps): void;
|
|
16
|
+
_toggleWidget: (e: React.SyntheticEvent) => void;
|
|
17
|
+
_handleWidgetChange: (newProps: WidgetEditorProps, cb: () => unknown, silent: boolean) => void;
|
|
18
|
+
_toggleStatic: (e: Event) => void;
|
|
19
|
+
_handleAlignmentChange: (e: React.SyntheticEvent<HTMLSelectElement>) => void;
|
|
20
|
+
getSaveWarnings: () => any;
|
|
21
|
+
serialize: () => {
|
|
22
|
+
type: "categorizer" | "iframe" | "table" | "video" | "image" | "radio" | "cs-program" | "definition" | "group" | "dropdown" | "example-graphie-widget" | "example-widget" | "explanation" | "expression" | "graded-group-set" | "graded-group" | "grapher" | "input-number" | "interaction" | "interactive-graph" | "label-image" | "lights-puzzle" | "matcher" | "matrix" | "measurer" | "molecule-renderer" | "number-line" | "numeric-input" | "orderer" | "passage-ref" | "passage" | "plotter" | "reaction-diagtram" | "passage-ref-target" | "sequence" | "simple-markdown-tester" | "simulator" | "sorter" | "transformer" | "unit-input";
|
|
23
|
+
alignment: string | undefined;
|
|
24
|
+
static: boolean | undefined;
|
|
25
|
+
graded: boolean | undefined;
|
|
26
|
+
options: any;
|
|
27
|
+
version: import("../../../perseus/src/perseus-types").Version | undefined;
|
|
28
|
+
};
|
|
29
|
+
render(): React.ReactNode;
|
|
30
|
+
}
|
|
31
|
+
export default WidgetEditor;
|
|
@@ -0,0 +1,91 @@
|
|
|
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__2e__2f__2e__2e__2f__2e__2e__2f_perseus_2f_src_2f_perseus_2d_types from "../../../perseus/src/perseus-types";
|
|
8
|
+
import * as React from "react";
|
|
9
|
+
import type { WidgetInfo } from "@khanacademy/perseus";
|
|
10
|
+
declare type WidgetEditorProps = {|
|
|
11
|
+
...{|
|
|
12
|
+
id: string,
|
|
13
|
+
onChange: (
|
|
14
|
+
widgetInfo: WidgetInfo,
|
|
15
|
+
cb?: () => mixed,
|
|
16
|
+
silent?: boolean
|
|
17
|
+
) => mixed,
|
|
18
|
+
onRemove: () => mixed,
|
|
19
|
+
apiOptions: any,
|
|
20
|
+
|},
|
|
21
|
+
...WidgetInfo,
|
|
22
|
+
|};
|
|
23
|
+
declare type WidgetEditorState = {|
|
|
24
|
+
showWidget: boolean,
|
|
25
|
+
widgetInfo: WidgetInfo,
|
|
26
|
+
|};
|
|
27
|
+
declare class WidgetEditor
|
|
28
|
+
extends React.Component<WidgetEditorProps, WidgetEditorState>
|
|
29
|
+
{
|
|
30
|
+
constructor(props: WidgetEditorProps): this;
|
|
31
|
+
UNSAFE_componentWillReceiveProps(nextProps: WidgetEditorProps): void;
|
|
32
|
+
_toggleWidget: (e: SyntheticEvent<>) => void;
|
|
33
|
+
_handleWidgetChange: (
|
|
34
|
+
newProps: WidgetEditorProps,
|
|
35
|
+
cb: () => mixed,
|
|
36
|
+
silent: boolean
|
|
37
|
+
) => void;
|
|
38
|
+
_toggleStatic: (e: Event) => void;
|
|
39
|
+
_handleAlignmentChange: (e: SyntheticEvent<HTMLSelectElement>) => void;
|
|
40
|
+
getSaveWarnings: () => any;
|
|
41
|
+
serialize: () => {|
|
|
42
|
+
type:
|
|
43
|
+
| "categorizer"
|
|
44
|
+
| "iframe"
|
|
45
|
+
| "table"
|
|
46
|
+
| "video"
|
|
47
|
+
| "image"
|
|
48
|
+
| "radio"
|
|
49
|
+
| "cs-program"
|
|
50
|
+
| "definition"
|
|
51
|
+
| "group"
|
|
52
|
+
| "dropdown"
|
|
53
|
+
| "example-graphie-widget"
|
|
54
|
+
| "example-widget"
|
|
55
|
+
| "explanation"
|
|
56
|
+
| "expression"
|
|
57
|
+
| "graded-group-set"
|
|
58
|
+
| "graded-group"
|
|
59
|
+
| "grapher"
|
|
60
|
+
| "input-number"
|
|
61
|
+
| "interaction"
|
|
62
|
+
| "interactive-graph"
|
|
63
|
+
| "label-image"
|
|
64
|
+
| "lights-puzzle"
|
|
65
|
+
| "matcher"
|
|
66
|
+
| "matrix"
|
|
67
|
+
| "measurer"
|
|
68
|
+
| "molecule-renderer"
|
|
69
|
+
| "number-line"
|
|
70
|
+
| "numeric-input"
|
|
71
|
+
| "orderer"
|
|
72
|
+
| "passage-ref"
|
|
73
|
+
| "passage"
|
|
74
|
+
| "plotter"
|
|
75
|
+
| "reaction-diagtram"
|
|
76
|
+
| "passage-ref-target"
|
|
77
|
+
| "sequence"
|
|
78
|
+
| "simple-markdown-tester"
|
|
79
|
+
| "simulator"
|
|
80
|
+
| "sorter"
|
|
81
|
+
| "transformer"
|
|
82
|
+
| "unit-input",
|
|
83
|
+
alignment: string | void,
|
|
84
|
+
static: boolean | void,
|
|
85
|
+
graded: boolean | void,
|
|
86
|
+
options: any,
|
|
87
|
+
version: $Flowgen$Import$_2e__2e__2f__2e__2e__2f__2e__2e__2f_perseus_2f_src_2f_perseus_2d_types.Version | void,
|
|
88
|
+
|};
|
|
89
|
+
render(): React.Node;
|
|
90
|
+
}
|
|
91
|
+
declare export default typeof WidgetEditor;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
type WidgetSelectProps = {
|
|
3
|
+
onChange?: (widgetType: string) => unknown;
|
|
4
|
+
};
|
|
5
|
+
declare class WidgetSelect extends React.Component<WidgetSelectProps> {
|
|
6
|
+
shouldComponentUpdate(): boolean;
|
|
7
|
+
handleChange: (e: React.SyntheticEvent<HTMLSelectElement>) => void;
|
|
8
|
+
render(): React.ReactNode;
|
|
9
|
+
}
|
|
10
|
+
export default WidgetSelect;
|
|
@@ -0,0 +1,16 @@
|
|
|
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 WidgetSelectProps = {|
|
|
9
|
+
onChange?: (widgetType: string) => mixed,
|
|
10
|
+
|};
|
|
11
|
+
declare class WidgetSelect extends React.Component<WidgetSelectProps> {
|
|
12
|
+
shouldComponentUpdate(): boolean;
|
|
13
|
+
handleChange: (e: SyntheticEvent<HTMLSelectElement>) => void;
|
|
14
|
+
render(): React.Node;
|
|
15
|
+
}
|
|
16
|
+
declare export default typeof WidgetSelect;
|