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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (354) hide show
  1. package/configure.js +2 -0
  2. package/controller.js +1 -0
  3. package/dist/author/DeleteWidget.d.ts +38 -0
  4. package/dist/author/DeleteWidget.js +46 -0
  5. package/dist/author/button.d.ts +31 -0
  6. package/dist/author/button.js +27 -0
  7. package/dist/author/buttons/circle.d.ts +18 -0
  8. package/dist/author/buttons/circle.js +25 -0
  9. package/dist/author/buttons/polygon.d.ts +18 -0
  10. package/dist/author/buttons/polygon.js +36 -0
  11. package/dist/author/buttons/rectangle.d.ts +18 -0
  12. package/dist/author/buttons/rectangle.js +36 -0
  13. package/dist/author/defaults.d.ts +157 -0
  14. package/dist/author/defaults.js +119 -0
  15. package/dist/author/hotspot-circle.d.ts +21 -0
  16. package/dist/author/hotspot-circle.js +124 -0
  17. package/dist/author/hotspot-container.d.ts +29 -0
  18. package/dist/author/hotspot-container.js +210 -0
  19. package/dist/author/hotspot-drawable.d.ts +31 -0
  20. package/dist/author/hotspot-drawable.js +312 -0
  21. package/dist/author/hotspot-palette.d.ts +14 -0
  22. package/dist/author/hotspot-palette.js +72 -0
  23. package/dist/author/hotspot-polygon.d.ts +38 -0
  24. package/dist/author/hotspot-polygon.js +200 -0
  25. package/dist/author/hotspot-rectangle.d.ts +20 -0
  26. package/dist/author/hotspot-rectangle.js +119 -0
  27. package/dist/author/icons.d.ts +9 -0
  28. package/dist/author/icons.js +4 -0
  29. package/dist/author/image-konva.d.ts +19 -0
  30. package/dist/author/image-konva.js +49 -0
  31. package/dist/author/index.d.ts +52 -0
  32. package/dist/author/index.js +143 -0
  33. package/dist/author/root.d.ts +15 -0
  34. package/dist/author/root.js +215 -0
  35. package/dist/author/shapes/circle.d.ts +18 -0
  36. package/dist/author/shapes/circle.js +47 -0
  37. package/dist/author/shapes/index.d.ts +12 -0
  38. package/dist/author/shapes/polygon.d.ts +19 -0
  39. package/dist/author/shapes/polygon.js +51 -0
  40. package/dist/author/shapes/rectagle.d.ts +18 -0
  41. package/dist/author/shapes/rectagle.js +57 -0
  42. package/dist/author/shapes/utils.d.ts +19 -0
  43. package/dist/author/shapes/utils.js +16 -0
  44. package/dist/author/upload-control.d.ts +29 -0
  45. package/dist/author/upload-control.js +28 -0
  46. package/dist/author/utils.d.ts +24 -0
  47. package/dist/author/utils.js +83 -0
  48. package/dist/browser/ReactKonva-Z9-1H-UZ.js +19329 -0
  49. package/dist/browser/ReactKonva-Z9-1H-UZ.js.map +1 -0
  50. package/dist/browser/author/index.js +42297 -0
  51. package/dist/browser/author/index.js.map +1 -0
  52. package/dist/browser/browser-CfnAFove.js +210 -0
  53. package/dist/browser/browser-CfnAFove.js.map +1 -0
  54. package/dist/browser/controller/index.js +198 -0
  55. package/dist/browser/controller/index.js.map +1 -0
  56. package/dist/browser/delivery/index.js +2460 -0
  57. package/dist/browser/delivery/index.js.map +1 -0
  58. package/dist/browser/hotspot.css +2 -0
  59. package/dist/browser/isEqual-D3CTSc6W.js +601 -0
  60. package/dist/browser/isEqual-D3CTSc6W.js.map +1 -0
  61. package/dist/controller/defaults.d.ts +35 -0
  62. package/dist/controller/defaults.js +29 -0
  63. package/dist/controller/index.d.ts +22 -0
  64. package/dist/controller/index.js +154 -0
  65. package/dist/controller/utils.d.ts +10 -0
  66. package/dist/controller/utils.js +13 -0
  67. package/dist/delivery/hotspot/circle.d.ts +19 -0
  68. package/dist/delivery/hotspot/circle.js +100 -0
  69. package/dist/delivery/hotspot/container.d.ts +16 -0
  70. package/dist/delivery/hotspot/container.js +150 -0
  71. package/dist/delivery/hotspot/icons.d.ts +10 -0
  72. package/dist/delivery/hotspot/icons.js +4 -0
  73. package/dist/delivery/hotspot/image-konva-tooltip.d.ts +19 -0
  74. package/dist/delivery/hotspot/image-konva-tooltip.js +66 -0
  75. package/dist/delivery/hotspot/index.d.ts +17 -0
  76. package/dist/delivery/hotspot/index.js +114 -0
  77. package/dist/delivery/hotspot/polygon.d.ts +21 -0
  78. package/dist/delivery/hotspot/polygon.js +108 -0
  79. package/dist/delivery/hotspot/rectangle.d.ts +19 -0
  80. package/dist/delivery/hotspot/rectangle.js +104 -0
  81. package/dist/delivery/index.d.ts +20 -0
  82. package/dist/delivery/index.js +107 -0
  83. package/dist/delivery/session-updater.d.ts +10 -0
  84. package/dist/delivery/session-updater.js +14 -0
  85. package/dist/index.d.ts +1 -0
  86. package/dist/index.iife.d.ts +8 -0
  87. package/dist/index.iife.js +169 -0
  88. package/dist/index.js +2 -0
  89. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_DataView.js +6 -0
  90. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Hash.js +16 -0
  91. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_ListCache.js +16 -0
  92. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Map.js +6 -0
  93. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_MapCache.js +16 -0
  94. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Promise.js +6 -0
  95. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Set.js +6 -0
  96. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_SetCache.js +11 -0
  97. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Stack.js +14 -0
  98. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Symbol.js +5 -0
  99. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Uint8Array.js +5 -0
  100. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_WeakMap.js +6 -0
  101. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_arrayEach.js +7 -0
  102. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_arrayFilter.js +10 -0
  103. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_arrayLikeKeys.js +15 -0
  104. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_arrayPush.js +7 -0
  105. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_arraySome.js +7 -0
  106. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_assignValue.js +10 -0
  107. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_assocIndexOf.js +8 -0
  108. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseAssign.js +8 -0
  109. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseAssignIn.js +8 -0
  110. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseAssignValue.js +12 -0
  111. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseClone.js +57 -0
  112. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseCreate.js +14 -0
  113. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseGetAllKeys.js +9 -0
  114. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseGetTag.js +10 -0
  115. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsArguments.js +9 -0
  116. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsEqual.js +8 -0
  117. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsEqualDeep.js +30 -0
  118. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsMap.js +9 -0
  119. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsNative.js +11 -0
  120. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsSet.js +9 -0
  121. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsTypedArray.js +11 -0
  122. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseKeys.js +12 -0
  123. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseKeysIn.js +13 -0
  124. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseTimes.js +7 -0
  125. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseUnary.js +8 -0
  126. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cacheHas.js +6 -0
  127. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cloneArrayBuffer.js +8 -0
  128. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cloneBuffer.js +10 -0
  129. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cloneDataView.js +8 -0
  130. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cloneRegExp.js +8 -0
  131. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cloneSymbol.js +8 -0
  132. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cloneTypedArray.js +8 -0
  133. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_copyArray.js +8 -0
  134. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_copyObject.js +14 -0
  135. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_copySymbols.js +8 -0
  136. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_copySymbolsIn.js +8 -0
  137. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_coreJsData.js +5 -0
  138. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_defineProperty.js +10 -0
  139. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_equalArrays.js +35 -0
  140. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_equalByTag.js +35 -0
  141. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_equalObjects.js +32 -0
  142. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_freeGlobal.js +4 -0
  143. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getAllKeys.js +9 -0
  144. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getAllKeysIn.js +9 -0
  145. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getMapData.js +8 -0
  146. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getNative.js +9 -0
  147. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getPrototype.js +5 -0
  148. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getRawTag.js +14 -0
  149. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getSymbols.js +10 -0
  150. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getSymbolsIn.js +11 -0
  151. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getTag.js +23 -0
  152. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getValue.js +6 -0
  153. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_hashClear.js +7 -0
  154. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_hashDelete.js +7 -0
  155. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_hashGet.js +13 -0
  156. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_hashHas.js +9 -0
  157. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_hashSet.js +9 -0
  158. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_initCloneArray.js +8 -0
  159. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_initCloneByTag.js +33 -0
  160. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_initCloneObject.js +9 -0
  161. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_isIndex.js +8 -0
  162. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_isKeyable.js +7 -0
  163. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_isMasked.js +11 -0
  164. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_isPrototype.js +8 -0
  165. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_listCacheClear.js +6 -0
  166. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_listCacheDelete.js +9 -0
  167. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_listCacheGet.js +8 -0
  168. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_listCacheHas.js +7 -0
  169. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_listCacheSet.js +8 -0
  170. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheClear.js +13 -0
  171. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheDelete.js +8 -0
  172. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheGet.js +7 -0
  173. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheHas.js +7 -0
  174. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheSet.js +8 -0
  175. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_mapToArray.js +9 -0
  176. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_nativeCreate.js +5 -0
  177. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_nativeKeys.js +5 -0
  178. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_nativeKeysIn.js +8 -0
  179. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_nodeUtil.js +9 -0
  180. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_objectToString.js +7 -0
  181. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_overArg.js +8 -0
  182. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_root.js +5 -0
  183. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_setCacheAdd.js +7 -0
  184. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_setCacheHas.js +6 -0
  185. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_setToArray.js +9 -0
  186. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_stackClear.js +7 -0
  187. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_stackDelete.js +7 -0
  188. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_stackGet.js +6 -0
  189. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_stackHas.js +6 -0
  190. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_stackSet.js +16 -0
  191. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_toSource.js +15 -0
  192. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/cloneDeep.js +8 -0
  193. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/eq.js +6 -0
  194. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isArguments.js +10 -0
  195. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isArray.js +4 -0
  196. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isArrayLike.js +8 -0
  197. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isBuffer.js +6 -0
  198. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isEmpty.js +21 -0
  199. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isEqual.js +7 -0
  200. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isFunction.js +11 -0
  201. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isLength.js +7 -0
  202. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isMap.js +7 -0
  203. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isObject.js +7 -0
  204. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isObjectLike.js +6 -0
  205. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isSet.js +7 -0
  206. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isTypedArray.js +7 -0
  207. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/keys.js +9 -0
  208. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/keysIn.js +9 -0
  209. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/stubArray.js +6 -0
  210. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/stubFalse.js +6 -0
  211. package/package.json +78 -16
  212. package/CHANGELOG.json +0 -997
  213. package/CHANGELOG.md +0 -2214
  214. package/LICENSE.md +0 -5
  215. package/README.md +0 -1
  216. package/configure/CHANGELOG.json +0 -682
  217. package/configure/CHANGELOG.md +0 -1951
  218. package/configure/lib/DeleteWidget.js +0 -64
  219. package/configure/lib/DeleteWidget.js.map +0 -1
  220. package/configure/lib/button.js +0 -42
  221. package/configure/lib/button.js.map +0 -1
  222. package/configure/lib/buttons/circle.js +0 -33
  223. package/configure/lib/buttons/circle.js.map +0 -1
  224. package/configure/lib/buttons/polygon.js +0 -39
  225. package/configure/lib/buttons/polygon.js.map +0 -1
  226. package/configure/lib/buttons/rectangle.js +0 -39
  227. package/configure/lib/buttons/rectangle.js.map +0 -1
  228. package/configure/lib/defaults.js +0 -155
  229. package/configure/lib/defaults.js.map +0 -1
  230. package/configure/lib/hotspot-circle.js +0 -192
  231. package/configure/lib/hotspot-circle.js.map +0 -1
  232. package/configure/lib/hotspot-container.js +0 -320
  233. package/configure/lib/hotspot-container.js.map +0 -1
  234. package/configure/lib/hotspot-drawable.js +0 -519
  235. package/configure/lib/hotspot-drawable.js.map +0 -1
  236. package/configure/lib/hotspot-palette.js +0 -107
  237. package/configure/lib/hotspot-palette.js.map +0 -1
  238. package/configure/lib/hotspot-polygon.js +0 -293
  239. package/configure/lib/hotspot-polygon.js.map +0 -1
  240. package/configure/lib/hotspot-rectangle.js +0 -190
  241. package/configure/lib/hotspot-rectangle.js.map +0 -1
  242. package/configure/lib/icons.js +0 -7
  243. package/configure/lib/icons.js.map +0 -1
  244. package/configure/lib/image-konva.js +0 -66
  245. package/configure/lib/image-konva.js.map +0 -1
  246. package/configure/lib/index.js +0 -194
  247. package/configure/lib/index.js.map +0 -1
  248. package/configure/lib/root.js +0 -330
  249. package/configure/lib/root.js.map +0 -1
  250. package/configure/lib/shapes/circle.js +0 -84
  251. package/configure/lib/shapes/circle.js.map +0 -1
  252. package/configure/lib/shapes/index.js +0 -50
  253. package/configure/lib/shapes/index.js.map +0 -1
  254. package/configure/lib/shapes/polygon.js +0 -82
  255. package/configure/lib/shapes/polygon.js.map +0 -1
  256. package/configure/lib/shapes/rectagle.js +0 -84
  257. package/configure/lib/shapes/rectagle.js.map +0 -1
  258. package/configure/lib/shapes/utils.js +0 -21
  259. package/configure/lib/shapes/utils.js.map +0 -1
  260. package/configure/lib/upload-control.js +0 -41
  261. package/configure/lib/upload-control.js.map +0 -1
  262. package/configure/lib/utils.js +0 -185
  263. package/configure/lib/utils.js.map +0 -1
  264. package/configure/package.json +0 -26
  265. package/configure/src/DeleteWidget.jsx +0 -51
  266. package/configure/src/__tests__/DeleteWidget.test.jsx +0 -366
  267. package/configure/src/__tests__/button.test.jsx +0 -198
  268. package/configure/src/__tests__/hotspot-circle.test.jsx +0 -259
  269. package/configure/src/__tests__/hotspot-container.test.js +0 -366
  270. package/configure/src/__tests__/hotspot-drawable.test.js +0 -271
  271. package/configure/src/__tests__/hotspot-palette.test.jsx +0 -71
  272. package/configure/src/__tests__/image-konva.test.jsx +0 -226
  273. package/configure/src/__tests__/index.test.js +0 -329
  274. package/configure/src/__tests__/root.test.js +0 -400
  275. package/configure/src/__tests__/utils.test.js +0 -241
  276. package/configure/src/button.jsx +0 -35
  277. package/configure/src/buttons/circle.jsx +0 -18
  278. package/configure/src/buttons/polygon.jsx +0 -29
  279. package/configure/src/buttons/rectangle.jsx +0 -29
  280. package/configure/src/defaults.js +0 -109
  281. package/configure/src/hotspot-circle.jsx +0 -183
  282. package/configure/src/hotspot-container.jsx +0 -330
  283. package/configure/src/hotspot-drawable.jsx +0 -527
  284. package/configure/src/hotspot-palette.jsx +0 -90
  285. package/configure/src/hotspot-polygon.jsx +0 -294
  286. package/configure/src/hotspot-rectangle.jsx +0 -169
  287. package/configure/src/icons.js +0 -5
  288. package/configure/src/image-konva.jsx +0 -63
  289. package/configure/src/index.js +0 -208
  290. package/configure/src/root.jsx +0 -346
  291. package/configure/src/shapes/circle.js +0 -81
  292. package/configure/src/shapes/index.js +0 -4
  293. package/configure/src/shapes/polygon.js +0 -81
  294. package/configure/src/shapes/rectagle.js +0 -82
  295. package/configure/src/shapes/utils.js +0 -16
  296. package/configure/src/upload-control.jsx +0 -33
  297. package/configure/src/utils.js +0 -210
  298. package/controller/CHANGELOG.json +0 -362
  299. package/controller/CHANGELOG.md +0 -1304
  300. package/controller/lib/defaults.js +0 -33
  301. package/controller/lib/defaults.js.map +0 -1
  302. package/controller/lib/index.js +0 -341
  303. package/controller/lib/index.js.map +0 -1
  304. package/controller/lib/utils.js +0 -32
  305. package/controller/lib/utils.js.map +0 -1
  306. package/controller/package.json +0 -18
  307. package/controller/src/__tests__/index.test.js +0 -419
  308. package/controller/src/__tests__/utils.test.js +0 -5
  309. package/controller/src/defaults.js +0 -19
  310. package/controller/src/index.js +0 -328
  311. package/controller/src/utils.js +0 -29
  312. package/docs/config-schema.json +0 -2023
  313. package/docs/config-schema.json.md +0 -1495
  314. package/docs/demo/config.js +0 -8
  315. package/docs/demo/generate.js +0 -118
  316. package/docs/demo/index.html +0 -1
  317. package/docs/demo/session.js +0 -11
  318. package/docs/pie-schema.json +0 -1204
  319. package/docs/pie-schema.json.md +0 -851
  320. package/lib/hotspot/circle.js +0 -156
  321. package/lib/hotspot/circle.js.map +0 -1
  322. package/lib/hotspot/container.js +0 -206
  323. package/lib/hotspot/container.js.map +0 -1
  324. package/lib/hotspot/icons.js +0 -8
  325. package/lib/hotspot/icons.js.map +0 -1
  326. package/lib/hotspot/image-konva-tooltip.js +0 -86
  327. package/lib/hotspot/image-konva-tooltip.js.map +0 -1
  328. package/lib/hotspot/index.js +0 -163
  329. package/lib/hotspot/index.js.map +0 -1
  330. package/lib/hotspot/polygon.js +0 -203
  331. package/lib/hotspot/polygon.js.map +0 -1
  332. package/lib/hotspot/rectangle.js +0 -175
  333. package/lib/hotspot/rectangle.js.map +0 -1
  334. package/lib/index.js +0 -213
  335. package/lib/index.js.map +0 -1
  336. package/lib/session-updater.js +0 -42
  337. package/lib/session-updater.js.map +0 -1
  338. package/src/__tests__/container.test.jsx +0 -58
  339. package/src/__tests__/index.test.js +0 -123
  340. package/src/__tests__/session-updater.test.jsx +0 -69
  341. package/src/hotspot/__tests__/circle.test.jsx +0 -464
  342. package/src/hotspot/__tests__/container.test.jsx +0 -546
  343. package/src/hotspot/__tests__/image-konva-tooltip.test.jsx +0 -510
  344. package/src/hotspot/__tests__/polygon.test.jsx +0 -502
  345. package/src/hotspot/__tests__/rectangle.test.jsx +0 -418
  346. package/src/hotspot/circle.jsx +0 -152
  347. package/src/hotspot/container.jsx +0 -217
  348. package/src/hotspot/icons.js +0 -7
  349. package/src/hotspot/image-konva-tooltip.jsx +0 -76
  350. package/src/hotspot/index.jsx +0 -165
  351. package/src/hotspot/polygon.jsx +0 -195
  352. package/src/hotspot/rectangle.jsx +0 -171
  353. package/src/index.js +0 -226
  354. package/src/session-updater.js +0 -29
@@ -1,519 +0,0 @@
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.Drawable = void 0;
8
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
- var _react = _interopRequireDefault(require("react"));
11
- var _propTypes = _interopRequireDefault(require("prop-types"));
12
- var _reactKonva = require("react-konva");
13
- var _lodashEs = require("lodash-es");
14
- var _styles = require("@mui/material/styles");
15
- var _hotspotRectangle = _interopRequireDefault(require("./hotspot-rectangle"));
16
- var _hotspotPolygon = _interopRequireDefault(require("./hotspot-polygon"));
17
- var _hotspotCircle = _interopRequireDefault(require("./hotspot-circle"));
18
- var _utils = require("./utils");
19
- var _shapes = require("./shapes");
20
- const BaseContainer = (0, _styles.styled)('div')({
21
- position: 'relative'
22
- });
23
- const ImageContainer = (0, _styles.styled)('div')({
24
- position: 'relative',
25
- width: 'fit-content'
26
- });
27
- const Image = (0, _styles.styled)('img')({
28
- alignItems: 'center',
29
- display: 'flex',
30
- justifyContent: 'center'
31
- });
32
- const ResizeHandle = (0, _styles.styled)('div')({
33
- borderBottom: '1px solid #727272',
34
- borderRight: '1px solid #727272',
35
- bottom: '-10px',
36
- cursor: 'se-resize',
37
- height: '10px',
38
- position: 'absolute',
39
- right: '-10px',
40
- width: '10px'
41
- });
42
- const StyledStage = (0, _styles.styled)(_reactKonva.Stage)({
43
- left: 0,
44
- top: 0,
45
- position: 'absolute'
46
- });
47
- const IMAGE_MAX_WIDTH = 800;
48
- class Drawable extends _react.default.Component {
49
- static getDerivedStateFromProps(nextProps, prevState) {
50
- // Update the state only if the props have changed
51
- if (nextProps.shapes !== prevState.shapes) {
52
- return {
53
- shapes: nextProps.shapes
54
- };
55
- }
56
- return null;
57
- }
58
- constructor(props) {
59
- super(props);
60
- (0, _defineProperty2.default)(this, "handleOnMouseDown", e => {
61
- const {
62
- shapeType,
63
- onUpdateShapes,
64
- shapes
65
- } = this.props;
66
- let newState, newShapeId;
67
-
68
- // Ensure that the click originated from the expected element
69
- if (e.target !== e.currentTarget) {
70
- return;
71
- }
72
- if (!Object.values(_shapes.SUPPORTED_SHAPES).includes(shapeType)) {
73
- return;
74
- }
75
- switch (shapeType) {
76
- case _shapes.SUPPORTED_SHAPES.RECTANGLE:
77
- newState = _shapes.RectangleShape.create(shapes, e);
78
- break;
79
- case _shapes.SUPPORTED_SHAPES.CIRCLE:
80
- newState = _shapes.CircleShape.create(shapes, e);
81
- break;
82
- case _shapes.SUPPORTED_SHAPES.POLYGON:
83
- newShapeId = this.state.isDrawingShapeId;
84
- if (newShapeId) {
85
- // If a polygon is in progress, add a new point
86
- const shapes = this.addPolygonPoint(e);
87
- newState = {
88
- isDrawing: true,
89
- isDrawingShapeId: newShapeId,
90
- shapes: shapes
91
- };
92
- } else {
93
- // Else start a new one
94
- newState = _shapes.PolygonShape.create(shapes, e);
95
- }
96
- break;
97
- default:
98
- return;
99
- }
100
- this.setState({
101
- ...newState
102
- });
103
- onUpdateShapes(newState.shapes);
104
- });
105
- (0, _defineProperty2.default)(this, "handleOnMouseUp", () => {
106
- const {
107
- shapeType,
108
- onUpdateShapes
109
- } = this.props;
110
- let newState;
111
- if (shapeType === _shapes.SUPPORTED_SHAPES.POLYGON) {
112
- return;
113
- }
114
- switch (shapeType) {
115
- case _shapes.SUPPORTED_SHAPES.RECTANGLE:
116
- newState = _shapes.RectangleShape.finalizeCreation(this.state, this.props);
117
- break;
118
- case _shapes.SUPPORTED_SHAPES.CIRCLE:
119
- newState = _shapes.CircleShape.finalizeCreation(this.state, this.props);
120
- break;
121
- default:
122
- return;
123
- }
124
- this.setState({
125
- ...newState,
126
- isDrawing: false
127
- });
128
- onUpdateShapes(newState.shapes);
129
- });
130
- (0, _defineProperty2.default)(this, "handleMouseMove", e => {
131
- const {
132
- shapeType,
133
- onUpdateShapes
134
- } = this.props;
135
- let newState;
136
- if (!this.state.isDrawing || !Object.values(_shapes.SUPPORTED_SHAPES).includes(shapeType)) {
137
- return;
138
- }
139
- switch (shapeType) {
140
- case _shapes.SUPPORTED_SHAPES.RECTANGLE:
141
- newState = _shapes.RectangleShape.handleMouseMove(this.state, e);
142
- break;
143
- case _shapes.SUPPORTED_SHAPES.CIRCLE:
144
- newState = _shapes.CircleShape.handleMouseMove(this.state, e);
145
- break;
146
- case _shapes.SUPPORTED_SHAPES.POLYGON:
147
- newState = _shapes.PolygonShape.handleMouseMove(this.state, e);
148
- break;
149
- default:
150
- return;
151
- }
152
- this.setState(newState);
153
- onUpdateShapes(newState.shapes);
154
- });
155
- (0, _defineProperty2.default)(this, "handleOnMouseOutOrLeave", e => {
156
- if (this.state.isDrawing) {
157
- this.handleOnMouseUp(e);
158
- }
159
- });
160
- (0, _defineProperty2.default)(this, "handleOnDragEnd", (id, updatedProps) => {
161
- const {
162
- shapes,
163
- onUpdateShapes,
164
- dimensions
165
- } = this.props;
166
- const {
167
- width: canvasWidth,
168
- height: canvasHeight
169
- } = dimensions;
170
-
171
- // when a shape is moved completely outside the canvas
172
- // remove that shape
173
- const newShapes = shapes.map(shape => {
174
- if (shape.id !== id) {
175
- return shape;
176
- }
177
- let newX = updatedProps.x;
178
- let newY = updatedProps.y;
179
- if (shape.group === 'rectangles') {
180
- if (newX + shape.width < 0 || newX > canvasWidth || newY + shape.height < 0 || newY > canvasHeight) {
181
- return null;
182
- }
183
- return {
184
- ...shape,
185
- ...updatedProps
186
- };
187
- }
188
- if (shape.group === 'circles') {
189
- const radius = shape.radius;
190
- if (newX + radius < 0 || newX - radius > canvasWidth || newY + radius < 0 || newY - radius > canvasHeight) {
191
- return null;
192
- }
193
- return {
194
- ...shape,
195
- ...updatedProps
196
- };
197
- }
198
- if (shape.group === 'polygons') {
199
- const points = shape.points;
200
- const xValues = points.map(point => point.x);
201
- const yValues = points.map(point => point.y);
202
- let minX = Math.min(...xValues);
203
- let minY = Math.min(...yValues);
204
- let maxX = Math.max(...xValues);
205
- let maxY = Math.max(...yValues);
206
-
207
- // Calculate deltas based on the first point as a reference
208
- const deltaX = updatedProps['points'][0].x - points[0].x;
209
- const deltaY = updatedProps['points'][0].y - points[0].y;
210
- minX = minX + deltaX;
211
- maxX = maxX + deltaX;
212
- minY = minY + deltaY;
213
- maxY = maxY + deltaY;
214
- if (maxX < 0 || minX > canvasWidth || maxY < 0 || minY > canvasHeight) {
215
- return null;
216
- }
217
- return {
218
- ...shape,
219
- ...updatedProps
220
- };
221
- }
222
- return shape;
223
- }).filter(shape => shape !== null);
224
- onUpdateShapes((0, _lodashEs.cloneDeep)(newShapes));
225
- });
226
- (0, _defineProperty2.default)(this, "closeInProgressPolygons", id => {
227
- const {
228
- shapes,
229
- onUpdateShapes
230
- } = this.props;
231
- const inProgressPolygon = (shapes || []).find(shape => shape.id === 'newPolygon');
232
- if (id === 'newPolygon' || inProgressPolygon && this.state.isDrawing) {
233
- _shapes.PolygonShape.finalizeCreation(this.state, newShapes => {
234
- this.setState({
235
- isDrawing: false,
236
- shapes: newShapes,
237
- isDrawingShapeId: undefined
238
- });
239
- onUpdateShapes((0, _lodashEs.cloneDeep)(newShapes));
240
- });
241
- }
242
- });
243
- (0, _defineProperty2.default)(this, "handleOnSetAsCorrect", shape => {
244
- const {
245
- id
246
- } = shape;
247
- const {
248
- multipleCorrect,
249
- shapes,
250
- onUpdateShapes
251
- } = this.props;
252
- let newShapes;
253
- if (multipleCorrect) {
254
- newShapes = shapes.map(shape => {
255
- if (shape.id === id) {
256
- shape.correct = !shape.correct;
257
- }
258
- return shape;
259
- });
260
- } else {
261
- newShapes = shapes.map(shape => {
262
- shape.correct = shape.id === id;
263
- return shape;
264
- });
265
- }
266
- onUpdateShapes((0, _lodashEs.cloneDeep)(newShapes));
267
- this.closeInProgressPolygons(id);
268
- });
269
- /// end of handling HotSpots section
270
- /// start of handling Image section
271
- (0, _defineProperty2.default)(this, "handleOnImageLoad", ({
272
- target
273
- }) => {
274
- const {
275
- onUpdateImageDimension
276
- } = this.props;
277
- const resizeHandle = this.resize;
278
- const elementStyle = getComputedStyle(target);
279
- const newHeight = parseFloat(elementStyle.height);
280
- const newWidth = parseFloat(elementStyle.width);
281
- const aspectWidth = newWidth / IMAGE_MAX_WIDTH;
282
- const dimensions = newWidth > IMAGE_MAX_WIDTH ? {
283
- height: newHeight / aspectWidth,
284
- width: IMAGE_MAX_WIDTH
285
- } : {
286
- height: newHeight,
287
- width: newWidth
288
- };
289
- this.setState({
290
- dimensions
291
- }, () => onUpdateImageDimension(dimensions));
292
- resizeHandle.addEventListener('mousedown', this.initialiseResize, false);
293
- });
294
- (0, _defineProperty2.default)(this, "initialiseResize", () => {
295
- window.addEventListener('mousemove', this.startResizing, false);
296
- window.addEventListener('mouseup', this.stopResizing, false);
297
- });
298
- (0, _defineProperty2.default)(this, "startResizing", e => {
299
- const bounds = e.target.getBoundingClientRect();
300
- const box = this.image;
301
- const {
302
- disableDrag,
303
- preserveAspectRatioEnabled,
304
- dimensions,
305
- shapes
306
- } = this.props;
307
- const {
308
- width,
309
- height
310
- } = (0, _utils.updateImageDimensions)(dimensions, {
311
- width: e.clientX - bounds.left,
312
- height: e.clientY - bounds.top
313
- }, preserveAspectRatioEnabled);
314
- const resizeValid = this.checkIfResizeValid(width, height);
315
- const hasMinimumWidth = width > 150 && height > 150;
316
- if (resizeValid && hasMinimumWidth && box) {
317
- box.style.width = `${width}px`;
318
- box.style.height = `${height}px`;
319
- this.setState({
320
- resizing: true,
321
- dimensions: {
322
- height: height,
323
- width: width
324
- },
325
- stateShapes: (0, _utils.getUpdatedShapes)(dimensions, {
326
- width,
327
- height
328
- }, shapes)
329
- });
330
- }
331
- disableDrag();
332
- });
333
- (0, _defineProperty2.default)(this, "stopResizing", () => {
334
- const {
335
- enableDrag,
336
- onUpdateImageDimension,
337
- onUpdateShapes
338
- } = this.props;
339
- const {
340
- dimensions,
341
- stateShapes
342
- } = this.state;
343
- enableDrag();
344
- if (stateShapes) {
345
- onUpdateShapes((0, _lodashEs.cloneDeep)(stateShapes));
346
- }
347
- onUpdateImageDimension(dimensions);
348
- window.removeEventListener('mousemove', this.startResizing, false);
349
- window.removeEventListener('mouseup', this.stopResizing, false);
350
- this.setState({
351
- resizing: false,
352
- stateShapes: false
353
- });
354
- });
355
- (0, _defineProperty2.default)(this, "deleteShape", id => {
356
- this.setState({
357
- isDrawing: false,
358
- isDrawingShapeId: undefined
359
- });
360
- this.props.onDeleteShape(id);
361
- });
362
- this.state = {
363
- isDrawing: false,
364
- stateShapes: false,
365
- resizing: false,
366
- temporaryPolygon: null,
367
- shapes: [],
368
- dimensions: {
369
- height: 0,
370
- width: 0
371
- }
372
- };
373
- }
374
- addPolygonPoint(e) {
375
- const {
376
- shapes
377
- } = _shapes.PolygonShape.addPoint(this.state, e, newShapes => {
378
- this.setState({
379
- isDrawing: false,
380
- shapes: newShapes,
381
- isDrawingShapeId: undefined
382
- });
383
- this.props.onUpdateShapes(newShapes);
384
- });
385
- return shapes;
386
- }
387
- checkIfResizeValid(x, y) {
388
- const {
389
- shapes
390
- } = this.state;
391
- let drawable = true;
392
-
393
- // Do not allow resizing over the hotspots
394
- shapes && shapes.forEach(shape => {
395
- const right = shape.x + shape.width + 5;
396
- const bottom = shape.y + shape.height + 5;
397
- if (x <= right || y <= bottom) {
398
- drawable = false;
399
- }
400
- });
401
- return drawable;
402
- }
403
- /// end of handling Image section
404
-
405
- render() {
406
- const {
407
- imageUrl,
408
- dimensions: {
409
- height,
410
- width
411
- },
412
- hotspotColor,
413
- outlineColor,
414
- shapes,
415
- strokeWidth,
416
- hoverOutlineColor,
417
- selectedHotspotColor
418
- } = this.props;
419
- const {
420
- stateShapes,
421
- isDrawing,
422
- dimensions: {
423
- height: heightFromState,
424
- width: widthFromState
425
- }
426
- } = this.state;
427
- const shapesToUse = stateShapes || shapes;
428
- return /*#__PURE__*/_react.default.createElement(BaseContainer, null, imageUrl && /*#__PURE__*/_react.default.createElement(ImageContainer, null, /*#__PURE__*/_react.default.createElement(Image, (0, _extends2.default)({
429
- onLoad: this.handleOnImageLoad,
430
- ref: ref => {
431
- this.image = ref;
432
- },
433
- src: imageUrl
434
- }, height && width ? {
435
- style: {
436
- height,
437
- width
438
- }
439
- } : {})), /*#__PURE__*/_react.default.createElement(ResizeHandle, {
440
- ref: ref => {
441
- this.resize = ref;
442
- }
443
- })), /*#__PURE__*/_react.default.createElement(StyledStage, {
444
- height: heightFromState || height,
445
- width: widthFromState || width,
446
- onMouseDown: this.handleOnMouseDown,
447
- onMouseUp: this.handleOnMouseUp,
448
- onMouseMove: this.handleMouseMove,
449
- onContentMouseOut: this.handleOnMouseOutOrLeave,
450
- onContentMouseLeave: this.handleOnMouseOutOrLeave
451
- }, /*#__PURE__*/_react.default.createElement(_reactKonva.Layer, null, shapesToUse.map((shape, i) => {
452
- let Tag;
453
- switch (shape.group) {
454
- case _shapes.SHAPE_GROUPS.RECTANGLES:
455
- Tag = _hotspotRectangle.default;
456
- break;
457
- case _shapes.SHAPE_GROUPS.CIRCLES:
458
- Tag = _hotspotCircle.default;
459
- break;
460
- case _shapes.SHAPE_GROUPS.POLYGONS:
461
- Tag = _hotspotPolygon.default;
462
- break;
463
- default:
464
- return null;
465
- }
466
- return /*#__PURE__*/_react.default.createElement(Tag, (0, _extends2.default)({}, shape.group === _shapes.SHAPE_GROUPS.CIRCLES ? {
467
- radius: shape.radius
468
- } : {}, shape.group === _shapes.SHAPE_GROUPS.RECTANGLES ? {
469
- height: shape.height,
470
- width: shape.width
471
- } : {}, shape.group === _shapes.SHAPE_GROUPS.POLYGONS ? {
472
- points: shape.points,
473
- addPolygonPoint: e => this.addPolygonPoint(e)
474
- } : {}, {
475
- correct: shape.correct,
476
- isDrawing: isDrawing,
477
- hotspotColor: hotspotColor,
478
- hoverOutlineColor: hoverOutlineColor,
479
- selectedHotspotColor: selectedHotspotColor,
480
- id: shape.id,
481
- key: i,
482
- onClick: () => this.handleOnSetAsCorrect(shape),
483
- onDragEnd: this.handleOnDragEnd,
484
- onDeleteShape: this.deleteShape,
485
- outlineColor: outlineColor,
486
- width: shape.width,
487
- x: shape.x,
488
- y: shape.y,
489
- strokeWidth: strokeWidth,
490
- imageHeight: heightFromState || height,
491
- imageWidth: widthFromState || width
492
- }, shape.group === 'polygons' ? {
493
- addPolygonPoint: e => this.addPolygonPoint(e)
494
- } : {}));
495
- }))));
496
- }
497
- }
498
- exports.Drawable = Drawable;
499
- Drawable.propTypes = {
500
- disableDrag: _propTypes.default.func.isRequired,
501
- dimensions: _propTypes.default.object.isRequired,
502
- enableDrag: _propTypes.default.func.isRequired,
503
- shapeType: _propTypes.default.oneOf(Object.values(_shapes.SUPPORTED_SHAPES)),
504
- imageUrl: _propTypes.default.string.isRequired,
505
- handleFinishDrawing: _propTypes.default.func.isRequired,
506
- hotspotColor: _propTypes.default.string.isRequired,
507
- selectedHotspotColor: _propTypes.default.string,
508
- hoverOutlineColor: _propTypes.default.string,
509
- multipleCorrect: _propTypes.default.bool.isRequired,
510
- onUpdateImageDimension: _propTypes.default.func.isRequired,
511
- onUpdateShapes: _propTypes.default.func.isRequired,
512
- onDeleteShape: _propTypes.default.func.isRequired,
513
- outlineColor: _propTypes.default.string.isRequired,
514
- shapes: _propTypes.default.array.isRequired,
515
- strokeWidth: _propTypes.default.number,
516
- preserveAspectRatioEnabled: _propTypes.default.bool
517
- };
518
- var _default = exports.default = Drawable;
519
- //# sourceMappingURL=hotspot-drawable.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hotspot-drawable.js","names":["_react","_interopRequireDefault","require","_propTypes","_reactKonva","_lodashEs","_styles","_hotspotRectangle","_hotspotPolygon","_hotspotCircle","_utils","_shapes","BaseContainer","styled","position","ImageContainer","width","Image","alignItems","display","justifyContent","ResizeHandle","borderBottom","borderRight","bottom","cursor","height","right","StyledStage","Stage","left","top","IMAGE_MAX_WIDTH","Drawable","React","Component","getDerivedStateFromProps","nextProps","prevState","shapes","constructor","props","_defineProperty2","default","e","shapeType","onUpdateShapes","newState","newShapeId","target","currentTarget","Object","values","SUPPORTED_SHAPES","includes","RECTANGLE","RectangleShape","create","CIRCLE","CircleShape","POLYGON","state","isDrawingShapeId","addPolygonPoint","isDrawing","PolygonShape","setState","finalizeCreation","handleMouseMove","handleOnMouseUp","id","updatedProps","dimensions","canvasWidth","canvasHeight","newShapes","map","shape","newX","x","newY","y","group","radius","points","xValues","point","yValues","minX","Math","min","minY","maxX","max","maxY","deltaX","deltaY","filter","cloneDeep","inProgressPolygon","find","undefined","multipleCorrect","correct","closeInProgressPolygons","onUpdateImageDimension","resizeHandle","resize","elementStyle","getComputedStyle","newHeight","parseFloat","newWidth","aspectWidth","addEventListener","initialiseResize","window","startResizing","stopResizing","bounds","getBoundingClientRect","box","image","disableDrag","preserveAspectRatioEnabled","updateImageDimensions","clientX","clientY","resizeValid","checkIfResizeValid","hasMinimumWidth","style","resizing","stateShapes","getUpdatedShapes","enableDrag","removeEventListener","onDeleteShape","temporaryPolygon","addPoint","drawable","forEach","render","imageUrl","hotspotColor","outlineColor","strokeWidth","hoverOutlineColor","selectedHotspotColor","heightFromState","widthFromState","shapesToUse","createElement","_extends2","onLoad","handleOnImageLoad","ref","src","onMouseDown","handleOnMouseDown","onMouseUp","onMouseMove","onContentMouseOut","handleOnMouseOutOrLeave","onContentMouseLeave","Layer","i","Tag","SHAPE_GROUPS","RECTANGLES","Rectangle","CIRCLES","Circle","POLYGONS","Polygon","key","onClick","handleOnSetAsCorrect","onDragEnd","handleOnDragEnd","deleteShape","imageHeight","imageWidth","exports","propTypes","PropTypes","func","isRequired","object","oneOf","string","handleFinishDrawing","bool","array","number","_default"],"sources":["../src/hotspot-drawable.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Layer, Stage } from 'react-konva';\nimport { cloneDeep } from 'lodash-es';\nimport { styled } from '@mui/material/styles';\n\nimport Rectangle from './hotspot-rectangle';\nimport Polygon from './hotspot-polygon';\nimport Circle from './hotspot-circle';\nimport { getUpdatedShapes, updateImageDimensions } from './utils';\nimport { RectangleShape, CircleShape, PolygonShape, SUPPORTED_SHAPES, SHAPE_GROUPS } from './shapes';\n\nconst BaseContainer = styled('div')({\n position: 'relative',\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 ResizeHandle = styled('div')({\n borderBottom: '1px solid #727272',\n borderRight: '1px solid #727272',\n bottom: '-10px',\n cursor: 'se-resize',\n height: '10px',\n position: 'absolute',\n right: '-10px',\n width: '10px',\n});\n\nconst StyledStage = styled(Stage)({\n left: 0,\n top: 0,\n position: 'absolute',\n});\n\nconst IMAGE_MAX_WIDTH = 800;\n\nexport class Drawable extends React.Component {\n static getDerivedStateFromProps(nextProps, prevState) {\n // Update the state only if the props have changed\n if (nextProps.shapes !== prevState.shapes) {\n return { shapes: nextProps.shapes };\n }\n\n return null;\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n isDrawing: false,\n stateShapes: false,\n resizing: false,\n temporaryPolygon: null,\n shapes: [],\n dimensions: {\n height: 0,\n width: 0,\n },\n };\n }\n\n handleOnMouseDown = (e) => {\n const { shapeType, onUpdateShapes, shapes } = this.props;\n let newState, newShapeId;\n\n // Ensure that the click originated from the expected element\n if (e.target !== e.currentTarget) {\n return;\n }\n\n if (!Object.values(SUPPORTED_SHAPES).includes(shapeType)) {\n return;\n }\n\n switch (shapeType) {\n case SUPPORTED_SHAPES.RECTANGLE:\n newState = RectangleShape.create(shapes, e);\n break;\n case SUPPORTED_SHAPES.CIRCLE:\n newState = CircleShape.create(shapes, e);\n break;\n case SUPPORTED_SHAPES.POLYGON:\n newShapeId = this.state.isDrawingShapeId;\n\n if (newShapeId) {\n // If a polygon is in progress, add a new point\n const shapes = this.addPolygonPoint(e);\n\n newState = {\n isDrawing: true,\n isDrawingShapeId: newShapeId,\n shapes: shapes,\n };\n } else {\n // Else start a new one\n newState = PolygonShape.create(shapes, e);\n }\n break;\n default:\n return;\n }\n\n this.setState({\n ...newState,\n });\n\n onUpdateShapes(newState.shapes);\n };\n\n addPolygonPoint(e) {\n const { shapes } = PolygonShape.addPoint(this.state, e, (newShapes) => {\n this.setState({\n isDrawing: false,\n shapes: newShapes,\n isDrawingShapeId: undefined,\n });\n\n this.props.onUpdateShapes(newShapes);\n });\n\n return shapes;\n }\n\n handleOnMouseUp = () => {\n const { shapeType, onUpdateShapes } = this.props;\n let newState;\n\n if (shapeType === SUPPORTED_SHAPES.POLYGON) {\n return;\n }\n\n switch (shapeType) {\n case SUPPORTED_SHAPES.RECTANGLE:\n newState = RectangleShape.finalizeCreation(this.state, this.props);\n break;\n case SUPPORTED_SHAPES.CIRCLE:\n newState = CircleShape.finalizeCreation(this.state, this.props);\n break;\n default:\n return;\n }\n\n this.setState({\n ...newState,\n isDrawing: false,\n });\n\n onUpdateShapes(newState.shapes);\n };\n\n handleMouseMove = (e) => {\n const { shapeType, onUpdateShapes } = this.props;\n let newState;\n\n if (!this.state.isDrawing || !Object.values(SUPPORTED_SHAPES).includes(shapeType)) {\n return;\n }\n\n switch (shapeType) {\n case SUPPORTED_SHAPES.RECTANGLE:\n newState = RectangleShape.handleMouseMove(this.state, e);\n break;\n case SUPPORTED_SHAPES.CIRCLE:\n newState = CircleShape.handleMouseMove(this.state, e);\n break;\n case SUPPORTED_SHAPES.POLYGON:\n newState = PolygonShape.handleMouseMove(this.state, e);\n break;\n default:\n return;\n }\n\n this.setState(newState);\n onUpdateShapes(newState.shapes);\n };\n\n handleOnMouseOutOrLeave = (e) => {\n if (this.state.isDrawing) {\n this.handleOnMouseUp(e);\n }\n };\n\n handleOnDragEnd = (id, updatedProps) => {\n const { shapes, onUpdateShapes, dimensions } = this.props;\n const { width: canvasWidth, height: canvasHeight } = dimensions;\n\n // when a shape is moved completely outside the canvas\n // remove that shape\n const newShapes = shapes\n .map((shape) => {\n if (shape.id !== id) {\n return shape;\n }\n\n let newX = updatedProps.x;\n let newY = updatedProps.y;\n\n if (shape.group === 'rectangles') {\n if (newX + shape.width < 0 || newX > canvasWidth || newY + shape.height < 0 || newY > canvasHeight) {\n return null;\n }\n\n return { ...shape, ...updatedProps };\n }\n\n if (shape.group === 'circles') {\n const radius = shape.radius;\n if (newX + radius < 0 || newX - radius > canvasWidth || newY + radius < 0 || newY - radius > canvasHeight) {\n return null;\n }\n\n return { ...shape, ...updatedProps };\n }\n\n if (shape.group === 'polygons') {\n const points = shape.points;\n const xValues = points.map((point) => point.x);\n const yValues = points.map((point) => point.y);\n\n let minX = Math.min(...xValues);\n let minY = Math.min(...yValues);\n let maxX = Math.max(...xValues);\n let maxY = Math.max(...yValues);\n\n // Calculate deltas based on the first point as a reference\n const deltaX = updatedProps['points'][0].x - points[0].x;\n const deltaY = updatedProps['points'][0].y - points[0].y;\n\n minX = minX + deltaX;\n maxX = maxX + deltaX;\n minY = minY + deltaY;\n maxY = maxY + deltaY;\n\n if (maxX < 0 || minX > canvasWidth || maxY < 0 || minY > canvasHeight) {\n return null;\n }\n\n return { ...shape, ...updatedProps };\n }\n\n return shape;\n })\n .filter((shape) => shape !== null);\n\n onUpdateShapes(cloneDeep(newShapes));\n };\n\n closeInProgressPolygons = (id) => {\n const { shapes, onUpdateShapes } = this.props;\n\n const inProgressPolygon = (shapes || []).find((shape) => shape.id === 'newPolygon');\n if (id === 'newPolygon' || (inProgressPolygon && this.state.isDrawing)) {\n PolygonShape.finalizeCreation(this.state, (newShapes) => {\n this.setState({\n isDrawing: false,\n shapes: newShapes,\n isDrawingShapeId: undefined,\n });\n\n onUpdateShapes(cloneDeep(newShapes));\n });\n }\n }\n\n handleOnSetAsCorrect = (shape) => {\n const { id } = shape;\n const { multipleCorrect, shapes, onUpdateShapes } = this.props;\n\n let newShapes;\n\n if (multipleCorrect) {\n newShapes = shapes.map((shape) => {\n if (shape.id === id) {\n shape.correct = !shape.correct;\n }\n return shape;\n });\n } else {\n newShapes = shapes.map((shape) => {\n shape.correct = shape.id === id;\n return shape;\n });\n }\n\n onUpdateShapes(cloneDeep(newShapes));\n\n this.closeInProgressPolygons(id);\n };\n /// end of handling HotSpots section\n\n /// start of handling Image section\n handleOnImageLoad = ({ target }) => {\n const { onUpdateImageDimension } = this.props;\n const resizeHandle = this.resize;\n const elementStyle = getComputedStyle(target);\n const newHeight = parseFloat(elementStyle.height);\n const newWidth = parseFloat(elementStyle.width);\n const aspectWidth = newWidth / IMAGE_MAX_WIDTH;\n\n const dimensions =\n newWidth > IMAGE_MAX_WIDTH\n ? {\n height: newHeight / aspectWidth,\n width: IMAGE_MAX_WIDTH,\n }\n : {\n height: newHeight,\n width: newWidth,\n };\n\n this.setState({ dimensions }, () => onUpdateImageDimension(dimensions));\n\n resizeHandle.addEventListener('mousedown', this.initialiseResize, false);\n };\n\n initialiseResize = () => {\n window.addEventListener('mousemove', this.startResizing, false);\n window.addEventListener('mouseup', this.stopResizing, false);\n };\n\n checkIfResizeValid(x, y) {\n const { shapes } = this.state;\n let drawable = true;\n\n // Do not allow resizing over the hotspots\n shapes &&\n shapes.forEach((shape) => {\n const right = shape.x + shape.width + 5;\n const bottom = shape.y + shape.height + 5;\n if (x <= right || y <= bottom) {\n drawable = false;\n }\n });\n return drawable;\n }\n\n startResizing = (e) => {\n const bounds = e.target.getBoundingClientRect();\n const box = this.image;\n const { disableDrag, preserveAspectRatioEnabled, dimensions, shapes } = this.props;\n\n const { width, height } = updateImageDimensions(\n dimensions,\n {\n width: e.clientX - bounds.left,\n height: e.clientY - bounds.top,\n },\n preserveAspectRatioEnabled,\n );\n\n const resizeValid = this.checkIfResizeValid(width, height);\n const hasMinimumWidth = width > 150 && height > 150;\n\n if (resizeValid && hasMinimumWidth && box) {\n box.style.width = `${width}px`;\n box.style.height = `${height}px`;\n\n this.setState({\n resizing: true,\n dimensions: { height: height, width: width },\n stateShapes: getUpdatedShapes(dimensions, { width, height }, shapes),\n });\n }\n\n disableDrag();\n };\n\n stopResizing = () => {\n const { enableDrag, onUpdateImageDimension, onUpdateShapes } = this.props;\n const { dimensions, stateShapes } = this.state;\n\n enableDrag();\n\n if (stateShapes) {\n onUpdateShapes(cloneDeep(stateShapes));\n }\n\n onUpdateImageDimension(dimensions);\n\n window.removeEventListener('mousemove', this.startResizing, false);\n window.removeEventListener('mouseup', this.stopResizing, false);\n\n this.setState({ resizing: false, stateShapes: false });\n };\n\n deleteShape = (id) => {\n this.setState({\n isDrawing: false,\n isDrawingShapeId: undefined,\n });\n this.props.onDeleteShape(id);\n };\n\n /// end of handling Image section\n\n render() {\n const {\n imageUrl,\n dimensions: { height, width },\n hotspotColor,\n outlineColor,\n shapes,\n strokeWidth,\n hoverOutlineColor,\n selectedHotspotColor,\n } = this.props;\n\n const {\n stateShapes,\n isDrawing,\n dimensions: { height: heightFromState, width: widthFromState },\n } = this.state;\n const shapesToUse = stateShapes || shapes;\n\n return (\n <BaseContainer>\n {imageUrl && (\n <ImageContainer>\n <Image\n onLoad={this.handleOnImageLoad}\n ref={(ref) => {\n this.image = ref;\n }}\n src={imageUrl}\n {...(height && width ? { style: { height, width } } : {})}\n />\n <ResizeHandle\n ref={(ref) => {\n this.resize = ref;\n }}\n />\n </ImageContainer>\n )}\n\n <StyledStage\n height={heightFromState || height}\n width={widthFromState || width}\n onMouseDown={this.handleOnMouseDown}\n onMouseUp={this.handleOnMouseUp}\n onMouseMove={this.handleMouseMove}\n onContentMouseOut={this.handleOnMouseOutOrLeave}\n onContentMouseLeave={this.handleOnMouseOutOrLeave}\n >\n <Layer>\n {shapesToUse.map((shape, i) => {\n let Tag;\n switch (shape.group) {\n case SHAPE_GROUPS.RECTANGLES:\n Tag = Rectangle;\n break;\n case SHAPE_GROUPS.CIRCLES:\n Tag = Circle;\n break;\n case SHAPE_GROUPS.POLYGONS:\n Tag = Polygon;\n break;\n default:\n return null;\n }\n\n return (\n <Tag\n {...(shape.group === SHAPE_GROUPS.CIRCLES ? { radius: shape.radius } : {})}\n {...(shape.group === SHAPE_GROUPS.RECTANGLES ? { height: shape.height, width: shape.width } : {})}\n {...(shape.group === SHAPE_GROUPS.POLYGONS\n ? { points: shape.points, addPolygonPoint: (e) => this.addPolygonPoint(e) }\n : {})}\n correct={shape.correct}\n isDrawing={isDrawing}\n hotspotColor={hotspotColor}\n hoverOutlineColor={hoverOutlineColor}\n selectedHotspotColor={selectedHotspotColor}\n id={shape.id}\n key={i}\n onClick={() => this.handleOnSetAsCorrect(shape)}\n onDragEnd={this.handleOnDragEnd}\n onDeleteShape={this.deleteShape}\n outlineColor={outlineColor}\n width={shape.width}\n x={shape.x}\n y={shape.y}\n strokeWidth={strokeWidth}\n imageHeight={heightFromState || height}\n imageWidth={widthFromState || width}\n {...(shape.group === 'polygons' ? { addPolygonPoint: (e) => this.addPolygonPoint(e) } : {})}\n />\n );\n })}\n </Layer>\n </StyledStage>\n </BaseContainer>\n );\n }\n}\n\nDrawable.propTypes = {\n disableDrag: PropTypes.func.isRequired,\n dimensions: PropTypes.object.isRequired,\n enableDrag: PropTypes.func.isRequired,\n shapeType: PropTypes.oneOf(Object.values(SUPPORTED_SHAPES)),\n imageUrl: PropTypes.string.isRequired,\n handleFinishDrawing: PropTypes.func.isRequired,\n hotspotColor: PropTypes.string.isRequired,\n selectedHotspotColor: PropTypes.string,\n hoverOutlineColor: PropTypes.string,\n multipleCorrect: PropTypes.bool.isRequired,\n onUpdateImageDimension: PropTypes.func.isRequired,\n onUpdateShapes: PropTypes.func.isRequired,\n onDeleteShape: PropTypes.func.isRequired,\n outlineColor: PropTypes.string.isRequired,\n shapes: PropTypes.array.isRequired,\n strokeWidth: PropTypes.number,\n preserveAspectRatioEnabled: PropTypes.bool,\n};\n\nexport default Drawable;\n"],"mappings":"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","ignoreList":[]}