@khanacademy/perseus-core 18.7.0 → 18.9.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/data-schema.d.ts +3 -0
- package/dist/es/index.item-splitting.js +1 -1
- package/dist/es/index.item-splitting.js.map +1 -1
- package/dist/es/index.js +6 -4
- package/dist/es/index.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.item-splitting.js +1 -1
- package/dist/index.item-splitting.js.map +1 -1
- package/dist/index.js +7 -3
- package/dist/index.js.map +1 -1
- package/dist/parse-perseus-json/perseus-parsers/iframe-user-input.d.ts +1 -1
- package/dist/parse-perseus-json/perseus-parsers/radio-user-input.d.ts +1 -1
- package/dist/utils/generators/image-widget-generator.d.ts +3 -0
- package/dist/validation.types.d.ts +2 -2
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -222,7 +222,7 @@ const coord=pair(number,number);const coordPair=pair(coord,coord);const parseAbs
|
|
|
222
222
|
|
|
223
223
|
const parseGroupUserInput=(rawVal,ctx)=>parseUserInputMap(rawVal,ctx);
|
|
224
224
|
|
|
225
|
-
const parseIFrameUserInput=object({status:enumeration("correct","incorrect","incomplete"),message:nullable(string)});
|
|
225
|
+
const parseIFrameUserInput=object({status:enumeration("correct","incorrect","incomplete"),message:optional(nullable(string))});
|
|
226
226
|
|
|
227
227
|
const parseInputNumberUserInput=object({currentValue:string});
|
|
228
228
|
|
|
@@ -242,7 +242,7 @@ const parseOrdererUserInput=object({current:array(string)});
|
|
|
242
242
|
|
|
243
243
|
const parsePlotterUserInput=array(number);
|
|
244
244
|
|
|
245
|
-
const parseRadioUserInput=object({
|
|
245
|
+
const parseRadioUserInput=object({selectedChoiceIds:array(string)});
|
|
246
246
|
|
|
247
247
|
const parseSorterUserInput=object({options:array(string),changed:boolean});
|
|
248
248
|
|
|
@@ -252,7 +252,7 @@ const parseUserInputMap=(rawValue,ctx)=>{if(!isPlainObject(rawValue)){return ctx
|
|
|
252
252
|
|
|
253
253
|
function parsePerseusItem(json){if(isRealJSONParse(JSON.parse)){return JSON.parse(json)}throw new Error("Something went wrong.")}function parseAndMigratePerseusItem(data){throwErrorIfCheatingDetected();const object=typeof data==="string"?JSON.parse(data):data;const result=parse(object,parsePerseusItem$1);if(isFailure(result)){return failure({message:result.detail,invalidObject:object})}return result}function parseAndMigratePerseusArticle(data){throwErrorIfCheatingDetected();const object=typeof data==="string"?JSON.parse(data):data;const result=parse(object,parsePerseusArticle);if(isFailure(result)){return failure({message:result.detail,invalidObject:object})}return result}function parseAndMigrateUserInputMap(data){const object=typeof data==="string"?JSON.parse(data):data;const result=parse(object,parseUserInputMap);if(isFailure(result)){return failure({message:result.detail,invalidObject:object})}return result}function throwErrorIfCheatingDetected(){if(!isRealJSONParse(JSON.parse)){throw new Error("Something went wrong.")}}
|
|
254
254
|
|
|
255
|
-
const libName="@khanacademy/perseus-core";const libVersion="18.
|
|
255
|
+
const libName="@khanacademy/perseus-core";const libVersion="18.9.0";perseusUtils.addLibraryVersionToPerseusDebug(libName,libVersion);
|
|
256
256
|
|
|
257
257
|
const Errors=Object.freeze({Unknown:"Unknown",Internal:"Internal",InvalidInput:"InvalidInput",NotAllowed:"NotAllowed",TransientService:"TransientService",Service:"Service"});
|
|
258
258
|
|
|
@@ -406,6 +406,8 @@ const noop=function(){};const deepCallbackFor=function(contentCallback,widgetCal
|
|
|
406
406
|
|
|
407
407
|
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}
|
|
408
408
|
|
|
409
|
+
function generateImageOptions(options){const defaultImageOptions={backgroundImage:{}};return {...defaultImageOptions,...options}}function generateImageWidget(imageWidgetProperties){return {type:"image",graded:true,version:{major:0,minor:0},static:false,alignment:"default",options:generateImageOptions({}),...imageWidgetProperties}}
|
|
410
|
+
|
|
409
411
|
registerCoreWidgets();
|
|
410
412
|
|
|
411
413
|
exports.CoreWidgetRegistry = coreWidgetRegistry;
|
|
@@ -431,6 +433,8 @@ exports.dropdownLogic = dropdownWidgetLogic;
|
|
|
431
433
|
exports.explanationLogic = explanationWidgetLogic;
|
|
432
434
|
exports.expressionLogic = expressionWidgetLogic;
|
|
433
435
|
exports.freeResponseLogic = freeResponseWidgetLogic;
|
|
436
|
+
exports.generateImageOptions = generateImageOptions;
|
|
437
|
+
exports.generateImageWidget = generateImageWidget;
|
|
434
438
|
exports.generateTestPerseusItem = generateTestPerseusItem;
|
|
435
439
|
exports.generateTestPerseusRenderer = generateTestPerseusRenderer;
|
|
436
440
|
exports.getBaseUrl = getBaseUrl;
|