@khanacademy/perseus-core 0.0.0-PR3110-20251209220703 → 0.0.0-PR3110-20251209224134

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/index.js CHANGED
@@ -6,8 +6,8 @@ var _ = require('underscore');
6
6
  require('tiny-invariant');
7
7
  var KAS = require('@khanacademy/kas');
8
8
  var perseusUtils = require('@khanacademy/perseus-utils');
9
- var pureMarkdown = require('@khanacademy/pure-markdown');
10
9
  var wonderStuffCore = require('@khanacademy/wonder-stuff-core');
10
+ var pureMarkdown = require('@khanacademy/pure-markdown');
11
11
 
12
12
  function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
13
13
 
@@ -406,6 +406,8 @@ const defaultWidgetOptions={content:"",widgets:{},images:{}};const traverseChild
406
406
 
407
407
  function getDefaultAnswerArea(){return ItemExtras.reduce((acc,curr)=>({...acc,[curr]:false}),{})}
408
408
 
409
+ const DEFAULT_COLOR="grayH";function getDefaultFigureForType(type){switch(type){case "point":return {type:"point",coord:[0,0],color:DEFAULT_COLOR,filled:true,labels:[]};case "line":return {type:"line",kind:"line",points:[getDefaultFigureForType("point"),{...getDefaultFigureForType("point"),coord:[2,2]}],color:DEFAULT_COLOR,lineStyle:"solid",showPoint1:false,showPoint2:false,weight:"medium",labels:[]};case "vector":return {type:"vector",points:[[0,0],[2,2]],color:DEFAULT_COLOR,weight:"medium",labels:[]};case "ellipse":return {type:"ellipse",center:[0,0],radius:[1,1],angle:0,color:DEFAULT_COLOR,fillStyle:"none",strokeStyle:"solid",weight:"medium",labels:[]};case "polygon":return {type:"polygon",points:[[0,2],[-1,0],[1,0]],color:DEFAULT_COLOR,showVertices:false,fillStyle:"none",strokeStyle:"solid",weight:"medium",labels:[]};case "function":return {type:"function",color:DEFAULT_COLOR,strokeStyle:"solid",weight:"medium",equation:"x^2",domain:[-Infinity,Infinity],directionalAxis:"x",labels:[]};case "label":return {type:"label",coord:[0,0],text:"label",color:DEFAULT_COLOR,size:"medium"};default:throw new wonderStuffCore.UnreachableCaseError(type)}}
410
+
409
411
  function splitPerseusItem(original){const item=deepClone(original);return {...item,question:splitPerseusRenderer(item.question),hints:[]}}function splitPerseusItemJSON(data){const parseResult=parseAndMigratePerseusItem(data);if(isFailure(parseResult)){throw new SyntaxError(parseResult.detail.message)}const item=parseResult.value;return JSON.stringify(splitPerseusItem(item))}
410
412
 
411
413
  const PerseusFeatureFlags=["new-radio-widget","image-widget-upgrade"];function isFeatureOn(props,flag){return props.apiOptions?.flags?.[flag]??false}
@@ -414,6 +416,8 @@ const noop=function(){};const deepCallbackFor=function(contentCallback,widgetCal
414
416
 
415
417
  function violatingWidgets(itemData){const widgetTypes=[];traverse(itemData.question,null,function(info){if(info.type&&!isAccessible(info.type,info.options)){widgetTypes.push(info.type);}});return [...new Set(widgetTypes)]}function isItemAccessible(itemData){const ast=pureMarkdown.parse(itemData.question.content);const widgetIdsInUse=new Set;let hasInaccessibleImage=false;pureMarkdown.traverseContent(ast,node=>{if(node.type==="image"&&(node.alt==null||node.alt==="")){hasInaccessibleImage=true;return}if(node.type==="widget"){widgetIdsInUse.add(node.id);}});if(hasInaccessibleImage){return false}const itemDataWithOnlyActiveWidgets={...itemData,question:{...itemData.question,widgets:Object.fromEntries(Object.entries(itemData.question.widgets).filter(([id])=>widgetIdsInUse.has(id)))}};return violatingWidgets(itemDataWithOnlyActiveWidgets).length===0}
416
418
 
419
+ function generateDefinitionOptions(options){return {...definitionWidgetLogic.defaultWidgetOptions,...options}}function generateDefinitionWidget(definitionWidgetProperties){return {type:"definition",graded:false,version:{major:0,minor:0},static:false,alignment:"default",options:generateDefinitionOptions(),...definitionWidgetProperties}}
420
+
417
421
  function generateDropdownOptions(options){return {...dropdownWidgetLogic.defaultWidgetOptions,...options}}function generateDropdownWidget(dropdownWidgetProperties){return {type:"dropdown",graded:true,version:{major:0,minor:0},static:false,alignment:"default",options:generateDropdownOptions(),...dropdownWidgetProperties}}
418
422
 
419
423
  function generateExplanationOptions(options){return {...explanationWidgetLogic.defaultWidgetOptions,...options}}function generateExplanationWidget(explanationWidgetProperties){return {type:"explanation",graded:false,version:{major:0,minor:0},static:false,alignment:"default",options:generateExplanationOptions(),...explanationWidgetProperties}}
@@ -464,6 +468,8 @@ exports.dropdownLogic = dropdownWidgetLogic;
464
468
  exports.explanationLogic = explanationWidgetLogic;
465
469
  exports.expressionLogic = expressionWidgetLogic;
466
470
  exports.freeResponseLogic = freeResponseWidgetLogic;
471
+ exports.generateDefinitionOptions = generateDefinitionOptions;
472
+ exports.generateDefinitionWidget = generateDefinitionWidget;
467
473
  exports.generateDropdownOptions = generateDropdownOptions;
468
474
  exports.generateDropdownWidget = generateDropdownWidget;
469
475
  exports.generateExplanationOptions = generateExplanationOptions;
@@ -488,6 +494,7 @@ exports.getCategorizerPublicWidgetOptions = getCategorizerPublicWidgetOptions;
488
494
  exports.getDataUrl = getDataUrl;
489
495
  exports.getDecimalSeparator = getDecimalSeparator;
490
496
  exports.getDefaultAnswerArea = getDefaultAnswerArea;
497
+ exports.getDefaultFigureForType = getDefaultFigureForType;
491
498
  exports.getDivideSymbol = getDivideSymbol;
492
499
  exports.getDivideSymbolForTex = getDivideSymbolForTex;
493
500
  exports.getDropdownPublicWidgetOptions = getDropdownPublicWidgetOptions;