@khanacademy/perseus 36.1.1 → 36.1.2
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 +77 -49
- package/dist/es/index.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +78 -48
- package/dist/index.js.map +1 -1
- package/dist/util/graphie.d.ts +1 -1
- package/dist/validation.types.d.ts +6 -4
- package/dist/widgets/cs-program/cs-program.d.ts +2 -5
- package/dist/widgets/interactive-graph.d.ts +2 -2
- package/dist/widgets/interactive-graphs/math/angles.d.ts +3 -1
- package/dist/widgets/interactive-graphs/math/index.d.ts +1 -1
- package/package.json +9 -9
package/dist/es/index.js
CHANGED
|
@@ -10070,7 +10070,10 @@ const GraphUtils = {
|
|
|
10070
10070
|
return point.distanceToPoint(point1, point2);
|
|
10071
10071
|
},
|
|
10072
10072
|
// Find the angle in degrees between two or three points
|
|
10073
|
-
|
|
10073
|
+
// This function is deprecated as it has several issues calculating
|
|
10074
|
+
// correctly when dealing with reflex angles or the position of point2
|
|
10075
|
+
// (LEMS-2202) Remove this function while removing the Legacy Interactive Graph.
|
|
10076
|
+
findAngleDeprecated: function (point1, point2, vertex) {
|
|
10074
10077
|
if (vertex === undefined) {
|
|
10075
10078
|
const x = point1[0] - point2[0];
|
|
10076
10079
|
const y = point1[1] - point2[1];
|
|
@@ -10079,7 +10082,7 @@ const GraphUtils = {
|
|
|
10079
10082
|
}
|
|
10080
10083
|
return (180 + Math.atan2(-y, -x) * 180 / Math.PI + 360) % 360;
|
|
10081
10084
|
}
|
|
10082
|
-
return GraphUtils.
|
|
10085
|
+
return GraphUtils.findAngleDeprecated(point1, vertex) - GraphUtils.findAngleDeprecated(point2, vertex);
|
|
10083
10086
|
},
|
|
10084
10087
|
graphs: {}
|
|
10085
10088
|
};
|
|
@@ -11095,8 +11098,8 @@ _.extend(GraphUtils.Graphie.prototype, {
|
|
|
11095
11098
|
p1 = options.point3;
|
|
11096
11099
|
p3 = options.point1;
|
|
11097
11100
|
}
|
|
11098
|
-
const startAngle = GraphUtils.
|
|
11099
|
-
const endAngle = GraphUtils.
|
|
11101
|
+
const startAngle = GraphUtils.findAngleDeprecated(p1, vertex);
|
|
11102
|
+
const endAngle = GraphUtils.findAngleDeprecated(p3, vertex);
|
|
11100
11103
|
const angle = (endAngle + 360 - startAngle) % 360;
|
|
11101
11104
|
const halfAngle = (startAngle + angle / 2) % 360;
|
|
11102
11105
|
const sPadding = 5 * options.pushOut;
|
|
@@ -11263,15 +11266,15 @@ _.extend(GraphUtils.Graphie.prototype, {
|
|
|
11263
11266
|
let angle = 135;
|
|
11264
11267
|
let halfAngle;
|
|
11265
11268
|
if (p1 && p3) {
|
|
11266
|
-
const startAngle = GraphUtils.
|
|
11267
|
-
const endAngle = GraphUtils.
|
|
11269
|
+
const startAngle = GraphUtils.findAngleDeprecated(p1, vertex);
|
|
11270
|
+
const endAngle = GraphUtils.findAngleDeprecated(p3, vertex);
|
|
11268
11271
|
angle = (endAngle + 360 - startAngle) % 360;
|
|
11269
11272
|
halfAngle = (startAngle + angle / 2 + 180) % 360;
|
|
11270
11273
|
} else if (p1) {
|
|
11271
|
-
const parallelAngle = GraphUtils.
|
|
11274
|
+
const parallelAngle = GraphUtils.findAngleDeprecated(vertex, p1);
|
|
11272
11275
|
halfAngle = parallelAngle + 90;
|
|
11273
11276
|
} else if (p3) {
|
|
11274
|
-
const parallelAngle = GraphUtils.
|
|
11277
|
+
const parallelAngle = GraphUtils.findAngleDeprecated(p3, vertex);
|
|
11275
11278
|
halfAngle = parallelAngle + 90;
|
|
11276
11279
|
} else {
|
|
11277
11280
|
// Standalone point
|
|
@@ -11477,7 +11480,7 @@ _.extend(GraphUtils.Graphie.prototype, {
|
|
|
11477
11480
|
const vertex = constraints.fixedAngle.vertex.coord || constraints.fixedAngle.vertex;
|
|
11478
11481
|
const ref = constraints.fixedAngle.ref.coord || constraints.fixedAngle.ref;
|
|
11479
11482
|
const distPoint = constraints.fixedDistance.point.coord || constraints.fixedDistance.point;
|
|
11480
|
-
const constrainedAngle = (constraints.fixedAngle.angle + GraphUtils.
|
|
11483
|
+
const constrainedAngle = (constraints.fixedAngle.angle + GraphUtils.findAngleDeprecated(ref, vertex)) * Math.PI / 180;
|
|
11481
11484
|
const length = constraints.fixedDistance.dist;
|
|
11482
11485
|
newCoord[0] = length * Math.cos(constrainedAngle) + distPoint[0];
|
|
11483
11486
|
newCoord[1] = length * Math.sin(constrainedAngle) + distPoint[1];
|
|
@@ -11486,8 +11489,8 @@ _.extend(GraphUtils.Graphie.prototype, {
|
|
|
11486
11489
|
} else if (typeof constraints.fixedAngle.angle === "number") {
|
|
11487
11490
|
const vertex = constraints.fixedAngle.vertex.coord || constraints.fixedAngle.vertex;
|
|
11488
11491
|
const ref = constraints.fixedAngle.ref.coord || constraints.fixedAngle.ref;
|
|
11489
|
-
const constrainedAngle = (constraints.fixedAngle.angle + GraphUtils.
|
|
11490
|
-
const angle = GraphUtils.
|
|
11492
|
+
const constrainedAngle = (constraints.fixedAngle.angle + GraphUtils.findAngleDeprecated(ref, vertex)) * Math.PI / 180;
|
|
11493
|
+
const angle = GraphUtils.findAngleDeprecated(coord, vertex) * Math.PI / 180;
|
|
11491
11494
|
const distance = GraphUtils.getDistance(coord, vertex);
|
|
11492
11495
|
let length = distance * Math.cos(constrainedAngle - angle);
|
|
11493
11496
|
length = length < 1.0 ? 1.0 : length;
|
|
@@ -11497,7 +11500,7 @@ _.extend(GraphUtils.Graphie.prototype, {
|
|
|
11497
11500
|
// distance is constrained
|
|
11498
11501
|
} else if (typeof constraints.fixedDistance.dist === "number") {
|
|
11499
11502
|
const distPoint = constraints.fixedDistance.point.coord || constraints.fixedDistance.point;
|
|
11500
|
-
let angle = GraphUtils.
|
|
11503
|
+
let angle = GraphUtils.findAngleDeprecated(coord, distPoint);
|
|
11501
11504
|
const length = constraints.fixedDistance.dist;
|
|
11502
11505
|
angle = angle * Math.PI / 180;
|
|
11503
11506
|
newCoord[0] = length * Math.cos(angle) + distPoint[0];
|
|
@@ -13697,7 +13700,7 @@ _.extend(MovableAngle.prototype, {
|
|
|
13697
13700
|
_.each([0, 2], function (i) {
|
|
13698
13701
|
const oldPoint = points[i].coord;
|
|
13699
13702
|
let newPoint = vector$1.add(oldPoint, delta);
|
|
13700
|
-
let angle = GraphUtils.
|
|
13703
|
+
let angle = GraphUtils.findAngleDeprecated(newVertex, newPoint);
|
|
13701
13704
|
angle *= Math.PI / 180;
|
|
13702
13705
|
newPoint = graphie.constrainToBoundsOnAngle(newPoint, 10, angle);
|
|
13703
13706
|
newPoints[i] = newPoint;
|
|
@@ -13730,7 +13733,7 @@ _.extend(MovableAngle.prototype, {
|
|
|
13730
13733
|
return false;
|
|
13731
13734
|
}
|
|
13732
13735
|
if (snap) {
|
|
13733
|
-
let angle = GraphUtils.
|
|
13736
|
+
let angle = GraphUtils.findAngleDeprecated(newPoint, vertex);
|
|
13734
13737
|
angle = Math.round((angle - snapOffset) / snap) * snap + snapOffset;
|
|
13735
13738
|
const distance = GraphUtils.getDistance(newPoint, vertex);
|
|
13736
13739
|
return vector$1.add(vertex, polar$1(distance, angle));
|
|
@@ -13818,7 +13821,7 @@ _.extend(MovableAngle.prototype, {
|
|
|
13818
13821
|
* coords when interpreted in a clockwise direction.
|
|
13819
13822
|
*/
|
|
13820
13823
|
_getClockwiseAngle: function (coords) {
|
|
13821
|
-
const rawAngle = GraphUtils.
|
|
13824
|
+
const rawAngle = GraphUtils.findAngleDeprecated(
|
|
13822
13825
|
// The order of these is "weird" to match what a clockwise
|
|
13823
13826
|
// order is in graphie.labelAngle
|
|
13824
13827
|
coords[2],
|
|
@@ -30672,16 +30675,39 @@ function polar(r, th) {
|
|
|
30672
30675
|
th = th * Math.PI / 180;
|
|
30673
30676
|
return [r[0] * Math.cos(th), r[1] * Math.sin(th)];
|
|
30674
30677
|
}
|
|
30675
|
-
|
|
30676
|
-
|
|
30677
|
-
|
|
30678
|
-
|
|
30679
|
-
|
|
30680
|
-
|
|
30681
|
-
|
|
30682
|
-
return
|
|
30678
|
+
// This function calculates the angle between two points and an optional vertex.
|
|
30679
|
+
// If the vertex is not provided, the angle is measured between the two points.
|
|
30680
|
+
// This does not account for reflex angles or clockwise position.
|
|
30681
|
+
const getAngleFromVertex = (point, vertex) => {
|
|
30682
|
+
const x = point[0] - vertex[0];
|
|
30683
|
+
const y = point[1] - vertex[1];
|
|
30684
|
+
if (!x && !y) {
|
|
30685
|
+
return 0;
|
|
30683
30686
|
}
|
|
30684
|
-
return
|
|
30687
|
+
return (180 + Math.atan2(-y, -x) * 180 / Math.PI + 360) % 360;
|
|
30688
|
+
};
|
|
30689
|
+
|
|
30690
|
+
// This function calculates the clockwise angle between three points,
|
|
30691
|
+
// and is used to generate the labels and equation strings of the
|
|
30692
|
+
// current angle for the interactive graph.
|
|
30693
|
+
const getClockwiseAngle = (coords, allowReflexAngles = false) => {
|
|
30694
|
+
const coordsCopy = [...coords];
|
|
30695
|
+
// The coords are saved as [point1, vertex, point2] in the interactive graph
|
|
30696
|
+
const areClockwise = clockwise$1([coordsCopy[0], coordsCopy[2], coordsCopy[1]]);
|
|
30697
|
+
|
|
30698
|
+
// We may need to reverse the coordinates if we allow
|
|
30699
|
+
// reflex angles and the points are not in clockwise order.
|
|
30700
|
+
const shouldReverseCoords = !areClockwise || allowReflexAngles;
|
|
30701
|
+
|
|
30702
|
+
// Reverse the coordinates accordingly to ensure the angle is calculated correctly
|
|
30703
|
+
const clockwiseCoords = shouldReverseCoords ? coordsCopy.reverse() : coordsCopy;
|
|
30704
|
+
|
|
30705
|
+
// Calculate the angles between the two points and get the difference
|
|
30706
|
+
// between the two angles to get the clockwise angle.
|
|
30707
|
+
const startAngle = getAngleFromVertex(clockwiseCoords[0], clockwiseCoords[1]);
|
|
30708
|
+
const endAngle = getAngleFromVertex(clockwiseCoords[2], clockwiseCoords[1]);
|
|
30709
|
+
const angle = (startAngle + 360 - endAngle) % 360;
|
|
30710
|
+
return angle;
|
|
30685
30711
|
};
|
|
30686
30712
|
|
|
30687
30713
|
const defaultGraphConfig = {
|
|
@@ -33103,8 +33129,8 @@ const Angle = ({
|
|
|
33103
33129
|
const clockwiseCoords = shouldReverseCoords ? coords : coords.reverse();
|
|
33104
33130
|
|
|
33105
33131
|
// Calculate the angles between the two points
|
|
33106
|
-
const startAngle =
|
|
33107
|
-
const endAngle =
|
|
33132
|
+
const startAngle = getAngleFromVertex(clockwiseCoords[0], vertex);
|
|
33133
|
+
const endAngle = getAngleFromVertex(clockwiseCoords[1], vertex);
|
|
33108
33134
|
const angle = (startAngle + 360 - endAngle) % 360;
|
|
33109
33135
|
|
|
33110
33136
|
// Check if the angle is reflexive
|
|
@@ -34183,7 +34209,9 @@ const MafsGraph = props => {
|
|
|
34183
34209
|
analytics.onAnalyticsEvent({
|
|
34184
34210
|
type: "perseus:interactive-graph-widget:rendered",
|
|
34185
34211
|
payload: {
|
|
34186
|
-
type
|
|
34212
|
+
type,
|
|
34213
|
+
widgetType: "INTERACTIVE_GRAPH",
|
|
34214
|
+
widgetId: "interactive-graph"
|
|
34187
34215
|
}
|
|
34188
34216
|
});
|
|
34189
34217
|
});
|
|
@@ -35423,7 +35451,7 @@ function boundAndSnapAngleVertex({
|
|
|
35423
35451
|
for (const i of [0, 2]) {
|
|
35424
35452
|
const oldPoint = coordsCopy[i];
|
|
35425
35453
|
let newPoint = vec.add(oldPoint, delta);
|
|
35426
|
-
let angle =
|
|
35454
|
+
let angle = getAngleFromVertex(newVertex, newPoint);
|
|
35427
35455
|
angle *= Math.PI / 180;
|
|
35428
35456
|
newPoint = constrainToBoundsOnAngle(newPoint, angle, range, snapStep);
|
|
35429
35457
|
newPoints[i] = newPoint;
|
|
@@ -35494,7 +35522,7 @@ function boundAndSnapAngleEndPoints(destinationPoint, {
|
|
|
35494
35522
|
const vertex = coords[1];
|
|
35495
35523
|
|
|
35496
35524
|
// Gets the angle between the coords and the vertex
|
|
35497
|
-
let angle =
|
|
35525
|
+
let angle = getAngleFromVertex(coordsCopy[index], vertex);
|
|
35498
35526
|
|
|
35499
35527
|
// Snap the angle to the nearest multiple of snapDegrees (if provided)
|
|
35500
35528
|
angle = Math.round((angle - offsetDegrees) / snap) * snap + offsetDegrees;
|
|
@@ -35540,8 +35568,8 @@ function boundAndSnapToPolygonAngle(destinationPoint, {
|
|
|
35540
35568
|
angles[rel(j)] = Math.round(angles[rel(j)]);
|
|
35541
35569
|
});
|
|
35542
35570
|
const getAngle = function getAngle(a, vertex, b) {
|
|
35543
|
-
const angle =
|
|
35544
|
-
return
|
|
35571
|
+
const angle = getClockwiseAngle([coordsCopy[rel(a)], coordsCopy[rel(vertex)], coordsCopy[rel(b)]]);
|
|
35572
|
+
return angle;
|
|
35545
35573
|
};
|
|
35546
35574
|
const innerAngles = [angles[rel(-1)] - getAngle(-2, -1, 1), angles[rel(1)] - getAngle(-1, 1, 2)];
|
|
35547
35575
|
innerAngles[2] = 180 - (innerAngles[0] + innerAngles[1]);
|
|
@@ -35568,7 +35596,7 @@ function boundAndSnapToPolygonAngle(destinationPoint, {
|
|
|
35568
35596
|
const side = Math.sin(innerAngles[1] * Math.PI / 180) / Math.sin(innerAngles[2] * Math.PI / 180) * knownSide;
|
|
35569
35597
|
|
|
35570
35598
|
// Angle at the second vertex of the polygon
|
|
35571
|
-
const outerAngle =
|
|
35599
|
+
const outerAngle = getAngleFromVertex(coordsCopy[rel(1)], coordsCopy[rel(-1)]);
|
|
35572
35600
|
|
|
35573
35601
|
// Uses the length of the side of the polygon (radial coordinate)
|
|
35574
35602
|
// and the angle between the first and second sides of the
|
|
@@ -35618,7 +35646,7 @@ function boundAndSnapToSides(destinationPoint, {
|
|
|
35618
35646
|
const innerAngle = lawOfCosines(sides[0], sides[2], sides[1]);
|
|
35619
35647
|
|
|
35620
35648
|
// Angle at the second vertex of the polygon
|
|
35621
|
-
const outerAngle =
|
|
35649
|
+
const outerAngle = getAngleFromVertex(coordsCopy[rel(1)], coordsCopy[rel(-1)]);
|
|
35622
35650
|
|
|
35623
35651
|
// Returns true if the points form a counter-clockwise turn;
|
|
35624
35652
|
// a.k.a if the point is on the left or right of the polygon.
|
|
@@ -35725,7 +35753,8 @@ const StatefulMafsGraph = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
35725
35753
|
const numPoints = graph.type === "point" ? graph.numPoints : null;
|
|
35726
35754
|
const numSides = graph.type === "polygon" ? graph.numSides : null;
|
|
35727
35755
|
const snapTo = graph.type === "polygon" ? graph.snapTo : null;
|
|
35728
|
-
const showAngles = graph.type === "polygon" ? graph.showAngles : null;
|
|
35756
|
+
const showAngles = graph.type === "polygon" || graph.type === "angle" ? graph.showAngles : null;
|
|
35757
|
+
const allowReflexAngles = graph.type === "angle" ? graph.allowReflexAngles : null;
|
|
35729
35758
|
const showSides = graph.type === "polygon" ? graph.showSides : null;
|
|
35730
35759
|
const startCoords = "startCoords" in graph ? graph.startCoords : undefined;
|
|
35731
35760
|
const originalPropsRef = useRef(props);
|
|
@@ -35738,7 +35767,7 @@ const StatefulMafsGraph = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
35738
35767
|
if (latestPropsRef.current !== originalPropsRef.current) {
|
|
35739
35768
|
dispatch(reinitialize(latestPropsRef.current));
|
|
35740
35769
|
}
|
|
35741
|
-
}, [graph.type, numPoints, numSegments, numSides, snapTo, showAngles, showSides, latestPropsRef, startCoords]);
|
|
35770
|
+
}, [graph.type, numPoints, numSegments, numSides, snapTo, showAngles, showSides, latestPropsRef, startCoords, allowReflexAngles]);
|
|
35742
35771
|
|
|
35743
35772
|
// If the graph is static, it always displays the correct answer. This is
|
|
35744
35773
|
// standard behavior for Perseus widgets (e.g. compare the Radio widget).
|
|
@@ -35927,17 +35956,15 @@ function interactiveGraphValidator(userInput, rubric) {
|
|
|
35927
35956
|
} else if (userInput.type === "angle" && rubric.correct.type === "angle") {
|
|
35928
35957
|
const guess = userInput.coords;
|
|
35929
35958
|
const correct = rubric.correct.coords;
|
|
35959
|
+
const allowReflexAngles = rubric.correct.allowReflexAngles;
|
|
35930
35960
|
let match;
|
|
35931
35961
|
if (rubric.correct.match === "congruent") {
|
|
35932
35962
|
const angles = _.map([guess, correct], function (coords) {
|
|
35933
|
-
|
|
35934
|
-
|
|
35935
|
-
|
|
35936
|
-
|
|
35937
|
-
|
|
35938
|
-
// @ts-expect-error - TS2532 - Object is possibly 'undefined'.
|
|
35939
|
-
coords[1]);
|
|
35940
|
-
return (angle + 360) % 360;
|
|
35963
|
+
if (!coords) {
|
|
35964
|
+
return false;
|
|
35965
|
+
}
|
|
35966
|
+
const angle = getClockwiseAngle(coords, allowReflexAngles);
|
|
35967
|
+
return angle;
|
|
35941
35968
|
});
|
|
35942
35969
|
// @ts-expect-error - TS2556 - A spread argument must either have a tuple type or be passed to a rest parameter.
|
|
35943
35970
|
match = eq$1(...angles);
|
|
@@ -36805,7 +36832,7 @@ class LegacyInteractiveGraph extends React.Component {
|
|
|
36805
36832
|
angles[rel(j)] = Math.round(angles[rel(j)]);
|
|
36806
36833
|
});
|
|
36807
36834
|
const getAngle = function getAngle(a, vertex, b) {
|
|
36808
|
-
const angle = GraphUtils.
|
|
36835
|
+
const angle = GraphUtils.findAngleDeprecated(coords[rel(a)], coords[rel(b)], coords[rel(vertex)]);
|
|
36809
36836
|
return (angle + 360) % 360;
|
|
36810
36837
|
};
|
|
36811
36838
|
const innerAngles = [angles[rel(-1)] - getAngle(-2, -1, 1), angles[rel(1)] - getAngle(-1, 1, 2)];
|
|
@@ -36824,7 +36851,7 @@ class LegacyInteractiveGraph extends React.Component {
|
|
|
36824
36851
|
|
|
36825
36852
|
// Solve for side by using the law of sines
|
|
36826
36853
|
const side = Math.sin(innerAngles[1] * Math.PI / 180) / Math.sin(innerAngles[2] * Math.PI / 180) * knownSide;
|
|
36827
|
-
const outerAngle = GraphUtils.
|
|
36854
|
+
const outerAngle = GraphUtils.findAngleDeprecated(coords[rel(1)], coords[rel(-1)]);
|
|
36828
36855
|
const offset = polar$1(side, outerAngle + (onLeft ? 1 : -1) * innerAngles[0]);
|
|
36829
36856
|
return (_this$graphie5 = this.graphie) == null ? void 0 : _this$graphie5.addPoints(coords[rel(-1)], offset);
|
|
36830
36857
|
}
|
|
@@ -36848,7 +36875,7 @@ class LegacyInteractiveGraph extends React.Component {
|
|
|
36848
36875
|
|
|
36849
36876
|
// Solve for angle by using the law of cosines
|
|
36850
36877
|
const innerAngle = lawOfCosines(sides[0], sides[2], sides[1]);
|
|
36851
|
-
const outerAngle = GraphUtils.
|
|
36878
|
+
const outerAngle = GraphUtils.findAngleDeprecated(coords[rel(1)], coords[rel(-1)]);
|
|
36852
36879
|
const onLeft = sign(ccw(coords[rel(-1)], coords[rel(1)], coords[i])) === 1;
|
|
36853
36880
|
const offset = polar$1(sides[0], outerAngle + (onLeft ? 1 : -1) * innerAngle);
|
|
36854
36881
|
return (_this$graphie6 = this.graphie) == null ? void 0 : _this$graphie6.addPoints(coords[rel(-1)], offset);
|
|
@@ -37622,7 +37649,8 @@ class InteractiveGraph extends React.Component {
|
|
|
37622
37649
|
throw makeInvalidTypeError("getAngleEquationString", "angle");
|
|
37623
37650
|
}
|
|
37624
37651
|
const coords = InteractiveGraph.getAngleCoords(props.graph, props);
|
|
37625
|
-
const
|
|
37652
|
+
const allowReflexAngles = props.graph.allowReflexAngles;
|
|
37653
|
+
const angle = getClockwiseAngle(coords, allowReflexAngles);
|
|
37626
37654
|
return angle.toFixed(0) + "\u00B0 angle" + " at (" + coords[1].join(", ") + ")";
|
|
37627
37655
|
}
|
|
37628
37656
|
static validate(userInput, rubric) {
|
|
@@ -44945,7 +44973,7 @@ const init = function init(options) {
|
|
|
44945
44973
|
|
|
44946
44974
|
// This file is processed by a Rollup plugin (replace) to inject the production
|
|
44947
44975
|
const libName = "@khanacademy/perseus";
|
|
44948
|
-
const libVersion = "36.1.
|
|
44976
|
+
const libVersion = "36.1.2";
|
|
44949
44977
|
addLibraryVersionToPerseusDebug(libName, libVersion);
|
|
44950
44978
|
|
|
44951
44979
|
const apiVersion = {
|
|
@@ -48505,5 +48533,5 @@ const EditorJsonify = {
|
|
|
48505
48533
|
}
|
|
48506
48534
|
};
|
|
48507
48535
|
|
|
48508
|
-
export { ApiOptions, ArticleRenderer, BaseRadio, Categorizer$1 as Categorizer, changeable as Changeable, ClassNames, dependencies as Dependencies, EditorJsonify, Expression, util as GrapherUtil, Grapher$1 as GrapherWidget, HintRenderer, HintsRenderer, InputNumber$1 as InputNumber, InteractiveGraph$1 as InteractiveGraphWidget, ItemExtras, JiptParagraphs, KhanColors, KhanMath, context as LoadingContext, Log, Matrix$1 as MatrixWidget, MultiItems, NumericInput$1 as NumericInput, PerseusExpressionAnswerFormConsidered, PerseusI18nContext, PerseusI18nContextProvider, PerseusMarkdown, Plotter$1 as PlotterWidget, QUESTION_WIDGETS, Radio, Renderer, ref as ServerItemRenderer, sizingUtils as SizingUtils, Table$1 as TableWidget, Util, denylist as WIDGET_PROP_DENYLIST, widgets$1 as Widgets, addWidget, apiVersion, buildEmptyItemTreeForShape, buildMapper, components, constants, contentHasWidgetType, convertWidgetNameToEnum, displaySigFigs, generateTestCategorizerWidget, generateTestExpressionWidget, generateTestInteractiveGraphWidget, generateTestNumericInputWidget, generateTestPerseusItem, generateTestRadioWidget, genericPerseusItemData, getAngleCoords, getAnswerFromUserInput, getAnswersFromWidgets, getCircleCoords, getCorrectAnswerForWidgetId, getImagesWithoutAltData, getLineCoords, getLinearSystemCoords, getPointCoords, getPolygonCoords, getQuadraticCoords, getSegmentCoords, getSinusoidCoords, getValidWidgetIds, getWidgetFromWidgetMap, getWidgetIdsFromContent, getWidgetIdsFromContentByType, getWidgetTypeByWidgetId, getWidgetsFromWidgetMap, getWidgetsMapFromItemData, globalConstants, globalStyles, iconPaths as icons, init, injectWidgets, interactiveSizes$1 as interactiveSizes, isItemRenderableByVersion, isWidgetIdInContent, isWrongAnswerSupported, itemDataVersion, itemToTree, ItemVersion as itemVersion, libVersion, lockedFigureColors, lockedFigureFillStyles, makeSafeUrl, mediaQueries, parsePerseusItem, plotterPlotTypes, preprocessTex, registerAllWidgetsForTesting, shapes, shouldHaveIndividualAnswer, traverse, usePerseusI18n, violatingWidgets, allWidgets as widgets };
|
|
48536
|
+
export { ApiOptions, ArticleRenderer, BaseRadio, Categorizer$1 as Categorizer, changeable as Changeable, ClassNames, dependencies as Dependencies, EditorJsonify, Expression, util as GrapherUtil, Grapher$1 as GrapherWidget, HintRenderer, HintsRenderer, InputNumber$1 as InputNumber, InteractiveGraph$1 as InteractiveGraphWidget, ItemExtras, JiptParagraphs, KhanColors, KhanMath, context as LoadingContext, Log, Matrix$1 as MatrixWidget, MultiItems, NumericInput$1 as NumericInput, PerseusExpressionAnswerFormConsidered, PerseusI18nContext, PerseusI18nContextProvider, PerseusMarkdown, Plotter$1 as PlotterWidget, QUESTION_WIDGETS, Radio, Renderer, ref as ServerItemRenderer, sizingUtils as SizingUtils, Table$1 as TableWidget, Util, denylist as WIDGET_PROP_DENYLIST, widgets$1 as Widgets, addWidget, apiVersion, buildEmptyItemTreeForShape, buildMapper, components, constants, contentHasWidgetType, convertWidgetNameToEnum, displaySigFigs, generateTestCategorizerWidget, generateTestExpressionWidget, generateTestInteractiveGraphWidget, generateTestNumericInputWidget, generateTestPerseusItem, generateTestRadioWidget, genericPerseusItemData, getAngleCoords, getAnswerFromUserInput, getAnswersFromWidgets, getCircleCoords, getClockwiseAngle, getCorrectAnswerForWidgetId, getImagesWithoutAltData, getLineCoords, getLinearSystemCoords, getPointCoords, getPolygonCoords, getQuadraticCoords, getSegmentCoords, getSinusoidCoords, getValidWidgetIds, getWidgetFromWidgetMap, getWidgetIdsFromContent, getWidgetIdsFromContentByType, getWidgetTypeByWidgetId, getWidgetsFromWidgetMap, getWidgetsMapFromItemData, globalConstants, globalStyles, iconPaths as icons, init, injectWidgets, interactiveSizes$1 as interactiveSizes, isItemRenderableByVersion, isWidgetIdInContent, isWrongAnswerSupported, itemDataVersion, itemToTree, ItemVersion as itemVersion, libVersion, lockedFigureColors, lockedFigureFillStyles, makeSafeUrl, mediaQueries, parsePerseusItem, plotterPlotTypes, preprocessTex, registerAllWidgetsForTesting, shapes, shouldHaveIndividualAnswer, traverse, usePerseusI18n, violatingWidgets, allWidgets as widgets };
|
|
48509
48537
|
//# sourceMappingURL=index.js.map
|