@pie-element/number-line 13.1.1 → 13.1.2-next.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/configure.js +2 -0
- package/controller.js +1 -0
- package/dist/_virtual/_rolldown/runtime.js +11 -0
- package/dist/author/arrows.d.ts +28 -0
- package/dist/author/arrows.js +69 -0
- package/dist/author/card-bar.d.ts +20 -0
- package/dist/author/card-bar.js +41 -0
- package/dist/author/defaults.d.ts +178 -0
- package/dist/author/defaults.js +144 -0
- package/dist/author/domain.d.ts +15 -0
- package/dist/author/domain.js +54 -0
- package/dist/author/index.d.ts +23 -0
- package/dist/author/index.js +89 -0
- package/dist/author/main.d.ts +44 -0
- package/dist/author/main.js +485 -0
- package/dist/author/number-text-field.d.ts +13 -0
- package/dist/author/number-text-field.js +13 -0
- package/dist/author/point-config.d.ts +25 -0
- package/dist/author/point-config.js +69 -0
- package/dist/author/size.d.ts +24 -0
- package/dist/author/size.js +48 -0
- package/dist/author/ticks.d.ts +22 -0
- package/dist/author/ticks.js +115 -0
- package/dist/author/utils.d.ts +9 -0
- package/dist/author/utils.js +4 -0
- package/dist/browser/_baseSet-ycZx94p7.js +8672 -0
- package/dist/browser/_baseSet-ycZx94p7.js.map +1 -0
- package/dist/browser/author/index.js +40436 -0
- package/dist/browser/author/index.js.map +1 -0
- package/dist/browser/controller/index.js +823 -0
- package/dist/browser/controller/index.js.map +1 -0
- package/dist/browser/delivery/index.js +2 -0
- package/dist/browser/delivery-Dh8QdqpO.js +17950 -0
- package/dist/browser/delivery-Dh8QdqpO.js.map +1 -0
- package/dist/browser/number-line.css +2 -0
- package/dist/browser/uniqWith-CKN50xMI.js +17886 -0
- package/dist/browser/uniqWith-CKN50xMI.js.map +1 -0
- package/dist/controller/defaults.d.ts +58 -0
- package/dist/controller/defaults.js +50 -0
- package/dist/controller/index.d.ts +33 -0
- package/dist/controller/index.js +170 -0
- package/dist/controller/tickUtils.d.ts +20 -0
- package/dist/controller/tickUtils.js +254 -0
- package/dist/controller/utils.d.ts +9 -0
- package/dist/controller/utils.js +68 -0
- package/dist/delivery/data-converter.d.ts +64 -0
- package/dist/delivery/data-converter.js +70 -0
- package/dist/delivery/draggable/index.d.ts +33 -0
- package/dist/delivery/draggable/index.js +39 -0
- package/dist/delivery/index.d.ts +35 -0
- package/dist/delivery/index.js +109 -0
- package/dist/delivery/number-line/colors.d.ts +11 -0
- package/dist/delivery/number-line/colors.js +5 -0
- package/dist/delivery/number-line/feedback.d.ts +19 -0
- package/dist/delivery/number-line/feedback.js +57 -0
- package/dist/delivery/number-line/graph/arrow.d.ts +30 -0
- package/dist/delivery/number-line/graph/arrow.js +27 -0
- package/dist/delivery/number-line/graph/elements/base.d.ts +16 -0
- package/dist/delivery/number-line/graph/elements/base.js +11 -0
- package/dist/delivery/number-line/graph/elements/builder.d.ts +33 -0
- package/dist/delivery/number-line/graph/elements/builder.js +30 -0
- package/dist/delivery/number-line/graph/elements/line.d.ts +51 -0
- package/dist/delivery/number-line/graph/elements/line.js +189 -0
- package/dist/delivery/number-line/graph/elements/point.d.ts +43 -0
- package/dist/delivery/number-line/graph/elements/point.js +127 -0
- package/dist/delivery/number-line/graph/elements/ray.d.ts +43 -0
- package/dist/delivery/number-line/graph/elements/ray.js +130 -0
- package/dist/delivery/number-line/graph/index.d.ts +59 -0
- package/dist/delivery/number-line/graph/index.js +196 -0
- package/dist/delivery/number-line/graph/line.d.ts +46 -0
- package/dist/delivery/number-line/graph/line.js +27 -0
- package/dist/delivery/number-line/graph/stacks.d.ts +10 -0
- package/dist/delivery/number-line/graph/stacks.js +40 -0
- package/dist/delivery/number-line/graph/tick-utils.d.ts +73 -0
- package/dist/delivery/number-line/graph/tick-utils.js +297 -0
- package/dist/delivery/number-line/graph/ticks.d.ts +46 -0
- package/dist/delivery/number-line/graph/ticks.js +115 -0
- package/dist/delivery/number-line/index.d.ts +35 -0
- package/dist/delivery/number-line/index.js +218 -0
- package/dist/delivery/number-line/point-chooser/button.d.ts +31 -0
- package/dist/delivery/number-line/point-chooser/button.js +36 -0
- package/dist/delivery/number-line/point-chooser/img.d.ts +10 -0
- package/dist/delivery/number-line/point-chooser/img.js +4 -0
- package/dist/delivery/number-line/point-chooser/index.d.ts +37 -0
- package/dist/delivery/number-line/point-chooser/index.js +154 -0
- package/dist/delivery/number-line/point-chooser/styles.d.ts +192 -0
- package/dist/delivery/number-line/transitions/fade.d.ts +34 -0
- package/dist/delivery/number-line/transitions/fade.js +75 -0
- package/dist/delivery/number-line/transitions/index.d.ts +10 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.iife.d.ts +8 -0
- package/dist/index.iife.js +201 -0
- package/dist/index.js +2 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_DataView.js +6 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Hash.js +16 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_ListCache.js +16 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Map.js +6 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_MapCache.js +16 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Promise.js +6 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Set.js +6 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_SetCache.js +11 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Stack.js +14 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Symbol.js +5 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Uint8Array.js +5 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_WeakMap.js +6 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_apply.js +12 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_arrayEach.js +7 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_arrayFilter.js +10 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_arrayIncludes.js +7 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_arrayIncludesWith.js +7 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_arrayLikeKeys.js +15 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_arrayMap.js +7 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_arrayPush.js +7 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_arraySome.js +7 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_assignMergeValue.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_assignValue.js +10 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_assocIndexOf.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseAssign.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseAssignIn.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseAssignValue.js +12 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseClone.js +57 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseCreate.js +14 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseFindIndex.js +7 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseFor.js +5 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseGet.js +10 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseGetAllKeys.js +9 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseGetTag.js +10 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseHasIn.js +6 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIndexOf.js +9 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsArguments.js +9 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsEqual.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsEqualDeep.js +30 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsMap.js +9 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsMatch.js +26 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsNaN.js +6 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsNative.js +11 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsSet.js +9 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsTypedArray.js +11 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIteratee.js +11 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseKeys.js +12 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseKeysIn.js +13 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseMatches.js +12 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseMatchesProperty.js +17 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseMerge.js +19 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseMergeDeep.js +31 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_basePickBy.js +13 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseProperty.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_basePropertyDeep.js +9 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseRest.js +9 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseSet.js +22 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseSetToString.js +14 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseTimes.js +7 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseToString.js +15 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseTrim.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseUnary.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseUniq.js +27 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cacheHas.js +6 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_castPath.js +10 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cloneArrayBuffer.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cloneBuffer.js +10 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cloneDataView.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cloneRegExp.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cloneSymbol.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cloneTypedArray.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_copyArray.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_copyObject.js +14 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_copySymbols.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_copySymbolsIn.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_coreJsData.js +5 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_createAssigner.js +15 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_createBaseFor.js +12 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_createFind.js +19 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_createSet.js +9 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_defineProperty.js +10 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_equalArrays.js +35 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_equalByTag.js +35 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_equalObjects.js +32 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_freeGlobal.js +4 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getAllKeys.js +9 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getAllKeysIn.js +9 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getMapData.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getMatchData.js +16 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getNative.js +9 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getPrototype.js +5 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getRawTag.js +14 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getSymbols.js +10 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getSymbolsIn.js +11 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getTag.js +23 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getValue.js +6 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_hasPath.js +18 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_hashClear.js +7 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_hashDelete.js +7 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_hashGet.js +13 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_hashHas.js +9 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_hashSet.js +9 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_initCloneArray.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_initCloneByTag.js +33 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_initCloneObject.js +9 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_isIndex.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_isIterateeCall.js +12 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_isKey.js +11 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_isKeyable.js +7 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_isMasked.js +11 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_isPrototype.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_isStrictComparable.js +7 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_listCacheClear.js +6 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_listCacheDelete.js +9 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_listCacheGet.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_listCacheHas.js +7 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_listCacheSet.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheClear.js +13 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheDelete.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheGet.js +7 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheHas.js +7 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheSet.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_mapToArray.js +9 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_matchesStrictComparable.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_memoizeCapped.js +11 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_nativeCreate.js +5 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_nativeKeys.js +5 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_nativeKeysIn.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_nodeUtil.js +9 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_objectToString.js +7 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_overArg.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_overRest.js +13 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_root.js +5 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_safeGet.js +6 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_setCacheAdd.js +7 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_setCacheHas.js +6 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_setToArray.js +9 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_setToString.js +6 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_shortOut.js +14 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_stackClear.js +7 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_stackDelete.js +7 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_stackGet.js +6 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_stackHas.js +6 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_stackSet.js +16 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_strictIndexOf.js +7 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_stringToPath.js +10 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_toKey.js +10 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_toSource.js +15 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_trimmedEndIndex.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/cloneDeep.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/constant.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/eq.js +6 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/find.js +6 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/findIndex.js +13 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/get.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/hasIn.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/identity.js +6 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isArguments.js +10 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isArray.js +4 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isArrayLike.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isArrayLikeObject.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isBuffer.js +6 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isEmpty.js +21 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isEqual.js +7 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isEqualWith.js +9 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isFunction.js +11 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isLength.js +7 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isMap.js +7 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isNumber.js +9 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isObject.js +7 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isObjectLike.js +6 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isPlainObject.js +14 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isSet.js +7 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isSymbol.js +9 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isTypedArray.js +7 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/keys.js +9 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/keysIn.js +9 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/memoize.js +16 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/merge.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/negate.js +17 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/noop.js +4 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/omitBy.js +9 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/pickBy.js +16 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/property.js +10 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/stubArray.js +6 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/stubFalse.js +6 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/toFinite.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/toInteger.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/toNumber.js +19 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/toPlainObject.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/toString.js +7 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/uniqWith.js +7 -0
- package/package.json +78 -16
- package/CHANGELOG.json +0 -1247
- package/CHANGELOG.md +0 -2435
- package/LICENSE.md +0 -5
- package/README.md +0 -28
- package/configure/CHANGELOG.json +0 -827
- package/configure/CHANGELOG.md +0 -2082
- package/configure/lib/arrows.js +0 -89
- package/configure/lib/arrows.js.map +0 -1
- package/configure/lib/card-bar.js +0 -57
- package/configure/lib/card-bar.js.map +0 -1
- package/configure/lib/defaults.js +0 -177
- package/configure/lib/defaults.js.map +0 -1
- package/configure/lib/domain.js +0 -87
- package/configure/lib/domain.js.map +0 -1
- package/configure/lib/index.js +0 -176
- package/configure/lib/index.js.map +0 -1
- package/configure/lib/main.js +0 -815
- package/configure/lib/main.js.map +0 -1
- package/configure/lib/number-text-field.js +0 -26
- package/configure/lib/number-text-field.js.map +0 -1
- package/configure/lib/point-config.js +0 -84
- package/configure/lib/point-config.js.map +0 -1
- package/configure/lib/size.js +0 -66
- package/configure/lib/size.js.map +0 -1
- package/configure/lib/ticks.js +0 -234
- package/configure/lib/ticks.js.map +0 -1
- package/configure/lib/utils.js +0 -12
- package/configure/lib/utils.js.map +0 -1
- package/configure/package.json +0 -20
- package/controller/CHANGELOG.json +0 -332
- package/controller/CHANGELOG.md +0 -1360
- package/controller/lib/defaults.js +0 -56
- package/controller/lib/defaults.js.map +0 -1
- package/controller/lib/index.js +0 -430
- package/controller/lib/index.js.map +0 -1
- package/controller/lib/tickUtils.js +0 -294
- package/controller/lib/tickUtils.js.map +0 -1
- package/controller/lib/utils.js +0 -168
- package/controller/lib/utils.js.map +0 -1
- package/controller/package.json +0 -20
- package/demo.gif +0 -0
- package/docs/config-schema.json +0 -2532
- package/docs/config-schema.json.md +0 -1844
- package/docs/demo/config.js +0 -8
- package/docs/demo/generate.js +0 -39
- package/docs/demo/index.html +0 -1
- package/docs/pie-schema.json +0 -2461
- package/docs/pie-schema.json.md +0 -1228
- package/docs/schemas/config.json +0 -256
- package/lib/data-converter.js +0 -96
- package/lib/data-converter.js.map +0 -1
- package/lib/draggable/index.js +0 -114
- package/lib/draggable/index.js.map +0 -1
- package/lib/index.js +0 -196
- package/lib/index.js.map +0 -1
- package/lib/number-line/colors.js +0 -11
- package/lib/number-line/colors.js.map +0 -1
- package/lib/number-line/feedback.js +0 -92
- package/lib/number-line/feedback.js.map +0 -1
- package/lib/number-line/graph/arrow.js +0 -44
- package/lib/number-line/graph/arrow.js.map +0 -1
- package/lib/number-line/graph/elements/base.js +0 -20
- package/lib/number-line/graph/elements/base.js.map +0 -1
- package/lib/number-line/graph/elements/builder.js +0 -37
- package/lib/number-line/graph/elements/builder.js.map +0 -1
- package/lib/number-line/graph/elements/line.js +0 -259
- package/lib/number-line/graph/elements/line.js.map +0 -1
- package/lib/number-line/graph/elements/point.js +0 -204
- package/lib/number-line/graph/elements/point.js.map +0 -1
- package/lib/number-line/graph/elements/ray.js +0 -190
- package/lib/number-line/graph/elements/ray.js.map +0 -1
- package/lib/number-line/graph/index.js +0 -262
- package/lib/number-line/graph/index.js.map +0 -1
- package/lib/number-line/graph/line.js +0 -38
- package/lib/number-line/graph/line.js.map +0 -1
- package/lib/number-line/graph/stacks.js +0 -78
- package/lib/number-line/graph/stacks.js.map +0 -1
- package/lib/number-line/graph/tick-utils.js +0 -347
- package/lib/number-line/graph/tick-utils.js.map +0 -1
- package/lib/number-line/graph/ticks.js +0 -188
- package/lib/number-line/graph/ticks.js.map +0 -1
- package/lib/number-line/index.js +0 -384
- package/lib/number-line/index.js.map +0 -1
- package/lib/number-line/point-chooser/button.js +0 -49
- package/lib/number-line/point-chooser/button.js.map +0 -1
- package/lib/number-line/point-chooser/img.js +0 -8
- package/lib/number-line/point-chooser/img.js.map +0 -1
- package/lib/number-line/point-chooser/index.js +0 -197
- package/lib/number-line/point-chooser/index.js.map +0 -1
- package/lib/number-line/point-chooser/styles.js +0 -77
- package/lib/number-line/point-chooser/styles.js.map +0 -1
- package/lib/number-line/transitions/fade.js +0 -88
- package/lib/number-line/transitions/fade.js.map +0 -1
- package/lib/number-line/transitions/index.js +0 -14
- package/lib/number-line/transitions/index.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["COMPARE_PARTIAL_FLAG","COMPARE_UNORDERED_FLAG"],"sources":["../../../../../../node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_isIterateeCall.js","../../../../../../node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_createAssigner.js","../../../../../../node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsMatch.js","../../../../../../node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_isStrictComparable.js","../../../../../../node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getMatchData.js","../../../../../../node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_matchesStrictComparable.js","../../../../../../node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseMatches.js","../../../../../../node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseHasIn.js","../../../../../../node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_hasPath.js","../../../../../../node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/hasIn.js","../../../../../../node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseMatchesProperty.js","../../../../../../node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_basePropertyDeep.js","../../../../../../node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/property.js","../../../../../../node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIteratee.js","../../../../../../node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_createBaseFor.js","../../../../../../node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseFor.js","../../../../../../node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_assignMergeValue.js","../../../../../../node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_safeGet.js","../../../../../../node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/toPlainObject.js","../../../../../../node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseMergeDeep.js","../../../../../../node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseMerge.js","../../../../../../node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_createFind.js","../../../../../../node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/findIndex.js","../../../../../../node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/find.js","../../../../../../node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isEqualWith.js","../../../../../../node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/merge.js","../../../../../../node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/negate.js","../../../../../../node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_basePickBy.js","../../../../../../node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/pickBy.js","../../../../../../node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/omitBy.js","../../../../../shared/feedback/dist/index.js","../../../../../shared/controller-utils/dist/index.js","../../../src/controller/defaults.ts","../../../src/controller/tickUtils.ts","../../../src/controller/utils.ts","../../../src/controller/index.ts"],"sourcesContent":["import eq from './eq.js';\nimport isArrayLike from './isArrayLike.js';\nimport isIndex from './_isIndex.js';\nimport isObject from './isObject.js';\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nexport default isIterateeCall;\n","import baseRest from './_baseRest.js';\nimport isIterateeCall from './_isIterateeCall.js';\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nexport default createAssigner;\n","import Stack from './_Stack.js';\nimport baseIsEqual from './_baseIsEqual.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nexport default baseIsMatch;\n","import isObject from './isObject.js';\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nexport default isStrictComparable;\n","import isStrictComparable from './_isStrictComparable.js';\nimport keys from './keys.js';\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nexport default getMatchData;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nexport default matchesStrictComparable;\n","import baseIsMatch from './_baseIsMatch.js';\nimport getMatchData from './_getMatchData.js';\nimport matchesStrictComparable from './_matchesStrictComparable.js';\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nexport default baseMatches;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nexport default baseHasIn;\n","import castPath from './_castPath.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isIndex from './_isIndex.js';\nimport isLength from './isLength.js';\nimport toKey from './_toKey.js';\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nexport default hasPath;\n","import baseHasIn from './_baseHasIn.js';\nimport hasPath from './_hasPath.js';\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nexport default hasIn;\n","import baseIsEqual from './_baseIsEqual.js';\nimport get from './get.js';\nimport hasIn from './hasIn.js';\nimport isKey from './_isKey.js';\nimport isStrictComparable from './_isStrictComparable.js';\nimport matchesStrictComparable from './_matchesStrictComparable.js';\nimport toKey from './_toKey.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nexport default baseMatchesProperty;\n","import baseGet from './_baseGet.js';\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nexport default basePropertyDeep;\n","import baseProperty from './_baseProperty.js';\nimport basePropertyDeep from './_basePropertyDeep.js';\nimport isKey from './_isKey.js';\nimport toKey from './_toKey.js';\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nexport default property;\n","import baseMatches from './_baseMatches.js';\nimport baseMatchesProperty from './_baseMatchesProperty.js';\nimport identity from './identity.js';\nimport isArray from './isArray.js';\nimport property from './property.js';\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nexport default baseIteratee;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nexport default createBaseFor;\n","import createBaseFor from './_createBaseFor.js';\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nexport default baseFor;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignMergeValue;\n","/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nexport default safeGet;\n","import copyObject from './_copyObject.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\nexport default toPlainObject;\n","import assignMergeValue from './_assignMergeValue.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\nimport copyArray from './_copyArray.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\nimport isBuffer from './isBuffer.js';\nimport isFunction from './isFunction.js';\nimport isObject from './isObject.js';\nimport isPlainObject from './isPlainObject.js';\nimport isTypedArray from './isTypedArray.js';\nimport safeGet from './_safeGet.js';\nimport toPlainObject from './toPlainObject.js';\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\nexport default baseMergeDeep;\n","import Stack from './_Stack.js';\nimport assignMergeValue from './_assignMergeValue.js';\nimport baseFor from './_baseFor.js';\nimport baseMergeDeep from './_baseMergeDeep.js';\nimport isObject from './isObject.js';\nimport keysIn from './keysIn.js';\nimport safeGet from './_safeGet.js';\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\nexport default baseMerge;\n","import baseIteratee from './_baseIteratee.js';\nimport isArrayLike from './isArrayLike.js';\nimport keys from './keys.js';\n\n/**\n * Creates a `_.find` or `_.findLast` function.\n *\n * @private\n * @param {Function} findIndexFunc The function to find the collection index.\n * @returns {Function} Returns the new find function.\n */\nfunction createFind(findIndexFunc) {\n return function(collection, predicate, fromIndex) {\n var iterable = Object(collection);\n if (!isArrayLike(collection)) {\n var iteratee = baseIteratee(predicate, 3);\n collection = keys(collection);\n predicate = function(key) { return iteratee(iterable[key], key, iterable); };\n }\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n };\n}\n\nexport default createFind;\n","import baseFindIndex from './_baseFindIndex.js';\nimport baseIteratee from './_baseIteratee.js';\nimport toInteger from './toInteger.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\nfunction findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, baseIteratee(predicate, 3), index);\n}\n\nexport default findIndex;\n","import createFind from './_createFind.js';\nimport findIndex from './findIndex.js';\n\n/**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\nvar find = createFind(findIndex);\n\nexport default find;\n","import baseIsEqual from './_baseIsEqual.js';\n\n/**\n * This method is like `_.isEqual` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with up to\n * six arguments: (objValue, othValue [, index|key, object, other, stack]).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, othValue) {\n * if (isGreeting(objValue) && isGreeting(othValue)) {\n * return true;\n * }\n * }\n *\n * var array = ['hello', 'goodbye'];\n * var other = ['hi', 'goodbye'];\n *\n * _.isEqualWith(array, other, customizer);\n * // => true\n */\nfunction isEqualWith(value, other, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n var result = customizer ? customizer(value, other) : undefined;\n return result === undefined ? baseIsEqual(value, other, undefined, customizer) : !!result;\n}\n\nexport default isEqualWith;\n","import baseMerge from './_baseMerge.js';\nimport createAssigner from './_createAssigner.js';\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\nexport default merge;\n","/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that negates the result of the predicate `func`. The\n * `func` predicate is invoked with the `this` binding and arguments of the\n * created function.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} predicate The predicate to negate.\n * @returns {Function} Returns the new negated function.\n * @example\n *\n * function isEven(n) {\n * return n % 2 == 0;\n * }\n *\n * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven));\n * // => [1, 3, 5]\n */\nfunction negate(predicate) {\n if (typeof predicate != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return function() {\n var args = arguments;\n switch (args.length) {\n case 0: return !predicate.call(this);\n case 1: return !predicate.call(this, args[0]);\n case 2: return !predicate.call(this, args[0], args[1]);\n case 3: return !predicate.call(this, args[0], args[1], args[2]);\n }\n return !predicate.apply(this, args);\n };\n}\n\nexport default negate;\n","import baseGet from './_baseGet.js';\nimport baseSet from './_baseSet.js';\nimport castPath from './_castPath.js';\n\n/**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\nfunction basePickBy(object, paths, predicate) {\n var index = -1,\n length = paths.length,\n result = {};\n\n while (++index < length) {\n var path = paths[index],\n value = baseGet(object, path);\n\n if (predicate(value, path)) {\n baseSet(result, castPath(path, object), value);\n }\n }\n return result;\n}\n\nexport default basePickBy;\n","import arrayMap from './_arrayMap.js';\nimport baseIteratee from './_baseIteratee.js';\nimport basePickBy from './_basePickBy.js';\nimport getAllKeysIn from './_getAllKeysIn.js';\n\n/**\n * Creates an object composed of the `object` properties `predicate` returns\n * truthy for. The predicate is invoked with two arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pickBy(object, _.isNumber);\n * // => { 'a': 1, 'c': 3 }\n */\nfunction pickBy(object, predicate) {\n if (object == null) {\n return {};\n }\n var props = arrayMap(getAllKeysIn(object), function(prop) {\n return [prop];\n });\n predicate = baseIteratee(predicate);\n return basePickBy(object, props, function(value, path) {\n return predicate(value, path[0]);\n });\n}\n\nexport default pickBy;\n","import baseIteratee from './_baseIteratee.js';\nimport negate from './negate.js';\nimport pickBy from './pickBy.js';\n\n/**\n * The opposite of `_.pickBy`; this method creates an object composed of\n * the own and inherited enumerable string keyed properties of `object` that\n * `predicate` doesn't return truthy for. The predicate is invoked with two\n * arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omitBy(object, _.isNumber);\n * // => { 'b': '2' }\n */\nfunction omitBy(object, predicate) {\n return pickBy(object, negate(baseIteratee(predicate)));\n}\n\nexport default omitBy;\n","//#region src/defaults.ts\nvar e = {\n\tcorrect: {\n\t\ttype: \"default\",\n\t\tdefault: \"Correct\",\n\t\tcustom: \"Correct\"\n\t},\n\tincorrect: {\n\t\ttype: \"default\",\n\t\tdefault: \"Incorrect\",\n\t\tcustom: \"Incorrect\"\n\t},\n\tpartial: {\n\t\ttype: \"default\",\n\t\tdefault: \"Nearly\",\n\t\tcustom: \"Nearly\"\n\t},\n\tunanswered: {\n\t\ttype: \"default\",\n\t\tdefault: \"You have not entered a response\",\n\t\tcustom: \"You have not entered a response\"\n\t}\n};\n//#endregion\n//#region src/utils.ts\nfunction t(e) {\n\treturn e === \"partially-correct\" ? \"partial\" : e;\n}\n//#endregion\n//#region src/index.ts\nfunction n(n, i = {}) {\n\treturn new Promise((a) => {\n\t\tlet o = {\n\t\t\t...e,\n\t\t\t...i\n\t\t}, s = t(n), c = o[s], l = e[s];\n\t\tr(c, l[c.type]).then(a);\n\t});\n}\nfunction r(e, t) {\n\treturn new Promise((n) => {\n\t\tif (!e || e.type === \"none\") {\n\t\t\tn(void 0);\n\t\t\treturn;\n\t\t}\n\t\tn(e[e.type] || t);\n\t});\n}\nfunction i(n, r = {}) {\n\tlet i = {\n\t\t...e,\n\t\t...r\n\t}, o = t(n), s = i[o], c = e[o];\n\treturn a(s, c[s.type]);\n}\nfunction a(e, t) {\n\tif (!(!e || e.type === \"none\")) return e[e.type] || t;\n}\n//#endregion\nexport { e as defaultFeedback, a as getActualFeedback, i as getActualFeedbackForCorrectness, r as getFeedback, n as getFeedbackForCorrectness, t as normalizeCorrectness };\n","//#region \\0rolldown/runtime.js\nvar e = Object.defineProperty, t = (t, n) => {\n\tlet r = {};\n\tfor (var i in t) e(r, i, {\n\t\tget: t[i],\n\t\tenumerable: !0\n\t});\n\treturn n || e(r, Symbol.toStringTag, { value: \"Module\" }), r;\n};\n//#endregion\n//#region src/persistence.ts\nfunction n(e) {\n\treturn Array.isArray(e) ? e.filter((e) => e != null) : [];\n}\nfunction r(e) {\n\tlet t = [...e];\n\tfor (let e = t.length - 1; e > 0; e--) {\n\t\tlet n = Math.floor(Math.random() * (e + 1));\n\t\t[t[e], t[n]] = [t[n], t[e]];\n\t}\n\treturn t;\n}\nfunction i(e) {\n\treturn e == null ? !0 : Array.isArray(e) ? e.length === 0 : typeof e == \"object\" ? Object.keys(e).length === 0 : !1;\n}\nasync function a(e, t, a, o = \"value\") {\n\tlet s = n(t?.data?.shuffledValues ?? t?.shuffledValues ?? []);\n\tif (!t) {\n\t\tconsole.warn(\"Unable to save shuffled choices because there's no session.\");\n\t\treturn;\n\t}\n\tif (!i(s)) return n(s.map((t) => e.find((e) => e[o] === t)));\n\tlet c = r(e);\n\tif (a && typeof a == \"function\") try {\n\t\tlet e = n(c.map((e) => e[o]));\n\t\ti(e) ? console.error(`shuffledValues is an empty array - refusing to call updateSession. shuffledChoices: ${JSON.stringify(c)}, key: ${o}`) : t.id && t.element && await a(t.id, t.element, { shuffledValues: e });\n\t} catch (e) {\n\t\tconsole.warn(\"Unable to save shuffled order for choices\"), console.error(e);\n\t}\n\telse console.warn(\"Unable to save shuffled choices, shuffle will happen every time.\");\n\treturn c;\n}\nfunction o(e, t, n) {\n\treturn !!(e.lockChoiceOrder || n[\"@pie-element\"]?.lockChoiceOrder || (n.role ?? \"student\") === \"instructor\");\n}\n//#endregion\n//#region src/partial-scoring.ts\nvar s = /* @__PURE__ */ t({ enabled: () => c });\nfunction c(e, t, n) {\n\treturn e?.partialScoring === !1 || t?.partialScoring === !1 ? !1 : typeof n == \"boolean\" ? n : !0;\n}\n//#endregion\nexport { a as getShuffledChoices, o as lockChoices, s as partialScoring };\n","// @ts-nocheck\n/**\n * @synced-from pie-elements/packages/number-line/controller/src/defaults.js\n * @auto-generated\n *\n * This file is automatically synced from pie-elements and converted to TypeScript.\n * Manual edits will be overwritten on next sync.\n * To make changes, edit the upstream JavaScript file and run sync again.\n */\n\nexport default {\n correctResponse: [],\n feedback: {\n correct: { default: 'Correct', type: 'none' },\n incorrect: { default: 'Incorrect', type: 'none' },\n partial: { default: 'Nearly', type: 'none' },\n },\n graph: {\n arrows: { left: true, right: true },\n availableTypes: {\n PF: true,\n },\n domain: { min: -1, max: 1 },\n exhibitOnly: false,\n initialElements: [],\n initialType: 'PF',\n maxNumberOfPoints: 1,\n ticks: { minor: 0.125, major: 0.5, tickIntervalType: 'Decimal' },\n title: '',\n width: 500,\n },\n prompt: '',\n promptEnabled: true,\n rationale: '',\n rationaleEnabled: true,\n teacherInstructions: '',\n teacherInstructionsEnabled: true,\n toolbarEditorPosition: 'bottom',\n widthEnabled: true,\n};\n","// @ts-nocheck\n/**\n * @synced-from pie-elements/packages/number-line/controller/src/tickUtils.js\n * @auto-generated\n *\n * This file is automatically synced from pie-elements and converted to TypeScript.\n * Manual edits will be overwritten on next sync.\n * To make changes, edit the upstream JavaScript file and run sync again.\n */\n\nimport * as math from 'mathjs';\nimport { isNumber, isObject, uniqWith } from 'lodash-es';\n\n// All these functions are duplicated in src/number-line/graph/tick-utils\n\n/*This will store the possible decimal tick values*/\nconst decimalTickValues = [0.001, 0.01, 0.02, 0.04, 0.05, 0.1, 0.125, 0.2, 0.25, 0.5];\n\n/*This will store the possible fraction tick values*/\nconst fractionTickValues = [\n '1/1000',\n '1/100',\n '1/64',\n '1/50',\n '1/32',\n '1/25',\n '1/20',\n '1/16',\n '1/15',\n '1/12',\n '1/10',\n '1/9',\n '1/8',\n '1/7',\n '1/6',\n '1/5',\n '1/4',\n '1/3',\n '1/2',\n];\n\n/*This const will store possible multiplier for label interval that needs to be multiplied\nwith tick interval with denominator represented with object key.*/\nconst labelMultiplier = {\n 1: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],\n 2: [1, 2, 4, 6, 8, 10],\n 3: [1, 3, 6, 9],\n 4: [1, 2, 4, 8],\n 5: [1, 5, 10],\n 6: [1, 2, 3, 6],\n 7: [1, 7],\n 8: [1, 2, 4, 8],\n 9: [1, 3, 9],\n 10: [1, 2, 5, 10],\n 12: [1, 2, 3, 4, 6],\n 15: [1, 3, 5],\n 16: [1, 2, 4, 8],\n 20: [1, 2, 4, 5, 10],\n 25: [1, 5],\n 32: [1, 2, 4, 8],\n 50: [1, 2, 5, 10],\n 64: [1, 2, 4, 8],\n 100: [1, 2, 4, 5, 10],\n 1000: [1, 2, 4, 5, 8, 10],\n};\n\nconst fractionRange = (start, end, interval) => {\n const m = math.mod(math.abs(start), math.abs(interval));\n if (!math.equal(m, 0)) {\n throw new Error('start point must be divisible by interval');\n }\n\n if (math.equal(start, end)) {\n return [];\n }\n\n const e = math.subtract(end, math.mod(end, math.abs(interval)));\n\n const direction = math.larger(interval, 0) ? 'positive' : 'negative';\n\n if (direction === 'negative' && math.largerEq(end, start)) {\n throw new Error('start must be > than end when doing a negative decrement');\n }\n if (direction === 'positive' && math.smallerEq(end, start)) {\n throw new Error('start must be < end when doing increments');\n }\n const compareFn = direction === 'positive' ? math.smallerEq : math.equal(e, end) ? math.largerEq : math.larger;\n const out = [];\n\n let next = start;\n while (compareFn(next, e)) {\n out.push(next);\n next = math.add(next, interval);\n }\n return out;\n};\n\nconst zbrErrorMessage = (start, end) =>\n `Can only do a positive or negative range, but got: start: ${start} and end:${end}`;\n\nconst zeroBasedRange = (start, end, interval) => {\n start = math.fraction(start);\n end = math.fraction(end);\n interval = math.fraction(interval);\n\n const length = math.abs(math.subtract(end, start));\n\n if (math.larger(length, math.abs(end))) {\n throw new Error(zbrErrorMessage(start, end));\n }\n const a = {\n start: math.abs(start),\n end: math.abs(end),\n interval: math.abs(interval),\n multiplier: math.smaller(interval, 0) ? -1 : 1,\n };\n\n const m = math.mod(a.start, a.interval);\n const s = math.larger(m, 0) ? math.add(math.subtract(a.start, m), a.interval) : a.start;\n\n const r = fractionRange(s, a.end, a.interval);\n const out = a.multiplier === -1 ? r.map((v) => math.multiply(v, -1)) : r;\n\n if (math.smaller(interval, 0)) {\n out.reverse();\n }\n return out;\n};\n\nconst fmin = (a, b) => {\n a = math.fraction(a);\n b = math.fraction(b);\n return math.smaller(a, b) ? a : b;\n};\n\nconst fmax = (a, b) => {\n a = math.fraction(a);\n b = math.fraction(b);\n return math.larger(a, b) ? a : b;\n};\n/**\n * the lodash range was causing too much variance in the rounding errors\n * such that it was hard to round the numbers.\n * This is a more simplistic version but makes rounding work.\n */\nconst simpleRange = (start, end, interval) => {\n start = math.fraction(start);\n end = math.fraction(end);\n interval = math.fraction(interval);\n\n const positiveRange = math.larger(end, 0) ? zeroBasedRange(fmax(0, start), end, interval) : [];\n\n const negativeRange = math.smaller(start, 0) ? zeroBasedRange(fmin(0, end), start, math.multiply(interval, -1)) : [];\n let together = negativeRange.concat(positiveRange);\n\n const out = uniqWith(together, math.equal);\n return out;\n};\n\nconst closeTo = (a, b, precision) => {\n precision = precision || 2;\n const expectedDiff = Math.pow(10, -precision) / 2;\n const receivedDiff = Math.abs(a - b);\n return receivedDiff < expectedDiff;\n};\n\nconst limit = (v, min, max) => {\n if (math.smaller(fraction(v), fraction(min))) {\n return min;\n }\n\n if (math.larger(fraction(v), fraction(max))) {\n return max;\n }\n\n return v;\n};\n\n/*\n * Function to get tick interval limits based on min, max and width entered by the user.\n * @param domain object containing max and min value.\n * @param width number represents width of number line.\n * */\nexport const getMinorLimits = (domain, width) => {\n const end = domain.max - domain.min;\n const min = math.number(math.multiply(10, math.divide(math.fraction(end), width)));\n const max = math.number(math.multiply(20, min));\n return {\n min: min,\n max: max,\n };\n};\n\nconst isMultiple = (multiple, src) => {\n const mod = math.mod(multiple, src);\n return math.equal(mod, 0);\n};\n\n/**\n * Accepts a fraction object {n,d,s} or number.\n * @param {*} v\n * @return mathjs.fraction\n */\nconst fraction = (v) => {\n if (isObject(v)) {\n return math.fraction(v.n * v.s, v.d);\n } else if (isNumber(v)) {\n return math.fraction(v);\n }\n};\n\nconst normalizeTicks = (domain, width, ticks, opts) => {\n const useLimit = opts ? opts.limit !== false : true;\n const minorLimits = getMinorLimits(domain, width);\n\n const minor = useLimit ? limit(fraction(ticks.minor), minorLimits.min, minorLimits.max) : fraction(ticks.minor);\n const major = useLimit ? limit(fraction(ticks.major), minor, math.multiply(minor, 20)) : fraction(ticks.major);\n\n const isMajorMultiple = isMultiple(major, minor);\n\n if (!isMajorMultiple) {\n const multiplier = math.divide(major, minor);\n const multiplyBy = multiplier <= 2 ? 2 : Math.round(multiplier);\n\n // major must be a multiple of minor\n return { minor, major: math.multiply(minor, multiplyBy) };\n }\n\n return { major, minor };\n};\n\n/**\n * Build ticks as an array of mathjs Fractions\n */\nconst buildTickDataAsFractions = (domain, width, ticks, opts) => {\n ticks = normalizeTicks(domain, width, ticks, opts);\n const rng = simpleRange(domain.min, domain.max, ticks.minor);\n\n const o = rng\n .filter((x) => math.smallerEq(x, math.fraction(domain.max)))\n .map((x) => {\n let type = 'minor';\n const modulo = math.mod(x, ticks.major);\n\n if (closeTo(math.number(modulo), 0)) {\n type = 'major';\n }\n\n return { x, type };\n });\n\n return o;\n};\n\n/*\n * This function will generate tick interval values based on min and max limits of ticks.\n * @param minorLimits object containing min and max values\n * @return out object containing three arrays 1. fraction values, 2. decimal values,\n * */\nexport const generateMinorValues = (minorLimits) => {\n let out = { fraction: [], decimal: [] };\n decimalTickValues.forEach((value) => {\n if (value >= minorLimits.min && value <= minorLimits.max) {\n out.decimal.push(value);\n }\n });\n fractionTickValues.forEach((value) => {\n let decimalValue = math.number(math.fraction(value));\n if (decimalValue >= minorLimits.min && decimalValue <= minorLimits.max) {\n out.fraction.push(value);\n }\n });\n return out;\n};\n\n/*\n * This function will generate label interval values for provided tick interval value.\n * @param minor number representing tick interval value.\n * @param domain object containing min and max values.\n * @param width number representing width of number line.\n * @return out object containing three arrays 1. fraction values, 2. decimal values,\n * */\nexport const generateMajorValuesForMinor = (minor, domain, width) => {\n let out = { decimal: [], fraction: [] };\n let fraction = math.fraction(math.number(math.number(minor)));\n let n = fraction.n;\n let d = fraction.d;\n if (n >= 1 && d === 1) {\n for (let i = 1; i <= 10; i++) {\n let num = math.number(math.multiply(n, i));\n //Here we check if this major value can plot at least 2 points on number line.\n let ticksData = { minor: minor, major: num };\n let output = buildTickData(domain, width, ticksData, { fraction: undefined });\n if (output.filter((x) => x.type === 'major').length > 1) {\n out.fraction.push(num.toString());\n out.decimal.push(num);\n }\n }\n } else {\n for (const multiplierKey in labelMultiplier[d]) {\n let num = math.multiply(math.fraction(n, d), labelMultiplier[d][multiplierKey]);\n //Here we check if this major value can plot at least 2 points on number line.\n let ticksData = { minor: minor, major: math.number(num) };\n let output = buildTickData(domain, width, ticksData, { fraction: undefined });\n if (output.filter((x) => x.type === 'major').length > 1) {\n if (num.d !== 1) {\n out.fraction.push(num.n + '/' + num.d);\n } else {\n out.fraction.push(num.n.toString());\n }\n out.decimal.push(math.number(num));\n }\n }\n }\n return out;\n};\n\nconst buildTickData = (domain, width, ticks, opts) => {\n const result = buildTickDataAsFractions(domain, width, ticks, opts);\n\n const out = result.map((o) => (opts.fraction ? o : { ...o, x: math.number(o.x) || 0 }));\n\n return out;\n};\n","// @ts-nocheck\n/**\n * @synced-from pie-elements/packages/number-line/controller/src/utils.js\n * @auto-generated\n *\n * This file is automatically synced from pie-elements and converted to TypeScript.\n * Manual edits will be overwritten on next sync.\n * To make changes, edit the upstream JavaScript file and run sync again.\n */\n\nimport * as math from 'mathjs';\nimport { generateMajorValuesForMinor, generateMinorValues, getMinorLimits } from './tickUtils.js';\n\n/*\n * This function is duplicated in configure/main.js\n * This function will update major value whenever minor value is changed or tick type is changed\n * @param graph object containing domain, ticks and width value\n * @return graph object with updated ticks values\n * */\nconst updateMajorValue = (graph) => {\n const { domain, ticks, width } = graph;\n const majorValues = generateMajorValuesForMinor(ticks.minor, domain, width);\n if (majorValues.decimal.indexOf(ticks.major) === -1) {\n let currIndex = 0;\n if (ticks.tickIntervalType === 'Integer') {\n currIndex = majorValues.decimal.length > 4 ? 4 : majorValues.decimal.length - 1;\n } else {\n currIndex = majorValues.decimal.length - 1;\n }\n ticks.major = majorValues.decimal[currIndex];\n }\n graph.fraction = ticks.tickIntervalType === 'Fraction' && ticks.major < 1;\n return { ...graph, ticks };\n};\n\n/*\n * This function is duplicated in configure/main.js\n * This function will reload ticks data whenever graph object is changed and also sets required tick object\n * for rendering Ticks Components.\n * @param graph object containing domain, ticks and width value\n * @return graph object with updated ticks values\n * */\n\nexport const reloadTicksData = (graph) => {\n const { domain, ticks = {}, width } = graph;\n //Set tick interval type if not present for legacy number line models depending upon minor value\n if (!ticks.tickIntervalType) {\n if (ticks.minor > 0.5) {\n ticks.tickIntervalType = 'Integer';\n } else {\n ticks.tickIntervalType = 'Decimal';\n }\n }\n // This section will calculate minor and major values array and assign respective value\n // to different tick types object\n const minorLimits = getMinorLimits(domain, width);\n if (minorLimits.min >= 1) {\n /*\n * In this scenario only integer tick will be enabled\n * */\n ticks.tickIntervalType = 'Integer';\n ticks.minor =\n ticks.minor < 1\n ? math.number(math.ceil(minorLimits.min))\n : ticks.minor >= math.number(math.ceil(minorLimits.min)) &&\n ticks.minor <= math.number(math.floor(minorLimits.max))\n ? ticks.minor\n : math.number(math.ceil(minorLimits.min));\n ticks.integerTick = ticks.minor;\n const minorValues = { decimal: [], fraction: [] };\n ticks.fractionTick = '0';\n ticks.decimalTick = 0;\n } else if (minorLimits.min >= 0 && minorLimits.max < 1) {\n /*\n * In this scenario only decimal or fraction tick will be enabled\n * */\n if (ticks.tickIntervalType === 'Integer') {\n ticks.tickIntervalType = 'Fraction';\n }\n const minorValues = generateMinorValues(minorLimits);\n let minValue = math.number(math.fraction(minorValues.fraction[0]));\n let maxValue = math.number(math.fraction(minorValues.fraction[minorValues.fraction.length - 1]));\n if (ticks.minor < minValue || ticks.minor > maxValue) {\n switch (ticks.tickIntervalType) {\n case 'Fraction':\n ticks.minor = math.number(math.fraction(minorValues.fraction[minorValues.fraction.length - 1]));\n ticks.fractionTick = minorValues.fraction[minorValues.fraction.length - 1];\n ticks.decimalTick = minorValues.decimal[0];\n break;\n case 'Decimal':\n case 'Integer':\n ticks.minor = minorValues.decimal[minorValues.decimal.length - 1];\n ticks.decimalTick = minorValues.decimal[minorValues.decimal.length - 1];\n ticks.fractionTick = minorValues.fraction[0];\n }\n } else {\n switch (ticks.tickIntervalType) {\n case 'Fraction':\n let fraction = math.fraction(math.number(ticks.minor));\n ticks.fractionTick = fraction.n + '/' + fraction.d;\n ticks.decimalTick = ticks.decimalTick ? ticks.decimalTick : minorValues.decimal[0];\n break;\n case 'Decimal':\n case 'Integer':\n ticks.decimalTick = ticks.minor;\n ticks.fractionTick = ticks.fractionTick ? ticks.fractionTick : minorValues.fraction[0];\n }\n }\n ticks.integerTick = 1;\n } else if (minorLimits.min < 1 && minorLimits.max >= 1) {\n /*\n * In this scenario all integer, decimal or fraction tick will be enabled\n * */\n const minorValues = generateMinorValues(minorLimits);\n if (!(ticks.minor >= minorLimits.min && ticks.minor <= minorLimits.max)) {\n if (minorLimits.min > 0.5) {\n ticks.tickIntervalType = 'Integer';\n }\n switch (ticks.tickIntervalType) {\n case 'Integer':\n ticks.minor = math.number(math.ceil(minorLimits.min));\n ticks.integerTick = ticks.minor;\n ticks.decimalTick = minorLimits.min > 0.5 ? 0 : minorValues.decimal[0];\n ticks.fractionTick = minorLimits.min > 0.5 ? '0' : minorValues.fraction[0];\n break;\n case 'Decimal':\n ticks.minor = minorValues.decimal[0];\n ticks.integerTick = 1;\n ticks.decimalTick = ticks.minor;\n ticks.fractionTick = minorValues.fraction[0];\n break;\n case 'Fraction':\n ticks.minor = math.number(math.fraction(minorValues.fraction[0]));\n ticks.integerTick = 1;\n ticks.decimalTick = minorValues.decimal[0];\n ticks.fractionTick = minorValues.fraction[0];\n }\n } else {\n switch (ticks.tickIntervalType) {\n case 'Integer':\n ticks.integerTick = ticks.minor;\n ticks.decimalTick = minorLimits.min > 0.5 ? 0 : minorValues.decimal[0];\n ticks.fractionTick = minorLimits.min > 0.5 ? '0' : minorValues.fraction[0];\n break;\n case 'Decimal':\n ticks.integerTick = 1;\n ticks.decimalTick = ticks.minor;\n ticks.fractionTick = minorValues.fraction[0];\n break;\n case 'Fraction':\n ticks.integerTick = 1;\n ticks.decimalTick = minorValues.decimal[0];\n let fraction = math.fraction(math.number(ticks.minor));\n ticks.fractionTick = fraction.n + '/' + fraction.d;\n }\n }\n }\n return updateMajorValue({ ...graph, ticks });\n};\n","// @ts-nocheck\n/**\n * @synced-from pie-elements/packages/number-line/controller/src/index.js\n * @auto-generated\n *\n * This file is automatically synced from pie-elements and converted to TypeScript.\n * Manual edits will be overwritten on next sync.\n * To make changes, edit the upstream JavaScript file and run sync again.\n */\n\nimport { cloneDeep, find, isEmpty, isEqualWith, merge, omitBy } from 'lodash-es';\nimport { getFeedbackForCorrectness } from '@pie-element/shared-feedback';\nimport { partialScoring } from '@pie-element/shared-controller-utils';\nimport * as math from 'mathjs';\n\nimport defaults from './defaults.js';\nimport { reloadTicksData } from './utils.js';\n\nconst score = (number) => {\n return {\n score: {\n scaled: number,\n },\n };\n};\n\nconst getPartialScore = (corrected, ps) => {\n const { correct } = corrected;\n const rule = ps.find((r) => r.numberOfCorrect === correct.length);\n\n if (rule) {\n return 1.0 * (rule.scorePercentage / 100);\n } else {\n return 0;\n }\n};\n\nconst accumulateAnswer = (correctResponse) => (total, answer) => {\n const isCorrectResponse = correctResponse.some((cr) => matches(cr)(answer));\n return total + (isCorrectResponse ? 1 : 0);\n};\n\n/**\n * Generates detailed trace log for scoring evaluation\n * @param {Object} model - the question model\n * @param {Object} session - the student session\n * @param {Object} env - the environment\n * @returns {Array} traceLog - array of trace messages\n */\nexport const getLogTrace = (model, session, env) => {\n const traceLog = [];\n\n const studentAnswers = session?.answer || [];\n const correctResponse = model?.correctResponse || [];\n\n if (!studentAnswers.length) {\n return ['Student did not interact with the number line.'];\n }\n\n const corrected = getCorrected(studentAnswers, cloneDeep(correctResponse));\n const { correct, incorrect, notInAnswer, noCorrectResponse } = corrected;\n\n if (noCorrectResponse) {\n return ['No correct response is defined for this item.'];\n }\n\n const correctCount = correct.length;\n const incorrectCount = incorrect.length;\n const missingCount = notInAnswer.length;\n\n if (correctCount > 0) {\n traceLog.push(`${correctCount} object(s) correctly placed.`);\n }\n\n if (incorrectCount > 0) {\n traceLog.push(`${incorrectCount} incorrect object(s) placed.`);\n }\n\n if (missingCount > 0) {\n traceLog.push(`${missingCount} expected object(s) were not placed.`);\n }\n\n const studentAnswersCopy = [...studentAnswers];\n const correctResponseCopy = [...correctResponse];\n\n correct.forEach((index) => {\n const answer = studentAnswersCopy[index];\n const objectType = answer?.type || 'object';\n traceLog.push(`${objectType.charAt(0).toUpperCase() + objectType.slice(1)} at position ${answer.domainPosition} is correct.`);\n });\n\n incorrect.forEach((index) => {\n const answer = studentAnswersCopy[index];\n const objectType = answer?.type || 'object';\n traceLog.push(`${objectType.charAt(0).toUpperCase() + objectType.slice(1)} at position ${answer.domainPosition} does not match the expected response.`);\n });\n\n notInAnswer.forEach((expectedObject) => {\n const objectType = expectedObject?.type || 'object';\n traceLog.push(`Expected ${objectType} at position ${expectedObject.domainPosition} was not placed by the student.`);\n });\n\n const partialScoringEnabled = partialScoring.enabled(model, env);\n\n if (partialScoringEnabled) {\n traceLog.push('Score calculated using partial scoring.');\n traceLog.push(`Partial scoring is based on the number of correct objects, with deductions for extras.`);\n } else {\n traceLog.push('Score calculated using all-or-nothing scoring.');\n }\n\n const total = correctResponse.length || 1;\n const extraPlacements =\n studentAnswers.length > total ? studentAnswers.length - total : 0;\n\n if (extraPlacements > 0) {\n traceLog.push(\n `${extraPlacements} extra object(s) beyond the required amount were placed and deducted.`,\n );\n }\n\n const rawScore = Math.max(0, (correctCount - extraPlacements) / total);\n const finalScore = partialScoringEnabled ? rawScore : rawScore === 1 ? 1 : 0;\n\n traceLog.push(`Final score: ${finalScore}.`);\n\n return traceLog;\n};\n\n\n/**\n */\nexport function outcome(model, session, env) {\n return new Promise((resolve) => {\n if (!session || isEmpty(session)) {\n resolve({ score: 0, empty: true, logTrace: ['Student did not interact with the number line.'] });\n } else {\n const partialScoringEnabled = partialScoring.enabled(model, env);\n const numCorrect = (session.answer || []).reduce(accumulateAnswer(model.correctResponse), 0);\n\n let total = model.correctResponse.length;\n let numIncorrect = 0;\n\n if ((session.answer || []).length > total) {\n numIncorrect = (session.answer || []).length - total;\n }\n\n if (total === 0) {\n total = 1;\n }\n\n let score = numCorrect < 0 ? 0 : (numCorrect - numIncorrect) / total;\n\n if (score < 0) {\n score = 0;\n }\n\n resolve({ \n score: partialScoringEnabled ? score : score === 1 ? 1 : 0,\n logTrace: getLogTrace(model, session, env)\n });\n }\n });\n}\n\nexport function getScore(question, session) {\n return new Promise((resolve) => {\n if (!session || isEmpty(session)) {\n resolve({ score: { scaled: 0 } });\n } else {\n session.answer = session.answer || [];\n\n const corrected = getCorrected(session.answer, cloneDeep(question.correctResponse));\n\n const correctness = getCorrectness(corrected);\n\n if (correctness === 'correct') {\n resolve(score(1.0));\n } else if (correctness === 'incorrect') {\n resolve(score(0.0));\n } else if (correctness === 'partial') {\n const { allowPartialScoring, partialScoring } = question;\n const ps = (partialScoring || []).filter((o) => !isEmpty(o));\n const canDoPartialScoring = allowPartialScoring && ps.length > 0;\n if (canDoPartialScoring) {\n resolve(score(getPartialScore(corrected, ps)));\n } else {\n resolve(score(0.0));\n }\n } else {\n resolve({ score: { scaled: -1 } });\n }\n }\n });\n}\n\nexport const CLOSE_TO_PRECISION = 3;\n\nexport const closeTo = (a, b, precision) => {\n precision = precision || 5;\n const expectedDiff = Math.pow(10, -precision) / 2;\n const receivedDiff = Math.abs(a - b);\n const close = receivedDiff <= expectedDiff;\n return close;\n};\n\nconst matches = (a) => (v) => {\n return isEqualWith(a, v, (v, ov) => {\n if (typeof v === 'number' && typeof ov === 'number') {\n return closeTo(v, ov, CLOSE_TO_PRECISION);\n }\n });\n};\n\nexport const getCorrected = (answer, correctResponse) => {\n if (isEmpty(correctResponse) && answer.length > 0) {\n return {\n correct: [],\n incorrect: [],\n notInAnswer: [],\n noCorrectResponse: true,\n };\n }\n\n return answer.reduce(\n (acc, a, index) => {\n const { correct, incorrect, notInAnswer } = acc;\n\n const match = find(notInAnswer, matches(a));\n if (match) {\n correct.push(index);\n notInAnswer.splice(notInAnswer.indexOf(match), 1);\n } else {\n incorrect.push(index);\n }\n\n return {\n correct: correct,\n incorrect: incorrect,\n notInAnswer: notInAnswer,\n };\n },\n {\n correct: [],\n incorrect: [],\n notInAnswer: correctResponse,\n },\n );\n};\n\nexport const getCorrectness = (corrected) => {\n const { incorrect, correct, notInAnswer, noCorrectResponse } = corrected;\n\n if (noCorrectResponse) {\n return 'unknown';\n }\n\n if (incorrect.length === 0 && correct.length === 0) {\n return 'unanswered';\n }\n\n if (incorrect.length === 0 && notInAnswer.length === 0) {\n return 'correct';\n }\n\n if (incorrect.length > 0 || notInAnswer.length > 0) {\n if (correct.length > 0) {\n return 'partial';\n } else {\n return 'incorrect';\n }\n }\n\n return 'unknown';\n};\n\n/**\n * A sample of a normalize function see:\n * https://github.com/pie-framework/pie-elements/issues/21\n */\nexport function normalize(question) {\n const feedback = merge(defaults.feedback, question.feedback);\n\n return { ...defaults, ...question, feedback };\n}\n\nexport function createDefaultModel(model = {}) {\n return new Promise((resolve) => {\n const out = {\n ...model,\n graph: {\n ...defaults.graph,\n ...model.graph,\n },\n colorContrast: 'black_on_white',\n };\n\n resolve(omitBy(out, (v) => !v));\n });\n}\n\n// this function is duplicated in configure; at some point, use the same shared function\nconst updateTicks = (model) => {\n const { graph: { domain, labelStep, ticks = {} } = {} } = model;\n const { minor, major } = ticks;\n\n if (domain) {\n domain.min = Number((domain.min || 0).toFixed(2));\n domain.max = Number((domain.max || 0).toFixed(2));\n }\n\n if (labelStep && typeof labelStep === 'string' && labelStep.match(/^[1-9][0-9]*\\/[1-9][0-9]*$/g)) {\n model.graph.fraction = true;\n ticks.tickIntervalType = 'Fraction';\n\n // update the ticks frequency and label value to match the label step if needed\n const step = math.evaluate(labelStep);\n\n if (step !== major) {\n ticks.major = step;\n ticks.minor = step / (major / minor);\n }\n }\n\n return model;\n};\n\nexport async function model(question, session, env) {\n if (!question) {\n throw new Error('question is null');\n }\n\n const normalizedQuestion = await normalize(question);\n const normalizedModel = updateTicks(normalizedQuestion);\n // this function is also called in configure, it is a duplicate to maintain consistency and correctness\n const graph = reloadTicksData(normalizedModel.graph);\n\n if (graph) {\n const evaluateMode = env.mode === 'evaluate';\n\n const correctResponse = cloneDeep(normalizedQuestion.correctResponse);\n const corrected = evaluateMode && getCorrected(session ? session.answer || [] : [], correctResponse);\n const correctness = evaluateMode && getCorrectness(corrected);\n\n const { exhibitOnly } = graph;\n const disabled = env.mode !== 'gather' || exhibitOnly === true;\n let teacherInstructions = null;\n\n if (env.role === 'instructor' && (env.mode === 'view' || evaluateMode)) {\n teacherInstructions = normalizedQuestion.teacherInstructions;\n }\n\n const feedbackMessage = evaluateMode\n ? await getFeedbackForCorrectness(correctness, normalizedQuestion.feedback)\n : undefined;\n\n const out = {\n prompt: normalizedQuestion.prompt,\n teacherInstructions,\n graph,\n disabled,\n corrected,\n correctResponse:\n evaluateMode && ['unanswered', 'correct'].indexOf(correctness) === -1 && normalizedQuestion.correctResponse,\n feedback: feedbackMessage && {\n type: correctness,\n message: feedbackMessage,\n },\n colorContrast: (env.accessibility && env.accessibility.colorContrast) || 'black_on_white',\n language: normalizedQuestion.language,\n extraCSSRules: normalizedQuestion.extraCSSRules,\n };\n return omitBy(out, (v) => !v);\n } else {\n throw new Error('graph is undefined');\n }\n}\n\nexport const createCorrectResponseSession = (question, env) => {\n return new Promise((resolve) => {\n if (env.mode !== 'evaluate' && env.role === 'instructor') {\n const { correctResponse: answer } = question;\n\n resolve({\n answer,\n id: '1',\n });\n } else {\n resolve(null);\n }\n });\n};\n\n// remove all html tags\nconst getInnerText = (html) => (html || '').replaceAll(/<[^>]*>/g, '');\n\n// remove all html tags except img, iframe and source tag for audio\nconst getContent = (html) => (html || '').replace(/(<(?!img|iframe|source)([^>]+)>)/gi, '');\n\nexport const validate = (model = {}, config = {}) => {\n const { graph, correctResponse } = model || {};\n const { maxMaxElements = 20, numberLineDimensions: { min: minWidth = 200, max: maxWidth = 800 } = {} } = config || {};\n const { width, domain, maxNumberOfPoints } = graph || {};\n const { min, max } = domain || {};\n const errors = {};\n\n ['teacherInstructions', 'prompt'].forEach((field) => {\n if (config[field]?.required && !getContent(model[field])) {\n errors[field] = 'This field is required.';\n }\n });\n\n if (width < minWidth || width > maxWidth) {\n errors.widthError = `Width should be a value between ${minWidth} and ${maxWidth}.`;\n }\n\n const MIN_DOMAIN = -100000;\n const MAX_DOMAIN = 100000;\n\n if (min < MIN_DOMAIN || min > MAX_DOMAIN || max < MIN_DOMAIN || max > MAX_DOMAIN) {\n errors.domainError = `Min and max values must both be in the range [${MIN_DOMAIN}, ${MAX_DOMAIN}].`;\n }\n\n if (min >= max) {\n errors.maxError = 'Max value must be greater than min value.';\n }\n\n if (maxNumberOfPoints < 1 || maxNumberOfPoints > maxMaxElements) {\n errors.pointsError = `Max number of elements should be between 1 and ${maxMaxElements}.`;\n }\n\n if (correctResponse && correctResponse.length === 0) {\n errors.correctResponseError = 'The correct answer should include at least one number line object.';\n }\n\n return errors;\n};\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29],"mappings":"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"}
|