-
Notifications
You must be signed in to change notification settings - Fork 350
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Create helper to build public widget options for orderer #2137
Conversation
…erer's widget options and add to its widget export
# Conflicts: # packages/perseus/src/types.ts
… tb/LEMS-2763/orderer-public-widget-options
… tb/LEMS-2763/orderer-public-widget-options # Conflicts: # packages/perseus/src/widgets/orderer/orderer.tsx
… removed during merge
…nt a widget export function to filter out rubric data from widget options for the orderer widget.
npm Snapshot: PublishedGood news!! We've packaged up the latest commit from this PR (26d9e2b) and published it to npm. You Example: yarn add @khanacademy/perseus@PR2137 If you are working in Khan Academy's webapp, you can run: ./dev/tools/bump_perseus_version.sh -t PR2137 |
Size Change: +166 B (+0.01%) Total Size: 1.48 MB
ℹ️ View Unchanged
|
/** | ||
* For details on the individual options, see the | ||
* PerseusOrdererWidgetOptions type | ||
*/ | ||
type OrdererPublicWidgetOptions = { | ||
options: ReadonlyArray<PerseusRenderer>; | ||
height: "normal" | "auto"; | ||
layout: "horizontal" | "vertical"; | ||
}; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Removed correctOptions (answers) and otherOptions (options with answer excluded).
For contrast, here are the regular widget options:
export type PerseusOrdererWidgetOptions = {
// All of the options available to the user. Place the cards in the correct order. The same card can be used more than once in the answer but will only be displayed once at the top of a stack of identical cards.
options: ReadonlyArray<PerseusRenderer>;
// The correct order of the options
correctOptions: ReadonlyArray<PerseusRenderer>;
// Cards that are not part of the answer
otherOptions: ReadonlyArray<PerseusRenderer>;
// "normal" for text options. "auto" for image options.
height: "normal" | "auto";
// Use the "horizontal" layout for short text and small images. The "vertical" layout is best for longer text (e.g. proofs).
layout: "horizontal" | "vertical";
};
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice. One thing I was thinking as I read through this. We will almost certainly need to call this in a server environment and so I think a better place to build out these helpers is in @khanacademy/perseus-core
. Otherwise, shortly after we build these all we'll be moving them anyways. :)
height: "normal" | "auto"; | ||
layout: "horizontal" | "vertical"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not sure if this was discussed elsewhere, but it might be useful to build these types off of the main widget options type. This will help keep it clear that this type is a subset of the full widget options.
height: "normal" | "auto"; | |
layout: "horizontal" | "vertical"; | |
height: PerseusOrdererWidgetOptions["height"]; | |
layout: PerseusOrdererWidgetOptions["layout"]; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Updated :)
options: PerseusOrdererWidgetOptions, | ||
): OrdererPublicWidgetOptions { | ||
return { | ||
options: options.options, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have a sense that we should "deep copy" these public variants. As this is, the .options
array will be the same one between the original widget options and this public one we're returning. Likely never an issue, but making a copy feels safer.
@benchristel do you have thoughts?
options: options.options, | |
options: [...options.options], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The reason to make a copy is to guard against possible bugs if the array gets mutated later, right?
React's philosophy is that data should never be mutated in place. AFAICT, our code generally follows that guideline, whether it interacts with React or not. As it should!
IMO, we should copy data only at the point where we need to make a change to it. Copying elsewhere reduces clarity and harms performance without a concrete benefit. So I'd prefer not copying here.
...unless you know of a place where we're mutating the data produced by this function?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ben, didn't you mention that with Categorizer I think we update the values field based on user input? Would that be an instance of modifying these options? I think the main goal of these public widget options is just to render the clientside widgets, but if the object gets modified to track user input, copying might be needed.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I can't see these functions ever being used directly with React. They'll be used in an editing environment and the publish pipeline most so the issue of mutation after copy doesn't matter here.
So let's avoid copying.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sounds good! I'll leave it as it is then :) Thanks!
… original widget options
… tb/LEMS-2763/orderer-public-widget-options # Conflicts: # packages/perseus-core/src/index.ts
…il files out of widget folder in perseus package to utils folder in perseus-core
… tb/LEMS-2763/orderer-public-widget-options # Conflicts: # packages/perseus/src/widgets/orderer/orderer.tsx
This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated. # Releases ## @khanacademy/perseus@52.0.0 ### Major Changes - [#1965](#1965) [`0f2bec314`](0f2bec3) Thanks [@Myranae](https://github.com/Myranae)! - Refactor the LabelImage widget to separate out answers from userInput into scoringData - [#2134](#2134) [`117e78d03`](117e78d) Thanks [@handeyeco](https://github.com/handeyeco)! - Move widget ID utils to perseus-core - [#2153](#2153) [`29a1c656e`](29a1c65) Thanks [@jeremywiebe](https://github.com/jeremywiebe)! - Rename all instances of the term "ScoringData" back to "Rubric" - [#2135](#2135) [`7a984eba6`](7a984eb) Thanks [@handeyeco](https://github.com/handeyeco)! - Move Expression WidgetOptions logic to core ### Minor Changes - [#2002](#2002) [`a1e22a4e3`](a1e22a4) Thanks [@jeremywiebe](https://github.com/jeremywiebe)! - Add and improve types for scoring and validation - [#2155](#2155) [`0df0b1940`](0df0b19) Thanks [@benchristel](https://github.com/benchristel)! - Move `parsePerseusItem`, `parseAndMigratePerseusItem`, `parseAndMigratePerseusArticle`, `isSuccess`, and `isFailure` to the `perseus-core` package, and deprecate the equivalent exports from the `perseus` package. - [#2032](#2032) [`22d108fdc`](22d108f) Thanks [@anakaren-rojas](https://github.com/anakaren-rojas)! - adds aria labels to line segment - [#2038](#2038) [`e6f7cc91e`](e6f7cc9) Thanks [@Myranae](https://github.com/Myranae)! - Fix some naming discrepancies related to validation and simplify Matcher ScoringData type - [#2083](#2083) [`4c10af109`](4c10af1) Thanks [@jeremywiebe](https://github.com/jeremywiebe)! - Use empty widgets check in scoring function - [#2000](#2000) [`0db68d222`](0db68d2) Thanks [@jeremywiebe](https://github.com/jeremywiebe)! - Change empty widgets check in Renderer to depend only on data available (and not on scoring data) - [#2137](#2137) [`b4b3a3dbb`](b4b3a3d) Thanks [@Myranae](https://github.com/Myranae)! - Implement a widget export function to filter out rubric data from widget options for the orderer widget - [#2006](#2006) [`879d2a501`](879d2a5) Thanks [@Myranae](https://github.com/Myranae)! - Rename usages of rubric to scoringData - [#2139](#2139) [`32cc4a45b`](32cc4a4) Thanks [@Myranae](https://github.com/Myranae)! - Implement a widget export function to filter out rubric data from widget options for the Expression widget - [#2016](#2016) [`55ad836c6`](55ad836) Thanks [@Myranae](https://github.com/Myranae)! - Introduces a validation function for the label-image widget (extracted from label-image scoring function). ### Patch Changes - [#2142](#2142) [`d7bcb14c3`](d7bcb14) Thanks [@handeyeco](https://github.com/handeyeco)! - Move Radio upgrade logic to Perseus Core - [#2122](#2122) [`1a75ca628`](1a75ca6) Thanks [@jeremywiebe](https://github.com/jeremywiebe)! - Type and test fixes for new MockWidget (isolating to be seen only in tests) - [#2143](#2143) [`459c25074`](459c250) Thanks [@handeyeco](https://github.com/handeyeco)! - Move Passage widgets upgrade logic to Perseus Core - [#1997](#1997) [`0464a760f`](0464a76) Thanks [@Myranae](https://github.com/Myranae)! - Remove unused CS Program rubric type - [#2110](#2110) [`e2f2cee9f`](e2f2cee) Thanks [@nishasy](https://github.com/nishasy)! - [SR] Linear - Add the interactive elements linear description to the whole graph container - [#2136](#2136) [`ffaa3904a`](ffaa390) Thanks [@nishasy](https://github.com/nishasy)! - [SR] Quadratic - add screen reader support for Quadratic interactive graph - [#1996](#1996) [`b6623bb56`](b6623bb) Thanks [@Myranae](https://github.com/Myranae)! - Remove unused iframe rubric type - [#2124](#2124) [`bdbdafe5d`](bdbdafe) Thanks [@dependabot](https://github.com/apps/dependabot)! - Updating wonder-blocks dependences. - [#2152](#2152) [`f8c9d3574`](f8c9d35) Thanks [@Myranae](https://github.com/Myranae)! - Move the categorizer, orderer, and expression public widget options functions from perseus package to their widget folders in perseus-core - [#1995](#1995) [`99cd254de`](99cd254) Thanks [@jeremywiebe](https://github.com/jeremywiebe)! - TESTS: swap input-number out of renderer tests as it is deprecated - [#2141](#2141) [`1355d6cfc`](1355d6c) Thanks [@handeyeco](https://github.com/handeyeco)! - Move Measurer upgrade logic to Perseus Core - Updated dependencies \[[`8f8955718`](8f89557), [`d7bcb14c3`](d7bcb14), [`685774f2e`](685774f), [`8a489600e`](8a48960), [`1a75ca628`](1a75ca6), [`459c25074`](459c250), [`0df0b1940`](0df0b19), [`dc8118aa1`](dc8118a), [`82fa90299`](82fa902), [`b4b3a3dbb`](b4b3a3d), [`117e78d03`](117e78d), [`29a1c656e`](29a1c65), [`7a984eba6`](7a984eb), [`f8c9d3574`](f8c9d35), [`1355d6cfc`](1355d6c), [`75f43a8f4`](75f43a8), [`32cc4a45b`](32cc4a4), [`ebf3695b6`](ebf3695)]: - @khanacademy/perseus-core@3.3.0 - @khanacademy/perseus-score@2.0.0 - @khanacademy/kas@0.4.12 - @khanacademy/keypad-context@1.0.15 - @khanacademy/kmath@0.3.1 - @khanacademy/math-input@22.2.2 - @khanacademy/perseus-linter@1.2.14 - @khanacademy/pure-markdown@0.3.23 - @khanacademy/simple-markdown@0.13.16 ## @khanacademy/perseus-score@2.0.0 ### Major Changes - [#2153](#2153) [`29a1c656e`](29a1c65) Thanks [@jeremywiebe](https://github.com/jeremywiebe)! - Rename all instances of the term "ScoringData" back to "Rubric" ### Patch Changes - Updated dependencies \[[`8f8955718`](8f89557), [`d7bcb14c3`](d7bcb14), [`685774f2e`](685774f), [`8a489600e`](8a48960), [`1a75ca628`](1a75ca6), [`459c25074`](459c250), [`0df0b1940`](0df0b19), [`dc8118aa1`](dc8118a), [`82fa90299`](82fa902), [`b4b3a3dbb`](b4b3a3d), [`117e78d03`](117e78d), [`7a984eba6`](7a984eb), [`f8c9d3574`](f8c9d35), [`1355d6cfc`](1355d6c), [`75f43a8f4`](75f43a8), [`32cc4a45b`](32cc4a4), [`ebf3695b6`](ebf3695)]: - @khanacademy/perseus-core@3.3.0 - @khanacademy/kas@0.4.12 - @khanacademy/kmath@0.3.1 ## @khanacademy/perseus-core@3.3.0 ### Minor Changes - [#2158](#2158) [`8f8955718`](8f89557) Thanks [@jeremywiebe](https://github.com/jeremywiebe)! - Re-export widget id support function: addWidget - [#2142](#2142) [`d7bcb14c3`](d7bcb14) Thanks [@handeyeco](https://github.com/handeyeco)! - Move Radio upgrade logic to Perseus Core - [#2148](#2148) [`685774f2e`](685774f) Thanks [@handeyeco](https://github.com/handeyeco)! - Move Matcher upgrade logic to Perseus Core - [#2145](#2145) [`8a489600e`](8a48960) Thanks [@handeyeco](https://github.com/handeyeco)! - Move simple widget upgrade logic to Perseus Core (pt 2) - [#2143](#2143) [`459c25074`](459c250) Thanks [@handeyeco](https://github.com/handeyeco)! - Move Passage widgets upgrade logic to Perseus Core - [#2155](#2155) [`0df0b1940`](0df0b19) Thanks [@benchristel](https://github.com/benchristel)! - Move `parsePerseusItem`, `parseAndMigratePerseusItem`, `parseAndMigratePerseusArticle`, `isSuccess`, and `isFailure` to the `perseus-core` package, and deprecate the equivalent exports from the `perseus` package. - [#2144](#2144) [`dc8118aa1`](dc8118a) Thanks [@handeyeco](https://github.com/handeyeco)! - Move simple widget upgrade logic to Perseus Core (pt 1) - [#2150](#2150) [`82fa90299`](82fa902) Thanks [@handeyeco](https://github.com/handeyeco)! - Move InteractiveGraph widget upgrade to Perseus Core - [#2134](#2134) [`117e78d03`](117e78d) Thanks [@handeyeco](https://github.com/handeyeco)! - Move widget ID utils to perseus-core - [#2135](#2135) [`7a984eba6`](7a984eb) Thanks [@handeyeco](https://github.com/handeyeco)! - Move Expression WidgetOptions logic to core - [#2141](#2141) [`1355d6cfc`](1355d6c) Thanks [@handeyeco](https://github.com/handeyeco)! - Move Measurer upgrade logic to Perseus Core - [#2149](#2149) [`75f43a8f4`](75f43a8) Thanks [@handeyeco](https://github.com/handeyeco)! - Move Table upgrade logic to Perseus Core - [#2147](#2147) [`ebf3695b6`](ebf3695) Thanks [@handeyeco](https://github.com/handeyeco)! - Move upgrade logic for NumberLine to Perseus Core ### Patch Changes - [#2122](#2122) [`1a75ca628`](1a75ca6) Thanks [@jeremywiebe](https://github.com/jeremywiebe)! - Type and test fixes for new MockWidget (isolating to be seen only in tests) - [#2137](#2137) [`b4b3a3dbb`](b4b3a3d) Thanks [@Myranae](https://github.com/Myranae)! - Move util files out of widget folder in perseus package to utils folder in perseus-core - [#2152](#2152) [`f8c9d3574`](f8c9d35) Thanks [@Myranae](https://github.com/Myranae)! - Move the categorizer, orderer, and expression public widget options functions from perseus package to their widget folders in perseus-core - [#2139](#2139) [`32cc4a45b`](32cc4a4) Thanks [@Myranae](https://github.com/Myranae)! - Move util files out of widget folder in perseus package to utils folder in perseus-core ## @khanacademy/perseus-editor@17.4.0 ### Minor Changes - [#2015](#2015) [`46623c8f1`](46623c8) Thanks [@mark-fitzgerald](https://github.com/mark-fitzgerald)! - [Numeric Input] Re-organize editor and improve its UI - [#2015](#2015) [`46623c8f1`](46623c8) Thanks [@mark-fitzgerald](https://github.com/mark-fitzgerald)! - [Numeric Input] - Adjust editor to organize settings more logically ### Patch Changes - [#2142](#2142) [`d7bcb14c3`](d7bcb14) Thanks [@handeyeco](https://github.com/handeyeco)! - Move Radio upgrade logic to Perseus Core - [#2148](#2148) [`685774f2e`](685774f) Thanks [@handeyeco](https://github.com/handeyeco)! - Move Matcher upgrade logic to Perseus Core - [#2145](#2145) [`8a489600e`](8a48960) Thanks [@handeyeco](https://github.com/handeyeco)! - Move simple widget upgrade logic to Perseus Core (pt 2) - [#2122](#2122) [`1a75ca628`](1a75ca6) Thanks [@jeremywiebe](https://github.com/jeremywiebe)! - Type and test fixes for new MockWidget (isolating to be seen only in tests) - [#2143](#2143) [`459c25074`](459c250) Thanks [@handeyeco](https://github.com/handeyeco)! - Move Passage widgets upgrade logic to Perseus Core - [#2144](#2144) [`dc8118aa1`](dc8118a) Thanks [@handeyeco](https://github.com/handeyeco)! - Move simple widget upgrade logic to Perseus Core (pt 1) - [#2150](#2150) [`82fa90299`](82fa902) Thanks [@handeyeco](https://github.com/handeyeco)! - Move InteractiveGraph widget upgrade to Perseus Core - [#1965](#1965) [`0f2bec314`](0f2bec3) Thanks [@Myranae](https://github.com/Myranae)! - Refactor the LabelImage widget to separate out answers from userInput into scoringData - [#2124](#2124) [`bdbdafe5d`](bdbdafe) Thanks [@dependabot](https://github.com/apps/dependabot)! - Updating wonder-blocks dependences. - [#2135](#2135) [`7a984eba6`](7a984eb) Thanks [@handeyeco](https://github.com/handeyeco)! - Move Expression WidgetOptions logic to core - [#2141](#2141) [`1355d6cfc`](1355d6c) Thanks [@handeyeco](https://github.com/handeyeco)! - Move Measurer upgrade logic to Perseus Core - [#2149](#2149) [`75f43a8f4`](75f43a8) Thanks [@handeyeco](https://github.com/handeyeco)! - Move Table upgrade logic to Perseus Core - [#2147](#2147) [`ebf3695b6`](ebf3695) Thanks [@handeyeco](https://github.com/handeyeco)! - Move upgrade logic for NumberLine to Perseus Core - Updated dependencies \[[`8f8955718`](8f89557), [`d7bcb14c3`](d7bcb14), [`685774f2e`](685774f), [`8a489600e`](8a48960), [`1a75ca628`](1a75ca6), [`459c25074`](459c250), [`a1e22a4e3`](a1e22a4), [`0464a760f`](0464a76), [`0df0b1940`](0df0b19), [`22d108fdc`](22d108f), [`dc8118aa1`](dc8118a), [`82fa90299`](82fa902), [`e2f2cee9f`](e2f2cee), [`ffaa3904a`](ffaa390), [`0f2bec314`](0f2bec3), [`b4b3a3dbb`](b4b3a3d), [`e6f7cc91e`](e6f7cc9), [`4c10af109`](4c10af1), [`b6623bb56`](b6623bb), [`0db68d222`](0db68d2), [`bdbdafe5d`](bdbdafe), [`117e78d03`](117e78d), [`b4b3a3dbb`](b4b3a3d), [`29a1c656e`](29a1c65), [`7a984eba6`](7a984eb), [`f8c9d3574`](f8c9d35), [`879d2a501`](879d2a5), [`32cc4a45b`](32cc4a4), [`99cd254de`](99cd254), [`1355d6cfc`](1355d6c), [`75f43a8f4`](75f43a8), [`32cc4a45b`](32cc4a4), [`55ad836c6`](55ad836), [`ebf3695b6`](ebf3695)]: - @khanacademy/perseus-core@3.3.0 - @khanacademy/perseus@52.0.0 - @khanacademy/perseus-score@2.0.0 - @khanacademy/kas@0.4.12 - @khanacademy/keypad-context@1.0.15 - @khanacademy/kmath@0.3.1 - @khanacademy/math-input@22.2.2 - @khanacademy/pure-markdown@0.3.23 ## @khanacademy/kas@0.4.12 ### Patch Changes - Updated dependencies \[[`8f8955718`](8f89557), [`d7bcb14c3`](d7bcb14), [`685774f2e`](685774f), [`8a489600e`](8a48960), [`1a75ca628`](1a75ca6), [`459c25074`](459c250), [`0df0b1940`](0df0b19), [`dc8118aa1`](dc8118a), [`82fa90299`](82fa902), [`b4b3a3dbb`](b4b3a3d), [`117e78d03`](117e78d), [`7a984eba6`](7a984eb), [`f8c9d3574`](f8c9d35), [`1355d6cfc`](1355d6c), [`75f43a8f4`](75f43a8), [`32cc4a45b`](32cc4a4), [`ebf3695b6`](ebf3695)]: - @khanacademy/perseus-core@3.3.0 ## @khanacademy/keypad-context@1.0.15 ### Patch Changes - Updated dependencies \[[`8f8955718`](8f89557), [`d7bcb14c3`](d7bcb14), [`685774f2e`](685774f), [`8a489600e`](8a48960), [`1a75ca628`](1a75ca6), [`459c25074`](459c250), [`0df0b1940`](0df0b19), [`dc8118aa1`](dc8118a), [`82fa90299`](82fa902), [`b4b3a3dbb`](b4b3a3d), [`117e78d03`](117e78d), [`7a984eba6`](7a984eb), [`f8c9d3574`](f8c9d35), [`1355d6cfc`](1355d6c), [`75f43a8f4`](75f43a8), [`32cc4a45b`](32cc4a4), [`ebf3695b6`](ebf3695)]: - @khanacademy/perseus-core@3.3.0 ## @khanacademy/kmath@0.3.1 ### Patch Changes - Updated dependencies \[[`8f8955718`](8f89557), [`d7bcb14c3`](d7bcb14), [`685774f2e`](685774f), [`8a489600e`](8a48960), [`1a75ca628`](1a75ca6), [`459c25074`](459c250), [`0df0b1940`](0df0b19), [`dc8118aa1`](dc8118a), [`82fa90299`](82fa902), [`b4b3a3dbb`](b4b3a3d), [`117e78d03`](117e78d), [`7a984eba6`](7a984eb), [`f8c9d3574`](f8c9d35), [`1355d6cfc`](1355d6c), [`75f43a8f4`](75f43a8), [`32cc4a45b`](32cc4a4), [`ebf3695b6`](ebf3695)]: - @khanacademy/perseus-core@3.3.0 ## @khanacademy/math-input@22.2.2 ### Patch Changes - Updated dependencies \[[`8f8955718`](8f89557), [`d7bcb14c3`](d7bcb14), [`685774f2e`](685774f), [`8a489600e`](8a48960), [`1a75ca628`](1a75ca6), [`459c25074`](459c250), [`0df0b1940`](0df0b19), [`dc8118aa1`](dc8118a), [`82fa90299`](82fa902), [`b4b3a3dbb`](b4b3a3d), [`117e78d03`](117e78d), [`7a984eba6`](7a984eb), [`f8c9d3574`](f8c9d35), [`1355d6cfc`](1355d6c), [`75f43a8f4`](75f43a8), [`32cc4a45b`](32cc4a4), [`ebf3695b6`](ebf3695)]: - @khanacademy/perseus-core@3.3.0 - @khanacademy/keypad-context@1.0.15 ## @khanacademy/perseus-linter@1.2.14 ### Patch Changes - Updated dependencies \[[`8f8955718`](8f89557), [`d7bcb14c3`](d7bcb14), [`685774f2e`](685774f), [`8a489600e`](8a48960), [`1a75ca628`](1a75ca6), [`459c25074`](459c250), [`0df0b1940`](0df0b19), [`dc8118aa1`](dc8118a), [`82fa90299`](82fa902), [`b4b3a3dbb`](b4b3a3d), [`117e78d03`](117e78d), [`7a984eba6`](7a984eb), [`f8c9d3574`](f8c9d35), [`1355d6cfc`](1355d6c), [`75f43a8f4`](75f43a8), [`32cc4a45b`](32cc4a4), [`ebf3695b6`](ebf3695)]: - @khanacademy/perseus-core@3.3.0 ## @khanacademy/pure-markdown@0.3.23 ### Patch Changes - Updated dependencies \[[`8f8955718`](8f89557), [`d7bcb14c3`](d7bcb14), [`685774f2e`](685774f), [`8a489600e`](8a48960), [`1a75ca628`](1a75ca6), [`459c25074`](459c250), [`0df0b1940`](0df0b19), [`dc8118aa1`](dc8118a), [`82fa90299`](82fa902), [`b4b3a3dbb`](b4b3a3d), [`117e78d03`](117e78d), [`7a984eba6`](7a984eb), [`f8c9d3574`](f8c9d35), [`1355d6cfc`](1355d6c), [`75f43a8f4`](75f43a8), [`32cc4a45b`](32cc4a4), [`ebf3695b6`](ebf3695)]: - @khanacademy/perseus-core@3.3.0 - @khanacademy/simple-markdown@0.13.16 ## @khanacademy/simple-markdown@0.13.16 ### Patch Changes - Updated dependencies \[[`8f8955718`](8f89557), [`d7bcb14c3`](d7bcb14), [`685774f2e`](685774f), [`8a489600e`](8a48960), [`1a75ca628`](1a75ca6), [`459c25074`](459c250), [`0df0b1940`](0df0b19), [`dc8118aa1`](dc8118a), [`82fa90299`](82fa902), [`b4b3a3dbb`](b4b3a3d), [`117e78d03`](117e78d), [`7a984eba6`](7a984eb), [`f8c9d3574`](f8c9d35), [`1355d6cfc`](1355d6c), [`75f43a8f4`](75f43a8), [`32cc4a45b`](32cc4a4), [`ebf3695b6`](ebf3695)]: - @khanacademy/perseus-core@3.3.0 ## @khanacademy/perseus-dev-ui@5.1.2 ### Patch Changes - [#2124](#2124) [`bdbdafe5d`](bdbdafe) Thanks [@dependabot](https://github.com/apps/dependabot)! - Updating wonder-blocks dependences. - Updated dependencies \[[`8f8955718`](8f89557), [`d7bcb14c3`](d7bcb14), [`685774f2e`](685774f), [`8a489600e`](8a48960), [`1a75ca628`](1a75ca6), [`459c25074`](459c250), [`0df0b1940`](0df0b19), [`dc8118aa1`](dc8118a), [`82fa90299`](82fa902), [`b4b3a3dbb`](b4b3a3d), [`117e78d03`](117e78d), [`7a984eba6`](7a984eb), [`f8c9d3574`](f8c9d35), [`1355d6cfc`](1355d6c), [`75f43a8f4`](75f43a8), [`32cc4a45b`](32cc4a4), [`ebf3695b6`](ebf3695)]: - @khanacademy/perseus-core@3.3.0 - @khanacademy/kas@0.4.12 - @khanacademy/kmath@0.3.1 - @khanacademy/math-input@22.2.2 - @khanacademy/perseus-linter@1.2.14 - @khanacademy/pure-markdown@0.3.23 - @khanacademy/simple-markdown@0.13.16
Summary:
Adds a function that takes orderer's full widget options and filters out answer data. It also adds this function to the widget's widget export and adds a test confirming the function does as expected.
Issue: LEMS-2763
Test plan: