@khanacademy/perseus 6.2.1 → 6.3.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.
Files changed (133) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/all-widgets.d.ts +2 -2
  3. package/dist/all-widgets.js.flow +2 -2
  4. package/dist/basic-widgets.d.ts +2 -2
  5. package/dist/basic-widgets.js.flow +2 -2
  6. package/dist/components/math-input.d.ts +4 -1
  7. package/dist/components/math-input.js.flow +4 -1
  8. package/dist/components/tex-buttons.d.ts +5 -1
  9. package/dist/components/tex-buttons.js.flow +1 -1
  10. package/dist/es/index.js +172 -205
  11. package/dist/es/index.js.map +1 -1
  12. package/dist/extra-widgets.d.ts +2 -2
  13. package/dist/extra-widgets.js.flow +2 -2
  14. package/dist/index.d.ts +1 -1
  15. package/dist/index.js +170 -201
  16. package/dist/index.js.flow +2 -0
  17. package/dist/index.js.map +1 -1
  18. package/dist/strings.js +23 -0
  19. package/dist/types.d.ts +2 -2
  20. package/dist/types.js.flow +2 -2
  21. package/dist/util/geometry.d.ts +25 -0
  22. package/dist/util/geometry.js.flow +37 -0
  23. package/dist/widgets/categorizer.d.ts +2 -2
  24. package/dist/widgets/categorizer.js.flow +2 -2
  25. package/dist/widgets/cs-program.d.ts +2 -2
  26. package/dist/widgets/cs-program.js.flow +2 -2
  27. package/dist/widgets/definition.d.ts +2 -2
  28. package/dist/widgets/definition.js.flow +2 -2
  29. package/dist/widgets/dropdown.d.ts +2 -2
  30. package/dist/widgets/dropdown.js.flow +2 -2
  31. package/dist/widgets/explanation.d.ts +2 -2
  32. package/dist/widgets/explanation.js.flow +2 -2
  33. package/dist/widgets/expression.d.ts +2 -2
  34. package/dist/widgets/expression.js.flow +2 -2
  35. package/dist/widgets/graded-group-set.d.ts +2 -2
  36. package/dist/widgets/graded-group-set.js.flow +2 -2
  37. package/dist/widgets/graded-group.d.ts +2 -2
  38. package/dist/widgets/graded-group.js.flow +2 -2
  39. package/dist/widgets/grapher.d.ts +2 -2
  40. package/dist/widgets/grapher.js.flow +2 -2
  41. package/dist/widgets/group.d.ts +2 -2
  42. package/dist/widgets/group.js.flow +2 -2
  43. package/dist/widgets/iframe.d.ts +2 -2
  44. package/dist/widgets/iframe.js.flow +2 -2
  45. package/dist/widgets/image.d.ts +2 -2
  46. package/dist/widgets/image.js.flow +2 -2
  47. package/dist/widgets/input-number.d.ts +2 -2
  48. package/dist/widgets/input-number.js.flow +2 -2
  49. package/dist/widgets/interaction.d.ts +2 -2
  50. package/dist/widgets/interaction.js.flow +2 -2
  51. package/dist/widgets/interactive-graph.d.ts +4 -12
  52. package/dist/widgets/interactive-graph.js.flow +4 -7
  53. package/dist/widgets/label-image.d.ts +2 -2
  54. package/dist/widgets/label-image.js.flow +2 -2
  55. package/dist/widgets/lights-puzzle.d.ts +2 -2
  56. package/dist/widgets/lights-puzzle.js.flow +2 -2
  57. package/dist/widgets/matcher.d.ts +2 -2
  58. package/dist/widgets/matcher.js.flow +2 -2
  59. package/dist/widgets/matrix.d.ts +2 -2
  60. package/dist/widgets/matrix.js.flow +2 -2
  61. package/dist/widgets/measurer.d.ts +2 -2
  62. package/dist/widgets/measurer.js.flow +2 -2
  63. package/dist/widgets/molecule.d.ts +2 -2
  64. package/dist/widgets/molecule.js.flow +2 -2
  65. package/dist/widgets/number-line.d.ts +2 -2
  66. package/dist/widgets/number-line.js.flow +2 -2
  67. package/dist/widgets/numeric-input.d.ts +2 -2
  68. package/dist/widgets/numeric-input.js.flow +2 -2
  69. package/dist/widgets/orderer.d.ts +2 -2
  70. package/dist/widgets/orderer.js.flow +2 -2
  71. package/dist/widgets/passage-ref-target.d.ts +2 -2
  72. package/dist/widgets/passage-ref-target.js.flow +2 -2
  73. package/dist/widgets/passage-ref.d.ts +2 -2
  74. package/dist/widgets/passage-ref.js.flow +2 -2
  75. package/dist/widgets/passage.d.ts +2 -2
  76. package/dist/widgets/passage.js.flow +2 -2
  77. package/dist/widgets/plotter.d.ts +2 -2
  78. package/dist/widgets/plotter.js.flow +2 -2
  79. package/dist/widgets/radio.d.ts +2 -2
  80. package/dist/widgets/radio.js.flow +2 -2
  81. package/dist/widgets/reaction-diagram.d.ts +2 -2
  82. package/dist/widgets/reaction-diagram.js.flow +2 -2
  83. package/dist/widgets/sequence.d.ts +2 -2
  84. package/dist/widgets/sequence.js.flow +2 -2
  85. package/dist/widgets/simulator.d.ts +2 -2
  86. package/dist/widgets/simulator.js.flow +2 -2
  87. package/dist/widgets/sorter.d.ts +2 -2
  88. package/dist/widgets/sorter.js.flow +2 -2
  89. package/dist/widgets/table.d.ts +2 -2
  90. package/dist/widgets/table.js.flow +2 -2
  91. package/dist/widgets/transformer.d.ts +2 -2
  92. package/dist/widgets/transformer.js.flow +2 -2
  93. package/dist/widgets/unit.d.ts +2 -2
  94. package/dist/widgets/unit.js.flow +2 -2
  95. package/dist/widgets/video.d.ts +2 -2
  96. package/dist/widgets/video.js.flow +2 -2
  97. package/package.json +4 -5
  98. package/src/components/__tests__/math-input.test.tsx +60 -0
  99. package/src/components/math-input.tsx +88 -118
  100. package/src/components/prop-check-box.tsx +0 -1
  101. package/src/components/tex-buttons.tsx +73 -12
  102. package/src/index.ts +2 -0
  103. package/src/types.ts +19 -2
  104. package/src/util/geometry.ts +293 -0
  105. package/src/widgets/__tests__/numeric-input.test.ts +38 -0
  106. package/src/widgets/expression.tsx +0 -1
  107. package/src/widgets/grapher.tsx +0 -1
  108. package/src/widgets/image.tsx +0 -1
  109. package/src/widgets/input-number.tsx +0 -1
  110. package/src/widgets/interactive-graph.tsx +20 -288
  111. package/src/widgets/matrix.tsx +0 -1
  112. package/src/widgets/numeric-input.tsx +6 -2
  113. package/src/widgets/transformer.tsx +0 -1
  114. package/tsconfig-build.json +0 -1
  115. package/tsconfig-build.tsbuildinfo +1 -1
  116. package/dist/__tests__/mock-asset-loading-widget.d.ts +0 -59
  117. package/dist/__tests__/mock-asset-loading-widget.js.flow +0 -70
  118. package/dist/__tests__/mock-widget.d.ts +0 -30
  119. package/dist/__tests__/mock-widget.js.flow +0 -39
  120. package/dist/__tests__/test-items/image-item.d.ts +0 -14
  121. package/dist/__tests__/test-items/image-item.js.flow +0 -20
  122. package/dist/__tests__/test-items/input-number-1-item.d.ts +0 -9
  123. package/dist/__tests__/test-items/input-number-1-item.js.flow +0 -15
  124. package/dist/__tests__/test-items/input-number-2-item.d.ts +0 -9
  125. package/dist/__tests__/test-items/input-number-2-item.js.flow +0 -15
  126. package/dist/__tests__/test-items/table-item.d.ts +0 -9
  127. package/dist/__tests__/test-items/table-item.js.flow +0 -15
  128. package/dist/interactive2/__tests__/movable-mock.d.ts +0 -5
  129. package/dist/interactive2/__tests__/movable-mock.js.flow +0 -11
  130. package/dist/widgets/__stories__/test-keypad-context-wrapper.d.ts +0 -6
  131. package/dist/widgets/__stories__/test-keypad-context-wrapper.js.flow +0 -12
  132. package/dist/widgets/__tests__/renderQuestion.d.ts +0 -13
  133. package/dist/widgets/__tests__/renderQuestion.js.flow +0 -28
package/dist/strings.js CHANGED
@@ -52,6 +52,8 @@ module.exports = [
52
52
  i18n._("Correct (but you crossed it out)", {}),
53
53
  i18n._("Correct (selected)", {}),
54
54
  i18n._("Correct!", {}),
55
+ i18n._("Cosine", {}),
56
+ i18n._("Cube root", {}),
55
57
  i18n._("Current", {}),
56
58
  // I18N: As in the command, "Dilate the polygon"
57
59
  i18n._("Dilate", {}),
@@ -59,13 +61,19 @@ module.exports = [
59
61
  i18n._("Dilation", {}),
60
62
  i18n.$_("Dilation about %(point)s by %(scale)s", {}),
61
63
  i18n.$_("Dilation of scale %(scale)s about %(point)s", {}),
64
+ i18n._("Divide", {}),
62
65
  i18n._("Drag handles to make graph", {}),
63
66
  i18n._("End of reading passage.", {}),
64
67
  i18n._("entered in an invalid answer.", {}),
68
+ i18n._("Equals sign", {}),
65
69
  i18n.$_("Error rendering: %(error)s", {}),
66
70
  i18n._("Explain", {}),
71
+ i18n._("Exponent", {}),
67
72
  i18n._("False", {}),
73
+ i18n._("Fraction, excluding the current expression", {}),
68
74
  i18n._("Get another hint", {}),
75
+ i18n._("Greater than or equal to sign", {}),
76
+ i18n._("Greater than sign", {}),
69
77
  i18n._("Hide explanation", {}),
70
78
  i18n._("Hint #%(pos)s", {}),
71
79
  i18n._("Hints", {}),
@@ -77,25 +85,36 @@ module.exports = [
77
85
  i18n._("It looks like you left something blank or ", {}),
78
86
  i18n._("Keep trying", {}),
79
87
  i18n._("Khan Academy video wrapper", {}),
88
+ i18n._("Less than or equal to sign", {}),
89
+ i18n._("Less than sign", {}),
80
90
  // I18N: a label next to a reading passage to denote the line number
81
91
  i18n._("Line ", {}),
82
92
  i18n.$_("line %(lineNumber)s", {}),
83
93
  i18n.$_("lines %(lineRange)s", {}),
84
94
  i18n._("Loading...", {}),
95
+ i18n._("Logarithm with base 10", {}),
96
+ i18n._("Logarithm with custom base", {}),
85
97
  i18n._("Make circle filled", {}),
86
98
  i18n._("Make circle open", {}),
87
99
  i18n._("Make sure you fill in all cells in the matrix.", {}),
88
100
  i18n._("Make sure you select something for every row.", {}),
101
+ i18n._("Minus", {}),
89
102
  i18n.ngettext("Moves: %(num)s","Moves: %(num)s", {}),
103
+ i18n._("Multiply", {}),
104
+ i18n._("Natural logarithm", {}),
90
105
  i18n._("Next question", {}),
91
106
  i18n._("No", {}),
92
107
  i18n._("None of the above", {}),
108
+ i18n._("Not-equals sign", {}),
93
109
  i18n._("Note: For this question, the shape will not move.", {}),
94
110
  i18n._("Number of divisions:", {}),
95
111
  i18n._("Number of trials:", {}),
96
112
  i18n._("Parameter", {}),
113
+ i18n._("Phi", {}),
114
+ i18n._("Pi", {}),
97
115
  i18n._("Please choose the correct number of answers.", {}),
98
116
  i18n.$_("Please make sure the number of divisions is in the range %(divRangeString)s.", {}),
117
+ i18n._("Plus", {}),
99
118
  i18n._("Reaction arrow pointing to the right.", {}),
100
119
  // I18N: As in the command, "Reflect the polygon"
101
120
  i18n._("Reflect", {}),
@@ -113,15 +132,19 @@ module.exports = [
113
132
  i18n._("Run simulation", {}),
114
133
  i18n._("Sample size:", {}),
115
134
  i18n._("See video transcript", {}),
135
+ i18n._("Sine", {}),
116
136
  i18n._("Skip to %(title)s", {}),
117
137
  i18n._("Something went wrong.", {}),
118
138
  i18n._("Sorry, I don't understand that!", {}),
139
+ i18n._("Square root", {}),
119
140
  i18n._("Switch direction", {}),
141
+ i18n._("Tangent", {}),
120
142
  i18n._("Tap each dot on the image to select all answers that apply.", {}),
121
143
  i18n._("Tap each dot on the image to select an answer.", {}),
122
144
  i18n._("Tap to add points", {}),
123
145
  i18n._("That answer is numerically incorrect.", {}),
124
146
  i18n._("The symbol %(questionSymbol)s indicates that question %(questionNumber)s references this portion of the passage.", {}),
147
+ i18n._("Theta", {}),
125
148
  i18n._("This controls the proportion or percentage that will be used in your simulation.", {}),
126
149
  i18n._("This controls the sample size that will be used in your simulation. For example, if you set this to 100, then for each trial, responses from 100 participants will be simulated.", {}),
127
150
  i18n._("This is the number of trials used in the simulation. For example, if set to 50, then the survey will be conducted 50 times.", {}),
package/dist/types.d.ts CHANGED
@@ -217,10 +217,10 @@ export type WidgetExports<T extends React.ComponentType<any> = React.ComponentTy
217
217
  defaultAlignment?: Alignment;
218
218
  getDefaultAlignment?: () => Alignment;
219
219
  isLintable?: boolean;
220
- transform?: WidgetTransform;
221
220
  tracking?: Tracking;
222
- staticTransform?: WidgetTransform;
223
221
  traverseChildWidgets?: any;
222
+ transform?: WidgetTransform;
223
+ staticTransform?: WidgetTransform;
224
224
  propUpgrades?: {
225
225
  [key: string]: (arg1: any) => any;
226
226
  };
@@ -275,10 +275,10 @@ export type WidgetExports<
275
275
  defaultAlignment?: Alignment,
276
276
  getDefaultAlignment?: () => Alignment,
277
277
  isLintable?: boolean,
278
- transform?: WidgetTransform,
279
278
  tracking?: Tracking,
280
- staticTransform?: WidgetTransform,
281
279
  traverseChildWidgets?: any,
280
+ transform?: WidgetTransform,
281
+ staticTransform?: WidgetTransform,
282
282
  propUpgrades?: {
283
283
  [key: string]: (arg1: any) => any,
284
284
  },
@@ -0,0 +1,25 @@
1
+ /**
2
+ * A collection of geomtry-related utility functions
3
+ */
4
+ import type { Coord, Line } from "../interactive2/types";
5
+ export type Range = [number, number];
6
+ export type SineCoefficient = [
7
+ number,
8
+ number,
9
+ number,
10
+ number
11
+ ];
12
+ export type QuadraticCoefficient = [number, number, number];
13
+ export declare function sign(val: number): 0 | 1 | -1;
14
+ export declare function ccw(a: Coord, b: Coord, c: Coord): number;
15
+ export declare function collinear(a: Coord, b: Coord, c: Coord): boolean;
16
+ export declare function intersects(ab: Line, cd: Line): boolean;
17
+ export declare function vector(a: any, b: any): number[];
18
+ export declare function magnitude(v: ReadonlyArray<Coord>): number;
19
+ export declare function angleMeasures(coords: ReadonlyArray<Coord>): ReadonlyArray<number>;
20
+ export declare function similar(coords1: ReadonlyArray<Coord>, coords2: ReadonlyArray<Coord>, tolerance: number): boolean;
21
+ export declare function lawOfCosines(a: number, b: number, c: number): number;
22
+ export declare function canonicalSineCoefficients([amplitude, angularFrequency, phase, verticalOffset,]: [any, any, any, any]): any[];
23
+ export declare function rotate<T>(array: ReadonlyArray<T>, n?: number): ReadonlyArray<T>;
24
+ export declare function getLineEquation(first: Coord, second: Coord): string;
25
+ export declare function getLineIntersection(firstPoints: ReadonlyArray<Coord>, secondPoints: ReadonlyArray<Coord>): string;
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Flowtype definitions for data
3
+ * Generated by Flowgen from a Typescript Definition
4
+ * Flowgen v1.21.0
5
+ * @flow
6
+ */
7
+ import type { Coord, Line } from "../interactive2/types";
8
+ export type Range = [number, number];
9
+ export type SineCoefficient = [number, number, number, number];
10
+ export type QuadraticCoefficient = [number, number, number];
11
+ declare export function sign(val: number): 0 | 1 | -1;
12
+ declare export function ccw(a: Coord, b: Coord, c: Coord): number;
13
+ declare export function collinear(a: Coord, b: Coord, c: Coord): boolean;
14
+ declare export function intersects(ab: Line, cd: Line): boolean;
15
+ declare export function vector(a: any, b: any): number[];
16
+ declare export function magnitude(v: $ReadOnlyArray<Coord>): number;
17
+ declare export function angleMeasures(
18
+ coords: $ReadOnlyArray<Coord>
19
+ ): $ReadOnlyArray<number>;
20
+ declare export function similar(
21
+ coords1: $ReadOnlyArray<Coord>,
22
+ coords2: $ReadOnlyArray<Coord>,
23
+ tolerance: number
24
+ ): boolean;
25
+ declare export function lawOfCosines(a: number, b: number, c: number): number;
26
+ declare export function canonicalSineCoefficients(
27
+ x: [any, any, any, any]
28
+ ): any[];
29
+ declare export function rotate<T>(
30
+ array: $ReadOnlyArray<T>,
31
+ n?: number
32
+ ): $ReadOnlyArray<T>;
33
+ declare export function getLineEquation(first: Coord, second: Coord): string;
34
+ declare export function getLineIntersection(
35
+ firstPoints: $ReadOnlyArray<Coord>,
36
+ secondPoints: $ReadOnlyArray<Coord>
37
+ ): string;
@@ -43,10 +43,10 @@ declare const _default: Readonly<{
43
43
  defaultAlignment?: import("../types").Alignment | undefined;
44
44
  getDefaultAlignment?: (() => import("../types").Alignment) | undefined;
45
45
  isLintable?: boolean | undefined;
46
- transform?: import("../types").WidgetTransform | undefined;
47
46
  tracking?: import("../types").Tracking | undefined;
48
- staticTransform?: import("../types").WidgetTransform | undefined;
49
47
  traverseChildWidgets?: any;
48
+ transform?: import("../types").WidgetTransform | undefined;
49
+ staticTransform?: import("../types").WidgetTransform | undefined;
50
50
  propUpgrades?: {
51
51
  [key: string]: (arg1: any) => any;
52
52
  } | undefined;
@@ -58,10 +58,10 @@ declare var _default: $ReadOnly<{|
58
58
  | (() => $Flowgen$Import$_2e__2e__2f_types.Alignment)
59
59
  | void,
60
60
  isLintable?: boolean | void,
61
- transform?: $Flowgen$Import$_2e__2e__2f_types.WidgetTransform | void,
62
61
  tracking?: $Flowgen$Import$_2e__2e__2f_types.Tracking | void,
63
- staticTransform?: $Flowgen$Import$_2e__2e__2f_types.WidgetTransform | void,
64
62
  traverseChildWidgets?: any,
63
+ transform?: $Flowgen$Import$_2e__2e__2f_types.WidgetTransform | void,
64
+ staticTransform?: $Flowgen$Import$_2e__2e__2f_types.WidgetTransform | void,
65
65
  propUpgrades?: {
66
66
  [key: string]: (arg1: any) => any,
67
67
  } | void,
@@ -36,10 +36,10 @@ declare const _default: Readonly<{
36
36
  defaultAlignment?: import("../types").Alignment | undefined;
37
37
  getDefaultAlignment?: (() => import("../types").Alignment) | undefined;
38
38
  isLintable?: boolean | undefined;
39
- transform?: import("../types").WidgetTransform | undefined;
40
39
  tracking?: import("../types").Tracking | undefined;
41
- staticTransform?: import("../types").WidgetTransform | undefined;
42
40
  traverseChildWidgets?: any;
41
+ transform?: import("../types").WidgetTransform | undefined;
42
+ staticTransform?: import("../types").WidgetTransform | undefined;
43
43
  propUpgrades?: {
44
44
  [key: string]: (arg1: any) => any;
45
45
  } | undefined;
@@ -42,10 +42,10 @@ declare var _default: $ReadOnly<{|
42
42
  | (() => $Flowgen$Import$_2e__2e__2f_types.Alignment)
43
43
  | void,
44
44
  isLintable?: boolean | void,
45
- transform?: $Flowgen$Import$_2e__2e__2f_types.WidgetTransform | void,
46
45
  tracking?: $Flowgen$Import$_2e__2e__2f_types.Tracking | void,
47
- staticTransform?: $Flowgen$Import$_2e__2e__2f_types.WidgetTransform | void,
48
46
  traverseChildWidgets?: any,
47
+ transform?: $Flowgen$Import$_2e__2e__2f_types.WidgetTransform | void,
48
+ staticTransform?: $Flowgen$Import$_2e__2e__2f_types.WidgetTransform | void,
49
49
  propUpgrades?: {
50
50
  [key: string]: (arg1: any) => any,
51
51
  } | void,
@@ -30,10 +30,10 @@ declare const _default: Readonly<{
30
30
  defaultAlignment?: import("../types").Alignment | undefined;
31
31
  getDefaultAlignment?: (() => import("../types").Alignment) | undefined;
32
32
  isLintable?: boolean | undefined;
33
- transform?: import("../types").WidgetTransform | undefined;
34
33
  tracking?: import("../types").Tracking | undefined;
35
- staticTransform?: import("../types").WidgetTransform | undefined;
36
34
  traverseChildWidgets?: any;
35
+ transform?: import("../types").WidgetTransform | undefined;
36
+ staticTransform?: import("../types").WidgetTransform | undefined;
37
37
  propUpgrades?: {
38
38
  [key: string]: (arg1: any) => any;
39
39
  } | undefined;
@@ -45,10 +45,10 @@ declare var _default: $ReadOnly<{|
45
45
  | (() => $Flowgen$Import$_2e__2e__2f_types.Alignment)
46
46
  | void,
47
47
  isLintable?: boolean | void,
48
- transform?: $Flowgen$Import$_2e__2e__2f_types.WidgetTransform | void,
49
48
  tracking?: $Flowgen$Import$_2e__2e__2f_types.Tracking | void,
50
- staticTransform?: $Flowgen$Import$_2e__2e__2f_types.WidgetTransform | void,
51
49
  traverseChildWidgets?: any,
50
+ transform?: $Flowgen$Import$_2e__2e__2f_types.WidgetTransform | void,
51
+ staticTransform?: $Flowgen$Import$_2e__2e__2f_types.WidgetTransform | void,
52
52
  propUpgrades?: {
53
53
  [key: string]: (arg1: any) => any,
54
54
  } | void,
@@ -39,10 +39,10 @@ declare const _default: Readonly<{
39
39
  defaultAlignment?: import("../types").Alignment | undefined;
40
40
  getDefaultAlignment?: (() => import("../types").Alignment) | undefined;
41
41
  isLintable?: boolean | undefined;
42
- transform?: import("../types").WidgetTransform | undefined;
43
42
  tracking?: import("../types").Tracking | undefined;
44
- staticTransform?: import("../types").WidgetTransform | undefined;
45
43
  traverseChildWidgets?: any;
44
+ transform?: import("../types").WidgetTransform | undefined;
45
+ staticTransform?: import("../types").WidgetTransform | undefined;
46
46
  propUpgrades?: {
47
47
  [key: string]: (arg1: any) => any;
48
48
  } | undefined;
@@ -51,10 +51,10 @@ declare var _default: $ReadOnly<{|
51
51
  | (() => $Flowgen$Import$_2e__2e__2f_types.Alignment)
52
52
  | void,
53
53
  isLintable?: boolean | void,
54
- transform?: $Flowgen$Import$_2e__2e__2f_types.WidgetTransform | void,
55
54
  tracking?: $Flowgen$Import$_2e__2e__2f_types.Tracking | void,
56
- staticTransform?: $Flowgen$Import$_2e__2e__2f_types.WidgetTransform | void,
57
55
  traverseChildWidgets?: any,
56
+ transform?: $Flowgen$Import$_2e__2e__2f_types.WidgetTransform | void,
57
+ staticTransform?: $Flowgen$Import$_2e__2e__2f_types.WidgetTransform | void,
58
58
  propUpgrades?: {
59
59
  [key: string]: (arg1: any) => any,
60
60
  } | void,
@@ -37,10 +37,10 @@ declare const _default: Readonly<{
37
37
  defaultAlignment?: import("../types").Alignment | undefined;
38
38
  getDefaultAlignment?: (() => import("../types").Alignment) | undefined;
39
39
  isLintable?: boolean | undefined;
40
- transform?: import("../types").WidgetTransform | undefined;
41
40
  tracking?: import("../types").Tracking | undefined;
42
- staticTransform?: import("../types").WidgetTransform | undefined;
43
41
  traverseChildWidgets?: any;
42
+ transform?: import("../types").WidgetTransform | undefined;
43
+ staticTransform?: import("../types").WidgetTransform | undefined;
44
44
  propUpgrades?: {
45
45
  [key: string]: (arg1: any) => any;
46
46
  } | undefined;
@@ -46,10 +46,10 @@ declare var _default: $ReadOnly<{|
46
46
  | (() => $Flowgen$Import$_2e__2e__2f_types.Alignment)
47
47
  | void,
48
48
  isLintable?: boolean | void,
49
- transform?: $Flowgen$Import$_2e__2e__2f_types.WidgetTransform | void,
50
49
  tracking?: $Flowgen$Import$_2e__2e__2f_types.Tracking | void,
51
- staticTransform?: $Flowgen$Import$_2e__2e__2f_types.WidgetTransform | void,
52
50
  traverseChildWidgets?: any,
51
+ transform?: $Flowgen$Import$_2e__2e__2f_types.WidgetTransform | void,
52
+ staticTransform?: $Flowgen$Import$_2e__2e__2f_types.WidgetTransform | void,
53
53
  propUpgrades?: {
54
54
  [key: string]: (arg1: any) => any,
55
55
  } | void,
@@ -79,10 +79,10 @@ declare const _default: Readonly<{
79
79
  defaultAlignment?: import("../types").Alignment | undefined;
80
80
  getDefaultAlignment?: (() => import("../types").Alignment) | undefined;
81
81
  isLintable?: boolean | undefined;
82
- transform?: import("../types").WidgetTransform | undefined;
83
82
  tracking?: import("../types").Tracking | undefined;
84
- staticTransform?: import("../types").WidgetTransform | undefined;
85
83
  traverseChildWidgets?: any;
84
+ transform?: import("../types").WidgetTransform | undefined;
85
+ staticTransform?: import("../types").WidgetTransform | undefined;
86
86
  propUpgrades?: {
87
87
  [key: string]: (arg1: any) => any;
88
88
  } | undefined;
@@ -104,10 +104,10 @@ declare var _default: $ReadOnly<{|
104
104
  | (() => $Flowgen$Import$_2e__2e__2f_types.Alignment)
105
105
  | void,
106
106
  isLintable?: boolean | void,
107
- transform?: $Flowgen$Import$_2e__2e__2f_types.WidgetTransform | void,
108
107
  tracking?: $Flowgen$Import$_2e__2e__2f_types.Tracking | void,
109
- staticTransform?: $Flowgen$Import$_2e__2e__2f_types.WidgetTransform | void,
110
108
  traverseChildWidgets?: any,
109
+ transform?: $Flowgen$Import$_2e__2e__2f_types.WidgetTransform | void,
110
+ staticTransform?: $Flowgen$Import$_2e__2e__2f_types.WidgetTransform | void,
111
111
  propUpgrades?: {
112
112
  [key: string]: (arg1: any) => any,
113
113
  } | void,
@@ -40,10 +40,10 @@ declare const _default: Readonly<{
40
40
  defaultAlignment?: import("../types").Alignment | undefined;
41
41
  getDefaultAlignment?: (() => import("../types").Alignment) | undefined;
42
42
  isLintable?: boolean | undefined;
43
- transform?: import("../types").WidgetTransform | undefined;
44
43
  tracking?: import("../types").Tracking | undefined;
45
- staticTransform?: import("../types").WidgetTransform | undefined;
46
44
  traverseChildWidgets?: any;
45
+ transform?: import("../types").WidgetTransform | undefined;
46
+ staticTransform?: import("../types").WidgetTransform | undefined;
47
47
  propUpgrades?: {
48
48
  [key: string]: (arg1: any) => any;
49
49
  } | undefined;
@@ -53,10 +53,10 @@ declare var _default: $ReadOnly<{|
53
53
  | (() => $Flowgen$Import$_2e__2e__2f_types.Alignment)
54
54
  | void,
55
55
  isLintable?: boolean | void,
56
- transform?: $Flowgen$Import$_2e__2e__2f_types.WidgetTransform | void,
57
56
  tracking?: $Flowgen$Import$_2e__2e__2f_types.Tracking | void,
58
- staticTransform?: $Flowgen$Import$_2e__2e__2f_types.WidgetTransform | void,
59
57
  traverseChildWidgets?: any,
58
+ transform?: $Flowgen$Import$_2e__2e__2f_types.WidgetTransform | void,
59
+ staticTransform?: $Flowgen$Import$_2e__2e__2f_types.WidgetTransform | void,
60
60
  propUpgrades?: {
61
61
  [key: string]: (arg1: any) => any,
62
62
  } | void,
@@ -54,10 +54,10 @@ declare const _default: Readonly<{
54
54
  defaultAlignment?: import("../types").Alignment | undefined;
55
55
  getDefaultAlignment?: (() => import("../types").Alignment) | undefined;
56
56
  isLintable?: boolean | undefined;
57
- transform?: import("../types").WidgetTransform | undefined;
58
57
  tracking?: import("../types").Tracking | undefined;
59
- staticTransform?: import("../types").WidgetTransform | undefined;
60
58
  traverseChildWidgets?: any;
59
+ transform?: import("../types").WidgetTransform | undefined;
60
+ staticTransform?: import("../types").WidgetTransform | undefined;
61
61
  propUpgrades?: {
62
62
  [key: string]: (arg1: any) => any;
63
63
  } | undefined;
@@ -66,10 +66,10 @@ declare var _default: $ReadOnly<{|
66
66
  | (() => $Flowgen$Import$_2e__2e__2f_types.Alignment)
67
67
  | void,
68
68
  isLintable?: boolean | void,
69
- transform?: $Flowgen$Import$_2e__2e__2f_types.WidgetTransform | void,
70
69
  tracking?: $Flowgen$Import$_2e__2e__2f_types.Tracking | void,
71
- staticTransform?: $Flowgen$Import$_2e__2e__2f_types.WidgetTransform | void,
72
70
  traverseChildWidgets?: any,
71
+ transform?: $Flowgen$Import$_2e__2e__2f_types.WidgetTransform | void,
72
+ staticTransform?: $Flowgen$Import$_2e__2e__2f_types.WidgetTransform | void,
73
73
  propUpgrades?: {
74
74
  [key: string]: (arg1: any) => any,
75
75
  } | void,
@@ -51,10 +51,10 @@ declare const _default: Readonly<{
51
51
  defaultAlignment?: import("../types").Alignment | undefined;
52
52
  getDefaultAlignment?: (() => import("../types").Alignment) | undefined;
53
53
  isLintable?: boolean | undefined;
54
- transform?: import("../types").WidgetTransform | undefined;
55
54
  tracking?: import("../types").Tracking | undefined;
56
- staticTransform?: import("../types").WidgetTransform | undefined;
57
55
  traverseChildWidgets?: any;
56
+ transform?: import("../types").WidgetTransform | undefined;
57
+ staticTransform?: import("../types").WidgetTransform | undefined;
58
58
  propUpgrades?: {
59
59
  [key: string]: (arg1: any) => any;
60
60
  } | undefined;
@@ -90,10 +90,10 @@ declare var _default: $ReadOnly<{|
90
90
  | (() => $Flowgen$Import$_2e__2e__2f_types.Alignment)
91
91
  | void,
92
92
  isLintable?: boolean | void,
93
- transform?: $Flowgen$Import$_2e__2e__2f_types.WidgetTransform | void,
94
93
  tracking?: $Flowgen$Import$_2e__2e__2f_types.Tracking | void,
95
- staticTransform?: $Flowgen$Import$_2e__2e__2f_types.WidgetTransform | void,
96
94
  traverseChildWidgets?: any,
95
+ transform?: $Flowgen$Import$_2e__2e__2f_types.WidgetTransform | void,
96
+ staticTransform?: $Flowgen$Import$_2e__2e__2f_types.WidgetTransform | void,
97
97
  propUpgrades?: {
98
98
  [key: string]: (arg1: any) => any,
99
99
  } | void,
@@ -39,10 +39,10 @@ declare const _default: Readonly<{
39
39
  defaultAlignment?: import("../types").Alignment | undefined;
40
40
  getDefaultAlignment?: (() => import("../types").Alignment) | undefined;
41
41
  isLintable?: boolean | undefined;
42
- transform?: import("../types").WidgetTransform | undefined;
43
42
  tracking?: import("../types").Tracking | undefined;
44
- staticTransform?: import("../types").WidgetTransform | undefined;
45
43
  traverseChildWidgets?: any;
44
+ transform?: import("../types").WidgetTransform | undefined;
45
+ staticTransform?: import("../types").WidgetTransform | undefined;
46
46
  propUpgrades?: {
47
47
  [key: string]: (arg1: any) => any;
48
48
  } | undefined;
@@ -48,10 +48,10 @@ declare var _default: $ReadOnly<{|
48
48
  | (() => $Flowgen$Import$_2e__2e__2f_types.Alignment)
49
49
  | void,
50
50
  isLintable?: boolean | void,
51
- transform?: $Flowgen$Import$_2e__2e__2f_types.WidgetTransform | void,
52
51
  tracking?: $Flowgen$Import$_2e__2e__2f_types.Tracking | void,
53
- staticTransform?: $Flowgen$Import$_2e__2e__2f_types.WidgetTransform | void,
54
52
  traverseChildWidgets?: any,
53
+ transform?: $Flowgen$Import$_2e__2e__2f_types.WidgetTransform | void,
54
+ staticTransform?: $Flowgen$Import$_2e__2e__2f_types.WidgetTransform | void,
55
55
  propUpgrades?: {
56
56
  [key: string]: (arg1: any) => any,
57
57
  } | void,
@@ -40,10 +40,10 @@ declare const _default: Readonly<{
40
40
  defaultAlignment?: import("../types").Alignment | undefined;
41
41
  getDefaultAlignment?: (() => import("../types").Alignment) | undefined;
42
42
  isLintable?: boolean | undefined;
43
- transform?: import("../types").WidgetTransform | undefined;
44
43
  tracking?: import("../types").Tracking | undefined;
45
- staticTransform?: import("../types").WidgetTransform | undefined;
46
44
  traverseChildWidgets?: any;
45
+ transform?: import("../types").WidgetTransform | undefined;
46
+ staticTransform?: import("../types").WidgetTransform | undefined;
47
47
  propUpgrades?: {
48
48
  [key: string]: (arg1: any) => any;
49
49
  } | undefined;
@@ -41,10 +41,10 @@ declare var _default: $ReadOnly<{|
41
41
  | (() => $Flowgen$Import$_2e__2e__2f_types.Alignment)
42
42
  | void,
43
43
  isLintable?: boolean | void,
44
- transform?: $Flowgen$Import$_2e__2e__2f_types.WidgetTransform | void,
45
44
  tracking?: $Flowgen$Import$_2e__2e__2f_types.Tracking | void,
46
- staticTransform?: $Flowgen$Import$_2e__2e__2f_types.WidgetTransform | void,
47
45
  traverseChildWidgets?: any,
46
+ transform?: $Flowgen$Import$_2e__2e__2f_types.WidgetTransform | void,
47
+ staticTransform?: $Flowgen$Import$_2e__2e__2f_types.WidgetTransform | void,
48
48
  propUpgrades?: {
49
49
  [key: string]: (arg1: any) => any,
50
50
  } | void,
@@ -47,10 +47,10 @@ declare const _default: Readonly<{
47
47
  defaultAlignment?: import("../types").Alignment | undefined;
48
48
  getDefaultAlignment?: (() => import("../types").Alignment) | undefined;
49
49
  isLintable?: boolean | undefined;
50
- transform?: import("../types").WidgetTransform | undefined;
51
50
  tracking?: import("../types").Tracking | undefined;
52
- staticTransform?: import("../types").WidgetTransform | undefined;
53
51
  traverseChildWidgets?: any;
52
+ transform?: import("../types").WidgetTransform | undefined;
53
+ staticTransform?: import("../types").WidgetTransform | undefined;
54
54
  propUpgrades?: {
55
55
  [key: string]: (arg1: any) => any;
56
56
  } | undefined;
@@ -61,10 +61,10 @@ declare var _default: $ReadOnly<{|
61
61
  | (() => $Flowgen$Import$_2e__2e__2f_types.Alignment)
62
62
  | void,
63
63
  isLintable?: boolean | void,
64
- transform?: $Flowgen$Import$_2e__2e__2f_types.WidgetTransform | void,
65
64
  tracking?: $Flowgen$Import$_2e__2e__2f_types.Tracking | void,
66
- staticTransform?: $Flowgen$Import$_2e__2e__2f_types.WidgetTransform | void,
67
65
  traverseChildWidgets?: any,
66
+ transform?: $Flowgen$Import$_2e__2e__2f_types.WidgetTransform | void,
67
+ staticTransform?: $Flowgen$Import$_2e__2e__2f_types.WidgetTransform | void,
68
68
  propUpgrades?: {
69
69
  [key: string]: (arg1: any) => any,
70
70
  } | void,
@@ -63,10 +63,10 @@ declare const _default: Readonly<{
63
63
  defaultAlignment?: import("../types").Alignment | undefined;
64
64
  getDefaultAlignment?: (() => import("../types").Alignment) | undefined;
65
65
  isLintable?: boolean | undefined;
66
- transform?: import("../types").WidgetTransform | undefined;
67
66
  tracking?: import("../types").Tracking | undefined;
68
- staticTransform?: import("../types").WidgetTransform | undefined;
69
67
  traverseChildWidgets?: any;
68
+ transform?: import("../types").WidgetTransform | undefined;
69
+ staticTransform?: import("../types").WidgetTransform | undefined;
70
70
  propUpgrades?: {
71
71
  [key: string]: (arg1: any) => any;
72
72
  } | undefined;
@@ -82,10 +82,10 @@ declare var _default: $ReadOnly<{|
82
82
  | (() => $Flowgen$Import$_2e__2e__2f_types.Alignment)
83
83
  | void,
84
84
  isLintable?: boolean | void,
85
- transform?: $Flowgen$Import$_2e__2e__2f_types.WidgetTransform | void,
86
85
  tracking?: $Flowgen$Import$_2e__2e__2f_types.Tracking | void,
87
- staticTransform?: $Flowgen$Import$_2e__2e__2f_types.WidgetTransform | void,
88
86
  traverseChildWidgets?: any,
87
+ transform?: $Flowgen$Import$_2e__2e__2f_types.WidgetTransform | void,
88
+ staticTransform?: $Flowgen$Import$_2e__2e__2f_types.WidgetTransform | void,
89
89
  propUpgrades?: {
90
90
  [key: string]: (arg1: any) => any,
91
91
  } | void,
@@ -39,10 +39,10 @@ declare const _default: Readonly<{
39
39
  defaultAlignment?: import("../types").Alignment | undefined;
40
40
  getDefaultAlignment?: (() => import("../types").Alignment) | undefined;
41
41
  isLintable?: boolean | undefined;
42
- transform?: import("../types").WidgetTransform | undefined;
43
42
  tracking?: import("../types").Tracking | undefined;
44
- staticTransform?: import("../types").WidgetTransform | undefined;
45
43
  traverseChildWidgets?: any;
44
+ transform?: import("../types").WidgetTransform | undefined;
45
+ staticTransform?: import("../types").WidgetTransform | undefined;
46
46
  propUpgrades?: {
47
47
  [key: string]: (arg1: any) => any;
48
48
  } | undefined;
@@ -48,10 +48,10 @@ declare var _default: $ReadOnly<{|
48
48
  | (() => $Flowgen$Import$_2e__2e__2f_types.Alignment)
49
49
  | void,
50
50
  isLintable?: boolean | void,
51
- transform?: $Flowgen$Import$_2e__2e__2f_types.WidgetTransform | void,
52
51
  tracking?: $Flowgen$Import$_2e__2e__2f_types.Tracking | void,
53
- staticTransform?: $Flowgen$Import$_2e__2e__2f_types.WidgetTransform | void,
54
52
  traverseChildWidgets?: any,
53
+ transform?: $Flowgen$Import$_2e__2e__2f_types.WidgetTransform | void,
54
+ staticTransform?: $Flowgen$Import$_2e__2e__2f_types.WidgetTransform | void,
55
55
  propUpgrades?: {
56
56
  [key: string]: (arg1: any) => any,
57
57
  } | void,
@@ -1,15 +1,8 @@
1
1
  import * as React from "react";
2
+ import { QuadraticCoefficient, SineCoefficient, Range } from "../util/geometry";
2
3
  import type { Coord } from "../interactive2/types";
3
4
  import type { PerseusGraphType, PerseusGraphTypeAngle, PerseusGraphTypePoint, PerseusGraphTypePolygon, PerseusGraphTypeSegment, PerseusInteractiveGraphWidgetOptions } from "../perseus-types";
4
5
  import type { PerseusScore, WidgetProps } from "../types";
5
- type Range = ReadonlyArray<number>;
6
- type SineCoefficient = [
7
- number,
8
- number,
9
- number,
10
- number
11
- ];
12
- type QuadraticCoefficient = [/* a */ number, /* b */ number, /* c */ number];
13
6
  type RenderProps = PerseusInteractiveGraphWidgetOptions;
14
7
  type Rubric = PerseusInteractiveGraphWidgetOptions;
15
8
  type Props = WidgetProps<RenderProps, Rubric>;
@@ -99,10 +92,9 @@ declare class InteractiveGraph extends React.Component<Props, State> {
99
92
  removePolygonControls: () => void;
100
93
  addAngleControls: () => void;
101
94
  removeAngleControls: () => void;
102
- toggleShowAngles: () => void;
103
95
  toggleShowSides: () => void;
104
96
  getUserInput: () => PerseusGraphType;
105
- simpleValidate: (arg1: Rubric) => PerseusScore;
97
+ simpleValidate: (rubric: Rubric) => PerseusScore;
106
98
  focus: () => void;
107
99
  render(): React.ReactNode;
108
100
  static getQuadraticCoefficients(coords: ReadonlyArray<Coord>): QuadraticCoefficient;
@@ -168,10 +160,10 @@ declare const _default: Readonly<{
168
160
  defaultAlignment?: import("../types").Alignment | undefined;
169
161
  getDefaultAlignment?: (() => import("../types").Alignment) | undefined;
170
162
  isLintable?: boolean | undefined;
171
- transform?: import("../types").WidgetTransform | undefined;
172
163
  tracking?: import("../types").Tracking | undefined;
173
- staticTransform?: import("../types").WidgetTransform | undefined;
174
164
  traverseChildWidgets?: any;
165
+ transform?: import("../types").WidgetTransform | undefined;
166
+ staticTransform?: import("../types").WidgetTransform | undefined;
175
167
  propUpgrades?: {
176
168
  [key: string]: (arg1: any) => any;
177
169
  } | undefined;