@khanacademy/perseus-editor 32.1.0 → 32.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.
- package/dist/components/coordinate-pair-input.d.ts +1 -0
- package/dist/es/index.css +2 -2
- package/dist/es/index.css.map +1 -1
- package/dist/es/index.js +70 -66
- package/dist/es/index.js.map +1 -1
- package/dist/index.css +2 -2
- package/dist/index.css.map +1 -1
- package/dist/index.js +70 -66
- package/dist/index.js.map +1 -1
- package/dist/widgets/interactive-graph-editor/interactive-graph-editor.d.ts +1 -0
- package/dist/widgets/interactive-graph-editor/start-coords/coord-input.d.ts +2 -0
- package/dist/widgets/interactive-graph-editor/start-coords/start-coords-absolute-value.d.ts +5 -3
- package/dist/widgets/interactive-graph-editor/start-coords/start-coords-angle.d.ts +5 -3
- package/dist/widgets/interactive-graph-editor/start-coords/start-coords-circle.d.ts +5 -3
- package/dist/widgets/interactive-graph-editor/start-coords/start-coords-exponential.d.ts +5 -3
- package/dist/widgets/interactive-graph-editor/start-coords/start-coords-line.d.ts +5 -3
- package/dist/widgets/interactive-graph-editor/start-coords/start-coords-logarithm.d.ts +5 -3
- package/dist/widgets/interactive-graph-editor/start-coords/start-coords-multiline.d.ts +5 -3
- package/dist/widgets/interactive-graph-editor/start-coords/start-coords-point.d.ts +2 -0
- package/dist/widgets/interactive-graph-editor/start-coords/start-coords-quadratic.d.ts +5 -3
- package/dist/widgets/interactive-graph-editor/start-coords/start-coords-settings.d.ts +4 -2
- package/dist/widgets/interactive-graph-editor/start-coords/start-coords-sinusoid.d.ts +5 -3
- package/dist/widgets/interactive-graph-editor/start-coords/start-coords-tangent.d.ts +5 -3
- package/dist/widgets/interactive-graph-editor/start-coords/start-coords-vector.d.ts +8 -0
- package/dist/widgets/interactive-graph-editor/utils/reshape-point-labels.d.ts +5 -0
- package/package.json +46 -46
|
@@ -1081,6 +1081,7 @@ declare class InteractiveGraphEditor extends React.Component<Props> {
|
|
|
1081
1081
|
valid: true | string;
|
|
1082
1082
|
};
|
|
1083
1083
|
changeStartCoords: (coords: any) => void;
|
|
1084
|
+
changePointLabels: (pointLabels: ReadonlyArray<string>) => void;
|
|
1084
1085
|
serialize(): PerseusInteractiveGraphWidgetOptions;
|
|
1085
1086
|
getSaveWarnings: () => any[];
|
|
1086
1087
|
render(): React.JSX.Element;
|
|
@@ -4,6 +4,8 @@ interface CoordInputProps {
|
|
|
4
4
|
label: string;
|
|
5
5
|
coord: Coord;
|
|
6
6
|
onChange: (coord: Coord) => void;
|
|
7
|
+
pointLabel?: string;
|
|
8
|
+
onPointLabelChange?: (newLabel: string) => void;
|
|
7
9
|
}
|
|
8
10
|
declare const CoordInput: (props: CoordInputProps) => React.JSX.Element;
|
|
9
11
|
export default CoordInput;
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import type { Coord } from "@khanacademy/perseus";
|
|
3
3
|
type AbsoluteValueCoords = [Coord, Coord];
|
|
4
|
-
|
|
4
|
+
interface StartCoordsAbsoluteValueProps {
|
|
5
5
|
startCoords: AbsoluteValueCoords;
|
|
6
6
|
onChange: (startCoords: AbsoluteValueCoords) => void;
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
pointLabels: ReadonlyArray<string>;
|
|
8
|
+
onChangePointLabels: (pointLabels: ReadonlyArray<string>) => void;
|
|
9
|
+
}
|
|
10
|
+
declare const StartCoordsAbsoluteValue: (props: StartCoordsAbsoluteValueProps) => React.JSX.Element;
|
|
9
11
|
export default StartCoordsAbsoluteValue;
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import type { Coord } from "@khanacademy/perseus";
|
|
3
3
|
type AngleCoords = [Coord, Coord, Coord];
|
|
4
|
-
|
|
4
|
+
interface StartCoordsAngleProps {
|
|
5
5
|
startCoords: AngleCoords;
|
|
6
6
|
allowReflexAngles?: boolean;
|
|
7
7
|
onChange: (startCoords: AngleCoords) => void;
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
pointLabels: ReadonlyArray<string>;
|
|
9
|
+
onChangePointLabels: (pointLabels: ReadonlyArray<string>) => void;
|
|
10
|
+
}
|
|
11
|
+
declare const StartCoordsAngle: (props: StartCoordsAngleProps) => React.JSX.Element;
|
|
10
12
|
export default StartCoordsAngle;
|
|
@@ -4,9 +4,11 @@ type CircleCoords = {
|
|
|
4
4
|
center: Coord;
|
|
5
5
|
radius: number;
|
|
6
6
|
};
|
|
7
|
-
|
|
7
|
+
interface StartCoordsCircleProps {
|
|
8
8
|
startCoords: CircleCoords;
|
|
9
9
|
onChange: (startCoords: CircleCoords) => void;
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
pointLabels: ReadonlyArray<string>;
|
|
11
|
+
onChangePointLabels: (pointLabels: ReadonlyArray<string>) => void;
|
|
12
|
+
}
|
|
13
|
+
declare const StartCoordsCircle: (props: StartCoordsCircleProps) => React.JSX.Element;
|
|
12
14
|
export default StartCoordsCircle;
|
|
@@ -4,9 +4,11 @@ type ExponentialStartCoords = {
|
|
|
4
4
|
coords: [Coord, Coord];
|
|
5
5
|
asymptote: number;
|
|
6
6
|
};
|
|
7
|
-
|
|
7
|
+
interface StartCoordsExponentialProps {
|
|
8
8
|
startCoords: ExponentialStartCoords;
|
|
9
9
|
onChange: (startCoords: ExponentialStartCoords) => void;
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
pointLabels: ReadonlyArray<string>;
|
|
11
|
+
onChangePointLabels: (pointLabels: ReadonlyArray<string>) => void;
|
|
12
|
+
}
|
|
13
|
+
declare const StartCoordsExponential: (props: StartCoordsExponentialProps) => React.JSX.Element;
|
|
12
14
|
export default StartCoordsExponential;
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import type { CollinearTuple } from "@khanacademy/perseus-core";
|
|
3
|
-
|
|
3
|
+
interface StartCoordsLineProps {
|
|
4
4
|
startCoords: CollinearTuple;
|
|
5
5
|
onChange: (startCoords: CollinearTuple) => void;
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
pointLabels: ReadonlyArray<string>;
|
|
7
|
+
onChangePointLabels: (pointLabels: ReadonlyArray<string>) => void;
|
|
8
|
+
}
|
|
9
|
+
declare const StartCoordsLine: (props: StartCoordsLineProps) => React.JSX.Element;
|
|
8
10
|
export default StartCoordsLine;
|
|
@@ -4,9 +4,11 @@ type LogarithmStartCoords = {
|
|
|
4
4
|
coords: [Coord, Coord];
|
|
5
5
|
asymptote: number;
|
|
6
6
|
};
|
|
7
|
-
|
|
7
|
+
interface StartCoordsLogarithmProps {
|
|
8
8
|
startCoords: LogarithmStartCoords;
|
|
9
9
|
onChange: (startCoords: LogarithmStartCoords) => void;
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
pointLabels: ReadonlyArray<string>;
|
|
11
|
+
onChangePointLabels: (pointLabels: ReadonlyArray<string>) => void;
|
|
12
|
+
}
|
|
13
|
+
declare const StartCoordsLogarithm: (props: StartCoordsLogarithmProps) => React.JSX.Element;
|
|
12
14
|
export default StartCoordsLogarithm;
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import type { CollinearTuple } from "@khanacademy/perseus-core";
|
|
3
|
-
|
|
3
|
+
interface StartCoordsMultilineProps {
|
|
4
4
|
type: "linear-system" | "segment";
|
|
5
5
|
startCoords: CollinearTuple[];
|
|
6
6
|
onChange: (startCoords: CollinearTuple[]) => void;
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
pointLabels: ReadonlyArray<string>;
|
|
8
|
+
onChangePointLabels: (pointLabels: ReadonlyArray<string>) => void;
|
|
9
|
+
}
|
|
10
|
+
declare const StartCoordsMultiline: (props: StartCoordsMultilineProps) => React.JSX.Element;
|
|
9
11
|
export default StartCoordsMultiline;
|
|
@@ -3,6 +3,8 @@ import type { Coord } from "@khanacademy/perseus";
|
|
|
3
3
|
type Props = {
|
|
4
4
|
startCoords: Coord[];
|
|
5
5
|
onChange: (startCoords: Coord[]) => void;
|
|
6
|
+
pointLabels?: ReadonlyArray<string>;
|
|
7
|
+
onChangePointLabels?: (pointLabels: ReadonlyArray<string>) => void;
|
|
6
8
|
};
|
|
7
9
|
declare const StartCoordsPoint: (props: Props) => React.JSX.Element;
|
|
8
10
|
export default StartCoordsPoint;
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import type { Coord } from "@khanacademy/perseus";
|
|
3
|
-
|
|
3
|
+
interface StartCoordsQuadraticProps {
|
|
4
4
|
startCoords: [Coord, Coord, Coord];
|
|
5
5
|
onChange: (startCoords: [Coord, Coord, Coord]) => void;
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
pointLabels: ReadonlyArray<string>;
|
|
7
|
+
onChangePointLabels: (pointLabels: ReadonlyArray<string>) => void;
|
|
8
|
+
}
|
|
9
|
+
declare const StartCoordsQuadratic: (props: StartCoordsQuadraticProps) => React.JSX.Element;
|
|
8
10
|
export default StartCoordsQuadratic;
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import type { StartCoords } from "./types";
|
|
3
3
|
import type { PerseusGraphType, Range } from "@khanacademy/perseus-core";
|
|
4
|
-
|
|
4
|
+
interface StartCoordsSettingsProps {
|
|
5
5
|
range: [x: Range, y: Range];
|
|
6
6
|
step: [x: number, y: number];
|
|
7
7
|
allowReflexAngles?: boolean;
|
|
8
8
|
onChange: (startCoords: StartCoords) => void;
|
|
9
|
-
|
|
9
|
+
onChangePointLabels: (pointLabels: ReadonlyArray<string>) => void;
|
|
10
|
+
}
|
|
11
|
+
type Props = PerseusGraphType & StartCoordsSettingsProps;
|
|
10
12
|
declare const StartCoordsSettings: (props: Props) => React.JSX.Element;
|
|
11
13
|
export default StartCoordsSettings;
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import type { Coord } from "@khanacademy/perseus";
|
|
3
3
|
type SinusoidCoords = [Coord, Coord];
|
|
4
|
-
|
|
4
|
+
interface StartCoordsSinusoidProps {
|
|
5
5
|
startCoords: SinusoidCoords;
|
|
6
6
|
onChange: (startCoords: SinusoidCoords) => void;
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
pointLabels: ReadonlyArray<string>;
|
|
8
|
+
onChangePointLabels: (pointLabels: ReadonlyArray<string>) => void;
|
|
9
|
+
}
|
|
10
|
+
declare const StartCoordsSinusoid: (props: StartCoordsSinusoidProps) => React.JSX.Element;
|
|
9
11
|
export default StartCoordsSinusoid;
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import type { Coord } from "@khanacademy/perseus";
|
|
3
3
|
type TangentCoords = [Coord, Coord];
|
|
4
|
-
|
|
4
|
+
interface StartCoordsTangentProps {
|
|
5
5
|
startCoords: TangentCoords;
|
|
6
6
|
onChange: (startCoords: TangentCoords) => void;
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
pointLabels: ReadonlyArray<string>;
|
|
8
|
+
onChangePointLabels: (pointLabels: ReadonlyArray<string>) => void;
|
|
9
|
+
}
|
|
10
|
+
declare const StartCoordsTangent: (props: StartCoordsTangentProps) => React.JSX.Element;
|
|
9
11
|
export default StartCoordsTangent;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import type { CollinearTuple } from "@khanacademy/perseus-core";
|
|
3
|
+
interface StartCoordsVectorProps {
|
|
4
|
+
startCoords: CollinearTuple;
|
|
5
|
+
onChange: (startCoords: CollinearTuple) => void;
|
|
6
|
+
}
|
|
7
|
+
declare const StartCoordsVector: (props: StartCoordsVectorProps) => React.JSX.Element;
|
|
8
|
+
export default StartCoordsVector;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { PerseusGraphType } from "@khanacademy/perseus-core";
|
|
2
|
+
export declare function reshapePointLabelsForGraphType(pointLabels: ReadonlyArray<string>, graph: PerseusGraphType | undefined, correct: PerseusGraphType | undefined): {
|
|
3
|
+
graph: PerseusGraphType;
|
|
4
|
+
correct: PerseusGraphType;
|
|
5
|
+
} | null;
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"description": "Perseus editors",
|
|
4
4
|
"author": "Khan Academy",
|
|
5
5
|
"license": "MIT",
|
|
6
|
-
"version": "32.
|
|
6
|
+
"version": "32.3.0",
|
|
7
7
|
"publishConfig": {
|
|
8
8
|
"access": "public"
|
|
9
9
|
},
|
|
@@ -20,10 +20,10 @@
|
|
|
20
20
|
"source": "src/index.ts",
|
|
21
21
|
"exports": {
|
|
22
22
|
".": {
|
|
23
|
-
"import": "./dist/es/index.js",
|
|
24
|
-
"require": "./dist/index.js",
|
|
25
23
|
"types": "./dist/index.d.ts",
|
|
26
|
-
"source": "./src/index.ts"
|
|
24
|
+
"source": "./src/index.ts",
|
|
25
|
+
"import": "./dist/es/index.js",
|
|
26
|
+
"require": "./dist/index.js"
|
|
27
27
|
},
|
|
28
28
|
"./styles.css": "./dist/index.css"
|
|
29
29
|
},
|
|
@@ -36,35 +36,35 @@
|
|
|
36
36
|
"mafs": "^0.19.0",
|
|
37
37
|
"tiny-invariant": "1.3.1",
|
|
38
38
|
"@khanacademy/kas": "2.2.3",
|
|
39
|
-
"@khanacademy/keypad-context": "3.2.
|
|
40
|
-
"@khanacademy/kmath": "2.4.
|
|
41
|
-
"@khanacademy/math-input": "26.4.
|
|
42
|
-
"@khanacademy/perseus": "77.
|
|
43
|
-
"@khanacademy/perseus-core": "27.
|
|
44
|
-
"@khanacademy/perseus-linter": "5.0.
|
|
45
|
-
"@khanacademy/perseus-score": "8.11.
|
|
39
|
+
"@khanacademy/keypad-context": "3.2.60",
|
|
40
|
+
"@khanacademy/kmath": "2.4.18",
|
|
41
|
+
"@khanacademy/math-input": "26.4.32",
|
|
42
|
+
"@khanacademy/perseus": "77.10.1",
|
|
43
|
+
"@khanacademy/perseus-core": "27.3.0",
|
|
44
|
+
"@khanacademy/perseus-linter": "5.0.15",
|
|
45
|
+
"@khanacademy/perseus-score": "8.11.2",
|
|
46
46
|
"@khanacademy/perseus-utils": "2.1.5"
|
|
47
47
|
},
|
|
48
48
|
"devDependencies": {
|
|
49
49
|
"@khanacademy/mathjax-renderer": "3.0.0",
|
|
50
|
-
"@khanacademy/wonder-blocks-accordion": "3.1.
|
|
51
|
-
"@khanacademy/wonder-blocks-banner": "5.1.
|
|
52
|
-
"@khanacademy/wonder-blocks-button": "11.6.
|
|
53
|
-
"@khanacademy/wonder-blocks-clickable": "8.1
|
|
54
|
-
"@khanacademy/wonder-blocks-core": "12.4.
|
|
55
|
-
"@khanacademy/wonder-blocks-dropdown": "10.9.
|
|
56
|
-
"@khanacademy/wonder-blocks-form": "7.6.
|
|
57
|
-
"@khanacademy/wonder-blocks-icon": "5.3.
|
|
58
|
-
"@khanacademy/wonder-blocks-icon-button": "11.3.
|
|
59
|
-
"@khanacademy/wonder-blocks-labeled-field": "4.1.
|
|
60
|
-
"@khanacademy/wonder-blocks-layout": "3.1.
|
|
61
|
-
"@khanacademy/wonder-blocks-link": "10.
|
|
62
|
-
"@khanacademy/wonder-blocks-pill": "3.1.
|
|
63
|
-
"@khanacademy/wonder-blocks-switch": "3.4.
|
|
50
|
+
"@khanacademy/wonder-blocks-accordion": "3.1.61",
|
|
51
|
+
"@khanacademy/wonder-blocks-banner": "5.1.2",
|
|
52
|
+
"@khanacademy/wonder-blocks-button": "11.6.2",
|
|
53
|
+
"@khanacademy/wonder-blocks-clickable": "8.2.1",
|
|
54
|
+
"@khanacademy/wonder-blocks-core": "12.4.4",
|
|
55
|
+
"@khanacademy/wonder-blocks-dropdown": "10.9.2",
|
|
56
|
+
"@khanacademy/wonder-blocks-form": "7.6.2",
|
|
57
|
+
"@khanacademy/wonder-blocks-icon": "5.3.16",
|
|
58
|
+
"@khanacademy/wonder-blocks-icon-button": "11.3.2",
|
|
59
|
+
"@khanacademy/wonder-blocks-labeled-field": "4.1.2",
|
|
60
|
+
"@khanacademy/wonder-blocks-layout": "3.1.53",
|
|
61
|
+
"@khanacademy/wonder-blocks-link": "10.3.1",
|
|
62
|
+
"@khanacademy/wonder-blocks-pill": "3.1.65",
|
|
63
|
+
"@khanacademy/wonder-blocks-switch": "3.4.2",
|
|
64
64
|
"@khanacademy/wonder-blocks-timing": "7.1.0",
|
|
65
|
-
"@khanacademy/wonder-blocks-tokens": "16.
|
|
66
|
-
"@khanacademy/wonder-blocks-tooltip": "4.1.
|
|
67
|
-
"@khanacademy/wonder-blocks-typography": "4.3.
|
|
65
|
+
"@khanacademy/wonder-blocks-tokens": "16.6.0",
|
|
66
|
+
"@khanacademy/wonder-blocks-tooltip": "4.1.77",
|
|
67
|
+
"@khanacademy/wonder-blocks-typography": "4.3.6",
|
|
68
68
|
"@khanacademy/wonder-stuff-core": "3.0.0",
|
|
69
69
|
"@phosphor-icons/core": "2.0.2",
|
|
70
70
|
"aphrodite": "1.2.5",
|
|
@@ -79,24 +79,24 @@
|
|
|
79
79
|
},
|
|
80
80
|
"peerDependencies": {
|
|
81
81
|
"@khanacademy/mathjax-renderer": "^3.0.0",
|
|
82
|
-
"@khanacademy/wonder-blocks-accordion": "^3.1.
|
|
83
|
-
"@khanacademy/wonder-blocks-banner": "^5.1.
|
|
84
|
-
"@khanacademy/wonder-blocks-button": "^11.6.
|
|
85
|
-
"@khanacademy/wonder-blocks-clickable": "^8.1
|
|
86
|
-
"@khanacademy/wonder-blocks-core": "^12.4.
|
|
87
|
-
"@khanacademy/wonder-blocks-dropdown": "^10.9.
|
|
88
|
-
"@khanacademy/wonder-blocks-form": "^7.6.
|
|
89
|
-
"@khanacademy/wonder-blocks-icon": "^5.3.
|
|
90
|
-
"@khanacademy/wonder-blocks-icon-button": "^11.3.
|
|
91
|
-
"@khanacademy/wonder-blocks-labeled-field": "^4.1.
|
|
92
|
-
"@khanacademy/wonder-blocks-layout": "^3.1.
|
|
93
|
-
"@khanacademy/wonder-blocks-link": "^10.
|
|
94
|
-
"@khanacademy/wonder-blocks-pill": "^3.1.
|
|
95
|
-
"@khanacademy/wonder-blocks-switch": "^3.4.
|
|
82
|
+
"@khanacademy/wonder-blocks-accordion": "^3.1.61",
|
|
83
|
+
"@khanacademy/wonder-blocks-banner": "^5.1.2",
|
|
84
|
+
"@khanacademy/wonder-blocks-button": "^11.6.2",
|
|
85
|
+
"@khanacademy/wonder-blocks-clickable": "^8.2.1",
|
|
86
|
+
"@khanacademy/wonder-blocks-core": "^12.4.4",
|
|
87
|
+
"@khanacademy/wonder-blocks-dropdown": "^10.9.2",
|
|
88
|
+
"@khanacademy/wonder-blocks-form": "^7.6.2",
|
|
89
|
+
"@khanacademy/wonder-blocks-icon": "^5.3.16",
|
|
90
|
+
"@khanacademy/wonder-blocks-icon-button": "^11.3.2",
|
|
91
|
+
"@khanacademy/wonder-blocks-labeled-field": "^4.1.2",
|
|
92
|
+
"@khanacademy/wonder-blocks-layout": "^3.1.53",
|
|
93
|
+
"@khanacademy/wonder-blocks-link": "^10.3.1",
|
|
94
|
+
"@khanacademy/wonder-blocks-pill": "^3.1.65",
|
|
95
|
+
"@khanacademy/wonder-blocks-switch": "^3.4.2",
|
|
96
96
|
"@khanacademy/wonder-blocks-timing": "^7.1.0",
|
|
97
|
-
"@khanacademy/wonder-blocks-tokens": "^16.
|
|
98
|
-
"@khanacademy/wonder-blocks-tooltip": "^4.1.
|
|
99
|
-
"@khanacademy/wonder-blocks-typography": "^4.3.
|
|
97
|
+
"@khanacademy/wonder-blocks-tokens": "^16.6.0",
|
|
98
|
+
"@khanacademy/wonder-blocks-tooltip": "^4.1.77",
|
|
99
|
+
"@khanacademy/wonder-blocks-typography": "^4.3.6",
|
|
100
100
|
"@khanacademy/wonder-stuff-core": "^3.0.0",
|
|
101
101
|
"@phosphor-icons/core": "^2.0.2",
|
|
102
102
|
"aphrodite": "^1.2.5",
|
|
@@ -109,7 +109,7 @@
|
|
|
109
109
|
},
|
|
110
110
|
"keywords": [],
|
|
111
111
|
"khan": {
|
|
112
|
-
"catalogHash": "
|
|
112
|
+
"catalogHash": "8d63a26474e3cbb4"
|
|
113
113
|
},
|
|
114
114
|
"scripts": {}
|
|
115
115
|
}
|