@pie-element/hotspot 11.1.1-next.0 → 11.1.1-next.101

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 (340) 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 +198 -0
  36. package/configure/lib/index.js.map +1 -0
  37. package/configure/lib/root.js +331 -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 +213 -0
  79. package/configure/src/root.jsx +342 -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 +342 -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 +330 -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 +122 -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 +160 -0
  110. package/lib/hotspot/circle.js.map +1 -0
  111. package/lib/hotspot/container.js +291 -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 +174 -0
  118. package/lib/hotspot/index.js.map +1 -0
  119. package/lib/hotspot/polygon.js +207 -0
  120. package/lib/hotspot/polygon.js.map +1 -0
  121. package/lib/hotspot/rectangle.js +178 -0
  122. package/lib/hotspot/rectangle.js.map +1 -0
  123. package/lib/index.js +214 -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 +20 -58
  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__/index.test.jsx +64 -0
  135. package/src/hotspot/__tests__/polygon.test.jsx +502 -0
  136. package/src/hotspot/__tests__/rectangle.test.jsx +418 -0
  137. package/src/hotspot/circle.jsx +154 -0
  138. package/src/hotspot/container.jsx +297 -0
  139. package/src/hotspot/icons.js +7 -0
  140. package/src/hotspot/image-konva-tooltip.jsx +76 -0
  141. package/src/hotspot/index.jsx +179 -0
  142. package/src/hotspot/polygon.jsx +197 -0
  143. package/src/hotspot/rectangle.jsx +172 -0
  144. package/src/index.js +227 -0
  145. package/src/session-updater.js +29 -0
  146. package/dist/author/DeleteWidget.d.ts +0 -38
  147. package/dist/author/DeleteWidget.js +0 -46
  148. package/dist/author/button.d.ts +0 -31
  149. package/dist/author/button.js +0 -27
  150. package/dist/author/buttons/circle.d.ts +0 -18
  151. package/dist/author/buttons/circle.js +0 -25
  152. package/dist/author/buttons/polygon.d.ts +0 -18
  153. package/dist/author/buttons/polygon.js +0 -36
  154. package/dist/author/buttons/rectangle.d.ts +0 -18
  155. package/dist/author/buttons/rectangle.js +0 -36
  156. package/dist/author/defaults.d.ts +0 -157
  157. package/dist/author/defaults.js +0 -119
  158. package/dist/author/hotspot-circle.d.ts +0 -21
  159. package/dist/author/hotspot-circle.js +0 -124
  160. package/dist/author/hotspot-container.d.ts +0 -29
  161. package/dist/author/hotspot-container.js +0 -210
  162. package/dist/author/hotspot-drawable.d.ts +0 -31
  163. package/dist/author/hotspot-drawable.js +0 -312
  164. package/dist/author/hotspot-palette.d.ts +0 -14
  165. package/dist/author/hotspot-palette.js +0 -72
  166. package/dist/author/hotspot-polygon.d.ts +0 -38
  167. package/dist/author/hotspot-polygon.js +0 -200
  168. package/dist/author/hotspot-rectangle.d.ts +0 -20
  169. package/dist/author/hotspot-rectangle.js +0 -119
  170. package/dist/author/icons.d.ts +0 -9
  171. package/dist/author/icons.js +0 -4
  172. package/dist/author/image-konva.d.ts +0 -19
  173. package/dist/author/image-konva.js +0 -49
  174. package/dist/author/index.d.ts +0 -52
  175. package/dist/author/index.js +0 -143
  176. package/dist/author/root.d.ts +0 -15
  177. package/dist/author/root.js +0 -215
  178. package/dist/author/shapes/circle.d.ts +0 -18
  179. package/dist/author/shapes/circle.js +0 -47
  180. package/dist/author/shapes/index.d.ts +0 -12
  181. package/dist/author/shapes/polygon.d.ts +0 -19
  182. package/dist/author/shapes/polygon.js +0 -51
  183. package/dist/author/shapes/rectagle.d.ts +0 -18
  184. package/dist/author/shapes/rectagle.js +0 -57
  185. package/dist/author/shapes/utils.d.ts +0 -19
  186. package/dist/author/shapes/utils.js +0 -16
  187. package/dist/author/upload-control.d.ts +0 -29
  188. package/dist/author/upload-control.js +0 -28
  189. package/dist/author/utils.d.ts +0 -24
  190. package/dist/author/utils.js +0 -83
  191. package/dist/controller/defaults.d.ts +0 -35
  192. package/dist/controller/defaults.js +0 -29
  193. package/dist/controller/index.d.ts +0 -22
  194. package/dist/controller/index.js +0 -154
  195. package/dist/controller/utils.d.ts +0 -10
  196. package/dist/controller/utils.js +0 -13
  197. package/dist/delivery/hotspot/circle.d.ts +0 -19
  198. package/dist/delivery/hotspot/circle.js +0 -100
  199. package/dist/delivery/hotspot/container.d.ts +0 -16
  200. package/dist/delivery/hotspot/container.js +0 -150
  201. package/dist/delivery/hotspot/icons.d.ts +0 -10
  202. package/dist/delivery/hotspot/icons.js +0 -4
  203. package/dist/delivery/hotspot/image-konva-tooltip.d.ts +0 -19
  204. package/dist/delivery/hotspot/image-konva-tooltip.js +0 -66
  205. package/dist/delivery/hotspot/index.d.ts +0 -17
  206. package/dist/delivery/hotspot/index.js +0 -114
  207. package/dist/delivery/hotspot/polygon.d.ts +0 -21
  208. package/dist/delivery/hotspot/polygon.js +0 -108
  209. package/dist/delivery/hotspot/rectangle.d.ts +0 -19
  210. package/dist/delivery/hotspot/rectangle.js +0 -104
  211. package/dist/delivery/index.d.ts +0 -20
  212. package/dist/delivery/index.js +0 -107
  213. package/dist/delivery/session-updater.d.ts +0 -10
  214. package/dist/delivery/session-updater.js +0 -14
  215. package/dist/index.d.ts +0 -1
  216. package/dist/index.iife.d.ts +0 -8
  217. package/dist/index.iife.js +0 -169
  218. package/dist/index.js +0 -2
  219. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_DataView.js +0 -6
  220. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Hash.js +0 -16
  221. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_ListCache.js +0 -16
  222. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Map.js +0 -6
  223. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_MapCache.js +0 -16
  224. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Promise.js +0 -6
  225. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Set.js +0 -6
  226. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_SetCache.js +0 -11
  227. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Stack.js +0 -14
  228. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Symbol.js +0 -5
  229. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Uint8Array.js +0 -5
  230. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_WeakMap.js +0 -6
  231. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_arrayEach.js +0 -7
  232. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_arrayFilter.js +0 -10
  233. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_arrayLikeKeys.js +0 -15
  234. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_arrayPush.js +0 -7
  235. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_arraySome.js +0 -7
  236. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_assignValue.js +0 -10
  237. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_assocIndexOf.js +0 -8
  238. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseAssign.js +0 -8
  239. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseAssignIn.js +0 -8
  240. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseAssignValue.js +0 -12
  241. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseClone.js +0 -57
  242. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseCreate.js +0 -14
  243. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseGetAllKeys.js +0 -9
  244. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseGetTag.js +0 -10
  245. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsArguments.js +0 -9
  246. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsEqual.js +0 -8
  247. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsEqualDeep.js +0 -30
  248. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsMap.js +0 -9
  249. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsNative.js +0 -11
  250. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsSet.js +0 -9
  251. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsTypedArray.js +0 -11
  252. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseKeys.js +0 -12
  253. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseKeysIn.js +0 -13
  254. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseTimes.js +0 -7
  255. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseUnary.js +0 -8
  256. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cacheHas.js +0 -6
  257. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cloneArrayBuffer.js +0 -8
  258. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cloneBuffer.js +0 -10
  259. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cloneDataView.js +0 -8
  260. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cloneRegExp.js +0 -8
  261. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cloneSymbol.js +0 -8
  262. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cloneTypedArray.js +0 -8
  263. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_copyArray.js +0 -8
  264. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_copyObject.js +0 -14
  265. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_copySymbols.js +0 -8
  266. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_copySymbolsIn.js +0 -8
  267. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_coreJsData.js +0 -5
  268. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_defineProperty.js +0 -10
  269. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_equalArrays.js +0 -35
  270. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_equalByTag.js +0 -35
  271. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_equalObjects.js +0 -32
  272. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_freeGlobal.js +0 -4
  273. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getAllKeys.js +0 -9
  274. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getAllKeysIn.js +0 -9
  275. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getMapData.js +0 -8
  276. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getNative.js +0 -9
  277. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getPrototype.js +0 -5
  278. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getRawTag.js +0 -14
  279. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getSymbols.js +0 -10
  280. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getSymbolsIn.js +0 -11
  281. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getTag.js +0 -23
  282. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getValue.js +0 -6
  283. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_hashClear.js +0 -7
  284. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_hashDelete.js +0 -7
  285. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_hashGet.js +0 -13
  286. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_hashHas.js +0 -9
  287. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_hashSet.js +0 -9
  288. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_initCloneArray.js +0 -8
  289. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_initCloneByTag.js +0 -33
  290. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_initCloneObject.js +0 -9
  291. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_isIndex.js +0 -8
  292. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_isKeyable.js +0 -7
  293. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_isMasked.js +0 -11
  294. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_isPrototype.js +0 -8
  295. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_listCacheClear.js +0 -6
  296. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_listCacheDelete.js +0 -9
  297. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_listCacheGet.js +0 -8
  298. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_listCacheHas.js +0 -7
  299. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_listCacheSet.js +0 -8
  300. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheClear.js +0 -13
  301. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheDelete.js +0 -8
  302. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheGet.js +0 -7
  303. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheHas.js +0 -7
  304. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheSet.js +0 -8
  305. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_mapToArray.js +0 -9
  306. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_nativeCreate.js +0 -5
  307. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_nativeKeys.js +0 -5
  308. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_nativeKeysIn.js +0 -8
  309. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_nodeUtil.js +0 -9
  310. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_objectToString.js +0 -7
  311. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_overArg.js +0 -8
  312. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_root.js +0 -5
  313. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_setCacheAdd.js +0 -7
  314. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_setCacheHas.js +0 -6
  315. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_setToArray.js +0 -9
  316. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_stackClear.js +0 -7
  317. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_stackDelete.js +0 -7
  318. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_stackGet.js +0 -6
  319. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_stackHas.js +0 -6
  320. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_stackSet.js +0 -16
  321. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_toSource.js +0 -15
  322. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/cloneDeep.js +0 -8
  323. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/eq.js +0 -6
  324. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isArguments.js +0 -10
  325. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isArray.js +0 -4
  326. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isArrayLike.js +0 -8
  327. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isBuffer.js +0 -6
  328. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isEmpty.js +0 -21
  329. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isEqual.js +0 -7
  330. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isFunction.js +0 -11
  331. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isLength.js +0 -7
  332. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isMap.js +0 -7
  333. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isObject.js +0 -7
  334. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isObjectLike.js +0 -6
  335. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isSet.js +0 -7
  336. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isTypedArray.js +0 -7
  337. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/keys.js +0 -9
  338. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/keysIn.js +0 -9
  339. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/stubArray.js +0 -6
  340. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/stubFalse.js +0 -6
@@ -0,0 +1,160 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = 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 _reactKonva = require("react-konva");
12
+ var _imageKonvaTooltip = _interopRequireDefault(require("./image-konva-tooltip"));
13
+ var _icons = require("./icons");
14
+ class CircleComponent extends _react.default.Component {
15
+ constructor(props) {
16
+ super(props);
17
+ (0, _defineProperty2.default)(this, "handleClick", e => {
18
+ const {
19
+ onClick,
20
+ id,
21
+ selected,
22
+ disabled
23
+ } = this.props;
24
+ if (!disabled) {
25
+ e.cancelBubble = true;
26
+ onClick({
27
+ id,
28
+ selected: !selected,
29
+ selector: 'Mouse'
30
+ });
31
+ }
32
+ });
33
+ (0, _defineProperty2.default)(this, "handleMouseEnter", () => {
34
+ const {
35
+ disabled
36
+ } = this.props;
37
+ if (!disabled) {
38
+ document.body.style.cursor = 'pointer';
39
+ }
40
+ this.setState({
41
+ hovered: true
42
+ });
43
+ });
44
+ (0, _defineProperty2.default)(this, "handleMouseLeave", () => {
45
+ document.body.style.cursor = 'default';
46
+ this.setState({
47
+ hovered: false
48
+ });
49
+ });
50
+ (0, _defineProperty2.default)(this, "getEvaluateOutlineColor", (isCorrect, markAsCorrect, outlineColor) => markAsCorrect ? 'green' : isCorrect ? outlineColor : 'red');
51
+ (0, _defineProperty2.default)(this, "getOutlineWidth", (showCorrectEnabled, selected, markAsCorrect, strokeWidth) => markAsCorrect || !markAsCorrect && !showCorrectEnabled && selected ? strokeWidth : 0);
52
+ this.state = {
53
+ hovered: false
54
+ };
55
+ }
56
+ render() {
57
+ const {
58
+ radius,
59
+ hotspotColor,
60
+ isCorrect,
61
+ isEvaluateMode,
62
+ hoverOutlineColor,
63
+ outlineColor,
64
+ selected,
65
+ focused,
66
+ x,
67
+ y,
68
+ evaluateText,
69
+ strokeWidth,
70
+ scale,
71
+ markAsCorrect,
72
+ selectedHotspotColor,
73
+ showCorrectEnabled
74
+ } = this.props;
75
+ const {
76
+ hovered
77
+ } = this.state;
78
+ const outlineColorParsed = isEvaluateMode ? this.getEvaluateOutlineColor(isCorrect, markAsCorrect, outlineColor) : outlineColor;
79
+ const outlineWidth = this.getOutlineWidth(showCorrectEnabled, selected, markAsCorrect, strokeWidth);
80
+ const iconX = x - 10;
81
+ const iconY = y - 10; // Adjust position for the icon
82
+
83
+ let iconSrc;
84
+ if (showCorrectEnabled) {
85
+ if (selected && isCorrect || !selected && !isCorrect) {
86
+ iconSrc = _icons.faCorrect;
87
+ }
88
+ } else {
89
+ if (selected) {
90
+ if (isCorrect) {
91
+ iconSrc = _icons.faCorrect;
92
+ } else {
93
+ iconSrc = _icons.faWrong;
94
+ }
95
+ } else if (!isCorrect) {
96
+ iconSrc = _icons.faWrong;
97
+ }
98
+ }
99
+ const useHoveredStyle = (hovered || focused) && hoverOutlineColor;
100
+ return /*#__PURE__*/_react.default.createElement(_reactKonva.Group, {
101
+ scaleX: scale,
102
+ scaleY: scale,
103
+ onMouseLeave: this.handleMouseLeave,
104
+ onMouseEnter: this.handleMouseEnter
105
+ }, /*#__PURE__*/_react.default.createElement(_reactKonva.Circle, {
106
+ radius: radius,
107
+ fill: selected && selectedHotspotColor ? selectedHotspotColor : hotspotColor,
108
+ onClick: this.handleClick,
109
+ onTap: this.handleClick,
110
+ draggable: false,
111
+ stroke: useHoveredStyle && !selected ? 'transparent' : outlineColorParsed,
112
+ strokeWidth: useHoveredStyle && !selected ? 0 : outlineWidth,
113
+ x: x,
114
+ y: y
115
+ }), useHoveredStyle && /*#__PURE__*/_react.default.createElement(_reactKonva.Rect, {
116
+ x: x - radius,
117
+ y: y - radius,
118
+ width: radius * 2,
119
+ height: radius * 2,
120
+ stroke: hoverOutlineColor,
121
+ strokeWidth: strokeWidth,
122
+ listening: false
123
+ }), isEvaluateMode && iconSrc ? /*#__PURE__*/_react.default.createElement(_imageKonvaTooltip.default, {
124
+ src: iconSrc,
125
+ x: iconX,
126
+ y: iconY,
127
+ tooltip: evaluateText
128
+ }) : null);
129
+ }
130
+ }
131
+ CircleComponent.propTypes = {
132
+ radius: _propTypes.default.number.isRequired,
133
+ hotspotColor: _propTypes.default.string.isRequired,
134
+ id: _propTypes.default.string.isRequired,
135
+ isCorrect: _propTypes.default.oneOfType([_propTypes.default.bool, _propTypes.default.string]),
136
+ isEvaluateMode: _propTypes.default.bool.isRequired,
137
+ disabled: _propTypes.default.bool.isRequired,
138
+ focused: _propTypes.default.bool,
139
+ hoverOutlineColor: _propTypes.default.string,
140
+ onClick: _propTypes.default.func.isRequired,
141
+ outlineColor: _propTypes.default.string.isRequired,
142
+ selected: _propTypes.default.bool.isRequired,
143
+ x: _propTypes.default.number.isRequired,
144
+ y: _propTypes.default.number.isRequired,
145
+ evaluateText: _propTypes.default.string,
146
+ strokeWidth: _propTypes.default.number,
147
+ scale: _propTypes.default.number,
148
+ selectedHotspotColor: _propTypes.default.string,
149
+ markAsCorrect: _propTypes.default.bool.isRequired,
150
+ showCorrectEnabled: _propTypes.default.bool.isRequired
151
+ };
152
+ CircleComponent.defaultProps = {
153
+ isCorrect: false,
154
+ evaluateText: null,
155
+ focused: false,
156
+ strokeWidth: 5,
157
+ scale: 1
158
+ };
159
+ var _default = exports.default = CircleComponent;
160
+ //# sourceMappingURL=circle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"circle.js","names":["_react","_interopRequireDefault","require","_propTypes","_reactKonva","_imageKonvaTooltip","_icons","CircleComponent","React","Component","constructor","props","_defineProperty2","default","e","onClick","id","selected","disabled","cancelBubble","selector","document","body","style","cursor","setState","hovered","isCorrect","markAsCorrect","outlineColor","showCorrectEnabled","strokeWidth","state","render","radius","hotspotColor","isEvaluateMode","hoverOutlineColor","focused","x","y","evaluateText","scale","selectedHotspotColor","outlineColorParsed","getEvaluateOutlineColor","outlineWidth","getOutlineWidth","iconX","iconY","iconSrc","faCorrect","faWrong","useHoveredStyle","createElement","Group","scaleX","scaleY","onMouseLeave","handleMouseLeave","onMouseEnter","handleMouseEnter","Circle","fill","handleClick","onTap","draggable","stroke","Rect","width","height","listening","src","tooltip","propTypes","PropTypes","number","isRequired","string","oneOfType","bool","func","defaultProps","_default","exports"],"sources":["../../src/hotspot/circle.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Circle, Group, Rect } from 'react-konva';\nimport ImageComponent from './image-konva-tooltip';\nimport { faCorrect, faWrong } from './icons';\n\nclass CircleComponent extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n hovered: false,\n };\n }\n\n handleClick = (e) => {\n const { onClick, id, selected, disabled } = this.props;\n\n if (!disabled) {\n e.cancelBubble = true;\n onClick({ id, selected: !selected, selector: 'Mouse' });\n }\n };\n\n handleMouseEnter = () => {\n const { disabled } = this.props;\n\n if (!disabled) {\n document.body.style.cursor = 'pointer';\n }\n this.setState({ hovered: true });\n };\n\n handleMouseLeave = () => {\n document.body.style.cursor = 'default';\n this.setState({ hovered: false });\n };\n\n getEvaluateOutlineColor = (isCorrect, markAsCorrect, outlineColor) =>\n markAsCorrect ? 'green' : isCorrect ? outlineColor : 'red';\n\n getOutlineWidth = (showCorrectEnabled, selected, markAsCorrect, strokeWidth) =>\n markAsCorrect || (!markAsCorrect && !showCorrectEnabled && selected) ? strokeWidth : 0;\n\n render() {\n const {\n radius,\n hotspotColor,\n isCorrect,\n isEvaluateMode,\n hoverOutlineColor,\n outlineColor,\n selected,\n focused,\n x,\n y,\n evaluateText,\n strokeWidth,\n scale,\n markAsCorrect,\n selectedHotspotColor,\n showCorrectEnabled,\n } = this.props;\n\n const { hovered } = this.state;\n\n const outlineColorParsed = isEvaluateMode\n ? this.getEvaluateOutlineColor(isCorrect, markAsCorrect, outlineColor)\n : outlineColor;\n\n const outlineWidth = this.getOutlineWidth(showCorrectEnabled, selected, markAsCorrect, strokeWidth);\n\n const iconX = x - 10;\n const iconY = y - 10; // Adjust position for the icon\n\n let iconSrc;\n if (showCorrectEnabled) {\n if ((selected && isCorrect) || (!selected && !isCorrect)) {\n iconSrc = faCorrect;\n }\n } else {\n if (selected) {\n if (isCorrect) {\n iconSrc = faCorrect;\n } else {\n iconSrc = faWrong;\n }\n } else if (!isCorrect) {\n iconSrc = faWrong;\n }\n }\n\n const useHoveredStyle = (hovered || focused) && hoverOutlineColor;\n\n return (\n <Group scaleX={scale} scaleY={scale} onMouseLeave={this.handleMouseLeave} onMouseEnter={this.handleMouseEnter}>\n <Circle\n radius={radius}\n fill={selected && selectedHotspotColor ? selectedHotspotColor : hotspotColor}\n onClick={this.handleClick}\n onTap={this.handleClick}\n draggable={false}\n stroke={useHoveredStyle && !selected ? 'transparent' : outlineColorParsed}\n strokeWidth={useHoveredStyle && !selected ? 0 : outlineWidth}\n x={x}\n y={y}\n />\n {useHoveredStyle && (\n <Rect\n x={x - radius}\n y={y - radius}\n width={radius * 2}\n height={radius * 2}\n stroke={hoverOutlineColor}\n strokeWidth={strokeWidth}\n listening={false}\n />\n )}\n {isEvaluateMode && iconSrc ? <ImageComponent src={iconSrc} x={iconX} y={iconY} tooltip={evaluateText} /> : null}\n </Group>\n );\n }\n}\n\nCircleComponent.propTypes = {\n radius: PropTypes.number.isRequired,\n hotspotColor: PropTypes.string.isRequired,\n id: PropTypes.string.isRequired,\n isCorrect: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n isEvaluateMode: PropTypes.bool.isRequired,\n disabled: PropTypes.bool.isRequired,\n focused: PropTypes.bool,\n hoverOutlineColor: PropTypes.string,\n onClick: PropTypes.func.isRequired,\n outlineColor: PropTypes.string.isRequired,\n selected: PropTypes.bool.isRequired,\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired,\n evaluateText: PropTypes.string,\n strokeWidth: PropTypes.number,\n scale: PropTypes.number,\n selectedHotspotColor: PropTypes.string,\n markAsCorrect: PropTypes.bool.isRequired,\n showCorrectEnabled: PropTypes.bool.isRequired,\n};\n\nCircleComponent.defaultProps = {\n isCorrect: false,\n evaluateText: null,\n focused: false,\n strokeWidth: 5,\n scale: 1,\n};\n\nexport default CircleComponent;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,291 @@
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.Container = 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 _reactKonva = require("react-konva");
12
+ var _styles = require("@mui/material/styles");
13
+ var _rectangle = _interopRequireDefault(require("./rectangle"));
14
+ var _polygon = _interopRequireDefault(require("./polygon"));
15
+ var _circle = _interopRequireDefault(require("./circle"));
16
+ const BaseContainer = (0, _styles.styled)('div')(({
17
+ theme
18
+ }) => ({
19
+ marginTop: theme.spacing(2),
20
+ marginBottom: theme.spacing(2),
21
+ position: 'relative',
22
+ background: theme.palette.common.white,
23
+ border: `${theme.spacing(1)} solid ${theme.palette.common.white}`,
24
+ width: 'fit-content',
25
+ maxWidth: '100%',
26
+ overflowX: 'auto'
27
+ }));
28
+ const HiddenFocusable = (0, _styles.styled)('span')({
29
+ position: 'absolute',
30
+ width: 1,
31
+ height: 1,
32
+ overflow: 'hidden',
33
+ clip: 'rect(0, 0, 0, 0)',
34
+ whiteSpace: 'nowrap'
35
+ });
36
+ const ImageContainer = (0, _styles.styled)('div')({
37
+ position: 'relative',
38
+ width: 'fit-content'
39
+ });
40
+ const Image = (0, _styles.styled)('img')({
41
+ alignItems: 'center',
42
+ display: 'flex',
43
+ justifyContent: 'center'
44
+ });
45
+ const StyledStage = (0, _styles.styled)(_reactKonva.Stage)({
46
+ left: 0,
47
+ top: 0,
48
+ position: 'absolute'
49
+ });
50
+ class Container extends _react.default.Component {
51
+ constructor(props) {
52
+ super(props);
53
+ (0, _defineProperty2.default)(this, "correctness", (isCorrect, isChecked) => isCorrect ? isChecked : !isChecked);
54
+ (0, _defineProperty2.default)(this, "getEvaluateText", (isCorrect, selected) => {
55
+ if (selected && isCorrect) {
56
+ return 'Correctly\nselected';
57
+ }
58
+ if (selected && !isCorrect) {
59
+ return 'Should not have\nbeen selected';
60
+ }
61
+ if (!selected && isCorrect) {
62
+ return 'Should have\nbeen selected';
63
+ }
64
+ return null;
65
+ });
66
+ (0, _defineProperty2.default)(this, "getAllShapesSorted", () => {
67
+ const {
68
+ shapes: {
69
+ rectangles = [],
70
+ polygons = [],
71
+ circles = []
72
+ }
73
+ } = this.props;
74
+ const allShapes = [...rectangles.map(s => ({
75
+ ...s,
76
+ type: 'rectangle'
77
+ })), ...polygons.map(s => ({
78
+ ...s,
79
+ type: 'polygon'
80
+ })), ...circles.map(s => ({
81
+ ...s,
82
+ type: 'circle'
83
+ }))];
84
+ allShapes.sort((a, b) => String(a.id).localeCompare(String(b.id), undefined, {
85
+ numeric: true
86
+ }));
87
+ return allShapes;
88
+ });
89
+ (0, _defineProperty2.default)(this, "handleShapeFocus", shapeId => {
90
+ this.setState({
91
+ focusedShapeId: shapeId
92
+ });
93
+ });
94
+ (0, _defineProperty2.default)(this, "handleShapeBlur", () => {
95
+ this.setState({
96
+ focusedShapeId: null
97
+ });
98
+ });
99
+ (0, _defineProperty2.default)(this, "handleShapeKeyDown", (e, shapeId) => {
100
+ if (e.key === 'Enter' || e.key === ' ') {
101
+ e.preventDefault();
102
+ const {
103
+ onSelectChoice,
104
+ disabled
105
+ } = this.props;
106
+ if (!disabled) {
107
+ const shape = this.getAllShapesSorted().find(s => s.id === shapeId);
108
+ if (shape) {
109
+ const selected = this.isSelected(shape);
110
+ onSelectChoice({
111
+ id: shapeId,
112
+ selected: !selected,
113
+ selector: 'Keyboard'
114
+ });
115
+ }
116
+ }
117
+ }
118
+ });
119
+ this.state = {
120
+ focusedShapeId: null
121
+ };
122
+ }
123
+ isSelected(shape) {
124
+ const selectedShape = this.props.session.answers.filter(answer => answer.id === shape.id)[0];
125
+ return !!selectedShape;
126
+ }
127
+ render() {
128
+ const {
129
+ dimensions: {
130
+ width: withProp,
131
+ height: heightProp
132
+ },
133
+ disabled,
134
+ hotspotColor,
135
+ hoverOutlineColor,
136
+ selectedHotspotColor,
137
+ imageUrl,
138
+ isEvaluateMode,
139
+ outlineColor,
140
+ onSelectChoice,
141
+ shapes: {
142
+ rectangles = [],
143
+ polygons = [],
144
+ circles = []
145
+ },
146
+ scale: SCALE,
147
+ strokeWidth,
148
+ showCorrect
149
+ } = this.props;
150
+ const {
151
+ focusedShapeId
152
+ } = this.state;
153
+ const width = withProp * SCALE;
154
+ const height = heightProp * SCALE;
155
+ const sortedShapes = this.getAllShapesSorted();
156
+ return /*#__PURE__*/_react.default.createElement(BaseContainer, {
157
+ style: {
158
+ padding: strokeWidth / 2
159
+ }
160
+ }, imageUrl ? /*#__PURE__*/_react.default.createElement(ImageContainer, null, /*#__PURE__*/_react.default.createElement(Image, {
161
+ alt: "hotspot-image",
162
+ height: "auto",
163
+ src: imageUrl,
164
+ style: {
165
+ width,
166
+ height,
167
+ maxWidth: width,
168
+ maxHeight: height
169
+ }
170
+ })) : null, /*#__PURE__*/_react.default.createElement(StyledStage, {
171
+ height: height + strokeWidth,
172
+ width: width + strokeWidth,
173
+ x: strokeWidth / 2,
174
+ y: strokeWidth / 2
175
+ }, /*#__PURE__*/_react.default.createElement(_reactKonva.Layer, null, rectangles.map(shape => {
176
+ const selected = this.isSelected(shape);
177
+ const isCorrect = isEvaluateMode ? this.correctness(shape.correct, selected) : undefined;
178
+ const evaluateText = isEvaluateMode ? this.getEvaluateText(shape.correct, selected) : null;
179
+ const markAsCorrect = !!(isEvaluateMode && showCorrect && shape.correct);
180
+ return /*#__PURE__*/_react.default.createElement(_rectangle.default, {
181
+ scale: SCALE,
182
+ isEvaluateMode: isEvaluateMode,
183
+ isCorrect: isCorrect,
184
+ evaluateText: evaluateText,
185
+ disabled: disabled,
186
+ selected: selected,
187
+ height: shape.height,
188
+ hotspotColor: hotspotColor,
189
+ hoverOutlineColor: hoverOutlineColor,
190
+ selectedHotspotColor: selectedHotspotColor,
191
+ id: shape.id,
192
+ key: shape.id,
193
+ onClick: onSelectChoice,
194
+ outlineColor: outlineColor,
195
+ width: shape.width,
196
+ x: shape.x,
197
+ y: shape.y,
198
+ strokeWidth: strokeWidth,
199
+ markAsCorrect: markAsCorrect,
200
+ showCorrectEnabled: showCorrect,
201
+ focused: focusedShapeId === shape.id
202
+ });
203
+ }), polygons.map(polygon => {
204
+ const selected = this.isSelected(polygon);
205
+ const isCorrect = isEvaluateMode ? this.correctness(polygon.correct, selected) : undefined;
206
+ const evaluateText = isEvaluateMode ? this.getEvaluateText(polygon.correct, selected) : null;
207
+ const markAsCorrect = !!(isEvaluateMode && showCorrect && polygon.correct);
208
+ return /*#__PURE__*/_react.default.createElement(_polygon.default, {
209
+ scale: SCALE,
210
+ isEvaluateMode: isEvaluateMode,
211
+ isCorrect: !!isCorrect,
212
+ evaluateText: evaluateText,
213
+ disabled: disabled,
214
+ selected: selected,
215
+ hotspotColor: hotspotColor,
216
+ id: polygon.id,
217
+ key: polygon.id,
218
+ onClick: onSelectChoice,
219
+ outlineColor: outlineColor,
220
+ points: polygon.points,
221
+ strokeWidth: strokeWidth,
222
+ markAsCorrect: markAsCorrect,
223
+ selectedHotspotColor: selectedHotspotColor,
224
+ hoverOutlineColor: hoverOutlineColor,
225
+ showCorrectEnabled: showCorrect,
226
+ focused: focusedShapeId === polygon.id
227
+ });
228
+ }), circles.map(shape => {
229
+ const selected = this.isSelected(shape);
230
+ const isCorrect = isEvaluateMode ? this.correctness(shape.correct, selected) : undefined;
231
+ const evaluateText = isEvaluateMode ? this.getEvaluateText(shape.correct, selected) : null;
232
+ const markAsCorrect = !!(isEvaluateMode && showCorrect && shape.correct);
233
+ return /*#__PURE__*/_react.default.createElement(_circle.default, {
234
+ scale: SCALE,
235
+ isEvaluateMode: isEvaluateMode,
236
+ isCorrect: isCorrect,
237
+ evaluateText: evaluateText,
238
+ disabled: disabled,
239
+ selected: selected,
240
+ radius: shape.radius,
241
+ hotspotColor: hotspotColor,
242
+ id: shape.id,
243
+ key: shape.id,
244
+ onClick: onSelectChoice,
245
+ outlineColor: outlineColor,
246
+ x: shape.x,
247
+ y: shape.y,
248
+ strokeWidth: strokeWidth,
249
+ markAsCorrect: markAsCorrect,
250
+ selectedHotspotColor: selectedHotspotColor,
251
+ hoverOutlineColor: hoverOutlineColor,
252
+ showCorrectEnabled: showCorrect,
253
+ focused: focusedShapeId === shape.id
254
+ });
255
+ }))), sortedShapes.map(shape => {
256
+ const selected = this.isSelected(shape);
257
+ return /*#__PURE__*/_react.default.createElement(HiddenFocusable, {
258
+ key: `focus-${shape.id}`,
259
+ tabIndex: disabled ? -1 : 0,
260
+ role: "button",
261
+ "aria-label": shape.ariaLabel || '',
262
+ "aria-pressed": selected,
263
+ onFocus: () => this.handleShapeFocus(shape.id),
264
+ onBlur: this.handleShapeBlur,
265
+ onKeyDown: e => this.handleShapeKeyDown(e, shape.id)
266
+ });
267
+ }));
268
+ }
269
+ }
270
+ exports.Container = Container;
271
+ Container.propTypes = {
272
+ dimensions: _propTypes.default.object.isRequired,
273
+ disabled: _propTypes.default.bool.isRequired,
274
+ hotspotColor: _propTypes.default.string.isRequired,
275
+ hoverOutlineColor: _propTypes.default.string,
276
+ imageUrl: _propTypes.default.string.isRequired,
277
+ isEvaluateMode: _propTypes.default.bool.isRequired,
278
+ onSelectChoice: _propTypes.default.func.isRequired,
279
+ outlineColor: _propTypes.default.string.isRequired,
280
+ selectedHotspotColor: _propTypes.default.string,
281
+ session: _propTypes.default.object.isRequired,
282
+ shapes: _propTypes.default.object.isRequired,
283
+ strokeWidth: _propTypes.default.number,
284
+ scale: _propTypes.default.number,
285
+ showCorrect: _propTypes.default.bool
286
+ };
287
+ Container.defaultProps = {
288
+ scale: 1
289
+ };
290
+ var _default = exports.default = Container;
291
+ //# sourceMappingURL=container.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"container.js","names":["_react","_interopRequireDefault","require","_propTypes","_reactKonva","_styles","_rectangle","_polygon","_circle","BaseContainer","styled","theme","marginTop","spacing","marginBottom","position","background","palette","common","white","border","width","maxWidth","overflowX","HiddenFocusable","height","overflow","clip","whiteSpace","ImageContainer","Image","alignItems","display","justifyContent","StyledStage","Stage","left","top","Container","React","Component","constructor","props","_defineProperty2","default","isCorrect","isChecked","selected","shapes","rectangles","polygons","circles","allShapes","map","s","type","sort","a","b","String","id","localeCompare","undefined","numeric","shapeId","setState","focusedShapeId","e","key","preventDefault","onSelectChoice","disabled","shape","getAllShapesSorted","find","isSelected","selector","state","selectedShape","session","answers","filter","answer","render","dimensions","withProp","heightProp","hotspotColor","hoverOutlineColor","selectedHotspotColor","imageUrl","isEvaluateMode","outlineColor","scale","SCALE","strokeWidth","showCorrect","sortedShapes","createElement","style","padding","alt","src","maxHeight","x","y","Layer","correctness","correct","evaluateText","getEvaluateText","markAsCorrect","onClick","showCorrectEnabled","focused","polygon","points","radius","tabIndex","role","ariaLabel","onFocus","handleShapeFocus","onBlur","handleShapeBlur","onKeyDown","handleShapeKeyDown","exports","propTypes","PropTypes","object","isRequired","bool","string","func","number","defaultProps","_default"],"sources":["../../src/hotspot/container.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Layer, Stage } from 'react-konva';\nimport { styled } from '@mui/material/styles';\n\nimport Rectangle from './rectangle';\nimport Polygon from './polygon';\nimport Circle from './circle';\n\nconst BaseContainer = styled('div')(({ theme }) => ({\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(2),\n position: 'relative',\n background: theme.palette.common.white,\n border: `${theme.spacing(1)} solid ${theme.palette.common.white}`,\n width: 'fit-content',\n maxWidth: '100%',\n overflowX: 'auto',\n}));\n\nconst HiddenFocusable = styled('span')({\n position: 'absolute',\n width: 1,\n height: 1,\n overflow: 'hidden',\n clip: 'rect(0, 0, 0, 0)',\n whiteSpace: 'nowrap',\n});\n\nconst ImageContainer = styled('div')({\n position: 'relative',\n width: 'fit-content',\n});\n\nconst Image = styled('img')({\n alignItems: 'center',\n display: 'flex',\n justifyContent: 'center',\n});\n\nconst StyledStage = styled(Stage)({\n left: 0,\n top: 0,\n position: 'absolute',\n});\n\nexport class Container extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n focusedShapeId: null,\n };\n }\n\n isSelected(shape) {\n const selectedShape = this.props.session.answers.filter((answer) => answer.id === shape.id)[0];\n return !!selectedShape;\n }\n\n correctness = (isCorrect, isChecked) => (isCorrect ? isChecked : !isChecked);\n\n getEvaluateText = (isCorrect, selected) => {\n if (selected && isCorrect) {\n return 'Correctly\\nselected';\n }\n\n if (selected && !isCorrect) {\n return 'Should not have\\nbeen selected';\n }\n\n if (!selected && isCorrect) {\n return 'Should have\\nbeen selected';\n }\n\n return null;\n };\n\n getAllShapesSorted = () => {\n const { shapes: { rectangles = [], polygons = [], circles = [] } } = this.props;\n const allShapes = [\n ...rectangles.map((s) => ({ ...s, type: 'rectangle' })),\n ...polygons.map((s) => ({ ...s, type: 'polygon' })),\n ...circles.map((s) => ({ ...s, type: 'circle' })),\n ];\n allShapes.sort((a, b) => String(a.id).localeCompare(String(b.id), undefined, { numeric: true }));\n\n return allShapes;\n };\n\n handleShapeFocus = (shapeId) => {\n this.setState({ focusedShapeId: shapeId });\n };\n\n handleShapeBlur = () => {\n this.setState({ focusedShapeId: null });\n };\n\n handleShapeKeyDown = (e, shapeId) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n\n const { onSelectChoice, disabled } = this.props;\n\n if (!disabled) {\n const shape = this.getAllShapesSorted().find((s) => s.id === shapeId);\n\n if (shape) {\n const selected = this.isSelected(shape);\n\n onSelectChoice({ id: shapeId, selected: !selected, selector: 'Keyboard' });\n }\n }\n }\n };\n\n render() {\n const {\n dimensions: { width: withProp, height: heightProp },\n disabled,\n hotspotColor,\n hoverOutlineColor,\n selectedHotspotColor,\n imageUrl,\n isEvaluateMode,\n outlineColor,\n onSelectChoice,\n shapes: { rectangles = [], polygons = [], circles = [] },\n scale: SCALE,\n strokeWidth,\n showCorrect,\n } = this.props;\n\n const { focusedShapeId } = this.state;\n\n const width = withProp * SCALE;\n const height = heightProp * SCALE;\n\n const sortedShapes = this.getAllShapesSorted();\n\n return (\n <BaseContainer style={{ padding: strokeWidth / 2 }}>\n {imageUrl ? (\n <ImageContainer>\n <Image\n alt=\"hotspot-image\"\n height=\"auto\"\n src={imageUrl}\n style={{ width, height, maxWidth: width, maxHeight: height }}\n />\n </ImageContainer>\n ) : null}\n\n <StyledStage\n height={height + strokeWidth}\n width={width + strokeWidth}\n x={strokeWidth / 2}\n y={strokeWidth / 2}\n >\n <Layer>\n {rectangles.map((shape) => {\n const selected = this.isSelected(shape);\n const isCorrect = isEvaluateMode ? this.correctness(shape.correct, selected) : undefined;\n const evaluateText = isEvaluateMode ? this.getEvaluateText(shape.correct, selected) : null;\n const markAsCorrect = !!(isEvaluateMode && showCorrect && shape.correct);\n\n return (\n <Rectangle\n scale={SCALE}\n isEvaluateMode={isEvaluateMode}\n isCorrect={isCorrect}\n evaluateText={evaluateText}\n disabled={disabled}\n selected={selected}\n height={shape.height}\n hotspotColor={hotspotColor}\n hoverOutlineColor={hoverOutlineColor}\n selectedHotspotColor={selectedHotspotColor}\n id={shape.id}\n key={shape.id}\n onClick={onSelectChoice}\n outlineColor={outlineColor}\n width={shape.width}\n x={shape.x}\n y={shape.y}\n strokeWidth={strokeWidth}\n markAsCorrect={markAsCorrect}\n showCorrectEnabled={showCorrect}\n focused={focusedShapeId === shape.id}\n />\n );\n })}\n {polygons.map((polygon) => {\n const selected = this.isSelected(polygon);\n const isCorrect = isEvaluateMode ? this.correctness(polygon.correct, selected) : undefined;\n const evaluateText = isEvaluateMode ? this.getEvaluateText(polygon.correct, selected) : null;\n const markAsCorrect = !!(isEvaluateMode && showCorrect && polygon.correct);\n\n return (\n <Polygon\n scale={SCALE}\n isEvaluateMode={isEvaluateMode}\n isCorrect={!!isCorrect}\n evaluateText={evaluateText}\n disabled={disabled}\n selected={selected}\n hotspotColor={hotspotColor}\n id={polygon.id}\n key={polygon.id}\n onClick={onSelectChoice}\n outlineColor={outlineColor}\n points={polygon.points}\n strokeWidth={strokeWidth}\n markAsCorrect={markAsCorrect}\n selectedHotspotColor={selectedHotspotColor}\n hoverOutlineColor={hoverOutlineColor}\n showCorrectEnabled={showCorrect}\n focused={focusedShapeId === polygon.id}\n />\n );\n })}\n {circles.map((shape) => {\n const selected = this.isSelected(shape);\n const isCorrect = isEvaluateMode ? this.correctness(shape.correct, selected) : undefined;\n const evaluateText = isEvaluateMode ? this.getEvaluateText(shape.correct, selected) : null;\n const markAsCorrect = !!(isEvaluateMode && showCorrect && shape.correct);\n\n return (\n <Circle\n scale={SCALE}\n isEvaluateMode={isEvaluateMode}\n isCorrect={isCorrect}\n evaluateText={evaluateText}\n disabled={disabled}\n selected={selected}\n radius={shape.radius}\n hotspotColor={hotspotColor}\n id={shape.id}\n key={shape.id}\n onClick={onSelectChoice}\n outlineColor={outlineColor}\n x={shape.x}\n y={shape.y}\n strokeWidth={strokeWidth}\n markAsCorrect={markAsCorrect}\n selectedHotspotColor={selectedHotspotColor}\n hoverOutlineColor={hoverOutlineColor}\n showCorrectEnabled={showCorrect}\n focused={focusedShapeId === shape.id}\n />\n );\n })}\n </Layer>\n </StyledStage>\n\n {sortedShapes.map((shape) => {\n const selected = this.isSelected(shape);\n\n return (\n <HiddenFocusable\n key={`focus-${shape.id}`}\n tabIndex={disabled ? -1 : 0}\n role=\"button\"\n aria-label={shape.ariaLabel || ''}\n aria-pressed={selected}\n onFocus={() => this.handleShapeFocus(shape.id)}\n onBlur={this.handleShapeBlur}\n onKeyDown={(e) => this.handleShapeKeyDown(e, shape.id)}\n />\n );\n })}\n </BaseContainer>\n );\n }\n}\n\nContainer.propTypes = {\n dimensions: PropTypes.object.isRequired,\n disabled: PropTypes.bool.isRequired,\n hotspotColor: PropTypes.string.isRequired,\n hoverOutlineColor: PropTypes.string,\n imageUrl: PropTypes.string.isRequired,\n isEvaluateMode: PropTypes.bool.isRequired,\n onSelectChoice: PropTypes.func.isRequired,\n outlineColor: PropTypes.string.isRequired,\n selectedHotspotColor: PropTypes.string,\n session: PropTypes.object.isRequired,\n shapes: PropTypes.object.isRequired,\n strokeWidth: PropTypes.number,\n scale: PropTypes.number,\n showCorrect: PropTypes.bool,\n};\n\nContainer.defaultProps = {\n scale: 1,\n};\n\nexport default Container;\n"],"mappings":"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","ignoreList":[]}