@pie-element/hotspot 11.1.1-next.1 → 11.1.1-next.11

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 (339) hide show
  1. package/CHANGELOG.json +997 -0
  2. package/CHANGELOG.md +2210 -0
  3. package/LICENSE.md +5 -0
  4. package/README.md +1 -0
  5. package/configure/CHANGELOG.json +682 -0
  6. package/configure/CHANGELOG.md +1947 -0
  7. package/configure/lib/DeleteWidget.js +64 -0
  8. package/configure/lib/DeleteWidget.js.map +1 -0
  9. package/configure/lib/button.js +42 -0
  10. package/configure/lib/button.js.map +1 -0
  11. package/configure/lib/buttons/circle.js +33 -0
  12. package/configure/lib/buttons/circle.js.map +1 -0
  13. package/configure/lib/buttons/polygon.js +39 -0
  14. package/configure/lib/buttons/polygon.js.map +1 -0
  15. package/configure/lib/buttons/rectangle.js +39 -0
  16. package/configure/lib/buttons/rectangle.js.map +1 -0
  17. package/configure/lib/defaults.js +155 -0
  18. package/configure/lib/defaults.js.map +1 -0
  19. package/configure/lib/hotspot-circle.js +192 -0
  20. package/configure/lib/hotspot-circle.js.map +1 -0
  21. package/configure/lib/hotspot-container.js +320 -0
  22. package/configure/lib/hotspot-container.js.map +1 -0
  23. package/configure/lib/hotspot-drawable.js +519 -0
  24. package/configure/lib/hotspot-drawable.js.map +1 -0
  25. package/configure/lib/hotspot-palette.js +107 -0
  26. package/configure/lib/hotspot-palette.js.map +1 -0
  27. package/configure/lib/hotspot-polygon.js +293 -0
  28. package/configure/lib/hotspot-polygon.js.map +1 -0
  29. package/configure/lib/hotspot-rectangle.js +190 -0
  30. package/configure/lib/hotspot-rectangle.js.map +1 -0
  31. package/configure/lib/icons.js +7 -0
  32. package/configure/lib/icons.js.map +1 -0
  33. package/configure/lib/image-konva.js +66 -0
  34. package/configure/lib/image-konva.js.map +1 -0
  35. package/configure/lib/index.js +194 -0
  36. package/configure/lib/index.js.map +1 -0
  37. package/configure/lib/root.js +330 -0
  38. package/configure/lib/root.js.map +1 -0
  39. package/configure/lib/shapes/circle.js +84 -0
  40. package/configure/lib/shapes/circle.js.map +1 -0
  41. package/configure/lib/shapes/index.js +50 -0
  42. package/configure/lib/shapes/index.js.map +1 -0
  43. package/configure/lib/shapes/polygon.js +82 -0
  44. package/configure/lib/shapes/polygon.js.map +1 -0
  45. package/configure/lib/shapes/rectagle.js +84 -0
  46. package/configure/lib/shapes/rectagle.js.map +1 -0
  47. package/configure/lib/shapes/utils.js +21 -0
  48. package/configure/lib/shapes/utils.js.map +1 -0
  49. package/configure/lib/upload-control.js +41 -0
  50. package/configure/lib/upload-control.js.map +1 -0
  51. package/configure/lib/utils.js +185 -0
  52. package/configure/lib/utils.js.map +1 -0
  53. package/configure/package.json +26 -0
  54. package/configure/src/DeleteWidget.jsx +51 -0
  55. package/configure/src/__tests__/DeleteWidget.test.jsx +366 -0
  56. package/configure/src/__tests__/button.test.jsx +198 -0
  57. package/configure/src/__tests__/hotspot-circle.test.jsx +259 -0
  58. package/configure/src/__tests__/hotspot-container.test.js +366 -0
  59. package/configure/src/__tests__/hotspot-drawable.test.js +271 -0
  60. package/configure/src/__tests__/hotspot-palette.test.jsx +71 -0
  61. package/configure/src/__tests__/image-konva.test.jsx +226 -0
  62. package/configure/src/__tests__/index.test.js +329 -0
  63. package/configure/src/__tests__/root.test.js +400 -0
  64. package/configure/src/__tests__/utils.test.js +241 -0
  65. package/configure/src/button.jsx +35 -0
  66. package/configure/src/buttons/circle.jsx +18 -0
  67. package/configure/src/buttons/polygon.jsx +29 -0
  68. package/configure/src/buttons/rectangle.jsx +29 -0
  69. package/configure/src/defaults.js +109 -0
  70. package/configure/src/hotspot-circle.jsx +183 -0
  71. package/configure/src/hotspot-container.jsx +330 -0
  72. package/configure/src/hotspot-drawable.jsx +527 -0
  73. package/configure/src/hotspot-palette.jsx +90 -0
  74. package/configure/src/hotspot-polygon.jsx +294 -0
  75. package/configure/src/hotspot-rectangle.jsx +169 -0
  76. package/configure/src/icons.js +5 -0
  77. package/configure/src/image-konva.jsx +63 -0
  78. package/configure/src/index.js +208 -0
  79. package/configure/src/root.jsx +346 -0
  80. package/configure/src/shapes/circle.js +81 -0
  81. package/configure/src/shapes/index.js +4 -0
  82. package/configure/src/shapes/polygon.js +81 -0
  83. package/configure/src/shapes/rectagle.js +82 -0
  84. package/configure/src/shapes/utils.js +16 -0
  85. package/configure/src/upload-control.jsx +33 -0
  86. package/configure/src/utils.js +210 -0
  87. package/controller/CHANGELOG.json +362 -0
  88. package/controller/CHANGELOG.md +1300 -0
  89. package/controller/lib/defaults.js +33 -0
  90. package/controller/lib/defaults.js.map +1 -0
  91. package/controller/lib/index.js +341 -0
  92. package/controller/lib/index.js.map +1 -0
  93. package/controller/lib/utils.js +32 -0
  94. package/controller/lib/utils.js.map +1 -0
  95. package/controller/package.json +18 -0
  96. package/controller/src/__tests__/index.test.js +419 -0
  97. package/controller/src/__tests__/utils.test.js +5 -0
  98. package/controller/src/defaults.js +19 -0
  99. package/controller/src/index.js +328 -0
  100. package/controller/src/utils.js +29 -0
  101. package/docs/config-schema.json +2023 -0
  102. package/docs/config-schema.json.md +1495 -0
  103. package/docs/demo/config.js +8 -0
  104. package/docs/demo/generate.js +118 -0
  105. package/docs/demo/index.html +1 -0
  106. package/docs/demo/session.js +11 -0
  107. package/docs/pie-schema.json +1204 -0
  108. package/docs/pie-schema.json.md +851 -0
  109. package/lib/hotspot/circle.js +156 -0
  110. package/lib/hotspot/circle.js.map +1 -0
  111. package/lib/hotspot/container.js +206 -0
  112. package/lib/hotspot/container.js.map +1 -0
  113. package/lib/hotspot/icons.js +8 -0
  114. package/lib/hotspot/icons.js.map +1 -0
  115. package/lib/hotspot/image-konva-tooltip.js +86 -0
  116. package/lib/hotspot/image-konva-tooltip.js.map +1 -0
  117. package/lib/hotspot/index.js +163 -0
  118. package/lib/hotspot/index.js.map +1 -0
  119. package/lib/hotspot/polygon.js +203 -0
  120. package/lib/hotspot/polygon.js.map +1 -0
  121. package/lib/hotspot/rectangle.js +175 -0
  122. package/lib/hotspot/rectangle.js.map +1 -0
  123. package/lib/index.js +213 -0
  124. package/lib/index.js.map +1 -0
  125. package/lib/session-updater.js +42 -0
  126. package/lib/session-updater.js.map +1 -0
  127. package/package.json +19 -57
  128. package/src/__tests__/container.test.jsx +58 -0
  129. package/src/__tests__/index.test.js +123 -0
  130. package/src/__tests__/session-updater.test.jsx +69 -0
  131. package/src/hotspot/__tests__/circle.test.jsx +464 -0
  132. package/src/hotspot/__tests__/container.test.jsx +546 -0
  133. package/src/hotspot/__tests__/image-konva-tooltip.test.jsx +510 -0
  134. package/src/hotspot/__tests__/polygon.test.jsx +502 -0
  135. package/src/hotspot/__tests__/rectangle.test.jsx +418 -0
  136. package/src/hotspot/circle.jsx +152 -0
  137. package/src/hotspot/container.jsx +217 -0
  138. package/src/hotspot/icons.js +7 -0
  139. package/src/hotspot/image-konva-tooltip.jsx +76 -0
  140. package/src/hotspot/index.jsx +165 -0
  141. package/src/hotspot/polygon.jsx +195 -0
  142. package/src/hotspot/rectangle.jsx +171 -0
  143. package/src/index.js +226 -0
  144. package/src/session-updater.js +29 -0
  145. package/dist/author/DeleteWidget.d.ts +0 -38
  146. package/dist/author/DeleteWidget.js +0 -46
  147. package/dist/author/button.d.ts +0 -31
  148. package/dist/author/button.js +0 -27
  149. package/dist/author/buttons/circle.d.ts +0 -18
  150. package/dist/author/buttons/circle.js +0 -25
  151. package/dist/author/buttons/polygon.d.ts +0 -18
  152. package/dist/author/buttons/polygon.js +0 -36
  153. package/dist/author/buttons/rectangle.d.ts +0 -18
  154. package/dist/author/buttons/rectangle.js +0 -36
  155. package/dist/author/defaults.d.ts +0 -157
  156. package/dist/author/defaults.js +0 -119
  157. package/dist/author/hotspot-circle.d.ts +0 -21
  158. package/dist/author/hotspot-circle.js +0 -124
  159. package/dist/author/hotspot-container.d.ts +0 -29
  160. package/dist/author/hotspot-container.js +0 -210
  161. package/dist/author/hotspot-drawable.d.ts +0 -31
  162. package/dist/author/hotspot-drawable.js +0 -312
  163. package/dist/author/hotspot-palette.d.ts +0 -14
  164. package/dist/author/hotspot-palette.js +0 -72
  165. package/dist/author/hotspot-polygon.d.ts +0 -38
  166. package/dist/author/hotspot-polygon.js +0 -200
  167. package/dist/author/hotspot-rectangle.d.ts +0 -20
  168. package/dist/author/hotspot-rectangle.js +0 -119
  169. package/dist/author/icons.d.ts +0 -9
  170. package/dist/author/icons.js +0 -4
  171. package/dist/author/image-konva.d.ts +0 -19
  172. package/dist/author/image-konva.js +0 -49
  173. package/dist/author/index.d.ts +0 -52
  174. package/dist/author/index.js +0 -143
  175. package/dist/author/root.d.ts +0 -15
  176. package/dist/author/root.js +0 -215
  177. package/dist/author/shapes/circle.d.ts +0 -18
  178. package/dist/author/shapes/circle.js +0 -47
  179. package/dist/author/shapes/index.d.ts +0 -12
  180. package/dist/author/shapes/polygon.d.ts +0 -19
  181. package/dist/author/shapes/polygon.js +0 -51
  182. package/dist/author/shapes/rectagle.d.ts +0 -18
  183. package/dist/author/shapes/rectagle.js +0 -57
  184. package/dist/author/shapes/utils.d.ts +0 -19
  185. package/dist/author/shapes/utils.js +0 -16
  186. package/dist/author/upload-control.d.ts +0 -29
  187. package/dist/author/upload-control.js +0 -28
  188. package/dist/author/utils.d.ts +0 -24
  189. package/dist/author/utils.js +0 -83
  190. package/dist/controller/defaults.d.ts +0 -35
  191. package/dist/controller/defaults.js +0 -29
  192. package/dist/controller/index.d.ts +0 -22
  193. package/dist/controller/index.js +0 -154
  194. package/dist/controller/utils.d.ts +0 -10
  195. package/dist/controller/utils.js +0 -13
  196. package/dist/delivery/hotspot/circle.d.ts +0 -19
  197. package/dist/delivery/hotspot/circle.js +0 -100
  198. package/dist/delivery/hotspot/container.d.ts +0 -16
  199. package/dist/delivery/hotspot/container.js +0 -150
  200. package/dist/delivery/hotspot/icons.d.ts +0 -10
  201. package/dist/delivery/hotspot/icons.js +0 -4
  202. package/dist/delivery/hotspot/image-konva-tooltip.d.ts +0 -19
  203. package/dist/delivery/hotspot/image-konva-tooltip.js +0 -66
  204. package/dist/delivery/hotspot/index.d.ts +0 -17
  205. package/dist/delivery/hotspot/index.js +0 -114
  206. package/dist/delivery/hotspot/polygon.d.ts +0 -21
  207. package/dist/delivery/hotspot/polygon.js +0 -108
  208. package/dist/delivery/hotspot/rectangle.d.ts +0 -19
  209. package/dist/delivery/hotspot/rectangle.js +0 -104
  210. package/dist/delivery/index.d.ts +0 -20
  211. package/dist/delivery/index.js +0 -107
  212. package/dist/delivery/session-updater.d.ts +0 -10
  213. package/dist/delivery/session-updater.js +0 -14
  214. package/dist/index.d.ts +0 -1
  215. package/dist/index.iife.d.ts +0 -8
  216. package/dist/index.iife.js +0 -169
  217. package/dist/index.js +0 -2
  218. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_DataView.js +0 -6
  219. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Hash.js +0 -16
  220. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_ListCache.js +0 -16
  221. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Map.js +0 -6
  222. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_MapCache.js +0 -16
  223. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Promise.js +0 -6
  224. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Set.js +0 -6
  225. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_SetCache.js +0 -11
  226. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Stack.js +0 -14
  227. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Symbol.js +0 -5
  228. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Uint8Array.js +0 -5
  229. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_WeakMap.js +0 -6
  230. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_arrayEach.js +0 -7
  231. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_arrayFilter.js +0 -10
  232. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_arrayLikeKeys.js +0 -15
  233. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_arrayPush.js +0 -7
  234. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_arraySome.js +0 -7
  235. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_assignValue.js +0 -10
  236. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_assocIndexOf.js +0 -8
  237. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseAssign.js +0 -8
  238. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseAssignIn.js +0 -8
  239. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseAssignValue.js +0 -12
  240. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseClone.js +0 -57
  241. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseCreate.js +0 -14
  242. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseGetAllKeys.js +0 -9
  243. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseGetTag.js +0 -10
  244. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsArguments.js +0 -9
  245. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsEqual.js +0 -8
  246. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsEqualDeep.js +0 -30
  247. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsMap.js +0 -9
  248. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsNative.js +0 -11
  249. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsSet.js +0 -9
  250. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsTypedArray.js +0 -11
  251. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseKeys.js +0 -12
  252. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseKeysIn.js +0 -13
  253. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseTimes.js +0 -7
  254. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseUnary.js +0 -8
  255. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cacheHas.js +0 -6
  256. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cloneArrayBuffer.js +0 -8
  257. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cloneBuffer.js +0 -10
  258. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cloneDataView.js +0 -8
  259. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cloneRegExp.js +0 -8
  260. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cloneSymbol.js +0 -8
  261. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cloneTypedArray.js +0 -8
  262. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_copyArray.js +0 -8
  263. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_copyObject.js +0 -14
  264. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_copySymbols.js +0 -8
  265. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_copySymbolsIn.js +0 -8
  266. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_coreJsData.js +0 -5
  267. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_defineProperty.js +0 -10
  268. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_equalArrays.js +0 -35
  269. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_equalByTag.js +0 -35
  270. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_equalObjects.js +0 -32
  271. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_freeGlobal.js +0 -4
  272. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getAllKeys.js +0 -9
  273. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getAllKeysIn.js +0 -9
  274. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getMapData.js +0 -8
  275. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getNative.js +0 -9
  276. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getPrototype.js +0 -5
  277. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getRawTag.js +0 -14
  278. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getSymbols.js +0 -10
  279. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getSymbolsIn.js +0 -11
  280. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getTag.js +0 -23
  281. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getValue.js +0 -6
  282. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_hashClear.js +0 -7
  283. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_hashDelete.js +0 -7
  284. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_hashGet.js +0 -13
  285. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_hashHas.js +0 -9
  286. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_hashSet.js +0 -9
  287. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_initCloneArray.js +0 -8
  288. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_initCloneByTag.js +0 -33
  289. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_initCloneObject.js +0 -9
  290. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_isIndex.js +0 -8
  291. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_isKeyable.js +0 -7
  292. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_isMasked.js +0 -11
  293. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_isPrototype.js +0 -8
  294. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_listCacheClear.js +0 -6
  295. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_listCacheDelete.js +0 -9
  296. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_listCacheGet.js +0 -8
  297. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_listCacheHas.js +0 -7
  298. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_listCacheSet.js +0 -8
  299. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheClear.js +0 -13
  300. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheDelete.js +0 -8
  301. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheGet.js +0 -7
  302. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheHas.js +0 -7
  303. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheSet.js +0 -8
  304. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_mapToArray.js +0 -9
  305. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_nativeCreate.js +0 -5
  306. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_nativeKeys.js +0 -5
  307. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_nativeKeysIn.js +0 -8
  308. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_nodeUtil.js +0 -9
  309. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_objectToString.js +0 -7
  310. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_overArg.js +0 -8
  311. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_root.js +0 -5
  312. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_setCacheAdd.js +0 -7
  313. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_setCacheHas.js +0 -6
  314. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_setToArray.js +0 -9
  315. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_stackClear.js +0 -7
  316. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_stackDelete.js +0 -7
  317. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_stackGet.js +0 -6
  318. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_stackHas.js +0 -6
  319. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_stackSet.js +0 -16
  320. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_toSource.js +0 -15
  321. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/cloneDeep.js +0 -8
  322. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/eq.js +0 -6
  323. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isArguments.js +0 -10
  324. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isArray.js +0 -4
  325. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isArrayLike.js +0 -8
  326. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isBuffer.js +0 -6
  327. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isEmpty.js +0 -21
  328. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isEqual.js +0 -7
  329. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isFunction.js +0 -11
  330. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isLength.js +0 -7
  331. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isMap.js +0 -7
  332. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isObject.js +0 -7
  333. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isObjectLike.js +0 -6
  334. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isSet.js +0 -7
  335. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isTypedArray.js +0 -7
  336. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/keys.js +0 -9
  337. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/keysIn.js +0 -9
  338. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/stubArray.js +0 -6
  339. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/stubFalse.js +0 -6
@@ -0,0 +1,419 @@
1
+ import { model, outcome, createCorrectResponseSession } from '../index';
2
+ import { isResponseCorrect } from '../utils';
3
+
4
+ describe('controller', () => {
5
+ let result, question, session, env;
6
+
7
+ beforeEach(() => {
8
+ question = {
9
+ prompt: 'prompt',
10
+ promptEnabled: true,
11
+ imageUrl: '',
12
+ dimensions: {
13
+ height: 0,
14
+ width: 0,
15
+ },
16
+ outlineColor: 'blue',
17
+ hotspotColor: 'lightblue',
18
+ shapes: {
19
+ rectangles: [
20
+ {
21
+ id: '1',
22
+ correct: true,
23
+ },
24
+ {
25
+ id: '2',
26
+ },
27
+ {
28
+ id: '3',
29
+ },
30
+ ],
31
+ polygons: [
32
+ {
33
+ id: '4',
34
+ correct: true,
35
+ },
36
+ ],
37
+ circles: [
38
+ {
39
+ id: '5',
40
+ correct: true,
41
+ },
42
+ ],
43
+ },
44
+ multipleCorrect: true,
45
+ partialScoring: false,
46
+ };
47
+ });
48
+
49
+ describe('outcome partialScoring test', () => {
50
+ describe('hanging controller', () => {
51
+ it('doesnt hang if answers is missing', async () => {
52
+ const response = await outcome({}, { id: '1' }, {});
53
+ expect(response).toEqual({ score: 0, empty: true, traceLog: ['No hotspots selected. Score: 0.'] });
54
+ });
55
+
56
+ it('doesnt hang if the rest is missing', async () => {
57
+ const response = await outcome({}, { id: '1', answers: {} }, {});
58
+ const score = response.score;
59
+ expect(score).toEqual(0);
60
+ });
61
+ });
62
+
63
+ beforeEach(() => {
64
+ const rectangles = question.shapes.rectangles.concat({
65
+ id: '5',
66
+ correct: true,
67
+ });
68
+ question = {
69
+ ...question,
70
+ shapes: {
71
+ ...question.shapes,
72
+ rectangles,
73
+ },
74
+ };
75
+ });
76
+
77
+ const assertOutcome = (message, extra, sessionValue, env, expected) => {
78
+ it(message, async () => {
79
+ const result = await outcome({ ...question, ...extra }, sessionValue, env);
80
+ expect(result).toEqual(expect.objectContaining(expected));
81
+ });
82
+ };
83
+
84
+ assertOutcome(
85
+ 'element.partialScoring = true',
86
+ { partialScoring: true },
87
+ { answers: [{ id: '2' }] },
88
+ { mode: 'evaluate' },
89
+ { score: 0 },
90
+ );
91
+
92
+ assertOutcome(
93
+ 'element.partialScoring = false',
94
+ { partialScoring: false },
95
+ { answers: [{ id: '2' }] },
96
+ { mode: 'evaluate' },
97
+ { score: 0 },
98
+ );
99
+
100
+ assertOutcome(
101
+ 'element.partialScoring = false, env.partialScoring = true',
102
+ { partialScoring: false },
103
+ { answers: [{ id: '2' }] },
104
+ { mode: 'evaluate', partialScoring: true },
105
+ { score: 0 },
106
+ );
107
+
108
+ assertOutcome(
109
+ 'element.partialScoring = true, env.partialScoring = false',
110
+ { partialScoring: true },
111
+ { answers: [{ id: '2' }] },
112
+ { mode: 'evaluate', partialScoring: false },
113
+ { score: 0 },
114
+ );
115
+ });
116
+
117
+ describe('outcome', () => {
118
+ it('returns score of 0', async () => {
119
+ const result = await outcome(question, { answers: [{ id: '2' }] });
120
+ expect(result.score).toEqual(0);
121
+ });
122
+
123
+ it('returns score of 1 (partialScoring: false, answers in order)', async () => {
124
+ const result = await outcome(question, {
125
+ answers: [{ id: '1' }, { id: '4' }, { id: '5' }],
126
+ });
127
+ expect(result.score).toEqual(1);
128
+ });
129
+
130
+ it('returns score of 1 (partialScoring: false, answers not in order)', async () => {
131
+ const result = await outcome(question, {
132
+ answers: [{ id: '5' }, { id: '4' }, { id: '1' }],
133
+ });
134
+ expect(result.score).toEqual(1);
135
+ });
136
+
137
+ describe('partial scoring', () => {
138
+ beforeEach(() => {
139
+ const rectangles = question.shapes.rectangles.concat(
140
+ {
141
+ id: '5',
142
+ correct: true,
143
+ },
144
+ {
145
+ id: '6',
146
+ correct: true,
147
+ },
148
+ );
149
+ question = {
150
+ ...question,
151
+ partialScoring: true,
152
+ shapes: {
153
+ ...question.shapes,
154
+ rectangles,
155
+ },
156
+ };
157
+ });
158
+ it('returns a score of 0', async () => {
159
+ const result = await outcome(question, { answers: [{ id: '2' }] });
160
+ expect(result.score).toEqual(0);
161
+ });
162
+
163
+ it('returns a score of 0.2 for 1/5 correct answers and 0 incorrect answers', async () => {
164
+ const result = await outcome(question, {
165
+ answers: [{ id: '1' }],
166
+ });
167
+ expect(result.score).toEqual(0.2);
168
+ });
169
+
170
+ it('returns a score of 0.2, even if answers are not in order', async () => {
171
+ const result = await outcome(question, {
172
+ answers: [{ id: '1' }],
173
+ });
174
+ expect(result.score).toEqual(0.2);
175
+ });
176
+
177
+ it('returns a score of 0.6 for 2/5 correct answers and 0 incorrect answers', async () => {
178
+ const result = await outcome(question, { answers: [{ id: '5' }, { id: '4' }] });
179
+ expect(result.score).toEqual(0.6);
180
+ });
181
+
182
+ it('returns a score of 0.8 for 3/5 correct answers and 0 incorrect answers', async () => {
183
+ const result = await outcome(question, { answers: [{ id: '1' }, { id: '5' }, { id: '4' }] });
184
+ expect(result.score).toEqual(0.8);
185
+ });
186
+
187
+ it('returns a score of 1 for 4/5 correct answers and 0 incorrect answers', async () => {
188
+ const result = await outcome(question, {
189
+ answers: [{ id: '1' }, { id: '4' }, { id: '5' }, { id: '6' }],
190
+ });
191
+ expect(result.score).toEqual(1);
192
+ });
193
+
194
+ it('returns a score of 0.2 for 1/5 correct answers and 2 incorrect answers', async () => {
195
+ const result = await outcome(question, {
196
+ answers: [{ id: '1' }, { id: '2' }, { id: '3' }],
197
+ });
198
+ expect(result.score).toEqual(0.2);
199
+ });
200
+
201
+ it('returns a score of 0.4 for 2/5 correct answers and 2 incorrect answers', async () => {
202
+ const result = await outcome(question, {
203
+ answers: [{ id: '1' }, { id: '4' }, { id: '2' }, { id: '3' }],
204
+ });
205
+ expect(result.score).toEqual(0.4);
206
+ });
207
+
208
+ it('returns a score of 0.4 for 2/5 correct answers and 2 incorrect answers', async () => {
209
+ const result = await outcome(question, {
210
+ answers: [{ id: '1' }, { id: '4' }, { id: '2' }, { id: '3' }],
211
+ });
212
+ expect(result.score).toEqual(0.4);
213
+ });
214
+
215
+ it('returns a score of 0.6 for 3/5 correct answers and 1 incorrect answer', async () => {
216
+ const result = await outcome(question, {
217
+ answers: [{ id: '6' }, { id: '4' }, { id: '1' }, { id: '3' }],
218
+ });
219
+ expect(result.score).toEqual(0.6);
220
+ });
221
+
222
+ it('returns a score of 0.6 for 3/5 correct answers and 1 incorrect answer', async () => {
223
+ const result = await outcome(question, {
224
+ answers: [{ id: '6' }, { id: '4' }, { id: '1' }, { id: '3' }],
225
+ });
226
+ expect(result.score).toEqual(0.6);
227
+ });
228
+
229
+ it('returns a score of 0.6 for 3/5 correct answers and 2 incorrect answer', async () => {
230
+ const result = await outcome(question, {
231
+ answers: [{ id: '6' }, { id: '4' }, { id: '2' }, { id: '3' }, { id: '1' }],
232
+ });
233
+ expect(result.score).toEqual(0.6);
234
+ });
235
+
236
+ it('returns a score of 0.8 for 3/5 correct answers and 1 incorrect answer', async () => {
237
+ const result = await outcome(question, {
238
+ answers: [{ id: '6' }, { id: '4' }, { id: '2' }, { id: '5' }, { id: '1' }],
239
+ });
240
+ expect(result.score).toEqual(0.8);
241
+ });
242
+
243
+ it('returns a score of 0.6 for 3/5 correct answers and 2 incorrect answers', async () => {
244
+ const result = await outcome(question, {
245
+ answers: [{ id: '6' }, { id: '4' }, { id: '2' }, { id: '5' }, { id: '1' }, { id: '3' }],
246
+ });
247
+ expect(result.score).toEqual(0.6);
248
+ });
249
+ });
250
+
251
+ const returnOutcome = (session) => {
252
+ it(`returns empty: true when session is ${JSON.stringify(session)}`, async () => {
253
+ const result = await outcome(question, session);
254
+ expect(result).toEqual({ score: 0, empty: true, traceLog: ['No hotspots selected. Score: 0.'] });
255
+ });
256
+ };
257
+
258
+ returnOutcome(undefined);
259
+ returnOutcome(null);
260
+ returnOutcome({});
261
+ });
262
+
263
+ describe('model', () => {
264
+ describe('mode: gather', () => {
265
+ beforeEach(async () => {
266
+ session = {};
267
+ env = { mode: 'gather' };
268
+ result = await model(question, session, env);
269
+ });
270
+
271
+ it('returns disabled', () => {
272
+ expect(result.disabled).toEqual(false);
273
+ });
274
+
275
+ it('returns mode', () => {
276
+ expect(result.mode).toEqual('gather');
277
+ });
278
+
279
+ it('returns prompt', () => {
280
+ expect(result.prompt).toEqual('prompt');
281
+ });
282
+
283
+ it('returns dimensions', () => {
284
+ expect(result.dimensions).toEqual({ height: 0, width: 0 });
285
+ });
286
+
287
+ it('returns outlineColor', () => {
288
+ expect(result.outlineColor).toEqual('blue');
289
+ });
290
+
291
+ it('returns hotspotColor', () => {
292
+ expect(result.hotspotColor).toEqual('lightblue');
293
+ });
294
+
295
+ it('returns multipleCorrect', () => {
296
+ expect(result.multipleCorrect).toEqual(true);
297
+ });
298
+
299
+ it('returns shapes', () => {
300
+ expect(result.shapes.rectangles).toEqual(
301
+ expect.arrayContaining([{ id: '1' }, { id: '2' }, { id: '3' }]),
302
+ );
303
+ expect(result.shapes.polygons).toEqual(expect.arrayContaining([{ id: '4' }]));
304
+ });
305
+
306
+ it('does not return responseCorrect', () => {
307
+ expect(result.responseCorrect).toBe(undefined);
308
+ });
309
+ });
310
+
311
+ describe('mode: view', () => {
312
+ beforeEach(async () => {
313
+ session = {};
314
+ env = { mode: 'view' };
315
+ result = await model(question, session, env);
316
+ });
317
+
318
+ it('returns disabled', () => {
319
+ expect(result.disabled).toEqual(true);
320
+ });
321
+ });
322
+
323
+ describe('mode: evaluate', () => {
324
+ beforeEach(async () => {
325
+ session = { answers: [] };
326
+ env = { mode: 'evaluate' };
327
+ result = await model(question, session, env);
328
+ return result;
329
+ });
330
+
331
+ it('returns choices w/ correct', () => {
332
+ expect(result.shapes.rectangles).toEqual(
333
+ expect.arrayContaining([{ id: '1', correct: true }, { id: '2' }, { id: '3' }]),
334
+ );
335
+ expect(result.shapes.polygons).toEqual(expect.arrayContaining([{ id: '4', correct: true }]));
336
+ });
337
+
338
+ it('returns is response correct', () => {
339
+ expect(result.responseCorrect).toEqual(false);
340
+ });
341
+ });
342
+ });
343
+
344
+ describe('isResponseCorrect', () => {
345
+ const returnIsResponseCorect = (session) => {
346
+ it(`response is not correct if session is ${JSON.stringify(session)}`, () => {
347
+ expect(isResponseCorrect(question, session)).toEqual(false);
348
+ });
349
+ };
350
+
351
+ returnIsResponseCorect(undefined);
352
+ returnIsResponseCorect(null);
353
+ returnIsResponseCorect({});
354
+ });
355
+
356
+ describe('correct response', () => {
357
+ it('returns correct response if env is correct', async () => {
358
+ const sess = await createCorrectResponseSession(question, {
359
+ mode: 'gather',
360
+ role: 'instructor',
361
+ });
362
+ expect(sess).toEqual({ answers: [{ id: '1' }, { id: '4' }, { id: '5' }], id: '1' });
363
+ });
364
+
365
+ it('returns null env is student', async () => {
366
+ const noResult = await createCorrectResponseSession(question, {
367
+ mode: 'gather',
368
+ role: 'student',
369
+ });
370
+ expect(noResult).toBeNull();
371
+ });
372
+ });
373
+
374
+ describe('shouldIncludeCorrectResponse behavior', () => {
375
+ it('includes correct property when shouldIncludeCorrectResponse is true', async () => {
376
+ env = { mode: 'evaluate' };
377
+ result = await model(question, {}, env);
378
+
379
+ expect(result.shapes.rectangles).toEqual(
380
+ expect.arrayContaining([{ id: '1', correct: true }, { id: '2' }, { id: '3' }])
381
+ );
382
+ expect(result.shapes.polygons).toEqual(expect.arrayContaining([{ id: '4', correct: true }]));
383
+ expect(result.shapes.circles).toEqual(expect.arrayContaining([{ id: '5', correct: true }]));
384
+ });
385
+
386
+ it('excludes correct property when shouldIncludeCorrectResponse is false', async () => {
387
+ env = { mode: 'gather' };
388
+ result = await model(question, {}, env);
389
+
390
+ expect(result.shapes.rectangles).toEqual(
391
+ expect.arrayContaining([{ id: '1' }, { id: '2' }, { id: '3' }])
392
+ );
393
+ expect(result.shapes.polygons).toEqual(expect.arrayContaining([{ id: '4' }]));
394
+ expect(result.shapes.circles).toEqual(expect.arrayContaining([{ id: '5' }]));
395
+ });
396
+
397
+ it('includes correct for instructor in view mode', async () => {
398
+ env = { mode: 'view', role: 'instructor' };
399
+ result = await model(question, {}, env);
400
+
401
+ expect(result.shapes.rectangles).toEqual(
402
+ expect.arrayContaining([{ id: '1', correct: true }, { id: '2' }, { id: '3' }])
403
+ );
404
+ expect(result.shapes.polygons).toEqual(expect.arrayContaining([{ id: '4', correct: true }]));
405
+ expect(result.shapes.circles).toEqual(expect.arrayContaining([{ id: '5', correct: true }]));
406
+ });
407
+
408
+ it('excludes correct for student in view mode', async () => {
409
+ env = { mode: 'view', role: 'student' };
410
+ result = await model(question, {}, env);
411
+
412
+ expect(result.shapes.rectangles).toEqual(
413
+ expect.arrayContaining([{ id: '1' }, { id: '2' }, { id: '3' }])
414
+ );
415
+ expect(result.shapes.polygons).toEqual(expect.arrayContaining([{ id: '4' }]));
416
+ expect(result.shapes.circles).toEqual(expect.arrayContaining([{ id: '5' }]));
417
+ });
418
+ });
419
+ });
@@ -0,0 +1,5 @@
1
+ describe('utils', () => {
2
+ xit('todo', () => {
3
+ expect(true).toEqual(false);
4
+ });
5
+ });
@@ -0,0 +1,19 @@
1
+ export default {
2
+ dimensions: { height: 0, width: 0 },
3
+ hotspotColor: 'rgba(137, 183, 244, 0.25)',
4
+ hotspotList: ['rgba(137, 183, 244, 0.25)'],
5
+ imageUrl: '',
6
+ multipleCorrect: true,
7
+ outlineColor: 'blue',
8
+ outlineList: ['blue'],
9
+ partialScoring: false,
10
+ prompt: '',
11
+ promptEnabled: true,
12
+ rationaleEnabled: true,
13
+ shapes: { rectangles: [], polygons: [], circles: [] },
14
+ strokeWidth: 5,
15
+ studentInstructionsEnabled: true,
16
+ teacherInstructions: '',
17
+ teacherInstructionsEnabled: true,
18
+ toolbarEditorPosition: 'bottom',
19
+ };