@pie-element/graphing-solution-set 6.1.1-next.0 → 6.1.1-next.29

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.
Files changed (232) hide show
  1. package/CHANGELOG.json +1 -0
  2. package/CHANGELOG.md +846 -0
  3. package/LICENSE.md +5 -0
  4. package/README.md +20 -0
  5. package/configure/CHANGELOG.json +1 -0
  6. package/configure/CHANGELOG.md +806 -0
  7. package/configure/lib/configure.js +312 -0
  8. package/configure/lib/configure.js.map +1 -0
  9. package/configure/lib/correct-response.js +435 -0
  10. package/configure/lib/correct-response.js.map +1 -0
  11. package/configure/lib/defaults.js +357 -0
  12. package/configure/lib/defaults.js.map +1 -0
  13. package/configure/lib/graphing-config.js +408 -0
  14. package/configure/lib/graphing-config.js.map +1 -0
  15. package/configure/lib/index.js +163 -0
  16. package/configure/lib/index.js.map +1 -0
  17. package/configure/lib/utils.js +630 -0
  18. package/configure/lib/utils.js.map +1 -0
  19. package/configure/package.json +29 -0
  20. package/controller/CHANGELOG.json +1 -0
  21. package/controller/CHANGELOG.md +671 -0
  22. package/controller/lib/defaults.js +69 -0
  23. package/controller/lib/defaults.js.map +1 -0
  24. package/controller/lib/index.js +351 -0
  25. package/controller/lib/index.js.map +1 -0
  26. package/controller/lib/utils.js +212 -0
  27. package/controller/lib/utils.js.map +1 -0
  28. package/controller/package.json +22 -0
  29. package/demo-gss.gif +0 -0
  30. package/docs/config-schema.json +1560 -0
  31. package/docs/config-schema.json.md +1114 -0
  32. package/docs/demo/config.js +8 -0
  33. package/docs/demo/generate.js +54 -0
  34. package/docs/demo/index.html +1 -0
  35. package/docs/demo/session.js +6 -0
  36. package/docs/pie-schema.json +1800 -0
  37. package/docs/pie-schema.json.md +952 -0
  38. package/lib/index.js +164 -0
  39. package/lib/index.js.map +1 -0
  40. package/lib/main.js +355 -0
  41. package/lib/main.js.map +1 -0
  42. package/lib/utils.js +515 -0
  43. package/lib/utils.js.map +1 -0
  44. package/package.json +22 -57
  45. package/dist/author/configure.d.ts +0 -26
  46. package/dist/author/configure.js +0 -190
  47. package/dist/author/correct-response.d.ts +0 -33
  48. package/dist/author/correct-response.js +0 -206
  49. package/dist/author/defaults.d.ts +0 -238
  50. package/dist/author/defaults.js +0 -339
  51. package/dist/author/graphing-config.d.ts +0 -33
  52. package/dist/author/graphing-config.js +0 -238
  53. package/dist/author/index.d.ts +0 -62
  54. package/dist/author/index.js +0 -87
  55. package/dist/author/utils.d.ts +0 -46
  56. package/dist/author/utils.js +0 -474
  57. package/dist/controller/defaults.d.ts +0 -64
  58. package/dist/controller/defaults.js +0 -54
  59. package/dist/controller/index.d.ts +0 -24
  60. package/dist/controller/index.js +0 -112
  61. package/dist/controller/utils.d.ts +0 -20
  62. package/dist/controller/utils.js +0 -42
  63. package/dist/delivery/index.d.ts +0 -22
  64. package/dist/delivery/index.js +0 -62
  65. package/dist/delivery/main.d.ts +0 -31
  66. package/dist/delivery/main.js +0 -198
  67. package/dist/delivery/utils.d.ts +0 -12
  68. package/dist/delivery/utils.js +0 -220
  69. package/dist/graphing-solution-set.css +0 -2
  70. package/dist/index.d.ts +0 -1
  71. package/dist/index.iife.d.ts +0 -8
  72. package/dist/index.iife.js +0 -404
  73. package/dist/index.js +0 -2
  74. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_DataView.js +0 -6
  75. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Hash.js +0 -16
  76. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_ListCache.js +0 -16
  77. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Map.js +0 -6
  78. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_MapCache.js +0 -16
  79. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Promise.js +0 -6
  80. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Set.js +0 -6
  81. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_SetCache.js +0 -11
  82. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Stack.js +0 -14
  83. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Symbol.js +0 -5
  84. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Uint8Array.js +0 -5
  85. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_WeakMap.js +0 -6
  86. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_apply.js +0 -12
  87. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_arrayEach.js +0 -7
  88. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_arrayFilter.js +0 -10
  89. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_arrayIncludes.js +0 -7
  90. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_arrayIncludesWith.js +0 -7
  91. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_arrayLikeKeys.js +0 -15
  92. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_arrayMap.js +0 -7
  93. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_arrayPush.js +0 -7
  94. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_arraySome.js +0 -7
  95. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_assignValue.js +0 -10
  96. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_assocIndexOf.js +0 -8
  97. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseAssign.js +0 -8
  98. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseAssignIn.js +0 -8
  99. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseAssignValue.js +0 -12
  100. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseClone.js +0 -57
  101. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseCreate.js +0 -14
  102. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseDifference.js +0 -23
  103. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseFindIndex.js +0 -7
  104. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseFlatten.js +0 -13
  105. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseGetAllKeys.js +0 -9
  106. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseGetTag.js +0 -10
  107. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIndexOf.js +0 -9
  108. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsArguments.js +0 -9
  109. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsEqual.js +0 -8
  110. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsEqualDeep.js +0 -30
  111. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsMap.js +0 -9
  112. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsNaN.js +0 -6
  113. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsNative.js +0 -11
  114. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsSet.js +0 -9
  115. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsTypedArray.js +0 -11
  116. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseKeys.js +0 -12
  117. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseKeysIn.js +0 -13
  118. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseRest.js +0 -9
  119. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseSet.js +0 -22
  120. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseSetToString.js +0 -14
  121. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseTimes.js +0 -7
  122. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseToString.js +0 -15
  123. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseUnary.js +0 -8
  124. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseUniq.js +0 -27
  125. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cacheHas.js +0 -6
  126. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_castPath.js +0 -10
  127. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cloneArrayBuffer.js +0 -8
  128. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cloneBuffer.js +0 -10
  129. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cloneDataView.js +0 -8
  130. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cloneRegExp.js +0 -8
  131. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cloneSymbol.js +0 -8
  132. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cloneTypedArray.js +0 -8
  133. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_copyArray.js +0 -8
  134. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_copyObject.js +0 -14
  135. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_copySymbols.js +0 -8
  136. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_copySymbolsIn.js +0 -8
  137. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_coreJsData.js +0 -5
  138. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_createSet.js +0 -9
  139. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_defineProperty.js +0 -10
  140. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_equalArrays.js +0 -35
  141. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_equalByTag.js +0 -35
  142. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_equalObjects.js +0 -32
  143. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_freeGlobal.js +0 -4
  144. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getAllKeys.js +0 -9
  145. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getAllKeysIn.js +0 -9
  146. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getMapData.js +0 -8
  147. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getNative.js +0 -9
  148. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getPrototype.js +0 -5
  149. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getRawTag.js +0 -14
  150. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getSymbols.js +0 -10
  151. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getSymbolsIn.js +0 -11
  152. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getTag.js +0 -23
  153. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getValue.js +0 -6
  154. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_hashClear.js +0 -7
  155. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_hashDelete.js +0 -7
  156. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_hashGet.js +0 -13
  157. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_hashHas.js +0 -9
  158. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_hashSet.js +0 -9
  159. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_initCloneArray.js +0 -8
  160. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_initCloneByTag.js +0 -33
  161. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_initCloneObject.js +0 -9
  162. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_isFlattenable.js +0 -10
  163. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_isIndex.js +0 -8
  164. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_isKey.js +0 -11
  165. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_isKeyable.js +0 -7
  166. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_isMasked.js +0 -11
  167. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_isPrototype.js +0 -8
  168. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_listCacheClear.js +0 -6
  169. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_listCacheDelete.js +0 -9
  170. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_listCacheGet.js +0 -8
  171. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_listCacheHas.js +0 -7
  172. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_listCacheSet.js +0 -8
  173. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheClear.js +0 -13
  174. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheDelete.js +0 -8
  175. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheGet.js +0 -7
  176. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheHas.js +0 -7
  177. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheSet.js +0 -8
  178. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_mapToArray.js +0 -9
  179. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_memoizeCapped.js +0 -11
  180. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_nativeCreate.js +0 -5
  181. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_nativeKeys.js +0 -5
  182. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_nativeKeysIn.js +0 -8
  183. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_nodeUtil.js +0 -9
  184. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_objectToString.js +0 -7
  185. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_overArg.js +0 -8
  186. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_overRest.js +0 -13
  187. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_root.js +0 -5
  188. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_setCacheAdd.js +0 -7
  189. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_setCacheHas.js +0 -6
  190. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_setToArray.js +0 -9
  191. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_setToString.js +0 -6
  192. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_shortOut.js +0 -14
  193. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_stackClear.js +0 -7
  194. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_stackDelete.js +0 -7
  195. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_stackGet.js +0 -6
  196. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_stackHas.js +0 -6
  197. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_stackSet.js +0 -16
  198. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_strictIndexOf.js +0 -7
  199. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_stringToPath.js +0 -10
  200. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_toKey.js +0 -10
  201. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_toSource.js +0 -15
  202. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/cloneDeep.js +0 -8
  203. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/constant.js +0 -8
  204. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/differenceWith.js +0 -12
  205. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/eq.js +0 -6
  206. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/identity.js +0 -6
  207. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isArguments.js +0 -10
  208. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isArray.js +0 -4
  209. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isArrayLike.js +0 -8
  210. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isArrayLikeObject.js +0 -8
  211. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isBuffer.js +0 -6
  212. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isEmpty.js +0 -21
  213. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isEqual.js +0 -7
  214. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isFunction.js +0 -11
  215. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isLength.js +0 -7
  216. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isMap.js +0 -7
  217. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isObject.js +0 -7
  218. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isObjectLike.js +0 -6
  219. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isSet.js +0 -7
  220. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isSymbol.js +0 -9
  221. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isTypedArray.js +0 -7
  222. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/keys.js +0 -9
  223. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/keysIn.js +0 -9
  224. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/last.js +0 -7
  225. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/memoize.js +0 -16
  226. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/noop.js +0 -4
  227. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/set.js +0 -7
  228. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/stubArray.js +0 -6
  229. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/stubFalse.js +0 -6
  230. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/toString.js +0 -7
  231. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/uniq.js +0 -7
  232. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/uniqWith.js +0 -7
@@ -0,0 +1,435 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = exports.CorrectResponse = void 0;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var React = _interopRequireWildcard(require("react"));
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+ var _styles = require("@mui/material/styles");
12
+ var _graphingSolutionSet = require("@pie-lib/graphing-solution-set");
13
+ var _configUi = require("@pie-lib/config-ui");
14
+ var _lodashEs = require("lodash-es");
15
+ var _material = require("@mui/material");
16
+ var _Radio = _interopRequireDefault(require("@mui/material/Radio"));
17
+ var _FormControlLabel = _interopRequireDefault(require("@mui/material/FormControlLabel"));
18
+ var _utils = require("./utils");
19
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
20
+ const SubtitleText = (0, _styles.styled)(_material.Typography)(({
21
+ theme
22
+ }) => ({
23
+ marginTop: theme.spacing(1.5),
24
+ marginBottom: theme.spacing(1)
25
+ }));
26
+ const RadioButtonClass = (0, _styles.styled)(_FormControlLabel.default)({
27
+ height: '20px',
28
+ width: 'fit-content',
29
+ padding: '.5rem 0'
30
+ });
31
+ const StyledRadio = (0, _styles.styled)(_Radio.default)({
32
+ color: '#000000 !important'
33
+ });
34
+ const ErrorMessage = (0, _styles.styled)('div')(({
35
+ theme
36
+ }) => ({
37
+ fontSize: theme.typography.fontSize - 2,
38
+ color: theme.palette.error.main,
39
+ paddingTop: theme.spacing(1)
40
+ }));
41
+ class CorrectResponse extends React.Component {
42
+ constructor(...args) {
43
+ super(...args);
44
+ (0, _defineProperty2.default)(this, "state", {
45
+ dialog: {
46
+ open: false
47
+ }
48
+ });
49
+ /*
50
+ * Function to handle the alert dialog open and close
51
+ * @param {boolean} open - open or close the dialog
52
+ * @param {function} callback - callback function to be called after setting the state
53
+ * */
54
+ (0, _defineProperty2.default)(this, "handleAlertDialog", (open, callback) => this.setState({
55
+ dialog: {
56
+ open
57
+ }
58
+ }, callback));
59
+ /*
60
+ * Function to change the marks on the graph
61
+ * @param {array} marks - marks to be added on the graph
62
+ * */
63
+ (0, _defineProperty2.default)(this, "changeMarks", marks => {
64
+ const {
65
+ model,
66
+ onChange
67
+ } = this.props;
68
+ const {
69
+ gssLineData
70
+ } = model;
71
+ if (gssLineData.selectedTool === 'lineA' && marks.length > 0) {
72
+ marks[0].fill = gssLineData['lineA'].lineType;
73
+ }
74
+ if (gssLineData.selectedTool === 'lineB' && marks.length > 1) {
75
+ marks[1].fill = gssLineData['lineB'].lineType;
76
+ }
77
+ if (marks.length === 0) {
78
+ gssLineData.selectedTool = 'lineA';
79
+ (0, _lodashEs.set)(model, 'gssLineData', gssLineData);
80
+ }
81
+ (0, _lodashEs.set)(model, 'answers.correctAnswer.marks', marks);
82
+ onChange(model);
83
+ });
84
+ /*
85
+ * Reset the graph to original state and remove all the elements added on the graph
86
+ * */
87
+ (0, _defineProperty2.default)(this, "onResetClick", () => {
88
+ const {
89
+ model,
90
+ onChange
91
+ } = this.props;
92
+ const {
93
+ gssLineData,
94
+ answers
95
+ } = model;
96
+ this.setState({
97
+ dialog: {
98
+ open: true,
99
+ title: 'Warning',
100
+ text: 'This will remove all the elements added on the graph and reset graph to original state. Are you sure you want to continue?',
101
+ onConfirm: () => {
102
+ // Reset the graph to original state
103
+ answers.correctAnswer.marks = [];
104
+ gssLineData.selectedTool = 'lineA';
105
+ gssLineData.lineA.lineType = 'Solid';
106
+ if (gssLineData.lineB) gssLineData.lineB.lineType = 'Solid';
107
+ (0, _lodashEs.set)(model, 'answers', answers);
108
+ (0, _lodashEs.set)(model, 'gssLineData', gssLineData);
109
+ onChange(model);
110
+ this.handleAlertDialog(false);
111
+ },
112
+ onClose: () => this.handleAlertDialog(false)
113
+ }
114
+ });
115
+ });
116
+ /*
117
+ * Function to change the number of lines on the graph
118
+ * @param {object} e - event object
119
+ * @param {number} value - number of lines to be added on the graph
120
+ * */
121
+ (0, _defineProperty2.default)(this, "changeNumberOfLines", (e, value) => {
122
+ const {
123
+ model
124
+ } = this.props;
125
+ let gssLineData = model.gssLineData;
126
+ if (gssLineData.selectedTool === 'solutionSet') {
127
+ this.setState({
128
+ dialog: {
129
+ open: true,
130
+ title: 'Warning',
131
+ text: 'Changing number of lines after adding solution set will remove added solution set. Are you sure you want to continue?',
132
+ onConfirm: () => {
133
+ this.changeLine(e, value);
134
+ this.handleAlertDialog(false);
135
+ },
136
+ onClose: () => this.handleAlertDialog(false)
137
+ }
138
+ });
139
+ } else {
140
+ this.changeLine(e, value);
141
+ }
142
+ });
143
+ /*
144
+ * Function to change the number of line on the graph
145
+ * @param {object} e - event object
146
+ * @param {number} value - number of lines to be added on the graph
147
+ * */
148
+ (0, _defineProperty2.default)(this, "changeLine", (e, value) => {
149
+ const {
150
+ model,
151
+ onChange
152
+ } = this.props;
153
+ const {
154
+ answers
155
+ } = model;
156
+ let gssLineData = model.gssLineData;
157
+ //remove polygon from correct answer
158
+ answers.correctAnswer.marks = answers.correctAnswer.marks.filter(mark => mark.type !== 'polygon');
159
+ if (Number.parseInt(value) === 1) {
160
+ //remove lineB from gssLineData and correct answer
161
+ delete gssLineData.lineB;
162
+ if (answers.correctAnswer.marks.length > 1) answers.correctAnswer.marks.pop();
163
+ gssLineData.numberOfLines = 1;
164
+ gssLineData.selectedTool = 'lineA';
165
+ } else {
166
+ gssLineData.numberOfLines = 2;
167
+ if (answers.correctAnswer.marks.length > 0) gssLineData.selectedTool = 'lineB';
168
+ gssLineData.lineB = {
169
+ lineType: 'Solid'
170
+ };
171
+ }
172
+ //reset solution set
173
+ (0, _lodashEs.set)(model, 'answers', answers);
174
+ (0, _lodashEs.set)(model, 'gssLineData', gssLineData);
175
+ onChange(model);
176
+ });
177
+ /*
178
+ * Function to handle the changes to solution set on the graph
179
+ * @param {object} point - point selected on the graph
180
+ * */
181
+ (0, _defineProperty2.default)(this, "onSolutionSetSelected", point => {
182
+ const {
183
+ model,
184
+ onChange
185
+ } = this.props;
186
+ const {
187
+ answers,
188
+ gssLineData
189
+ } = model;
190
+ for (const section of gssLineData.sections) {
191
+ //check if the point is inside the polygon
192
+ if ((0, _utils.pointInsidePolygon)(point, section)) {
193
+ let polygon = {
194
+ points: section,
195
+ building: false,
196
+ type: 'polygon',
197
+ closed: true,
198
+ isSolution: true
199
+ };
200
+ //remove old answer section from correct answer
201
+ answers.correctAnswer.marks = answers.correctAnswer.marks.filter(mark => mark.type !== 'polygon');
202
+ //add new answer section to correct answer
203
+ answers.correctAnswer.marks.push(polygon);
204
+ break;
205
+ }
206
+ }
207
+ (0, _lodashEs.set)(model, 'answers', answers);
208
+ onChange(model);
209
+ });
210
+ /*
211
+ * Function to handle the changes to line data on the graph
212
+ * @param {object} gssLineData - line data on the graph
213
+ * @param {string} oldSelectedTool - old selected tool
214
+ * */
215
+ (0, _defineProperty2.default)(this, "onChangeGssLineData", (gssLineData, oldSelectedTool) => {
216
+ const {
217
+ model
218
+ } = this.props;
219
+ const {
220
+ answers,
221
+ domain,
222
+ range
223
+ } = model;
224
+ //handle solution set changes
225
+ if (gssLineData.selectedTool === 'solutionSet') {
226
+ let lines = answers.correctAnswer.marks.filter(mark => mark.type !== 'polygon');
227
+ if (!(0, _utils.checkIfLinesAreAdded)(gssLineData, lines)) {
228
+ gssLineData.selectedTool = oldSelectedTool;
229
+ this.setState({
230
+ dialog: {
231
+ open: true,
232
+ title: 'Warning',
233
+ text: 'Please define the line(s) and then select a solution set for the item.',
234
+ onConfirm: () => this.handleAlertDialog(false)
235
+ }
236
+ });
237
+ } else {
238
+ let lines = answers.correctAnswer.marks.filter(mark => mark.type !== 'polygon');
239
+ gssLineData = (0, _utils.findSectionsInSolutionSet)(gssLineData, lines, domain, range);
240
+ }
241
+ this.handleGssLineDataChange(gssLineData, answers);
242
+ } else {
243
+ let polygons = answers.correctAnswer.marks.filter(mark => mark.type === 'polygon');
244
+ if (oldSelectedTool === 'solutionSet' && polygons.length > 0) {
245
+ this.setState({
246
+ dialog: {
247
+ open: true,
248
+ title: 'Warning',
249
+ text: 'Changing a line after adding a solution set will clear your selected solution set. Click \'Clear Solution Set\' to change the line. Otherwise, click \'Cancel\'.',
250
+ onConfirm: () => {
251
+ answers.correctAnswer.marks = answers.correctAnswer.marks.filter(mark => mark.type !== 'polygon');
252
+ this.handleGssLineDataChange(gssLineData, answers);
253
+ this.handleAlertDialog(false);
254
+ },
255
+ onConfirmText: 'CLEAR SOLUTION SET',
256
+ onClose: () => {
257
+ gssLineData.selectedTool = oldSelectedTool;
258
+ this.handleGssLineDataChange(gssLineData, answers);
259
+ this.handleAlertDialog(false);
260
+ }
261
+ }
262
+ });
263
+ } else {
264
+ this.handleGssLineDataChange(gssLineData, answers);
265
+ }
266
+ }
267
+ });
268
+ /*
269
+ * Function to handle the changes to line data on the graph
270
+ * @param {object} gssLineData - line data on the graph
271
+ * @param {object} answers - correct answer
272
+ * */
273
+ (0, _defineProperty2.default)(this, "handleGssLineDataChange", (gssLineData, answers) => {
274
+ const {
275
+ model,
276
+ onChange
277
+ } = this.props;
278
+ //handle line type changes from solid to dashed and vice versa
279
+ if (answers.correctAnswer.marks.length > 0 && answers.correctAnswer.marks[0] && gssLineData.lineA) {
280
+ answers.correctAnswer.marks[0].fill = gssLineData.lineA.lineType;
281
+ }
282
+ if (answers.correctAnswer.marks.length > 1 && answers.correctAnswer.marks[1] && gssLineData.lineB) {
283
+ answers.correctAnswer.marks[1].fill = gssLineData.lineB.lineType;
284
+ }
285
+ //check if line is added to the graph before switching to lineB
286
+ if (gssLineData.selectedTool === 'lineB' && answers.correctAnswer.marks.length === 0 || gssLineData.selectedTool === 'lineB' && answers.correctAnswer.marks[0].building) {
287
+ this.setState({
288
+ dialog: {
289
+ open: true,
290
+ title: 'Warning',
291
+ text: 'Please add Line A to the graph before adding Line B',
292
+ onConfirm: () => this.handleAlertDialog(false)
293
+ }
294
+ });
295
+ gssLineData.selectedTool = 'lineA';
296
+ }
297
+ //check if lineB is added to the graph before switching to lineA
298
+ if (gssLineData.selectedTool === 'lineA' && answers.correctAnswer.marks.length > 1 && answers.correctAnswer.marks[1].building) {
299
+ this.setState({
300
+ dialog: {
301
+ open: true,
302
+ title: 'Warning',
303
+ text: 'Please add Line B to the graph before switching to Line A',
304
+ onConfirm: () => this.handleAlertDialog(false)
305
+ }
306
+ });
307
+ gssLineData.selectedTool = 'lineB';
308
+ }
309
+ (0, _lodashEs.set)(model, 'gssLineData', gssLineData);
310
+ (0, _lodashEs.set)(model, 'answers', answers);
311
+ onChange(model);
312
+ });
313
+ /*
314
+ * Function to update the model
315
+ * @param {object} props - updated props
316
+ * */
317
+ (0, _defineProperty2.default)(this, "updateModel", props => {
318
+ const {
319
+ model,
320
+ onChange
321
+ } = this.props;
322
+ onChange({
323
+ ...model,
324
+ ...props
325
+ });
326
+ });
327
+ }
328
+ /*
329
+ * Render the component
330
+ * */
331
+ render() {
332
+ const {
333
+ errors,
334
+ model,
335
+ mathMlOptions = {}
336
+ } = this.props;
337
+ const {
338
+ dialog
339
+ } = this.state;
340
+ //get the default values to GssLineData
341
+ const {
342
+ gssLineData = {
343
+ numberOfLines: 1,
344
+ selectedTool: 'lineA',
345
+ lineA: {
346
+ lineType: 'Solid'
347
+ }
348
+ },
349
+ arrows,
350
+ coordinatesOnHover,
351
+ domain,
352
+ graph = {},
353
+ labels,
354
+ labelsEnabled,
355
+ range,
356
+ title,
357
+ titleEnabled,
358
+ answers
359
+ } = model || {};
360
+ const {
361
+ correctAnswerErrors = ''
362
+ } = errors || {};
363
+ return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(_material.Typography, {
364
+ component: "div",
365
+ variant: "h6"
366
+ }, "Define Line Type(s) and Correct Response"), /*#__PURE__*/React.createElement(SubtitleText, {
367
+ component: "div",
368
+ variant: "body1"
369
+ }, "Use this interface to choose how many lines students will be able to draw, and to define the correct answer."), /*#__PURE__*/React.createElement(SubtitleText, {
370
+ component: "div",
371
+ variant: "body1"
372
+ }, "Choose Number of Lines"), /*#__PURE__*/React.createElement(_material.RadioGroup, {
373
+ name: "numberOfLines",
374
+ value: gssLineData.numberOfLines,
375
+ onChange: this.changeNumberOfLines
376
+ }, /*#__PURE__*/React.createElement(RadioButtonClass, {
377
+ value: "1",
378
+ control: /*#__PURE__*/React.createElement(StyledRadio, {
379
+ checked: gssLineData.numberOfLines === 1
380
+ }),
381
+ label: "One"
382
+ }), /*#__PURE__*/React.createElement(RadioButtonClass, {
383
+ value: "2",
384
+ control: /*#__PURE__*/React.createElement(StyledRadio, {
385
+ checked: gssLineData.numberOfLines === 2
386
+ }),
387
+ label: "Two"
388
+ })), /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_graphingSolutionSet.GraphContainer, {
389
+ style: correctAnswerErrors['correctAnswer'] && {
390
+ border: '2px solid red'
391
+ },
392
+ axesSettings: {
393
+ includeArrows: arrows
394
+ },
395
+ backgroundMarks: [],
396
+ coordinatesOnHover: coordinatesOnHover,
397
+ disabledLabels: true,
398
+ disabledTitle: true,
399
+ domain: domain,
400
+ draggableTools: true,
401
+ labels: labels,
402
+ marks: answers && answers.correctAnswer && answers.correctAnswer.marks ? answers.correctAnswer.marks : [],
403
+ onChangeMarks: newMarks => this.changeMarks(newMarks),
404
+ onCustomReset: this.onResetClick,
405
+ range: range,
406
+ showLabels: labelsEnabled,
407
+ showTitle: titleEnabled,
408
+ size: {
409
+ width: graph.width,
410
+ height: graph.height
411
+ },
412
+ title: title,
413
+ gssLineData: gssLineData,
414
+ onChangeGssLineData: this.onChangeGssLineData,
415
+ onSolutionSetSelected: this.onSolutionSetSelected,
416
+ toolbarTools: ['line', 'polygon'],
417
+ mathMlOptions: mathMlOptions
418
+ }), correctAnswerErrors['correctAnswer'] && /*#__PURE__*/React.createElement(ErrorMessage, null, correctAnswerErrors['correctAnswer'])), /*#__PURE__*/React.createElement(_configUi.AlertDialog, {
419
+ open: dialog.open,
420
+ title: dialog.title,
421
+ text: dialog.text,
422
+ onClose: dialog.onClose,
423
+ onConfirm: dialog.onConfirm,
424
+ onConfirmText: dialog.onConfirmText ? dialog.onConfirmText : 'OK'
425
+ }));
426
+ }
427
+ }
428
+ exports.CorrectResponse = CorrectResponse;
429
+ (0, _defineProperty2.default)(CorrectResponse, "propTypes", {
430
+ errors: _propTypes.default.object,
431
+ model: _propTypes.default.object.isRequired,
432
+ onChange: _propTypes.default.func.isRequired
433
+ });
434
+ var _default = exports.default = CorrectResponse;
435
+ //# sourceMappingURL=correct-response.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"correct-response.js","names":["React","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_styles","_graphingSolutionSet","_configUi","_lodashEs","_material","_Radio","_FormControlLabel","_utils","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","SubtitleText","styled","Typography","theme","marginTop","spacing","marginBottom","RadioButtonClass","FormControlLabel","height","width","padding","StyledRadio","Radio","color","ErrorMessage","fontSize","typography","palette","error","main","paddingTop","CorrectResponse","Component","constructor","args","_defineProperty2","dialog","open","callback","setState","marks","model","onChange","props","gssLineData","selectedTool","length","fill","lineType","answers","title","text","onConfirm","correctAnswer","lineA","lineB","handleAlertDialog","onClose","value","changeLine","filter","mark","type","Number","parseInt","pop","numberOfLines","point","section","sections","pointInsidePolygon","polygon","points","building","closed","isSolution","push","oldSelectedTool","domain","range","lines","checkIfLinesAreAdded","findSectionsInSolutionSet","handleGssLineDataChange","polygons","onConfirmText","render","errors","mathMlOptions","state","arrows","coordinatesOnHover","graph","labels","labelsEnabled","titleEnabled","correctAnswerErrors","createElement","component","variant","RadioGroup","name","changeNumberOfLines","control","checked","label","Fragment","GraphContainer","style","border","axesSettings","includeArrows","backgroundMarks","disabledLabels","disabledTitle","draggableTools","onChangeMarks","newMarks","changeMarks","onCustomReset","onResetClick","showLabels","showTitle","size","onChangeGssLineData","onSolutionSetSelected","toolbarTools","AlertDialog","exports","PropTypes","object","isRequired","func","_default"],"sources":["../src/correct-response.jsx"],"sourcesContent":["import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport { GraphContainer as Graph } from '@pie-lib/graphing-solution-set';\nimport { AlertDialog } from '@pie-lib/config-ui';\nimport { set } from 'lodash-es';\nimport { RadioGroup, Typography } from '@mui/material';\nimport Radio from '@mui/material/Radio';\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport { findSectionsInSolutionSet, pointInsidePolygon, checkIfLinesAreAdded } from './utils';\n\nconst SubtitleText = styled(Typography)(({ theme }) => ({\n marginTop: theme.spacing(1.5),\n marginBottom: theme.spacing(1),\n}));\n\nconst RadioButtonClass = styled(FormControlLabel)({\n height: '20px',\n width: 'fit-content',\n padding: '.5rem 0',\n});\n\nconst StyledRadio = styled(Radio)({\n color: '#000000 !important',\n});\n\nconst ErrorMessage = styled('div')(({ theme }) => ({\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing(1),\n}));\n\nexport class CorrectResponse extends React.Component {\n static propTypes = {\n errors: PropTypes.object,\n model: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n };\n\n state = {\n dialog: {\n open: false,\n },\n };\n\n /*\n * Function to handle the alert dialog open and close\n * @param {boolean} open - open or close the dialog\n * @param {function} callback - callback function to be called after setting the state\n * */\n handleAlertDialog = (open, callback) =>\n this.setState(\n {\n dialog: { open },\n },\n callback,\n );\n\n /*\n * Function to change the marks on the graph\n * @param {array} marks - marks to be added on the graph\n * */\n changeMarks = (marks) => {\n const { model, onChange } = this.props;\n const { gssLineData } = model;\n if (gssLineData.selectedTool === 'lineA' && marks.length > 0) {\n marks[0].fill = gssLineData['lineA'].lineType;\n }\n if (gssLineData.selectedTool === 'lineB' && marks.length > 1) {\n marks[1].fill = gssLineData['lineB'].lineType;\n }\n if (marks.length === 0) {\n gssLineData.selectedTool = 'lineA';\n set(model, 'gssLineData', gssLineData);\n }\n set(model, 'answers.correctAnswer.marks', marks);\n onChange(model);\n };\n\n /*\n * Reset the graph to original state and remove all the elements added on the graph\n * */\n onResetClick = () => {\n const { model, onChange } = this.props;\n const { gssLineData, answers } = model;\n this.setState({\n dialog: {\n open: true,\n title: 'Warning',\n text: 'This will remove all the elements added on the graph and reset graph to original state. Are you sure you want to continue?',\n onConfirm: () => {\n // Reset the graph to original state\n answers.correctAnswer.marks = [];\n gssLineData.selectedTool = 'lineA';\n gssLineData.lineA.lineType = 'Solid';\n if (gssLineData.lineB) gssLineData.lineB.lineType = 'Solid';\n set(model, 'answers', answers);\n set(model, 'gssLineData', gssLineData);\n onChange(model);\n this.handleAlertDialog(false);\n },\n onClose: () => this.handleAlertDialog(false),\n },\n });\n };\n\n /*\n * Function to change the number of lines on the graph\n * @param {object} e - event object\n * @param {number} value - number of lines to be added on the graph\n * */\n changeNumberOfLines = (e, value) => {\n const { model } = this.props;\n let gssLineData = model.gssLineData;\n if (gssLineData.selectedTool === 'solutionSet') {\n this.setState({\n dialog: {\n open: true,\n title: 'Warning',\n text: 'Changing number of lines after adding solution set will remove added solution set. Are you sure you want to continue?',\n onConfirm: () => {\n this.changeLine(e, value);\n this.handleAlertDialog(false);\n },\n onClose: () => this.handleAlertDialog(false),\n },\n });\n } else {\n this.changeLine(e, value);\n }\n };\n\n /*\n * Function to change the number of line on the graph\n * @param {object} e - event object\n * @param {number} value - number of lines to be added on the graph\n * */\n changeLine = (e, value) => {\n const { model, onChange } = this.props;\n const { answers } = model;\n let gssLineData = model.gssLineData;\n //remove polygon from correct answer\n answers.correctAnswer.marks = answers.correctAnswer.marks.filter((mark) => mark.type !== 'polygon');\n if (Number.parseInt(value) === 1) {\n //remove lineB from gssLineData and correct answer\n delete gssLineData.lineB;\n if (answers.correctAnswer.marks.length > 1) answers.correctAnswer.marks.pop();\n gssLineData.numberOfLines = 1;\n gssLineData.selectedTool = 'lineA';\n } else {\n gssLineData.numberOfLines = 2;\n if (answers.correctAnswer.marks.length > 0) gssLineData.selectedTool = 'lineB';\n gssLineData.lineB = {\n lineType: 'Solid',\n };\n }\n //reset solution set\n set(model, 'answers', answers);\n set(model, 'gssLineData', gssLineData);\n onChange(model);\n };\n\n /*\n * Function to handle the changes to solution set on the graph\n * @param {object} point - point selected on the graph\n * */\n onSolutionSetSelected = (point) => {\n const { model, onChange } = this.props;\n const { answers, gssLineData } = model;\n for (const section of gssLineData.sections) {\n //check if the point is inside the polygon\n if (pointInsidePolygon(point, section)) {\n let polygon = {\n points: section,\n building: false,\n type: 'polygon',\n closed: true,\n isSolution: true,\n };\n //remove old answer section from correct answer\n answers.correctAnswer.marks = answers.correctAnswer.marks.filter((mark) => mark.type !== 'polygon');\n //add new answer section to correct answer\n answers.correctAnswer.marks.push(polygon);\n break;\n }\n }\n set(model, 'answers', answers);\n onChange(model);\n };\n\n /*\n * Function to handle the changes to line data on the graph\n * @param {object} gssLineData - line data on the graph\n * @param {string} oldSelectedTool - old selected tool\n * */\n onChangeGssLineData = (gssLineData, oldSelectedTool) => {\n const { model } = this.props;\n const { answers, domain, range } = model;\n //handle solution set changes\n if (gssLineData.selectedTool === 'solutionSet') {\n let lines = answers.correctAnswer.marks.filter((mark) => mark.type !== 'polygon');\n if (!checkIfLinesAreAdded(gssLineData, lines)) {\n gssLineData.selectedTool = oldSelectedTool;\n this.setState({\n dialog: {\n open: true,\n title: 'Warning',\n text: 'Please define the line(s) and then select a solution set for the item.',\n onConfirm: () => this.handleAlertDialog(false),\n },\n });\n } else {\n let lines = answers.correctAnswer.marks.filter((mark) => mark.type !== 'polygon');\n gssLineData = findSectionsInSolutionSet(gssLineData, lines, domain, range);\n }\n this.handleGssLineDataChange(gssLineData, answers);\n } else {\n let polygons = answers.correctAnswer.marks.filter((mark) => mark.type === 'polygon');\n if (oldSelectedTool === 'solutionSet' && polygons.length > 0) {\n this.setState({\n dialog: {\n open: true,\n title: 'Warning',\n text: 'Changing a line after adding a solution set will clear your selected solution set. Click \\'Clear Solution Set\\' to change the line. Otherwise, click \\'Cancel\\'.',\n onConfirm: () => {\n answers.correctAnswer.marks = answers.correctAnswer.marks.filter((mark) => mark.type !== 'polygon');\n this.handleGssLineDataChange(gssLineData, answers);\n this.handleAlertDialog(false);\n },\n onConfirmText: 'CLEAR SOLUTION SET',\n onClose: () => {\n gssLineData.selectedTool = oldSelectedTool;\n this.handleGssLineDataChange(gssLineData, answers);\n this.handleAlertDialog(false);\n },\n },\n });\n } else {\n this.handleGssLineDataChange(gssLineData, answers);\n }\n }\n };\n\n /*\n * Function to handle the changes to line data on the graph\n * @param {object} gssLineData - line data on the graph\n * @param {object} answers - correct answer\n * */\n handleGssLineDataChange = (gssLineData, answers) => {\n const { model, onChange } = this.props;\n //handle line type changes from solid to dashed and vice versa\n if (answers.correctAnswer.marks.length > 0 && answers.correctAnswer.marks[0] && gssLineData.lineA) {\n answers.correctAnswer.marks[0].fill = gssLineData.lineA.lineType;\n }\n if (answers.correctAnswer.marks.length > 1 && answers.correctAnswer.marks[1] && gssLineData.lineB) {\n answers.correctAnswer.marks[1].fill = gssLineData.lineB.lineType;\n }\n //check if line is added to the graph before switching to lineB\n if (\n (gssLineData.selectedTool === 'lineB' && answers.correctAnswer.marks.length === 0) ||\n (gssLineData.selectedTool === 'lineB' && answers.correctAnswer.marks[0].building)\n ) {\n this.setState({\n dialog: {\n open: true,\n title: 'Warning',\n text: 'Please add Line A to the graph before adding Line B',\n onConfirm: () => this.handleAlertDialog(false),\n },\n });\n gssLineData.selectedTool = 'lineA';\n }\n //check if lineB is added to the graph before switching to lineA\n if (\n gssLineData.selectedTool === 'lineA' &&\n answers.correctAnswer.marks.length > 1 &&\n answers.correctAnswer.marks[1].building\n ) {\n this.setState({\n dialog: {\n open: true,\n title: 'Warning',\n text: 'Please add Line B to the graph before switching to Line A',\n onConfirm: () => this.handleAlertDialog(false),\n },\n });\n gssLineData.selectedTool = 'lineB';\n }\n set(model, 'gssLineData', gssLineData);\n set(model, 'answers', answers);\n onChange(model);\n };\n\n /*\n * Function to update the model\n * @param {object} props - updated props\n * */\n updateModel = (props) => {\n const { model, onChange } = this.props;\n onChange({\n ...model,\n ...props,\n });\n };\n\n /*\n * Render the component\n * */\n render() {\n const { errors, model, mathMlOptions = {} } = this.props;\n const { dialog } = this.state;\n //get the default values to GssLineData\n const {\n gssLineData = {\n numberOfLines: 1,\n selectedTool: 'lineA',\n lineA: {\n lineType: 'Solid',\n },\n },\n arrows,\n coordinatesOnHover,\n domain,\n graph = {},\n labels,\n labelsEnabled,\n range,\n title,\n titleEnabled,\n answers,\n } = model || {};\n const { correctAnswerErrors = '' } = errors || {};\n return (\n <div>\n <Typography component=\"div\" variant=\"h6\">\n Define Line Type(s) and Correct Response\n </Typography>\n <SubtitleText component=\"div\" variant=\"body1\">\n Use this interface to choose how many lines students will be able to draw, and to define the correct answer.\n </SubtitleText>\n <SubtitleText component=\"div\" variant=\"body1\">\n Choose Number of Lines\n </SubtitleText>\n <RadioGroup name=\"numberOfLines\" value={gssLineData.numberOfLines} onChange={this.changeNumberOfLines}>\n <RadioButtonClass\n value=\"1\"\n control={<StyledRadio checked={gssLineData.numberOfLines === 1} />}\n label=\"One\"\n />\n <RadioButtonClass\n value=\"2\"\n control={<StyledRadio checked={gssLineData.numberOfLines === 2} />}\n label=\"Two\"\n />\n </RadioGroup>\n <React.Fragment>\n <Graph\n style={correctAnswerErrors['correctAnswer'] && { border: '2px solid red' }}\n axesSettings={{ includeArrows: arrows }}\n backgroundMarks={[]}\n coordinatesOnHover={coordinatesOnHover}\n disabledLabels={true}\n disabledTitle={true}\n domain={domain}\n draggableTools={true}\n labels={labels}\n marks={answers && answers.correctAnswer && answers.correctAnswer.marks ? answers.correctAnswer.marks : []}\n onChangeMarks={(newMarks) => this.changeMarks(newMarks)}\n onCustomReset={this.onResetClick}\n range={range}\n showLabels={labelsEnabled}\n showTitle={titleEnabled}\n size={{ width: graph.width, height: graph.height }}\n title={title}\n gssLineData={gssLineData}\n onChangeGssLineData={this.onChangeGssLineData}\n onSolutionSetSelected={this.onSolutionSetSelected}\n toolbarTools={['line', 'polygon']}\n mathMlOptions={mathMlOptions}\n />\n {correctAnswerErrors['correctAnswer'] && (\n <ErrorMessage>{correctAnswerErrors['correctAnswer']}</ErrorMessage>\n )}\n </React.Fragment>\n <AlertDialog\n open={dialog.open}\n title={dialog.title}\n text={dialog.text}\n onClose={dialog.onClose}\n onConfirm={dialog.onConfirm}\n onConfirmText={dialog.onConfirmText ? dialog.onConfirmText : 'OK'}\n />\n </div>\n );\n }\n}\n\nexport default CorrectResponse;\n"],"mappings":"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","ignoreList":[]}