@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
package/lib/index.js ADDED
@@ -0,0 +1,164 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ Object.defineProperty(exports, "Component", {
8
+ enumerable: true,
9
+ get: function () {
10
+ return _main.default;
11
+ }
12
+ });
13
+ exports.default = void 0;
14
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
+ var _react = _interopRequireDefault(require("react"));
16
+ var _client = require("react-dom/client");
17
+ var _piePlayerEvents = require("@pie-framework/pie-player-events");
18
+ var _mathRendering = require("@pie-lib/math-rendering");
19
+ var _utils = require("./utils");
20
+ var _main = _interopRequireDefault(require("./main"));
21
+ class Graphing extends HTMLElement {
22
+ constructor() {
23
+ super();
24
+ /*
25
+ * Is complete function
26
+ * @param {object} answer - Answer object
27
+ * */
28
+ (0, _defineProperty2.default)(this, "isComplete", answer => Array.isArray(answer) && answer.length > 0);
29
+ /*
30
+ * Callback function to change answers
31
+ * @param {object} answer - Answer object
32
+ * @param {boolean} isUndoOperation - Boolean value to check if undo operation is performed
33
+ * */
34
+ (0, _defineProperty2.default)(this, "changeAnswers", (answer, isUndoOperation) => {
35
+ // avoid removeInvalidObjects when undo or redo operations are executed
36
+ // in order to preserve the logic of undo and redo
37
+ const {
38
+ gssData
39
+ } = this._model;
40
+ if (gssData.selectedTool === 'lineA' && answer.length > 0) {
41
+ answer[0].fill = gssData['lineA'].lineType;
42
+ }
43
+ if (gssData.selectedTool === 'lineB' && answer.length > 1) {
44
+ answer[1].fill = gssData['lineB'].lineType;
45
+ }
46
+ if (answer.length === 0) {
47
+ gssData.selectedTool = 'lineA';
48
+ this._model.gssData = gssData;
49
+ }
50
+ if (!isUndoOperation) {
51
+ this._session.answer = (0, _utils.removeInvalidAnswers)(answer);
52
+ } else {
53
+ this._session.answer = answer;
54
+ }
55
+ this.dispatchEvent(new _piePlayerEvents.SessionChangedEvent(this.tagName.toLowerCase(), this.isComplete(this._session.answer)));
56
+ this._render();
57
+ });
58
+ /*
59
+ * Function to set gssData object and session object
60
+ * @param {object} gssData - GSS Data object
61
+ * @param {object} session - Session object
62
+ * */
63
+ (0, _defineProperty2.default)(this, "setGssData", (gssData, session) => {
64
+ this._model.gssData = gssData;
65
+ this._session = session;
66
+ this.dispatchEvent(new _piePlayerEvents.SessionChangedEvent(this.tagName.toLowerCase(), this.isComplete(this._session.answer)));
67
+ this._render();
68
+ });
69
+ this._root = null;
70
+ }
71
+
72
+ /*
73
+ * Function to set model
74
+ * @param {object} m - Model object
75
+ * */
76
+ set model(m) {
77
+ this._model = m;
78
+ this._render();
79
+ }
80
+
81
+ /*
82
+ * Function to set session
83
+ * @param {object} s - Session object
84
+ * */
85
+ set session(s) {
86
+ this._session = s;
87
+ if (!this._session.answer) {
88
+ this._session.answer = [];
89
+ }
90
+ const {
91
+ answer
92
+ } = this._session || {};
93
+ const {
94
+ gssLineData,
95
+ domain,
96
+ range
97
+ } = this._model;
98
+ let section = answer && answer.filter(mark => mark.type === 'polygon').length > 0;
99
+ if (gssLineData.numberOfLines === 1) {
100
+ this._model.gssData = {
101
+ numberOfLines: 1,
102
+ selectedTool: section ? 'solutionSet' : 'lineA',
103
+ sections: [],
104
+ lineA: {
105
+ lineType: answer && answer.length > 0 ? answer[0].fill : 'Solid'
106
+ }
107
+ };
108
+ } else {
109
+ this._model.gssData = {
110
+ numberOfLines: 2,
111
+ selectedTool: section ? 'solutionSet' : 'lineA',
112
+ sections: [],
113
+ lineA: {
114
+ lineType: answer && answer.length > 0 ? answer[0].fill : 'Solid'
115
+ },
116
+ lineB: {
117
+ lineType: answer && answer.length > 1 ? answer[1].fill : 'Solid'
118
+ }
119
+ };
120
+ }
121
+ if (section) {
122
+ this._model.gssData = (0, _utils.findSectionsInSolutionSet)(this._model.gssData, answer, domain, range);
123
+ }
124
+ this._render();
125
+ }
126
+
127
+ /*
128
+ * Function to get session
129
+ * */
130
+ get session() {
131
+ return this._session;
132
+ }
133
+ connectedCallback() {
134
+ this._render();
135
+ }
136
+ /*
137
+ * Render function
138
+ * */
139
+ _render() {
140
+ if (!this._model || !this._session) {
141
+ return;
142
+ }
143
+ const el = /*#__PURE__*/_react.default.createElement(_main.default, {
144
+ model: this._model,
145
+ session: this._session,
146
+ onAnswersChange: this.changeAnswers,
147
+ setGssData: this.setGssData
148
+ });
149
+ if (!this._root) {
150
+ this._root = (0, _client.createRoot)(this);
151
+ }
152
+ this._root.render(el);
153
+ queueMicrotask(() => {
154
+ (0, _mathRendering.renderMath)(this);
155
+ });
156
+ }
157
+ disconnectedCallback() {
158
+ if (this._root) {
159
+ this._root.unmount();
160
+ }
161
+ }
162
+ }
163
+ exports.default = Graphing;
164
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_client","_piePlayerEvents","_mathRendering","_utils","_main","Graphing","HTMLElement","constructor","_defineProperty2","default","answer","Array","isArray","length","isUndoOperation","gssData","_model","selectedTool","fill","lineType","_session","removeInvalidAnswers","dispatchEvent","SessionChangedEvent","tagName","toLowerCase","isComplete","_render","session","_root","model","m","s","gssLineData","domain","range","section","filter","mark","type","numberOfLines","sections","lineA","lineB","findSectionsInSolutionSet","connectedCallback","el","React","createElement","Main","onAnswersChange","changeAnswers","setGssData","createRoot","render","queueMicrotask","renderMath","disconnectedCallback","unmount","exports"],"sources":["../src/index.js"],"sourcesContent":["import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { SessionChangedEvent } from '@pie-framework/pie-player-events';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport { findSectionsInSolutionSet, removeInvalidAnswers } from './utils';\nimport Main from './main';\n\nexport { Main as Component };\n\nexport default class Graphing extends HTMLElement {\n constructor() {\n super();\n this._root = null;\n }\n\n /*\n * Function to set model\n * @param {object} m - Model object\n * */\n set model(m) {\n this._model = m;\n this._render();\n }\n\n /*\n * Function to set session\n * @param {object} s - Session object\n * */\n set session(s) {\n this._session = s;\n if (!this._session.answer) {\n this._session.answer = [];\n }\n const { answer } = this._session || {};\n const { gssLineData, domain, range } = this._model;\n let section = answer && answer.filter((mark) => mark.type === 'polygon').length > 0;\n if (gssLineData.numberOfLines === 1) {\n this._model.gssData = {\n numberOfLines: 1,\n selectedTool: section ? 'solutionSet' : 'lineA',\n sections: [],\n lineA: {\n lineType: answer && answer.length > 0 ? answer[0].fill : 'Solid',\n },\n };\n } else {\n this._model.gssData = {\n numberOfLines: 2,\n selectedTool: section ? 'solutionSet' : 'lineA',\n sections: [],\n lineA: {\n lineType: answer && answer.length > 0 ? answer[0].fill : 'Solid',\n },\n lineB: {\n lineType: answer && answer.length > 1 ? answer[1].fill : 'Solid',\n },\n };\n }\n if (section) {\n this._model.gssData = findSectionsInSolutionSet(this._model.gssData, answer, domain, range);\n }\n this._render();\n }\n\n /*\n * Function to get session\n * */\n get session() {\n return this._session;\n }\n\n connectedCallback() {\n this._render();\n }\n\n /*\n * Is complete function\n * @param {object} answer - Answer object\n * */\n isComplete = (answer) => Array.isArray(answer) && answer.length > 0;\n\n /*\n * Callback function to change answers\n * @param {object} answer - Answer object\n * @param {boolean} isUndoOperation - Boolean value to check if undo operation is performed\n * */\n changeAnswers = (answer, isUndoOperation) => {\n // avoid removeInvalidObjects when undo or redo operations are executed\n // in order to preserve the logic of undo and redo\n const { gssData } = this._model;\n if (gssData.selectedTool === 'lineA' && answer.length > 0) {\n answer[0].fill = gssData['lineA'].lineType;\n }\n if (gssData.selectedTool === 'lineB' && answer.length > 1) {\n answer[1].fill = gssData['lineB'].lineType;\n }\n if (answer.length === 0) {\n gssData.selectedTool = 'lineA';\n this._model.gssData = gssData;\n }\n if (!isUndoOperation) {\n this._session.answer = removeInvalidAnswers(answer);\n } else {\n this._session.answer = answer;\n }\n this.dispatchEvent(new SessionChangedEvent(this.tagName.toLowerCase(), this.isComplete(this._session.answer)));\n this._render();\n };\n\n /*\n * Function to set gssData object and session object\n * @param {object} gssData - GSS Data object\n * @param {object} session - Session object\n * */\n setGssData = (gssData, session) => {\n this._model.gssData = gssData;\n this._session = session;\n this.dispatchEvent(new SessionChangedEvent(this.tagName.toLowerCase(), this.isComplete(this._session.answer)));\n this._render();\n };\n\n /*\n * Render function\n * */\n _render() {\n if (!this._model || !this._session) {\n return;\n }\n const el = React.createElement(Main, {\n model: this._model,\n session: this._session,\n onAnswersChange: this.changeAnswers,\n setGssData: this.setGssData,\n });\n if (!this._root) {\n this._root = createRoot(this);\n }\n this._root.render(el);\n queueMicrotask(() => {\n renderMath(this);\n });\n }\n\n disconnectedCallback() {\n if (this._root) {\n this._root.unmount();\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
package/lib/main.js ADDED
@@ -0,0 +1,355 @@
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.Main = void 0;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _react = _interopRequireDefault(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 _renderUi = require("@pie-lib/render-ui");
14
+ var _correctAnswerToggle = _interopRequireDefault(require("@pie-lib/correct-answer-toggle"));
15
+ var _utils = require("./utils");
16
+ var _configUi = require("@pie-lib/config-ui");
17
+ const MainContainer = (0, _styles.styled)(_renderUi.UiLayout)({
18
+ color: _renderUi.color.text(),
19
+ backgroundColor: _renderUi.color.background()
20
+ });
21
+ const TeacherInstructions = (0, _styles.styled)(_renderUi.Collapsible)(({
22
+ theme
23
+ }) => ({
24
+ marginBottom: theme.spacing(2)
25
+ }));
26
+ const Graph = (0, _styles.styled)(_graphingSolutionSet.GraphContainer)(({
27
+ theme
28
+ }) => ({
29
+ marginTop: theme.spacing(2),
30
+ marginBottom: theme.spacing(2)
31
+ }));
32
+ class Main extends _react.default.Component {
33
+ constructor(...args) {
34
+ super(...args);
35
+ (0, _defineProperty2.default)(this, "state", {
36
+ showingCorrect: false,
37
+ dialog: {
38
+ open: false
39
+ }
40
+ });
41
+ /*
42
+ * Function to handle the AlertDialog
43
+ * @param {boolean} open - open state of the dialog
44
+ * @param {function} callback - callback function to be called after setting the state
45
+ * */
46
+ (0, _defineProperty2.default)(this, "handleAlertDialog", (open, callback) => this.setState({
47
+ dialog: {
48
+ open
49
+ }
50
+ }, callback));
51
+ /*
52
+ * Function to toggle the correct answer
53
+ * @param {boolean} showingCorrect - state of the correct answer
54
+ * */
55
+ (0, _defineProperty2.default)(this, "toggleCorrect", showingCorrect => this.setState({
56
+ showingCorrect
57
+ }));
58
+ /*
59
+ * Reset the graph to original state
60
+ * */
61
+ (0, _defineProperty2.default)(this, "onResetClick", () => {
62
+ const {
63
+ model,
64
+ session,
65
+ setGssData
66
+ } = this.props;
67
+ let {
68
+ gssData
69
+ } = model;
70
+ this.setState({
71
+ dialog: {
72
+ open: true,
73
+ title: 'Warning',
74
+ text: `This will remove all the elements added on the graph and reset graph to original state. Are you sure you want to continue?`,
75
+ onConfirm: () => {
76
+ // Reset the graph to original state
77
+ session.answer = [];
78
+ gssData.selectedTool = 'lineA';
79
+ gssData.lineA.lineType = 'Solid';
80
+ if (gssData.lineB) gssData.lineB.lineType = 'Solid';
81
+ // Set the gssData and session
82
+ setGssData(gssData, session);
83
+ this.handleAlertDialog(false);
84
+ },
85
+ onClose: () => this.handleAlertDialog(false)
86
+ }
87
+ });
88
+ });
89
+ /*
90
+ * Function to handle the event of solution set selected
91
+ * @param {object} point - point selected on the graph
92
+ * */
93
+ (0, _defineProperty2.default)(this, "onSolutionSetSelected", point => {
94
+ const {
95
+ model,
96
+ session,
97
+ setGssData
98
+ } = this.props;
99
+ const {
100
+ gssData,
101
+ disabled
102
+ } = model;
103
+ if (disabled) {
104
+ return;
105
+ }
106
+ for (const section of gssData.sections) {
107
+ if ((0, _utils.pointInsidePolygon)(point, section)) {
108
+ let polygon = {
109
+ points: section,
110
+ building: false,
111
+ type: 'polygon',
112
+ closed: true,
113
+ isSolution: true
114
+ };
115
+ session.answer = session.answer.filter(mark => mark.type !== 'polygon');
116
+ session.answer.push(polygon);
117
+ break;
118
+ }
119
+ }
120
+ setGssData(gssData, session);
121
+ });
122
+ /*
123
+ * Function to handle the event of change in GSS Line Data
124
+ * @param {object} gssData - GSS Line Data
125
+ * @param {string} oldSelectedTool - old selected tool
126
+ * */
127
+ (0, _defineProperty2.default)(this, "onChangeGssLineData", (gssData, oldSelectedTool) => {
128
+ const {
129
+ model,
130
+ session
131
+ } = this.props;
132
+ const {
133
+ domain,
134
+ range,
135
+ disabled
136
+ } = model;
137
+ if (disabled) {
138
+ return;
139
+ }
140
+ if (gssData.selectedTool === 'solutionSet') {
141
+ let lines = session.answer.filter(mark => mark.type !== 'polygon');
142
+ if (!(0, _utils.checkIfLinesAreAdded)(gssData, lines)) {
143
+ gssData.selectedTool = oldSelectedTool;
144
+ this.setState({
145
+ dialog: {
146
+ open: true,
147
+ title: 'Warning',
148
+ text: 'Please define the line(s) and then select a solution set for the item.',
149
+ onConfirm: () => this.handleAlertDialog(false)
150
+ }
151
+ });
152
+ } else {
153
+ let lines = session.answer.filter(mark => mark.type !== 'polygon');
154
+ gssData = (0, _utils.findSectionsInSolutionSet)(gssData, lines, domain, range);
155
+ }
156
+ this.handleGssDataChange(gssData, session);
157
+ } else {
158
+ let polygons = session.answer.filter(mark => mark.type === 'polygon');
159
+ if (oldSelectedTool === 'solutionSet' && polygons.length > 0) {
160
+ this.setState({
161
+ dialog: {
162
+ open: true,
163
+ title: 'Warning',
164
+ 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\'.',
165
+ onConfirm: () => {
166
+ session.answer = session.answer.filter(mark => mark.type !== 'polygon');
167
+ this.handleGssDataChange(gssData, session);
168
+ this.handleAlertDialog(false);
169
+ },
170
+ onConfirmText: 'CLEAR SOLUTION SET',
171
+ onClose: () => {
172
+ gssData.selectedTool = oldSelectedTool;
173
+ this.handleGssDataChange(gssData, session);
174
+ this.handleAlertDialog(false);
175
+ }
176
+ }
177
+ });
178
+ } else {
179
+ this.handleGssDataChange(gssData, session);
180
+ }
181
+ }
182
+ });
183
+ /*
184
+ * Function to handle the event of change in GSS Data
185
+ * @param {object} gssData - GSS Data
186
+ * @param {object} session - session data
187
+ * */
188
+ (0, _defineProperty2.default)(this, "handleGssDataChange", (gssData, session) => {
189
+ const {
190
+ setGssData
191
+ } = this.props;
192
+ if (session.answer && session.answer.length > 0 && session.answer[0] && gssData.lineA) {
193
+ session.answer[0].fill = gssData.lineA.lineType;
194
+ }
195
+ if (session.answer && session.answer.length > 1 && session.answer[1] && gssData.lineB) {
196
+ session.answer[1].fill = gssData.lineB.lineType;
197
+ }
198
+ if (gssData.selectedTool === 'lineB' && session.answer.length === 0 || gssData.selectedTool === 'lineB' && session.answer[0].building) {
199
+ this.setState({
200
+ dialog: {
201
+ open: true,
202
+ title: 'Warning',
203
+ text: 'Please add Line A to the graph before adding Line B',
204
+ onConfirm: () => this.handleAlertDialog(false)
205
+ }
206
+ });
207
+ gssData.selectedTool = 'lineA';
208
+ }
209
+ if (gssData.selectedTool === 'lineA' && session.answer.length > 1 && session.answer[1].building) {
210
+ this.setState({
211
+ dialog: {
212
+ open: true,
213
+ title: 'Warning',
214
+ text: 'Please add Line B to the graph before switching to Line A',
215
+ onConfirm: () => this.handleAlertDialog(false)
216
+ }
217
+ });
218
+ gssData.selectedTool = 'lineB';
219
+ }
220
+ setGssData(gssData, session);
221
+ });
222
+ }
223
+ /*
224
+ * Render the component
225
+ * */
226
+ render() {
227
+ const {
228
+ model,
229
+ onAnswersChange,
230
+ session
231
+ } = this.props;
232
+ const {
233
+ showingCorrect,
234
+ dialog
235
+ } = this.state;
236
+ const {
237
+ answer
238
+ } = session || {};
239
+ const {
240
+ answersCorrected,
241
+ arrows,
242
+ coordinatesOnHover,
243
+ correctResponse,
244
+ defaultTool,
245
+ disabled,
246
+ domain,
247
+ extraCSSRules,
248
+ labels,
249
+ labelsEnabled,
250
+ prompt,
251
+ range,
252
+ rationale,
253
+ size,
254
+ showToggle,
255
+ title,
256
+ titleEnabled,
257
+ teacherInstructions,
258
+ language,
259
+ gssLineData,
260
+ gssData
261
+ } = model || {};
262
+ const marks = answersCorrected || answer || [];
263
+ const showRationale = model.rationale && ((0, _renderUi.hasText)(model.rationale) || (0, _renderUi.hasMedia)(model.rationale));
264
+ const showTeacherInstructions = model.teacherInstructions && ((0, _renderUi.hasText)(model.teacherInstructions) || (0, _renderUi.hasMedia)(model.teacherInstructions));
265
+ return /*#__PURE__*/_react.default.createElement(MainContainer, {
266
+ extraCSSRules: extraCSSRules
267
+ }, showTeacherInstructions && /*#__PURE__*/_react.default.createElement(TeacherInstructions, {
268
+ labels: {
269
+ hidden: 'Show Teacher Instructions',
270
+ visible: 'Hide Teacher Instructions'
271
+ }
272
+ }, /*#__PURE__*/_react.default.createElement(_renderUi.PreviewPrompt, {
273
+ prompt: teacherInstructions
274
+ })), prompt && /*#__PURE__*/_react.default.createElement(_renderUi.PreviewPrompt, {
275
+ className: "prompt",
276
+ prompt: prompt
277
+ }), /*#__PURE__*/_react.default.createElement(_correctAnswerToggle.default, {
278
+ show: showToggle,
279
+ toggled: showingCorrect,
280
+ onToggle: this.toggleCorrect,
281
+ language: language
282
+ }), showingCorrect && showToggle ? /*#__PURE__*/_react.default.createElement(Graph, {
283
+ axesSettings: {
284
+ includeArrows: arrows
285
+ },
286
+ coordinatesOnHover: coordinatesOnHover,
287
+ disabled: true,
288
+ disabledLabels: true,
289
+ disabledTitle: true,
290
+ domain: domain,
291
+ labels: labels,
292
+ marks: correctResponse.map(i => ({
293
+ ...i,
294
+ correctness: 'correct'
295
+ })),
296
+ onChangeMarks: onAnswersChange,
297
+ range: range,
298
+ showLabels: labelsEnabled,
299
+ showTitle: titleEnabled,
300
+ size: size,
301
+ title: title,
302
+ language: language,
303
+ gssLineData: gssLineData,
304
+ onChangeGssLineData: this.onChangeGssLineData,
305
+ onSolutionSetSelected: this.onSolutionSetSelected,
306
+ toolbarTools: ['line', 'polygon']
307
+ }) : /*#__PURE__*/_react.default.createElement(Graph, {
308
+ axesSettings: {
309
+ includeArrows: arrows
310
+ },
311
+ coordinatesOnHover: coordinatesOnHover,
312
+ defaultTool: defaultTool,
313
+ disabled: disabled,
314
+ disabledLabels: true,
315
+ disabledTitle: true,
316
+ domain: domain,
317
+ labels: labels,
318
+ marks: marks,
319
+ onChangeMarks: onAnswersChange,
320
+ onCustomReset: this.onResetClick,
321
+ range: range,
322
+ showLabels: labelsEnabled,
323
+ showTitle: titleEnabled,
324
+ size: size,
325
+ title: title,
326
+ language: language,
327
+ gssLineData: gssData,
328
+ onChangeGssLineData: this.onChangeGssLineData,
329
+ onSolutionSetSelected: this.onSolutionSetSelected,
330
+ toolbarTools: ['line', 'polygon']
331
+ }), showRationale && /*#__PURE__*/_react.default.createElement(_renderUi.Collapsible, {
332
+ labels: {
333
+ hidden: 'Show Rationale',
334
+ visible: 'Hide Rationale'
335
+ }
336
+ }, /*#__PURE__*/_react.default.createElement(_renderUi.PreviewPrompt, {
337
+ prompt: rationale
338
+ })), /*#__PURE__*/_react.default.createElement(_configUi.AlertDialog, {
339
+ open: dialog.open,
340
+ title: dialog.title,
341
+ text: dialog.text,
342
+ onClose: dialog.onClose,
343
+ onConfirm: dialog.onConfirm,
344
+ onConfirmText: dialog.onConfirmText ? dialog.onConfirmText : 'OK'
345
+ }));
346
+ }
347
+ }
348
+ exports.Main = Main;
349
+ (0, _defineProperty2.default)(Main, "propTypes", {
350
+ model: _propTypes.default.object.isRequired,
351
+ session: _propTypes.default.object.isRequired,
352
+ onAnswersChange: _propTypes.default.func
353
+ });
354
+ var _default = exports.default = Main;
355
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_graphingSolutionSet","_renderUi","_correctAnswerToggle","_utils","_configUi","MainContainer","styled","UiLayout","color","text","backgroundColor","background","TeacherInstructions","Collapsible","theme","marginBottom","spacing","Graph","GraphContainer","marginTop","Main","React","Component","constructor","args","_defineProperty2","default","showingCorrect","dialog","open","callback","setState","model","session","setGssData","props","gssData","title","onConfirm","answer","selectedTool","lineA","lineType","lineB","handleAlertDialog","onClose","point","disabled","section","sections","pointInsidePolygon","polygon","points","building","type","closed","isSolution","filter","mark","push","oldSelectedTool","domain","range","lines","checkIfLinesAreAdded","findSectionsInSolutionSet","handleGssDataChange","polygons","length","onConfirmText","fill","render","onAnswersChange","state","answersCorrected","arrows","coordinatesOnHover","correctResponse","defaultTool","extraCSSRules","labels","labelsEnabled","prompt","rationale","size","showToggle","titleEnabled","teacherInstructions","language","gssLineData","marks","showRationale","hasText","hasMedia","showTeacherInstructions","createElement","hidden","visible","PreviewPrompt","className","show","toggled","onToggle","toggleCorrect","axesSettings","includeArrows","disabledLabels","disabledTitle","map","i","correctness","onChangeMarks","showLabels","showTitle","onChangeGssLineData","onSolutionSetSelected","toolbarTools","onCustomReset","onResetClick","AlertDialog","exports","PropTypes","object","isRequired","func","_default"],"sources":["../src/main.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport { GraphContainer } from '@pie-lib/graphing-solution-set';\nimport { color, Collapsible, hasText, hasMedia, PreviewPrompt, UiLayout } from '@pie-lib/render-ui';\nimport CorrectAnswerToggle from '@pie-lib/correct-answer-toggle';\nimport { findSectionsInSolutionSet, pointInsidePolygon, checkIfLinesAreAdded } from './utils';\nimport { AlertDialog } from '@pie-lib/config-ui';\n\nconst MainContainer = styled(UiLayout)({\n color: color.text(),\n backgroundColor: color.background(),\n});\n\nconst TeacherInstructions = styled(Collapsible)(({ theme }) => ({\n marginBottom: theme.spacing(2),\n}));\n\nconst Graph = styled(GraphContainer)(({ theme }) => ({\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(2),\n}));\n\nexport class Main extends React.Component {\n static propTypes = {\n model: PropTypes.object.isRequired,\n session: PropTypes.object.isRequired,\n onAnswersChange: PropTypes.func,\n };\n\n state = {\n showingCorrect: false,\n dialog: {\n open: false,\n },\n };\n\n /*\n * Function to handle the AlertDialog\n * @param {boolean} open - open state of 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 toggle the correct answer\n * @param {boolean} showingCorrect - state of the correct answer\n * */\n toggleCorrect = (showingCorrect) => this.setState({ showingCorrect });\n\n /*\n * Reset the graph to original state\n * */\n onResetClick = () => {\n const { model, session, setGssData } = this.props;\n let { gssData } = 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 session.answer = [];\n gssData.selectedTool = 'lineA';\n gssData.lineA.lineType = 'Solid';\n if (gssData.lineB) gssData.lineB.lineType = 'Solid';\n // Set the gssData and session\n setGssData(gssData, session);\n this.handleAlertDialog(false);\n },\n onClose: () => this.handleAlertDialog(false),\n },\n });\n };\n\n /*\n * Function to handle the event of solution set selected\n * @param {object} point - point selected on the graph\n * */\n onSolutionSetSelected = (point) => {\n const { model, session, setGssData } = this.props;\n const { gssData, disabled } = model;\n if (disabled) {\n return;\n }\n for (const section of gssData.sections) {\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 session.answer = session.answer.filter((mark) => mark.type !== 'polygon');\n session.answer.push(polygon);\n break;\n }\n }\n setGssData(gssData, session);\n };\n\n /*\n * Function to handle the event of change in GSS Line Data\n * @param {object} gssData - GSS Line Data\n * @param {string} oldSelectedTool - old selected tool\n * */\n onChangeGssLineData = (gssData, oldSelectedTool) => {\n const { model, session } = this.props;\n const { domain, range, disabled } = model;\n if (disabled) {\n return;\n }\n if (gssData.selectedTool === 'solutionSet') {\n let lines = session.answer.filter((mark) => mark.type !== 'polygon');\n if (!checkIfLinesAreAdded(gssData, lines)) {\n gssData.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 = session.answer.filter((mark) => mark.type !== 'polygon');\n gssData = findSectionsInSolutionSet(gssData, lines, domain, range);\n }\n this.handleGssDataChange(gssData, session);\n } else {\n let polygons = session.answer.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 session.answer = session.answer.filter((mark) => mark.type !== 'polygon');\n this.handleGssDataChange(gssData, session);\n this.handleAlertDialog(false);\n },\n onConfirmText: 'CLEAR SOLUTION SET',\n onClose: () => {\n gssData.selectedTool = oldSelectedTool;\n this.handleGssDataChange(gssData, session);\n this.handleAlertDialog(false);\n },\n },\n });\n } else {\n this.handleGssDataChange(gssData, session);\n }\n }\n };\n\n /*\n * Function to handle the event of change in GSS Data\n * @param {object} gssData - GSS Data\n * @param {object} session - session data\n * */\n handleGssDataChange = (gssData, session) => {\n const { setGssData } = this.props;\n if (session.answer && session.answer.length > 0 && session.answer[0] && gssData.lineA) {\n session.answer[0].fill = gssData.lineA.lineType;\n }\n if (session.answer && session.answer.length > 1 && session.answer[1] && gssData.lineB) {\n session.answer[1].fill = gssData.lineB.lineType;\n }\n if (\n (gssData.selectedTool === 'lineB' && session.answer.length === 0) ||\n (gssData.selectedTool === 'lineB' && session.answer[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 gssData.selectedTool = 'lineA';\n }\n if (gssData.selectedTool === 'lineA' && session.answer.length > 1 && session.answer[1].building) {\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 gssData.selectedTool = 'lineB';\n }\n setGssData(gssData, session);\n };\n\n /*\n * Render the component\n * */\n render() {\n const { model, onAnswersChange, session } = this.props;\n const { showingCorrect, dialog } = this.state;\n const { answer } = session || {};\n const {\n answersCorrected,\n arrows,\n coordinatesOnHover,\n correctResponse,\n defaultTool,\n disabled,\n domain,\n extraCSSRules,\n labels,\n labelsEnabled,\n prompt,\n range,\n rationale,\n size,\n showToggle,\n title,\n titleEnabled,\n teacherInstructions,\n language,\n gssLineData,\n gssData,\n } = model || {};\n const marks = answersCorrected || answer || [];\n const showRationale = model.rationale && (hasText(model.rationale) || hasMedia(model.rationale));\n const showTeacherInstructions =\n model.teacherInstructions && (hasText(model.teacherInstructions) || hasMedia(model.teacherInstructions));\n return (\n <MainContainer extraCSSRules={extraCSSRules}>\n {showTeacherInstructions && (\n <TeacherInstructions\n labels={{ hidden: 'Show Teacher Instructions', visible: 'Hide Teacher Instructions' }}\n >\n <PreviewPrompt prompt={teacherInstructions} />\n </TeacherInstructions>\n )}\n {prompt && <PreviewPrompt className=\"prompt\" prompt={prompt} />}\n <CorrectAnswerToggle\n show={showToggle}\n toggled={showingCorrect}\n onToggle={this.toggleCorrect}\n language={language}\n />\n {showingCorrect && showToggle ? (\n <Graph\n axesSettings={{ includeArrows: arrows }}\n coordinatesOnHover={coordinatesOnHover}\n disabled={true}\n disabledLabels={true}\n disabledTitle={true}\n domain={domain}\n labels={labels}\n marks={correctResponse.map((i) => ({ ...i, correctness: 'correct' }))}\n onChangeMarks={onAnswersChange}\n range={range}\n showLabels={labelsEnabled}\n showTitle={titleEnabled}\n size={size}\n title={title}\n language={language}\n gssLineData={gssLineData}\n onChangeGssLineData={this.onChangeGssLineData}\n onSolutionSetSelected={this.onSolutionSetSelected}\n toolbarTools={['line', 'polygon']}\n />\n ) : (\n <Graph\n axesSettings={{ includeArrows: arrows }}\n coordinatesOnHover={coordinatesOnHover}\n defaultTool={defaultTool}\n disabled={disabled}\n disabledLabels={true}\n disabledTitle={true}\n domain={domain}\n labels={labels}\n marks={marks}\n onChangeMarks={onAnswersChange}\n onCustomReset={this.onResetClick}\n range={range}\n showLabels={labelsEnabled}\n showTitle={titleEnabled}\n size={size}\n title={title}\n language={language}\n gssLineData={gssData}\n onChangeGssLineData={this.onChangeGssLineData}\n onSolutionSetSelected={this.onSolutionSetSelected}\n toolbarTools={['line', 'polygon']}\n />\n )}\n {showRationale && (\n <Collapsible labels={{ hidden: 'Show Rationale', visible: 'Hide Rationale' }}>\n <PreviewPrompt prompt={rationale} />\n </Collapsible>\n )}\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 </MainContainer>\n );\n }\n}\n\nexport default Main;\n"],"mappings":"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","ignoreList":[]}