@khanacademy/perseus-core 12.0.0 → 13.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/es/index.js +44 -47
- package/dist/es/index.js.map +1 -1
- package/dist/index.d.ts +6 -3
- package/dist/index.js +47 -48
- package/dist/index.js.map +1 -1
- package/dist/parse-perseus-json/perseus-parsers/categorizer-user-input.d.ts +3 -0
- package/dist/parse-perseus-json/perseus-parsers/categorizer-user-input.typetest.d.ts +1 -0
- package/dist/parse-perseus-json/perseus-parsers/cs-program-user-input.d.ts +4 -0
- package/dist/parse-perseus-json/perseus-parsers/cs-program-user-input.typetest.d.ts +1 -0
- package/dist/parse-perseus-json/perseus-parsers/free-response-user-input.d.ts +3 -0
- package/dist/parse-perseus-json/perseus-parsers/free-response-user-input.typetest.d.ts +1 -0
- package/dist/parse-perseus-json/perseus-parsers/grapher-user-input.d.ts +24 -0
- package/dist/parse-perseus-json/perseus-parsers/grapher-user-input.typetest.d.ts +1 -0
- package/dist/parse-perseus-json/perseus-parsers/grapher-widget.d.ts +2 -1
- package/dist/parse-perseus-json/perseus-parsers/iframe-user-input.d.ts +4 -0
- package/dist/parse-perseus-json/perseus-parsers/iframe-user-input.typetest.d.ts +1 -0
- package/dist/parse-perseus-json/perseus-parsers/input-number-user-input.d.ts +3 -0
- package/dist/parse-perseus-json/perseus-parsers/input-number-user-input.typetest.d.ts +1 -0
- package/dist/parse-perseus-json/perseus-parsers/label-image-user-input.d.ts +6 -0
- package/dist/parse-perseus-json/perseus-parsers/label-image-user-input.typetest.d.ts +1 -0
- package/dist/parse-perseus-json/perseus-parsers/matcher-user-input.d.ts +4 -0
- package/dist/parse-perseus-json/perseus-parsers/matcher-user-input.typetest.d.ts +1 -0
- package/dist/parse-perseus-json/perseus-parsers/matrix-user-input.d.ts +3 -0
- package/dist/parse-perseus-json/perseus-parsers/matrix-user-input.typetest.d.ts +1 -0
- package/dist/parse-perseus-json/perseus-parsers/number-line-user-input.d.ts +7 -0
- package/dist/parse-perseus-json/perseus-parsers/number-line-user-input.typetest.d.ts +1 -0
- package/dist/parse-perseus-json/perseus-parsers/orderer-user-input.d.ts +3 -0
- package/dist/parse-perseus-json/perseus-parsers/orderer-user-input.typetest.d.ts +1 -0
- package/dist/parse-perseus-json/perseus-parsers/plotter-user-input.d.ts +1 -0
- package/dist/parse-perseus-json/perseus-parsers/plotter-user-input.typetest.d.ts +1 -0
- package/dist/parse-perseus-json/perseus-parsers/sorter-user-input.d.ts +4 -0
- package/dist/parse-perseus-json/perseus-parsers/sorter-user-input.typetest.d.ts +1 -0
- package/dist/parse-perseus-json/perseus-parsers/table-user-input.d.ts +1 -0
- package/dist/parse-perseus-json/perseus-parsers/table-user-input.typetest.d.ts +1 -0
- package/dist/utils/get-default-answer-area.d.ts +2 -0
- package/dist/utils/split-perseus-item.d.ts +10 -0
- package/dist/widgets/apply-defaults.d.ts +3 -0
- package/dist/widgets/core-widget-registry.d.ts +0 -1
- package/dist/widgets/expression/index.d.ts +7 -1
- package/dist/widgets/interactive-graph/index.d.ts +1 -1
- package/dist/widgets/label-image/label-image-util.d.ts +2 -3
- package/dist/widgets/logic-export.types.d.ts +0 -1
- package/dist/widgets/measurer/index.d.ts +7 -1
- package/dist/widgets/radio/derive-num-correct.d.ts +2 -0
- package/dist/widgets/radio/index.d.ts +7 -1
- package/package.json +7 -7
- package/dist/widgets/expression/expression-upgrade.d.ts +0 -11
- package/dist/widgets/measurer/measurer-upgrade.d.ts +0 -10
- package/dist/widgets/radio/radio-upgrade.d.ts +0 -12
- package/dist/widgets/upgrade.d.ts +0 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export declare const parseGrapherUserInput: import("../parser-types").Parser<import("../general-purpose-parsers/object-types").OptionalizeProperties<{
|
|
2
|
+
type: "absolute_value";
|
|
3
|
+
coords: [[number, number], [number, number]] | null;
|
|
4
|
+
}> | import("../general-purpose-parsers/object-types").OptionalizeProperties<{
|
|
5
|
+
type: "exponential";
|
|
6
|
+
asymptote: [[number, number], [number, number]];
|
|
7
|
+
coords: [[number, number], [number, number]] | null;
|
|
8
|
+
}> | import("../general-purpose-parsers/object-types").OptionalizeProperties<{
|
|
9
|
+
type: "linear";
|
|
10
|
+
coords: [[number, number], [number, number]] | null;
|
|
11
|
+
}> | import("../general-purpose-parsers/object-types").OptionalizeProperties<{
|
|
12
|
+
type: "logarithm";
|
|
13
|
+
asymptote: [[number, number], [number, number]];
|
|
14
|
+
coords: [[number, number], [number, number]] | null;
|
|
15
|
+
}> | import("../general-purpose-parsers/object-types").OptionalizeProperties<{
|
|
16
|
+
type: "quadratic";
|
|
17
|
+
coords: [[number, number], [number, number]] | null;
|
|
18
|
+
}> | import("../general-purpose-parsers/object-types").OptionalizeProperties<{
|
|
19
|
+
type: "sinusoid";
|
|
20
|
+
coords: [[number, number], [number, number]] | null;
|
|
21
|
+
}> | import("../general-purpose-parsers/object-types").OptionalizeProperties<{
|
|
22
|
+
type: "tangent";
|
|
23
|
+
coords: [[number, number], [number, number]] | null;
|
|
24
|
+
}>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
import type { Parser } from "../parser-types";
|
|
2
|
+
export declare const parseGrapherWidget: Parser<import("../..").WidgetOptions<"grapher", import("../general-purpose-parsers/object-types").OptionalizeProperties<{
|
|
2
3
|
availableTypes: ("absolute_value" | "exponential" | "linear" | "logarithm" | "quadratic" | "sinusoid" | "tangent")[];
|
|
3
4
|
correct: import("../general-purpose-parsers/object-types").OptionalizeProperties<{
|
|
4
5
|
type: "absolute_value";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare const parseLabelImageUserInput: import("../parser-types").Parser<import("../general-purpose-parsers/object-types").OptionalizeProperties<{
|
|
2
|
+
markers: import("../general-purpose-parsers/object-types").OptionalizeProperties<{
|
|
3
|
+
selected: string[] | undefined;
|
|
4
|
+
label: string;
|
|
5
|
+
}>[];
|
|
6
|
+
}>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare const parseNumberLineUserInput: import("../parser-types").Parser<import("../general-purpose-parsers/object-types").OptionalizeProperties<{
|
|
2
|
+
isTickCrtl: boolean | undefined;
|
|
3
|
+
numLinePosition: number;
|
|
4
|
+
rel: "eq" | "lt" | "gt" | "le" | "ge";
|
|
5
|
+
numDivisions: number;
|
|
6
|
+
divisionRange: number[];
|
|
7
|
+
}>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const parsePlotterUserInput: import("../parser-types").Parser<number[]>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const parseTableUserInput: import("../parser-types").Parser<string[][]>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -5,3 +5,13 @@ import type { PerseusItem } from "../data-schema";
|
|
|
5
5
|
* @param original - the original, full PerseusItem (which includes the rubric - aka answer data)
|
|
6
6
|
*/
|
|
7
7
|
export default function splitPerseusItem(original: PerseusItem): PerseusItem;
|
|
8
|
+
/**
|
|
9
|
+
* Returns a JSON copy of a PerseusItem with rubric data (i.e. answers and
|
|
10
|
+
* hints) removed. Idempotent and deterministic.
|
|
11
|
+
*
|
|
12
|
+
* @param data a {@linkcode PerseusItem}, either as JSON or as an object.
|
|
13
|
+
* @returns {string} the answerless data formatted as JSON
|
|
14
|
+
* @throws {SyntaxError} given malformed JSON or data that can't be parsed as
|
|
15
|
+
* a Perseus item.
|
|
16
|
+
*/
|
|
17
|
+
export declare function splitPerseusItemJSON(data: unknown): string;
|
|
@@ -3,7 +3,6 @@ import type { Alignment } from "../types";
|
|
|
3
3
|
export declare function isWidgetRegistered(type: string): boolean;
|
|
4
4
|
export declare function getCurrentVersion(type: string): import("..").Version;
|
|
5
5
|
export declare const getPublicWidgetOptionsFunction: (type: string) => PublicWidgetOptionsFunction;
|
|
6
|
-
export declare function getWidgetOptionsUpgrades(type: string): import("./logic-export.types").WidgetOptionsUpgradeMap;
|
|
7
6
|
export declare function getDefaultWidgetOptions(type: string): any;
|
|
8
7
|
/**
|
|
9
8
|
* Handling for the optional alignments for widgets
|
|
@@ -1,4 +1,10 @@
|
|
|
1
|
+
import type { PerseusExpressionWidgetOptions } from "../../data-schema";
|
|
1
2
|
import type { WidgetLogic } from "../logic-export.types";
|
|
2
|
-
export
|
|
3
|
+
export declare const currentVersion: {
|
|
4
|
+
major: number;
|
|
5
|
+
minor: number;
|
|
6
|
+
};
|
|
7
|
+
export type ExpressionDefaultWidgetOptions = Pick<PerseusExpressionWidgetOptions, "answerForms" | "times" | "buttonSets" | "functions">;
|
|
8
|
+
export declare const defaultWidgetOptions: ExpressionDefaultWidgetOptions;
|
|
3
9
|
declare const expressionWidgetLogic: WidgetLogic;
|
|
4
10
|
export default expressionWidgetLogic;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { PerseusInteractiveGraphWidgetOptions } from "../../data-schema";
|
|
2
2
|
import type { WidgetLogic } from "../logic-export.types";
|
|
3
|
-
export type InteractiveGraphDefaultWidgetOptions = Pick<PerseusInteractiveGraphWidgetOptions, "labels" | "range" | "step" | "backgroundImage" | "markings" | "showTooltips" | "showProtractor" | "graph" | "correct">;
|
|
3
|
+
export type InteractiveGraphDefaultWidgetOptions = Pick<PerseusInteractiveGraphWidgetOptions, "labels" | "labelLocation" | "range" | "step" | "backgroundImage" | "markings" | "showTooltips" | "showProtractor" | "graph" | "correct">;
|
|
4
4
|
declare const interactiveGraphWidgetLogic: WidgetLogic;
|
|
5
5
|
export default interactiveGraphWidgetLogic;
|
|
@@ -3,7 +3,7 @@ import type { PerseusLabelImageMarker, PerseusLabelImageWidgetOptions } from "..
|
|
|
3
3
|
* For details on the individual options, see the
|
|
4
4
|
* PerseusLabelImageWidgetOptions type
|
|
5
5
|
*/
|
|
6
|
-
type LabelImagePublicWidgetOptions = {
|
|
6
|
+
export type LabelImagePublicWidgetOptions = {
|
|
7
7
|
choices: PerseusLabelImageWidgetOptions["choices"];
|
|
8
8
|
imageUrl: PerseusLabelImageWidgetOptions["imageUrl"];
|
|
9
9
|
imageAlt: PerseusLabelImageWidgetOptions["imageAlt"];
|
|
@@ -14,6 +14,5 @@ type LabelImagePublicWidgetOptions = {
|
|
|
14
14
|
multipleAnswers: PerseusLabelImageWidgetOptions["multipleAnswers"];
|
|
15
15
|
static: PerseusLabelImageWidgetOptions["static"];
|
|
16
16
|
};
|
|
17
|
-
type LabelImageMarkerPublicData = Pick<PerseusLabelImageMarker, "x" | "y" | "label">;
|
|
17
|
+
export type LabelImageMarkerPublicData = Pick<PerseusLabelImageMarker, "x" | "y" | "label">;
|
|
18
18
|
export default function getLabelImagePublicWidgetOptions(options: PerseusLabelImageWidgetOptions): LabelImagePublicWidgetOptions;
|
|
19
|
-
export {};
|
|
@@ -33,7 +33,6 @@ export type PublicWidgetOptionsFunction = typeof getCategorizerPublicWidgetOptio
|
|
|
33
33
|
export type WidgetLogic = {
|
|
34
34
|
name: string;
|
|
35
35
|
version?: Version;
|
|
36
|
-
widgetOptionsUpgrades?: WidgetOptionsUpgradeMap;
|
|
37
36
|
defaultWidgetOptions?: any;
|
|
38
37
|
supportedAlignments?: ReadonlyArray<Alignment>;
|
|
39
38
|
defaultAlignment?: Alignment;
|
|
@@ -1,4 +1,10 @@
|
|
|
1
|
+
import type { PerseusMeasurerWidgetOptions } from "../../data-schema";
|
|
1
2
|
import type { WidgetLogic } from "../logic-export.types";
|
|
2
|
-
export
|
|
3
|
+
export declare const currentVersion: {
|
|
4
|
+
major: number;
|
|
5
|
+
minor: number;
|
|
6
|
+
};
|
|
7
|
+
export type MeasurerDefaultWidgetOptions = Pick<PerseusMeasurerWidgetOptions, "box" | "image" | "showProtractor" | "showRuler" | "rulerLabel" | "rulerTicks" | "rulerPixels" | "rulerLength">;
|
|
8
|
+
export declare const defaultWidgetOptions: MeasurerDefaultWidgetOptions;
|
|
3
9
|
declare const measurerWidgetLogic: WidgetLogic;
|
|
4
10
|
export default measurerWidgetLogic;
|
|
@@ -1,4 +1,10 @@
|
|
|
1
|
+
import type { PerseusRadioWidgetOptions } from "../../data-schema";
|
|
1
2
|
import type { WidgetLogic } from "../logic-export.types";
|
|
2
|
-
export
|
|
3
|
+
export declare const currentVersion: {
|
|
4
|
+
major: number;
|
|
5
|
+
minor: number;
|
|
6
|
+
};
|
|
7
|
+
export type RadioDefaultWidgetOptions = Pick<PerseusRadioWidgetOptions, "choices" | "displayCount" | "randomize" | "hasNoneOfTheAbove" | "multipleSelect" | "countChoices" | "deselectEnabled">;
|
|
8
|
+
export declare const defaultWidgetOptions: RadioDefaultWidgetOptions;
|
|
3
9
|
declare const radioWidgetLogic: WidgetLogic;
|
|
4
10
|
export default radioWidgetLogic;
|
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": "13.0.0",
|
|
7
7
|
"publishConfig": {
|
|
8
8
|
"access": "public"
|
|
9
9
|
},
|
|
@@ -22,17 +22,17 @@
|
|
|
22
22
|
"dist"
|
|
23
23
|
],
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"tiny-invariant": "
|
|
26
|
-
"@khanacademy/kas": "2.0.
|
|
27
|
-
"@khanacademy/perseus-utils": "2.0.
|
|
25
|
+
"tiny-invariant": "1.3.1",
|
|
26
|
+
"@khanacademy/kas": "2.0.5",
|
|
27
|
+
"@khanacademy/perseus-utils": "2.0.4"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
30
|
"@khanacademy/wonder-stuff-core": "1.5.4",
|
|
31
|
-
"underscore": "
|
|
32
|
-
"perseus-build-settings": "0.6.
|
|
31
|
+
"underscore": "1.4.4",
|
|
32
|
+
"perseus-build-settings": "0.6.2"
|
|
33
33
|
},
|
|
34
34
|
"peerDependencies": {
|
|
35
|
-
"@khanacademy/wonder-stuff-core": "1.5.4",
|
|
35
|
+
"@khanacademy/wonder-stuff-core": "^1.5.4",
|
|
36
36
|
"underscore": "^1.4.4"
|
|
37
37
|
},
|
|
38
38
|
"keywords": [],
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { PerseusExpressionWidgetOptions } from "../../data-schema";
|
|
2
|
-
export declare const currentVersion: {
|
|
3
|
-
major: number;
|
|
4
|
-
minor: number;
|
|
5
|
-
};
|
|
6
|
-
export declare const widgetOptionsUpgrades: {
|
|
7
|
-
readonly "2": (v1options: any) => PerseusExpressionWidgetOptions;
|
|
8
|
-
readonly "1": (v0options: any) => PerseusExpressionWidgetOptions;
|
|
9
|
-
};
|
|
10
|
-
export type ExpressionDefaultWidgetOptions = Pick<PerseusExpressionWidgetOptions, "answerForms" | "times" | "buttonSets" | "functions">;
|
|
11
|
-
export declare const defaultWidgetOptions: ExpressionDefaultWidgetOptions;
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { PerseusMeasurerWidgetOptions } from "../../data-schema";
|
|
2
|
-
export declare const currentVersion: {
|
|
3
|
-
major: number;
|
|
4
|
-
minor: number;
|
|
5
|
-
};
|
|
6
|
-
export declare const widgetOptionsUpgrades: {
|
|
7
|
-
readonly "1": (v0options: any) => PerseusMeasurerWidgetOptions;
|
|
8
|
-
};
|
|
9
|
-
export type MeasurerDefaultWidgetOptions = Pick<PerseusMeasurerWidgetOptions, "box" | "image" | "showProtractor" | "showRuler" | "rulerLabel" | "rulerTicks" | "rulerPixels" | "rulerLength">;
|
|
10
|
-
export declare const defaultWidgetOptions: MeasurerDefaultWidgetOptions;
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import type { PerseusRadioWidgetOptions } from "../../data-schema";
|
|
2
|
-
export declare const currentVersion: {
|
|
3
|
-
major: number;
|
|
4
|
-
minor: number;
|
|
5
|
-
};
|
|
6
|
-
export declare function deriveNumCorrect(options: PerseusRadioWidgetOptions): number;
|
|
7
|
-
export declare const widgetOptionsUpgrades: {
|
|
8
|
-
readonly "2": (v1props: any) => PerseusRadioWidgetOptions;
|
|
9
|
-
readonly "1": (v0props: any) => PerseusRadioWidgetOptions;
|
|
10
|
-
};
|
|
11
|
-
export type RadioDefaultWidgetOptions = Pick<PerseusRadioWidgetOptions, "choices" | "displayCount" | "randomize" | "hasNoneOfTheAbove" | "multipleSelect" | "countChoices" | "deselectEnabled">;
|
|
12
|
-
export declare const defaultWidgetOptions: RadioDefaultWidgetOptions;
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import type { PerseusWidget, PerseusWidgetsMap } from "../data-schema";
|
|
2
|
-
export declare const upgradeWidgetInfoToLatestVersion: (oldWidgetInfo: PerseusWidget) => PerseusWidget;
|
|
3
|
-
export declare function getUpgradedWidgetOptions(oldWidgetOptions: PerseusWidgetsMap): PerseusWidgetsMap;
|