@khanacademy/perseus-core 37.0.0 → 38.0.1
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/data-schema.d.ts +9 -5
- package/dist/es/index.item-splitting.js +4 -0
- package/dist/es/index.item-splitting.js.map +1 -1
- package/dist/es/index.js +11 -7
- package/dist/es/index.js.map +1 -1
- package/dist/index.d.ts +7 -61
- package/dist/index.item-splitting.js +4 -0
- package/dist/index.item-splitting.js.map +1 -1
- package/dist/index.js +14 -6
- package/dist/index.js.map +1 -1
- package/dist/utils/generators/table-widget-generator.d.ts +10 -0
- package/dist/validation.types.d.ts +8 -228
- package/dist/widgets/categorizer/index.d.ts +0 -1
- package/dist/widgets/cs-program/index.d.ts +0 -1
- package/dist/widgets/definition/index.d.ts +0 -2
- package/dist/widgets/dropdown/index.d.ts +0 -1
- package/dist/widgets/explanation/index.d.ts +0 -2
- package/dist/widgets/expression/index.d.ts +0 -1
- package/dist/widgets/free-response/index.d.ts +0 -1
- package/dist/widgets/graded-group/index.d.ts +0 -2
- package/dist/widgets/graded-group-set/index.d.ts +0 -2
- package/dist/widgets/grapher/index.d.ts +0 -1
- package/dist/widgets/group/index.d.ts +0 -1
- package/dist/widgets/iframe/index.d.ts +0 -1
- package/dist/widgets/image/index.d.ts +0 -1
- package/dist/widgets/input-number/index.d.ts +0 -1
- package/dist/widgets/interaction/index.d.ts +0 -2
- package/dist/widgets/interactive-graph/index.d.ts +0 -1
- package/dist/widgets/label-image/index.d.ts +0 -1
- package/dist/widgets/matcher/index.d.ts +0 -1
- package/dist/widgets/matrix/index.d.ts +0 -1
- package/dist/widgets/measurer/index.d.ts +0 -2
- package/dist/widgets/number-line/index.d.ts +0 -1
- package/dist/widgets/numeric-input/index.d.ts +0 -1
- package/dist/widgets/orderer/index.d.ts +0 -1
- package/dist/widgets/orderer/orderer-util.d.ts +11 -1
- package/dist/widgets/phet-simulation/index.d.ts +0 -2
- package/dist/widgets/plotter/index.d.ts +0 -1
- package/dist/widgets/python-program/index.d.ts +0 -2
- package/dist/widgets/radio/index.d.ts +0 -1
- package/dist/widgets/sorter/index.d.ts +0 -1
- package/dist/widgets/sorter/sorter-util.d.ts +12 -1
- package/dist/widgets/table/index.d.ts +0 -1
- package/dist/widgets/video/index.d.ts +0 -2
- package/package.json +1 -1
package/dist/data-schema.d.ts
CHANGED
|
@@ -1572,16 +1572,20 @@ export type PerseusSorterWidgetOptions = {
|
|
|
1572
1572
|
* will see the cards in a randomized order.
|
|
1573
1573
|
*/
|
|
1574
1574
|
correct: string[];
|
|
1575
|
-
/**
|
|
1576
|
-
* Adds padding to the options. Padding is good for text but not needed
|
|
1577
|
-
* for images
|
|
1578
|
-
*/
|
|
1579
|
-
padding: boolean;
|
|
1580
1575
|
/**
|
|
1581
1576
|
* Use the "horizontal" layout for short text and small images. The
|
|
1582
1577
|
* "vertical" layout is best for longer text and larger images.
|
|
1583
1578
|
*/
|
|
1584
1579
|
layout: "horizontal" | "vertical";
|
|
1580
|
+
/**
|
|
1581
|
+
* Adds padding to the options. Padding is good for text but not needed
|
|
1582
|
+
* for images
|
|
1583
|
+
*
|
|
1584
|
+
* @deprecated
|
|
1585
|
+
*
|
|
1586
|
+
* TODO(LEMS-4538): remove padding from Sorter
|
|
1587
|
+
*/
|
|
1588
|
+
padding: boolean;
|
|
1585
1589
|
};
|
|
1586
1590
|
/** Options for the table widget. A grid of input cells with column headers. */
|
|
1587
1591
|
export type PerseusTableWidgetOptions = {
|
|
@@ -164,6 +164,10 @@ class Registry{throwIfUnregistered(){if(!this.anythingRegistered){throw new Erro
|
|
|
164
164
|
|
|
165
165
|
const seededRNG=function(seed){let randomSeed=seed;return function(){let seed=randomSeed;seed=seed+0x7ed55d16+(seed<<12)&0xffffffff;seed=(seed^0xc761c23c^seed>>>19)&0xffffffff;seed=seed+0x165667b1+(seed<<5)&0xffffffff;seed=(seed+0xd3a2646c^seed<<9)&0xffffffff;seed=seed+0xfd7046c5+(seed<<3)&0xffffffff;seed=(seed^0xb55a4f09^seed>>>16)&0xffffffff;return (randomSeed=seed&0xfffffff)/0x10000000}};seededRNG(new Date().getTime()&0xffffffff);
|
|
166
166
|
|
|
167
|
+
function toCard(content){return {content,widgets:{},images:{}}}function getCategoryScore(content){if(/\d/.test(content)){return 0}if(/^\$?[a-zA-Z]+\$?$/.test(content)){return 2}return 1}function mergeCards(correctOptions,otherOptions){const allCards=[...correctOptions,...otherOptions];return [...new Set(allCards.map(card=>card.content))].filter(content=>content!=="").sort().sort((a,b)=>getCategoryScore(a)-getCategoryScore(b)).map(toCard)}
|
|
168
|
+
|
|
169
|
+
const defaultCorrectOptions=[toCard("$x$")];const defaultOtherOptions=[toCard("$y$")];({options:mergeCards(defaultCorrectOptions,defaultOtherOptions)});
|
|
170
|
+
|
|
167
171
|
const defaultRows=4;const defaultColumns=1;new Array(defaultRows).fill(0).map(()=>new Array(defaultColumns).fill(""));
|
|
168
172
|
|
|
169
173
|
const widgets=new Registry("Core widget registry");function getCurrentVersion(type){const widgetLogic=widgets.get(type);return widgetLogic?.version||{major:0,minor:0}}const getPublicWidgetOptionsFunction=type=>{return widgets.get(type)?.getPublicWidgetOptions??(i=>i)};function getDefaultWidgetOptions(type){const widgetLogic=widgets.get(type);return widgetLogic?.defaultWidgetOptions||{}}const getSupportedAlignments=type=>{const widgetLogic=widgets.get(type);if(!widgetLogic?.supportedAlignments?.[0]){return ["default"]}return widgetLogic?.supportedAlignments};
|