From 55db9f310bd22521fe9821072e169022f3f99735 Mon Sep 17 00:00:00 2001 From: Matthew Curtis Date: Tue, 14 Jan 2025 14:35:16 -0600 Subject: [PATCH 1/3] move numeric-input and input-number --- packages/perseus-editor/package.json | 1 + .../src/widgets/input-number-editor.tsx | 38 +--------- packages/perseus-score/src/index.ts | 5 ++ .../src/util}/tex-wrangler.test.ts | 4 +- .../src/util}/tex-wrangler.ts | 9 +-- .../input-number/score-input-number.test.ts | 12 ++- .../input-number/score-input-number.ts | 17 ++--- .../numeric-input/score-numeric-input.test.ts | 76 +++++-------------- .../numeric-input/score-numeric-input.ts | 23 +++--- .../widgets/input-number/input-number.test.ts | 9 +-- .../src/widgets/input-number/input-number.tsx | 14 ++-- .../widgets/numeric-input/numeric-input.tsx | 11 ++- 12 files changed, 63 insertions(+), 156 deletions(-) rename packages/{perseus/src/__tests__ => perseus-score/src/util}/tex-wrangler.test.ts (96%) rename packages/{perseus/src => perseus-score/src/util}/tex-wrangler.ts (97%) rename packages/{perseus => perseus-score}/src/widgets/input-number/score-input-number.test.ts (88%) rename packages/{perseus => perseus-score}/src/widgets/input-number/score-input-number.ts (82%) rename packages/{perseus => perseus-score}/src/widgets/numeric-input/score-numeric-input.test.ts (85%) rename packages/{perseus => perseus-score}/src/widgets/numeric-input/score-numeric-input.ts (94%) diff --git a/packages/perseus-editor/package.json b/packages/perseus-editor/package.json index 7a738f3cce..7bb81af91b 100644 --- a/packages/perseus-editor/package.json +++ b/packages/perseus-editor/package.json @@ -41,6 +41,7 @@ "@khanacademy/math-input": "^22.1.2", "@khanacademy/perseus": "^50.0.0", "@khanacademy/perseus-core": "3.1.0", + "@khanacademy/perseus-score": "^1.0.0", "@khanacademy/pure-markdown": "^0.3.21", "mafs": "^0.19.0" }, diff --git a/packages/perseus-editor/src/widgets/input-number-editor.tsx b/packages/perseus-editor/src/widgets/input-number-editor.tsx index af93315324..9095e7f2e7 100644 --- a/packages/perseus-editor/src/widgets/input-number-editor.tsx +++ b/packages/perseus-editor/src/widgets/input-number-editor.tsx @@ -1,4 +1,5 @@ import {components, PerseusI18nContext, Util} from "@khanacademy/perseus"; +import {inputNumberAnswerTypes} from "@khanacademy/perseus-score"; import * as React from "react"; import _ from "underscore"; @@ -9,41 +10,6 @@ import type {PerseusInputNumberWidgetOptions} from "@khanacademy/perseus-core"; const {InfoTip} = components; -const answerTypes = { - number: { - name: "Numbers", - forms: "integer, decimal, proper, improper, mixed", - }, - decimal: { - name: "Decimals", - forms: "decimal", - }, - integer: { - name: "Integers", - forms: "integer", - }, - rational: { - name: "Fractions and mixed numbers", - forms: "integer, proper, improper, mixed", - }, - improper: { - name: "Improper numbers (no mixed)", - forms: "integer, proper, improper", - }, - mixed: { - name: "Mixed numbers (no improper)", - forms: "integer, proper, mixed", - }, - percent: { - name: "Numbers or percents", - forms: "integer, decimal, proper, improper, mixed, percent", - }, - pi: { - name: "Numbers with pi", - forms: "pi", - }, -} as const; - type Props = { value: number; simplify: PerseusInputNumberWidgetOptions["simplify"]; @@ -121,7 +87,7 @@ class InputNumberEditor extends React.Component { render(): React.ReactNode { const answerTypeOptions = _.map( - answerTypes, + inputNumberAnswerTypes, function (v, k) { return (