@khanacademy/perseus-core 9.0.0 → 10.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/data-schema.d.ts +20 -22
- package/dist/es/index.js +66 -52
- package/dist/es/index.js.map +1 -1
- package/dist/index.d.ts +8 -1
- package/dist/index.js +70 -51
- package/dist/index.js.map +1 -1
- package/dist/parse-perseus-json/general-purpose-parsers/defaulted.d.ts +1 -1
- package/dist/parse-perseus-json/general-purpose-parsers/index.d.ts +1 -1
- package/dist/parse-perseus-json/general-purpose-parsers/is-plain-object.d.ts +8 -0
- package/dist/parse-perseus-json/general-purpose-parsers/test-helpers.d.ts +5 -0
- package/dist/parse-perseus-json/perseus-parsers/categorizer-widget.d.ts +13 -3
- package/dist/parse-perseus-json/perseus-parsers/categorizer-widget.typetest.d.ts +1 -0
- package/dist/parse-perseus-json/perseus-parsers/cs-program-widget.d.ts +12 -3
- package/dist/parse-perseus-json/perseus-parsers/cs-program-widget.typetest.d.ts +1 -0
- package/dist/parse-perseus-json/perseus-parsers/definition-widget.d.ts +5 -3
- package/dist/parse-perseus-json/perseus-parsers/definition-widget.typetest.d.ts +1 -0
- package/dist/parse-perseus-json/perseus-parsers/dropdown-widget.d.ts +10 -3
- package/dist/parse-perseus-json/perseus-parsers/dropdown-widget.typetest.d.ts +1 -0
- package/dist/parse-perseus-json/perseus-parsers/explanation-widget.d.ts +7 -3
- package/dist/parse-perseus-json/perseus-parsers/explanation-widget.typetest.d.ts +1 -0
- package/dist/parse-perseus-json/perseus-parsers/expression-widget.d.ts +16 -3
- package/dist/parse-perseus-json/perseus-parsers/expression-widget.typetest.d.ts +1 -0
- package/dist/parse-perseus-json/perseus-parsers/graded-group-set-widget.d.ts +15 -3
- package/dist/parse-perseus-json/perseus-parsers/graded-group-set-widget.typetest.d.ts +1 -0
- package/dist/parse-perseus-json/perseus-parsers/graded-group-widget.d.ts +14 -4
- package/dist/parse-perseus-json/perseus-parsers/graded-group-widget.typetest.d.ts +1 -0
- package/dist/parse-perseus-json/perseus-parsers/grapher-widget.d.ts +51 -3
- package/dist/parse-perseus-json/perseus-parsers/grapher-widget.typetest.d.ts +1 -0
- package/dist/parse-perseus-json/perseus-parsers/group-widget.d.ts +1 -3
- package/dist/parse-perseus-json/perseus-parsers/group-widget.typetest.d.ts +1 -0
- package/dist/parse-perseus-json/perseus-parsers/hint.d.ts +9 -3
- package/dist/parse-perseus-json/perseus-parsers/hint.typetest.d.ts +1 -0
- package/dist/parse-perseus-json/perseus-parsers/iframe-widget.d.ts +12 -3
- package/dist/parse-perseus-json/perseus-parsers/iframe-widget.typetest.d.ts +1 -0
- package/dist/parse-perseus-json/perseus-parsers/image-widget.d.ts +22 -3
- package/dist/parse-perseus-json/perseus-parsers/image-widget.typetest.d.ts +1 -0
- package/dist/parse-perseus-json/perseus-parsers/input-number-widget.d.ts +10 -2
- package/dist/parse-perseus-json/perseus-parsers/input-number-widget.typetest.d.ts +1 -0
- package/dist/parse-perseus-json/perseus-parsers/interaction-widget.d.ts +125 -3
- package/dist/parse-perseus-json/perseus-parsers/interaction-widget.typetest.d.ts +1 -0
- package/dist/parse-perseus-json/perseus-parsers/interactive-graph-user-input.d.ts +60 -1
- package/dist/parse-perseus-json/perseus-parsers/interactive-graph-widget.d.ts +326 -5
- package/dist/parse-perseus-json/perseus-parsers/interactive-graph-widget.typetest.d.ts +1 -0
- package/dist/parse-perseus-json/perseus-parsers/label-image-widget.d.ts +16 -3
- package/dist/parse-perseus-json/perseus-parsers/label-image-widget.typetest.d.ts +1 -0
- package/dist/parse-perseus-json/perseus-parsers/legacy-button-sets.d.ts +1 -3
- package/dist/parse-perseus-json/perseus-parsers/matcher-widget.d.ts +7 -3
- package/dist/parse-perseus-json/perseus-parsers/matcher-widget.typetest.d.ts +1 -0
- package/dist/parse-perseus-json/perseus-parsers/matrix-widget.d.ts +8 -3
- package/dist/parse-perseus-json/perseus-parsers/matrix-widget.typetest.d.ts +1 -0
- package/dist/parse-perseus-json/perseus-parsers/measurer-widget.d.ts +18 -3
- package/dist/parse-perseus-json/perseus-parsers/measurer-widget.typetest.d.ts +1 -0
- package/dist/parse-perseus-json/perseus-parsers/molecule-renderer-widget.d.ts +5 -3
- package/dist/parse-perseus-json/perseus-parsers/molecule-renderer-widget.typetest.d.ts +1 -0
- package/dist/parse-perseus-json/perseus-parsers/number-line-widget.d.ts +17 -3
- package/dist/parse-perseus-json/perseus-parsers/number-line-widget.typetest.d.ts +1 -0
- package/dist/parse-perseus-json/perseus-parsers/numeric-input-widget.d.ts +21 -4
- package/dist/parse-perseus-json/perseus-parsers/numeric-input-widget.typetest.d.ts +1 -0
- package/dist/parse-perseus-json/perseus-parsers/orderer-widget.d.ts +7 -3
- package/dist/parse-perseus-json/perseus-parsers/orderer-widget.typetest.d.ts +1 -0
- package/dist/parse-perseus-json/perseus-parsers/passage-ref-widget.d.ts +5 -3
- package/dist/parse-perseus-json/perseus-parsers/passage-ref-widget.typetest.d.ts +1 -0
- package/dist/parse-perseus-json/perseus-parsers/passage-widget.d.ts +7 -3
- package/dist/parse-perseus-json/perseus-parsers/passage-widget.typetest.d.ts +1 -0
- package/dist/parse-perseus-json/perseus-parsers/perseus-answer-area.d.ts +11 -2
- package/dist/parse-perseus-json/perseus-parsers/perseus-answer-area.typetest.d.ts +1 -0
- package/dist/parse-perseus-json/perseus-parsers/perseus-image-background.d.ts +9 -3
- package/dist/parse-perseus-json/perseus-parsers/perseus-image-background.typetest.d.ts +1 -0
- package/dist/parse-perseus-json/perseus-parsers/perseus-image-detail.d.ts +4 -0
- package/dist/parse-perseus-json/perseus-parsers/perseus-image-detail.typetest.d.ts +1 -0
- package/dist/parse-perseus-json/perseus-parsers/phet-simulation-widget.d.ts +4 -3
- package/dist/parse-perseus-json/perseus-parsers/phet-simulation-widget.typetest.d.ts +1 -0
- package/dist/parse-perseus-json/perseus-parsers/plotter-widget.d.ts +15 -3
- package/dist/parse-perseus-json/perseus-parsers/plotter-widget.typetest.d.ts +1 -0
- package/dist/parse-perseus-json/perseus-parsers/python-program-widget.d.ts +4 -3
- package/dist/parse-perseus-json/perseus-parsers/python-program-widget.typetest.d.ts +1 -0
- package/dist/parse-perseus-json/perseus-parsers/sorter-widget.d.ts +5 -3
- package/dist/parse-perseus-json/perseus-parsers/sorter-widget.typetest.d.ts +1 -0
- package/dist/parse-perseus-json/perseus-parsers/table-widget.d.ts +6 -3
- package/dist/parse-perseus-json/perseus-parsers/table-widget.typetest.d.ts +1 -0
- package/dist/parse-perseus-json/perseus-parsers/video-widget.d.ts +4 -3
- package/dist/parse-perseus-json/perseus-parsers/video-widget.typetest.d.ts +1 -0
- package/dist/types.d.ts +1 -1
- package/dist/utils/deep-clone.d.ts +1 -2
- package/dist/utils/item-has-hints.d.ts +5 -0
- package/dist/utils/item-has-rationales.d.ts +5 -0
- package/dist/utils/split-perseus-item.d.ts +3 -3
- package/dist/utils/split-perseus-renderer.d.ts +7 -0
- package/dist/utils/test-utils.d.ts +2 -1
- package/dist/widgets/core-widget-registry.d.ts +8 -0
- package/dist/widgets/group/group-util.d.ts +12 -0
- package/dist/widgets/input-number/input-number-util.d.ts +12 -0
- package/dist/widgets/logic-export.types.d.ts +3 -1
- package/dist/widgets/matrix/matrix-util.d.ts +1 -2
- package/dist/widgets/number-line/number-line-util.d.ts +1 -2
- package/dist/widgets/orderer/orderer-util.d.ts +2 -6
- package/dist/widgets/plotter/plotter-util.d.ts +1 -1
- package/package.json +4 -3
- package/dist/parse-perseus-json/general-purpose-parsers/is-object.d.ts +0 -1
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
export declare const parsePythonProgramWidget: import("../parser-types").Parser<import("../..").WidgetOptions<"python-program", import("../general-purpose-parsers/object-types").OptionalizeProperties<{
|
|
2
|
+
programID: string;
|
|
3
|
+
height: number;
|
|
4
|
+
}>>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
export declare const parseSorterWidget: import("../parser-types").Parser<import("../..").WidgetOptions<"sorter", import("../general-purpose-parsers/object-types").OptionalizeProperties<{
|
|
2
|
+
correct: string[];
|
|
3
|
+
padding: boolean;
|
|
4
|
+
layout: "horizontal" | "vertical";
|
|
5
|
+
}>>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
export declare const parseTableWidget: import("../parser-types").Parser<import("../..").WidgetOptions<"table", import("../general-purpose-parsers/object-types").OptionalizeProperties<{
|
|
2
|
+
headers: string[];
|
|
3
|
+
rows: number;
|
|
4
|
+
columns: number;
|
|
5
|
+
answers: string[][];
|
|
6
|
+
}>>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
export declare const parseVideoWidget: import("../parser-types").Parser<import("../..").WidgetOptions<"video", import("../general-purpose-parsers/object-types").OptionalizeProperties<{
|
|
2
|
+
location: string;
|
|
3
|
+
static: boolean | undefined;
|
|
4
|
+
}>>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/types.d.ts
CHANGED
|
@@ -25,7 +25,7 @@ export type InteractiveMarkerType = MarkerType & {
|
|
|
25
25
|
showCorrectness?: "correct" | "incorrect";
|
|
26
26
|
focused?: boolean;
|
|
27
27
|
};
|
|
28
|
-
export type Relationship = "lt" | "gt" | "le" | "ge";
|
|
28
|
+
export type Relationship = "eq" | "lt" | "gt" | "le" | "ge";
|
|
29
29
|
export type Alignment = "default" | "block" | "inline-block" | "inline" | "float-left" | "float-right" | "full-width";
|
|
30
30
|
export type RecursiveReadonly<T> = {
|
|
31
31
|
readonly [K in keyof T]: RecursiveReadonly<T[K]>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { PerseusItem } from "../data-schema";
|
|
2
2
|
/**
|
|
3
|
-
* Return a copy of a
|
|
3
|
+
* Return a copy of a PerseusItem with rubric data removed (ie answers)
|
|
4
4
|
*
|
|
5
|
-
* @param
|
|
5
|
+
* @param original - the original, full PerseusItem (which includes the rubric - aka answer data)
|
|
6
6
|
*/
|
|
7
|
-
export default function splitPerseusItem(
|
|
7
|
+
export default function splitPerseusItem(original: PerseusItem): PerseusItem;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { PerseusRenderer } from "../data-schema";
|
|
2
|
+
/**
|
|
3
|
+
* Return a copy of a PerseusRenderer with rubric data removed (ie answers)
|
|
4
|
+
*
|
|
5
|
+
* @param original - the original, full PerseusRenderer (which includes the rubric - aka answer data)
|
|
6
|
+
*/
|
|
7
|
+
export default function splitPerseusRenderer(original: PerseusRenderer): PerseusRenderer;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type { PerseusItem } from "../data-schema";
|
|
1
|
+
import type { PerseusItem, PerseusRenderer } from "../data-schema";
|
|
2
|
+
export declare function generateTestPerseusRenderer(customFields?: Partial<PerseusRenderer>): PerseusRenderer;
|
|
2
3
|
/**
|
|
3
4
|
* Generate a Perseus item object for testing purposes.
|
|
4
5
|
*
|
|
@@ -28,3 +28,11 @@ export declare const getSupportedAlignments: (type: string) => ReadonlyArray<Ali
|
|
|
28
28
|
* the exports of a widget's module.
|
|
29
29
|
*/
|
|
30
30
|
export declare const getDefaultAlignment: (type: string) => Alignment;
|
|
31
|
+
/**
|
|
32
|
+
* We use a function here rather than registering widgets
|
|
33
|
+
* at the top-level of the file to avoid circular dependencies.
|
|
34
|
+
* Logic that needs core widget functionality
|
|
35
|
+
* (like a prod or in tests)
|
|
36
|
+
* need to call this function before trying to use that logic.
|
|
37
|
+
*/
|
|
38
|
+
export declare function registerCoreWidgets(): void;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { PerseusGroupWidgetOptions, PerseusRenderer } from "../../data-schema";
|
|
2
|
+
/**
|
|
3
|
+
* For details on the individual options, see the
|
|
4
|
+
* PerseusGroupWidgetOptions type
|
|
5
|
+
*/
|
|
6
|
+
export type GroupPublicWidgetOptions = PerseusRenderer;
|
|
7
|
+
/**
|
|
8
|
+
* Given a PerseusGroupWidgetOptions object, return a new object with only
|
|
9
|
+
* the public options that should be exposed to the client.
|
|
10
|
+
*/
|
|
11
|
+
declare function getGroupPublicWidgetOptions(options: PerseusGroupWidgetOptions): GroupPublicWidgetOptions;
|
|
12
|
+
export default getGroupPublicWidgetOptions;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { PerseusInputNumberWidgetOptions } from "../../data-schema";
|
|
2
|
+
/**
|
|
3
|
+
* For details on the individual options, see the
|
|
4
|
+
* PerseusInputNumberWidgetOptions type
|
|
5
|
+
*/
|
|
6
|
+
type InputNumberPublicWidgetOptions = Pick<PerseusInputNumberWidgetOptions, "answerType" | "inexact" | "maxError" | "rightAlign" | "simplify" | "size" | "customKeypad">;
|
|
7
|
+
/**
|
|
8
|
+
* Given a PerseusInputNumberWidgetOptions object, return a new object with only
|
|
9
|
+
* the public options that should be exposed to the client.
|
|
10
|
+
*/
|
|
11
|
+
declare function getInputNumberPublicWidgetOptions(options: PerseusInputNumberWidgetOptions): InputNumberPublicWidgetOptions;
|
|
12
|
+
export default getInputNumberPublicWidgetOptions;
|
|
@@ -3,7 +3,9 @@ import type getCSProgramPublicWidgetOptions from "./cs-program/cs-program-util";
|
|
|
3
3
|
import type getDropdownPublicWidgetOptions from "./dropdown/dropdown-util";
|
|
4
4
|
import type getExpressionPublicWidgetOptions from "./expression/expression-util";
|
|
5
5
|
import type getGrapherPublicWidgetOptions from "./grapher/grapher-util";
|
|
6
|
+
import type getGroupPublicWidgetOptions from "./group/group-util";
|
|
6
7
|
import type getIFramePublicWidgetOptions from "./iframe/iframe-util";
|
|
8
|
+
import type getInputNumberPublicWidgetOptions from "./input-number/input-number-util";
|
|
7
9
|
import type getInteractiveGraphPublicWidgetOptions from "./interactive-graph/interactive-graph-util";
|
|
8
10
|
import type getLabelImagePublicWidgetOptions from "./label-image/label-image-util";
|
|
9
11
|
import type getMatcherPublicWidgetOptions from "./matcher/matcher-util";
|
|
@@ -26,7 +28,7 @@ export type WidgetOptionsUpgradeMap = {
|
|
|
26
28
|
* TODO(LEMS-2870): figure out how to make this generic so we don't need to be
|
|
27
29
|
* so reliant on a set group of widgets
|
|
28
30
|
*/
|
|
29
|
-
export type PublicWidgetOptionsFunction = typeof
|
|
31
|
+
export type PublicWidgetOptionsFunction = typeof getCategorizerPublicWidgetOptions | typeof getCSProgramPublicWidgetOptions | typeof getDropdownPublicWidgetOptions | typeof getExpressionPublicWidgetOptions | typeof getGrapherPublicWidgetOptions | typeof getGroupPublicWidgetOptions | typeof getIFramePublicWidgetOptions | typeof getInputNumberPublicWidgetOptions | typeof getInteractiveGraphPublicWidgetOptions | typeof getLabelImagePublicWidgetOptions | typeof getMatcherPublicWidgetOptions | typeof getMatrixPublicWidgetOptions | typeof getNumberLinePublicWidgetOptions | typeof getNumericInputPublicWidgetOptions | typeof getOrdererPublicWidgetOptions | typeof getPlotterPublicWidgetOptions | typeof getRadioPublicWidgetOptions | typeof getSorterPublicWidgetOptions | typeof getTablePublicWidgetOptions;
|
|
30
32
|
export type WidgetLogic = {
|
|
31
33
|
name: string;
|
|
32
34
|
version?: Version;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
1
|
import type { PerseusMatrixWidgetOptions } from "../../data-schema";
|
|
2
|
-
type MatrixPublicWidgetOptions = Pick<PerseusMatrixWidgetOptions, "prefix" | "suffix" | "cursorPosition" | "matrixBoardSize" | "static">;
|
|
2
|
+
export type MatrixPublicWidgetOptions = Pick<PerseusMatrixWidgetOptions, "prefix" | "suffix" | "cursorPosition" | "matrixBoardSize" | "static">;
|
|
3
3
|
export default function getMatrixPublicWidgetOptions(options: PerseusMatrixWidgetOptions): MatrixPublicWidgetOptions;
|
|
4
|
-
export {};
|
|
@@ -1,4 +1,3 @@
|
|
|
1
1
|
import type { PerseusNumberLineWidgetOptions } from "../../data-schema";
|
|
2
|
-
type NumberLinePublicWidgetOptions = Pick<PerseusNumberLineWidgetOptions, "range" | "labelRange" | "labelStyle" | "labelTicks" | "isTickCtrl" | "divisionRange" | "numDivisions" | "snapDivisions" | "tickStep" | "initialX" | "showTooltips" | "static">;
|
|
2
|
+
export type NumberLinePublicWidgetOptions = Pick<PerseusNumberLineWidgetOptions, "range" | "labelRange" | "labelStyle" | "labelTicks" | "isTickCtrl" | "isInequality" | "divisionRange" | "numDivisions" | "snapDivisions" | "tickStep" | "initialX" | "showTooltips" | "static">;
|
|
3
3
|
export default function getNumberLinePublicWidgetOptions(options: PerseusNumberLineWidgetOptions): NumberLinePublicWidgetOptions;
|
|
4
|
-
export {};
|
|
@@ -3,14 +3,10 @@ import type { PerseusOrdererWidgetOptions } from "../../data-schema";
|
|
|
3
3
|
* For details on the individual options, see the
|
|
4
4
|
* PerseusOrdererWidgetOptions type
|
|
5
5
|
*/
|
|
6
|
-
type OrdererPublicWidgetOptions =
|
|
7
|
-
options: PerseusOrdererWidgetOptions["options"];
|
|
8
|
-
height: PerseusOrdererWidgetOptions["height"];
|
|
9
|
-
layout: PerseusOrdererWidgetOptions["layout"];
|
|
10
|
-
};
|
|
6
|
+
export type OrdererPublicWidgetOptions = Pick<PerseusOrdererWidgetOptions, "options" | "height" | "layout">;
|
|
11
7
|
/**
|
|
12
8
|
* Given a PerseusOrdererWidgetOptions object, return a new object with only
|
|
13
9
|
* the public options that should be exposed to the client.
|
|
14
10
|
*/
|
|
15
|
-
declare function getOrdererPublicWidgetOptions(
|
|
11
|
+
declare function getOrdererPublicWidgetOptions(fullOptions: PerseusOrdererWidgetOptions): OrdererPublicWidgetOptions;
|
|
16
12
|
export default getOrdererPublicWidgetOptions;
|
|
@@ -3,7 +3,7 @@ import type { PerseusPlotterWidgetOptions } from "../../data-schema";
|
|
|
3
3
|
* For details on the individual options, see the
|
|
4
4
|
* PerseusPlotterWidgetOptions type
|
|
5
5
|
*/
|
|
6
|
-
type PlotterPublicWidgetOptions = Omit<PerseusPlotterWidgetOptions, "correct">;
|
|
6
|
+
export type PlotterPublicWidgetOptions = Omit<PerseusPlotterWidgetOptions, "correct">;
|
|
7
7
|
/**
|
|
8
8
|
* Given a PerseusPlotterWidgetOptions object, return a new object with only
|
|
9
9
|
* the public options that should be exposed to the client.
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"description": "Shared Perseus infrastructure",
|
|
4
4
|
"author": "Khan Academy",
|
|
5
5
|
"license": "MIT",
|
|
6
|
-
"version": "
|
|
6
|
+
"version": "10.0.0",
|
|
7
7
|
"publishConfig": {
|
|
8
8
|
"access": "public"
|
|
9
9
|
},
|
|
@@ -22,8 +22,9 @@
|
|
|
22
22
|
"dist"
|
|
23
23
|
],
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"
|
|
26
|
-
"@khanacademy/
|
|
25
|
+
"tiny-invariant": "^1.3.1",
|
|
26
|
+
"@khanacademy/kas": "2.0.3",
|
|
27
|
+
"@khanacademy/perseus-utils": "2.0.2"
|
|
27
28
|
},
|
|
28
29
|
"devDependencies": {
|
|
29
30
|
"@khanacademy/wonder-stuff-core": "1.5.4",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function isObject(x: unknown): x is Record<keyof any, unknown>;
|