@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
@@ -0,0 +1,124 @@
1
+ import e from "./DeleteWidget.js";
2
+ import t from "react";
3
+ import n from "prop-types";
4
+ import { jsx as r, jsxs as i } from "react/jsx-runtime";
5
+ import { Circle as a, Group as o, Transformer as s } from "react-konva";
6
+ //#region src/author/hotspot-circle.tsx
7
+ function c(e) {
8
+ return typeof e == "function" || typeof e == "object" && !!e && typeof e.$$typeof == "symbol";
9
+ }
10
+ function l(e, t) {
11
+ return !e || c(e) ? e : c(e.default) ? e.default : t && c(e[t]) ? e[t] : t && c(e[t]?.default) ? e[t].default : e;
12
+ }
13
+ var u = l(s, "Transformer"), d = l(o, "Group"), f = l(a, "Circle"), p = class extends t.Component {
14
+ constructor(e) {
15
+ super(e), this.state = {
16
+ hovered: !1,
17
+ isDragging: !1
18
+ }, this.shapeRef = t.createRef(), this.trRef = t.createRef();
19
+ }
20
+ handleClick = (e) => {
21
+ let { radius: t, isDrawing: n, onClick: r, id: i } = this.props;
22
+ t <= 0 && n || (e.cancelBubble = !0, r(i));
23
+ };
24
+ handleMouseEnter = () => {
25
+ document.body.style.cursor = "pointer", this.setState({ hovered: !0 }), this.trRef.current.setNode(this.shapeRef.current), this.trRef.current.getLayer().batchDraw();
26
+ };
27
+ handleMouseLeave = () => {
28
+ this.state.isDragging || this.setState({ hovered: !1 }), document.body.style.cursor = "default";
29
+ };
30
+ handleOnDragEnd = (e) => {
31
+ let { onDragEnd: t, id: n } = this.props;
32
+ this.setState({ isDragging: !1 }), t(n, {
33
+ x: e.target.x(),
34
+ y: e.target.y()
35
+ });
36
+ };
37
+ onResizeEnd = () => {
38
+ let { onDragEnd: e, id: t } = this.props, n = this.shapeRef.current, r = n.scaleX() === 1 ? n.scaleY() : n.scaleX(), i = Math.max(n.radius() * r, 5);
39
+ this.setState({ isDragging: !1 }), e(t, {
40
+ x: n.x(),
41
+ y: n.y(),
42
+ radius: i
43
+ }), n.scaleX(1), n.scaleY(1);
44
+ };
45
+ handleDelete = (e) => {
46
+ let { onDeleteShape: t } = this.props;
47
+ t(e);
48
+ };
49
+ onTransform = () => {
50
+ let e = this.shapeRef.current, t = (e.scaleX() + e.scaleY()) / 2;
51
+ e.scaleX(t), e.scaleY(t);
52
+ };
53
+ render() {
54
+ let { correct: t, radius: n, hotspotColor: a, id: o, outlineColor: s, x: c, y: l, strokeWidth: p = 5, selectedHotspotColor: m, hoverOutlineColor: h } = this.props, { hovered: g, isDragging: _ } = this.state, v = isNaN(n) || n <= 0 ? 5 : n;
55
+ return /* @__PURE__ */ i(d, {
56
+ onMouseLeave: this.handleMouseLeave,
57
+ onMouseEnter: this.handleMouseEnter,
58
+ padding: 12,
59
+ children: [
60
+ /* @__PURE__ */ r(f, {
61
+ ref: this.shapeRef,
62
+ radius: v,
63
+ fill: t && m ? m : a,
64
+ onClick: this.handleClick,
65
+ onTap: this.handleClick,
66
+ draggable: !0,
67
+ stroke: s,
68
+ strokeWidth: t ? p : 0,
69
+ onDragStart: () => this.setState({ isDragging: !0 }),
70
+ onDragEnd: this.handleOnDragEnd,
71
+ onTransformStart: () => this.setState({ isDragging: !0 }),
72
+ onTransformEnd: this.onResizeEnd,
73
+ x: c,
74
+ y: l,
75
+ cursor: "pointer"
76
+ }),
77
+ !_ && g && /* @__PURE__ */ r(e, {
78
+ id: o,
79
+ radius: v,
80
+ x: c,
81
+ y: l,
82
+ handleWidgetClick: this.handleDelete,
83
+ isCircle: !0
84
+ }),
85
+ this.state.hovered && /* @__PURE__ */ r(u, {
86
+ borderStroke: h || null,
87
+ ref: this.trRef,
88
+ rotateEnabled: !1,
89
+ keepRatio: !0,
90
+ onTransform: this.onTransform,
91
+ enabledAnchors: [
92
+ "middle-left",
93
+ "middle-right",
94
+ "top-center",
95
+ "bottom-center"
96
+ ],
97
+ boundBoxFunc: (e, t) => {
98
+ if (t.width < 10 || t.height < 10) return e;
99
+ let n = e.x + e.width / 2, r = e.y + e.height / 2, i = t.x + t.width / 2, a = t.y + t.height / 2, o = n - i, s = r - a;
100
+ return t.x += o, t.y += s, t;
101
+ }
102
+ })
103
+ ]
104
+ });
105
+ }
106
+ };
107
+ p.propTypes = {
108
+ correct: n.bool,
109
+ isDrawing: n.bool.isRequired,
110
+ id: n.string.isRequired,
111
+ radius: n.number.isRequired,
112
+ hotspotColor: n.string.isRequired,
113
+ selectedHotspotColor: n.string,
114
+ hoverOutlineColor: n.string,
115
+ onClick: n.func.isRequired,
116
+ onDeleteShape: n.func.isRequired,
117
+ onDragEnd: n.func.isRequired,
118
+ outlineColor: n.string.isRequired,
119
+ x: n.number.isRequired,
120
+ y: n.number.isRequired,
121
+ strokeWidth: n.number
122
+ }, p.defaultProps = { correct: !1 };
123
+ //#endregion
124
+ export { p as default };
@@ -0,0 +1,29 @@
1
+ /**
2
+ * @synced-from pie-elements/packages/hotspot/configure/src/hotspot-container.jsx
3
+ * @auto-generated
4
+ *
5
+ * This file is automatically synced from pie-elements and converted to TypeScript.
6
+ * Manual edits will be overwritten on next sync.
7
+ * To make changes, edit the upstream JavaScript file and run sync again.
8
+ */
9
+ import React, { Component } from 'react';
10
+ export declare class Container extends Component {
11
+ static getDerivedStateFromProps(nextProps: any, prevState: any): any;
12
+ constructor(props: any);
13
+ handleFileRead: any;
14
+ enableDropzone: () => void;
15
+ disableDropzone: () => void;
16
+ handleOnPaste: any;
17
+ handleOnDrop: any;
18
+ handleOnDragOver: any;
19
+ handleOnDragExit: any;
20
+ onUpdateShapes: any;
21
+ onDeleteShape: any;
22
+ handleClearAll: () => any;
23
+ handleEnableDrag: () => void;
24
+ handleDisableDrag: () => void;
25
+ handleInputClick: any;
26
+ handleFinishDrawing: any;
27
+ render(): React.JSX.Element;
28
+ }
29
+ export default Container;
@@ -0,0 +1,210 @@
1
+ import e from "./button.js";
2
+ import { CircleButton as t } from "./buttons/circle.js";
3
+ import { PolygonButton as n } from "./buttons/polygon.js";
4
+ import { RectangleButton as r } from "./buttons/rectangle.js";
5
+ import { SUPPORTED_SHAPES as i } from "./shapes/utils.js";
6
+ import { getAllShapes as a, groupShapes as o } from "./utils.js";
7
+ import s from "./hotspot-drawable.js";
8
+ import c from "./upload-control.js";
9
+ import { Component as l } from "react";
10
+ import u from "prop-types";
11
+ import { jsx as d, jsxs as f } from "react/jsx-runtime";
12
+ import { styled as p } from "@mui/material/styles";
13
+ //#region src/author/hotspot-container.tsx
14
+ var m = p("div")(({ theme: e }) => ({
15
+ marginTop: e.spacing(1.5),
16
+ marginBottom: e.spacing(2.5)
17
+ })), h = p("div")(({ theme: e, hasErrors: t, dropzoneActive: n }) => ({
18
+ border: "1px solid #E0E1E6",
19
+ borderRadius: "5px",
20
+ ...n && { border: "1px solid #0032C2" },
21
+ ...t && !n && { border: `1px solid ${e.palette.error.main}` }
22
+ })), g = p("div")({
23
+ marginRight: "5px",
24
+ "&:hover": { cursor: "pointer" }
25
+ }), _ = p("div")({
26
+ alignItems: "center",
27
+ display: "flex",
28
+ flexDirection: "column",
29
+ justifyContent: "center"
30
+ }), v = p("div")(({ theme: e }) => ({
31
+ minHeight: 350,
32
+ paddingBottom: e.spacing(5),
33
+ paddingRight: e.spacing(5)
34
+ })), y = p("div")(({ theme: e }) => ({
35
+ backgroundColor: "#FFF",
36
+ borderBottom: "1px solid #E0E1E6",
37
+ borderTopLeftRadius: "5px",
38
+ borderTopRightRadius: "5px",
39
+ display: "flex",
40
+ justifyContent: "flex-end",
41
+ padding: e.spacing(1)
42
+ })), b = p("div")({ marginRight: "auto" }), x = (e) => e.type.match(/image.*/), S = class extends l {
43
+ static getDerivedStateFromProps(e, t) {
44
+ return {
45
+ ...t,
46
+ shapes: a(e.shapes)
47
+ };
48
+ }
49
+ constructor(e) {
50
+ super(e), this.state = {
51
+ dragEnabled: !0,
52
+ shapes: a(e.shapes),
53
+ selectedShape: i.NONE
54
+ }, this.fakeImageHandler = {
55
+ cancel: () => {},
56
+ done: (e, t) => this.props.onImageUpload(t),
57
+ fileChosen: () => {},
58
+ progress: () => {}
59
+ };
60
+ }
61
+ handleFileRead = (e) => {
62
+ if (e instanceof Blob) {
63
+ let { onImageUpload: t, insertImage: n } = this.props, r = new FileReader();
64
+ r.onloadend = () => t(r.result), r.readAsDataURL(e), n && n({
65
+ ...this.fakeImageHandler,
66
+ getChosenFile: () => e,
67
+ isPasted: !0
68
+ });
69
+ }
70
+ };
71
+ enableDropzone = () => this.setState({ dropzoneActive: !0 });
72
+ disableDropzone = () => this.setState({ dropzoneActive: !1 });
73
+ handleOnPaste = (e) => {
74
+ let { files: t } = e.clipboardData;
75
+ t && x(t[0]) && this.handleFileRead(t[0]);
76
+ };
77
+ handleOnDrop = (e) => {
78
+ e.preventDefault();
79
+ let { items: t, files: n } = e.dataTransfer;
80
+ if (t && t[0].kind === "file") {
81
+ let e = t[0].getAsFile();
82
+ x(e) && this.handleFileRead(e);
83
+ } else x(n[0]) && this.handleFileRead(n[0]);
84
+ this.disableDropzone();
85
+ };
86
+ handleOnDragOver = (e) => {
87
+ e.preventDefault();
88
+ let { dropzoneActive: t } = this.state;
89
+ t || this.enableDropzone();
90
+ };
91
+ handleOnDragExit = (e) => {
92
+ e.preventDefault(), this.disableDropzone();
93
+ };
94
+ onUpdateShapes = (e) => {
95
+ let { onUpdateShapes: t } = this.props;
96
+ this.setState({ shapes: e }, () => t(o(e)));
97
+ };
98
+ onDeleteShape = (e) => {
99
+ let { shapes: t } = this.state;
100
+ if (t && t.length) {
101
+ let n = t.filter((t) => t.id !== e);
102
+ this.onUpdateShapes(n);
103
+ }
104
+ };
105
+ handleClearAll = () => this.onUpdateShapes([]);
106
+ handleEnableDrag = () => this.setState({ dragEnabled: !0 });
107
+ handleDisableDrag = () => this.setState({ dragEnabled: !1 });
108
+ handleInputClick = () => {
109
+ let { insertImage: e } = this.props;
110
+ e && e(this.fakeImageHandler);
111
+ };
112
+ handleFinishDrawing = () => {
113
+ this.setState({ selectedShape: i.NONE });
114
+ };
115
+ render() {
116
+ let { dimensions: a, hasErrors: o, hotspotColor: l, imageUrl: u, multipleCorrect: p, onUpdateImageDimension: x, outlineColor: S, strokeWidth: C, preserveAspectRatioEnabled: w, hoverOutlineColor: T, selectedHotspotColor: E } = this.props, { dropzoneActive: D, dragEnabled: O } = this.state, { shapes: k, selectedShape: A } = this.state;
117
+ return /* @__PURE__ */ d(m, { children: /* @__PURE__ */ f(h, {
118
+ hasErrors: o,
119
+ dropzoneActive: D,
120
+ ...O ? {
121
+ onDragExit: this.handleOnDragExit,
122
+ onDragLeave: this.handleOnDragExit,
123
+ onDragOver: this.handleOnDragOver,
124
+ onDrop: this.handleOnDrop,
125
+ onPaste: this.handleOnPaste
126
+ } : {},
127
+ children: [/* @__PURE__ */ f(y, { children: [
128
+ /* @__PURE__ */ d(g, {
129
+ onClick: () => this.setState({ selectedShape: A === i.RECTANGLE ? i.NONE : i.RECTANGLE }),
130
+ children: /* @__PURE__ */ d(r, { isActive: A === i.RECTANGLE })
131
+ }),
132
+ /* @__PURE__ */ d(g, {
133
+ onClick: () => this.setState({ selectedShape: A === i.POLYGON ? i.NONE : i.POLYGON }),
134
+ children: /* @__PURE__ */ d(n, { isActive: A === i.POLYGON })
135
+ }),
136
+ /* @__PURE__ */ d(g, {
137
+ onClick: () => this.setState({ selectedShape: A === i.CIRCLE ? i.NONE : i.CIRCLE }),
138
+ children: /* @__PURE__ */ d(t, { isActive: A === i.CIRCLE })
139
+ }),
140
+ u && /* @__PURE__ */ d(b, { children: /* @__PURE__ */ d(c, {
141
+ label: "Replace Image",
142
+ onInputClick: this.handleInputClick,
143
+ setRef: (e) => {
144
+ this.input = e;
145
+ }
146
+ }) }),
147
+ /* @__PURE__ */ d(e, {
148
+ disabled: !(k && k.length),
149
+ onClick: this.handleClearAll,
150
+ label: "Clear all"
151
+ })
152
+ ] }), /* @__PURE__ */ d(v, {
153
+ ref: (e) => {
154
+ this.imageSection = e;
155
+ },
156
+ children: u ? /* @__PURE__ */ d(s, {
157
+ dimensions: a,
158
+ disableDrag: this.handleDisableDrag,
159
+ enableDrag: this.handleEnableDrag,
160
+ shapeType: this.state.selectedShape,
161
+ handleFinishDrawing: this.handleFinishDrawing,
162
+ imageUrl: u,
163
+ hotspotColor: l,
164
+ selectedHotspotColor: E,
165
+ hoverOutlineColor: T,
166
+ multipleCorrect: p,
167
+ onUpdateImageDimension: x,
168
+ onUpdateShapes: this.onUpdateShapes,
169
+ onDeleteShape: this.onDeleteShape,
170
+ outlineColor: S,
171
+ shapes: k,
172
+ strokeWidth: C,
173
+ preserveAspectRatioEnabled: w
174
+ }) : /* @__PURE__ */ f(_, { children: [
175
+ /* @__PURE__ */ d("label", { children: "Drag and drop or upload image from computer" }),
176
+ /* @__PURE__ */ d("br", {}),
177
+ /* @__PURE__ */ d(c, {
178
+ label: "Upload Image",
179
+ onInputClick: this.handleInputClick,
180
+ setRef: (e) => {
181
+ this.input = e;
182
+ }
183
+ })
184
+ ] })
185
+ })]
186
+ }) });
187
+ }
188
+ };
189
+ S.propTypes = {
190
+ dimensions: u.object.isRequired,
191
+ imageUrl: u.string.isRequired,
192
+ hotspotColor: u.string.isRequired,
193
+ selectedHotspotColor: u.string,
194
+ hoverOutlineColor: u.string,
195
+ multipleCorrect: u.bool.isRequired,
196
+ onImageUpload: u.func.isRequired,
197
+ onUpdateImageDimension: u.func.isRequired,
198
+ insertImage: u.func,
199
+ onUpdateShapes: u.func.isRequired,
200
+ outlineColor: u.string.isRequired,
201
+ shapes: u.shape({
202
+ rectangles: u.array,
203
+ polygons: u.array
204
+ }).isRequired,
205
+ strokeWidth: u.number,
206
+ preserveAspectRatioEnabled: u.bool,
207
+ hasErrors: u.bool
208
+ }, S.defaultProps = { strokeWidth: 5 };
209
+ //#endregion
210
+ export { S as default };
@@ -0,0 +1,31 @@
1
+ /**
2
+ * @synced-from pie-elements/packages/hotspot/configure/src/hotspot-drawable.jsx
3
+ * @auto-generated
4
+ *
5
+ * This file is automatically synced from pie-elements and converted to TypeScript.
6
+ * Manual edits will be overwritten on next sync.
7
+ * To make changes, edit the upstream JavaScript file and run sync again.
8
+ */
9
+ import React from 'react';
10
+ export declare class Drawable extends React.Component {
11
+ static getDerivedStateFromProps(nextProps: any, prevState: any): {
12
+ shapes: any;
13
+ } | null;
14
+ constructor(props: any);
15
+ handleOnMouseDown: any;
16
+ addPolygonPoint(e: any): any;
17
+ handleOnMouseUp: any;
18
+ handleMouseMove: any;
19
+ handleOnMouseOutOrLeave: any;
20
+ handleOnDragEnd: any;
21
+ closeInProgressPolygons: any;
22
+ handleOnSetAsCorrect: any;
23
+ handleOnImageLoad: any;
24
+ initialiseResize: any;
25
+ checkIfResizeValid(x: any, y: any): boolean;
26
+ startResizing: any;
27
+ stopResizing: any;
28
+ deleteShape: any;
29
+ render(): React.JSX.Element;
30
+ }
31
+ export default Drawable;
@@ -0,0 +1,312 @@
1
+ import e from "../node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/cloneDeep.js";
2
+ import { CircleShape as t } from "./shapes/circle.js";
3
+ import { RectangleShape as n } from "./shapes/rectagle.js";
4
+ import { PolygonShape as r } from "./shapes/polygon.js";
5
+ import { SHAPE_GROUPS as i, SUPPORTED_SHAPES as a } from "./shapes/utils.js";
6
+ import { getUpdatedShapes as o, updateImageDimensions as s } from "./utils.js";
7
+ import c from "./hotspot-rectangle.js";
8
+ import l from "./hotspot-polygon.js";
9
+ import u from "./hotspot-circle.js";
10
+ import d, { createElement as f } from "react";
11
+ import p from "prop-types";
12
+ import { jsx as m, jsxs as h } from "react/jsx-runtime";
13
+ import { styled as g } from "@mui/material/styles";
14
+ import { Layer as _, Stage as v } from "react-konva";
15
+ //#region src/author/hotspot-drawable.tsx
16
+ function y(e) {
17
+ return typeof e == "function" || typeof e == "object" && !!e && typeof e.$$typeof == "symbol";
18
+ }
19
+ function b(e, t) {
20
+ return !e || y(e) ? e : y(e.default) ? e.default : t && y(e[t]) ? e[t] : t && y(e[t]?.default) ? e[t].default : e;
21
+ }
22
+ var x = b(v, "Stage"), S = b(_, "Layer"), C = g("div")({ position: "relative" }), w = g("div")({
23
+ position: "relative",
24
+ width: "fit-content"
25
+ }), T = g("img")({
26
+ alignItems: "center",
27
+ display: "flex",
28
+ justifyContent: "center"
29
+ }), E = g("div")({
30
+ borderBottom: "1px solid #727272",
31
+ borderRight: "1px solid #727272",
32
+ bottom: "-10px",
33
+ cursor: "se-resize",
34
+ height: "10px",
35
+ position: "absolute",
36
+ right: "-10px",
37
+ width: "10px"
38
+ }), D = g(x)({
39
+ left: 0,
40
+ top: 0,
41
+ position: "absolute"
42
+ }), O = 800, k = class extends d.Component {
43
+ static getDerivedStateFromProps(e, t) {
44
+ return e.shapes === t.shapes ? null : { shapes: e.shapes };
45
+ }
46
+ constructor(e) {
47
+ super(e), this.state = {
48
+ isDrawing: !1,
49
+ stateShapes: !1,
50
+ resizing: !1,
51
+ temporaryPolygon: null,
52
+ shapes: [],
53
+ dimensions: {
54
+ height: 0,
55
+ width: 0
56
+ }
57
+ };
58
+ }
59
+ handleOnMouseDown = (e) => {
60
+ let { shapeType: i, onUpdateShapes: o, shapes: s } = this.props, c, l;
61
+ if (e.target === e.currentTarget && Object.values(a).includes(i)) {
62
+ switch (i) {
63
+ case a.RECTANGLE:
64
+ c = n.create(s, e);
65
+ break;
66
+ case a.CIRCLE:
67
+ c = t.create(s, e);
68
+ break;
69
+ case a.POLYGON:
70
+ if (l = this.state.isDrawingShapeId, l) {
71
+ let t = this.addPolygonPoint(e);
72
+ c = {
73
+ isDrawing: !0,
74
+ isDrawingShapeId: l,
75
+ shapes: t
76
+ };
77
+ } else c = r.create(s, e);
78
+ break;
79
+ default: return;
80
+ }
81
+ this.setState({ ...c }), o(c.shapes);
82
+ }
83
+ };
84
+ addPolygonPoint(e) {
85
+ let { shapes: t } = r.addPoint(this.state, e, (e) => {
86
+ this.setState({
87
+ isDrawing: !1,
88
+ shapes: e,
89
+ isDrawingShapeId: void 0
90
+ }), this.props.onUpdateShapes(e);
91
+ });
92
+ return t;
93
+ }
94
+ handleOnMouseUp = () => {
95
+ let { shapeType: e, onUpdateShapes: r } = this.props, i;
96
+ if (e !== a.POLYGON) {
97
+ switch (e) {
98
+ case a.RECTANGLE:
99
+ i = n.finalizeCreation(this.state, this.props);
100
+ break;
101
+ case a.CIRCLE:
102
+ i = t.finalizeCreation(this.state, this.props);
103
+ break;
104
+ default: return;
105
+ }
106
+ this.setState({
107
+ ...i,
108
+ isDrawing: !1
109
+ }), r(i.shapes);
110
+ }
111
+ };
112
+ handleMouseMove = (e) => {
113
+ let { shapeType: i, onUpdateShapes: o } = this.props, s;
114
+ if (!(!this.state.isDrawing || !Object.values(a).includes(i))) {
115
+ switch (i) {
116
+ case a.RECTANGLE:
117
+ s = n.handleMouseMove(this.state, e);
118
+ break;
119
+ case a.CIRCLE:
120
+ s = t.handleMouseMove(this.state, e);
121
+ break;
122
+ case a.POLYGON:
123
+ s = r.handleMouseMove(this.state, e);
124
+ break;
125
+ default: return;
126
+ }
127
+ this.setState(s), o(s.shapes);
128
+ }
129
+ };
130
+ handleOnMouseOutOrLeave = (e) => {
131
+ this.state.isDrawing && this.handleOnMouseUp(e);
132
+ };
133
+ handleOnDragEnd = (t, n) => {
134
+ let { shapes: r, onUpdateShapes: i, dimensions: a } = this.props, { width: o, height: s } = a;
135
+ i(e(r.map((e) => {
136
+ if (e.id !== t) return e;
137
+ let r = n.x, i = n.y;
138
+ if (e.group === "rectangles") return r + e.width < 0 || r > o || i + e.height < 0 || i > s ? null : {
139
+ ...e,
140
+ ...n
141
+ };
142
+ if (e.group === "circles") {
143
+ let t = e.radius;
144
+ return r + t < 0 || r - t > o || i + t < 0 || i - t > s ? null : {
145
+ ...e,
146
+ ...n
147
+ };
148
+ }
149
+ if (e.group === "polygons") {
150
+ let t = e.points, r = t.map((e) => e.x), i = t.map((e) => e.y), a = Math.min(...r), c = Math.min(...i), l = Math.max(...r), u = Math.max(...i), d = n.points[0].x - t[0].x, f = n.points[0].y - t[0].y;
151
+ return a += d, l += d, c += f, u += f, l < 0 || a > o || u < 0 || c > s ? null : {
152
+ ...e,
153
+ ...n
154
+ };
155
+ }
156
+ return e;
157
+ }).filter((e) => e !== null)));
158
+ };
159
+ closeInProgressPolygons = (t) => {
160
+ let { shapes: n, onUpdateShapes: i } = this.props, a = (n || []).find((e) => e.id === "newPolygon");
161
+ (t === "newPolygon" || a && this.state.isDrawing) && r.finalizeCreation(this.state, (t) => {
162
+ this.setState({
163
+ isDrawing: !1,
164
+ shapes: t,
165
+ isDrawingShapeId: void 0
166
+ }), i(e(t));
167
+ });
168
+ };
169
+ handleOnSetAsCorrect = (t) => {
170
+ let { id: n } = t, { multipleCorrect: r, shapes: i, onUpdateShapes: a } = this.props, o;
171
+ o = r ? i.map((e) => (e.id === n && (e.correct = !e.correct), e)) : i.map((e) => (e.correct = e.id === n, e)), a(e(o)), this.closeInProgressPolygons(n);
172
+ };
173
+ handleOnImageLoad = ({ target: e }) => {
174
+ let { onUpdateImageDimension: t } = this.props, n = this.resize, r = getComputedStyle(e), i = parseFloat(r.height), a = parseFloat(r.width), o = a / O, s = a > O ? {
175
+ height: i / o,
176
+ width: O
177
+ } : {
178
+ height: i,
179
+ width: a
180
+ };
181
+ this.setState({ dimensions: s }, () => t(s)), n.addEventListener("mousedown", this.initialiseResize, !1);
182
+ };
183
+ initialiseResize = () => {
184
+ window.addEventListener("mousemove", this.startResizing, !1), window.addEventListener("mouseup", this.stopResizing, !1);
185
+ };
186
+ checkIfResizeValid(e, t) {
187
+ let { shapes: n } = this.state, r = !0;
188
+ return n && n.forEach((n) => {
189
+ let i = n.x + n.width + 5, a = n.y + n.height + 5;
190
+ (e <= i || t <= a) && (r = !1);
191
+ }), r;
192
+ }
193
+ startResizing = (e) => {
194
+ let t = e.target.getBoundingClientRect(), n = this.image, { disableDrag: r, preserveAspectRatioEnabled: i, dimensions: a, shapes: c } = this.props, { width: l, height: u } = s(a, {
195
+ width: e.clientX - t.left,
196
+ height: e.clientY - t.top
197
+ }, i);
198
+ this.checkIfResizeValid(l, u) && l > 150 && u > 150 && n && (n.style.width = `${l}px`, n.style.height = `${u}px`, this.setState({
199
+ resizing: !0,
200
+ dimensions: {
201
+ height: u,
202
+ width: l
203
+ },
204
+ stateShapes: o(a, {
205
+ width: l,
206
+ height: u
207
+ }, c)
208
+ })), r();
209
+ };
210
+ stopResizing = () => {
211
+ let { enableDrag: t, onUpdateImageDimension: n, onUpdateShapes: r } = this.props, { dimensions: i, stateShapes: a } = this.state;
212
+ t(), a && r(e(a)), n(i), window.removeEventListener("mousemove", this.startResizing, !1), window.removeEventListener("mouseup", this.stopResizing, !1), this.setState({
213
+ resizing: !1,
214
+ stateShapes: !1
215
+ });
216
+ };
217
+ deleteShape = (e) => {
218
+ this.setState({
219
+ isDrawing: !1,
220
+ isDrawingShapeId: void 0
221
+ }), this.props.onDeleteShape(e);
222
+ };
223
+ render() {
224
+ let { imageUrl: e, dimensions: { height: t, width: n }, hotspotColor: r, outlineColor: a, shapes: o, strokeWidth: s, hoverOutlineColor: d, selectedHotspotColor: p } = this.props, { stateShapes: g, isDrawing: _, dimensions: { height: v, width: y } } = this.state, b = g || o;
225
+ return /* @__PURE__ */ h(C, { children: [e && /* @__PURE__ */ h(w, { children: [/* @__PURE__ */ m(T, {
226
+ onLoad: this.handleOnImageLoad,
227
+ ref: (e) => {
228
+ this.image = e;
229
+ },
230
+ src: e,
231
+ ...t && n ? { style: {
232
+ height: t,
233
+ width: n
234
+ } } : {}
235
+ }), /* @__PURE__ */ m(E, { ref: (e) => {
236
+ this.resize = e;
237
+ } })] }), /* @__PURE__ */ m(D, {
238
+ height: v || t,
239
+ width: y || n,
240
+ onMouseDown: this.handleOnMouseDown,
241
+ onMouseUp: this.handleOnMouseUp,
242
+ onMouseMove: this.handleMouseMove,
243
+ onContentMouseOut: this.handleOnMouseOutOrLeave,
244
+ onContentMouseLeave: this.handleOnMouseOutOrLeave,
245
+ children: /* @__PURE__ */ m(S, { children: b.map((e, o) => {
246
+ let m;
247
+ switch (e.group) {
248
+ case i.RECTANGLES:
249
+ m = c;
250
+ break;
251
+ case i.CIRCLES:
252
+ m = u;
253
+ break;
254
+ case i.POLYGONS:
255
+ m = l;
256
+ break;
257
+ default: return null;
258
+ }
259
+ return /* @__PURE__ */ f(m, {
260
+ ...e.group === i.CIRCLES ? { radius: e.radius } : {},
261
+ ...e.group === i.RECTANGLES ? {
262
+ height: e.height,
263
+ width: e.width
264
+ } : {},
265
+ ...e.group === i.POLYGONS ? {
266
+ points: e.points,
267
+ addPolygonPoint: (e) => this.addPolygonPoint(e)
268
+ } : {},
269
+ correct: e.correct,
270
+ isDrawing: _,
271
+ hotspotColor: r,
272
+ hoverOutlineColor: d,
273
+ selectedHotspotColor: p,
274
+ id: e.id,
275
+ key: o,
276
+ onClick: () => this.handleOnSetAsCorrect(e),
277
+ onDragEnd: this.handleOnDragEnd,
278
+ onDeleteShape: this.deleteShape,
279
+ outlineColor: a,
280
+ width: e.width,
281
+ x: e.x,
282
+ y: e.y,
283
+ strokeWidth: s,
284
+ imageHeight: v || t,
285
+ imageWidth: y || n,
286
+ ...e.group === "polygons" ? { addPolygonPoint: (e) => this.addPolygonPoint(e) } : {}
287
+ });
288
+ }) })
289
+ })] });
290
+ }
291
+ };
292
+ k.propTypes = {
293
+ disableDrag: p.func.isRequired,
294
+ dimensions: p.object.isRequired,
295
+ enableDrag: p.func.isRequired,
296
+ shapeType: p.oneOf(Object.values(a)),
297
+ imageUrl: p.string.isRequired,
298
+ handleFinishDrawing: p.func.isRequired,
299
+ hotspotColor: p.string.isRequired,
300
+ selectedHotspotColor: p.string,
301
+ hoverOutlineColor: p.string,
302
+ multipleCorrect: p.bool.isRequired,
303
+ onUpdateImageDimension: p.func.isRequired,
304
+ onUpdateShapes: p.func.isRequired,
305
+ onDeleteShape: p.func.isRequired,
306
+ outlineColor: p.string.isRequired,
307
+ shapes: p.array.isRequired,
308
+ strokeWidth: p.number,
309
+ preserveAspectRatioEnabled: p.bool
310
+ };
311
+ //#endregion
312
+ export { k as default };