@pie-element/hotspot 4.10.16-next.1 → 4.11.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 (52) hide show
  1. package/CHANGELOG.md +88 -0
  2. package/LICENSE.md +5 -0
  3. package/configure/CHANGELOG.md +75 -0
  4. package/configure/lib/button.js +1 -1
  5. package/configure/lib/defaults.js +3 -2
  6. package/configure/lib/defaults.js.map +1 -1
  7. package/configure/lib/hotspot-container.js +1 -1
  8. package/configure/lib/hotspot-drawable.js +2 -2
  9. package/configure/lib/hotspot-palette.js +1 -1
  10. package/configure/lib/hotspot-polygon.js +1 -1
  11. package/configure/lib/hotspot-rectangle.js +1 -1
  12. package/configure/lib/index.js +1 -1
  13. package/configure/lib/root.js +23 -18
  14. package/configure/lib/root.js.map +1 -1
  15. package/configure/lib/upload-control.js +1 -1
  16. package/configure/lib/utils.js +14 -2
  17. package/configure/lib/utils.js.map +1 -1
  18. package/configure/package.json +3 -3
  19. package/configure/src/__tests__/__snapshots__/root.test.js.snap +32 -4
  20. package/configure/src/defaults.js +2 -1
  21. package/configure/src/hotspot-drawable.jsx +1 -1
  22. package/configure/src/root.jsx +33 -26
  23. package/configure/src/utils.js +23 -1
  24. package/controller/CHANGELOG.md +12 -0
  25. package/controller/lib/defaults.js +1 -1
  26. package/controller/lib/index.js +1 -1
  27. package/controller/lib/index.js.map +1 -1
  28. package/controller/lib/utils.js +1 -1
  29. package/controller/package.json +1 -1
  30. package/lib/hotspot/container.js +1 -1
  31. package/lib/hotspot/icons.js +1 -1
  32. package/lib/hotspot/image.js +1 -1
  33. package/lib/hotspot/index.js +1 -1
  34. package/lib/hotspot/polygon.js +1 -1
  35. package/lib/hotspot/rectangle.js +1 -1
  36. package/lib/index.js +4 -1
  37. package/lib/session-updater.js +1 -1
  38. package/package.json +4 -4
  39. package/src/index.js +5 -0
  40. package/configure/lib/__tests__/hotspot-container.test.js +0 -281
  41. package/configure/lib/__tests__/hotspot-drawable.test.js +0 -241
  42. package/configure/lib/__tests__/index.test.js +0 -224
  43. package/configure/lib/__tests__/root.test.js +0 -443
  44. package/configure/lib/__tests__/utils.test.js +0 -335
  45. package/controller/lib/__tests__/index.test.js +0 -921
  46. package/controller/lib/__tests__/utils.test.js +0 -8
  47. package/docs/demo/pie.manifest.json +0 -11
  48. package/lib/__tests__/container-test.js +0 -185
  49. package/lib/__tests__/image-test.js +0 -63
  50. package/lib/__tests__/polygon-test.js +0 -99
  51. package/lib/__tests__/rectangle-test.js +0 -92
  52. package/lib/__tests__/session-updater-test.js +0 -78
@@ -23,4 +23,4 @@ var _default = {
23
23
  outlineList: ['blue']
24
24
  };
25
25
  exports["default"] = _default;
26
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kZWZhdWx0cy5qcyJdLCJuYW1lcyI6WyJwcm9tcHQiLCJpbWFnZVVybCIsInNoYXBlcyIsInJlY3RhbmdsZXMiLCJwb2x5Z29ucyIsIm11bHRpcGxlQ29ycmVjdCIsInBhcnRpYWxTY29yaW5nIiwiZGltZW5zaW9ucyIsImhlaWdodCIsIndpZHRoIiwiaG90c3BvdENvbG9yIiwiaG90c3BvdExpc3QiLCJvdXRsaW5lQ29sb3IiLCJvdXRsaW5lTGlzdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7O2VBQWU7QUFDYkEsRUFBQUEsTUFBTSxFQUFFLDZCQURLO0FBRWJDLEVBQUFBLFFBQVEsRUFBRSxFQUZHO0FBR2JDLEVBQUFBLE1BQU0sRUFBRTtBQUNOQyxJQUFBQSxVQUFVLEVBQUUsRUFETjtBQUVOQyxJQUFBQSxRQUFRLEVBQUU7QUFGSixHQUhLO0FBT2JDLEVBQUFBLGVBQWUsRUFBRSxJQVBKO0FBUWJDLEVBQUFBLGNBQWMsRUFBRSxLQVJIO0FBU2JDLEVBQUFBLFVBQVUsRUFBRTtBQUNWQyxJQUFBQSxNQUFNLEVBQUUsQ0FERTtBQUVWQyxJQUFBQSxLQUFLLEVBQUU7QUFGRyxHQVRDO0FBYWJDLEVBQUFBLFlBQVksRUFBRSwyQkFiRDtBQWNiQyxFQUFBQSxXQUFXLEVBQUUsQ0FDWCwyQkFEVyxDQWRBO0FBaUJiQyxFQUFBQSxZQUFZLEVBQUUsTUFqQkQ7QUFrQmJDLEVBQUFBLFdBQVcsRUFBRSxDQUNYLE1BRFc7QUFsQkEsQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IHtcbiAgcHJvbXB0OiAnVGhpcyBpcyB0aGUgcXVlc3Rpb24gcHJvbXB0JyxcbiAgaW1hZ2VVcmw6ICcnLFxuICBzaGFwZXM6IHtcbiAgICByZWN0YW5nbGVzOiBbXSxcbiAgICBwb2x5Z29uczogW11cbiAgfSxcbiAgbXVsdGlwbGVDb3JyZWN0OiB0cnVlLFxuICBwYXJ0aWFsU2NvcmluZzogZmFsc2UsXG4gIGRpbWVuc2lvbnM6IHtcbiAgICBoZWlnaHQ6IDAsXG4gICAgd2lkdGg6IDBcbiAgfSxcbiAgaG90c3BvdENvbG9yOiAncmdiYSgxMzcsIDE4MywgMjQ0LCAwLjY1KScsXG4gIGhvdHNwb3RMaXN0OiBbXG4gICAgJ3JnYmEoMTM3LCAxODMsIDI0NCwgMC42NSknXG4gIF0sXG4gIG91dGxpbmVDb2xvcjogJ2JsdWUnLFxuICBvdXRsaW5lTGlzdDogW1xuICAgICdibHVlJ1xuICBdXG59O1xuIl19
26
+ //# sourceMappingURL=defaults.js.map
@@ -260,4 +260,4 @@ var validate = function validate() {
260
260
  };
261
261
 
262
262
  exports.validate = validate;
263
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJsb2ciLCJub3JtYWxpemUiLCJxdWVzdGlvbiIsInByb21wdEVuYWJsZWQiLCJyYXRpb25hbGVFbmFibGVkIiwidGVhY2hlckluc3RydWN0aW9uc0VuYWJsZWQiLCJzdHVkZW50SW5zdHJ1Y3Rpb25zRW5hYmxlZCIsInN0cm9rZVdpZHRoIiwibW9kZWwiLCJzZXNzaW9uIiwiZW52Iiwibm9ybWFsaXplZFF1ZXN0aW9uIiwiaW1hZ2VVcmwiLCJkaW1lbnNpb25zIiwiaG90c3BvdENvbG9yIiwibXVsdGlwbGVDb3JyZWN0Iiwib3V0bGluZUNvbG9yIiwicGFydGlhbFNjb3JpbmciLCJwcm9tcHQiLCJzaGFwZXMiLCJyZWN0YW5nbGVzIiwicG9seWdvbnMiLCJQcm9taXNlIiwicmVzb2x2ZSIsIm91dCIsImRpc2FibGVkIiwibW9kZSIsIm1hcCIsImluZGV4IiwicmVjdFByb3BzIiwicG9seVByb3BzIiwicmVzcG9uc2VDb3JyZWN0IiwidW5kZWZpbmVkIiwicm9sZSIsInJhdGlvbmFsZSIsInRlYWNoZXJJbnN0cnVjdGlvbnMiLCJjcmVhdGVEZWZhdWx0TW9kZWwiLCJkZWZhdWx0cyIsImdldFNjb3JlIiwiY29uZmlnIiwiYW5zd2VycyIsInBhcnRpYWxTY29yaW5nRW5hYmxlZCIsImVuYWJsZWQiLCJjb3JyZWN0QW5zd2VycyIsInNlbGVjdGVkQ2hvaWNlcyIsImNob2ljZXMiLCJjb3JyZWN0Q2hvaWNlcyIsImZpbHRlciIsImNob2ljZSIsImNvcnJlY3QiLCJmb3JFYWNoIiwic2hhcGUiLCJzZWxlY3RlZCIsImFuc3dlciIsImlkIiwiY29ycmVjdGx5U2VsZWN0ZWQiLCJleHRyYUFuc3dlcnMiLCJsZW5ndGgiLCJ0b3RhbCIsInN0ciIsInRvRml4ZWQiLCJwYXJzZUZsb2F0Iiwib3V0Y29tZSIsInNjb3JlIiwiZW1wdHkiLCJyZXR1cm5TaGFwZXNDb3JyZWN0IiwiaSIsInB1c2giLCJjcmVhdGVDb3JyZWN0UmVzcG9uc2VTZXNzaW9uIiwicmVjdGFuZ2xlQ29ycmVjdCIsInBvbHlnb25zQ29ycmVjdCIsInZhbGlkYXRlIiwibWluU2hhcGVzIiwibWF4U2hhcGVzIiwibWF4U2VsZWN0aW9ucyIsImVycm9ycyIsImFsbFNoYXBlcyIsIk9iamVjdCIsInZhbHVlcyIsInJlZHVjZSIsImFjYyIsIm5iT2ZTZWxlY3Rpb25zIiwibmJPZlNoYXBlcyIsInNoYXBlc0Vycm9yIiwic2VsZWN0aW9uc0Vycm9yIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBRUE7Ozs7Ozs7OztBQUVBLElBQU1BLEdBQUcsR0FBRyx1QkFBTSxpQ0FBTixDQUFaOztBQUVPLElBQU1DLFNBQVMsR0FBRyxTQUFaQSxTQUFZLENBQUFDLFFBQVE7QUFBQTtBQUMvQkMsSUFBQUEsYUFBYSxFQUFFLElBRGdCO0FBRS9CQyxJQUFBQSxnQkFBZ0IsRUFBRSxJQUZhO0FBRy9CQyxJQUFBQSwwQkFBMEIsRUFBRSxJQUhHO0FBSS9CQyxJQUFBQSwwQkFBMEIsRUFBRSxJQUpHO0FBSy9CQyxJQUFBQSxXQUFXLEVBQUU7QUFMa0IsS0FNNUJMLFFBTjRCO0FBQUEsQ0FBMUI7Ozs7QUFTQSxTQUFTTSxLQUFULENBQWVOLFFBQWYsRUFBeUJPLE9BQXpCLEVBQWtDQyxHQUFsQyxFQUF1QztBQUM1QyxNQUFNQyxrQkFBa0IsR0FBR1YsU0FBUyxDQUFDQyxRQUFELENBQXBDO0FBQ0EsTUFDRVUsUUFERixHQVNJRCxrQkFUSixDQUNFQyxRQURGO0FBQUEsTUFFRUMsVUFGRixHQVNJRixrQkFUSixDQUVFRSxVQUZGO0FBQUEsTUFHRUMsWUFIRixHQVNJSCxrQkFUSixDQUdFRyxZQUhGO0FBQUEsTUFJRUMsZUFKRixHQVNJSixrQkFUSixDQUlFSSxlQUpGO0FBQUEsTUFLRUMsWUFMRixHQVNJTCxrQkFUSixDQUtFSyxZQUxGO0FBQUEsTUFNRUMsY0FORixHQVNJTixrQkFUSixDQU1FTSxjQU5GO0FBQUEsTUFP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QUFDQyxHQUFELEVBQU03QixLQUFOO0FBQUEsV0FBZ0JBLEtBQUssQ0FBQ0YsT0FBTixHQUFnQitCLEdBQUcsR0FBRyxDQUF0QixHQUEwQkEsR0FBMUM7QUFBQSxHQUF6QixFQUF3RSxDQUF4RSxDQUF2QjtBQUVBLE1BQU1FLFVBQVUsR0FBRyxDQUFDTixTQUFTLElBQUksRUFBZCxFQUFrQm5CLE1BQXJDOztBQUVBLE1BQUl5QixVQUFVLEdBQUdWLFNBQWpCLEVBQTRCO0FBQzFCRyxJQUFBQSxNQUFNLENBQUNRLFdBQVAsc0NBQWlEWCxTQUFqRDtBQUNELEdBRkQsTUFFTyxJQUFJVSxVQUFVLEdBQUdULFNBQWpCLEVBQTRCO0FBQ2pDRSxJQUFBQSxNQUFNLENBQUNRLFdBQVAsMEJBQXFDVixTQUFyQztBQUNEOztBQUVELE1BQUlRLGNBQWMsR0FBRyxDQUFyQixFQUF3QjtBQUN0Qk4sSUFBQUEsTUFBTSxDQUFDUyxlQUFQLEdBQXlCLDRDQUF6QjtBQUNELEdBRkQsTUFFTyxJQUFJSCxjQUFjLEdBQUdQLGFBQXJCLEVBQW9DO0FBQ3pDQyxJQUFBQSxNQUFNLENBQUNTLGVBQVAsMEJBQXlDVixhQUF6QztBQUNEOztBQUVELFNBQU9DLE1BQVA7QUFDRCxDQXhCTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBkZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5pbXBvcnQgaXNFbXB0eSBmcm9tICdsb2Rhc2gvaXNFbXB0eSc7XG5pbXBvcnQgeyBwYXJ0aWFsU2NvcmluZyB9IGZyb20gJ0BwaWUtbGliL2NvbnRyb2xsZXItdXRpbHMnO1xuXG5pbXBvcnQgeyBpc1Jlc3BvbnNlQ29ycmVjdCB9IGZyb20gJy4vdXRpbHMnO1xuXG5pbXBvcnQgZGVmYXVsdHMgZnJvbSAnLi9kZWZhdWx0cyc7XG5cbmNvbnN0IGxvZyA9IGRlYnVnKCdwaWUtZWxlbWVudHM6aG90c3BvdDpjb250cm9sbGVyJyk7XG5cbmV4cG9ydCBjb25zdCBub3JtYWxpemUgPSBxdWVzdGlvbiA9PiAoe1xuICBwcm9tcHRFbmFibGVkOiB0cnVlLFxuICByYXRpb25hbGVFbmFibGVkOiB0cnVlLFxuICB0ZWFjaGVySW5zdHJ1Y3Rpb25zRW5hYmxlZDogdHJ1ZSxcbiAgc3R1ZGVudEluc3RydWN0aW9uc0VuYWJsZWQ6IHRydWUsXG4gIHN0cm9rZVdpZHRoOiA1LFxuICAuLi5xdWVzdGlvbixcbn0pO1xuXG5leHBvcnQgZnVuY3Rpb24gbW9kZWwocXVlc3Rpb24sIHNlc3Npb24sIGVudikge1xuICBjb25zdCBub3JtYWxpemVkUXVlc3Rpb24gPSBub3JtYWxpemUocXVlc3Rpb24pO1xuICBjb25zdCB7XG4gICAgaW1hZ2VVcmwsXG4gICAgZGltZW5zaW9ucyxcbiAgICBob3RzcG90Q29sb3IsXG4gICAgbXVsdGlwbGVDb3JyZWN0LFxuICAgIG91dGxpbmVDb2xvcixcbiAgICBwYXJ0aWFsU2NvcmluZyxcbiAgICBwcm9tcHQsXG4gICAgc2hhcGVzXG4gIH0gPSBub3JtYWxpemVkUXVlc3Rpb247XG4gIGNvbnN0IHsgcmVjdGFuZ2xlcywgcG9seWdvbnMgfSA9IHNoYXBlcyB8fCB7fTtcblxuICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XG4gICAgY29uc3Qgb3V0ID0ge1xuICAgICAgZGlzYWJsZWQ6IGVudi5tb2RlICE9PSAnZ2F0aGVyJyxcbiAgICAgIG1vZGU6IGVudi5tb2RlLFxuICAgICAgZGltZW5zaW9ucyxcbiAgICAgIGltYWdlVXJsLFxuICAgICAgb3V0bGluZUNvbG9yLFxuICAgICAgaG90c3BvdENvbG9yLFxuICAgICAgbXVsdGlwbGVDb3JyZWN0LFxuICAgICAgcGFydGlhbFNjb3JpbmcsXG4gICAgICBzaGFwZXM6IHtcbiAgICAgICAgLi4uc2hhcGVzLFxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcbiAgICAgICAgcmVjdGFuZ2xlczogKHJlY3RhbmdsZXMgfHwgW10pLm1hcCgoeyBpbmRleCwgLi4ucmVjdFByb3BzIH0pID0+ICh7IC4uLnJlY3RQcm9wcyB9KSksXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xuICAgICAgICBwb2x5Z29uczogKHBvbHlnb25zIHx8IFtdKS5tYXAoKHsgaW5kZXgsIC4uLnBvbHlQcm9wcyB9KSA9PiAoeyAuLi5wb2x5UHJvcHMgfSkpXG4gICAgICB9LFxuICAgICAgcmVzcG9uc2VDb3JyZWN0OlxuICAgICAgICBlbnYubW9kZSA9PT0gJ2V2YWx1YXRlJ1xuICAgICAgICAgID8gaXNSZXNwb25zZUNvcnJlY3Qobm9ybWFsaXplZFF1ZXN0aW9uLCBzZXNzaW9uKVxuICAgICAgICAgIDogdW5kZWZpbmVkXG4gICAgfTtcblxuICAgIGlmIChlbnYucm9sZSA9PT0gJ2luc3RydWN0b3InICYmIChlbnYubW9kZSA9PT0gJ3ZpZXcnIHx8IGVudi5tb2RlID09PSAnZXZhbHVhdGUnKSkge1xuICAgICAgb3V0LnJhdGlvbmFsZSA9IG5vcm1hbGl6ZWRRdWVzdGlvbi5yYXRpb25hbGVFbmFibGVkID8gbm9ybWFsaXplZFF1ZXN0aW9uLnJhdGlvbmFsZSA6IG51bGw7XG4gICAgICBvdXQudGVhY2hlckluc3RydWN0aW9ucyA9IG5vcm1hbGl6ZWRRdWVzdGlvbi50ZWFjaGVySW5zdHJ1Y3Rpb25zRW5hYmxlZCA/IG5vcm1hbGl6ZWRRdWVzdGlvbi50ZWFjaGVySW5zdHJ1Y3Rpb25zIDogbnVsbDtcbiAgICB9IGVsc2Uge1xuICAgICAgb3V0LnJhdGlvbmFsZSA9IG51bGw7XG4gICAgICBvdXQudGVhY2hlckluc3RydWN0aW9ucyA9IG51bGw7XG4gICAgfVxuXG4gICAgb3V0LnByb21wdCA9IG5vcm1hbGl6ZWRRdWVzdGlvbi5wcm9tcHRFbmFibGVkID8gcHJvbXB0IDogbnVsbDtcbiAgICBvdXQuc3Ryb2tlV2lkdGggPSBub3JtYWxpemVkUXVlc3Rpb24uc3Ryb2tlV2lkdGg7XG5cbiAgICAvLyBjb25zb2xlLmxvZyhvdXQpO1xuICAgIHJlc29sdmUob3V0KTtcbiAgfSk7XG59XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVEZWZhdWx0TW9kZWwgPSAobW9kZWwgPSB7fSkgPT5cbiAgbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XG4gICAgcmVzb2x2ZSh7XG4gICAgICAuLi5kZWZhdWx0cyxcbiAgICAgIC4uLm1vZGVsLFxuICAgIH0pO1xuICB9KTtcblxuY29uc3QgZ2V0U2NvcmUgPSAoY29uZmlnLCBzZXNzaW9uLCBlbnYgPSB7fSkgPT4ge1xuICBjb25zdCB7IGFuc3dlcnMgfSA9IHNlc3Npb24gfHwge307XG5cbiAgaWYgKCFjb25maWcuc2hhcGVzIHx8ICghY29uZmlnLnNoYXBlcy5yZWN0YW5nbGVzICYmICFjb25maWcuc2hhcGVzLnBvbHlnb25zKSkge1xuICAgIHJldHVybiAwO1xuICB9XG5cbiAgY29uc3QgeyBzaGFwZXM6IHsgcmVjdGFuZ2xlcyA9IFtdLCBwb2x5Z29ucyA9IFtdIH0gPSB7fSB9ID0gY29uZmlnO1xuICBjb25zdCBwYXJ0aWFsU2NvcmluZ0VuYWJsZWQgPSBwYXJ0aWFsU2NvcmluZy5lbmFibGVkKGNvbmZpZywgZW52KTtcblxuICBpZiAoIXBhcnRpYWxTY29yaW5nRW5hYmxlZCkge1xuICAgIHJldHVybiBpc1Jlc3BvbnNlQ29ycmVjdChjb25maWcsIHNlc3Npb24pID8gMSA6IDA7XG4gIH1cblxuICBsZXQgY29ycmVjdEFuc3dlcnMgPSAwO1xuICBsZXQgc2VsZWN0ZWRDaG9pY2VzID0gMDtcblxuICBjb25zdCBjaG9pY2VzID0gWy4uLnJlY3RhbmdsZXMsIC4uLnBvbHlnb25zXTtcblxuICBjb25zdCBjb3JyZWN0Q2hvaWNlcyA9IGNob2ljZXMuZmlsdGVyKGNob2ljZSA9PiBjaG9pY2UuY29ycmVjdCk7XG5cbiAgY2hvaWNlcy5mb3JFYWNoKHNoYXBlID0+IHtcbiAgICBjb25zdCBzZWxlY3RlZCA9IGFuc3dlcnMgJiYgYW5zd2Vycy5maWx0ZXIoYW5zd2VyID0+IGFuc3dlci5pZCA9PT0gc2hhcGUuaWQpWzBdO1xuICAgIGNvbnN0IGNvcnJlY3RseVNlbGVjdGVkID0gc2hhcGUuY29ycmVjdCAmJiBzZWxlY3RlZDtcblxuICAgIGlmKHNlbGVjdGVkKSB7XG4gICAgICBzZWxlY3RlZENob2ljZXMgKz0xO1xuICAgIH1cblxuICAgIGlmIChjb3JyZWN0bHlTZWxlY3RlZCkge1xuICAgICAgY29ycmVjdEFuc3dlcnMgKz0gMTtcbiAgICB9XG4gIH0pO1xuXG4gIGNvbnN0IGV4dHJhQW5zd2VycyA9IHNlbGVjdGVkQ2hvaWNlcyA+IGNvcnJlY3RDaG9pY2VzLmxlbmd0aCA/IHNlbGVjdGVkQ2hvaWNlcyAtIGNvcnJlY3RDaG9pY2VzLmxlbmd0aCA6IDA7XG5cbiAgY29uc3QgdG90YWwgPSBjb3JyZWN0Q2hvaWNlcy5sZW5ndGggPT09IDAgPyAxIDogY29ycmVjdENob2ljZXMubGVuZ3RoO1xuICBjb25zdCBzdHIgPSAoKGNvcnJlY3RBbnN3ZXJzIC0gZXh0cmFBbnN3ZXJzKSAvIHRvdGFsKS50b0ZpeGVkKDIpO1xuXG4gIHJldHVybiBzdHIgPCAwID8gMCA6IHBhcnNlRmxvYXQoc3RyKTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBvdXRjb21lKGNvbmZpZywgc2Vzc2lvbiwgZW52ID0ge30pIHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xuICAgIGxvZygnb3V0Y29tZS4uLicpO1xuXG4gICAgaWYgKCFzZXNzaW9uIHx8IGlzRW1wdHkoc2Vzc2lvbikpIHtcbiAgICAgIHJlc29sdmUoeyBzY29yZTogMCwgZW1wdHk6IHRydWUgfSk7XG4gICAgfVxuXG4gICAgaWYgKHNlc3Npb24uYW5zd2Vycykge1xuICAgICAgY29uc3Qgc2NvcmUgPSBnZXRTY29yZShjb25maWcsIHNlc3Npb24sIGVudik7XG4gICAgICByZXNvbHZlKHsgc2NvcmUgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc29sdmUoe3Njb3JlOiAwLCBlbXB0eTogdHJ1ZX0pXG4gICAgfVxuICB9KTtcbn1cblxuY29uc3QgcmV0dXJuU2hhcGVzQ29ycmVjdCA9IChzaGFwZXMpID0+IHtcbiAgbGV0IGFuc3dlcnMgPSBbXTtcblxuICBzaGFwZXMuZm9yRWFjaChpID0+IHtcbiAgICBjb25zdCB7IGNvcnJlY3QsIGlkIH0gPSBpO1xuICAgIGlmIChjb3JyZWN0KSB7XG4gICAgICBhbnN3ZXJzLnB1c2goeyBpZCB9KTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gYW5zd2Vycztcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVDb3JyZWN0UmVzcG9uc2VTZXNzaW9uID0gKHF1ZXN0aW9uLCBlbnYpID0+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xuICAgIGlmIChlbnYubW9kZSAhPT0gJ2V2YWx1YXRlJyAmJiBlbnYucm9sZSA9PT0gJ2luc3RydWN0b3InKSB7XG4gICAgICBjb25zdCB7IHNoYXBlczogeyByZWN0YW5nbGVzID0gW10sIHBvbHlnb25zID0ge30gfSA9IHt9IH0gPSBxdWVzdGlvbjtcblxuICAgICAgY29uc3QgcmVjdGFuZ2xlQ29ycmVjdCA9IHJldHVyblNoYXBlc0NvcnJlY3QocmVjdGFuZ2xlcyk7XG4gICAgICBjb25zdCBwb2x5Z29uc0NvcnJlY3QgPSByZXR1cm5TaGFwZXNDb3JyZWN0KHBvbHlnb25zKTtcblxuICAgICAgcmVzb2x2ZSh7XG4gICAgICAgIGFuc3dlcnM6IFtcbiAgICAgICAgICAuLi5yZWN0YW5nbGVDb3JyZWN0LFxuICAgICAgICAgIC4uLnBvbHlnb25zQ29ycmVjdFxuICAgICAgICBdLFxuICAgICAgICBpZDogJzEnXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzb2x2ZShudWxsKTtcbiAgICB9XG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlID0gKG1vZGVsID0ge30sIGNvbmZpZyA9IHt9KSA9PiB7XG4gIGNvbnN0IHsgc2hhcGVzIH0gPSBtb2RlbDtcbiAgY29uc3QgeyBtaW5TaGFwZXMgPSAyLCBtYXhTaGFwZXMsIG1heFNlbGVjdGlvbnMgfSA9IGNvbmZpZztcbiAgY29uc3QgZXJyb3JzID0ge307XG5cbiAgY29uc3QgYWxsU2hhcGVzID0gT2JqZWN0LnZhbHVlcyhzaGFwZXMgfHwge30pLnJlZHVjZSgoYWNjLCBzaGFwZSkgPT4gWy4uLmFjYywgLi4uc2hhcGVdLCBbXSk7XG5cbiAgY29uc3QgbmJPZlNlbGVjdGlvbnMgPSAoYWxsU2hhcGVzIHx8IFtdKS5yZWR1Y2UoKGFjYywgc2hhcGUpID0+IHNoYXBlLmNvcnJlY3QgPyBhY2MgKyAxIDogYWNjLCAwKTtcblxuICBjb25zdCBuYk9mU2hhcGVzID0gKGFsbFNoYXBlcyB8fCBbXSkubGVuZ3RoO1xuXG4gIGlmIChuYk9mU2hhcGVzIDwgbWluU2hhcGVzKSB7XG4gICAgZXJyb3JzLnNoYXBlc0Vycm9yID0gYFRoZXJlIHNob3VsZCBiZSBhdCBsZWFzdCAke21pblNoYXBlc30gc2hhcGVzIGRlZmluZWQuYDtcbiAgfSBlbHNlIGlmIChuYk9mU2hhcGVzID4gbWF4U2hhcGVzKSB7XG4gICAgZXJyb3JzLnNoYXBlc0Vycm9yID0gYE5vIG1vcmUgdGhhbiAke21heFNoYXBlc30gc2hhcGVzIHNob3VsZCBiZSBkZWZpbmVkLmA7XG4gIH1cblxuICBpZiAobmJPZlNlbGVjdGlvbnMgPCAxKSB7XG4gICAgZXJyb3JzLnNlbGVjdGlvbnNFcnJvciA9ICdUaGVyZSBzaG91bGQgYmUgYXQgbGVhc3QgMSBzaGFwZSBzZWxlY3RlZC4nO1xuICB9IGVsc2UgaWYgKG5iT2ZTZWxlY3Rpb25zID4gbWF4U2VsZWN0aW9ucykge1xuICAgIGVycm9ycy5zZWxlY3Rpb25zRXJyb3IgPSBgTm8gbW9yZSB0aGFuICR7bWF4U2VsZWN0aW9uc30gc2hhcGVzIHNob3VsZCBiZSBzZWxlY3RlZC5gO1xuICB9XG5cbiAgcmV0dXJuIGVycm9ycztcbn07XG4iXX0=
263
+ //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.js"],"names":["log","normalize","question","promptEnabled","rationaleEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","strokeWidth","model","session","env","normalizedQuestion","imageUrl","dimensions","hotspotColor","multipleCorrect","outlineColor","partialScoring","prompt","shapes","rectangles","polygons","Promise","resolve","out","disabled","mode","map","index","rectProps","polyProps","responseCorrect","undefined","role","rationale","teacherInstructions","createDefaultModel","defaults","getScore","config","answers","partialScoringEnabled","enabled","correctAnswers","selectedChoices","choices","correctChoices","filter","choice","correct","forEach","shape","selected","answer","id","correctlySelected","extraAnswers","length","total","str","toFixed","parseFloat","outcome","score","empty","returnShapesCorrect","i","push","createCorrectResponseSession","rectangleCorrect","polygonsCorrect"],"mappings":"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","sourcesContent":["import debug from 'debug';\nimport isEmpty from 'lodash/isEmpty';\nimport { partialScoring } from '@pie-lib/controller-utils';\n\nimport { isResponseCorrect } from './utils';\n\nimport defaults from './defaults';\n\nconst log = debug('pie-elements:hotspot:controller');\n\nexport const normalize = question => ({\n promptEnabled: true,\n rationaleEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n strokeWidth: 5,\n ...question,\n});\n\nexport function model(question, session, env) {\n const normalizedQuestion = normalize(question);\n const {\n imageUrl,\n dimensions,\n hotspotColor,\n multipleCorrect,\n outlineColor,\n partialScoring,\n prompt,\n shapes\n } = normalizedQuestion;\n const { rectangles, polygons } = shapes || {};\n\n return new Promise(resolve => {\n const out = {\n disabled: env.mode !== 'gather',\n mode: env.mode,\n dimensions,\n imageUrl,\n outlineColor,\n hotspotColor,\n multipleCorrect,\n partialScoring,\n shapes: {\n ...shapes,\n // eslint-disable-next-line no-unused-vars\n rectangles: (rectangles || []).map(({ index, ...rectProps }) => ({ ...rectProps })),\n // eslint-disable-next-line no-unused-vars\n polygons: (polygons || []).map(({ index, ...polyProps }) => ({ ...polyProps }))\n },\n responseCorrect:\n env.mode === 'evaluate'\n ? isResponseCorrect(normalizedQuestion, session)\n : undefined\n };\n\n if (env.role === 'instructor' && (env.mode === 'view' || env.mode === 'evaluate')) {\n out.rationale = normalizedQuestion.rationaleEnabled ? normalizedQuestion.rationale : null;\n out.teacherInstructions = normalizedQuestion.teacherInstructionsEnabled ? normalizedQuestion.teacherInstructions : null;\n } else {\n out.rationale = null;\n out.teacherInstructions = null;\n }\n\n out.prompt = normalizedQuestion.promptEnabled ? prompt : null;\n out.strokeWidth = normalizedQuestion.strokeWidth;\n\n // console.log(out);\n resolve(out);\n });\n}\n\nexport const createDefaultModel = (model = {}) =>\n new Promise(resolve => {\n resolve({\n ...defaults,\n ...model,\n });\n });\n\nconst getScore = (config, session, env = {}) => {\n const { answers } = session || {};\n\n if (!config.shapes || (!config.shapes.rectangles && !config.shapes.polygons)) {\n return 0;\n }\n\n const { shapes: { rectangles = [], polygons = [] } = {} } = config;\n const partialScoringEnabled = partialScoring.enabled(config, env);\n\n if (!partialScoringEnabled) {\n return isResponseCorrect(config, session) ? 1 : 0;\n }\n\n let correctAnswers = 0;\n let selectedChoices = 0;\n\n const choices = [...rectangles, ...polygons];\n\n const correctChoices = choices.filter(choice => choice.correct);\n\n choices.forEach(shape => {\n const selected = answers && answers.filter(answer => answer.id === shape.id)[0];\n const correctlySelected = shape.correct && selected;\n\n if(selected) {\n selectedChoices +=1;\n }\n\n if (correctlySelected) {\n correctAnswers += 1;\n }\n });\n\n const extraAnswers = selectedChoices > correctChoices.length ? selectedChoices - correctChoices.length : 0;\n\n const total = correctChoices.length === 0 ? 1 : correctChoices.length;\n const str = ((correctAnswers - extraAnswers) / total).toFixed(2);\n\n return str < 0 ? 0 : parseFloat(str);\n};\n\nexport function outcome(config, session, env = {}) {\n return new Promise(resolve => {\n log('outcome...');\n\n if (!session || isEmpty(session)) {\n resolve({ score: 0, empty: true });\n }\n\n if (session.answers) {\n const score = getScore(config, session, env);\n resolve({ score });\n } else {\n resolve({score: 0, empty: true})\n }\n });\n}\n\nconst returnShapesCorrect = (shapes) => {\n let answers = [];\n\n shapes.forEach(i => {\n const { correct, id } = i;\n if (correct) {\n answers.push({ id });\n }\n });\n return answers;\n};\n\nexport const createCorrectResponseSession = (question, env) => {\n return new Promise(resolve => {\n if (env.mode !== 'evaluate' && env.role === 'instructor') {\n const { shapes: { rectangles = [], polygons = {} } = {} } = question;\n\n const rectangleCorrect = returnShapesCorrect(rectangles);\n const polygonsCorrect = returnShapesCorrect(polygons);\n\n resolve({\n answers: [\n ...rectangleCorrect,\n ...polygonsCorrect\n ],\n id: '1'\n });\n } else {\n resolve(null);\n }\n });\n};\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../src/index.js"],"names":["log","normalize","question","promptEnabled","rationaleEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","strokeWidth","model","session","env","normalizedQuestion","imageUrl","dimensions","hotspotColor","multipleCorrect","outlineColor","partialScoring","prompt","shapes","rectangles","polygons","Promise","resolve","out","disabled","mode","map","index","rectProps","polyProps","responseCorrect","undefined","role","rationale","teacherInstructions","createDefaultModel","defaults","getScore","config","answers","partialScoringEnabled","enabled","correctAnswers","selectedChoices","choices","correctChoices","filter","choice","correct","forEach","shape","selected","answer","id","correctlySelected","extraAnswers","length","total","str","toFixed","parseFloat","outcome","score","empty","returnShapesCorrect","i","push","createCorrectResponseSession","rectangleCorrect","polygonsCorrect","validate","minShapes","maxShapes","maxSelections","errors","allShapes","Object","values","reduce","acc","nbOfSelections","nbOfShapes","shapesError","selectionsError"],"mappings":"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","sourcesContent":["import debug from 'debug';\nimport isEmpty from 'lodash/isEmpty';\nimport { partialScoring } from '@pie-lib/controller-utils';\n\nimport { isResponseCorrect } from './utils';\n\nimport defaults from './defaults';\n\nconst log = debug('pie-elements:hotspot:controller');\n\nexport const normalize = question => ({\n promptEnabled: true,\n rationaleEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n strokeWidth: 5,\n ...question,\n});\n\nexport function model(question, session, env) {\n const normalizedQuestion = normalize(question);\n const {\n imageUrl,\n dimensions,\n hotspotColor,\n multipleCorrect,\n outlineColor,\n partialScoring,\n prompt,\n shapes\n } = normalizedQuestion;\n const { rectangles, polygons } = shapes || {};\n\n return new Promise(resolve => {\n const out = {\n disabled: env.mode !== 'gather',\n mode: env.mode,\n dimensions,\n imageUrl,\n outlineColor,\n hotspotColor,\n multipleCorrect,\n partialScoring,\n shapes: {\n ...shapes,\n // eslint-disable-next-line no-unused-vars\n rectangles: (rectangles || []).map(({ index, ...rectProps }) => ({ ...rectProps })),\n // eslint-disable-next-line no-unused-vars\n polygons: (polygons || []).map(({ index, ...polyProps }) => ({ ...polyProps }))\n },\n responseCorrect:\n env.mode === 'evaluate'\n ? isResponseCorrect(normalizedQuestion, session)\n : undefined\n };\n\n if (env.role === 'instructor' && (env.mode === 'view' || env.mode === 'evaluate')) {\n out.rationale = normalizedQuestion.rationaleEnabled ? normalizedQuestion.rationale : null;\n out.teacherInstructions = normalizedQuestion.teacherInstructionsEnabled ? normalizedQuestion.teacherInstructions : null;\n } else {\n out.rationale = null;\n out.teacherInstructions = null;\n }\n\n out.prompt = normalizedQuestion.promptEnabled ? prompt : null;\n out.strokeWidth = normalizedQuestion.strokeWidth;\n\n // console.log(out);\n resolve(out);\n });\n}\n\nexport const createDefaultModel = (model = {}) =>\n new Promise(resolve => {\n resolve({\n ...defaults,\n ...model,\n });\n });\n\nconst getScore = (config, session, env = {}) => {\n const { answers } = session || {};\n\n if (!config.shapes || (!config.shapes.rectangles && !config.shapes.polygons)) {\n return 0;\n }\n\n const { shapes: { rectangles = [], polygons = [] } = {} } = config;\n const partialScoringEnabled = partialScoring.enabled(config, env);\n\n if (!partialScoringEnabled) {\n return isResponseCorrect(config, session) ? 1 : 0;\n }\n\n let correctAnswers = 0;\n let selectedChoices = 0;\n\n const choices = [...rectangles, ...polygons];\n\n const correctChoices = choices.filter(choice => choice.correct);\n\n choices.forEach(shape => {\n const selected = answers && answers.filter(answer => answer.id === shape.id)[0];\n const correctlySelected = shape.correct && selected;\n\n if(selected) {\n selectedChoices +=1;\n }\n\n if (correctlySelected) {\n correctAnswers += 1;\n }\n });\n\n const extraAnswers = selectedChoices > correctChoices.length ? selectedChoices - correctChoices.length : 0;\n\n const total = correctChoices.length === 0 ? 1 : correctChoices.length;\n const str = ((correctAnswers - extraAnswers) / total).toFixed(2);\n\n return str < 0 ? 0 : parseFloat(str);\n};\n\nexport function outcome(config, session, env = {}) {\n return new Promise(resolve => {\n log('outcome...');\n\n if (!session || isEmpty(session)) {\n resolve({ score: 0, empty: true });\n }\n\n if (session.answers) {\n const score = getScore(config, session, env);\n resolve({ score });\n } else {\n resolve({score: 0, empty: true})\n }\n });\n}\n\nconst returnShapesCorrect = (shapes) => {\n let answers = [];\n\n shapes.forEach(i => {\n const { correct, id } = i;\n if (correct) {\n answers.push({ id });\n }\n });\n return answers;\n};\n\nexport const createCorrectResponseSession = (question, env) => {\n return new Promise(resolve => {\n if (env.mode !== 'evaluate' && env.role === 'instructor') {\n const { shapes: { rectangles = [], polygons = {} } = {} } = question;\n\n const rectangleCorrect = returnShapesCorrect(rectangles);\n const polygonsCorrect = returnShapesCorrect(polygons);\n\n resolve({\n answers: [\n ...rectangleCorrect,\n ...polygonsCorrect\n ],\n id: '1'\n });\n } else {\n resolve(null);\n }\n });\n};\n\nexport const validate = (model = {}, config = {}) => {\n const { shapes } = model;\n const { minShapes = 2, maxShapes, maxSelections } = config;\n const errors = {};\n\n const allShapes = Object.values(shapes || {}).reduce((acc, shape) => [...acc, ...shape], []);\n\n const nbOfSelections = (allShapes || []).reduce((acc, shape) => shape.correct ? acc + 1 : acc, 0);\n\n const nbOfShapes = (allShapes || []).length;\n\n if (nbOfShapes < minShapes) {\n errors.shapesError = `There should be at least ${minShapes} shapes defined.`;\n } else if (nbOfShapes > maxShapes) {\n errors.shapesError = `No more than ${maxShapes} shapes should be defined.`;\n }\n\n if (nbOfSelections < 1) {\n errors.selectionsError = 'There should be at least 1 shape selected.';\n } else if (nbOfSelections > maxSelections) {\n errors.selectionsError = `No more than ${maxSelections} shapes should be selected.`;\n }\n\n return errors;\n};\n"],"file":"index.js"}
@@ -47,4 +47,4 @@ var isResponseCorrect = function isResponseCorrect(question, session) {
47
47
  };
48
48
 
49
49
  exports.isResponseCorrect = isResponseCorrect;
50
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy91dGlscy5qcyJdLCJuYW1lcyI6WyJnZXRDb3JyZWN0UmVzcG9uc2UiLCJjaG9pY2VzIiwiZmlsdGVyIiwiYyIsImNvcnJlY3QiLCJtYXAiLCJpZCIsInNvcnQiLCJpc1Jlc3BvbnNlQ29ycmVjdCIsInF1ZXN0aW9uIiwic2Vzc2lvbiIsInNoYXBlcyIsInJlY3RhbmdsZXMiLCJwb2x5Z29ucyIsImNvcnJlY3RSZXNwb25zZUlkcyIsImFuc3dlcnMiLCJsZW5ndGgiLCJhbnN3ZXJJZHMiLCJhIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUVPLElBQU1BLGtCQUFrQixHQUFHLFNBQXJCQSxrQkFBcUIsQ0FBQ0MsT0FBRDtBQUFBLFNBQWFBLE9BQU8sQ0FDbkRDLE1BRDRDLENBQ3JDLFVBQUFDLENBQUM7QUFBQSxXQUFJQSxDQUFDLENBQUNDLE9BQU47QUFBQSxHQURvQyxFQUU1Q0MsR0FGNEMsQ0FFeEMsVUFBQUYsQ0FBQztBQUFBLFdBQUlBLENBQUMsQ0FBQ0csRUFBTjtBQUFBLEdBRnVDLEVBRzVDQyxJQUg0QyxFQUFiO0FBQUEsQ0FBM0I7Ozs7QUFLQSxJQUFNQyxpQkFBaUIsR0FBRyxTQUFwQkEsaUJBQW9CLENBQUNDLFFBQUQsRUFBV0MsT0FBWCxFQUF1QjtBQUN0RCx5QkFBNkNELFFBQTdDLENBQVFFLE1BQVI7QUFBQSxNQUFrQkMsVUFBbEIsb0JBQWtCQSxVQUFsQjtBQUFBLE1BQThCQyxRQUE5QixvQkFBOEJBLFFBQTlCO0FBQ0EsTUFBTVosT0FBTyxpREFBT1csVUFBUCx1Q0FBc0JDLFFBQXRCLEVBQWI7QUFDQSxNQUFJQyxrQkFBa0IsR0FBR2Qsa0JBQWtCLENBQUNDLE9BQUQsQ0FBM0M7O0FBRUEsTUFBSSxDQUFDUyxPQUFELElBQVkseUJBQVFBLE9BQVIsQ0FBaEIsRUFBa0M7QUFDaEMsV0FBTyxLQUFQO0FBQ0Q7O0FBRUQsTUFBSUEsT0FBTyxDQUFDSyxPQUFSLElBQW1CTCxPQUFPLENBQUNLLE9BQVIsQ0FBZ0JDLE1BQXZDLEVBQStDO0FBQzdDLFFBQUlDLFNBQVMsR0FBRyxDQUFDUCxPQUFPLENBQUNLLE9BQVIsSUFBbUIsRUFBcEIsRUFBd0JWLEdBQXhCLENBQTRCLFVBQUFhLENBQUM7QUFBQSxhQUFJQSxDQUFDLENBQUNaLEVBQU47QUFBQSxLQUE3QixDQUFoQjtBQUVBLFdBQU8seUJBQVFXLFNBQVMsQ0FBQ1YsSUFBVixFQUFSLEVBQTBCTyxrQkFBMUIsQ0FBUDtBQUNELEdBSkQsTUFJTyxJQUFJLEVBQUVBLGtCQUFrQixJQUFJQSxrQkFBa0IsQ0FBQ0UsTUFBM0MsQ0FBSixFQUF3RDtBQUM3RCxXQUFPLElBQVA7QUFDRDs7QUFFRCxTQUFPLEtBQVA7QUFDRCxDQWxCTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBpc0VxdWFsIGZyb20gJ2xvZGFzaC9pc0VxdWFsJztcbmltcG9ydCBpc0VtcHR5IGZyb20gJ2xvZGFzaC9pc0VtcHR5JztcblxuZXhwb3J0IGNvbnN0IGdldENvcnJlY3RSZXNwb25zZSA9IChjaG9pY2VzKSA9PiBjaG9pY2VzXG4gIC5maWx0ZXIoYyA9PiBjLmNvcnJlY3QpXG4gIC5tYXAoYyA9PiBjLmlkKVxuICAuc29ydCgpO1xuXG5leHBvcnQgY29uc3QgaXNSZXNwb25zZUNvcnJlY3QgPSAocXVlc3Rpb24sIHNlc3Npb24pID0+IHtcbiAgY29uc3QgeyBzaGFwZXM6IHsgcmVjdGFuZ2xlcywgcG9seWdvbnMgfSB9ID0gcXVlc3Rpb247XG4gIGNvbnN0IGNob2ljZXMgPSBbLi4ucmVjdGFuZ2xlcywgLi4ucG9seWdvbnNdO1xuICBsZXQgY29ycmVjdFJlc3BvbnNlSWRzID0gZ2V0Q29ycmVjdFJlc3BvbnNlKGNob2ljZXMpO1xuXG4gIGlmICghc2Vzc2lvbiB8fCBpc0VtcHR5KHNlc3Npb24pKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKHNlc3Npb24uYW5zd2VycyAmJiBzZXNzaW9uLmFuc3dlcnMubGVuZ3RoKSB7XG4gICAgbGV0IGFuc3dlcklkcyA9IChzZXNzaW9uLmFuc3dlcnMgfHwgW10pLm1hcChhID0+IGEuaWQpO1xuXG4gICAgcmV0dXJuIGlzRXF1YWwoYW5zd2VySWRzLnNvcnQoKSwgY29ycmVjdFJlc3BvbnNlSWRzKTtcbiAgfSBlbHNlIGlmICghKGNvcnJlY3RSZXNwb25zZUlkcyAmJiBjb3JyZWN0UmVzcG9uc2VJZHMubGVuZ3RoKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufTtcbiJdfQ==
50
+ //# sourceMappingURL=utils.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@pie-element/hotspot-controller",
3
3
  "private": true,
4
- "version": "3.4.8",
4
+ "version": "3.5.0",
5
5
  "description": "",
6
6
  "scripts": {
7
7
  "test": "echo \"Error: no test specified\" && exit 1"
@@ -235,4 +235,4 @@ Container.defaultProps = {
235
235
  var _default = (0, _styles.withStyles)(styles)(Container);
236
236
 
237
237
  exports["default"] = _default;
238
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob3RzcG90L2NvbnRhaW5lci5qc3giXSwibmFtZXMiOlsiQ29udGFpbmVyIiwiaXNDb3JyZWN0IiwiaXNDaGVja2VkIiwic2VsZWN0ZWQiLCJzaGFwZSIsInNlbGVjdGVkU2hhcGUiLCJwcm9wcyIsInNlc3Npb24iLCJhbnN3ZXJzIiwiZmlsdGVyIiwiYW5zd2VyIiwiaWQiLCJjbGFzc2VzIiwiZGltZW5zaW9ucyIsIndpdGhQcm9wIiwid2lkdGgiLCJoZWlnaHRQcm9wIiwiaGVpZ2h0IiwiZGlzYWJsZWQiLCJob3RzcG90Q29sb3IiLCJpbWFnZVVybCIsImlzRXZhbHVhdGVNb2RlIiwib3V0bGluZUNvbG9yIiwib25TZWxlY3RDaG9pY2UiLCJzaGFwZXMiLCJyZWN0YW5nbGVzIiwicG9seWdvbnMiLCJTQ0FMRSIsInNjYWxlIiwic3Ryb2tlV2lkdGgiLCJiYXNlIiwicGFkZGluZyIsImltYWdlQ29udGFpbmVyIiwiaW1hZ2UiLCJtYXhXaWR0aCIsIm1heEhlaWdodCIsInN0YWdlIiwibWFwIiwiaXNTZWxlY3RlZCIsImNvcnJlY3RuZXNzIiwiY29ycmVjdCIsInVuZGVmaW5lZCIsImV2YWx1YXRlVGV4dCIsImdldEV2YWx1YXRlVGV4dCIsIngiLCJ5IiwicG9seWdvbiIsInBvaW50cyIsIlJlYWN0IiwiQ29tcG9uZW50Iiwic3R5bGVzIiwidGhlbWUiLCJtYXJnaW5Ub3AiLCJzcGFjaW5nIiwidW5pdCIsInBvc2l0aW9uIiwiYWxpZ25JdGVtcyIsImRpc3BsYXkiLCJqdXN0aWZ5Q29udGVudCIsImxlZnQiLCJ0b3AiLCJyZXNpemUiLCJib3JkZXJCb3R0b20iLCJjb2xvciIsImJvcmRlclJpZ2h0IiwiYm90dG9tIiwiY3Vyc29yIiwicmlnaHQiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJvYmplY3QiLCJpc1JlcXVpcmVkIiwiYm9vbCIsInN0cmluZyIsImZ1bmMiLCJudW1iZXIiLCJkZWZhdWx0UHJvcHMiXSwibWFwcGluZ3MiOiI7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a0Qsc0JBQVVJLE1BQVYsQ0FBaUJGLFVBSlY7QUFLcEJuRCxFQUFBQSxRQUFRLEVBQUNpRCxzQkFBVUksTUFBVixDQUFpQkYsVUFMTjtBQU1wQmxELEVBQUFBLGNBQWMsRUFBQ2dELHNCQUFVRyxJQUFWLENBQWVELFVBTlY7QUFPcEJoRCxFQUFBQSxjQUFjLEVBQUM4QyxzQkFBVUssSUFBVixDQUFlSCxVQVBWO0FBUXBCakQsRUFBQUEsWUFBWSxFQUFDK0Msc0JBQVVJLE1BQVYsQ0FBaUJGLFVBUlY7QUFTcEJoRSxFQUFBQSxPQUFPLEVBQUM4RCxzQkFBVUMsTUFBVixDQUFpQkMsVUFUTDtBQVVwQi9DLEVBQUFBLE1BQU0sRUFBQzZDLHNCQUFVQyxNQUFWLENBQWlCQyxVQVZKO0FBV3BCMUMsRUFBQUEsV0FBVyxFQUFFd0Msc0JBQVVNLE1BWEg7QUFZcEIvQyxFQUFBQSxLQUFLLEVBQUV5QyxzQkFBVU07QUFaRyxDQUF0QjtBQWVBM0UsU0FBUyxDQUFDNEUsWUFBVixHQUF5QjtBQUN2QmhELEVBQUFBLEtBQUssRUFBRTtBQURnQixDQUF6Qjs7ZUFJZSx3QkFBV3NCLE1BQVgsRUFBbUJsRCxTQUFuQixDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyBMYXllciwgU3RhZ2UgfSBmcm9tICdyZWFjdC1rb252YSc7XG5pbXBvcnQgeyB3aXRoU3R5bGVzIH0gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvc3R5bGVzJztcbmltcG9ydCB7IGNvbG9yIH0gZnJvbSAnQHBpZS1saWIvcmVuZGVyLXVpJztcblxuaW1wb3J0IFJlY3RhbmdsZSBmcm9tICcuL3JlY3RhbmdsZSc7XG5pbXBvcnQgUG9seWdvbiBmcm9tICcuL3BvbHlnb24nO1xuXG5leHBvcnQgY2xhc3MgQ29udGFpbmVyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgaXNTZWxlY3RlZChzaGFwZSkge1xuICAgIGNvbnN0IHNlbGVjdGVkU2hhcGUgPSB0aGlzLnByb3BzLnNlc3Npb24uYW5zd2Vycy5maWx0ZXIoYW5zd2VyID0+IGFuc3dlci5pZCA9PT0gc2hhcGUuaWQpWzBdO1xuICAgIHJldHVybiAhIXNlbGVjdGVkU2hhcGU7XG4gIH1cblxuICBjb3JyZWN0bmVzcyA9IChpc0NvcnJlY3QsIGlzQ2hlY2tlZCkgPT4gaXNDb3JyZWN0ID8gaXNDaGVja2VkIDogIWlzQ2hlY2tlZDtcblxuICBnZXRFdmFsdWF0ZVRleHQgPSAoaXNDb3JyZWN0LCBzZWxlY3RlZCkgPT4ge1xuICAgIGlmIChzZWxlY3RlZCAmJiBpc0NvcnJlY3QpIHtcbiAgICAgIHJldHVybiAnQ29ycmVjdGx5XFxuc2VsZWN0ZWQnO1xuICAgIH1cblxuICAgIGlmIChzZWxlY3RlZCAmJiAhaXNDb3JyZWN0KSB7XG4gICAgICByZXR1cm4gJ1Nob3VsZCBub3QgaGF2ZVxcbmJlZW4gc2VsZWN0ZWQnO1xuICAgIH1cblxuICAgIGlmICghc2VsZWN0ZWQgJiYgaXNDb3JyZWN0KSB7XG4gICAgICByZXR1cm4gJ1Nob3VsZCBoYXZlXFxuYmVlbiBzZWxlY3RlZCc7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH07XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHtcbiAgICAgIGNsYXNzZXMsXG4gICAgICBkaW1lbnNpb25zOiB7IHdpZHRoOiB3aXRoUHJvcCwgaGVpZ2h0OiBoZWlnaHRQcm9wIH0sXG4gICAgICBkaXNhYmxlZCxcbiAgICAgIGhvdHNwb3RDb2xvcixcbiAgICAgIGltYWdlVXJsLFxuICAgICAgaXNFdmFsdWF0ZU1vZGUsXG4gICAgICBvdXRsaW5lQ29sb3IsXG4gICAgICBvblNlbGVjdENob2ljZSxcbiAgICAgIHNoYXBlczogeyByZWN0YW5nbGVzLCBwb2x5Z29ucyB9LFxuICAgICAgc2NhbGU6IFNDQUxFLFxuICAgICAgc3Ryb2tlV2lkdGhcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHdpZHRoID0gd2l0aFByb3AgKiBTQ0FMRTtcbiAgICBjb25zdCBoZWlnaHQgPSBoZWlnaHRQcm9wICogU0NBTEU7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdlxuICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMuYmFzZX1cbiAgICAgICAgc3R5bGU9e3sgcGFkZGluZzogc3Ryb2tlV2lkdGggLyAyIH19XG4gICAgICA+XG4gICAgICAgIHtpbWFnZVVybCA/IChcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3Nlcy5pbWFnZUNvbnRhaW5lcn0+XG4gICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgIGFsdD1cImhvdHNwb3QtaW1hZ2VcIlxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMuaW1hZ2V9XG4gICAgICAgICAgICAgIGhlaWdodD1cImF1dG9cIlxuICAgICAgICAgICAgICBzcmM9e2ltYWdlVXJsfVxuICAgICAgICAgICAgICBzdHlsZT17eyB3aWR0aCwgaGVpZ2h0LCBtYXhXaWR0aDogd2lkdGgsIG1heEhlaWdodDogaGVpZ2h0IH19XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApIDogbnVsbH1cblxuICAgICAgICA8U3RhZ2VcbiAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMuc3RhZ2V9XG4gICAgICAgICAgaGVpZ2h0PXtoZWlnaHQgKyBzdHJva2VXaWR0aH1cbiAgICAgICAgICB3aWR0aD17d2lkdGggKyBzdHJva2VXaWR0aH1cbiAgICAgICAgICB4PXtzdHJva2VXaWR0aCAvIDJ9XG4gICAgICAgICAgeT17c3Ryb2tlV2lkdGggLyAyfVxuICAgICAgICA+XG4gICAgICAgICAgPExheWVyPlxuICAgICAgICAgICAge3JlY3RhbmdsZXMubWFwKChzaGFwZSkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMuaXNTZWxlY3RlZChzaGFwZSk7XG4gICAgICAgICAgICAgIGNvbnN0IGlzQ29ycmVjdCA9IGlzRXZhbHVhdGVNb2RlID8gdGhpcy5jb3JyZWN0bmVzcyhzaGFwZS5jb3JyZWN0LCBzZWxlY3RlZCkgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgIGNvbnN0IGV2YWx1YXRlVGV4dCA9IGlzRXZhbHVhdGVNb2RlID8gdGhpcy5nZXRFdmFsdWF0ZVRleHQoc2hhcGUuY29ycmVjdCwgc2VsZWN0ZWQpIDogbnVsbDtcblxuICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIDxSZWN0YW5nbGVcbiAgICAgICAgICAgICAgICAgIHNjYWxlPXtTQ0FMRX1cbiAgICAgICAgICAgICAgICAgIGlzRXZhbHVhdGVNb2RlPXtpc0V2YWx1YXRlTW9kZX1cbiAgICAgICAgICAgICAgICAgIGlzQ29ycmVjdD17aXNDb3JyZWN0fVxuICAgICAgICAgICAgICAgICAgZXZhbHVhdGVUZXh0PXtldmFsdWF0ZVRleHR9XG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICBzZWxlY3RlZD17c2VsZWN0ZWR9XG4gICAgICAgICAgICAgICAgICBoZWlnaHQ9e3NoYXBlLmhlaWdodH1cbiAgICAgICAgICAgICAgICAgIGhvdHNwb3RDb2xvcj17aG90c3BvdENvbG9yfVxuICAgICAgICAgICAgICAgICAgaWQ9e3NoYXBlLmlkfVxuICAgICAgICAgICAgICAgICAga2V5PXtzaGFwZS5pZH1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uU2VsZWN0Q2hvaWNlfVxuICAgICAgICAgICAgICAgICAgb3V0bGluZUNvbG9yPXtvdXRsaW5lQ29sb3J9XG4gICAgICAgICAgICAgICAgICB3aWR0aD17c2hhcGUud2lkdGh9XG4gICAgICAgICAgICAgICAgICB4PXtzaGFwZS54fVxuICAgICAgICAgICAgICAgICAgeT17c2hhcGUueX1cbiAgICAgICAgICAgICAgICAgIHN0cm9rZVdpZHRoPXtzdHJva2VXaWR0aH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIHtwb2x5Z29ucy5tYXAoKHBvbHlnb24pID0+IHtcbiAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLmlzU2VsZWN0ZWQocG9seWdvbik7XG4gICAgICAgICAgICAgIGNvbnN0IGlzQ29ycmVjdCA9IGlzRXZhbHVhdGVNb2RlID8gdGhpcy5jb3JyZWN0bmVzcyhwb2x5Z29uLmNvcnJlY3QsIHNlbGVjdGVkKSA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgY29uc3QgZXZhbHVhdGVUZXh0ID0gaXNFdmFsdWF0ZU1vZGUgPyB0aGlzLmdldEV2YWx1YXRlVGV4dChwb2x5Z29uLmNvcnJlY3QsIHNlbGVjdGVkKSA6IG51bGw7XG5cbiAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICA8UG9seWdvblxuICAgICAgICAgICAgICAgICAgc2NhbGU9e1NDQUxFfVxuICAgICAgICAgICAgICAgICAgaXNFdmFsdWF0ZU1vZGU9e2lzRXZhbHVhdGVNb2RlfVxuICAgICAgICAgICAgICAgICAgaXNDb3JyZWN0PXshIWlzQ29ycmVjdH1cbiAgICAgICAgICAgICAgICAgIGV2YWx1YXRlVGV4dD17ZXZhbHVhdGVUZXh0fVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQ9e3NlbGVjdGVkfVxuICAgICAgICAgICAgICAgICAgaG90c3BvdENvbG9yPXtob3RzcG90Q29sb3J9XG4gICAgICAgICAgICAgICAgICBpZD17cG9seWdvbi5pZH1cbiAgICAgICAgICAgICAgICAgIGtleT17cG9seWdvbi5pZH1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uU2VsZWN0Q2hvaWNlfVxuICAgICAgICAgICAgICAgICAgb3V0bGluZUNvbG9yPXtvdXRsaW5lQ29sb3J9XG4gICAgICAgICAgICAgICAgICBwb2ludHM9e3BvbHlnb24ucG9pbnRzfVxuICAgICAgICAgICAgICAgICAgc3Ryb2tlV2lkdGg9e3N0cm9rZVdpZHRofVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH0pfVxuICAgICAgICAgIDwvTGF5ZXI+XG4gICAgICAgIDwvU3RhZ2U+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG59XG5cbmNvbnN0IHN0eWxlcyA9IHRoZW1lID0+ICh7XG4gIGJhc2U6IHtcbiAgICBtYXJnaW5Ub3A6IHRoZW1lLnNwYWNpbmcudW5pdCAqIDMsXG4gICAgcG9zaXRpb246ICdyZWxhdGl2ZSdcbiAgfSxcbiAgaW1hZ2U6IHtcbiAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICB9LFxuICBpbWFnZUNvbnRhaW5lcjoge1xuICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICAgIHdpZHRoOiAnZml0LWNvbnRlbnQnXG4gIH0sXG4gIHN0YWdlOiB7XG4gICAgbGVmdDogMCxcbiAgICB0b3A6IDAsXG4gICAgcG9zaXRpb246ICdhYnNvbHV0ZSdcbiAgfSxcbiAgcmVzaXplOiB7XG4gICAgYm9yZGVyQm90dG9tOiBgMXB4IHNvbGlkICR7Y29sb3IuZGlzYWJsZWQoKX1gLFxuICAgIGJvcmRlclJpZ2h0OiBgMXB4IHNvbGlkICR7Y29sb3IuZGlzYWJsZWQoKX1gLFxuICAgIGJvdHRvbTogJy0xMHB4JyxcbiAgICBjdXJzb3I6ICdzZS1yZXNpemUnLFxuICAgIGhlaWdodDogJzEwcHgnLFxuICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgIHJpZ2h0OiAnLTEwcHgnLFxuICAgIHdpZHRoOiAnMTBweCcsXG4gIH1cbn0pO1xuXG5Db250YWluZXIucHJvcFR5cGVzID0ge1xuICBjbGFzc2VzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gIGRpbWVuc2lvbnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgZGlzYWJsZWQ6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gIGhvdHNwb3RDb2xvcjpQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIGltYWdlVXJsOlByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgaXNFdmFsdWF0ZU1vZGU6UHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgb25TZWxlY3RDaG9pY2U6UHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgb3V0bGluZUNvbG9yOlByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgc2Vzc2lvbjpQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gIHNoYXBlczpQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gIHN0cm9rZVdpZHRoOiBQcm9wVHlwZXMubnVtYmVyLFxuICBzY2FsZTogUHJvcFR5cGVzLm51bWJlclxufTtcblxuQ29udGFpbmVyLmRlZmF1bHRQcm9wcyA9IHtcbiAgc2NhbGU6IDFcbn07XG5cbmV4cG9ydCBkZWZhdWx0IHdpdGhTdHlsZXMoc3R5bGVzKShDb250YWluZXIpO1xuIl19
238
+ //# sourceMappingURL=container.js.map