@khanacademy/perseus 27.2.0 → 28.1.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/components/image-loader.d.ts +2 -2
- package/dist/components/{info-tip.d.ts → info-tip/index.d.ts} +2 -2
- package/dist/components/info-tip/info-tip-base.d.ts +6 -0
- package/dist/components.d.ts +0 -1
- package/dist/es/index.js +452 -362
- package/dist/es/index.js.map +1 -1
- package/dist/es/strings.js +6 -2
- package/dist/es/strings.js.map +1 -1
- package/dist/hints-renderer.d.ts +2 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.js +438 -348
- package/dist/index.js.map +1 -1
- package/dist/interactive2/movable-point.d.ts +3 -3
- package/dist/perseus-api.d.ts +3 -0
- package/dist/perseus-types.d.ts +10 -6
- package/dist/renderer.d.ts +2 -1
- package/dist/server-item-renderer.d.ts +3 -0
- package/dist/strings.d.ts +2 -0
- package/dist/strings.js +6 -2
- package/dist/strings.js.map +1 -1
- package/dist/types.d.ts +7 -7
- package/dist/util/{katex-preprocess.d.ts → tex-preprocess.d.ts} +1 -1
- package/dist/widgets/expression.d.ts +20 -2
- package/dist/widgets/interactive-graphs/graphs/angle.d.ts +7 -0
- package/dist/widgets/interactive-graphs/graphs/components/angle-indicators.d.ts +0 -2
- package/dist/widgets/interactive-graphs/graphs/components/movable-point.d.ts +3 -2
- package/dist/widgets/interactive-graphs/graphs/polygon.d.ts +1 -0
- package/dist/widgets/interactive-graphs/graphs/use-draggable.d.ts +7 -1
- package/dist/widgets/interactive-graphs/locked-figures/locked-function.d.ts +1 -1
- package/dist/widgets/interactive-graphs/mafs-graph.d.ts +1 -0
- package/dist/widgets/interactive-graphs/math/geometry.d.ts +2 -1
- package/dist/widgets/interactive-graphs/reducer/initialize-graph-state.d.ts +8 -1
- package/dist/widgets/interactive-graphs/reducer/use-graph-config.d.ts +1 -1
- package/dist/widgets/interactive-graphs/stateful-mafs-graph.d.ts +1 -0
- package/dist/widgets/label-image.d.ts +6 -0
- package/package.json +8 -7
- package/dist/components/info-tip/info-tip.d.ts +0 -6
- package/dist/components/prop-check-box.d.ts +0 -4
|
@@ -103,9 +103,9 @@ export declare class MovablePoint {
|
|
|
103
103
|
* Displays a tooltip above the point, replacing any previous contents. If
|
|
104
104
|
* there is no tooltip initialized, adds the tooltip.
|
|
105
105
|
*
|
|
106
|
-
* If the type of contents is string, the contents will be rendered
|
|
107
|
-
*
|
|
108
|
-
*
|
|
106
|
+
* If the type of contents is string, the contents will be rendered as TeX
|
|
107
|
+
* Otherwise, the content will be assumed to be a DOM node and will be
|
|
108
|
+
* appended inside the tooltip.
|
|
109
109
|
*/
|
|
110
110
|
_showTooltip(contents: any): void;
|
|
111
111
|
_hideTooltip(): void;
|
package/dist/perseus-api.d.ts
CHANGED
|
@@ -108,6 +108,9 @@ export declare const ApiOptions: {
|
|
|
108
108
|
} & {
|
|
109
109
|
"start-coords-ui-phase-1"?: boolean | undefined;
|
|
110
110
|
"start-coords-ui-phase-2"?: boolean | undefined;
|
|
111
|
+
"start-coords-ui-point"?: boolean | undefined;
|
|
112
|
+
"start-coords-ui-polygon"?: boolean | undefined;
|
|
113
|
+
"start-coords-ui-angle"?: boolean | undefined;
|
|
111
114
|
}) | undefined;
|
|
112
115
|
} | undefined;
|
|
113
116
|
onWidgetStartProps?: ((widgets: import("./perseus-types").PerseusWidgetsMap) => void) | undefined;
|
package/dist/perseus-types.d.ts
CHANGED
|
@@ -77,7 +77,7 @@ export type PerseusWidgetsMap = {
|
|
|
77
77
|
};
|
|
78
78
|
export type PerseusItem = {
|
|
79
79
|
question: PerseusRenderer;
|
|
80
|
-
hints: ReadonlyArray<
|
|
80
|
+
hints: ReadonlyArray<Hint>;
|
|
81
81
|
answerArea: PerseusAnswerArea | null | undefined;
|
|
82
82
|
_multi: any;
|
|
83
83
|
itemDataVersion: Version;
|
|
@@ -91,12 +91,19 @@ export type Version = {
|
|
|
91
91
|
export type PerseusRenderer = {
|
|
92
92
|
content: string;
|
|
93
93
|
widgets: PerseusWidgetsMap;
|
|
94
|
-
replace?: boolean;
|
|
95
94
|
metadata?: ReadonlyArray<string>;
|
|
96
95
|
images: {
|
|
97
96
|
[key: string]: PerseusImageDetail;
|
|
98
97
|
};
|
|
99
98
|
};
|
|
99
|
+
export type Hint = PerseusRenderer & {
|
|
100
|
+
/**
|
|
101
|
+
* When `true`, causes the previous hint to be replaced with this hint when
|
|
102
|
+
* displayed. When `false`, the previous hint remains visible when this one
|
|
103
|
+
* is displayed. This allows for hints that build upon each other.
|
|
104
|
+
*/
|
|
105
|
+
replace?: boolean;
|
|
106
|
+
};
|
|
100
107
|
export type PerseusImageDetail = {
|
|
101
108
|
width: number;
|
|
102
109
|
height: number;
|
|
@@ -390,7 +397,7 @@ export type LockedVectorType = {
|
|
|
390
397
|
points: [tail: Coord, tip: Coord];
|
|
391
398
|
color: LockedFigureColor;
|
|
392
399
|
};
|
|
393
|
-
export type LockedFigureFillType = "none" | "
|
|
400
|
+
export type LockedFigureFillType = "none" | "white" | "translucent" | "solid";
|
|
394
401
|
export declare const lockedFigureFillStyles: Record<LockedFigureFillType, number>;
|
|
395
402
|
export type LockedEllipseType = {
|
|
396
403
|
type: "ellipse";
|
|
@@ -414,9 +421,6 @@ export type LockedFunctionType = {
|
|
|
414
421
|
color: LockedFigureColor;
|
|
415
422
|
strokeStyle: "solid" | "dashed";
|
|
416
423
|
equation: string;
|
|
417
|
-
equationParsed?: {
|
|
418
|
-
[k: string]: any;
|
|
419
|
-
};
|
|
420
424
|
directionalAxis: "x" | "y";
|
|
421
425
|
domain?: Interval;
|
|
422
426
|
};
|
package/dist/renderer.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ import type { DependenciesContext } from "./dependencies";
|
|
|
6
6
|
import type { PerseusRenderer, PerseusWidget, PerseusWidgetOptions, PerseusWidgetsMap, ShowSolutions } from "./perseus-types";
|
|
7
7
|
import type { PerseusStrings } from "./strings";
|
|
8
8
|
import type { APIOptions, APIOptionsWithDefaults, FilterCriterion, FocusPath, PerseusScore, WidgetProps } from "./types";
|
|
9
|
+
import type { KeypadAPI } from "@khanacademy/math-input";
|
|
9
10
|
import type { LinterContextProps } from "@khanacademy/perseus-linter";
|
|
10
11
|
import "./styles/perseus-renderer.less";
|
|
11
12
|
type WidgetState = {
|
|
@@ -55,7 +56,7 @@ type Props = Partial<React.ContextType<typeof DependenciesContext>> & {
|
|
|
55
56
|
findExternalWidgets: any;
|
|
56
57
|
highlightedWidgets?: ReadonlyArray<any>;
|
|
57
58
|
images: PerseusRenderer["images"];
|
|
58
|
-
keypadElement?:
|
|
59
|
+
keypadElement?: KeypadAPI | null;
|
|
59
60
|
onInteractWithWidget: (id: string) => void;
|
|
60
61
|
onRender: (node?: any) => void;
|
|
61
62
|
problemNum?: number;
|
|
@@ -155,6 +155,9 @@ declare const ref: React.ForwardRefExoticComponent<Omit<Pick<OwnProps & HOCProps
|
|
|
155
155
|
} & {
|
|
156
156
|
"start-coords-ui-phase-1"?: boolean | undefined;
|
|
157
157
|
"start-coords-ui-phase-2"?: boolean | undefined;
|
|
158
|
+
"start-coords-ui-point"?: boolean | undefined;
|
|
159
|
+
"start-coords-ui-polygon"?: boolean | undefined;
|
|
160
|
+
"start-coords-ui-angle"?: boolean | undefined;
|
|
158
161
|
}) | undefined;
|
|
159
162
|
} | undefined;
|
|
160
163
|
onWidgetStartProps?: ((widgets: import("./perseus-types").PerseusWidgetsMap) => void) | undefined;
|
package/dist/strings.d.ts
CHANGED
|
@@ -170,6 +170,8 @@ export type PerseusStrings = {
|
|
|
170
170
|
videoTranscript: string;
|
|
171
171
|
somethingWrong: string;
|
|
172
172
|
videoWrapper: string;
|
|
173
|
+
mathInputTitle: string;
|
|
174
|
+
mathInputDescription: string;
|
|
173
175
|
};
|
|
174
176
|
/**
|
|
175
177
|
* Untranslated strings used in Perseus. To be used by an external
|
package/dist/strings.js
CHANGED
|
@@ -137,7 +137,9 @@ const strings = {
|
|
|
137
137
|
loading: "Loading...",
|
|
138
138
|
videoTranscript: "See video transcript",
|
|
139
139
|
somethingWrong: "Something went wrong.",
|
|
140
|
-
videoWrapper: "Khan Academy video wrapper"
|
|
140
|
+
videoWrapper: "Khan Academy video wrapper",
|
|
141
|
+
mathInputTitle: "mathematics keyboard",
|
|
142
|
+
mathInputDescription: "Use keyboard/mouse to interact with math-based input fields"
|
|
141
143
|
};
|
|
142
144
|
|
|
143
145
|
/**
|
|
@@ -389,7 +391,9 @@ const mockStrings = {
|
|
|
389
391
|
loading: "Loading...",
|
|
390
392
|
videoTranscript: "See video transcript",
|
|
391
393
|
somethingWrong: "Something went wrong.",
|
|
392
|
-
videoWrapper: "Khan Academy video wrapper"
|
|
394
|
+
videoWrapper: "Khan Academy video wrapper",
|
|
395
|
+
mathInputTitle: "mathematics keyboard",
|
|
396
|
+
mathInputDescription: "Use keyboard/mouse to interact with math-based input fields"
|
|
393
397
|
};
|
|
394
398
|
|
|
395
399
|
exports.mockStrings = mockStrings;
|
package/dist/strings.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"strings.js","sources":["../src/strings.ts"],"sourcesContent":["/**\n * The translated strings that are used to render Perseus.\n */\nexport type PerseusStrings = {\n closeKeypad: string;\n openKeypad: string;\n mathInputBox: string;\n removeHighlight: string;\n addHighlight: string;\n hintPos: ({pos}: {pos: number}) => string;\n errorRendering: ({error}: {error: string}) => string;\n APPROXIMATED_PI_ERROR: string;\n EXTRA_SYMBOLS_ERROR: string;\n NEEDS_TO_BE_SIMPLFIED_ERROR: string;\n MISSING_PERCENT_ERROR: string;\n MULTIPLICATION_SIGN_ERROR: string;\n WRONG_CASE_ERROR: string;\n WRONG_LETTER_ERROR: string;\n invalidSelection: string;\n ERROR_TITLE: string;\n ERROR_MESSAGE: string;\n hints: string;\n getAnotherHint: string;\n deprecatedStandin: string;\n keepTrying: string;\n tryAgain: string;\n check: string;\n correctExcited: string;\n nextQuestion: string;\n skipToTitle: ({title}: {title: string}) => string;\n current: string;\n correct: string;\n correctSelected: string;\n correctCrossedOut: string;\n incorrect: string;\n incorrectSelected: string;\n hideExplanation: string;\n explain: string;\n INVALID_MESSAGE_PREFIX: string;\n DEFAULT_INVALID_MESSAGE_1: string;\n DEFAULT_INVALID_MESSAGE_2: string;\n integerExample: string;\n properExample: string;\n simplifiedProperExample: string;\n improperExample: string;\n simplifiedImproperExample: string;\n mixedExample: string;\n decimalExample: string;\n percentExample: string;\n piExample: string;\n yourAnswer: string;\n yourAnswerLabel: string;\n addPoints: string;\n addVertices: string;\n tapMultiple: string;\n tapSingle: string;\n clickMultiple: string;\n clickSingle: string;\n choices: string;\n answers: ({num}: {num: number}) => string;\n hideAnswersToggleLabel: string;\n moves: ({num}: {num: number}) => string;\n clickTiles: string;\n turnOffLights: string;\n fillAllCells: string;\n molecularDrawing: ({content}: {content: string}) => string;\n switchDirection: string;\n circleOpen: string;\n circleFilled: string;\n numDivisions: string;\n divisions: ({divRangeString}: {divRangeString: string}) => string;\n lineRange: ({lineRange}: {lineRange: string}) => string;\n lineNumber: ({lineNumber}: {lineNumber: string}) => string;\n symbolPassage: ({\n questionSymbol,\n questionNumber,\n }: {\n questionSymbol: string;\n questionNumber: string;\n }) => string;\n symbolQuestion: ({sentenceSymbol}: {sentenceSymbol: string}) => string;\n lineLabel: string;\n beginningPassage: string;\n beginningFootnotes: string;\n endPassage: string;\n questionMarker: ({number}: {number: string}) => string;\n circleMarker: ({number}: {number: string}) => string;\n sentenceMarker: ({number}: {number: string}) => string;\n dragHandles: string;\n tapAddPoints: string;\n false: string;\n true: string;\n no: string;\n yes: string;\n chooseCorrectNum: string;\n notNoneOfTheAbove: string;\n noneOfTheAbove: string;\n chooseNumAnswers: ({numCorrect}: {numCorrect: string}) => string;\n chooseAllAnswers: string;\n chooseOneAnswer: string;\n choiceCheckedCorrect: ({letter}: {letter: string}) => string;\n choiceCrossedOutCorrect: ({letter}: {letter: string}) => string;\n choiceCorrect: ({letter}: {letter: string}) => string;\n choiceCheckedIncorrect: ({letter}: {letter: string}) => string;\n choiceCrossedOutIncorrect: ({letter}: {letter: string}) => string;\n choiceIncorrect: ({letter}: {letter: string}) => string;\n choiceChecked: ({letter}: {letter: string}) => string;\n choiceCrossedOut: ({letter}: {letter: string}) => string;\n choice: ({letter}: {letter: string}) => string;\n crossOut: string;\n crossOutOption: string;\n crossOutChoice: ({letter}: {letter: string}) => string;\n bringBack: string;\n openMenuForChoice: ({letter}: {letter: string}) => string;\n letters: string;\n rightArrow: string;\n dontUnderstandUnits: string;\n checkSigFigs: string;\n answerNumericallyIncorrect: string;\n checkUnits: string;\n dontUnderstand: string;\n loading: string;\n videoTranscript: string;\n somethingWrong: string;\n videoWrapper: string;\n};\n\n/**\n * Untranslated strings used in Perseus. To be used by an external\n * translator to produce translated strings, passed in as `PerseusStrings`.\n */\nexport const strings: {\n [key in keyof PerseusStrings]:\n | string\n | {context?: string; message: string}\n | {context?: string; one: string; other: string};\n} = {\n closeKeypad: \"close math keypad\",\n openKeypad: \"open math keypad\",\n mathInputBox: \"Math input box\",\n removeHighlight: \"Remove highlight\",\n addHighlight: \"Add highlight\",\n hintPos: \"Hint #%(pos)s\",\n errorRendering: \"Error rendering: %(error)s\",\n APPROXIMATED_PI_ERROR:\n \"Your answer is close, but you may \" +\n \"have approximated pi. Enter your \" +\n \"answer as a multiple of pi, like \" +\n \"<code>12\\\\ \\\\text{pi}</code> or \" +\n \"<code>2/3\\\\ \\\\text{pi}</code>\",\n EXTRA_SYMBOLS_ERROR:\n \"We could not understand your \" +\n \"answer. Please check your answer for extra \" +\n \"text or symbols.\",\n NEEDS_TO_BE_SIMPLFIED_ERROR:\n \"Your answer is almost correct, \" + \"but it needs to be simplified.\",\n MISSING_PERCENT_ERROR:\n \"Your answer is almost correct, \" +\n \"but it is missing a \" +\n \"<code>\\\\%</code> at the end.\",\n MULTIPLICATION_SIGN_ERROR:\n \"I'm a computer. I only understand \" +\n \"multiplication if you use an asterisk \" +\n \"(*) as the multiplication sign.\",\n WRONG_CASE_ERROR:\n \"Your answer includes use of a variable with the wrong case.\",\n WRONG_LETTER_ERROR: \"Your answer includes a wrong variable letter.\",\n invalidSelection: \"Make sure you select something for every row.\",\n ERROR_TITLE: \"Oops!\",\n ERROR_MESSAGE: \"Sorry, I don't understand that!\",\n hints: \"Hints\",\n getAnotherHint: \"Get another hint\",\n deprecatedStandin:\n \"Sorry, this part of the question is no longer available. 😅 Don't worry, you won't be graded on this part. Keep going!\",\n keepTrying: \"Keep trying\",\n tryAgain: \"Try again\",\n check: \"Check\",\n correctExcited: \"Correct!\",\n nextQuestion: \"Next question\",\n skipToTitle: \"Skip to %(title)s\",\n current: \"Current\",\n correct: \"Correct\",\n correctSelected: \"Correct (selected)\",\n correctCrossedOut: \"Correct (but you crossed it out)\",\n incorrect: \"Incorrect\",\n incorrectSelected: \"Incorrect (selected)\",\n hideExplanation: \"Hide explanation\",\n explain: \"Explain\",\n INVALID_MESSAGE_PREFIX: \"We couldn't grade your answer.\",\n DEFAULT_INVALID_MESSAGE_1: \"It looks like you left something blank or \",\n DEFAULT_INVALID_MESSAGE_2: \"entered in an invalid answer.\",\n integerExample: \"an integer, like $6$\",\n properExample: \"a *proper* fraction, like $1/2$ or $6/10$\",\n simplifiedProperExample: \"a *simplified proper* fraction, like $3/5$\",\n improperExample: \"an *improper* fraction, like $10/7$ or $14/8$\",\n simplifiedImproperExample: \"a *simplified improper* fraction, like $7/4$\",\n mixedExample: \"a mixed number, like $1\\\\ 3/4$\",\n decimalExample: \"an *exact* decimal, like $0.75$\",\n percentExample: \"a percent, like $12.34\\\\%$\",\n piExample: \"a multiple of pi, like $12\\\\ \\\\text{pi}$ or $2/3\\\\ \\\\text{pi}$\",\n yourAnswer: \"**Your answer should be** \",\n yourAnswerLabel: \"Your answer:\",\n addPoints: \"Click to add points\",\n addVertices: \"Click to add vertices\",\n tapMultiple: \"Tap each dot on the image to select all answers that apply.\",\n tapSingle: \"Tap each dot on the image to select an answer.\",\n clickMultiple:\n \"Click each dot on the image to select all answers that apply.\",\n clickSingle: \"Click each dot on the image to select an answer.\",\n choices: \"Choices:\",\n answers: {\n one: \"%(num)s answer\",\n other: \"%(num)s answers\",\n },\n hideAnswersToggleLabel: \"Hide answer choices\",\n moves: {\n one: \"Moves: %(num)s\",\n other: \"Moves: %(num)s\",\n },\n clickTiles: \"Click on the tiles to change the lights.\",\n turnOffLights: \"You must turn on all of the lights to continue.\",\n fillAllCells: \"Make sure you fill in all cells in the matrix.\",\n molecularDrawing:\n \"A molecular structure drawing. SMILES notation: %(content)s\",\n switchDirection: \"Switch direction\",\n circleOpen: \"Make circle open\",\n circleFilled: \"Make circle filled\",\n numDivisions: \"Number of divisions:\",\n divisions:\n \"Please make sure the number of divisions is in the range %(divRangeString)s.\",\n lineRange: \"lines %(lineRange)s\",\n lineNumber: \"line %(lineNumber)s\",\n symbolPassage:\n \"The symbol %(questionSymbol)s indicates that question %(questionNumber)s references this portion of the passage.\",\n symbolQuestion:\n \" The symbol %(sentenceSymbol)s indicates that the following sentence is referenced in a question.\",\n lineLabel: {\n context: \"a label next to a reading passage to denote the line number\",\n message: \"Line\",\n },\n beginningPassage: \"Beginning of reading passage.\",\n beginningFootnotes: \"Beginning of reading passage footnotes.\",\n endPassage: \"End of reading passage.\",\n questionMarker: \"[Marker for question %(number)s]\",\n circleMarker: \"[Circle marker %(number)s]\",\n sentenceMarker: \"[Sentence %(number)s]\",\n dragHandles: \"Drag handles to make graph\",\n tapAddPoints: \"Tap to add points\",\n false: \"False\",\n true: \"True\",\n no: \"No\",\n yes: \"Yes\",\n chooseCorrectNum: \"Please choose the correct number of answers.\",\n notNoneOfTheAbove:\n \"'None of the above' may not be selected when other answers are selected.\",\n noneOfTheAbove: \"None of the above\",\n chooseNumAnswers: \"Choose %(numCorrect)s answers:\",\n chooseAllAnswers: \"Choose all answers that apply:\",\n chooseOneAnswer: \"Choose 1 answer:\",\n choiceCheckedCorrect: \"(Choice %(letter)s, Checked, Correct)\",\n choiceCrossedOutCorrect: \"(Choice %(letter)s, Crossed out, Correct)\",\n choiceCorrect: \"(Choice %(letter)s, Correct)\",\n choiceCheckedIncorrect: \"(Choice %(letter)s, Checked, Incorrect)\",\n choiceCrossedOutIncorrect: \"(Choice %(letter)s, Crossed out, Incorrect)\",\n choiceIncorrect: \"(Choice %(letter)s, Incorrect)\",\n choiceChecked: \"(Choice %(letter)s, Checked)\",\n choiceCrossedOut: \"(Choice %(letter)s, Crossed out)\",\n choice: \"(Choice %(letter)s)\",\n crossOut: \"Cross out\",\n crossOutOption: \"Cross out option\",\n crossOutChoice: \"Cross out Choice %(letter)s\",\n bringBack: \"Bring back\",\n openMenuForChoice: \"Open menu for Choice %(letter)s\",\n letters: {\n context:\n \"This is a list of single-character labels that will appear in front of multiple-choice options. For instance, a multiple-choice question with three options would display (A) first option (B) second option (C) third option. There must be spaces between each of the different characters. The characters will show up next to options in the order that they are listed here. Most multiple choice questions have 5 or fewer options.\",\n message: \"A B C D E F G H I J K L M N O P Q R S T U V W X Y Z\",\n },\n rightArrow: \"Reaction arrow pointing to the right.\",\n dontUnderstandUnits: \"I couldn't understand those units.\",\n checkSigFigs: \"Check your significant figures.\",\n answerNumericallyIncorrect: \"That answer is numerically incorrect.\",\n checkUnits: \"Check your units.\",\n dontUnderstand: \"I don't understand that\",\n loading: \"Loading...\",\n videoTranscript: \"See video transcript\",\n somethingWrong: \"Something went wrong.\",\n videoWrapper: \"Khan Academy video wrapper\",\n};\n\n/**\n * Mock strings for the Perseus package, to be used for tests and Storybook.\n */\nexport const mockStrings: PerseusStrings = {\n closeKeypad: \"close math keypad\",\n openKeypad: \"open math keypad\",\n mathInputBox: \"Math input box\",\n removeHighlight: \"Remove highlight\",\n addHighlight: \"Add highlight\",\n hintPos: ({pos}) => `Hint #${pos}`,\n errorRendering: ({error}) => `Error rendering: ${error}`,\n APPROXIMATED_PI_ERROR:\n \"Your answer is close, but you may \" +\n \"have approximated pi. Enter your \" +\n \"answer as a multiple of pi, like \" +\n \"<code>12\\\\ \\\\text{pi}</code> or \" +\n \"<code>2/3\\\\ \\\\text{pi}</code>\",\n EXTRA_SYMBOLS_ERROR:\n \"We could not understand your \" +\n \"answer. Please check your answer for extra \" +\n \"text or symbols.\",\n NEEDS_TO_BE_SIMPLFIED_ERROR:\n \"Your answer is almost correct, \" + \"but it needs to be simplified.\",\n MISSING_PERCENT_ERROR:\n \"Your answer is almost correct, \" +\n \"but it is missing a \" +\n \"<code>\\\\%</code> at the end.\",\n MULTIPLICATION_SIGN_ERROR:\n \"I'm a computer. I only understand \" +\n \"multiplication if you use an asterisk \" +\n \"(*) as the multiplication sign.\",\n WRONG_CASE_ERROR:\n \"Your answer includes use of a variable with the wrong case.\",\n WRONG_LETTER_ERROR: \"Your answer includes a wrong variable letter.\",\n invalidSelection: \"Make sure you select something for every row.\",\n ERROR_TITLE: \"Oops!\",\n ERROR_MESSAGE: \"Sorry, I don't understand that!\",\n hints: \"Hints\",\n getAnotherHint: \"Get another hint\",\n deprecatedStandin:\n \"Sorry, this part of the question is no longer available. 😅 Don't worry, you won't be graded on this part. Keep going!\",\n keepTrying: \"Keep trying\",\n tryAgain: \"Try again\",\n check: \"Check\",\n correctExcited: \"Correct!\",\n nextQuestion: \"Next question\",\n skipToTitle: ({title}) => `Skip to ${title}`,\n current: \"Current\",\n correct: \"Correct\",\n correctSelected: \"Correct (selected)\",\n correctCrossedOut: \"Correct (but you crossed it out)\",\n incorrect: \"Incorrect\",\n incorrectSelected: \"Incorrect (selected)\",\n hideExplanation: \"Hide explanation\",\n explain: \"Explain\",\n INVALID_MESSAGE_PREFIX: \"We couldn't grade your answer.\",\n DEFAULT_INVALID_MESSAGE_1: \"It looks like you left something blank or \",\n DEFAULT_INVALID_MESSAGE_2: \"entered in an invalid answer.\",\n integerExample: \"an integer, like $6$\",\n properExample: \"a *proper* fraction, like $1/2$ or $6/10$\",\n simplifiedProperExample: \"a *simplified proper* fraction, like $3/5$\",\n improperExample: \"an *improper* fraction, like $10/7$ or $14/8$\",\n simplifiedImproperExample: \"a *simplified improper* fraction, like $7/4$\",\n mixedExample: \"a mixed number, like $1\\\\ 3/4$\",\n decimalExample: \"an *exact* decimal, like $0.75$\",\n percentExample: \"a percent, like $12.34\\\\%$\",\n piExample: \"a multiple of pi, like $12\\\\ \\\\text{pi}$ or $2/3\\\\ \\\\text{pi}$\",\n yourAnswer: \"**Your answer should be** \",\n yourAnswerLabel: \"Your answer:\",\n addPoints: \"Click to add points\",\n addVertices: \"Click to add vertices\",\n tapMultiple: \"Tap each dot on the image to select all answers that apply.\",\n tapSingle: \"Tap each dot on the image to select an answer.\",\n clickMultiple:\n \"Click each dot on the image to select all answers that apply.\",\n clickSingle: \"Click each dot on the image to select an answer.\",\n choices: \"Choices:\",\n answers: ({num}) => (num === 1 ? `${num} answer` : `${num} answers`),\n hideAnswersToggleLabel: \"Hide answer choices\",\n moves: ({num}) => (num === 1 ? `Moves: ${num}` : `Moves: ${num}`),\n clickTiles: \"Click on the tiles to change the lights.\",\n turnOffLights: \"You must turn on all of the lights to continue.\",\n fillAllCells: \"Make sure you fill in all cells in the matrix.\",\n molecularDrawing: ({content}) =>\n `A molecular structure drawing. SMILES notation: ${content}`,\n switchDirection: \"Switch direction\",\n circleOpen: \"Make circle open\",\n circleFilled: \"Make circle filled\",\n numDivisions: \"Number of divisions:\",\n divisions: ({divRangeString}) =>\n `Please make sure the number of divisions is in the range ${divRangeString}.`,\n lineRange: ({lineRange}: {lineRange: string}) => `lines ${lineRange}`,\n lineNumber: ({lineNumber}: {lineNumber: string}) => `line ${lineNumber}`,\n symbolPassage: ({questionSymbol, questionNumber}) =>\n `The symbol ${questionSymbol} indicates that question ${questionNumber} references this portion of the passage.`,\n symbolQuestion: ({sentenceSymbol}) =>\n ` The symbol ${sentenceSymbol} indicates that the following sentence is referenced in a question.`,\n lineLabel: \"Line\",\n beginningPassage: \"Beginning of reading passage.\",\n beginningFootnotes: \"Beginning of reading passage footnotes.\",\n endPassage: \"End of reading passage.\",\n questionMarker: ({number}) => `[Marker for question ${number}]`,\n circleMarker: ({number}) => `[Circle marker ${number}]`,\n sentenceMarker: ({number}) => `[Sentence ${number}]`,\n dragHandles: \"Drag handles to make graph\",\n tapAddPoints: \"Tap to add points\",\n false: \"False\",\n true: \"True\",\n no: \"No\",\n yes: \"Yes\",\n chooseCorrectNum: \"Please choose the correct number of answers.\",\n notNoneOfTheAbove:\n \"'None of the above' may not be selected when other answers are selected.\",\n noneOfTheAbove: \"None of the above\",\n chooseNumAnswers: ({numCorrect}) => `Choose ${numCorrect} answers:`,\n chooseAllAnswers: \"Choose all answers that apply:\",\n chooseOneAnswer: \"Choose 1 answer:\",\n choiceCheckedCorrect: ({letter}) => `(Choice ${letter}, Checked, Correct)`,\n choiceCrossedOutCorrect: ({letter}) =>\n `(Choice ${letter}, Crossed out, Correct)`,\n choiceCorrect: ({letter}) => `(Choice ${letter}, Correct)`,\n choiceCheckedIncorrect: ({letter}) =>\n `(Choice ${letter}, Checked, Incorrect)`,\n choiceCrossedOutIncorrect: ({letter}) =>\n `(Choice ${letter}, Crossed out, Incorrect)`,\n choiceIncorrect: ({letter}) => `(Choice ${letter}, Incorrect)`,\n choiceChecked: ({letter}) => `(Choice ${letter}, Checked)`,\n choiceCrossedOut: ({letter}) => `(Choice ${letter}, Crossed out)`,\n choice: ({letter}) => `(Choice ${letter})`,\n crossOut: \"Cross out\",\n crossOutOption: \"Cross out option\",\n crossOutChoice: ({letter}) => `Cross out Choice ${letter}`,\n bringBack: \"Bring back\",\n openMenuForChoice: ({letter}) => `Open menu for Choice ${letter}`,\n letters: \"A B C D E F G H I J K L M N O P Q R S T U V W X Y Z\",\n rightArrow: \"Reaction arrow pointing to the right.\",\n dontUnderstandUnits: \"I couldn't understand those units.\",\n checkSigFigs: \"Check your significant figures.\",\n answerNumericallyIncorrect: \"That answer is numerically incorrect.\",\n checkUnits: \"Check your units.\",\n dontUnderstand: \"I don't understand that\",\n loading: \"Loading...\",\n videoTranscript: \"See video transcript\",\n somethingWrong: \"Something went wrong.\",\n videoWrapper: \"Khan Academy video wrapper\",\n};\n"],"names":["strings","closeKeypad","openKeypad","mathInputBox","removeHighlight","addHighlight","hintPos","errorRendering","APPROXIMATED_PI_ERROR","EXTRA_SYMBOLS_ERROR","NEEDS_TO_BE_SIMPLFIED_ERROR","MISSING_PERCENT_ERROR","MULTIPLICATION_SIGN_ERROR","WRONG_CASE_ERROR","WRONG_LETTER_ERROR","invalidSelection","ERROR_TITLE","ERROR_MESSAGE","hints","getAnotherHint","deprecatedStandin","keepTrying","tryAgain","check","correctExcited","nextQuestion","skipToTitle","current","correct","correctSelected","correctCrossedOut","incorrect","incorrectSelected","hideExplanation","explain","INVALID_MESSAGE_PREFIX","DEFAULT_INVALID_MESSAGE_1","DEFAULT_INVALID_MESSAGE_2","integerExample","properExample","simplifiedProperExample","improperExample","simplifiedImproperExample","mixedExample","decimalExample","percentExample","piExample","yourAnswer","yourAnswerLabel","addPoints","addVertices","tapMultiple","tapSingle","clickMultiple","clickSingle","choices","answers","one","other","hideAnswersToggleLabel","moves","clickTiles","turnOffLights","fillAllCells","molecularDrawing","switchDirection","circleOpen","circleFilled","numDivisions","divisions","lineRange","lineNumber","symbolPassage","symbolQuestion","lineLabel","context","message","beginningPassage","beginningFootnotes","endPassage","questionMarker","circleMarker","sentenceMarker","dragHandles","tapAddPoints","false","true","no","yes","chooseCorrectNum","notNoneOfTheAbove","noneOfTheAbove","chooseNumAnswers","chooseAllAnswers","chooseOneAnswer","choiceCheckedCorrect","choiceCrossedOutCorrect","choiceCorrect","choiceCheckedIncorrect","choiceCrossedOutIncorrect","choiceIncorrect","choiceChecked","choiceCrossedOut","choice","crossOut","crossOutOption","crossOutChoice","bringBack","openMenuForChoice","letters","rightArrow","dontUnderstandUnits","checkSigFigs","answerNumericallyIncorrect","checkUnits","dontUnderstand","loading","videoTranscript","somethingWrong","videoWrapper","mockStrings","_ref","pos","_ref2","error","_ref3","title","_ref4","num","_ref5","_ref6","content","_ref7","divRangeString","_ref8","_ref9","_ref10","questionSymbol","questionNumber","_ref11","sentenceSymbol","_ref12","number","_ref13","_ref14","_ref15","numCorrect","_ref16","letter","_ref17","_ref18","_ref19","_ref20","_ref21","_ref22","_ref23","_ref24","_ref25","_ref26"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"strings.js","sources":["../src/strings.ts"],"sourcesContent":["/**\n * The translated strings that are used to render Perseus.\n */\nexport type PerseusStrings = {\n closeKeypad: string;\n openKeypad: string;\n mathInputBox: string;\n removeHighlight: string;\n addHighlight: string;\n hintPos: ({pos}: {pos: number}) => string;\n errorRendering: ({error}: {error: string}) => string;\n APPROXIMATED_PI_ERROR: string;\n EXTRA_SYMBOLS_ERROR: string;\n NEEDS_TO_BE_SIMPLFIED_ERROR: string;\n MISSING_PERCENT_ERROR: string;\n MULTIPLICATION_SIGN_ERROR: string;\n WRONG_CASE_ERROR: string;\n WRONG_LETTER_ERROR: string;\n invalidSelection: string;\n ERROR_TITLE: string;\n ERROR_MESSAGE: string;\n hints: string;\n getAnotherHint: string;\n deprecatedStandin: string;\n keepTrying: string;\n tryAgain: string;\n check: string;\n correctExcited: string;\n nextQuestion: string;\n skipToTitle: ({title}: {title: string}) => string;\n current: string;\n correct: string;\n correctSelected: string;\n correctCrossedOut: string;\n incorrect: string;\n incorrectSelected: string;\n hideExplanation: string;\n explain: string;\n INVALID_MESSAGE_PREFIX: string;\n DEFAULT_INVALID_MESSAGE_1: string;\n DEFAULT_INVALID_MESSAGE_2: string;\n integerExample: string;\n properExample: string;\n simplifiedProperExample: string;\n improperExample: string;\n simplifiedImproperExample: string;\n mixedExample: string;\n decimalExample: string;\n percentExample: string;\n piExample: string;\n yourAnswer: string;\n yourAnswerLabel: string;\n addPoints: string;\n addVertices: string;\n tapMultiple: string;\n tapSingle: string;\n clickMultiple: string;\n clickSingle: string;\n choices: string;\n answers: ({num}: {num: number}) => string;\n hideAnswersToggleLabel: string;\n moves: ({num}: {num: number}) => string;\n clickTiles: string;\n turnOffLights: string;\n fillAllCells: string;\n molecularDrawing: ({content}: {content: string}) => string;\n switchDirection: string;\n circleOpen: string;\n circleFilled: string;\n numDivisions: string;\n divisions: ({divRangeString}: {divRangeString: string}) => string;\n lineRange: ({lineRange}: {lineRange: string}) => string;\n lineNumber: ({lineNumber}: {lineNumber: string}) => string;\n symbolPassage: ({\n questionSymbol,\n questionNumber,\n }: {\n questionSymbol: string;\n questionNumber: string;\n }) => string;\n symbolQuestion: ({sentenceSymbol}: {sentenceSymbol: string}) => string;\n lineLabel: string;\n beginningPassage: string;\n beginningFootnotes: string;\n endPassage: string;\n questionMarker: ({number}: {number: string}) => string;\n circleMarker: ({number}: {number: string}) => string;\n sentenceMarker: ({number}: {number: string}) => string;\n dragHandles: string;\n tapAddPoints: string;\n false: string;\n true: string;\n no: string;\n yes: string;\n chooseCorrectNum: string;\n notNoneOfTheAbove: string;\n noneOfTheAbove: string;\n chooseNumAnswers: ({numCorrect}: {numCorrect: string}) => string;\n chooseAllAnswers: string;\n chooseOneAnswer: string;\n choiceCheckedCorrect: ({letter}: {letter: string}) => string;\n choiceCrossedOutCorrect: ({letter}: {letter: string}) => string;\n choiceCorrect: ({letter}: {letter: string}) => string;\n choiceCheckedIncorrect: ({letter}: {letter: string}) => string;\n choiceCrossedOutIncorrect: ({letter}: {letter: string}) => string;\n choiceIncorrect: ({letter}: {letter: string}) => string;\n choiceChecked: ({letter}: {letter: string}) => string;\n choiceCrossedOut: ({letter}: {letter: string}) => string;\n choice: ({letter}: {letter: string}) => string;\n crossOut: string;\n crossOutOption: string;\n crossOutChoice: ({letter}: {letter: string}) => string;\n bringBack: string;\n openMenuForChoice: ({letter}: {letter: string}) => string;\n letters: string;\n rightArrow: string;\n dontUnderstandUnits: string;\n checkSigFigs: string;\n answerNumericallyIncorrect: string;\n checkUnits: string;\n dontUnderstand: string;\n loading: string;\n videoTranscript: string;\n somethingWrong: string;\n videoWrapper: string;\n mathInputTitle: string;\n mathInputDescription: string;\n};\n\n/**\n * Untranslated strings used in Perseus. To be used by an external\n * translator to produce translated strings, passed in as `PerseusStrings`.\n */\nexport const strings: {\n [key in keyof PerseusStrings]:\n | string\n | {context?: string; message: string}\n | {context?: string; one: string; other: string};\n} = {\n closeKeypad: \"close math keypad\",\n openKeypad: \"open math keypad\",\n mathInputBox: \"Math input box\",\n removeHighlight: \"Remove highlight\",\n addHighlight: \"Add highlight\",\n hintPos: \"Hint #%(pos)s\",\n errorRendering: \"Error rendering: %(error)s\",\n APPROXIMATED_PI_ERROR:\n \"Your answer is close, but you may \" +\n \"have approximated pi. Enter your \" +\n \"answer as a multiple of pi, like \" +\n \"<code>12\\\\ \\\\text{pi}</code> or \" +\n \"<code>2/3\\\\ \\\\text{pi}</code>\",\n EXTRA_SYMBOLS_ERROR:\n \"We could not understand your \" +\n \"answer. Please check your answer for extra \" +\n \"text or symbols.\",\n NEEDS_TO_BE_SIMPLFIED_ERROR:\n \"Your answer is almost correct, \" + \"but it needs to be simplified.\",\n MISSING_PERCENT_ERROR:\n \"Your answer is almost correct, \" +\n \"but it is missing a \" +\n \"<code>\\\\%</code> at the end.\",\n MULTIPLICATION_SIGN_ERROR:\n \"I'm a computer. I only understand \" +\n \"multiplication if you use an asterisk \" +\n \"(*) as the multiplication sign.\",\n WRONG_CASE_ERROR:\n \"Your answer includes use of a variable with the wrong case.\",\n WRONG_LETTER_ERROR: \"Your answer includes a wrong variable letter.\",\n invalidSelection: \"Make sure you select something for every row.\",\n ERROR_TITLE: \"Oops!\",\n ERROR_MESSAGE: \"Sorry, I don't understand that!\",\n hints: \"Hints\",\n getAnotherHint: \"Get another hint\",\n deprecatedStandin:\n \"Sorry, this part of the question is no longer available. 😅 Don't worry, you won't be graded on this part. Keep going!\",\n keepTrying: \"Keep trying\",\n tryAgain: \"Try again\",\n check: \"Check\",\n correctExcited: \"Correct!\",\n nextQuestion: \"Next question\",\n skipToTitle: \"Skip to %(title)s\",\n current: \"Current\",\n correct: \"Correct\",\n correctSelected: \"Correct (selected)\",\n correctCrossedOut: \"Correct (but you crossed it out)\",\n incorrect: \"Incorrect\",\n incorrectSelected: \"Incorrect (selected)\",\n hideExplanation: \"Hide explanation\",\n explain: \"Explain\",\n INVALID_MESSAGE_PREFIX: \"We couldn't grade your answer.\",\n DEFAULT_INVALID_MESSAGE_1: \"It looks like you left something blank or \",\n DEFAULT_INVALID_MESSAGE_2: \"entered in an invalid answer.\",\n integerExample: \"an integer, like $6$\",\n properExample: \"a *proper* fraction, like $1/2$ or $6/10$\",\n simplifiedProperExample: \"a *simplified proper* fraction, like $3/5$\",\n improperExample: \"an *improper* fraction, like $10/7$ or $14/8$\",\n simplifiedImproperExample: \"a *simplified improper* fraction, like $7/4$\",\n mixedExample: \"a mixed number, like $1\\\\ 3/4$\",\n decimalExample: \"an *exact* decimal, like $0.75$\",\n percentExample: \"a percent, like $12.34\\\\%$\",\n piExample: \"a multiple of pi, like $12\\\\ \\\\text{pi}$ or $2/3\\\\ \\\\text{pi}$\",\n yourAnswer: \"**Your answer should be** \",\n yourAnswerLabel: \"Your answer:\",\n addPoints: \"Click to add points\",\n addVertices: \"Click to add vertices\",\n tapMultiple: \"Tap each dot on the image to select all answers that apply.\",\n tapSingle: \"Tap each dot on the image to select an answer.\",\n clickMultiple:\n \"Click each dot on the image to select all answers that apply.\",\n clickSingle: \"Click each dot on the image to select an answer.\",\n choices: \"Choices:\",\n answers: {\n one: \"%(num)s answer\",\n other: \"%(num)s answers\",\n },\n hideAnswersToggleLabel: \"Hide answer choices\",\n moves: {\n one: \"Moves: %(num)s\",\n other: \"Moves: %(num)s\",\n },\n clickTiles: \"Click on the tiles to change the lights.\",\n turnOffLights: \"You must turn on all of the lights to continue.\",\n fillAllCells: \"Make sure you fill in all cells in the matrix.\",\n molecularDrawing:\n \"A molecular structure drawing. SMILES notation: %(content)s\",\n switchDirection: \"Switch direction\",\n circleOpen: \"Make circle open\",\n circleFilled: \"Make circle filled\",\n numDivisions: \"Number of divisions:\",\n divisions:\n \"Please make sure the number of divisions is in the range %(divRangeString)s.\",\n lineRange: \"lines %(lineRange)s\",\n lineNumber: \"line %(lineNumber)s\",\n symbolPassage:\n \"The symbol %(questionSymbol)s indicates that question %(questionNumber)s references this portion of the passage.\",\n symbolQuestion:\n \" The symbol %(sentenceSymbol)s indicates that the following sentence is referenced in a question.\",\n lineLabel: {\n context: \"a label next to a reading passage to denote the line number\",\n message: \"Line\",\n },\n beginningPassage: \"Beginning of reading passage.\",\n beginningFootnotes: \"Beginning of reading passage footnotes.\",\n endPassage: \"End of reading passage.\",\n questionMarker: \"[Marker for question %(number)s]\",\n circleMarker: \"[Circle marker %(number)s]\",\n sentenceMarker: \"[Sentence %(number)s]\",\n dragHandles: \"Drag handles to make graph\",\n tapAddPoints: \"Tap to add points\",\n false: \"False\",\n true: \"True\",\n no: \"No\",\n yes: \"Yes\",\n chooseCorrectNum: \"Please choose the correct number of answers.\",\n notNoneOfTheAbove:\n \"'None of the above' may not be selected when other answers are selected.\",\n noneOfTheAbove: \"None of the above\",\n chooseNumAnswers: \"Choose %(numCorrect)s answers:\",\n chooseAllAnswers: \"Choose all answers that apply:\",\n chooseOneAnswer: \"Choose 1 answer:\",\n choiceCheckedCorrect: \"(Choice %(letter)s, Checked, Correct)\",\n choiceCrossedOutCorrect: \"(Choice %(letter)s, Crossed out, Correct)\",\n choiceCorrect: \"(Choice %(letter)s, Correct)\",\n choiceCheckedIncorrect: \"(Choice %(letter)s, Checked, Incorrect)\",\n choiceCrossedOutIncorrect: \"(Choice %(letter)s, Crossed out, Incorrect)\",\n choiceIncorrect: \"(Choice %(letter)s, Incorrect)\",\n choiceChecked: \"(Choice %(letter)s, Checked)\",\n choiceCrossedOut: \"(Choice %(letter)s, Crossed out)\",\n choice: \"(Choice %(letter)s)\",\n crossOut: \"Cross out\",\n crossOutOption: \"Cross out option\",\n crossOutChoice: \"Cross out Choice %(letter)s\",\n bringBack: \"Bring back\",\n openMenuForChoice: \"Open menu for Choice %(letter)s\",\n letters: {\n context:\n \"This is a list of single-character labels that will appear in front of multiple-choice options. For instance, a multiple-choice question with three options would display (A) first option (B) second option (C) third option. There must be spaces between each of the different characters. The characters will show up next to options in the order that they are listed here. Most multiple choice questions have 5 or fewer options.\",\n message: \"A B C D E F G H I J K L M N O P Q R S T U V W X Y Z\",\n },\n rightArrow: \"Reaction arrow pointing to the right.\",\n dontUnderstandUnits: \"I couldn't understand those units.\",\n checkSigFigs: \"Check your significant figures.\",\n answerNumericallyIncorrect: \"That answer is numerically incorrect.\",\n checkUnits: \"Check your units.\",\n dontUnderstand: \"I don't understand that\",\n loading: \"Loading...\",\n videoTranscript: \"See video transcript\",\n somethingWrong: \"Something went wrong.\",\n videoWrapper: \"Khan Academy video wrapper\",\n mathInputTitle: \"mathematics keyboard\",\n mathInputDescription:\n \"Use keyboard/mouse to interact with math-based input fields\",\n};\n\n/**\n * Mock strings for the Perseus package, to be used for tests and Storybook.\n */\nexport const mockStrings: PerseusStrings = {\n closeKeypad: \"close math keypad\",\n openKeypad: \"open math keypad\",\n mathInputBox: \"Math input box\",\n removeHighlight: \"Remove highlight\",\n addHighlight: \"Add highlight\",\n hintPos: ({pos}) => `Hint #${pos}`,\n errorRendering: ({error}) => `Error rendering: ${error}`,\n APPROXIMATED_PI_ERROR:\n \"Your answer is close, but you may \" +\n \"have approximated pi. Enter your \" +\n \"answer as a multiple of pi, like \" +\n \"<code>12\\\\ \\\\text{pi}</code> or \" +\n \"<code>2/3\\\\ \\\\text{pi}</code>\",\n EXTRA_SYMBOLS_ERROR:\n \"We could not understand your \" +\n \"answer. Please check your answer for extra \" +\n \"text or symbols.\",\n NEEDS_TO_BE_SIMPLFIED_ERROR:\n \"Your answer is almost correct, \" + \"but it needs to be simplified.\",\n MISSING_PERCENT_ERROR:\n \"Your answer is almost correct, \" +\n \"but it is missing a \" +\n \"<code>\\\\%</code> at the end.\",\n MULTIPLICATION_SIGN_ERROR:\n \"I'm a computer. I only understand \" +\n \"multiplication if you use an asterisk \" +\n \"(*) as the multiplication sign.\",\n WRONG_CASE_ERROR:\n \"Your answer includes use of a variable with the wrong case.\",\n WRONG_LETTER_ERROR: \"Your answer includes a wrong variable letter.\",\n invalidSelection: \"Make sure you select something for every row.\",\n ERROR_TITLE: \"Oops!\",\n ERROR_MESSAGE: \"Sorry, I don't understand that!\",\n hints: \"Hints\",\n getAnotherHint: \"Get another hint\",\n deprecatedStandin:\n \"Sorry, this part of the question is no longer available. 😅 Don't worry, you won't be graded on this part. Keep going!\",\n keepTrying: \"Keep trying\",\n tryAgain: \"Try again\",\n check: \"Check\",\n correctExcited: \"Correct!\",\n nextQuestion: \"Next question\",\n skipToTitle: ({title}) => `Skip to ${title}`,\n current: \"Current\",\n correct: \"Correct\",\n correctSelected: \"Correct (selected)\",\n correctCrossedOut: \"Correct (but you crossed it out)\",\n incorrect: \"Incorrect\",\n incorrectSelected: \"Incorrect (selected)\",\n hideExplanation: \"Hide explanation\",\n explain: \"Explain\",\n INVALID_MESSAGE_PREFIX: \"We couldn't grade your answer.\",\n DEFAULT_INVALID_MESSAGE_1: \"It looks like you left something blank or \",\n DEFAULT_INVALID_MESSAGE_2: \"entered in an invalid answer.\",\n integerExample: \"an integer, like $6$\",\n properExample: \"a *proper* fraction, like $1/2$ or $6/10$\",\n simplifiedProperExample: \"a *simplified proper* fraction, like $3/5$\",\n improperExample: \"an *improper* fraction, like $10/7$ or $14/8$\",\n simplifiedImproperExample: \"a *simplified improper* fraction, like $7/4$\",\n mixedExample: \"a mixed number, like $1\\\\ 3/4$\",\n decimalExample: \"an *exact* decimal, like $0.75$\",\n percentExample: \"a percent, like $12.34\\\\%$\",\n piExample: \"a multiple of pi, like $12\\\\ \\\\text{pi}$ or $2/3\\\\ \\\\text{pi}$\",\n yourAnswer: \"**Your answer should be** \",\n yourAnswerLabel: \"Your answer:\",\n addPoints: \"Click to add points\",\n addVertices: \"Click to add vertices\",\n tapMultiple: \"Tap each dot on the image to select all answers that apply.\",\n tapSingle: \"Tap each dot on the image to select an answer.\",\n clickMultiple:\n \"Click each dot on the image to select all answers that apply.\",\n clickSingle: \"Click each dot on the image to select an answer.\",\n choices: \"Choices:\",\n answers: ({num}) => (num === 1 ? `${num} answer` : `${num} answers`),\n hideAnswersToggleLabel: \"Hide answer choices\",\n moves: ({num}) => (num === 1 ? `Moves: ${num}` : `Moves: ${num}`),\n clickTiles: \"Click on the tiles to change the lights.\",\n turnOffLights: \"You must turn on all of the lights to continue.\",\n fillAllCells: \"Make sure you fill in all cells in the matrix.\",\n molecularDrawing: ({content}) =>\n `A molecular structure drawing. SMILES notation: ${content}`,\n switchDirection: \"Switch direction\",\n circleOpen: \"Make circle open\",\n circleFilled: \"Make circle filled\",\n numDivisions: \"Number of divisions:\",\n divisions: ({divRangeString}) =>\n `Please make sure the number of divisions is in the range ${divRangeString}.`,\n lineRange: ({lineRange}: {lineRange: string}) => `lines ${lineRange}`,\n lineNumber: ({lineNumber}: {lineNumber: string}) => `line ${lineNumber}`,\n symbolPassage: ({questionSymbol, questionNumber}) =>\n `The symbol ${questionSymbol} indicates that question ${questionNumber} references this portion of the passage.`,\n symbolQuestion: ({sentenceSymbol}) =>\n ` The symbol ${sentenceSymbol} indicates that the following sentence is referenced in a question.`,\n lineLabel: \"Line\",\n beginningPassage: \"Beginning of reading passage.\",\n beginningFootnotes: \"Beginning of reading passage footnotes.\",\n endPassage: \"End of reading passage.\",\n questionMarker: ({number}) => `[Marker for question ${number}]`,\n circleMarker: ({number}) => `[Circle marker ${number}]`,\n sentenceMarker: ({number}) => `[Sentence ${number}]`,\n dragHandles: \"Drag handles to make graph\",\n tapAddPoints: \"Tap to add points\",\n false: \"False\",\n true: \"True\",\n no: \"No\",\n yes: \"Yes\",\n chooseCorrectNum: \"Please choose the correct number of answers.\",\n notNoneOfTheAbove:\n \"'None of the above' may not be selected when other answers are selected.\",\n noneOfTheAbove: \"None of the above\",\n chooseNumAnswers: ({numCorrect}) => `Choose ${numCorrect} answers:`,\n chooseAllAnswers: \"Choose all answers that apply:\",\n chooseOneAnswer: \"Choose 1 answer:\",\n choiceCheckedCorrect: ({letter}) => `(Choice ${letter}, Checked, Correct)`,\n choiceCrossedOutCorrect: ({letter}) =>\n `(Choice ${letter}, Crossed out, Correct)`,\n choiceCorrect: ({letter}) => `(Choice ${letter}, Correct)`,\n choiceCheckedIncorrect: ({letter}) =>\n `(Choice ${letter}, Checked, Incorrect)`,\n choiceCrossedOutIncorrect: ({letter}) =>\n `(Choice ${letter}, Crossed out, Incorrect)`,\n choiceIncorrect: ({letter}) => `(Choice ${letter}, Incorrect)`,\n choiceChecked: ({letter}) => `(Choice ${letter}, Checked)`,\n choiceCrossedOut: ({letter}) => `(Choice ${letter}, Crossed out)`,\n choice: ({letter}) => `(Choice ${letter})`,\n crossOut: \"Cross out\",\n crossOutOption: \"Cross out option\",\n crossOutChoice: ({letter}) => `Cross out Choice ${letter}`,\n bringBack: \"Bring back\",\n openMenuForChoice: ({letter}) => `Open menu for Choice ${letter}`,\n letters: \"A B C D E F G H I J K L M N O P Q R S T U V W X Y Z\",\n rightArrow: \"Reaction arrow pointing to the right.\",\n dontUnderstandUnits: \"I couldn't understand those units.\",\n checkSigFigs: \"Check your significant figures.\",\n answerNumericallyIncorrect: \"That answer is numerically incorrect.\",\n checkUnits: \"Check your units.\",\n dontUnderstand: \"I don't understand that\",\n loading: \"Loading...\",\n videoTranscript: \"See video transcript\",\n somethingWrong: \"Something went wrong.\",\n videoWrapper: \"Khan Academy video wrapper\",\n mathInputTitle: \"mathematics keyboard\",\n mathInputDescription:\n \"Use keyboard/mouse to interact with math-based input fields\",\n};\n"],"names":["strings","closeKeypad","openKeypad","mathInputBox","removeHighlight","addHighlight","hintPos","errorRendering","APPROXIMATED_PI_ERROR","EXTRA_SYMBOLS_ERROR","NEEDS_TO_BE_SIMPLFIED_ERROR","MISSING_PERCENT_ERROR","MULTIPLICATION_SIGN_ERROR","WRONG_CASE_ERROR","WRONG_LETTER_ERROR","invalidSelection","ERROR_TITLE","ERROR_MESSAGE","hints","getAnotherHint","deprecatedStandin","keepTrying","tryAgain","check","correctExcited","nextQuestion","skipToTitle","current","correct","correctSelected","correctCrossedOut","incorrect","incorrectSelected","hideExplanation","explain","INVALID_MESSAGE_PREFIX","DEFAULT_INVALID_MESSAGE_1","DEFAULT_INVALID_MESSAGE_2","integerExample","properExample","simplifiedProperExample","improperExample","simplifiedImproperExample","mixedExample","decimalExample","percentExample","piExample","yourAnswer","yourAnswerLabel","addPoints","addVertices","tapMultiple","tapSingle","clickMultiple","clickSingle","choices","answers","one","other","hideAnswersToggleLabel","moves","clickTiles","turnOffLights","fillAllCells","molecularDrawing","switchDirection","circleOpen","circleFilled","numDivisions","divisions","lineRange","lineNumber","symbolPassage","symbolQuestion","lineLabel","context","message","beginningPassage","beginningFootnotes","endPassage","questionMarker","circleMarker","sentenceMarker","dragHandles","tapAddPoints","false","true","no","yes","chooseCorrectNum","notNoneOfTheAbove","noneOfTheAbove","chooseNumAnswers","chooseAllAnswers","chooseOneAnswer","choiceCheckedCorrect","choiceCrossedOutCorrect","choiceCorrect","choiceCheckedIncorrect","choiceCrossedOutIncorrect","choiceIncorrect","choiceChecked","choiceCrossedOut","choice","crossOut","crossOutOption","crossOutChoice","bringBack","openMenuForChoice","letters","rightArrow","dontUnderstandUnits","checkSigFigs","answerNumericallyIncorrect","checkUnits","dontUnderstand","loading","videoTranscript","somethingWrong","videoWrapper","mathInputTitle","mathInputDescription","mockStrings","_ref","pos","_ref2","error","_ref3","title","_ref4","num","_ref5","_ref6","content","_ref7","divRangeString","_ref8","_ref9","_ref10","questionSymbol","questionNumber","_ref11","sentenceSymbol","_ref12","number","_ref13","_ref14","_ref15","numCorrect","_ref16","letter","_ref17","_ref18","_ref19","_ref20","_ref21","_ref22","_ref23","_ref24","_ref25","_ref26"],"mappings":";;;;AAAA;AACA;AACA;;AA+HA;AACA;AACA;AACA;AACO,MAAMA,OAKZ,GAAG;AACAC,EAAAA,WAAW,EAAE,mBAAmB;AAChCC,EAAAA,UAAU,EAAE,kBAAkB;AAC9BC,EAAAA,YAAY,EAAE,gBAAgB;AAC9BC,EAAAA,eAAe,EAAE,kBAAkB;AACnCC,EAAAA,YAAY,EAAE,eAAe;AAC7BC,EAAAA,OAAO,EAAE,eAAe;AACxBC,EAAAA,cAAc,EAAE,4BAA4B;EAC5CC,qBAAqB,EACjB,oCAAoC,GACpC,mCAAmC,GACnC,mCAAmC,GACnC,kCAAkC,GAClC,+BAA+B;AACnCC,EAAAA,mBAAmB,EACf,+BAA+B,GAC/B,6CAA6C,GAC7C,kBAAkB;EACtBC,2BAA2B,EACvB,iCAAiC,GAAG,gCAAgC;AACxEC,EAAAA,qBAAqB,EACjB,iCAAiC,GACjC,sBAAsB,GACtB,8BAA8B;AAClCC,EAAAA,yBAAyB,EACrB,oCAAoC,GACpC,wCAAwC,GACxC,iCAAiC;AACrCC,EAAAA,gBAAgB,EACZ,6DAA6D;AACjEC,EAAAA,kBAAkB,EAAE,+CAA+C;AACnEC,EAAAA,gBAAgB,EAAE,+CAA+C;AACjEC,EAAAA,WAAW,EAAE,OAAO;AACpBC,EAAAA,aAAa,EAAE,iCAAiC;AAChDC,EAAAA,KAAK,EAAE,OAAO;AACdC,EAAAA,cAAc,EAAE,kBAAkB;AAClCC,EAAAA,iBAAiB,EACb,wHAAwH;AAC5HC,EAAAA,UAAU,EAAE,aAAa;AACzBC,EAAAA,QAAQ,EAAE,WAAW;AACrBC,EAAAA,KAAK,EAAE,OAAO;AACdC,EAAAA,cAAc,EAAE,UAAU;AAC1BC,EAAAA,YAAY,EAAE,eAAe;AAC7BC,EAAAA,WAAW,EAAE,mBAAmB;AAChCC,EAAAA,OAAO,EAAE,SAAS;AAClBC,EAAAA,OAAO,EAAE,SAAS;AAClBC,EAAAA,eAAe,EAAE,oBAAoB;AACrCC,EAAAA,iBAAiB,EAAE,kCAAkC;AACrDC,EAAAA,SAAS,EAAE,WAAW;AACtBC,EAAAA,iBAAiB,EAAE,sBAAsB;AACzCC,EAAAA,eAAe,EAAE,kBAAkB;AACnCC,EAAAA,OAAO,EAAE,SAAS;AAClBC,EAAAA,sBAAsB,EAAE,gCAAgC;AACxDC,EAAAA,yBAAyB,EAAE,4CAA4C;AACvEC,EAAAA,yBAAyB,EAAE,+BAA+B;AAC1DC,EAAAA,cAAc,EAAE,sBAAsB;AACtCC,EAAAA,aAAa,EAAE,2CAA2C;AAC1DC,EAAAA,uBAAuB,EAAE,4CAA4C;AACrEC,EAAAA,eAAe,EAAE,+CAA+C;AAChEC,EAAAA,yBAAyB,EAAE,8CAA8C;AACzEC,EAAAA,YAAY,EAAE,gCAAgC;AAC9CC,EAAAA,cAAc,EAAE,iCAAiC;AACjDC,EAAAA,cAAc,EAAE,4BAA4B;AAC5CC,EAAAA,SAAS,EAAE,gEAAgE;AAC3EC,EAAAA,UAAU,EAAE,4BAA4B;AACxCC,EAAAA,eAAe,EAAE,cAAc;AAC/BC,EAAAA,SAAS,EAAE,qBAAqB;AAChCC,EAAAA,WAAW,EAAE,uBAAuB;AACpCC,EAAAA,WAAW,EAAE,6DAA6D;AAC1EC,EAAAA,SAAS,EAAE,gDAAgD;AAC3DC,EAAAA,aAAa,EACT,+DAA+D;AACnEC,EAAAA,WAAW,EAAE,kDAAkD;AAC/DC,EAAAA,OAAO,EAAE,UAAU;AACnBC,EAAAA,OAAO,EAAE;AACLC,IAAAA,GAAG,EAAE,gBAAgB;AACrBC,IAAAA,KAAK,EAAE,iBAAA;GACV;AACDC,EAAAA,sBAAsB,EAAE,qBAAqB;AAC7CC,EAAAA,KAAK,EAAE;AACHH,IAAAA,GAAG,EAAE,gBAAgB;AACrBC,IAAAA,KAAK,EAAE,gBAAA;GACV;AACDG,EAAAA,UAAU,EAAE,0CAA0C;AACtDC,EAAAA,aAAa,EAAE,iDAAiD;AAChEC,EAAAA,YAAY,EAAE,gDAAgD;AAC9DC,EAAAA,gBAAgB,EACZ,6DAA6D;AACjEC,EAAAA,eAAe,EAAE,kBAAkB;AACnCC,EAAAA,UAAU,EAAE,kBAAkB;AAC9BC,EAAAA,YAAY,EAAE,oBAAoB;AAClCC,EAAAA,YAAY,EAAE,sBAAsB;AACpCC,EAAAA,SAAS,EACL,8EAA8E;AAClFC,EAAAA,SAAS,EAAE,qBAAqB;AAChCC,EAAAA,UAAU,EAAE,qBAAqB;AACjCC,EAAAA,aAAa,EACT,kHAAkH;AACtHC,EAAAA,cAAc,EACV,mGAAmG;AACvGC,EAAAA,SAAS,EAAE;AACPC,IAAAA,OAAO,EAAE,6DAA6D;AACtEC,IAAAA,OAAO,EAAE,MAAA;GACZ;AACDC,EAAAA,gBAAgB,EAAE,+BAA+B;AACjDC,EAAAA,kBAAkB,EAAE,yCAAyC;AAC7DC,EAAAA,UAAU,EAAE,yBAAyB;AACrCC,EAAAA,cAAc,EAAE,kCAAkC;AAClDC,EAAAA,YAAY,EAAE,4BAA4B;AAC1CC,EAAAA,cAAc,EAAE,uBAAuB;AACvCC,EAAAA,WAAW,EAAE,4BAA4B;AACzCC,EAAAA,YAAY,EAAE,mBAAmB;AACjCC,EAAAA,KAAK,EAAE,OAAO;AACdC,EAAAA,IAAI,EAAE,MAAM;AACZC,EAAAA,EAAE,EAAE,IAAI;AACRC,EAAAA,GAAG,EAAE,KAAK;AACVC,EAAAA,gBAAgB,EAAE,8CAA8C;AAChEC,EAAAA,iBAAiB,EACb,0EAA0E;AAC9EC,EAAAA,cAAc,EAAE,mBAAmB;AACnCC,EAAAA,gBAAgB,EAAE,gCAAgC;AAClDC,EAAAA,gBAAgB,EAAE,gCAAgC;AAClDC,EAAAA,eAAe,EAAE,kBAAkB;AACnCC,EAAAA,oBAAoB,EAAE,uCAAuC;AAC7DC,EAAAA,uBAAuB,EAAE,2CAA2C;AACpEC,EAAAA,aAAa,EAAE,8BAA8B;AAC7CC,EAAAA,sBAAsB,EAAE,yCAAyC;AACjEC,EAAAA,yBAAyB,EAAE,6CAA6C;AACxEC,EAAAA,eAAe,EAAE,gCAAgC;AACjDC,EAAAA,aAAa,EAAE,8BAA8B;AAC7CC,EAAAA,gBAAgB,EAAE,kCAAkC;AACpDC,EAAAA,MAAM,EAAE,qBAAqB;AAC7BC,EAAAA,QAAQ,EAAE,WAAW;AACrBC,EAAAA,cAAc,EAAE,kBAAkB;AAClCC,EAAAA,cAAc,EAAE,6BAA6B;AAC7CC,EAAAA,SAAS,EAAE,YAAY;AACvBC,EAAAA,iBAAiB,EAAE,iCAAiC;AACpDC,EAAAA,OAAO,EAAE;AACLlC,IAAAA,OAAO,EACH,2aAA2a;AAC/aC,IAAAA,OAAO,EAAE,qDAAA;GACZ;AACDkC,EAAAA,UAAU,EAAE,uCAAuC;AACnDC,EAAAA,mBAAmB,EAAE,oCAAoC;AACzDC,EAAAA,YAAY,EAAE,iCAAiC;AAC/CC,EAAAA,0BAA0B,EAAE,uCAAuC;AACnEC,EAAAA,UAAU,EAAE,mBAAmB;AAC/BC,EAAAA,cAAc,EAAE,yBAAyB;AACzCC,EAAAA,OAAO,EAAE,YAAY;AACrBC,EAAAA,eAAe,EAAE,sBAAsB;AACvCC,EAAAA,cAAc,EAAE,uBAAuB;AACvCC,EAAAA,YAAY,EAAE,4BAA4B;AAC1CC,EAAAA,cAAc,EAAE,sBAAsB;AACtCC,EAAAA,oBAAoB,EAChB,6DAAA;AACR,EAAC;;AAED;AACA;AACA;AACO,MAAMC,WAA2B,GAAG;AACvCzH,EAAAA,WAAW,EAAE,mBAAmB;AAChCC,EAAAA,UAAU,EAAE,kBAAkB;AAC9BC,EAAAA,YAAY,EAAE,gBAAgB;AAC9BC,EAAAA,eAAe,EAAE,kBAAkB;AACnCC,EAAAA,YAAY,EAAE,eAAe;AAC7BC,EAAAA,OAAO,EAAEqH,IAAA,IAAA;IAAA,IAAC;AAACC,MAAAA,GAAAA;AAAG,KAAC,GAAAD,IAAA,CAAA;IAAA,OAAM,CAAA,MAAA,EAAQC,GAAI,CAAC,CAAA,CAAA;AAAA,GAAA;AAClCrH,EAAAA,cAAc,EAAEsH,KAAA,IAAA;IAAA,IAAC;AAACC,MAAAA,KAAAA;AAAK,KAAC,GAAAD,KAAA,CAAA;IAAA,OAAM,CAAA,iBAAA,EAAmBC,KAAM,CAAC,CAAA,CAAA;AAAA,GAAA;EACxDtH,qBAAqB,EACjB,oCAAoC,GACpC,mCAAmC,GACnC,mCAAmC,GACnC,kCAAkC,GAClC,+BAA+B;AACnCC,EAAAA,mBAAmB,EACf,+BAA+B,GAC/B,6CAA6C,GAC7C,kBAAkB;EACtBC,2BAA2B,EACvB,iCAAiC,GAAG,gCAAgC;AACxEC,EAAAA,qBAAqB,EACjB,iCAAiC,GACjC,sBAAsB,GACtB,8BAA8B;AAClCC,EAAAA,yBAAyB,EACrB,oCAAoC,GACpC,wCAAwC,GACxC,iCAAiC;AACrCC,EAAAA,gBAAgB,EACZ,6DAA6D;AACjEC,EAAAA,kBAAkB,EAAE,+CAA+C;AACnEC,EAAAA,gBAAgB,EAAE,+CAA+C;AACjEC,EAAAA,WAAW,EAAE,OAAO;AACpBC,EAAAA,aAAa,EAAE,iCAAiC;AAChDC,EAAAA,KAAK,EAAE,OAAO;AACdC,EAAAA,cAAc,EAAE,kBAAkB;AAClCC,EAAAA,iBAAiB,EACb,wHAAwH;AAC5HC,EAAAA,UAAU,EAAE,aAAa;AACzBC,EAAAA,QAAQ,EAAE,WAAW;AACrBC,EAAAA,KAAK,EAAE,OAAO;AACdC,EAAAA,cAAc,EAAE,UAAU;AAC1BC,EAAAA,YAAY,EAAE,eAAe;AAC7BC,EAAAA,WAAW,EAAEqG,KAAA,IAAA;IAAA,IAAC;AAACC,MAAAA,KAAAA;AAAK,KAAC,GAAAD,KAAA,CAAA;IAAA,OAAM,CAAA,QAAA,EAAUC,KAAM,CAAC,CAAA,CAAA;AAAA,GAAA;AAC5CrG,EAAAA,OAAO,EAAE,SAAS;AAClBC,EAAAA,OAAO,EAAE,SAAS;AAClBC,EAAAA,eAAe,EAAE,oBAAoB;AACrCC,EAAAA,iBAAiB,EAAE,kCAAkC;AACrDC,EAAAA,SAAS,EAAE,WAAW;AACtBC,EAAAA,iBAAiB,EAAE,sBAAsB;AACzCC,EAAAA,eAAe,EAAE,kBAAkB;AACnCC,EAAAA,OAAO,EAAE,SAAS;AAClBC,EAAAA,sBAAsB,EAAE,gCAAgC;AACxDC,EAAAA,yBAAyB,EAAE,4CAA4C;AACvEC,EAAAA,yBAAyB,EAAE,+BAA+B;AAC1DC,EAAAA,cAAc,EAAE,sBAAsB;AACtCC,EAAAA,aAAa,EAAE,2CAA2C;AAC1DC,EAAAA,uBAAuB,EAAE,4CAA4C;AACrEC,EAAAA,eAAe,EAAE,+CAA+C;AAChEC,EAAAA,yBAAyB,EAAE,8CAA8C;AACzEC,EAAAA,YAAY,EAAE,gCAAgC;AAC9CC,EAAAA,cAAc,EAAE,iCAAiC;AACjDC,EAAAA,cAAc,EAAE,4BAA4B;AAC5CC,EAAAA,SAAS,EAAE,gEAAgE;AAC3EC,EAAAA,UAAU,EAAE,4BAA4B;AACxCC,EAAAA,eAAe,EAAE,cAAc;AAC/BC,EAAAA,SAAS,EAAE,qBAAqB;AAChCC,EAAAA,WAAW,EAAE,uBAAuB;AACpCC,EAAAA,WAAW,EAAE,6DAA6D;AAC1EC,EAAAA,SAAS,EAAE,gDAAgD;AAC3DC,EAAAA,aAAa,EACT,+DAA+D;AACnEC,EAAAA,WAAW,EAAE,kDAAkD;AAC/DC,EAAAA,OAAO,EAAE,UAAU;AACnBC,EAAAA,OAAO,EAAEyE,KAAA,IAAA;IAAA,IAAC;AAACC,MAAAA,GAAAA;AAAG,KAAC,GAAAD,KAAA,CAAA;IAAA,OAAMC,GAAG,KAAK,CAAC,GAAI,CAAA,EAAEA,GAAI,CAAQ,OAAA,CAAA,GAAI,CAAEA,EAAAA,GAAI,CAAS,QAAA,CAAA,CAAA;GAAC;AACpEvE,EAAAA,sBAAsB,EAAE,qBAAqB;AAC7CC,EAAAA,KAAK,EAAEuE,KAAA,IAAA;IAAA,IAAC;AAACD,MAAAA,GAAAA;AAAG,KAAC,GAAAC,KAAA,CAAA;IAAA,OAAMD,GAAG,KAAK,CAAC,GAAI,CAAA,OAAA,EAASA,GAAI,CAAC,CAAA,GAAI,CAASA,OAAAA,EAAAA,GAAI,CAAC,CAAA,CAAA;GAAC;AACjErE,EAAAA,UAAU,EAAE,0CAA0C;AACtDC,EAAAA,aAAa,EAAE,iDAAiD;AAChEC,EAAAA,YAAY,EAAE,gDAAgD;AAC9DC,EAAAA,gBAAgB,EAAEoE,KAAA,IAAA;IAAA,IAAC;AAACC,MAAAA,OAAAA;AAAO,KAAC,GAAAD,KAAA,CAAA;IAAA,OACvB,CAAA,gDAAA,EAAkDC,OAAQ,CAAC,CAAA,CAAA;AAAA,GAAA;AAChEpE,EAAAA,eAAe,EAAE,kBAAkB;AACnCC,EAAAA,UAAU,EAAE,kBAAkB;AAC9BC,EAAAA,YAAY,EAAE,oBAAoB;AAClCC,EAAAA,YAAY,EAAE,sBAAsB;AACpCC,EAAAA,SAAS,EAAEiE,KAAA,IAAA;IAAA,IAAC;AAACC,MAAAA,cAAAA;AAAc,KAAC,GAAAD,KAAA,CAAA;IAAA,OACvB,CAAA,yDAAA,EAA2DC,cAAe,CAAE,CAAA,CAAA,CAAA;AAAA,GAAA;AACjFjE,EAAAA,SAAS,EAAEkE,KAAA,IAAA;IAAA,IAAC;AAAClE,MAAAA,SAAAA;AAA8B,KAAC,GAAAkE,KAAA,CAAA;IAAA,OAAM,CAAA,MAAA,EAAQlE,SAAU,CAAC,CAAA,CAAA;AAAA,GAAA;AACrEC,EAAAA,UAAU,EAAEkE,KAAA,IAAA;IAAA,IAAC;AAAClE,MAAAA,UAAAA;AAAgC,KAAC,GAAAkE,KAAA,CAAA;IAAA,OAAM,CAAA,KAAA,EAAOlE,UAAW,CAAC,CAAA,CAAA;AAAA,GAAA;AACxEC,EAAAA,aAAa,EAAEkE,MAAA,IAAA;IAAA,IAAC;MAACC,cAAc;AAAEC,MAAAA,cAAAA;AAAc,KAAC,GAAAF,MAAA,CAAA;AAAA,IAAA,OAC3C,CAAaC,WAAAA,EAAAA,cAAe,CAA2BC,yBAAAA,EAAAA,cAAe,CAAyC,wCAAA,CAAA,CAAA;AAAA,GAAA;AACpHnE,EAAAA,cAAc,EAAEoE,MAAA,IAAA;IAAA,IAAC;AAACC,MAAAA,cAAAA;AAAc,KAAC,GAAAD,MAAA,CAAA;IAAA,OAC5B,CAAA,YAAA,EAAcC,cAAe,CAAoE,mEAAA,CAAA,CAAA;AAAA,GAAA;AACtGpE,EAAAA,SAAS,EAAE,MAAM;AACjBG,EAAAA,gBAAgB,EAAE,+BAA+B;AACjDC,EAAAA,kBAAkB,EAAE,yCAAyC;AAC7DC,EAAAA,UAAU,EAAE,yBAAyB;AACrCC,EAAAA,cAAc,EAAE+D,MAAA,IAAA;IAAA,IAAC;AAACC,MAAAA,MAAAA;AAAM,KAAC,GAAAD,MAAA,CAAA;IAAA,OAAM,CAAA,qBAAA,EAAuBC,MAAO,CAAE,CAAA,CAAA,CAAA;AAAA,GAAA;AAC/D/D,EAAAA,YAAY,EAAEgE,MAAA,IAAA;IAAA,IAAC;AAACD,MAAAA,MAAAA;AAAM,KAAC,GAAAC,MAAA,CAAA;IAAA,OAAM,CAAA,eAAA,EAAiBD,MAAO,CAAE,CAAA,CAAA,CAAA;AAAA,GAAA;AACvD9D,EAAAA,cAAc,EAAEgE,MAAA,IAAA;IAAA,IAAC;AAACF,MAAAA,MAAAA;AAAM,KAAC,GAAAE,MAAA,CAAA;IAAA,OAAM,CAAA,UAAA,EAAYF,MAAO,CAAE,CAAA,CAAA,CAAA;AAAA,GAAA;AACpD7D,EAAAA,WAAW,EAAE,4BAA4B;AACzCC,EAAAA,YAAY,EAAE,mBAAmB;AACjCC,EAAAA,KAAK,EAAE,OAAO;AACdC,EAAAA,IAAI,EAAE,MAAM;AACZC,EAAAA,EAAE,EAAE,IAAI;AACRC,EAAAA,GAAG,EAAE,KAAK;AACVC,EAAAA,gBAAgB,EAAE,8CAA8C;AAChEC,EAAAA,iBAAiB,EACb,0EAA0E;AAC9EC,EAAAA,cAAc,EAAE,mBAAmB;AACnCC,EAAAA,gBAAgB,EAAEuD,MAAA,IAAA;IAAA,IAAC;AAACC,MAAAA,UAAAA;AAAU,KAAC,GAAAD,MAAA,CAAA;IAAA,OAAM,CAAA,OAAA,EAASC,UAAW,CAAU,SAAA,CAAA,CAAA;AAAA,GAAA;AACnEvD,EAAAA,gBAAgB,EAAE,gCAAgC;AAClDC,EAAAA,eAAe,EAAE,kBAAkB;AACnCC,EAAAA,oBAAoB,EAAEsD,MAAA,IAAA;IAAA,IAAC;AAACC,MAAAA,MAAAA;AAAM,KAAC,GAAAD,MAAA,CAAA;IAAA,OAAM,CAAA,QAAA,EAAUC,MAAO,CAAoB,mBAAA,CAAA,CAAA;AAAA,GAAA;AAC1EtD,EAAAA,uBAAuB,EAAEuD,MAAA,IAAA;IAAA,IAAC;AAACD,MAAAA,MAAAA;AAAM,KAAC,GAAAC,MAAA,CAAA;IAAA,OAC7B,CAAA,QAAA,EAAUD,MAAO,CAAwB,uBAAA,CAAA,CAAA;AAAA,GAAA;AAC9CrD,EAAAA,aAAa,EAAEuD,MAAA,IAAA;IAAA,IAAC;AAACF,MAAAA,MAAAA;AAAM,KAAC,GAAAE,MAAA,CAAA;IAAA,OAAM,CAAA,QAAA,EAAUF,MAAO,CAAW,UAAA,CAAA,CAAA;AAAA,GAAA;AAC1DpD,EAAAA,sBAAsB,EAAEuD,MAAA,IAAA;IAAA,IAAC;AAACH,MAAAA,MAAAA;AAAM,KAAC,GAAAG,MAAA,CAAA;IAAA,OAC5B,CAAA,QAAA,EAAUH,MAAO,CAAsB,qBAAA,CAAA,CAAA;AAAA,GAAA;AAC5CnD,EAAAA,yBAAyB,EAAEuD,MAAA,IAAA;IAAA,IAAC;AAACJ,MAAAA,MAAAA;AAAM,KAAC,GAAAI,MAAA,CAAA;IAAA,OAC/B,CAAA,QAAA,EAAUJ,MAAO,CAA0B,yBAAA,CAAA,CAAA;AAAA,GAAA;AAChDlD,EAAAA,eAAe,EAAEuD,MAAA,IAAA;IAAA,IAAC;AAACL,MAAAA,MAAAA;AAAM,KAAC,GAAAK,MAAA,CAAA;IAAA,OAAM,CAAA,QAAA,EAAUL,MAAO,CAAa,YAAA,CAAA,CAAA;AAAA,GAAA;AAC9DjD,EAAAA,aAAa,EAAEuD,MAAA,IAAA;IAAA,IAAC;AAACN,MAAAA,MAAAA;AAAM,KAAC,GAAAM,MAAA,CAAA;IAAA,OAAM,CAAA,QAAA,EAAUN,MAAO,CAAW,UAAA,CAAA,CAAA;AAAA,GAAA;AAC1DhD,EAAAA,gBAAgB,EAAEuD,MAAA,IAAA;IAAA,IAAC;AAACP,MAAAA,MAAAA;AAAM,KAAC,GAAAO,MAAA,CAAA;IAAA,OAAM,CAAA,QAAA,EAAUP,MAAO,CAAe,cAAA,CAAA,CAAA;AAAA,GAAA;AACjE/C,EAAAA,MAAM,EAAEuD,MAAA,IAAA;IAAA,IAAC;AAACR,MAAAA,MAAAA;AAAM,KAAC,GAAAQ,MAAA,CAAA;IAAA,OAAM,CAAA,QAAA,EAAUR,MAAO,CAAE,CAAA,CAAA,CAAA;AAAA,GAAA;AAC1C9C,EAAAA,QAAQ,EAAE,WAAW;AACrBC,EAAAA,cAAc,EAAE,kBAAkB;AAClCC,EAAAA,cAAc,EAAEqD,MAAA,IAAA;IAAA,IAAC;AAACT,MAAAA,MAAAA;AAAM,KAAC,GAAAS,MAAA,CAAA;IAAA,OAAM,CAAA,iBAAA,EAAmBT,MAAO,CAAC,CAAA,CAAA;AAAA,GAAA;AAC1D3C,EAAAA,SAAS,EAAE,YAAY;AACvBC,EAAAA,iBAAiB,EAAEoD,MAAA,IAAA;IAAA,IAAC;AAACV,MAAAA,MAAAA;AAAM,KAAC,GAAAU,MAAA,CAAA;IAAA,OAAM,CAAA,qBAAA,EAAuBV,MAAO,CAAC,CAAA,CAAA;AAAA,GAAA;AACjEzC,EAAAA,OAAO,EAAE,qDAAqD;AAC9DC,EAAAA,UAAU,EAAE,uCAAuC;AACnDC,EAAAA,mBAAmB,EAAE,oCAAoC;AACzDC,EAAAA,YAAY,EAAE,iCAAiC;AAC/CC,EAAAA,0BAA0B,EAAE,uCAAuC;AACnEC,EAAAA,UAAU,EAAE,mBAAmB;AAC/BC,EAAAA,cAAc,EAAE,yBAAyB;AACzCC,EAAAA,OAAO,EAAE,YAAY;AACrBC,EAAAA,eAAe,EAAE,sBAAsB;AACvCC,EAAAA,cAAc,EAAE,uBAAuB;AACvCC,EAAAA,YAAY,EAAE,4BAA4B;AAC1CC,EAAAA,cAAc,EAAE,sBAAsB;AACtCC,EAAAA,oBAAoB,EAChB,6DAAA;AACR;;;;;"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ILogger } from "./logging/log";
|
|
2
2
|
import type { Item } from "./multi-items/item-types";
|
|
3
|
-
import type {
|
|
3
|
+
import type { Hint, PerseusAnswerArea, PerseusWidget, PerseusWidgetsMap } from "./perseus-types";
|
|
4
4
|
import type { PerseusStrings } from "./strings";
|
|
5
5
|
import type { SizeClass } from "./util/sizing-utils";
|
|
6
6
|
import type { InteractiveGraphState } from "./widgets/interactive-graphs/types";
|
|
@@ -32,9 +32,6 @@ export type PerseusScore = {
|
|
|
32
32
|
total: number;
|
|
33
33
|
message?: string | null | undefined;
|
|
34
34
|
};
|
|
35
|
-
export type Hint = PerseusRenderer & {
|
|
36
|
-
replace?: boolean;
|
|
37
|
-
};
|
|
38
35
|
export type Version = {
|
|
39
36
|
major: number;
|
|
40
37
|
minor: number;
|
|
@@ -68,7 +65,7 @@ export type ChangeHandler = (arg1: {
|
|
|
68
65
|
plot?: any;
|
|
69
66
|
graph?: InteractiveGraphState;
|
|
70
67
|
}, callback?: () => unknown | null | undefined, silent?: boolean) => unknown;
|
|
71
|
-
export type ImageUploader = (file:
|
|
68
|
+
export type ImageUploader = (file: File, callback: (url: string) => unknown) => unknown;
|
|
72
69
|
export type WidgetSize = "normal" | "small" | "mini";
|
|
73
70
|
export type Path = ReadonlyArray<string>;
|
|
74
71
|
type StubTagEditorType = any;
|
|
@@ -79,7 +76,7 @@ type TrackInteractionArgs = {
|
|
|
79
76
|
} & Partial<TrackingGradedGroupExtraArguments> & Partial<TrackingSequenceExtraArguments>;
|
|
80
77
|
export declare const MafsGraphTypeFlags: readonly ["angle", "segment", "linear", "linear-system", "ray", "polygon", "circle", "quadratic", "sinusoid", "point"];
|
|
81
78
|
export declare const InteractiveGraphLockedFeaturesFlags: readonly ["interactive-graph-locked-features-m2b"];
|
|
82
|
-
export declare const InteractiveGraphEditorFlags: readonly ["start-coords-ui-phase-1", "start-coords-ui-phase-2"];
|
|
79
|
+
export declare const InteractiveGraphEditorFlags: readonly ["start-coords-ui-phase-1", "start-coords-ui-phase-2", "start-coords-ui-point", "start-coords-ui-polygon", "start-coords-ui-angle"];
|
|
83
80
|
/**
|
|
84
81
|
* APIOptions provides different ways to customize the behaviour of Perseus.
|
|
85
82
|
*
|
|
@@ -91,6 +88,10 @@ export type APIOptions = Readonly<{
|
|
|
91
88
|
onFocusChange?: (newFocusPath: FocusPath, oldFocusPath: FocusPath, keypadHeight?: number, focusedElement?: HTMLElement) => unknown;
|
|
92
89
|
GroupMetadataEditor?: React.ComponentType<StubTagEditorType>;
|
|
93
90
|
showAlignmentOptions?: boolean;
|
|
91
|
+
/**
|
|
92
|
+
* A boolean that indicates whether the associated problem has been
|
|
93
|
+
* answered correctly and should no longer be interactive.
|
|
94
|
+
*/
|
|
94
95
|
readOnly?: boolean;
|
|
95
96
|
answerableCallback?: (arg1: boolean) => unknown;
|
|
96
97
|
getAnotherHint?: () => unknown;
|
|
@@ -221,7 +222,6 @@ export type APIOptions = Readonly<{
|
|
|
221
222
|
}>;
|
|
222
223
|
type TeXProps = {
|
|
223
224
|
children: string;
|
|
224
|
-
katexOptions?: any;
|
|
225
225
|
onClick?: () => unknown;
|
|
226
226
|
onRender?: (root?: any) => unknown;
|
|
227
227
|
style?: any;
|
|
@@ -154,6 +154,9 @@ declare const _default: Readonly<{
|
|
|
154
154
|
} & {
|
|
155
155
|
"start-coords-ui-phase-1"?: boolean | undefined;
|
|
156
156
|
"start-coords-ui-phase-2"?: boolean | undefined;
|
|
157
|
+
"start-coords-ui-point"?: boolean | undefined;
|
|
158
|
+
"start-coords-ui-polygon"?: boolean | undefined;
|
|
159
|
+
"start-coords-ui-angle"?: boolean | undefined;
|
|
157
160
|
}) | undefined;
|
|
158
161
|
} | undefined;
|
|
159
162
|
onWidgetStartProps?: ((widgets: import("../perseus-types").PerseusWidgetsMap) => void) | undefined;
|
|
@@ -236,6 +239,9 @@ declare const _default: Readonly<{
|
|
|
236
239
|
} & {
|
|
237
240
|
"start-coords-ui-phase-1"?: boolean | undefined;
|
|
238
241
|
"start-coords-ui-phase-2"?: boolean | undefined;
|
|
242
|
+
"start-coords-ui-point"?: boolean | undefined;
|
|
243
|
+
"start-coords-ui-polygon"?: boolean | undefined;
|
|
244
|
+
"start-coords-ui-angle"?: boolean | undefined;
|
|
239
245
|
}) | undefined;
|
|
240
246
|
} | undefined;
|
|
241
247
|
onWidgetStartProps?: ((widgets: import("../perseus-types").PerseusWidgetsMap) => void) | undefined;
|
|
@@ -265,7 +271,7 @@ declare const _default: Readonly<{
|
|
|
265
271
|
visibleLabel: string | undefined;
|
|
266
272
|
ariaLabel: string | undefined;
|
|
267
273
|
value: string;
|
|
268
|
-
}, "
|
|
274
|
+
}, "static" | "analytics" | "onChange" | "ariaLabel" | "buttonsVisible" | "containerSizeClass" | "widgetId" | "problemNum" | "questionCompleted" | "findWidgets" | "hintMode" | "trackInteraction" | "keypadElement" | "visibleLabel" | "keypadConfiguration" | "alignment" | "reviewModeRubric" | "isLastUsedWidget"> & {
|
|
269
275
|
value?: string | undefined;
|
|
270
276
|
buttonSets?: import("../perseus-types").LegacyButtonSets | undefined;
|
|
271
277
|
onFocus?: ((blurPath: import("../types").FocusPath) => void) | undefined;
|
|
@@ -319,6 +325,9 @@ declare const _default: Readonly<{
|
|
|
319
325
|
} & {
|
|
320
326
|
"start-coords-ui-phase-1"?: boolean | undefined;
|
|
321
327
|
"start-coords-ui-phase-2"?: boolean | undefined;
|
|
328
|
+
"start-coords-ui-point"?: boolean | undefined;
|
|
329
|
+
"start-coords-ui-polygon"?: boolean | undefined;
|
|
330
|
+
"start-coords-ui-angle"?: boolean | undefined;
|
|
322
331
|
}) | undefined;
|
|
323
332
|
} | undefined;
|
|
324
333
|
onWidgetStartProps?: ((widgets: import("../perseus-types").PerseusWidgetsMap) => void) | undefined;
|
|
@@ -397,6 +406,9 @@ declare const _default: Readonly<{
|
|
|
397
406
|
} & {
|
|
398
407
|
"start-coords-ui-phase-1"?: boolean | undefined;
|
|
399
408
|
"start-coords-ui-phase-2"?: boolean | undefined;
|
|
409
|
+
"start-coords-ui-point"?: boolean | undefined;
|
|
410
|
+
"start-coords-ui-polygon"?: boolean | undefined;
|
|
411
|
+
"start-coords-ui-angle"?: boolean | undefined;
|
|
400
412
|
}) | undefined;
|
|
401
413
|
} | undefined;
|
|
402
414
|
onWidgetStartProps?: ((widgets: import("../perseus-types").PerseusWidgetsMap) => void) | undefined;
|
|
@@ -479,6 +491,9 @@ declare const _default: Readonly<{
|
|
|
479
491
|
} & {
|
|
480
492
|
"start-coords-ui-phase-1"?: boolean | undefined;
|
|
481
493
|
"start-coords-ui-phase-2"?: boolean | undefined;
|
|
494
|
+
"start-coords-ui-point"?: boolean | undefined;
|
|
495
|
+
"start-coords-ui-polygon"?: boolean | undefined;
|
|
496
|
+
"start-coords-ui-angle"?: boolean | undefined;
|
|
482
497
|
}) | undefined;
|
|
483
498
|
} | undefined;
|
|
484
499
|
onWidgetStartProps?: ((widgets: import("../perseus-types").PerseusWidgetsMap) => void) | undefined;
|
|
@@ -508,7 +523,7 @@ declare const _default: Readonly<{
|
|
|
508
523
|
visibleLabel: string | undefined;
|
|
509
524
|
ariaLabel: string | undefined;
|
|
510
525
|
value: string;
|
|
511
|
-
}, "
|
|
526
|
+
}, "static" | "analytics" | "onChange" | "ariaLabel" | "buttonsVisible" | "containerSizeClass" | "widgetId" | "problemNum" | "questionCompleted" | "findWidgets" | "hintMode" | "trackInteraction" | "keypadElement" | "visibleLabel" | "keypadConfiguration" | "alignment" | "reviewModeRubric" | "isLastUsedWidget"> & {
|
|
512
527
|
value?: string | undefined;
|
|
513
528
|
buttonSets?: import("../perseus-types").LegacyButtonSets | undefined;
|
|
514
529
|
onFocus?: ((blurPath: import("../types").FocusPath) => void) | undefined;
|
|
@@ -562,6 +577,9 @@ declare const _default: Readonly<{
|
|
|
562
577
|
} & {
|
|
563
578
|
"start-coords-ui-phase-1"?: boolean | undefined;
|
|
564
579
|
"start-coords-ui-phase-2"?: boolean | undefined;
|
|
580
|
+
"start-coords-ui-point"?: boolean | undefined;
|
|
581
|
+
"start-coords-ui-polygon"?: boolean | undefined;
|
|
582
|
+
"start-coords-ui-angle"?: boolean | undefined;
|
|
565
583
|
}) | undefined;
|
|
566
584
|
} | undefined;
|
|
567
585
|
onWidgetStartProps?: ((widgets: import("../perseus-types").PerseusWidgetsMap) => void) | undefined;
|
|
@@ -1,5 +1,12 @@
|
|
|
1
|
+
import { vec } from "mafs";
|
|
1
2
|
import * as React from "react";
|
|
2
3
|
import type { AngleGraphState, MafsGraphProps } from "../types";
|
|
3
4
|
type AngleGraphProps = MafsGraphProps<AngleGraphState>;
|
|
4
5
|
export declare function AngleGraph(props: AngleGraphProps): React.JSX.Element;
|
|
6
|
+
export declare function getAngleSideConstraint(sidePoint: [number, number], vertex: [number, number], snapDegrees: number): {
|
|
7
|
+
up: vec.Vector2;
|
|
8
|
+
down: vec.Vector2;
|
|
9
|
+
left: vec.Vector2;
|
|
10
|
+
right: vec.Vector2;
|
|
11
|
+
};
|
|
5
12
|
export {};
|
|
@@ -6,7 +6,6 @@ interface PolygonAngleProps {
|
|
|
6
6
|
centerPoint: vec.Vector2;
|
|
7
7
|
endPoints: [vec.Vector2, vec.Vector2];
|
|
8
8
|
polygonLines: readonly CollinearTuple[];
|
|
9
|
-
active: boolean;
|
|
10
9
|
range: [Interval, Interval];
|
|
11
10
|
showAngles: boolean;
|
|
12
11
|
snapTo: "grid" | "angles" | "sides";
|
|
@@ -17,7 +16,6 @@ interface AngleProps {
|
|
|
17
16
|
coords: [vec.Vector2, vec.Vector2];
|
|
18
17
|
showAngles: boolean;
|
|
19
18
|
allowReflexAngles: boolean;
|
|
20
|
-
angleOffsetDeg: number;
|
|
21
19
|
snapDegrees: number;
|
|
22
20
|
range: [Interval, Interval];
|
|
23
21
|
}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import type { CSSCursor } from "./css-cursor";
|
|
3
|
+
import type { KeyboardMovementConstraint } from "../use-draggable";
|
|
3
4
|
import type { vec } from "mafs";
|
|
4
5
|
type Props = {
|
|
5
6
|
point: vec.Vector2;
|
|
6
7
|
onMove: (newPoint: vec.Vector2) => unknown;
|
|
7
8
|
color?: string;
|
|
8
9
|
cursor?: CSSCursor | undefined;
|
|
9
|
-
|
|
10
|
+
constrain?: KeyboardMovementConstraint;
|
|
10
11
|
};
|
|
11
|
-
export declare const
|
|
12
|
+
export declare const MovablePoint: (props: Props) => React.JSX.Element;
|
|
12
13
|
export {};
|
|
@@ -2,4 +2,5 @@ import * as React from "react";
|
|
|
2
2
|
import type { MafsGraphProps, PolygonGraphState } from "../types";
|
|
3
3
|
type Props = MafsGraphProps<PolygonGraphState>;
|
|
4
4
|
export declare const PolygonGraph: (props: Props) => React.JSX.Element;
|
|
5
|
+
export declare const hasFocusVisible: (element: Element | null | undefined) => boolean;
|
|
5
6
|
export {};
|
|
@@ -21,7 +21,13 @@ export type Params = {
|
|
|
21
21
|
gestureTarget: RefObject<Element>;
|
|
22
22
|
onMove: (point: vec.Vector2) => unknown;
|
|
23
23
|
point: vec.Vector2;
|
|
24
|
-
|
|
24
|
+
constrainKeyboardMovement: KeyboardMovementConstraint;
|
|
25
|
+
};
|
|
26
|
+
export type KeyboardMovementConstraint = ((point: vec.Vector2) => vec.Vector2) | {
|
|
27
|
+
left: vec.Vector2;
|
|
28
|
+
right: vec.Vector2;
|
|
29
|
+
up: vec.Vector2;
|
|
30
|
+
down: vec.Vector2;
|
|
25
31
|
};
|
|
26
32
|
type DragState = {
|
|
27
33
|
dragging: boolean;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import type { LockedFunctionType } from "../../../perseus-types";
|
|
3
|
-
declare const LockedFunction: (props: LockedFunctionType) => React.JSX.Element;
|
|
3
|
+
declare const LockedFunction: (props: LockedFunctionType) => React.JSX.Element | null;
|
|
4
4
|
export default LockedFunction;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { vec } from "mafs";
|
|
2
2
|
export type Segment = [vec.Vector2, vec.Vector2];
|
|
3
3
|
export declare const segmentsIntersect: ([[a, b], [c, d]]: Segment, [[p, q], [r, s]]: Segment) => boolean;
|
|
4
|
+
export declare function findIntersectionOfRays([[a, b], [c, d]]: Segment, [[p, q], [r, s]]: Segment): vec.Vector2 | undefined;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { PerseusGraphType, PerseusGraphTypeCircle, PerseusGraphTypeLinear, PerseusGraphTypeLinearSystem, PerseusGraphTypeQuadratic, PerseusGraphTypeRay, PerseusGraphTypeSegment, PerseusGraphTypeSinusoid } from "../../../perseus-types";
|
|
1
|
+
import type { PerseusGraphType, PerseusGraphTypeAngle, PerseusGraphTypeCircle, PerseusGraphTypeLinear, PerseusGraphTypeLinearSystem, PerseusGraphTypePoint, PerseusGraphTypePolygon, PerseusGraphTypeQuadratic, PerseusGraphTypeRay, PerseusGraphTypeSegment, PerseusGraphTypeSinusoid } from "../../../perseus-types";
|
|
2
2
|
import type { InteractiveGraphState, PairOfPoints } from "../types";
|
|
3
3
|
import type { Coord } from "@khanacademy/perseus";
|
|
4
4
|
import type { Interval } from "mafs";
|
|
@@ -9,12 +9,19 @@ export type InitializeGraphStateParams = {
|
|
|
9
9
|
graph: PerseusGraphType;
|
|
10
10
|
};
|
|
11
11
|
export declare function initializeGraphState(params: InitializeGraphStateParams): InteractiveGraphState;
|
|
12
|
+
export declare function getPointCoords(graph: PerseusGraphTypePoint, range: [x: Interval, y: Interval], step: [x: number, y: number]): Coord[];
|
|
12
13
|
export declare function getSegmentCoords(graph: PerseusGraphTypeSegment, range: [x: Interval, y: Interval], step: [x: number, y: number]): PairOfPoints[];
|
|
13
14
|
export declare function getLineCoords(graph: PerseusGraphTypeRay | PerseusGraphTypeLinear, range: [x: Interval, y: Interval], step: [x: number, y: number]): PairOfPoints;
|
|
14
15
|
export declare function getLinearSystemCoords(graph: PerseusGraphTypeLinearSystem, range: [x: Interval, y: Interval], step: [x: number, y: number]): PairOfPoints[];
|
|
16
|
+
export declare function getPolygonCoords(graph: PerseusGraphTypePolygon, range: [x: Interval, y: Interval], step: [x: number, y: number]): Coord[];
|
|
15
17
|
export declare function getSinusoidCoords(graph: PerseusGraphTypeSinusoid, range: [x: Interval, y: Interval], step: [x: number, y: number]): [Coord, Coord];
|
|
16
18
|
export declare function getQuadraticCoords(graph: PerseusGraphTypeQuadratic, range: [x: Interval, y: Interval], step: [x: number, y: number]): [Coord, Coord, Coord];
|
|
17
19
|
export declare function getCircleCoords(graph: PerseusGraphTypeCircle): {
|
|
18
20
|
center: Coord;
|
|
19
21
|
radiusPoint: Coord;
|
|
20
22
|
};
|
|
23
|
+
export declare const getAngleCoords: (params: {
|
|
24
|
+
graph: PerseusGraphTypeAngle;
|
|
25
|
+
range: [x: Interval, y: Interval];
|
|
26
|
+
step: [x: number, y: number];
|
|
27
|
+
}) => [Coord, Coord, Coord];
|
|
@@ -11,7 +11,7 @@ export type GraphConfig = {
|
|
|
11
11
|
width: number;
|
|
12
12
|
height: number;
|
|
13
13
|
labels: readonly string[];
|
|
14
|
-
|
|
14
|
+
disableKeyboardInteraction?: boolean;
|
|
15
15
|
};
|
|
16
16
|
export declare const GraphConfigContext: React.Context<GraphConfig>;
|
|
17
17
|
export default function useGraphConfig(): GraphConfig;
|
|
@@ -18,5 +18,6 @@ export type StatefulMafsGraphProps = {
|
|
|
18
18
|
showProtractor: boolean;
|
|
19
19
|
labels: InteractiveGraphProps["labels"];
|
|
20
20
|
hintMode: boolean;
|
|
21
|
+
readOnly: boolean;
|
|
21
22
|
};
|
|
22
23
|
export declare const StatefulMafsGraph: React.ForwardRefExoticComponent<StatefulMafsGraphProps & React.RefAttributes<Partial<Widget>>>;
|
|
@@ -146,6 +146,9 @@ declare const _default: Readonly<{
|
|
|
146
146
|
} & {
|
|
147
147
|
"start-coords-ui-phase-1"?: boolean | undefined;
|
|
148
148
|
"start-coords-ui-phase-2"?: boolean | undefined;
|
|
149
|
+
"start-coords-ui-point"?: boolean | undefined;
|
|
150
|
+
"start-coords-ui-polygon"?: boolean | undefined;
|
|
151
|
+
"start-coords-ui-angle"?: boolean | undefined;
|
|
149
152
|
}) | undefined;
|
|
150
153
|
} | undefined;
|
|
151
154
|
onWidgetStartProps?: ((widgets: import("..").PerseusWidgetsMap) => void) | undefined;
|
|
@@ -211,6 +214,9 @@ declare const _default: Readonly<{
|
|
|
211
214
|
} & {
|
|
212
215
|
"start-coords-ui-phase-1"?: boolean | undefined;
|
|
213
216
|
"start-coords-ui-phase-2"?: boolean | undefined;
|
|
217
|
+
"start-coords-ui-point"?: boolean | undefined;
|
|
218
|
+
"start-coords-ui-polygon"?: boolean | undefined;
|
|
219
|
+
"start-coords-ui-angle"?: boolean | undefined;
|
|
214
220
|
}) | undefined;
|
|
215
221
|
} | undefined;
|
|
216
222
|
onWidgetStartProps?: ((widgets: import("..").PerseusWidgetsMap) => void) | undefined;
|