@khanacademy/perseus 43.1.0 → 45.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/dist/all-widgets.d.ts +2 -23
- package/dist/basic-widgets.d.ts +2 -23
- package/dist/components/graph.d.ts +1 -0
- package/dist/components/icon.d.ts +0 -1
- package/dist/components/multi-button-group.d.ts +1 -0
- package/dist/components/tooltip.d.ts +1 -0
- package/dist/es/index.js +276 -212
- package/dist/es/index.js.map +1 -1
- package/dist/es/strings.js +4 -2
- package/dist/es/strings.js.map +1 -1
- package/dist/extra-widgets.d.ts +2 -23
- package/dist/index.d.ts +4 -2
- package/dist/index.js +273 -205
- package/dist/index.js.map +1 -1
- package/dist/interactive2/interactive-util.d.ts +1 -1
- package/dist/interactive2/movable-point-options.d.ts +2 -2
- package/dist/interactive2/movable-point.d.ts +7 -7
- package/dist/interactive2/objective_.d.ts +1 -1
- package/dist/jipt-paragraphs.d.ts +2 -2
- package/dist/perseus-api.d.ts +2 -77
- package/dist/perseus-types.d.ts +3 -10
- package/dist/renderer-util.d.ts +4 -2
- package/dist/renderer.d.ts +6 -10
- package/dist/server-item-renderer.d.ts +58 -50
- package/dist/strings.d.ts +1 -0
- package/dist/strings.js +4 -2
- package/dist/strings.js.map +1 -1
- package/dist/styles/global-styles.d.ts +0 -1
- package/dist/styles/shared.d.ts +0 -1
- package/dist/traversal.d.ts +1 -1
- package/dist/types.d.ts +5 -0
- package/dist/util/a11y.d.ts +0 -1
- package/dist/util/debounce.d.ts +1 -1
- package/dist/util/parse-perseus-json/perseus-parsers/graded-group-widget.d.ts +2 -2
- package/dist/widgets/definition/definition.d.ts +1 -1
- package/dist/widgets/deprecated-standin/deprecated-standin.d.ts +1 -1
- package/dist/widgets/dropdown/dropdown.d.ts +9 -1
- package/dist/widgets/explanation/explanation.d.ts +1 -1
- package/dist/widgets/expression/expression.d.ts +92 -217
- package/dist/widgets/group/group.d.ts +1 -1
- package/dist/widgets/image/image.d.ts +1 -1
- package/dist/widgets/interaction/interaction.d.ts +1 -1
- package/dist/widgets/interactive-graphs/graphs/quadratic.d.ts +1 -1
- package/dist/widgets/label-image/answer-pill.d.ts +0 -1
- package/dist/widgets/label-image/label-image.d.ts +5 -65
- package/dist/widgets/label-image/marker.d.ts +0 -1
- package/dist/widgets/measurer/measurer.d.ts +1 -1
- package/dist/widgets/molecule/molecule.d.ts +1 -1
- package/dist/widgets/passage/passage-markdown.d.ts +2 -2
- package/dist/widgets/passage/passage.d.ts +1 -1
- package/dist/widgets/passage-ref/passage-ref.d.ts +1 -1
- package/dist/widgets/passage-ref-target/passage-ref-target.d.ts +1 -1
- package/dist/widgets/radio/choice-icon/shared-styles.d.ts +0 -1
- package/dist/widgets/radio/choice-none-above.d.ts +1 -1
- package/dist/widgets/radio/radio.d.ts +2 -2
- package/dist/widgets/video/video.d.ts +1 -1
- package/package.json +2 -2
|
@@ -14,7 +14,7 @@ declare const InteractiveUtil: {
|
|
|
14
14
|
/**
|
|
15
15
|
* Turn a function or an array of functions into an array of functions
|
|
16
16
|
*/
|
|
17
|
-
readonly arrayify: (funcOrArray: ((...args: ReadonlyArray<unknown>) => unknown) |
|
|
17
|
+
readonly arrayify: (funcOrArray: ((...args: ReadonlyArray<unknown>) => unknown) | ReadonlyArray<unknown>) => ReadonlyArray<unknown>;
|
|
18
18
|
/**
|
|
19
19
|
* Convert all function-or-array arguments to arrays of functions
|
|
20
20
|
*/
|
|
@@ -19,8 +19,8 @@ declare const _default: {
|
|
|
19
19
|
};
|
|
20
20
|
constraints: {
|
|
21
21
|
readonly fixed: () => Constraint;
|
|
22
|
-
readonly snap: (snap?: number | null
|
|
23
|
-
readonly bound: (range?: [Interval, Interval]
|
|
22
|
+
readonly snap: (snap?: number | null) => Constraint;
|
|
23
|
+
readonly bound: (range?: [Interval, Interval], snap?: Coord | number, optionalPaddingPx?: number) => Constraint;
|
|
24
24
|
};
|
|
25
25
|
onMove: {
|
|
26
26
|
standard: null;
|
|
@@ -66,14 +66,14 @@ export declare class MovablePoint {
|
|
|
66
66
|
onMove: ((coord: Coord, prevCoord: Coord) => void)[];
|
|
67
67
|
onMoveEnd: unknown[];
|
|
68
68
|
onMoveStart: unknown[];
|
|
69
|
-
onRemove?: (
|
|
69
|
+
onRemove?: () => void;
|
|
70
70
|
outOfBounds: boolean;
|
|
71
71
|
pointSize: number;
|
|
72
72
|
remove: (() => void)[];
|
|
73
73
|
shadow: boolean;
|
|
74
74
|
static: boolean;
|
|
75
75
|
tooltip: boolean;
|
|
76
|
-
touchOffset:
|
|
76
|
+
touchOffset: null | Coord;
|
|
77
77
|
mouseTarget: unknown;
|
|
78
78
|
visibleShape: {
|
|
79
79
|
wrapper: HTMLElement;
|
|
@@ -82,9 +82,9 @@ export declare class MovablePoint {
|
|
|
82
82
|
};
|
|
83
83
|
normalStyle: Record<string, any>;
|
|
84
84
|
highlightStyle: Record<string, any>;
|
|
85
|
-
isHovering?: boolean
|
|
86
|
-
isMouseOver?: boolean
|
|
87
|
-
isDragging?: boolean
|
|
85
|
+
isHovering?: boolean;
|
|
86
|
+
isMouseOver?: boolean;
|
|
87
|
+
isDragging?: boolean;
|
|
88
88
|
};
|
|
89
89
|
update(options: Partial<State>): void;
|
|
90
90
|
draw(): void;
|
|
@@ -179,8 +179,8 @@ export declare class MovablePoint {
|
|
|
179
179
|
};
|
|
180
180
|
static constraints: {
|
|
181
181
|
readonly fixed: () => Constraint;
|
|
182
|
-
readonly snap: (snap?: number | null
|
|
183
|
-
readonly bound: (range?: [import("../util/interval").Interval, import("../util/interval").Interval]
|
|
182
|
+
readonly snap: (snap?: number | null) => Constraint;
|
|
183
|
+
readonly bound: (range?: [import("../util/interval").Interval, import("../util/interval").Interval], snap?: Coord | number, optionalPaddingPx?: number) => Constraint;
|
|
184
184
|
};
|
|
185
185
|
static onMove: {
|
|
186
186
|
standard: null;
|
|
@@ -8,6 +8,6 @@
|
|
|
8
8
|
declare const _default: {
|
|
9
9
|
pluck: (table: any, subKey: string) => any;
|
|
10
10
|
mapObject: <K extends string, V, U>(obj: Record<K, V>, lambda: (arg1: V, arg2: K) => U) => Record<K, U>;
|
|
11
|
-
mapObjectFromArray: <
|
|
11
|
+
mapObjectFromArray: <K extends string, V>(arr: ReadonlyArray<K>, lambda: (arg1: K) => V) => Record<K, V>;
|
|
12
12
|
};
|
|
13
13
|
export default _default;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Paragraph parsing/splitting for article jipt i18n
|
|
3
3
|
*/
|
|
4
4
|
declare const _default: {
|
|
5
|
-
parseToArray: (source: string) => string
|
|
6
|
-
joinFromArray: (paragraphs:
|
|
5
|
+
parseToArray: (source: string) => Array<string>;
|
|
6
|
+
joinFromArray: (paragraphs: ReadonlyArray<string>) => string;
|
|
7
7
|
};
|
|
8
8
|
export default _default;
|
package/dist/perseus-api.d.ts
CHANGED
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
* semantic meaning across the same perseus api major version.
|
|
29
29
|
*/
|
|
30
30
|
import PropTypes from "prop-types";
|
|
31
|
-
import
|
|
31
|
+
import type { APIOptionsWithDefaults } from "./types";
|
|
32
32
|
export declare const ApiOptions: {
|
|
33
33
|
readonly propTypes: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
|
|
34
34
|
isArticle: PropTypes.Validator<boolean>;
|
|
@@ -56,82 +56,7 @@ export declare const ApiOptions: {
|
|
|
56
56
|
crossOutEnabled: PropTypes.Requireable<boolean>;
|
|
57
57
|
editorChangeDelay: PropTypes.Requireable<number>;
|
|
58
58
|
}>>>;
|
|
59
|
-
readonly defaults:
|
|
60
|
-
isArticle?: boolean | undefined;
|
|
61
|
-
onFocusChange?: ((newFocusPath: import("./types").FocusPath, oldFocusPath: import("./types").FocusPath, keypadHeight?: number | undefined, focusedElement?: HTMLElement | undefined) => unknown) | undefined;
|
|
62
|
-
GroupMetadataEditor?: React.ComponentType<any> | undefined;
|
|
63
|
-
showAlignmentOptions?: boolean | undefined;
|
|
64
|
-
readOnly?: boolean | undefined;
|
|
65
|
-
answerableCallback?: ((arg1: boolean) => unknown) | undefined;
|
|
66
|
-
getAnotherHint?: (() => unknown) | undefined;
|
|
67
|
-
interactionCallback?: ((widgetData: {
|
|
68
|
-
[widgetId: string]: any;
|
|
69
|
-
}) => void) | undefined;
|
|
70
|
-
groupAnnotator?: ((groupNumber: number, widgetId: string) => React.ReactNode) | undefined;
|
|
71
|
-
imagePlaceholder?: React.ReactNode;
|
|
72
|
-
widgetPlaceholder?: React.ReactNode;
|
|
73
|
-
baseElements?: {
|
|
74
|
-
Link: React.ComponentType<any>;
|
|
75
|
-
} | undefined;
|
|
76
|
-
imagePreloader?: ((dimensions: import("./types").Dimensions) => React.ReactNode) | undefined;
|
|
77
|
-
trackInteraction?: ((args: {
|
|
78
|
-
type: string;
|
|
79
|
-
id: string;
|
|
80
|
-
correct?: boolean | undefined;
|
|
81
|
-
} & Partial<import("./types").TrackingGradedGroupExtraArguments> & Partial<{
|
|
82
|
-
visible: number;
|
|
83
|
-
}>) => void) | undefined;
|
|
84
|
-
customKeypad?: boolean | undefined;
|
|
85
|
-
nativeKeypadProxy?: ((blur: () => void) => import("@khanacademy/math-input").KeypadAPI) | undefined;
|
|
86
|
-
isMobile?: boolean | undefined;
|
|
87
|
-
setDrawingAreaAvailable?: ((arg1: boolean) => unknown) | undefined;
|
|
88
|
-
hintProgressColor?: string | undefined;
|
|
89
|
-
canScrollPage?: boolean | undefined;
|
|
90
|
-
crossOutEnabled?: boolean | undefined;
|
|
91
|
-
editorChangeDelay?: number | undefined;
|
|
92
|
-
flags?: {
|
|
93
|
-
mafs?: false | ({
|
|
94
|
-
none?: boolean | undefined;
|
|
95
|
-
linear?: boolean | undefined;
|
|
96
|
-
circle?: boolean | undefined;
|
|
97
|
-
polygon?: boolean | undefined;
|
|
98
|
-
point?: boolean | undefined;
|
|
99
|
-
quadratic?: boolean | undefined;
|
|
100
|
-
sinusoid?: boolean | undefined;
|
|
101
|
-
angle?: boolean | undefined;
|
|
102
|
-
"linear-system"?: boolean | undefined;
|
|
103
|
-
ray?: boolean | undefined;
|
|
104
|
-
segment?: boolean | undefined;
|
|
105
|
-
"unlimited-polygon"?: boolean | undefined;
|
|
106
|
-
"unlimited-point"?: boolean | undefined;
|
|
107
|
-
} & {
|
|
108
|
-
"interactive-graph-locked-features-labels"?: boolean | undefined;
|
|
109
|
-
"locked-figures-aria"?: boolean | undefined;
|
|
110
|
-
"locked-point-labels"?: boolean | undefined;
|
|
111
|
-
"locked-line-labels"?: boolean | undefined;
|
|
112
|
-
"locked-vector-labels"?: boolean | undefined;
|
|
113
|
-
"locked-ellipse-labels"?: boolean | undefined;
|
|
114
|
-
"locked-polygon-labels"?: boolean | undefined;
|
|
115
|
-
"locked-function-labels"?: boolean | undefined;
|
|
116
|
-
}) | undefined;
|
|
117
|
-
} | undefined;
|
|
118
|
-
onWidgetStartProps?: ((widgets: import("./perseus-types").PerseusWidgetsMap) => void) | undefined;
|
|
119
|
-
}> & {
|
|
120
|
-
GroupMetadataEditor: NonNullable<React.ComponentType<any> | undefined>;
|
|
121
|
-
baseElements: {
|
|
122
|
-
Link: React.ComponentType<any>;
|
|
123
|
-
};
|
|
124
|
-
canScrollPage: NonNullable<boolean | undefined>;
|
|
125
|
-
crossOutEnabled: NonNullable<boolean | undefined>;
|
|
126
|
-
editorChangeDelay: number;
|
|
127
|
-
groupAnnotator: (groupNumber: number, widgetId: string) => React.ReactNode;
|
|
128
|
-
isArticle: NonNullable<boolean | undefined>;
|
|
129
|
-
isMobile: NonNullable<boolean | undefined>;
|
|
130
|
-
onFocusChange: (newFocusPath: import("./types").FocusPath, oldFocusPath: import("./types").FocusPath, keypadHeight?: number | undefined, focusedElement?: HTMLElement | undefined) => unknown;
|
|
131
|
-
readOnly: NonNullable<boolean | undefined>;
|
|
132
|
-
setDrawingAreaAvailable: (arg1: boolean) => unknown;
|
|
133
|
-
showAlignmentOptions: NonNullable<boolean | undefined>;
|
|
134
|
-
}>;
|
|
59
|
+
readonly defaults: APIOptionsWithDefaults;
|
|
135
60
|
};
|
|
136
61
|
export declare const ClassNames: {
|
|
137
62
|
readonly RENDERER: "perseus-renderer";
|
package/dist/perseus-types.d.ts
CHANGED
|
@@ -207,14 +207,13 @@ export type PerseusDropdownWidgetOptions = {
|
|
|
207
207
|
choices: ReadonlyArray<PerseusDropdownChoice>;
|
|
208
208
|
placeholder: string;
|
|
209
209
|
static: boolean;
|
|
210
|
+
visibleLabel?: string;
|
|
211
|
+
ariaLabel?: string;
|
|
210
212
|
};
|
|
211
213
|
export type PerseusDropdownChoice = {
|
|
212
214
|
content: string;
|
|
213
215
|
correct: boolean;
|
|
214
216
|
};
|
|
215
|
-
export type PerseusExampleWidgetOptions = {
|
|
216
|
-
value: string;
|
|
217
|
-
};
|
|
218
217
|
export type PerseusExplanationWidgetOptions = {
|
|
219
218
|
showPrompt: string;
|
|
220
219
|
hidePrompt: string;
|
|
@@ -905,11 +904,5 @@ export type PerseusMoleculeRendererWidgetOptions = {
|
|
|
905
904
|
export type PerseusPassageRefTargetWidgetOptions = {
|
|
906
905
|
content: string;
|
|
907
906
|
};
|
|
908
|
-
export type
|
|
909
|
-
value: string;
|
|
910
|
-
};
|
|
911
|
-
type PerseusUnitInputWidgetOptions = {
|
|
912
|
-
value: string;
|
|
913
|
-
};
|
|
914
|
-
export type PerseusWidgetOptions = PerseusCategorizerWidgetOptions | PerseusCSProgramWidgetOptions | PerseusDefinitionWidgetOptions | PerseusDropdownWidgetOptions | PerseusExampleWidgetOptions | PerseusExplanationWidgetOptions | PerseusExpressionWidgetOptions | PerseusGradedGroupSetWidgetOptions | PerseusGradedGroupWidgetOptions | PerseusIFrameWidgetOptions | PerseusImageWidgetOptions | PerseusInputNumberWidgetOptions | PerseusInteractionWidgetOptions | PerseusInteractiveGraphWidgetOptions | PerseusLabelImageWidgetOptions | PerseusMatcherWidgetOptions | PerseusMatrixWidgetOptions | PerseusMeasurerWidgetOptions | PerseusMoleculeRendererWidgetOptions | PerseusNumberLineWidgetOptions | PerseusNumericInputWidgetOptions | PerseusOrdererWidgetOptions | PerseusPassageRefTargetWidgetOptions | PerseusPassageRefWidgetOptions | PerseusPassageWidgetOptions | PerseusPhetSimulationWidgetOptions | PerseusPlotterWidgetOptions | PerseusRadioWidgetOptions | PerseusSimpleMarkdownTesterWidgetOptions | PerseusSorterWidgetOptions | PerseusTableWidgetOptions | PerseusUnitInputWidgetOptions | PerseusVideoWidgetOptions;
|
|
907
|
+
export type PerseusWidgetOptions = PerseusCategorizerWidgetOptions | PerseusCSProgramWidgetOptions | PerseusDefinitionWidgetOptions | PerseusDropdownWidgetOptions | PerseusExplanationWidgetOptions | PerseusExpressionWidgetOptions | PerseusGradedGroupSetWidgetOptions | PerseusGradedGroupWidgetOptions | PerseusIFrameWidgetOptions | PerseusImageWidgetOptions | PerseusInputNumberWidgetOptions | PerseusInteractionWidgetOptions | PerseusInteractiveGraphWidgetOptions | PerseusLabelImageWidgetOptions | PerseusMatcherWidgetOptions | PerseusMatrixWidgetOptions | PerseusMeasurerWidgetOptions | PerseusMoleculeRendererWidgetOptions | PerseusNumberLineWidgetOptions | PerseusNumericInputWidgetOptions | PerseusOrdererWidgetOptions | PerseusPassageRefTargetWidgetOptions | PerseusPassageRefWidgetOptions | PerseusPassageWidgetOptions | PerseusPhetSimulationWidgetOptions | PerseusPlotterWidgetOptions | PerseusRadioWidgetOptions | PerseusSorterWidgetOptions | PerseusTableWidgetOptions | PerseusVideoWidgetOptions;
|
|
915
908
|
export {};
|
package/dist/renderer-util.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import type { PerseusWidgetsMap } from "./perseus-types";
|
|
1
|
+
import type { PerseusRenderer, PerseusWidgetsMap } from "./perseus-types";
|
|
2
2
|
import type { PerseusStrings } from "./strings";
|
|
3
3
|
import type { PerseusScore } from "./types";
|
|
4
4
|
import type { UserInputMap } from "./validation.types";
|
|
5
|
+
export declare function getUpgradedWidgetOptions(oldWidgetOptions: PerseusWidgetsMap): PerseusWidgetsMap;
|
|
5
6
|
export declare function emptyWidgetsFunctional(widgets: PerseusWidgetsMap, widgetIds: Array<string>, userInputMap: UserInputMap, strings: PerseusStrings, locale: string): ReadonlyArray<string>;
|
|
6
|
-
export declare function
|
|
7
|
+
export declare function scorePerseusItem(perseusRenderData: PerseusRenderer, userInputMap: UserInputMap, strings: PerseusStrings, locale: string): PerseusScore;
|
|
8
|
+
export declare function scoreWidgetsFunctional(widgets: PerseusWidgetsMap, widgetIds: ReadonlyArray<string>, userInputMap: UserInputMap, strings: PerseusStrings, locale: string): {
|
|
7
9
|
[widgetId: string]: PerseusScore;
|
|
8
10
|
};
|
package/dist/renderer.d.ts
CHANGED
|
@@ -103,7 +103,6 @@ declare class Renderer extends React.Component<Props, State> implements GetPromp
|
|
|
103
103
|
widgetInfo: State["widgetInfo"];
|
|
104
104
|
widgetProps: State["widgetProps"];
|
|
105
105
|
};
|
|
106
|
-
_getAllWidgetsInfo: (props: Props) => PerseusWidgetsMap;
|
|
107
106
|
_getAllWidgetsStartProps: (allWidgetInfo: PerseusWidgetsMap, props: Props) => PerseusWidgetsMap;
|
|
108
107
|
_getDefaultWidgetInfo: (widgetId: string) => any;
|
|
109
108
|
_getWidgetInfo: (widgetId: string) => PerseusWidget;
|
|
@@ -218,18 +217,15 @@ declare class Renderer extends React.Component<Props, State> implements GetPromp
|
|
|
218
217
|
*/
|
|
219
218
|
getPromptJSON(): RendererPromptJSON;
|
|
220
219
|
/**
|
|
221
|
-
*
|
|
222
|
-
*
|
|
223
|
-
*
|
|
220
|
+
* Scores the content.
|
|
221
|
+
*
|
|
222
|
+
* @deprecated use scorePerseusItem
|
|
224
223
|
*/
|
|
225
|
-
|
|
226
|
-
[widgetId: string]: PerseusScore;
|
|
227
|
-
};
|
|
224
|
+
score(): PerseusScore;
|
|
228
225
|
/**
|
|
229
|
-
*
|
|
226
|
+
* @deprecated use scorePerseusItem
|
|
230
227
|
*/
|
|
231
|
-
|
|
232
|
-
guessAndScore(): [UserInputArray, PerseusScore];
|
|
228
|
+
guessAndScore: () => [UserInputArray, PerseusScore];
|
|
233
229
|
examples: () => ReadonlyArray<string> | null | undefined;
|
|
234
230
|
handletranslationLintErrors: (lintErrors: ReadonlyArray<string>) => void;
|
|
235
231
|
render(): React.ReactNode;
|
|
@@ -12,12 +12,14 @@ import { PerseusI18nContext } from "./components/i18n-context";
|
|
|
12
12
|
import Renderer from "./renderer";
|
|
13
13
|
import type { PerseusItem, ShowSolutions } from "./perseus-types";
|
|
14
14
|
import type { FocusPath, PerseusDependenciesV2, SharedRendererProps } from "./types";
|
|
15
|
+
import type { UserInputArray, UserInputMap } from "./validation.types";
|
|
15
16
|
import type { GetPromptJSONInterface, RendererPromptJSON } from "./widget-ai-utils/prompt-types";
|
|
16
17
|
import type { KeypadAPI } from "@khanacademy/math-input";
|
|
17
18
|
import type { KeypadContextRendererInterface, RendererInterface, KEScore } from "@khanacademy/perseus-core";
|
|
18
19
|
type OwnProps = {
|
|
19
20
|
hintsVisible?: number;
|
|
20
21
|
item: PerseusItem;
|
|
22
|
+
score?: KEScore | null;
|
|
21
23
|
problemNum?: number;
|
|
22
24
|
reviewMode?: boolean;
|
|
23
25
|
keypadElement?: KeypadAPI | null | undefined;
|
|
@@ -30,8 +32,23 @@ type HOCProps = {
|
|
|
30
32
|
type Props = SharedRendererProps & OwnProps & HOCProps;
|
|
31
33
|
type DefaultProps = Required<Pick<Props, "apiOptions" | "onRendered" | "linterContext">>;
|
|
32
34
|
type State = {
|
|
35
|
+
/**
|
|
36
|
+
* questionCompleted is used to signal that a learner has attempted
|
|
37
|
+
* the exercise. This is used when widgets want to show things like
|
|
38
|
+
* rationale or partial correctness.
|
|
39
|
+
*/
|
|
33
40
|
questionCompleted: boolean;
|
|
34
|
-
|
|
41
|
+
/**
|
|
42
|
+
* As far as I can tell, this is used to highlight empty widgets
|
|
43
|
+
* after a learner has clicked the "check" button. I don't think this could
|
|
44
|
+
* still be used though, because the "check" button is disabled while there
|
|
45
|
+
* are empty widgets.
|
|
46
|
+
*/
|
|
47
|
+
questionHighlightedWidgets: ReadonlyArray<string>;
|
|
48
|
+
/**
|
|
49
|
+
* Keeps track of whether each asset (SvgImage or TeX) rendered by
|
|
50
|
+
* the questionRenderer has finished loading or rendering.
|
|
51
|
+
*/
|
|
35
52
|
assetStatuses: {
|
|
36
53
|
[assetKey: string]: boolean;
|
|
37
54
|
};
|
|
@@ -76,8 +93,22 @@ export declare class ServerItemRenderer extends React.Component<Props, State> im
|
|
|
76
93
|
blur(): void;
|
|
77
94
|
getNumHints(): number;
|
|
78
95
|
getPromptJSON(): RendererPromptJSON;
|
|
96
|
+
/**
|
|
97
|
+
* Returns an array of the widget `.getUserInput()` results
|
|
98
|
+
*
|
|
99
|
+
* TODO: can we remove this? Seems to be just for backwards
|
|
100
|
+
* compatibility with old Perseus Chrome logging
|
|
101
|
+
* @deprecated use getUserInput
|
|
102
|
+
*/
|
|
103
|
+
getUserInputLegacy(): UserInputArray;
|
|
104
|
+
/**
|
|
105
|
+
* Returns an object of the widget `.getUserInput()` results
|
|
106
|
+
*/
|
|
107
|
+
getUserInput(): UserInputMap;
|
|
79
108
|
/**
|
|
80
109
|
* Grades the item.
|
|
110
|
+
*
|
|
111
|
+
* @deprecated use scorePerseusItem
|
|
81
112
|
*/
|
|
82
113
|
scoreInput(): KEScore;
|
|
83
114
|
/**
|
|
@@ -97,65 +128,42 @@ export declare class ServerItemRenderer extends React.Component<Props, State> im
|
|
|
97
128
|
}
|
|
98
129
|
declare const ref: React.ForwardRefExoticComponent<Omit<Pick<SharedRendererProps & OwnProps & HOCProps, keyof OwnProps> & {
|
|
99
130
|
apiOptions?: Readonly<{
|
|
100
|
-
isArticle?: boolean
|
|
101
|
-
onFocusChange?: (
|
|
102
|
-
GroupMetadataEditor?: React.ComponentType<any
|
|
103
|
-
showAlignmentOptions?: boolean
|
|
104
|
-
readOnly?: boolean
|
|
105
|
-
answerableCallback?: (
|
|
106
|
-
getAnotherHint?: (
|
|
107
|
-
interactionCallback?: (
|
|
131
|
+
isArticle?: boolean;
|
|
132
|
+
onFocusChange?: (newFocusPath: FocusPath, oldFocusPath: FocusPath, keypadHeight?: number, focusedElement?: HTMLElement) => unknown;
|
|
133
|
+
GroupMetadataEditor?: React.ComponentType<any>;
|
|
134
|
+
showAlignmentOptions?: boolean;
|
|
135
|
+
readOnly?: boolean;
|
|
136
|
+
answerableCallback?: (arg1: boolean) => unknown;
|
|
137
|
+
getAnotherHint?: () => unknown;
|
|
138
|
+
interactionCallback?: (widgetData: {
|
|
108
139
|
[widgetId: string]: any;
|
|
109
|
-
}) => void
|
|
110
|
-
groupAnnotator?: (
|
|
140
|
+
}) => void;
|
|
141
|
+
groupAnnotator?: (groupNumber: number, widgetId: string) => React.ReactNode;
|
|
111
142
|
imagePlaceholder?: React.ReactNode;
|
|
112
143
|
widgetPlaceholder?: React.ReactNode;
|
|
113
144
|
baseElements?: {
|
|
114
145
|
Link: React.ComponentType<any>;
|
|
115
|
-
}
|
|
116
|
-
imagePreloader?: (
|
|
117
|
-
trackInteraction?: (
|
|
146
|
+
};
|
|
147
|
+
imagePreloader?: (dimensions: import("./types").Dimensions) => React.ReactNode;
|
|
148
|
+
trackInteraction?: (args: {
|
|
118
149
|
type: string;
|
|
119
150
|
id: string;
|
|
120
|
-
correct?: boolean
|
|
151
|
+
correct?: boolean;
|
|
121
152
|
} & Partial<import("./types").TrackingGradedGroupExtraArguments> & Partial<{
|
|
122
153
|
visible: number;
|
|
123
|
-
}>) => void
|
|
124
|
-
customKeypad?: boolean
|
|
125
|
-
nativeKeypadProxy?: (
|
|
126
|
-
isMobile?: boolean
|
|
127
|
-
setDrawingAreaAvailable?: (
|
|
128
|
-
hintProgressColor?: string
|
|
129
|
-
canScrollPage?: boolean
|
|
130
|
-
crossOutEnabled?: boolean
|
|
131
|
-
editorChangeDelay?: number
|
|
154
|
+
}>) => void;
|
|
155
|
+
customKeypad?: boolean;
|
|
156
|
+
nativeKeypadProxy?: (blur: () => void) => KeypadAPI;
|
|
157
|
+
isMobile?: boolean;
|
|
158
|
+
setDrawingAreaAvailable?: (arg1: boolean) => unknown;
|
|
159
|
+
hintProgressColor?: string;
|
|
160
|
+
canScrollPage?: boolean;
|
|
161
|
+
crossOutEnabled?: boolean;
|
|
162
|
+
editorChangeDelay?: number;
|
|
132
163
|
flags?: {
|
|
133
|
-
mafs?: false | ({
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
circle?: boolean | undefined;
|
|
137
|
-
polygon?: boolean | undefined;
|
|
138
|
-
point?: boolean | undefined;
|
|
139
|
-
quadratic?: boolean | undefined;
|
|
140
|
-
sinusoid?: boolean | undefined;
|
|
141
|
-
angle?: boolean | undefined;
|
|
142
|
-
"linear-system"?: boolean | undefined;
|
|
143
|
-
ray?: boolean | undefined;
|
|
144
|
-
segment?: boolean | undefined;
|
|
145
|
-
"unlimited-polygon"?: boolean | undefined;
|
|
146
|
-
"unlimited-point"?: boolean | undefined;
|
|
147
|
-
} & {
|
|
148
|
-
"interactive-graph-locked-features-labels"?: boolean | undefined;
|
|
149
|
-
"locked-figures-aria"?: boolean | undefined;
|
|
150
|
-
"locked-point-labels"?: boolean | undefined;
|
|
151
|
-
"locked-line-labels"?: boolean | undefined;
|
|
152
|
-
"locked-vector-labels"?: boolean | undefined;
|
|
153
|
-
"locked-ellipse-labels"?: boolean | undefined;
|
|
154
|
-
"locked-polygon-labels"?: boolean | undefined;
|
|
155
|
-
"locked-function-labels"?: boolean | undefined;
|
|
156
|
-
}) | undefined;
|
|
157
|
-
} | undefined;
|
|
158
|
-
onWidgetStartProps?: ((widgets: import("./perseus-types").PerseusWidgetsMap) => void) | undefined;
|
|
164
|
+
mafs?: false | ({ [Key in typeof import("./types").MafsGraphTypeFlags[number]]?: boolean; } & { [Key in typeof import("./types").InteractiveGraphLockedFeaturesFlags[number]]?: boolean; });
|
|
165
|
+
};
|
|
166
|
+
onWidgetStartProps?: (widgets: import("./perseus-types").PerseusWidgetsMap) => void;
|
|
159
167
|
}> | undefined;
|
|
160
168
|
linterContext?: PerseusLinter.LinterContextProps | undefined;
|
|
161
169
|
onRendered?: ((isRendered: boolean) => void) | undefined;
|
package/dist/strings.d.ts
CHANGED
package/dist/strings.js
CHANGED
|
@@ -159,7 +159,8 @@ const strings = {
|
|
|
159
159
|
srPointAtCoordinates: {
|
|
160
160
|
context: "Screenreader-accessible description of a point on a graph",
|
|
161
161
|
message: "Point %(num)s at %(x)s comma %(y)s"
|
|
162
|
-
}
|
|
162
|
+
},
|
|
163
|
+
selectAnAnswer: "Select an answer"
|
|
163
164
|
};
|
|
164
165
|
|
|
165
166
|
/**
|
|
@@ -438,7 +439,8 @@ const mockStrings = {
|
|
|
438
439
|
} = _ref28;
|
|
439
440
|
return `Interactive elements: ${elements}`;
|
|
440
441
|
},
|
|
441
|
-
srNoInteractiveElements: "No interactive elements"
|
|
442
|
+
srNoInteractiveElements: "No interactive elements",
|
|
443
|
+
selectAnAnswer: "Select an answer"
|
|
442
444
|
};
|
|
443
445
|
|
|
444
446
|
exports.mockStrings = mockStrings;
|