@pie-lib/graphing-solution-set 2.16.0-beta.0 → 2.17.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 (121) hide show
  1. package/CHANGELOG.md +157 -1
  2. package/lib/axis/arrow.js +1 -1
  3. package/lib/axis/arrow.js.map +1 -0
  4. package/lib/axis/axes.js +4 -4
  5. package/lib/axis/axes.js.map +1 -0
  6. package/lib/axis/index.js +1 -1
  7. package/lib/axis/index.js.map +1 -0
  8. package/lib/bg.js +1 -1
  9. package/lib/bg.js.map +1 -0
  10. package/lib/container/actions.js +1 -1
  11. package/lib/container/actions.js.map +1 -0
  12. package/lib/container/index.js +1 -1
  13. package/lib/container/index.js.map +1 -0
  14. package/lib/container/marks.js +1 -1
  15. package/lib/container/marks.js.map +1 -0
  16. package/lib/container/middleware.js +1 -1
  17. package/lib/container/middleware.js.map +1 -0
  18. package/lib/container/reducer.js +1 -1
  19. package/lib/container/reducer.js.map +1 -0
  20. package/lib/coordinates-label.js +3 -3
  21. package/lib/coordinates-label.js.map +1 -0
  22. package/lib/graph-with-controls.js +4 -4
  23. package/lib/graph-with-controls.js.map +1 -0
  24. package/lib/graph.js +1 -1
  25. package/lib/graph.js.map +1 -0
  26. package/lib/grid-setup.js +4 -4
  27. package/lib/grid-setup.js.map +1 -0
  28. package/lib/grid.js +1 -1
  29. package/lib/grid.js.map +1 -0
  30. package/lib/index.js +1 -1
  31. package/lib/index.js.map +1 -0
  32. package/lib/labels.js +4 -4
  33. package/lib/labels.js.map +1 -0
  34. package/lib/mark-label.js +7 -7
  35. package/lib/mark-label.js.map +1 -0
  36. package/lib/shared/index.js +136 -0
  37. package/lib/toggle-bar.js +10 -10
  38. package/lib/toggle-bar.js.map +1 -0
  39. package/lib/tool-menu.js +1 -1
  40. package/lib/tool-menu.js.map +1 -0
  41. package/lib/tools/index.js +1 -1
  42. package/lib/tools/index.js.map +1 -0
  43. package/lib/tools/line/component.js +1 -1
  44. package/lib/tools/line/component.js.map +1 -0
  45. package/lib/tools/line/index.js +1 -1
  46. package/lib/tools/line/index.js.map +1 -0
  47. package/lib/tools/polygon/component.js +1 -1
  48. package/lib/tools/polygon/component.js.map +1 -0
  49. package/lib/tools/polygon/index.js +1 -1
  50. package/lib/tools/polygon/index.js.map +1 -0
  51. package/lib/tools/polygon/line.js +3 -3
  52. package/lib/tools/polygon/line.js.map +1 -0
  53. package/lib/tools/polygon/polygon.js +4 -4
  54. package/lib/tools/polygon/polygon.js.map +1 -0
  55. package/lib/tools/shared/arrow-head.js +3 -3
  56. package/lib/tools/shared/arrow-head.js.map +1 -0
  57. package/lib/tools/shared/line/index.js +7 -7
  58. package/lib/tools/shared/line/index.js.map +1 -0
  59. package/lib/tools/shared/line/line-path.js +4 -4
  60. package/lib/tools/shared/line/line-path.js.map +1 -0
  61. package/lib/tools/shared/line/with-root-edge.js +1 -1
  62. package/lib/tools/shared/line/with-root-edge.js.map +1 -0
  63. package/lib/tools/shared/point/arrow-point.js +1 -1
  64. package/lib/tools/shared/point/arrow-point.js.map +1 -0
  65. package/lib/tools/shared/point/arrow.js +1 -1
  66. package/lib/tools/shared/point/arrow.js.map +1 -0
  67. package/lib/tools/shared/point/base-point.js +3 -3
  68. package/lib/tools/shared/point/base-point.js.map +1 -0
  69. package/lib/tools/shared/point/index.js +3 -3
  70. package/lib/tools/shared/point/index.js.map +1 -0
  71. package/lib/tools/shared/styles.js +6 -6
  72. package/lib/tools/shared/styles.js.map +1 -0
  73. package/lib/tools/shared/types.js +1 -1
  74. package/lib/tools/shared/types.js.map +1 -0
  75. package/lib/undo-redo.js +3 -3
  76. package/lib/undo-redo.js.map +1 -0
  77. package/lib/use-debounce.js +1 -1
  78. package/lib/use-debounce.js.map +1 -0
  79. package/lib/utils.js +1 -1
  80. package/lib/utils.js.map +1 -0
  81. package/package.json +14 -9
  82. package/src/axis/axes.jsx +1 -1
  83. package/src/coordinates-label.jsx +1 -1
  84. package/src/graph-with-controls.jsx +1 -1
  85. package/src/grid-setup.jsx +5 -8
  86. package/src/labels.jsx +1 -1
  87. package/src/mark-label.jsx +1 -1
  88. package/src/toggle-bar.jsx +1 -1
  89. package/src/tools/polygon/line.jsx +1 -1
  90. package/src/tools/polygon/polygon.jsx +1 -1
  91. package/src/tools/shared/arrow-head.jsx +1 -1
  92. package/src/tools/shared/line/index.jsx +1 -1
  93. package/src/tools/shared/line/line-path.jsx +1 -1
  94. package/src/tools/shared/point/base-point.jsx +1 -1
  95. package/src/tools/shared/point/index.jsx +1 -1
  96. package/src/tools/shared/styles.js +1 -1
  97. package/src/undo-redo.jsx +1 -1
  98. package/lib/__tests__/graph-with-controls.test.js +0 -191
  99. package/lib/__tests__/graph.test.js +0 -290
  100. package/lib/__tests__/grid.test.js +0 -40
  101. package/lib/__tests__/labels.test.js +0 -59
  102. package/lib/__tests__/mark-label.test.js +0 -154
  103. package/lib/__tests__/toggle-bar.test.js +0 -54
  104. package/lib/__tests__/tool-menu.test.js +0 -43
  105. package/lib/__tests__/undo-redo.test.js +0 -42
  106. package/lib/__tests__/use-debounce.test.js +0 -28
  107. package/lib/__tests__/utils.js +0 -72
  108. package/lib/__tests__/utils.test.js +0 -133
  109. package/lib/axis/__tests__/arrow.test.js +0 -68
  110. package/lib/axis/__tests__/axes.test.js +0 -214
  111. package/lib/tools/line/__tests__/component.test.js +0 -56
  112. package/lib/tools/polygon/__tests__/component.test.js +0 -245
  113. package/lib/tools/polygon/__tests__/index.test.js +0 -95
  114. package/lib/tools/polygon/__tests__/line.test.js +0 -43
  115. package/lib/tools/polygon/__tests__/polygon.test.js +0 -73
  116. package/lib/tools/shared/__tests__/arrow-head.test.js +0 -62
  117. package/lib/tools/shared/line/__tests__/index.test.js +0 -291
  118. package/lib/tools/shared/line/__tests__/line-path.test.js +0 -78
  119. package/lib/tools/shared/line/__tests__/with-root-edge.test.js +0 -122
  120. package/lib/tools/shared/point/__tests__/arrow-point.test.js +0 -137
  121. package/lib/tools/shared/point/__tests__/base-point.test.js +0 -134
@@ -454,4 +454,4 @@ exports["default"] = Component;
454
454
  graphProps: _plot.types.GraphPropsType.isRequired
455
455
  }));
456
456
  (0, _defineProperty2["default"])(Component, "defaultProps", {});
457
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90b29scy9wb2x5Z29uL2NvbXBvbmVudC5qc3giXSwibmFtZXMiOlsibG9nIiwiYnVpbGRMaW5lcyIsInBvaW50cyIsImNsb3NlZCIsImV4cGFuZGVkIiwicmVkdWNlIiwiYWNjIiwicCIsImluZGV4IiwicHVzaCIsImlzTGFzdCIsImxlbmd0aCIsIm5leHQiLCJhbGwiLCJtYXAiLCJmcm9tIiwidG8iLCJzd2FwIiwiYXJyIiwicmVzdCIsInBhaXJzIiwicHIiLCJlIiwicmVwbGFjZW1lbnQiLCJOdW1iZXIiLCJpc0Zpbml0ZSIsInNwbGljZSIsIlJhd0Jhc2VDb21wb25lbnQiLCJwcm9wcyIsIm9uQ2hhbmdlIiwidXBkYXRlIiwib3ZlcmxhcFBvaW50IiwiZmluZCIsImxhYmVsIiwiZXhpc3RpbmciLCJmb3JFYWNoIiwicG9pbnQiLCJvbkNsb3NlUG9seWdvbiIsIm9uQ2hhbmdlUHJvcHMiLCJ1cGRhdGVkUG9pbnQiLCJkYXRhIiwiZGlzYWJsZWQiLCJvbkNsaWNrIiwiaXNUb29sQWN0aXZlIiwibGFiZWxNb2RlRW5hYmxlZCIsIm9uQ2hhbmdlTGFiZWxQcm9wcyIsImEiLCJiIiwibWlkZGxlIiwiaW5wdXQiLCJmb2N1cyIsImNsb3NlIiwiZ3JhcGhQcm9wcyIsImxhYmVsTm9kZSIsImlzU29sdXRpb24iLCJwb2x5Z29uTGFiZWxJbmRleCIsImhhc093blByb3BlcnR5IiwiUmVhY3RET00iLCJjcmVhdGVQb3J0YWwiLCJyIiwiY2xpY2tQb2ludCIsImJpbmQiLCJSZWFjdCIsIkNvbXBvbmVudCIsImNsYXNzZXMiLCJQcm9wVHlwZXMiLCJvYmplY3QiLCJjbGFzc05hbWUiLCJzdHJpbmciLCJib29sIiwiY29ycmVjdG5lc3MiLCJhcnJheU9mIiwidHlwZXMiLCJQb2ludFR5cGUiLCJjb29yZGluYXRlc09uSG92ZXIiLCJmdW5jIiwiaXNSZXF1aXJlZCIsIm9uRHJhZ1N0YXJ0Iiwib25EcmFnU3RvcCIsIkdyYXBoUHJvcHNUeXBlIiwiQmFzZUNvbXBvbmVudCIsIm1hcmsiLCJzdGF0ZSIsInNldFN0YXRlIiwib25Db21wbGV0ZSIsIm0iLCJ1bmRlZmluZWQiLCJzdGF0ZU1hcmsiLCJjaGFuZ2UiLCJjaGFuZ2VMYWJlbFByb3BzIiwiY2hhbmdlUHJvcHMiLCJjbG9zZVBvbHlnb24iLCJkcmFnU3RhcnQiLCJkcmFnU3RvcCIsIlRvb2xQcm9wVHlwZUZpZWxkcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7OztBQUVBLElBQU1BLEdBQUcsR0FBRyx1QkFBTSx1Q0FBTixDQUFaOztBQUVPLElBQU1DLFVBQVUsR0FBRyxTQUFiQSxVQUFhLENBQUNDLE1BQUQsRUFBU0MsTUFBVCxFQUFvQjtBQUM1QyxNQUFNQyxRQUFRLEdBQUdGLE1BQU0sQ0FBQ0csTUFBUCxDQUFjLFVBQUNDLEdBQUQsRUFBTUMsQ0FBTixFQUFTQyxLQUFULEVBQW1CO0FBQ2hERixJQUFBQSxHQUFHLENBQUNHLElBQUosaUNBQWNGLENBQWQ7QUFBaUJDLE1BQUFBLEtBQUssRUFBTEE7QUFBakI7QUFFQSxRQUFNRSxNQUFNLEdBQUdGLEtBQUssS0FBS04sTUFBTSxDQUFDUyxNQUFQLEdBQWdCLENBQXpDO0FBQ0EsUUFBTUMsSUFBSSxHQUFHRixNQUFNLEdBQUcsQ0FBSCxHQUFPRixLQUFLLEdBQUcsQ0FBbEM7QUFFQUYsSUFBQUEsR0FBRyxDQUFDRyxJQUFKLGlDQUFjUCxNQUFNLENBQUNVLElBQUQsQ0FBcEI7QUFBNEJKLE1BQUFBLEtBQUssRUFBRUk7QUFBbkM7QUFFQSxXQUFPTixHQUFQO0FBQ0QsR0FUZ0IsRUFTZCxFQVRjLENBQWpCO0FBV0EsTUFBTU8sR0FBRyxHQUFHLHVCQUFNVCxRQUFOLEVBQWdCLENBQWhCLEVBQW1CVSxHQUFuQixDQUF1QixnQkFBZ0I7QUFBQTtBQUFB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QkFBa0NBLFVBQWxDO0FBQUEsVUFBOENWLE9BQTlDLGdCQUE4Q0EsT0FBOUM7QUFBQSxVQUF1REMsWUFBdkQsZ0JBQXVEQSxZQUF2RDtBQUFBLFVBQXFFVSxTQUFyRSxnQkFBcUVBLFNBQXJFO0FBQUEsVUFBZ0ZULGdCQUFoRixnQkFBZ0ZBLGdCQUFoRjtBQUNBLFVBQWMyQyxTQUFkLEdBQTRCLEtBQUtMLEtBQWpDLENBQVFELElBQVI7QUFFQSwwQkFDRSxnQ0FBQyxhQUFELGdDQUNPTSxTQUFTLElBQUlOLElBRHBCO0FBRUUsUUFBQSxrQkFBa0IsRUFBRVAsa0JBRnRCO0FBR0UsUUFBQSxRQUFRLEVBQUUsS0FBS2MsTUFIakI7QUFJRSxRQUFBLGtCQUFrQixFQUFFLEtBQUtDLGdCQUozQjtBQUtFLFFBQUEsYUFBYSxFQUFFLEtBQUtDLFdBTHRCO0FBTUUsUUFBQSxjQUFjLEVBQUUsS0FBS0MsWUFOdkI7QUFPRSxRQUFBLFdBQVcsRUFBRSxLQUFLQyxTQVBwQjtBQVFFLFFBQUEsVUFBVSxFQUFFLEtBQUtDLFFBUm5CO0FBU0UsUUFBQSxPQUFPLEVBQUVuRCxPQVRYO0FBVUUsUUFBQSxVQUFVLEVBQUVVLFVBVmQ7QUFXRSxRQUFBLFlBQVksRUFBRVQsWUFYaEI7QUFZRSxRQUFBLFNBQVMsRUFBRVUsU0FaYjtBQWFFLFFBQUEsZ0JBQWdCLEVBQUVUO0FBYnBCLFNBREY7QUFpQkQ7OztFQWpGb0NrQixrQkFBTUMsUzs7O2lDQUF4QkEsUywrQ0FFZCtCLHlCO0FBQ0gxQyxFQUFBQSxVQUFVLEVBQUVvQixZQUFNTyxjQUFOLENBQXFCSDs7aUNBSGhCYixTLGtCQU1HLEUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IHdpdGhTdHlsZXMgfSBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9zdHlsZXMnO1xuaW1wb3J0IHsgVG9vbFByb3BUeXBlRmllbGRzIH0gZnJvbSAnLi4vc2hhcmVkL3R5cGVzJztcbmltcG9ydCBjaHVuayBmcm9tICdsb2Rhc2gvY2h1bmsnO1xuaW1wb3J0IGluaXRpYWwgZnJvbSAnbG9kYXNoL2luaXRpYWwnO1xuaW1wb3J0IGRlYnVnIGZyb20gJ2RlYnVnJztcbmltcG9ydCBEcmFnZ2FibGVQb2x5Z29uIGZyb20gJy4vcG9seWdvbic7XG5pbXBvcnQgeyB0eXBlcyB9IGZyb20gJ0BwaWUtbGliL3Bsb3QnO1xuaW1wb3J0IGludmFyaWFudCBmcm9tICdpbnZhcmlhbnQnO1xuaW1wb3J0IFJlYWN0RE9NIGZyb20gJ3JlYWN0LWRvbSc7XG5pbXBvcnQgTWFya0xhYmVsIGZyb20gJy4uLy4uL21hcmstbGFiZWwnO1xuaW1wb3J0IGlzRW1wdHkgZnJvbSAnbG9kYXNoL2lzRW1wdHknO1xuaW1wb3J0IHsgZ2V0TWlkZGxlT2ZUd29Qb2ludHMsIGdldFJpZ2h0ZXN0UG9pbnRzLCBlcXVhbFBvaW50cyB9IGZyb20gJy4uLy4uL3V0aWxzJztcblxuY29uc3QgbG9nID0gZGVidWcoJ3BpZS1saWI6Z3JhcGhpbmctc29sdXRpb24tc2V0OnBvbHlnb24nKTtcblxuZXhwb3J0IGNvbnN0IGJ1aWxkTGluZXMgPSAocG9pbnRzLCBjbG9zZWQpID0+IHtcbiAgY29uc3QgZXhwYW5kZWQgPSBwb2ludHMucmVkdWNlKChhY2MsIHAsIGluZGV4KSA9PiB7XG4gICAgYWNjLnB1c2goeyAuLi5wLCBpbmRleCB9KTtcblxuICAgIGNvbnN0IGlzTGFzdCA9IGluZGV4ID09PSBwb2ludHMubGVuZ3RoIC0gMTtcbiAgICBjb25zdCBuZXh0ID0gaXNMYXN0ID8gMCA6IGluZGV4ICsgMTtcblxuICAgIGFjYy5wdXNoKHsgLi4ucG9pbnRzW25leHRdLCBpbmRleDogbmV4dCB9KTtcblxuICAgIHJldHVybiBhY2M7XG4gIH0sIFtdKTtcblxuICBjb25zdCBhbGwgPSBjaHVuayhleHBhbmRlZCwgMikubWFwKChbZnJvbSwgdG9dKSA9PiB7XG4gICAgcmV0dXJuIHsgZnJvbSwgdG8gfTtcbiAgfSk7XG5cbiAgcmV0dXJuIGNsb3NlZCA/IGFsbCA6IGluaXRpYWwoYWxsKTtcbn07XG5cbmV4cG9ydCBjb25zdCBzd2FwID0gKGFyciwgLi4ucmVzdCkgPT4ge1xuICBjb25zdCBwYWlycyA9IGNodW5rKHJlc3QsIDIpO1xuXG4gIHJldHVybiBwYWlycy5yZWR1Y2UoXG4gICAgKGFjYywgcHIpID0+IHtcbiAgICAgIGlmIChwci5sZW5ndGggPT09IDIpIHtcbiAgICAgICAgbGV0IFtlLCByZXBsYWNlbWVudF0gPSBwcjtcblxuICAgICAgICBpbnZhcmlhbnQoTnVtYmVyLmlzRmluaXRlKGUuaW5kZXgpLCAnSW5kZXggbXVzdCBiZSBkZWZpbmVkJyk7XG5cbiAgICAgICAgY29uc3QgaW5kZXggPSBlLmluZGV4O1xuICAgICAgICAvLyBjb25zdCBpID0gYWNjLmZpbmRJbmRleChwdCA9PiBwdC54ID09PSBlLnggJiYgcHQueSA9PT0gZS55KTtcblxuICAgICAgICBpZiAoaW5kZXggPj0gMCkge1xuICAgICAgICAgIGFjYy5zcGxpY2UoaW5kZXgsIDEsIHJlcGxhY2VtZW50KTtcblxuICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH1cbiAgICB9LFxuICAgIFsuLi5hcnJdLFxuICApO1xufTtcblxuZXhwb3J0IGNsYXNzIFJhd0Jhc2VDb21wb25lbnQgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIGNsYXNzZXM6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGRpc2FibGVkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBjb3JyZWN0bmVzczogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBwb2ludHM6IFByb3BUeXBlcy5hcnJheU9mKHR5cGVzLlBvaW50VHlwZSksXG4gICAgY2xvc2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc1NvbHV0aW9uOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBjb29yZGluYXRlc09uSG92ZXI6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uQ2xvc2VQb2x5Z29uOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRHJhZ1N0YXJ0OiBQcm9wVHlwZXMuZnVuYyxcbiAgICBvbkRyYWdTdG9wOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBvbkNsaWNrOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBncmFwaFByb3BzOiB0eXBlcy5HcmFwaFByb3BzVHlwZS5pc1JlcXVpcmVkLFxuICAgIGlzVG9vbEFjdGl2ZTogUHJvcFR5cGVzLmJvb2wsXG4gICAgbWlkZGxlOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxhYmVsTm9kZTogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBsYWJlbE1vZGVFbmFibGVkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBvbkNoYW5nZUxhYmVsUHJvcHM6IFByb3BUeXBlcy5mdW5jLFxuICAgIG9uQ2hhbmdlUHJvcHM6IFByb3BUeXBlcy5mdW5jLFxuICB9O1xuXG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgcG9pbnRzOiBbXSxcbiAgfTtcblxuICBkcmFnUG9pbnQgPSAoaW5kZXgsIGZyb20sIHRvKSA9PiB7XG4gICAgbG9nKCdbZHJhZ1BvaW50XSBmcm9tLCB0bzonLCBmcm9tLCB0byk7XG4gICAgY29uc3QgeyBvbkNoYW5nZSwgcG9pbnRzIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHVwZGF0ZSA9IFsuLi5wb2ludHNdO1xuICAgIGNvbnN0IG92ZXJsYXBQb2ludCA9ICEhKHBvaW50cyB8fCBbXSkuZmluZCgocCkgPT4gZXF1YWxQb2ludHMocCwgdG8pKTtcblxuICAgIGlmIChlcXVhbFBvaW50cyhmcm9tLCB0bykgfHwgb3ZlcmxhcFBvaW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHBvaW50c1tpbmRleF0ubGFiZWwpIHtcbiAgICAgIHRvLmxhYmVsID0gcG9pbnRzW2luZGV4XS5sYWJlbDtcbiAgICB9XG5cbiAgICB1cGRhdGUuc3BsaWNlKGluZGV4LCAxLCB0byk7XG4gICAgb25DaGFuZ2UodXBkYXRlKTtcbiAgfTtcblxuICBkcmFnTGluZSA9IChleGlzdGluZywgbmV4dCkgPT4ge1xuICAgIGxvZygnW2RyYWdMaW5lXTogJywgZXhpc3RpbmcsIG5leHQpO1xuICAgIGNvbnN0IHsgb25DaGFuZ2UgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBpZiAoZXhpc3RpbmcuZnJvbS5sYWJlbCkge1xuICAgICAgbmV4dC5mcm9tLmxhYmVsID0gZXhpc3RpbmcuZnJvbS5sYWJlbDtcbiAgICB9XG5cbiAgICBpZiAoZXhpc3RpbmcudG8ubGFiZWwpIHtcbiAgICAgIG5leHQudG8ubGFiZWwgPSBleGlzdGluZy50by5sYWJlbDtcbiAgICB9XG5cbiAgICBjb25zdCBwb2ludHMgPSBzd2FwKHRoaXMucHJvcHMucG9pbnRzLCBleGlzdGluZy5mcm9tLCBuZXh0LmZyb20sIGV4aXN0aW5nLnRvLCBuZXh0LnRvKTtcbiAgICBvbkNoYW5nZShwb2ludHMpO1xuICB9O1xuXG4gIGRyYWdQb2x5ID0gKGV4aXN0aW5nLCBuZXh0KSA9PiB7XG4gICAgbG9nKCdbZHJhZ1BvbHldICcsIGV4aXN0aW5nLCBuZXh0KTtcbiAgICBjb25zdCB7IG9uQ2hhbmdlIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgbmV4dC5mb3JFYWNoKChwb2ludCwgaW5kZXgpID0+IHtcbiAgICAgIGlmIChleGlzdGluZ1tpbmRleF0ubGFiZWwpIHtcbiAgICAgICAgbmV4dFtpbmRleF0ubGFiZWwgPSBleGlzdGluZ1tpbmRleF0ubGFiZWw7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBvbkNoYW5nZShuZXh0KTtcbiAgfTtcblxuICBjbG9zZSA9ICgpID0+IHtcbiAgICBjb25zdCB7IHBvaW50cywgb25DbG9zZVBvbHlnb24gfSA9IHRoaXMucHJvcHM7XG4gICAgbG9nKCdbY2xvc2VdIC4uLicpO1xuXG4gICAgaWYgKHBvaW50cy5sZW5ndGggPj0gMykge1xuICAgICAgb25DbG9zZVBvbHlnb24oKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbG9nKCdbY2xvc2VdIC0gbm9wZScpO1xuICAgIH1cbiAgfTtcblxuICBsYWJlbENoYW5nZSA9IChwb2ludCwgaW5kZXgpID0+IHtcbiAgICBjb25zdCB7IHBvaW50cywgb25DaGFuZ2VQcm9wcyB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB1cGRhdGVkUG9pbnQgPSB7IC4uLnBvaW50IH07XG5cbiAgICBpZiAoIXBvaW50LmxhYmVsIHx8IGlzRW1wdHkocG9pbnQubGFiZWwpKSB7XG4gICAgICBkZWxldGUgdXBkYXRlZFBvaW50LmxhYmVsO1xuICAgIH1cblxuICAgIGNvbnN0IHVwZGF0ZSA9IFsuLi5wb2ludHNdO1xuXG4gICAgdXBkYXRlLnNwbGljZShpbmRleCwgMSwgdXBkYXRlZFBvaW50KTtcbiAgICBvbkNoYW5nZVByb3BzKHVwZGF0ZSk7XG4gIH07XG5cbiAgY2xpY2tQb2ludCA9IChwb2ludCwgaW5kZXgsIGRhdGEpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBjbG9zZWQsXG4gICAgICBkaXNhYmxlZCxcbiAgICAgIG9uQ2xpY2ssXG4gICAgICBpc1Rvb2xBY3RpdmUsXG4gICAgICBsYWJlbE1vZGVFbmFibGVkLFxuICAgICAgb25DaGFuZ2VQcm9wcyxcbiAgICAgIG9uQ2hhbmdlTGFiZWxQcm9wcyxcbiAgICAgIHBvaW50cyxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChsYWJlbE1vZGVFbmFibGVkKSB7XG4gICAgICBpZiAoZGlzYWJsZWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAocG9pbnRzICYmIGluZGV4ID09PSBwb2ludHMubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IHsgYSwgYiB9ID0gZ2V0UmlnaHRlc3RQb2ludHMocG9pbnRzKTtcbiAgICAgICAgY29uc3QgbWlkZGxlID0geyBsYWJlbDogJycsIC4uLnBvaW50LCAuLi5nZXRNaWRkbGVPZlR3b1BvaW50cyhhLCBiKSB9O1xuXG4gICAgICAgIG9uQ2hhbmdlTGFiZWxQcm9wcyhtaWRkbGUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgdXBkYXRlID0gWy4uLnBvaW50c107XG5cbiAgICAgICAgdXBkYXRlLnNwbGljZShpbmRleCwgMSwgeyBsYWJlbDogJycsIC4uLnBvaW50IH0pO1xuICAgICAgICBvbkNoYW5nZVByb3BzKHVwZGF0ZSk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmlucHV0W2luZGV4XSkge1xuICAgICAgICB0aGlzLmlucHV0W2luZGV4XS5mb2N1cygpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGlzVG9vbEFjdGl2ZSAmJiAhY2xvc2VkICYmIGluZGV4ID09PSAwKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgb25DbGljayhwb2ludCB8fCBkYXRhKTtcbiAgfTtcblxuICAvLyBJTVBPUlRBTlQsIGRvIG5vdCByZW1vdmVcbiAgaW5wdXQgPSB7fTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgY2xvc2VkLFxuICAgICAgZ3JhcGhQcm9wcyxcbiAgICAgIG9uQ2hhbmdlTGFiZWxQcm9wcyxcbiAgICAgIHBvaW50cyxcbiAgICAgIG1pZGRsZSxcbiAgICAgIGxhYmVsTm9kZSxcbiAgICAgIGxhYmVsTW9kZUVuYWJsZWQsXG4gICAgICBpc1NvbHV0aW9uID0gZmFsc2UsXG4gICAgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgcG9seWdvbkxhYmVsSW5kZXggPSAocG9pbnRzICYmIHBvaW50cy5sZW5ndGgpIHx8IDA7XG4gICAgaWYgKGxhYmVsTm9kZSAmJiBtaWRkbGUgJiYgbWlkZGxlLmhhc093blByb3BlcnR5KCdsYWJlbCcpKSB7XG4gICAgICBSZWFjdERPTS5jcmVhdGVQb3J0YWwoXG4gICAgICAgIDxNYXJrTGFiZWxcbiAgICAgICAgICBpbnB1dFJlZj17KHIpID0+ICh0aGlzLmlucHV0W3BvbHlnb25MYWJlbEluZGV4XSA9IHIpfVxuICAgICAgICAgIGRpc2FibGVkPXshbGFiZWxNb2RlRW5hYmxlZH1cbiAgICAgICAgICBtYXJrPXttaWRkbGV9XG4gICAgICAgICAgZ3JhcGhQcm9wcz17Z3JhcGhQcm9wc31cbiAgICAgICAgICBvbkNoYW5nZT17KGxhYmVsKSA9PiBvbkNoYW5nZUxhYmVsUHJvcHMoeyAuLi5taWRkbGUsIGxhYmVsIH0pfVxuICAgICAgICAvPixcbiAgICAgICAgbGFiZWxOb2RlLFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIChcbiAgICAgIDxnPlxuICAgICAgICA8UmVhY3QuRnJhZ21lbnQ+XG4gICAgICAgICAgPERyYWdnYWJsZVBvbHlnb25cbiAgICAgICAgICAgIHBvaW50cz17cG9pbnRzfVxuICAgICAgICAgICAgY2xvc2VkPXtjbG9zZWR9XG4gICAgICAgICAgICBpc1NvbHV0aW9uPXtpc1NvbHV0aW9ufVxuICAgICAgICAgICAgZ3JhcGhQcm9wcz17Z3JhcGhQcm9wc31cbiAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMuY2xpY2tQb2ludC5iaW5kKHRoaXMsIG1pZGRsZSwgcG9seWdvbkxhYmVsSW5kZXgpfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvUmVhY3QuRnJhZ21lbnQ+XG4gICAgICA8L2c+XG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgQmFzZUNvbXBvbmVudCA9IHdpdGhTdHlsZXMoKCkgPT4gKHt9KSkoUmF3QmFzZUNvbXBvbmVudCk7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENvbXBvbmVudCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgLi4uVG9vbFByb3BUeXBlRmllbGRzLFxuICAgIGdyYXBoUHJvcHM6IHR5cGVzLkdyYXBoUHJvcHNUeXBlLmlzUmVxdWlyZWQsXG4gIH07XG5cbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHt9O1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuICAgIHRoaXMuc3RhdGUgPSB7fTtcbiAgfVxuXG4gIGNoYW5nZSA9IChwb2ludHMpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBtYXJrOiB7IG1pZGRsZSB9LFxuICAgIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IG1hcmsgPSB7IC4uLnRoaXMuc3RhdGUubWFyaywgcG9pbnRzIH07XG5cbiAgICBpZiAobWlkZGxlKSB7XG4gICAgICBjb25zdCB7IGEsIGIgfSA9IGdldFJpZ2h0ZXN0UG9pbnRzKHBvaW50cyk7XG5cbiAgICAgIG1hcmsubWlkZGxlID0geyAuLi5taWRkbGUsIC4uLmdldE1pZGRsZU9mVHdvUG9pbnRzKGEsIGIpIH07XG4gICAgfVxuXG4gICAgdGhpcy5zZXRTdGF0ZSh7IG1hcmsgfSk7XG4gIH07XG5cbiAgY2hhbmdlUHJvcHMgPSAocG9pbnRzKSA9PiB7XG4gICAgY29uc3QgbWFyayA9IHsgLi4udGhpcy5wcm9wcy5tYXJrLCBwb2ludHMgfTtcblxuICAgIHRoaXMucHJvcHMub25DaGFuZ2UodGhpcy5wcm9wcy5tYXJrLCBtYXJrKTtcbiAgfTtcblxuICBjaGFuZ2VMYWJlbFByb3BzID0gKHBvaW50KSA9PiB7XG4gICAgY29uc3QgeyBtYXJrLCBvbkNoYW5nZSB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBtaWRkbGUgPSB7IC4uLm1hcmsubWlkZGxlLCAuLi5wb2ludCB9O1xuXG4gICAgb25DaGFuZ2UobWFyaywgeyAuLi5tYXJrLCBtaWRkbGUgfSk7XG4gIH07XG5cbiAgY2xvc2VQb2x5Z29uID0gKCkgPT4ge1xuICAgIGxvZygnW2Nsb3NlUG9seWdvbl0gLi4uJyk7XG4gICAgY29uc3QgeyBvbkNvbXBsZXRlLCBtYXJrIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHVwZGF0ZSA9IHsgLi4ubWFyaywgY2xvc2VkOiB0cnVlIH07XG5cbiAgICBvbkNvbXBsZXRlKG1hcmssIHVwZGF0ZSk7XG4gIH07XG5cbiAgZHJhZ1N0YXJ0ID0gKCkgPT4gdGhpcy5zZXRTdGF0ZSh7IG1hcms6IHRoaXMucHJvcHMubWFyayB9KTtcblxuICBkcmFnU3RvcCA9ICgpID0+IHtcbiAgICBjb25zdCB7IG9uQ2hhbmdlIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IG0gPSB7IC4uLnRoaXMuc3RhdGUubWFyayB9O1xuXG4gICAgdGhpcy5zZXRTdGF0ZSh7IG1hcms6IHVuZGVmaW5lZCB9LCAoKSA9PiB7XG4gICAgICBvbkNoYW5nZSh0aGlzLnByb3BzLm1hcmssIG0pO1xuICAgIH0pO1xuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7IGNvb3JkaW5hdGVzT25Ib3ZlciwgbWFyaywgZ3JhcGhQcm9wcywgb25DbGljaywgaXNUb29sQWN0aXZlLCBsYWJlbE5vZGUsIGxhYmVsTW9kZUVuYWJsZWQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyBtYXJrOiBzdGF0ZU1hcmsgfSA9IHRoaXMuc3RhdGU7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPEJhc2VDb21wb25lbnRcbiAgICAgICAgey4uLihzdGF0ZU1hcmsgfHwgbWFyayl9XG4gICAgICAgIGNvb3JkaW5hdGVzT25Ib3Zlcj17Y29vcmRpbmF0ZXNPbkhvdmVyfVxuICAgICAgICBvbkNoYW5nZT17dGhpcy5jaGFuZ2V9XG4gICAgICAgIG9uQ2hhbmdlTGFiZWxQcm9wcz17dGhpcy5jaGFuZ2VMYWJlbFByb3BzfVxuICAgICAgICBvbkNoYW5nZVByb3BzPXt0aGlzLmNoYW5nZVByb3BzfVxuICAgICAgICBvbkNsb3NlUG9seWdvbj17dGhpcy5jbG9zZVBvbHlnb259XG4gICAgICAgIG9uRHJhZ1N0YXJ0PXt0aGlzLmRyYWdTdGFydH1cbiAgICAgICAgb25EcmFnU3RvcD17dGhpcy5kcmFnU3RvcH1cbiAgICAgICAgb25DbGljaz17b25DbGlja31cbiAgICAgICAgZ3JhcGhQcm9wcz17Z3JhcGhQcm9wc31cbiAgICAgICAgaXNUb29sQWN0aXZlPXtpc1Rvb2xBY3RpdmV9XG4gICAgICAgIGxhYmVsTm9kZT17bGFiZWxOb2RlfVxuICAgICAgICBsYWJlbE1vZGVFbmFibGVkPXtsYWJlbE1vZGVFbmFibGVkfVxuICAgICAgLz5cbiAgICApO1xuICB9XG59XG4iXX0=
457
+ //# sourceMappingURL=component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/tools/polygon/component.jsx"],"names":["log","buildLines","points","closed","expanded","reduce","acc","p","index","push","isLast","length","next","all","map","from","to","swap","arr","rest","pairs","pr","e","replacement","Number","isFinite","splice","RawBaseComponent","props","onChange","update","overlapPoint","find","label","existing","forEach","point","onClosePolygon","onChangeProps","updatedPoint","data","disabled","onClick","isToolActive","labelModeEnabled","onChangeLabelProps","a","b","middle","input","focus","close","graphProps","labelNode","isSolution","polygonLabelIndex","hasOwnProperty","ReactDOM","createPortal","r","clickPoint","bind","React","Component","classes","PropTypes","object","className","string","bool","correctness","arrayOf","types","PointType","coordinatesOnHover","func","isRequired","onDragStart","onDragStop","GraphPropsType","BaseComponent","mark","state","setState","onComplete","m","undefined","stateMark","change","changeLabelProps","changeProps","closePolygon","dragStart","dragStop","ToolPropTypeFields"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;AAEA,IAAMA,GAAG,GAAG,uBAAM,uCAAN,CAAZ;;AAEO,IAAMC,UAAU,GAAG,SAAbA,UAAa,CAACC,MAAD,EAASC,MAAT,EAAoB;AAC5C,MAAMC,QAAQ,GAAGF,MAAM,CAACG,MAAP,CAAc,UAACC,GAAD,EAAMC,CAAN,EAASC,KAAT,EAAmB;AAChDF,IAAAA,GAAG,CAACG,IAAJ,iCAAcF,CAAd;AAAiBC,MAAAA,KAAK,EAALA;AAAjB;AAEA,QAAME,MAAM,GAAGF,KAAK,KAAKN,MAAM,CAACS,MAAP,GAAgB,CAAzC;AACA,QAAMC,IAAI,GAAGF,MAAM,GAAG,CAAH,GAAOF,KAAK,GAAG,CAAlC;AAEAF,IAAAA,GAAG,CAACG,IAAJ,iCAAcP,MAAM,CAACU,IAAD,CAApB;AAA4BJ,MAAAA,KAAK,EAAEI;AAAnC;AAEA,WAAON,GAAP;AACD,GATgB,EASd,EATc,CAAjB;AAWA,MAAMO,GAAG,GAAG,uBAAMT,QAAN,EAAgB,CAAhB,EAAmBU,GAAnB,CAAuB,gBAAgB;AAAA;AAAA,QAAdC,IAAc;AAAA,QAARC,EAAQ;;AACjD,WAAO;AAAED,MAAAA,IAAI,EAAJA,IAAF;AAAQC,MAAAA,EAAE,EAAFA;AAAR,KAAP;AACD,GAFW,CAAZ;AAIA,SAAOb,MAAM,GAAGU,GAAH,GAAS,yBAAQA,GAAR,CAAtB;AACD,CAjBM;;;;AAmBA,IAAMI,IAAI,GAAG,SAAPA,IAAO,CAACC,GAAD,EAAkB;AAAA,oCAATC,IAAS;AAATA,IAAAA,IAAS;AAAA;;AACpC,MAAMC,KAAK,GAAG,uBAAMD,IAAN,EAAY,CAAZ,CAAd;AAEA,SAAOC,KAAK,CAACf,MAAN,CACL,UAACC,GAAD,EAAMe,EAAN,EAAa;AACX,QAAIA,EAAE,CAACV,MAAH,KAAc,CAAlB,EAAqB;AACnB,gDAAuBU,EAAvB;AAAA,UAAKC,CAAL;AAAA,UAAQC,WAAR;;AAEA,iCAAUC,MAAM,CAACC,QAAP,CAAgBH,CAAC,CAACd,KAAlB,CAAV,EAAoC,uBAApC;AAEA,UAAMA,KAAK,GAAGc,CAAC,CAACd,KAAhB,CALmB,CAMnB;;AAEA,UAAIA,KAAK,IAAI,CAAb,EAAgB;AACdF,QAAAA,GAAG,CAACoB,MAAJ,CAAWlB,KAAX,EAAkB,CAAlB,EAAqBe,WAArB;AAEA,eAAOjB,GAAP;AACD,OAJD,MAIO;AACL,eAAOA,GAAP;AACD;AACF,KAfD,MAeO;AACL,aAAOA,GAAP;AACD;AACF,GApBI,sCAqBDY,GArBC,EAAP;AAuBD,CA1BM;;;;IA4BMS,gB;;;;;;;;;;;;;;;kGA4BC,UAACnB,KAAD,EAAQO,IAAR,EAAcC,EAAd,EAAqB;AAC/BhB,MAAAA,GAAG,CAAC,uBAAD,EAA0Be,IAA1B,EAAgCC,EAAhC,CAAH;AACA,wBAA6B,MAAKY,KAAlC;AAAA,UAAQC,QAAR,eAAQA,QAAR;AAAA,UAAkB3B,MAAlB,eAAkBA,MAAlB;AACA,UAAM4B,MAAM,uCAAO5B,MAAP,CAAZ;AACA,UAAM6B,YAAY,GAAG,CAAC,CAAC,CAAC7B,MAAM,IAAI,EAAX,EAAe8B,IAAf,CAAoB,UAACzB,CAAD;AAAA,eAAO,wBAAYA,CAAZ,EAAeS,EAAf,CAAP;AAAA,OAApB,CAAvB;;AAEA,UAAI,wBAAYD,IAAZ,EAAkBC,EAAlB,KAAyBe,YAA7B,EAA2C;AACzC;AACD;;AAED,UAAI7B,MAAM,CAACM,KAAD,CAAN,CAAcyB,KAAlB,EAAyB;AACvBjB,QAAAA,EAAE,CAACiB,KAAH,GAAW/B,MAAM,CAACM,KAAD,CAAN,CAAcyB,KAAzB;AACD;;AAEDH,MAAAA,MAAM,CAACJ,MAAP,CAAclB,KAAd,EAAqB,CAArB,EAAwBQ,EAAxB;AACAa,MAAAA,QAAQ,CAACC,MAAD,CAAR;AACD,K;iGAEU,UAACI,QAAD,EAAWtB,IAAX,EAAoB;AAC7BZ,MAAAA,GAAG,CAAC,cAAD,EAAiBkC,QAAjB,EAA2BtB,IAA3B,CAAH;AACA,UAAQiB,QAAR,GAAqB,MAAKD,KAA1B,CAAQC,QAAR;;AAEA,UAAIK,QAAQ,CAACnB,IAAT,CAAckB,KAAlB,EAAyB;AACvBrB,QAAAA,IAAI,CAACG,IAAL,CAAUkB,KAAV,GAAkBC,QAAQ,CAACnB,IAAT,CAAckB,KAAhC;AACD;;AAED,UAAIC,QAAQ,CAAClB,EAAT,CAAYiB,KAAhB,EAAuB;AACrBrB,QAAAA,IAAI,CAACI,EAAL,CAAQiB,KAAR,GAAgBC,QAAQ,CAAClB,EAAT,CAAYiB,KAA5B;AACD;;AAED,UAAM/B,MAAM,GAAGe,IAAI,CAAC,MAAKW,KAAL,CAAW1B,MAAZ,EAAoBgC,QAAQ,CAACnB,IAA7B,EAAmCH,IAAI,CAACG,IAAxC,EAA8CmB,QAAQ,CAAClB,EAAvD,EAA2DJ,IAAI,CAACI,EAAhE,CAAnB;AACAa,MAAAA,QAAQ,CAAC3B,MAAD,CAAR;AACD,K;iGAEU,UAACgC,QAAD,EAAWtB,IAAX,EAAoB;AAC7BZ,MAAAA,GAAG,CAAC,aAAD,EAAgBkC,QAAhB,EAA0BtB,IAA1B,CAAH;AACA,UAAQiB,QAAR,GAAqB,MAAKD,KAA1B,CAAQC,QAAR;AAEAjB,MAAAA,IAAI,CAACuB,OAAL,CAAa,UAACC,KAAD,EAAQ5B,KAAR,EAAkB;AAC7B,YAAI0B,QAAQ,CAAC1B,KAAD,CAAR,CAAgByB,KAApB,EAA2B;AACzBrB,UAAAA,IAAI,CAACJ,KAAD,CAAJ,CAAYyB,KAAZ,GAAoBC,QAAQ,CAAC1B,KAAD,CAAR,CAAgByB,KAApC;AACD;AACF,OAJD;AAMAJ,MAAAA,QAAQ,CAACjB,IAAD,CAAR;AACD,K;8FAEO,YAAM;AACZ,yBAAmC,MAAKgB,KAAxC;AAAA,UAAQ1B,MAAR,gBAAQA,MAAR;AAAA,UAAgBmC,cAAhB,gBAAgBA,cAAhB;AACArC,MAAAA,GAAG,CAAC,aAAD,CAAH;;AAEA,UAAIE,MAAM,CAACS,MAAP,IAAiB,CAArB,EAAwB;AACtB0B,QAAAA,cAAc;AACf,OAFD,MAEO;AACLrC,QAAAA,GAAG,CAAC,gBAAD,CAAH;AACD;AACF,K;oGAEa,UAACoC,KAAD,EAAQ5B,KAAR,EAAkB;AAC9B,yBAAkC,MAAKoB,KAAvC;AAAA,UAAQ1B,MAAR,gBAAQA,MAAR;AAAA,UAAgBoC,aAAhB,gBAAgBA,aAAhB;;AACA,UAAMC,YAAY,qBAAQH,KAAR,CAAlB;;AAEA,UAAI,CAACA,KAAK,CAACH,KAAP,IAAgB,yBAAQG,KAAK,CAACH,KAAd,CAApB,EAA0C;AACxC,eAAOM,YAAY,CAACN,KAApB;AACD;;AAED,UAAMH,MAAM,uCAAO5B,MAAP,CAAZ;AAEA4B,MAAAA,MAAM,CAACJ,MAAP,CAAclB,KAAd,EAAqB,CAArB,EAAwB+B,YAAxB;AACAD,MAAAA,aAAa,CAACR,MAAD,CAAb;AACD,K;mGAEY,UAACM,KAAD,EAAQ5B,KAAR,EAAegC,IAAf,EAAwB;AACnC,yBASI,MAAKZ,KATT;AAAA,UACEzB,MADF,gBACEA,MADF;AAAA,UAEEsC,QAFF,gBAEEA,QAFF;AAAA,UAGEC,OAHF,gBAGEA,OAHF;AAAA,UAIEC,YAJF,gBAIEA,YAJF;AAAA,UAKEC,gBALF,gBAKEA,gBALF;AAAA,UAMEN,aANF,gBAMEA,aANF;AAAA,UAOEO,kBAPF,gBAOEA,kBAPF;AAAA,UAQE3C,MARF,gBAQEA,MARF;;AAWA,UAAI0C,gBAAJ,EAAsB;AACpB,YAAIH,QAAJ,EAAc;AACZ;AACD;;AAED,YAAIvC,MAAM,IAAIM,KAAK,KAAKN,MAAM,CAACS,MAA/B,EAAuC;AACrC,mCAAiB,8BAAkBT,MAAlB,CAAjB;AAAA,cAAQ4C,CAAR,sBAAQA,CAAR;AAAA,cAAWC,CAAX,sBAAWA,CAAX;;AACA,cAAMC,MAAM;AAAKf,YAAAA,KAAK,EAAE;AAAZ,aAAmBG,KAAnB,GAA6B,iCAAqBU,CAArB,EAAwBC,CAAxB,CAA7B,CAAZ;;AAEAF,UAAAA,kBAAkB,CAACG,MAAD,CAAlB;AACD,SALD,MAKO;AACL,cAAMlB,MAAM,uCAAO5B,MAAP,CAAZ;AAEA4B,UAAAA,MAAM,CAACJ,MAAP,CAAclB,KAAd,EAAqB,CAArB;AAA0ByB,YAAAA,KAAK,EAAE;AAAjC,aAAwCG,KAAxC;AACAE,UAAAA,aAAa,CAACR,MAAD,CAAb;AACD;;AAED,YAAI,MAAKmB,KAAL,CAAWzC,KAAX,CAAJ,EAAuB;AACrB,gBAAKyC,KAAL,CAAWzC,KAAX,EAAkB0C,KAAlB;AACD;;AAED;AACD;;AAED,UAAIP,YAAY,IAAI,CAACxC,MAAjB,IAA2BK,KAAK,KAAK,CAAzC,EAA4C;AAC1C,cAAK2C,KAAL;;AACA;AACD;;AAEDT,MAAAA,OAAO,CAACN,KAAK,IAAII,IAAV,CAAP;AACD,K;8FAGO,E;;;;;;WAER,kBAAS;AAAA;;AACP,yBASI,KAAKZ,KATT;AAAA,UACEzB,MADF,gBACEA,MADF;AAAA,UAEEiD,UAFF,gBAEEA,UAFF;AAAA,UAGEP,kBAHF,gBAGEA,kBAHF;AAAA,UAIE3C,MAJF,gBAIEA,MAJF;AAAA,UAKE8C,MALF,gBAKEA,MALF;AAAA,UAMEK,SANF,gBAMEA,SANF;AAAA,UAOET,gBAPF,gBAOEA,gBAPF;AAAA,+CAQEU,UARF;AAAA,UAQEA,UARF,sCAQe,KARf;AAUA,UAAMC,iBAAiB,GAAIrD,MAAM,IAAIA,MAAM,CAACS,MAAlB,IAA6B,CAAvD;;AACA,UAAI0C,SAAS,IAAIL,MAAb,IAAuBA,MAAM,CAACQ,cAAP,CAAsB,OAAtB,CAA3B,EAA2D;AACzD;AAAAC,6BAASC,YAAT,eACE,gCAAC,qBAAD;AACE,UAAA,QAAQ,EAAE,kBAACC,CAAD;AAAA,mBAAQ,MAAI,CAACV,KAAL,CAAWM,iBAAX,IAAgCI,CAAxC;AAAA,WADZ;AAEE,UAAA,QAAQ,EAAE,CAACf,gBAFb;AAGE,UAAA,IAAI,EAAEI,MAHR;AAIE,UAAA,UAAU,EAAEI,UAJd;AAKE,UAAA,QAAQ,EAAE,kBAACnB,KAAD;AAAA,mBAAWY,kBAAkB,iCAAMG,MAAN;AAAcf,cAAAA,KAAK,EAALA;AAAd,eAA7B;AAAA;AALZ,UADF,EAQEoB,SARF;AAUD;;AACD,0BACE,wDACE,gCAAC,iBAAD,CAAO,QAAP,qBACE,gCAAC,mBAAD;AACE,QAAA,MAAM,EAAEnD,MADV;AAEE,QAAA,MAAM,EAAEC,MAFV;AAGE,QAAA,UAAU,EAAEmD,UAHd;AAIE,QAAA,UAAU,EAAEF,UAJd;AAKE,QAAA,OAAO,EAAE,KAAKQ,UAAL,CAAgBC,IAAhB,CAAqB,IAArB,EAA2Bb,MAA3B,EAAmCO,iBAAnC;AALX,QADF,CADF,CADF;AAaD;;;EAxLmCO,kBAAMC,S;;;iCAA/BpC,gB,eACQ;AACjBqC,EAAAA,OAAO,EAAEC,sBAAUC,MADF;AAEjBC,EAAAA,SAAS,EAAEF,sBAAUG,MAFJ;AAGjB3B,EAAAA,QAAQ,EAAEwB,sBAAUI,IAHH;AAIjBC,EAAAA,WAAW,EAAEL,sBAAUG,MAJN;AAKjBlE,EAAAA,MAAM,EAAE+D,sBAAUM,OAAV,CAAkBC,YAAMC,SAAxB,CALS;AAMjBtE,EAAAA,MAAM,EAAE8D,sBAAUI,IAND;AAOjBf,EAAAA,UAAU,EAAEW,sBAAUI,IAPL;AAQjBK,EAAAA,kBAAkB,EAAET,sBAAUI,IARb;AASjBxC,EAAAA,QAAQ,EAAEoC,sBAAUU,IAAV,CAAeC,UATR;AAUjBvC,EAAAA,cAAc,EAAE4B,sBAAUU,IAAV,CAAeC,UAVd;AAWjBC,EAAAA,WAAW,EAAEZ,sBAAUU,IAXN;AAYjBG,EAAAA,UAAU,EAAEb,sBAAUU,IAZL;AAajBjC,EAAAA,OAAO,EAAEuB,sBAAUU,IAbF;AAcjBvB,EAAAA,UAAU,EAAEoB,YAAMO,cAAN,CAAqBH,UAdhB;AAejBjC,EAAAA,YAAY,EAAEsB,sBAAUI,IAfP;AAgBjBrB,EAAAA,MAAM,EAAEiB,sBAAUC,MAhBD;AAiBjBb,EAAAA,SAAS,EAAEY,sBAAUC,MAjBJ;AAkBjBtB,EAAAA,gBAAgB,EAAEqB,sBAAUI,IAlBX;AAmBjBxB,EAAAA,kBAAkB,EAAEoB,sBAAUU,IAnBb;AAoBjBrC,EAAAA,aAAa,EAAE2B,sBAAUU;AApBR,C;iCADRhD,gB,kBAwBW;AACpBzB,EAAAA,MAAM,EAAE;AADY,C;AAmKjB,IAAM8E,aAAa,GAAG,wBAAW;AAAA,SAAO,EAAP;AAAA,CAAX,EAAuBrD,gBAAvB,CAAtB;;;IAEcoC,S;;;;;AAQnB,qBAAYnC,KAAZ,EAAmB;AAAA;;AAAA;AACjB,gCAAMA,KAAN;AADiB,gGAKV,UAAC1B,MAAD,EAAY;AACnB,UACU8C,MADV,GAEI,OAAKpB,KAFT,CACEqD,IADF,CACUjC,MADV;;AAGA,UAAMiC,IAAI,mCAAQ,OAAKC,KAAL,CAAWD,IAAnB;AAAyB/E,QAAAA,MAAM,EAANA;AAAzB,QAAV;;AAEA,UAAI8C,MAAJ,EAAY;AACV,kCAAiB,8BAAkB9C,MAAlB,CAAjB;AAAA,YAAQ4C,CAAR,uBAAQA,CAAR;AAAA,YAAWC,CAAX,uBAAWA,CAAX;;AAEAkC,QAAAA,IAAI,CAACjC,MAAL,mCAAmBA,MAAnB,GAA8B,iCAAqBF,CAArB,EAAwBC,CAAxB,CAA9B;AACD;;AAED,aAAKoC,QAAL,CAAc;AAAEF,QAAAA,IAAI,EAAJA;AAAF,OAAd;AACD,KAlBkB;AAAA,qGAoBL,UAAC/E,MAAD,EAAY;AACxB,UAAM+E,IAAI,mCAAQ,OAAKrD,KAAL,CAAWqD,IAAnB;AAAyB/E,QAAAA,MAAM,EAANA;AAAzB,QAAV;;AAEA,aAAK0B,KAAL,CAAWC,QAAX,CAAoB,OAAKD,KAAL,CAAWqD,IAA/B,EAAqCA,IAArC;AACD,KAxBkB;AAAA,0GA0BA,UAAC7C,KAAD,EAAW;AAC5B,yBAA2B,OAAKR,KAAhC;AAAA,UAAQqD,IAAR,gBAAQA,IAAR;AAAA,UAAcpD,QAAd,gBAAcA,QAAd;;AACA,UAAMmB,MAAM,mCAAQiC,IAAI,CAACjC,MAAb,GAAwBZ,KAAxB,CAAZ;;AAEAP,MAAAA,QAAQ,CAACoD,IAAD,kCAAYA,IAAZ;AAAkBjC,QAAAA,MAAM,EAANA;AAAlB,SAAR;AACD,KA/BkB;AAAA,sGAiCJ,YAAM;AACnBhD,MAAAA,GAAG,CAAC,oBAAD,CAAH;AACA,0BAA6B,OAAK4B,KAAlC;AAAA,UAAQwD,UAAR,iBAAQA,UAAR;AAAA,UAAoBH,IAApB,iBAAoBA,IAApB;;AACA,UAAMnD,MAAM,mCAAQmD,IAAR;AAAc9E,QAAAA,MAAM,EAAE;AAAtB,QAAZ;;AAEAiF,MAAAA,UAAU,CAACH,IAAD,EAAOnD,MAAP,CAAV;AACD,KAvCkB;AAAA,mGAyCP;AAAA,aAAM,OAAKqD,QAAL,CAAc;AAAEF,QAAAA,IAAI,EAAE,OAAKrD,KAAL,CAAWqD;AAAnB,OAAd,CAAN;AAAA,KAzCO;AAAA,kGA2CR,YAAM;AACf,UAAQpD,QAAR,GAAqB,OAAKD,KAA1B,CAAQC,QAAR;;AACA,UAAMwD,CAAC,qBAAQ,OAAKH,KAAL,CAAWD,IAAnB,CAAP;;AAEA,aAAKE,QAAL,CAAc;AAAEF,QAAAA,IAAI,EAAEK;AAAR,OAAd,EAAmC,YAAM;AACvCzD,QAAAA,QAAQ,CAAC,OAAKD,KAAL,CAAWqD,IAAZ,EAAkBI,CAAlB,CAAR;AACD,OAFD;AAGD,KAlDkB;AAEjB,WAAKH,KAAL,GAAa,EAAb;AAFiB;AAGlB;;;;WAiDD,kBAAS;AACP,yBAAqG,KAAKtD,KAA1G;AAAA,UAAQ8C,kBAAR,gBAAQA,kBAAR;AAAA,UAA4BO,IAA5B,gBAA4BA,IAA5B;AAAA,UAAkC7B,UAAlC,gBAAkCA,UAAlC;AAAA,UAA8CV,OAA9C,gBAA8CA,OAA9C;AAAA,UAAuDC,YAAvD,gBAAuDA,YAAvD;AAAA,UAAqEU,SAArE,gBAAqEA,SAArE;AAAA,UAAgFT,gBAAhF,gBAAgFA,gBAAhF;AACA,UAAc2C,SAAd,GAA4B,KAAKL,KAAjC,CAAQD,IAAR;AAEA,0BACE,gCAAC,aAAD,gCACOM,SAAS,IAAIN,IADpB;AAEE,QAAA,kBAAkB,EAAEP,kBAFtB;AAGE,QAAA,QAAQ,EAAE,KAAKc,MAHjB;AAIE,QAAA,kBAAkB,EAAE,KAAKC,gBAJ3B;AAKE,QAAA,aAAa,EAAE,KAAKC,WALtB;AAME,QAAA,cAAc,EAAE,KAAKC,YANvB;AAOE,QAAA,WAAW,EAAE,KAAKC,SAPpB;AAQE,QAAA,UAAU,EAAE,KAAKC,QARnB;AASE,QAAA,OAAO,EAAEnD,OATX;AAUE,QAAA,UAAU,EAAEU,UAVd;AAWE,QAAA,YAAY,EAAET,YAXhB;AAYE,QAAA,SAAS,EAAEU,SAZb;AAaE,QAAA,gBAAgB,EAAET;AAbpB,SADF;AAiBD;;;EAjFoCkB,kBAAMC,S;;;iCAAxBA,S,+CAEd+B,yB;AACH1C,EAAAA,UAAU,EAAEoB,YAAMO,cAAN,CAAqBH;;iCAHhBb,S,kBAMG,E","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { ToolPropTypeFields } from '../shared/types';\nimport chunk from 'lodash/chunk';\nimport initial from 'lodash/initial';\nimport debug from 'debug';\nimport DraggablePolygon from './polygon';\nimport { types } from '@pie-lib/plot';\nimport invariant from 'invariant';\nimport ReactDOM from 'react-dom';\nimport MarkLabel from '../../mark-label';\nimport isEmpty from 'lodash/isEmpty';\nimport { getMiddleOfTwoPoints, getRightestPoints, equalPoints } from '../../utils';\n\nconst log = debug('pie-lib:graphing-solution-set:polygon');\n\nexport const buildLines = (points, closed) => {\n const expanded = points.reduce((acc, p, index) => {\n acc.push({ ...p, index });\n\n const isLast = index === points.length - 1;\n const next = isLast ? 0 : index + 1;\n\n acc.push({ ...points[next], index: next });\n\n return acc;\n }, []);\n\n const all = chunk(expanded, 2).map(([from, to]) => {\n return { from, to };\n });\n\n return closed ? all : initial(all);\n};\n\nexport const swap = (arr, ...rest) => {\n const pairs = chunk(rest, 2);\n\n return pairs.reduce(\n (acc, pr) => {\n if (pr.length === 2) {\n let [e, replacement] = pr;\n\n invariant(Number.isFinite(e.index), 'Index must be defined');\n\n const index = e.index;\n // const i = acc.findIndex(pt => pt.x === e.x && pt.y === e.y);\n\n if (index >= 0) {\n acc.splice(index, 1, replacement);\n\n return acc;\n } else {\n return acc;\n }\n } else {\n return acc;\n }\n },\n [...arr],\n );\n};\n\nexport class RawBaseComponent extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n className: PropTypes.string,\n disabled: PropTypes.bool,\n correctness: PropTypes.string,\n points: PropTypes.arrayOf(types.PointType),\n closed: PropTypes.bool,\n isSolution: PropTypes.bool,\n coordinatesOnHover: PropTypes.bool,\n onChange: PropTypes.func.isRequired,\n onClosePolygon: PropTypes.func.isRequired,\n onDragStart: PropTypes.func,\n onDragStop: PropTypes.func,\n onClick: PropTypes.func,\n graphProps: types.GraphPropsType.isRequired,\n isToolActive: PropTypes.bool,\n middle: PropTypes.object,\n labelNode: PropTypes.object,\n labelModeEnabled: PropTypes.bool,\n onChangeLabelProps: PropTypes.func,\n onChangeProps: PropTypes.func,\n };\n\n static defaultProps = {\n points: [],\n };\n\n dragPoint = (index, from, to) => {\n log('[dragPoint] from, to:', from, to);\n const { onChange, points } = this.props;\n const update = [...points];\n const overlapPoint = !!(points || []).find((p) => equalPoints(p, to));\n\n if (equalPoints(from, to) || overlapPoint) {\n return;\n }\n\n if (points[index].label) {\n to.label = points[index].label;\n }\n\n update.splice(index, 1, to);\n onChange(update);\n };\n\n dragLine = (existing, next) => {\n log('[dragLine]: ', existing, next);\n const { onChange } = this.props;\n\n if (existing.from.label) {\n next.from.label = existing.from.label;\n }\n\n if (existing.to.label) {\n next.to.label = existing.to.label;\n }\n\n const points = swap(this.props.points, existing.from, next.from, existing.to, next.to);\n onChange(points);\n };\n\n dragPoly = (existing, next) => {\n log('[dragPoly] ', existing, next);\n const { onChange } = this.props;\n\n next.forEach((point, index) => {\n if (existing[index].label) {\n next[index].label = existing[index].label;\n }\n });\n\n onChange(next);\n };\n\n close = () => {\n const { points, onClosePolygon } = this.props;\n log('[close] ...');\n\n if (points.length >= 3) {\n onClosePolygon();\n } else {\n log('[close] - nope');\n }\n };\n\n labelChange = (point, index) => {\n const { points, onChangeProps } = this.props;\n const updatedPoint = { ...point };\n\n if (!point.label || isEmpty(point.label)) {\n delete updatedPoint.label;\n }\n\n const update = [...points];\n\n update.splice(index, 1, updatedPoint);\n onChangeProps(update);\n };\n\n clickPoint = (point, index, data) => {\n const {\n closed,\n disabled,\n onClick,\n isToolActive,\n labelModeEnabled,\n onChangeProps,\n onChangeLabelProps,\n points,\n } = this.props;\n\n if (labelModeEnabled) {\n if (disabled) {\n return;\n }\n\n if (points && index === points.length) {\n const { a, b } = getRightestPoints(points);\n const middle = { label: '', ...point, ...getMiddleOfTwoPoints(a, b) };\n\n onChangeLabelProps(middle);\n } else {\n const update = [...points];\n\n update.splice(index, 1, { label: '', ...point });\n onChangeProps(update);\n }\n\n if (this.input[index]) {\n this.input[index].focus();\n }\n\n return;\n }\n\n if (isToolActive && !closed && index === 0) {\n this.close();\n return;\n }\n\n onClick(point || data);\n };\n\n // IMPORTANT, do not remove\n input = {};\n\n render() {\n const {\n closed,\n graphProps,\n onChangeLabelProps,\n points,\n middle,\n labelNode,\n labelModeEnabled,\n isSolution = false,\n } = this.props;\n const polygonLabelIndex = (points && points.length) || 0;\n if (labelNode && middle && middle.hasOwnProperty('label')) {\n ReactDOM.createPortal(\n <MarkLabel\n inputRef={(r) => (this.input[polygonLabelIndex] = r)}\n disabled={!labelModeEnabled}\n mark={middle}\n graphProps={graphProps}\n onChange={(label) => onChangeLabelProps({ ...middle, label })}\n />,\n labelNode,\n );\n }\n return (\n <g>\n <React.Fragment>\n <DraggablePolygon\n points={points}\n closed={closed}\n isSolution={isSolution}\n graphProps={graphProps}\n onClick={this.clickPoint.bind(this, middle, polygonLabelIndex)}\n />\n </React.Fragment>\n </g>\n );\n }\n}\n\nexport const BaseComponent = withStyles(() => ({}))(RawBaseComponent);\n\nexport default class Component extends React.Component {\n static propTypes = {\n ...ToolPropTypeFields,\n graphProps: types.GraphPropsType.isRequired,\n };\n\n static defaultProps = {};\n\n constructor(props) {\n super(props);\n this.state = {};\n }\n\n change = (points) => {\n const {\n mark: { middle },\n } = this.props;\n const mark = { ...this.state.mark, points };\n\n if (middle) {\n const { a, b } = getRightestPoints(points);\n\n mark.middle = { ...middle, ...getMiddleOfTwoPoints(a, b) };\n }\n\n this.setState({ mark });\n };\n\n changeProps = (points) => {\n const mark = { ...this.props.mark, points };\n\n this.props.onChange(this.props.mark, mark);\n };\n\n changeLabelProps = (point) => {\n const { mark, onChange } = this.props;\n const middle = { ...mark.middle, ...point };\n\n onChange(mark, { ...mark, middle });\n };\n\n closePolygon = () => {\n log('[closePolygon] ...');\n const { onComplete, mark } = this.props;\n const update = { ...mark, closed: true };\n\n onComplete(mark, update);\n };\n\n dragStart = () => this.setState({ mark: this.props.mark });\n\n dragStop = () => {\n const { onChange } = this.props;\n const m = { ...this.state.mark };\n\n this.setState({ mark: undefined }, () => {\n onChange(this.props.mark, m);\n });\n };\n\n render() {\n const { coordinatesOnHover, mark, graphProps, onClick, isToolActive, labelNode, labelModeEnabled } = this.props;\n const { mark: stateMark } = this.state;\n\n return (\n <BaseComponent\n {...(stateMark || mark)}\n coordinatesOnHover={coordinatesOnHover}\n onChange={this.change}\n onChangeLabelProps={this.changeLabelProps}\n onChangeProps={this.changeProps}\n onClosePolygon={this.closePolygon}\n onDragStart={this.dragStart}\n onDragStop={this.dragStop}\n onClick={onClick}\n graphProps={graphProps}\n isToolActive={isToolActive}\n labelNode={labelNode}\n labelModeEnabled={labelModeEnabled}\n />\n );\n }\n}\n"],"file":"component.js"}
@@ -103,4 +103,4 @@ var tool = function tool() {
103
103
  };
104
104
 
105
105
  exports.tool = tool;
106
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90b29scy9wb2x5Z29uL2luZGV4LmpzIl0sIm5hbWVzIjpbImFkZFBvaW50VG9BcnJheSIsInBvaW50IiwiYXJyIiwibGVuZ3RoIiwicG9pbnRzIiwiY2xvc2VkIiwiaGFzUG9pbnQiLCJmaW5kIiwicCIsInRvb2wiLCJ0eXBlIiwiQ29tcG9uZW50IiwiUG9seWdvbiIsImNvbXBsZXRlIiwiZGF0YSIsIm1hcmsiLCJidWlsZGluZyIsImFkZFBvaW50Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7Ozs7OztBQUVPLElBQU1BLGVBQWUsR0FBRyxTQUFsQkEsZUFBa0IsQ0FBQ0MsS0FBRCxFQUFRQyxHQUFSLEVBQWdCO0FBQzdDQSxFQUFBQSxHQUFHLEdBQUdBLEdBQUcsSUFBSSxFQUFiOztBQUVBLE1BQUlBLEdBQUcsQ0FBQ0MsTUFBSixLQUFlLENBQW5CLEVBQXNCO0FBQ3BCLFdBQU87QUFBRUMsTUFBQUEsTUFBTSxFQUFFLENBQUNILEtBQUQsQ0FBVjtBQUFtQkksTUFBQUEsTUFBTSxFQUFFO0FBQTNCLEtBQVA7QUFDRCxHQUZELE1BRU8sSUFBSUgsR0FBRyxDQUFDQyxNQUFKLEtBQWUsQ0FBbkIsRUFBc0I7QUFDM0IsUUFBSSx3QkFBWUYsS0FBWixFQUFtQkMsR0FBRyxDQUFDLENBQUQsQ0FBdEIsQ0FBSixFQUFnQztBQUM5QixhQUFPO0FBQUVFLFFBQUFBLE1BQU0sRUFBRUYsR0FBVjtBQUFlRyxRQUFBQSxNQUFNLEVBQUU7QUFBdkIsT0FBUDtBQUNELEtBRkQsTUFFTztBQUNMLGFBQU87QUFBRUQsUUFBQUEsTUFBTSxnREFBTUYsR0FBTixJQUFXRCxLQUFYLEVBQVI7QUFBMkJJLFFBQUFBLE1BQU0sRUFBRTtBQUFuQyxPQUFQO0FBQ0Q7QUFDRixHQU5NLE1BTUEsSUFBSUgsR0FBRyxDQUFDQyxNQUFKLElBQWMsQ0FBbEIsRUFBcUI7QUFDMUIsUUFBTUUsTUFBTSxHQUFHLHdCQUFZSixLQUFaLEVBQW1CQyxHQUFHLENBQUMsQ0FBRCxDQUF0QixDQUFmOztBQUVBLFFBQUlHLE1BQUosRUFBWTtBQUNWLGFBQU87QUFBRUQsUUFBQUEsTUFBTSxFQUFFRixHQUFWO0FBQWVHLFFBQUFBLE1BQU0sRUFBTkE7QUFBZixPQUFQO0FBQ0QsS0FGRCxNQUVPO0FBQ0wsVUFBTUMsUUFBUSxHQUFHLENBQUMsQ0FBQ0osR0FBRyxDQUFDSyxJQUFKLENBQVMsVUFBQ0MsQ0FBRDtBQUFBLGVBQU8sd0JBQVlBLENBQVosRUFBZVAsS0FBZixDQUFQO0FBQUEsT0FBVCxDQUFuQjs7QUFFQSxVQUFJSyxRQUFKLEVBQWM7QUFDWixlQUFPO0FBQUVGLFVBQUFBLE1BQU0sRUFBRUYsR0FBVjtBQUFlRyxVQUFBQSxNQUFNLEVBQUU7QUFBdkIsU0FBUDtBQUNELE9BRkQsTUFFTztBQUNMLGVBQU87QUFBRUQsVUFBQUEsTUFBTSxnREFBTUYsR0FBTixJQUFXRCxLQUFYLEVBQVI7QUFBMkJJLFVBQUFBLE1BQU0sRUFBRTtBQUFuQyxTQUFQO0FBQ0Q7QUFDRjtBQUNGO0FBQ0YsQ0ExQk07Ozs7QUE0QkEsSUFBTUksSUFBSSxHQUFHLFNBQVBBLElBQU87QUFBQSxTQUFPO0FBQ3pCQyxJQUFBQSxJQUFJLEVBQUUsU0FEbUI7QUFFekJDLElBQUFBLFNBQVMsRUFBRUMscUJBRmM7QUFHekJDLElBQUFBLFFBQVEsRUFBRSxrQkFBQ0MsSUFBRCxFQUFPQyxJQUFQLEVBQWdCO0FBQ3hCLDZDQUFZQSxJQUFaO0FBQWtCQyxRQUFBQSxRQUFRLEVBQUUsS0FBNUI7QUFBbUNYLFFBQUFBLE1BQU0sRUFBRTtBQUEzQztBQUNELEtBTHdCO0FBTXpCWSxJQUFBQSxRQUFRLEVBQUUsa0JBQUNoQixLQUFELEVBQVFjLElBQVIsRUFBaUI7QUFDekIsVUFBSSxDQUFDQSxJQUFMLEVBQVc7QUFDVCxlQUFPO0FBQ0xMLFVBQUFBLElBQUksRUFBRSxTQUREO0FBRUxOLFVBQUFBLE1BQU0sRUFBRSxDQUFDSCxLQUFELENBRkg7QUFHTEksVUFBQUEsTUFBTSxFQUFFLEtBSEg7QUFJTFcsVUFBQUEsUUFBUSxFQUFFO0FBSkwsU0FBUDtBQU1ELE9BUEQsTUFPTztBQUNMLCtCQUEyQmhCLGVBQWUsQ0FBQ0MsS0FBRCxFQUFRYyxJQUFJLENBQUNYLE1BQWIsQ0FBMUM7QUFBQSxZQUFRQyxNQUFSLG9CQUFRQSxNQUFSO0FBQUEsWUFBZ0JELE1BQWhCLG9CQUFnQkEsTUFBaEI7O0FBRUEsK0NBQVlXLElBQVo7QUFBa0JWLFVBQUFBLE1BQU0sRUFBTkEsTUFBbEI7QUFBMEJELFVBQUFBLE1BQU0sRUFBTkEsTUFBMUI7QUFBa0NZLFVBQUFBLFFBQVEsRUFBRSxDQUFDWDtBQUE3QztBQUNEO0FBQ0Y7QUFuQndCLEdBQVA7QUFBQSxDQUFiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFBvbHlnb24gZnJvbSAnLi9jb21wb25lbnQnO1xuaW1wb3J0IHsgZXF1YWxQb2ludHMgfSBmcm9tICcuLi8uLi91dGlscyc7XG5cbmV4cG9ydCBjb25zdCBhZGRQb2ludFRvQXJyYXkgPSAocG9pbnQsIGFycikgPT4ge1xuICBhcnIgPSBhcnIgfHwgW107XG5cbiAgaWYgKGFyci5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4geyBwb2ludHM6IFtwb2ludF0sIGNsb3NlZDogZmFsc2UgfTtcbiAgfSBlbHNlIGlmIChhcnIubGVuZ3RoID09PSAxKSB7XG4gICAgaWYgKGVxdWFsUG9pbnRzKHBvaW50LCBhcnJbMF0pKSB7XG4gICAgICByZXR1cm4geyBwb2ludHM6IGFyciwgY2xvc2VkOiBmYWxzZSB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4geyBwb2ludHM6IFsuLi5hcnIsIHBvaW50XSwgY2xvc2VkOiBmYWxzZSB9O1xuICAgIH1cbiAgfSBlbHNlIGlmIChhcnIubGVuZ3RoID49IDIpIHtcbiAgICBjb25zdCBjbG9zZWQgPSBlcXVhbFBvaW50cyhwb2ludCwgYXJyWzBdKTtcblxuICAgIGlmIChjbG9zZWQpIHtcbiAgICAgIHJldHVybiB7IHBvaW50czogYXJyLCBjbG9zZWQgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgaGFzUG9pbnQgPSAhIWFyci5maW5kKChwKSA9PiBlcXVhbFBvaW50cyhwLCBwb2ludCkpO1xuXG4gICAgICBpZiAoaGFzUG9pbnQpIHtcbiAgICAgICAgcmV0dXJuIHsgcG9pbnRzOiBhcnIsIGNsb3NlZDogZmFsc2UgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB7IHBvaW50czogWy4uLmFyciwgcG9pbnRdLCBjbG9zZWQ6IGZhbHNlIH07XG4gICAgICB9XG4gICAgfVxuICB9XG59O1xuXG5leHBvcnQgY29uc3QgdG9vbCA9ICgpID0+ICh7XG4gIHR5cGU6ICdwb2x5Z29uJyxcbiAgQ29tcG9uZW50OiBQb2x5Z29uLFxuICBjb21wbGV0ZTogKGRhdGEsIG1hcmspID0+IHtcbiAgICByZXR1cm4geyAuLi5tYXJrLCBidWlsZGluZzogZmFsc2UsIGNsb3NlZDogdHJ1ZSB9O1xuICB9LFxuICBhZGRQb2ludDogKHBvaW50LCBtYXJrKSA9PiB7XG4gICAgaWYgKCFtYXJrKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0eXBlOiAncG9seWdvbicsXG4gICAgICAgIHBvaW50czogW3BvaW50XSxcbiAgICAgICAgY2xvc2VkOiBmYWxzZSxcbiAgICAgICAgYnVpbGRpbmc6IHRydWUsXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB7IGNsb3NlZCwgcG9pbnRzIH0gPSBhZGRQb2ludFRvQXJyYXkocG9pbnQsIG1hcmsucG9pbnRzKTtcblxuICAgICAgcmV0dXJuIHsgLi4ubWFyaywgY2xvc2VkLCBwb2ludHMsIGJ1aWxkaW5nOiAhY2xvc2VkIH07XG4gICAgfVxuICB9LFxufSk7XG4iXX0=
106
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/tools/polygon/index.js"],"names":["addPointToArray","point","arr","length","points","closed","hasPoint","find","p","tool","type","Component","Polygon","complete","data","mark","building","addPoint"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;;;;;AAEO,IAAMA,eAAe,GAAG,SAAlBA,eAAkB,CAACC,KAAD,EAAQC,GAAR,EAAgB;AAC7CA,EAAAA,GAAG,GAAGA,GAAG,IAAI,EAAb;;AAEA,MAAIA,GAAG,CAACC,MAAJ,KAAe,CAAnB,EAAsB;AACpB,WAAO;AAAEC,MAAAA,MAAM,EAAE,CAACH,KAAD,CAAV;AAAmBI,MAAAA,MAAM,EAAE;AAA3B,KAAP;AACD,GAFD,MAEO,IAAIH,GAAG,CAACC,MAAJ,KAAe,CAAnB,EAAsB;AAC3B,QAAI,wBAAYF,KAAZ,EAAmBC,GAAG,CAAC,CAAD,CAAtB,CAAJ,EAAgC;AAC9B,aAAO;AAAEE,QAAAA,MAAM,EAAEF,GAAV;AAAeG,QAAAA,MAAM,EAAE;AAAvB,OAAP;AACD,KAFD,MAEO;AACL,aAAO;AAAED,QAAAA,MAAM,gDAAMF,GAAN,IAAWD,KAAX,EAAR;AAA2BI,QAAAA,MAAM,EAAE;AAAnC,OAAP;AACD;AACF,GANM,MAMA,IAAIH,GAAG,CAACC,MAAJ,IAAc,CAAlB,EAAqB;AAC1B,QAAME,MAAM,GAAG,wBAAYJ,KAAZ,EAAmBC,GAAG,CAAC,CAAD,CAAtB,CAAf;;AAEA,QAAIG,MAAJ,EAAY;AACV,aAAO;AAAED,QAAAA,MAAM,EAAEF,GAAV;AAAeG,QAAAA,MAAM,EAANA;AAAf,OAAP;AACD,KAFD,MAEO;AACL,UAAMC,QAAQ,GAAG,CAAC,CAACJ,GAAG,CAACK,IAAJ,CAAS,UAACC,CAAD;AAAA,eAAO,wBAAYA,CAAZ,EAAeP,KAAf,CAAP;AAAA,OAAT,CAAnB;;AAEA,UAAIK,QAAJ,EAAc;AACZ,eAAO;AAAEF,UAAAA,MAAM,EAAEF,GAAV;AAAeG,UAAAA,MAAM,EAAE;AAAvB,SAAP;AACD,OAFD,MAEO;AACL,eAAO;AAAED,UAAAA,MAAM,gDAAMF,GAAN,IAAWD,KAAX,EAAR;AAA2BI,UAAAA,MAAM,EAAE;AAAnC,SAAP;AACD;AACF;AACF;AACF,CA1BM;;;;AA4BA,IAAMI,IAAI,GAAG,SAAPA,IAAO;AAAA,SAAO;AACzBC,IAAAA,IAAI,EAAE,SADmB;AAEzBC,IAAAA,SAAS,EAAEC,qBAFc;AAGzBC,IAAAA,QAAQ,EAAE,kBAACC,IAAD,EAAOC,IAAP,EAAgB;AACxB,6CAAYA,IAAZ;AAAkBC,QAAAA,QAAQ,EAAE,KAA5B;AAAmCX,QAAAA,MAAM,EAAE;AAA3C;AACD,KALwB;AAMzBY,IAAAA,QAAQ,EAAE,kBAAChB,KAAD,EAAQc,IAAR,EAAiB;AACzB,UAAI,CAACA,IAAL,EAAW;AACT,eAAO;AACLL,UAAAA,IAAI,EAAE,SADD;AAELN,UAAAA,MAAM,EAAE,CAACH,KAAD,CAFH;AAGLI,UAAAA,MAAM,EAAE,KAHH;AAILW,UAAAA,QAAQ,EAAE;AAJL,SAAP;AAMD,OAPD,MAOO;AACL,+BAA2BhB,eAAe,CAACC,KAAD,EAAQc,IAAI,CAACX,MAAb,CAA1C;AAAA,YAAQC,MAAR,oBAAQA,MAAR;AAAA,YAAgBD,MAAhB,oBAAgBA,MAAhB;;AAEA,+CAAYW,IAAZ;AAAkBV,UAAAA,MAAM,EAANA,MAAlB;AAA0BD,UAAAA,MAAM,EAANA,MAA1B;AAAkCY,UAAAA,QAAQ,EAAE,CAACX;AAA7C;AACD;AACF;AAnBwB,GAAP;AAAA,CAAb","sourcesContent":["import Polygon from './component';\nimport { equalPoints } from '../../utils';\n\nexport const addPointToArray = (point, arr) => {\n arr = arr || [];\n\n if (arr.length === 0) {\n return { points: [point], closed: false };\n } else if (arr.length === 1) {\n if (equalPoints(point, arr[0])) {\n return { points: arr, closed: false };\n } else {\n return { points: [...arr, point], closed: false };\n }\n } else if (arr.length >= 2) {\n const closed = equalPoints(point, arr[0]);\n\n if (closed) {\n return { points: arr, closed };\n } else {\n const hasPoint = !!arr.find((p) => equalPoints(p, point));\n\n if (hasPoint) {\n return { points: arr, closed: false };\n } else {\n return { points: [...arr, point], closed: false };\n }\n }\n }\n};\n\nexport const tool = () => ({\n type: 'polygon',\n Component: Polygon,\n complete: (data, mark) => {\n return { ...mark, building: false, closed: true };\n },\n addPoint: (point, mark) => {\n if (!mark) {\n return {\n type: 'polygon',\n points: [point],\n closed: false,\n building: true,\n };\n } else {\n const { closed, points } = addPointToArray(point, mark.points);\n\n return { ...mark, closed, points, building: !closed };\n }\n },\n});\n"],"file":"index.js"}
@@ -33,7 +33,7 @@ var _styles = require("@material-ui/core/styles");
33
33
 
34
34
  var _plot = require("@pie-lib/plot");
35
35
 
36
- var _renderUi = require("@pie-lib/render-ui");
36
+ var _index = require("./../../shared/index");
37
37
 
38
38
  var utils = _interopRequireWildcard(require("../../utils"));
39
39
 
@@ -111,7 +111,7 @@ var Line = (0, _styles.withStyles)(function () {
111
111
  stroke: 'transparent',
112
112
  '&:hover': {
113
113
  strokeWidth: 7,
114
- stroke: _renderUi.color.defaults.SECONDARY
114
+ stroke: _index.color.defaults.SECONDARY
115
115
  }
116
116
  },
117
117
  disabled: _objectSpread(_objectSpread({}, (0, _styles2.disabled)('stroke')), {}, {
@@ -148,4 +148,4 @@ var _default = (0, _plot.gridDraggable)({
148
148
  })(Line);
149
149
 
150
150
  exports["default"] = _default;
151
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90b29scy9wb2x5Z29uL2xpbmUuanN4Il0sIm5hbWVzIjpbIlJhd0xpbmUiLCJwcm9wcyIsImdyYXBoUHJvcHMiLCJjbGFzc2VzIiwiZnJvbSIsInRvIiwiY2xhc3NOYW1lIiwiZGlzYWJsZWQiLCJjb3JyZWN0bmVzcyIsInJlc3QiLCJzY2FsZSIsIngiLCJ5IiwibGluZSIsIlJlYWN0IiwiQ29tcG9uZW50IiwiUHJvcFR5cGVzIiwic3RyaW5nIiwib2JqZWN0IiwidHlwZXMiLCJQb2ludFR5cGUiLCJHcmFwaFByb3BzVHlwZSIsImlzUmVxdWlyZWQiLCJib29sIiwiTGluZSIsInN0cm9rZVdpZHRoIiwidHJhbnNpdGlvbiIsInN0cm9rZSIsImNvbG9yIiwiZGVmYXVsdHMiLCJTRUNPTkRBUlkiLCJjb3JyZWN0IiwiaW5jb3JyZWN0IiwibWlzc2luZyIsImJvdW5kcyIsImRvbWFpbiIsInJhbmdlIiwiYXJlYSIsInV0aWxzIiwibGluZVRvQXJlYSIsImFuY2hvclBvaW50IiwiZnJvbURlbHRhIiwiZGVsdGEiLCJwb2ludCIsImFkZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7SUFFTUEsTzs7Ozs7Ozs7Ozs7O1dBZ0JKLGtCQUFTO0FBQ1Asd0JBQXFGLEtBQUtDLEtBQTFGO0FBQUEsVUFBUUMsVUFBUixlQUFRQSxVQUFSO0FBQUEsVUFBb0JDLE9BQXBCLGVBQW9CQSxPQUFwQjtBQUFBLFVBQTZCQyxJQUE3QixlQUE2QkEsSUFBN0I7QUFBQSxVQUFtQ0MsRUFBbkMsZUFBbUNBLEVBQW5DO0FBQUEsVUFBdUNDLFNBQXZDLGVBQXVDQSxTQUF2QztBQUFBLFVBQWtEQyxRQUFsRCxlQUFrREEsUUFBbEQ7QUFBQSxVQUE0REMsV0FBNUQsZUFBNERBLFdBQTVEO0FBQUEsVUFBNEVDLElBQTVFO0FBQ0Es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QyxLQUFSLEVBQWtCO0FBQzNCLFFBQVF0QyxJQUFSLEdBQXFCSCxLQUFyQixDQUFRRyxJQUFSO0FBQUEsUUFBY0MsRUFBZCxHQUFxQkosS0FBckIsQ0FBY0ksRUFBZDtBQUNBLFdBQU87QUFDTEQsTUFBQUEsSUFBSSxFQUFFa0MsS0FBSyxDQUFDSyxLQUFOLENBQVl2QyxJQUFaLEVBQWtCd0MsR0FBbEIsQ0FBc0JOLEtBQUssQ0FBQ0ssS0FBTixDQUFZRCxLQUFaLENBQXRCLENBREQ7QUFFTHJDLE1BQUFBLEVBQUUsRUFBRWlDLEtBQUssQ0FBQ0ssS0FBTixDQUFZdEMsRUFBWixFQUFnQnVDLEdBQWhCLENBQW9CTixLQUFLLENBQUNLLEtBQU4sQ0FBWUQsS0FBWixDQUFwQjtBQUZDLEtBQVA7QUFJRDtBQWhCMEIsQ0FBZCxFQWlCWmxCLElBakJZLEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IHdpdGhTdHlsZXMgfSBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9zdHlsZXMnO1xuaW1wb3J0IHsgdHlwZXMsIGdyaWREcmFnZ2FibGUgfSBmcm9tICdAcGllLWxpYi9wbG90JztcbmltcG9ydCB7IGNvbG9yIH0gZnJvbSAnQHBpZS1saWIvcmVuZGVyLXVpJztcbmltcG9ydCAqIGFzIHV0aWxzIGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgY29ycmVjdCwgZGlzYWJsZWQsIGluY29ycmVjdCwgbWlzc2luZyB9IGZyb20gJy4uL3NoYXJlZC9zdHlsZXMnO1xuXG5jbGFzcyBSYXdMaW5lIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgY2xhc3NlczogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBmcm9tOiB0eXBlcy5Qb2ludFR5cGUsXG4gICAgdG86IHR5cGVzLlBvaW50VHlwZSxcbiAgICBncmFwaFByb3BzOiB0eXBlcy5HcmFwaFByb3BzVHlwZS5pc1JlcXVpcmVkLFxuICAgIGRpc2FibGVkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBjb3JyZWN0bmVzczogUHJvcFR5cGVzLnN0cmluZyxcbiAgfTtcblxuICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgIGZyb206IHt9LFxuICAgIHRvOiB7fSxcbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgeyBncmFwaFByb3BzLCBjbGFzc2VzLCBmcm9tLCB0bywgY2xhc3NOYW1lLCBkaXNhYmxlZCwgY29ycmVjdG5lc3MsIC4uLnJlc3QgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyBzY2FsZSB9ID0gZ3JhcGhQcm9wcztcbiAgICByZXR1cm4gKFxuICAgICAgPGxpbmVcbiAgICAgICAgeDE9e3NjYWxlLngoZnJvbS54KX1cbiAgICAgICAgeTE9e3NjYWxlLnkoZnJvbS55KX1cbiAgICAgICAgeDI9e3NjYWxlLngodG8ueCl9XG4gICAgICAgIHkyPXtzY2FsZS55KHRvLnkpfVxuICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoY2xhc3Nlcy5saW5lLCBkaXNhYmxlZCAmJiBjbGFzc2VzLmRpc2FibGVkLCBjbGFzc05hbWUsIGNsYXNzZXNbY29ycmVjdG5lc3NdKX1cbiAgICAgICAgey4uLnJlc3R9XG4gICAgICAvPlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IExpbmUgPSB3aXRoU3R5bGVzKCgpID0+ICh7XG4gIGxpbmU6IHtcbiAgICBzdHJva2VXaWR0aDogNixcbiAgICB0cmFuc2l0aW9uOiAnc3Ryb2tlLXdpZHRoIDIwMG1zIGVhc2UtaW4sIHN0cm9rZSAyMDBtcyBlYXNlLWluJyxcbiAgICBzdHJva2U6ICd0cmFuc3BhcmVudCcsXG4gICAgJyY6aG92ZXInOiB7XG4gICAgICBzdHJva2VXaWR0aDogNyxcbiAgICAgIHN0cm9rZTogY29sb3IuZGVmYXVsdHMuU0VDT05EQVJZLFxuICAgIH0sXG4gIH0sXG4gIGRpc2FibGVkOiB7XG4gICAgLi4uZGlzYWJsZWQoJ3N0cm9rZScpLFxuICAgIHN0cm9rZVdpZHRoOiAyLFxuICB9LFxuICBjb3JyZWN0OiBjb3JyZWN0KCdzdG9rZScpLFxuICBpbmNvcnJlY3Q6IGluY29ycmVjdCgnc3Ryb2tlJyksXG4gIG1pc3Npbmc6IG1pc3NpbmcoJ3N0cm9rZScpLFxufSkpKFJhd0xpbmUpO1xuXG5leHBvcnQgZGVmYXVsdCBncmlkRHJhZ2dhYmxlKHtcbiAgYm91bmRzOiAocHJvcHMsIHsgZG9tYWluLCByYW5nZSB9KSA9PiB7XG4gICAgY29uc3QgeyBmcm9tLCB0byB9ID0gcHJvcHM7XG4gICAgY29uc3QgYXJlYSA9IHV0aWxzLmxpbmVUb0FyZWEoZnJvbSwgdG8pO1xuICAgIHJldHVybiB1dGlscy5ib3VuZHMoYXJlYSwgZG9tYWluLCByYW5nZSk7XG4gIH0sXG4gIGFuY2hvclBvaW50OiAocHJvcHMpID0+IHtcbiAgICBjb25zdCB7IGZyb20gfSA9IHByb3BzO1xuICAgIHJldHVybiBmcm9tO1xuICB9LFxuICBmcm9tRGVsdGE6IChwcm9wcywgZGVsdGEpID0+IHtcbiAgICBjb25zdCB7IGZyb20sIHRvIH0gPSBwcm9wcztcbiAgICByZXR1cm4ge1xuICAgICAgZnJvbTogdXRpbHMucG9pbnQoZnJvbSkuYWRkKHV0aWxzLnBvaW50KGRlbHRhKSksXG4gICAgICB0bzogdXRpbHMucG9pbnQodG8pLmFkZCh1dGlscy5wb2ludChkZWx0YSkpLFxuICAgIH07XG4gIH0sXG59KShMaW5lKTtcbiJdfQ==
151
+ //# sourceMappingURL=line.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/tools/polygon/line.jsx"],"names":["RawLine","props","graphProps","classes","from","to","className","disabled","correctness","rest","scale","x","y","line","React","Component","PropTypes","string","object","types","PointType","GraphPropsType","isRequired","bool","Line","strokeWidth","transition","stroke","color","defaults","SECONDARY","correct","incorrect","missing","bounds","domain","range","area","utils","lineToArea","anchorPoint","fromDelta","delta","point","add"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { types, gridDraggable } from '@pie-lib/plot';\nimport { color } from '../../../../render-ui/src/index';\nimport * as utils from '../../utils';\nimport classNames from 'classnames';\nimport { correct, disabled, incorrect, missing } from '../shared/styles';\n\nclass RawLine extends React.Component {\n static propTypes = {\n className: PropTypes.string,\n classes: PropTypes.object,\n from: types.PointType,\n to: types.PointType,\n graphProps: types.GraphPropsType.isRequired,\n disabled: PropTypes.bool,\n correctness: PropTypes.string,\n };\n\n static defaultProps = {\n from: {},\n to: {},\n };\n\n render() {\n const { graphProps, classes, from, to, className, disabled, correctness, ...rest } = this.props;\n const { scale } = graphProps;\n return (\n <line\n x1={scale.x(from.x)}\n y1={scale.y(from.y)}\n x2={scale.x(to.x)}\n y2={scale.y(to.y)}\n className={classNames(classes.line, disabled && classes.disabled, className, classes[correctness])}\n {...rest}\n />\n );\n }\n}\n\nexport const Line = withStyles(() => ({\n line: {\n strokeWidth: 6,\n transition: 'stroke-width 200ms ease-in, stroke 200ms ease-in',\n stroke: 'transparent',\n '&:hover': {\n strokeWidth: 7,\n stroke: color.defaults.SECONDARY,\n },\n },\n disabled: {\n ...disabled('stroke'),\n strokeWidth: 2,\n },\n correct: correct('stoke'),\n incorrect: incorrect('stroke'),\n missing: missing('stroke'),\n}))(RawLine);\n\nexport default gridDraggable({\n bounds: (props, { domain, range }) => {\n const { from, to } = props;\n const area = utils.lineToArea(from, to);\n return utils.bounds(area, domain, range);\n },\n anchorPoint: (props) => {\n const { from } = props;\n return from;\n },\n fromDelta: (props, delta) => {\n const { from, to } = props;\n return {\n from: utils.point(from).add(utils.point(delta)),\n to: utils.point(to).add(utils.point(delta)),\n };\n },\n})(Line);\n"],"file":"line.js"}
@@ -37,7 +37,7 @@ var utils = _interopRequireWildcard(require("../../utils"));
37
37
 
38
38
  var _classnames = _interopRequireDefault(require("classnames"));
39
39
 
40
- var _renderUi = require("@pie-lib/render-ui");
40
+ var _index = require("./../../shared/index");
41
41
 
42
42
  var _colorManipulator = require("@material-ui/core/styles/colorManipulator");
43
43
 
@@ -122,13 +122,13 @@ var Polygon = (0, _styles.withStyles)(function (theme) {
122
122
  fill: (0, _colorManipulator.fade)(theme.palette.primary.light, 0.2),
123
123
  // TODO hardcoded color
124
124
  strokeWidth: 2,
125
- stroke: _renderUi.color.defaults.SECONDARY_LIGHT
125
+ stroke: _index.color.defaults.SECONDARY_LIGHT
126
126
  },
127
127
  open: {
128
128
  fill: (0, _colorManipulator.fade)(theme.palette.primary.light, 0.0),
129
129
  // TODO hardcoded color
130
130
  strokeWidth: 2,
131
- stroke: _renderUi.color.defaults.SECONDARY_LIGHT,
131
+ stroke: _index.color.defaults.SECONDARY_LIGHT,
132
132
  pointerEvents: 'none'
133
133
  },
134
134
  gssClosed: {
@@ -168,4 +168,4 @@ var _default = (0, _plot.gridDraggable)({
168
168
  })(Polygon);
169
169
 
170
170
  exports["default"] = _default;
171
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90b29scy9wb2x5Z29uL3BvbHlnb24uanN4Il0sIm5hbWVzIjpbImdldFBvaW50U3RyaW5nIiwicG9pbnRzIiwic2NhbGUiLCJtYXAiLCJwIiwic2NhbGVkUG9pbnQiLCJ4IiwieSIsImpvaW4iLCJSYXdQb2x5Z29uIiwicHJvcHMiLCJjbGFzc2VzIiwiY2xhc3NOYW1lIiwiY29ycmVjdG5lc3MiLCJncmFwaFByb3BzIiwiY2xvc2VkIiwiaXNTb2x1dGlvbiIsInJlc3QiLCJwb2ludFN0cmluZyIsIlRhZyIsImdzc1NvbHV0aW9uIiwiZ3NzQ2xvc2VkIiwiUmVhY3QiLCJDb21wb25lbnQiLCJQcm9wVHlwZXMiLCJvYmplY3QiLCJzdHJpbmciLCJib29sIiwiYXJyYXlPZiIsInR5cGVzIiwiUG9pbnRUeXBlIiwiR3JhcGhQcm9wc1R5cGUiLCJpc1JlcXVpcmVkIiwiUG9seWdvbiIsInRoZW1lIiwiZmlsbCIsInBhbGV0dGUiLCJwcmltYXJ5IiwibGlnaHQiLCJzdHJva2VXaWR0aCIsInN0cm9rZSIsImNvbG9yIiwiZGVmYXVsdHMiLCJTRUNPTkRBUllfTElHSFQiLCJvcGVuIiwicG9pbnRlckV2ZW50cyIsImRpc2FibGVkIiwiY29ycmVjdCIsImluY29ycmVjdCIsImJvdW5kcyIsImRvbWFpbiIsInJhbmdlIiwiYXJlYSIsInV0aWxzIiwicG9seWdvblRvQXJlYSIsImFuY2hvclBvaW50IiwiZnJvbURlbHRhIiwiZGVsdGEiLCJwb2ludCIsImFkZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFTyxJQUFNQSxjQUFjLEdBQUcsU0FBakJBLGNBQWlCLENBQUNDLE1BQUQsRUFBU0MsS0FBVCxFQUFtQjtBQUMvQyxTQUFPLENBQUNELE1BQU0sSUFBSSxFQUFYLEVBQ0pFLEdBREksQ0FD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LENBQVosRUFBZXVELEdBQWYsQ0FBbUJOLEtBQUssQ0FBQ0ssS0FBTixDQUFZRCxLQUFaLENBQW5CLENBQVA7QUFBQSxLQUFYLENBQVA7QUFDRDtBQWQwQixDQUFkLEVBZVp4QixPQWZZLEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IHdpdGhTdHlsZXMgfSBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9zdHlsZXMnO1xuaW1wb3J0IHsgZ3JpZERyYWdnYWJsZSwgdHlwZXMgfSBmcm9tICdAcGllLWxpYi9wbG90JztcbmltcG9ydCAqIGFzIHV0aWxzIGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgY29sb3IgfSBmcm9tICdAcGllLWxpYi9yZW5kZXItdWknO1xuaW1wb3J0IHsgZmFkZSB9IGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL3N0eWxlcy9jb2xvck1hbmlwdWxhdG9yJztcbmltcG9ydCB7IGNvcnJlY3QsIGRpc2FibGVkLCBpbmNvcnJlY3QgfSBmcm9tICcuLi9zaGFyZWQvc3R5bGVzJztcblxuZXhwb3J0IGNvbnN0IGdldFBvaW50U3RyaW5nID0gKHBvaW50cywgc2NhbGUpID0+IHtcbiAgcmV0dXJuIChwb2ludHMgfHwgW10pXG4gICAgLm1hcCgocCkgPT4ge1xuICAgICAgY29uc3Qgc2NhbGVkUG9pbnQgPSB7XG4gICAgICAgIHg6IHNjYWxlLngocC54KSxcbiAgICAgICAgeTogc2NhbGUueShwLnkpLFxuICAgICAgfTtcbiAgICAgIHJldHVybiBgJHtzY2FsZWRQb2ludC54fSwke3NjYWxlZFBvaW50Lnl9YDtcbiAgICB9KVxuICAgIC5qb2luKCcgJyk7XG59O1xuXG5leHBvcnQgY2xhc3MgUmF3UG9seWdvbiBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgY2xhc3NlczogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgaXNTb2x1dGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgcG9pbnRzOiBQcm9wVHlwZXMuYXJyYXlPZih0eXBlcy5Qb2ludFR5cGUpLFxuICAgIGdyYXBoUHJvcHM6IHR5cGVzLkdyYXBoUHJvcHNUeXBlLmlzUmVxdWlyZWQsXG4gICAgY2xvc2VkOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICAgIGNvcnJlY3RuZXNzOiBQcm9wVHlwZXMuc3RyaW5nLFxuICB9O1xuXG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgcG9pbnRzOiBbXSxcbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgeyBwb2ludHMsIGNsYXNzZXMsIGNsYXNzTmFtZSwgY29ycmVjdG5lc3MsIGdyYXBoUHJvcHMsIGNsb3NlZCwgaXNTb2x1dGlvbiwgLi4ucmVzdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHNjYWxlIH0gPSBncmFwaFByb3BzO1xuXG4gICAgY29uc3QgcG9pbnRTdHJpbmcgPSBnZXRQb2ludFN0cmluZyhwb2ludHMsIHNjYWxlKTtcbiAgICBjb25zdCBUYWcgPSBjbG9zZWQgPyAncG9seWdvbicgOiAncG9seWxpbmUnO1xuICAgIHJldHVybiAoXG4gICAgICA8VGFnXG4gICAgICAgIHBvaW50cz17cG9pbnRTdHJpbmd9XG4gICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhpc1NvbHV0aW9uID8gY2xhc3Nlcy5nc3NTb2x1dGlvbiA6IGNsYXNzZXMuZ3NzQ2xvc2VkLCBjbGFzc2VzW2NvcnJlY3RuZXNzXSwgY2xhc3NOYW1lKX1cbiAgICAgICAgey4uLnJlc3R9XG4gICAgICAvPlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IFBvbHlnb24gPSB3aXRoU3R5bGVzKCh0aGVtZSkgPT4gKHtcbiAgY2xvc2VkOiB7XG4gICAgZmlsbDogZmFkZSh0aGVtZS5wYWxldHRlLnByaW1hcnkubGlnaHQsIDAuMiksIC8vIFRPRE8gaGFyZGNvZGVkIGNvbG9yXG4gICAgc3Ryb2tlV2lkdGg6IDIsXG4gICAgc3Ryb2tlOiBjb2xvci5kZWZhdWx0cy5TRUNPTkRBUllfTElHSFQsXG4gIH0sXG4gIG9wZW46IHtcbiAgICBmaWxsOiBmYWRlKHRoZW1lLnBhbGV0dGUucHJpbWFyeS5saWdodCwgMC4wKSwgLy8gVE9ETyBoYXJkY29kZWQgY29sb3JcbiAgICBzdHJva2VXaWR0aDogMixcbiAgICBzdHJva2U6IGNvbG9yLmRlZmF1bHRzLlNFQ09OREFSWV9MSUdIVCxcbiAgICBwb2ludGVyRXZlbnRzOiAnbm9uZScsXG4gIH0sXG4gIGdzc0Nsb3NlZDoge1xuICAgIGZpbGw6ICd0cmFuc3BhcmVudCcsXG4gICAgJyY6aG92ZXInOiB7XG4gICAgICBmaWxsOiAncmdiKDAsIDAsIDAsIDAuMjUpJyxcbiAgICB9LFxuICB9LFxuICBnc3NTb2x1dGlvbjoge1xuICAgIGZpbGw6ICdyZ2IoNjAsIDczLCAxNTAsIDAuNiknLFxuICB9LFxuICBkaXNhYmxlZDoge1xuICAgIC4uLmRpc2FibGVkKCdzdHJva2UnKSxcbiAgfSxcbiAgY29ycmVjdDoge1xuICAgIC4uLmNvcnJlY3QoJ3N0cm9rZScpLFxuICB9LFxuICBpbmNvcnJlY3Q6IHtcbiAgICAuLi5pbmNvcnJlY3QoJ3N0cm9rZScpLFxuICB9LFxufSkpKFJhd1BvbHlnb24pO1xuXG5leHBvcnQgZGVmYXVsdCBncmlkRHJhZ2dhYmxlKHtcbiAgYm91bmRzOiAocHJvcHMsIHsgZG9tYWluLCByYW5nZSB9KSA9PiB7XG4gICAgY29uc3QgeyBwb2ludHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IGFyZWEgPSB1dGlscy5wb2x5Z29uVG9BcmVhKHBvaW50cyk7XG4gICAgcmV0dXJuIHV0aWxzLmJvdW5kcyhhcmVhLCBkb21haW4sIHJhbmdlKTtcbiAgfSxcbiAgYW5jaG9yUG9pbnQ6IChwcm9wcykgPT4ge1xuICAgIGNvbnN0IHsgcG9pbnRzIH0gPSBwcm9wcztcbiAgICByZXR1cm4gcG9pbnRzWzBdO1xuICB9LFxuICBmcm9tRGVsdGE6IChwcm9wcywgZGVsdGEpID0+IHtcbiAgICBjb25zdCB7IHBvaW50cyB9ID0gcHJvcHM7XG5cbiAgICByZXR1cm4gcG9pbnRzLm1hcCgocCkgPT4gdXRpbHMucG9pbnQocCkuYWRkKHV0aWxzLnBvaW50KGRlbHRhKSkpO1xuICB9LFxufSkoUG9seWdvbik7XG4iXX0=
171
+ //# sourceMappingURL=polygon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/tools/polygon/polygon.jsx"],"names":["getPointString","points","scale","map","p","scaledPoint","x","y","join","RawPolygon","props","classes","className","correctness","graphProps","closed","isSolution","rest","pointString","Tag","gssSolution","gssClosed","React","Component","PropTypes","object","string","bool","arrayOf","types","PointType","GraphPropsType","isRequired","Polygon","theme","fill","palette","primary","light","strokeWidth","stroke","color","defaults","SECONDARY_LIGHT","open","pointerEvents","disabled","correct","incorrect","bounds","domain","range","area","utils","polygonToArea","anchorPoint","fromDelta","delta","point","add"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { gridDraggable, types } from '@pie-lib/plot';\nimport * as utils from '../../utils';\nimport classNames from 'classnames';\nimport { color } from '../../../../render-ui/src/index';\nimport { fade } from '@material-ui/core/styles/colorManipulator';\nimport { correct, disabled, incorrect } from '../shared/styles';\n\nexport const getPointString = (points, scale) => {\n return (points || [])\n .map((p) => {\n const scaledPoint = {\n x: scale.x(p.x),\n y: scale.y(p.y),\n };\n return `${scaledPoint.x},${scaledPoint.y}`;\n })\n .join(' ');\n};\n\nexport class RawPolygon extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n className: PropTypes.string,\n isSolution: PropTypes.bool,\n points: PropTypes.arrayOf(types.PointType),\n graphProps: types.GraphPropsType.isRequired,\n closed: PropTypes.bool.isRequired,\n correctness: PropTypes.string,\n };\n\n static defaultProps = {\n points: [],\n };\n\n render() {\n const { points, classes, className, correctness, graphProps, closed, isSolution, ...rest } = this.props;\n const { scale } = graphProps;\n\n const pointString = getPointString(points, scale);\n const Tag = closed ? 'polygon' : 'polyline';\n return (\n <Tag\n points={pointString}\n className={classNames(isSolution ? classes.gssSolution : classes.gssClosed, classes[correctness], className)}\n {...rest}\n />\n );\n }\n}\n\nexport const Polygon = withStyles((theme) => ({\n closed: {\n fill: fade(theme.palette.primary.light, 0.2), // TODO hardcoded color\n strokeWidth: 2,\n stroke: color.defaults.SECONDARY_LIGHT,\n },\n open: {\n fill: fade(theme.palette.primary.light, 0.0), // TODO hardcoded color\n strokeWidth: 2,\n stroke: color.defaults.SECONDARY_LIGHT,\n pointerEvents: 'none',\n },\n gssClosed: {\n fill: 'transparent',\n '&:hover': {\n fill: 'rgb(0, 0, 0, 0.25)',\n },\n },\n gssSolution: {\n fill: 'rgb(60, 73, 150, 0.6)',\n },\n disabled: {\n ...disabled('stroke'),\n },\n correct: {\n ...correct('stroke'),\n },\n incorrect: {\n ...incorrect('stroke'),\n },\n}))(RawPolygon);\n\nexport default gridDraggable({\n bounds: (props, { domain, range }) => {\n const { points } = props;\n const area = utils.polygonToArea(points);\n return utils.bounds(area, domain, range);\n },\n anchorPoint: (props) => {\n const { points } = props;\n return points[0];\n },\n fromDelta: (props, delta) => {\n const { points } = props;\n\n return points.map((p) => utils.point(p).add(utils.point(delta)));\n },\n})(Polygon);\n"],"file":"polygon.js"}
@@ -11,7 +11,7 @@ var _react = _interopRequireDefault(require("react"));
11
11
 
12
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
13
13
 
14
- var _renderUi = require("@pie-lib/render-ui");
14
+ var _index = require("./../../shared/index");
15
15
 
16
16
  var ArrowHead = function ArrowHead(_ref) {
17
17
  var size = _ref.size,
@@ -56,7 +56,7 @@ var ArrowMarker = function ArrowMarker(_ref2) {
56
56
  orient: "auto-start-reverse",
57
57
  className: className,
58
58
  style: {
59
- fill: _renderUi.color.defaults.BLACK
59
+ fill: _index.color.defaults.BLACK
60
60
  }
61
61
  }, /*#__PURE__*/_react["default"].createElement(ArrowHead, {
62
62
  size: size
@@ -72,4 +72,4 @@ ArrowMarker.propTypes = {
72
72
  ArrowMarker.defaultProps = {
73
73
  size: 5
74
74
  };
75
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90b29scy9zaGFyZWQvYXJyb3ctaGVhZC5qc3giXSwibmFtZXMiOlsiQXJyb3dIZWFkIiwic2l6ZSIsInRyYW5zZm9ybSIsInBvaW50cyIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsInN0cmluZyIsIm51bWJlciIsImRlZmF1bHRQcm9wcyIsImdlblVpZCIsInYiLCJNYXRoIiwicmFuZG9tIiwidG9GaXhlZCIsIkFycm93TWFya2VyIiwiaWQiLCJjbGFzc05hbWUiLCJmaWxsIiwiY29sb3IiLCJkZWZhdWx0cyIsIkJMQUNLIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFFTyxJQUFNQSxTQUFTLEdBQUcsU0FBWkEsU0FBWTtBQUFBLE1BQUdDLElBQUgsUUFBR0EsSUFBSDtBQUFBLE1BQVNDLFNBQVQsUUFBU0EsU0FBVDtBQUFBLE1BQW9CQyxNQUFwQixRQUFvQkEsTUFBcEI7QUFBQSxzQkFDdkI7QUFBUyxJQUFBLE1BQU0sRUFBRUEsTUFBTSxrQkFBV0YsSUFBWCxjQUFtQkEsSUFBSSxHQUFHLENBQTFCLGdCQUFpQ0EsSUFBakMsQ0FBdkI7QUFBZ0UsSUFBQSxTQUFTLEVBQUVDO0FBQTNFLElBRHVCO0FBQUEsQ0FBbEI7OztBQUdQRixTQUFTLENBQUNJLFNBQVYsR0FBc0I7QUFDcEJELEVBQUFBLE1BQU0sRUFBRUUsc0JBQVVDLE1BREU7QUFFcEJMLEVBQUFBLElBQUksRUFBRUksc0JBQVVFLE1BRkk7QUFHcEJMLEVBQUFBLFNBQVMsRUFBRUcsc0JBQVVDO0FBSEQsQ0FBdEI7QUFLQU4sU0FBUyxDQUFDUSxZQUFWLEdBQXlCO0FBQ3ZCTCxFQUFBQSxNQUFNLEVBQUUsRUFEZTtBQUV2QkYsRUFBQUEsSUFBSSxFQUFFLEVBRmlCO0FBR3ZCQyxFQUFBQSxTQUFTLEVBQUU7QUFIWSxDQUF6Qjs7QUFLTyxJQUFNTyxNQUFNLEdBQUcsU0FBVEEsTUFBUyxHQUFNO0FBQzFCLE1BQU1DLENBQUMsR0FBRyxDQUFDQyxJQUFJLENBQUNDLE1BQUwsS0FBZ0IsSUFBakIsRUFBdUJDLE9BQXZCLENBQStCLENBQS9CLENBQVY7QUFDQSx5QkFBZ0JILENBQWhCO0FBQ0QsQ0FITTs7OztBQUlBLElBQU1JLFdBQVcsR0FBRyxTQUFkQSxXQUFjLFFBQTZCO0FBQUEsTUFBMUJDLEVBQTBCLFNBQTFCQSxFQUEwQjtBQUFBLE1BQXRCZCxJQUFzQixTQUF0QkEsSUFBc0I7QUFBQSxNQUFoQmUsU0FBZ0IsU0FBaEJBLFNBQWdCO0FBQ3RELHNCQUNFO0FBQ0UsSUFBQSxFQUFFLEVBQUVELEVBRE47QUFFRSxJQUFBLE9BQU8sZ0JBQVNkLElBQVQsY0FBaUJBLElBQWpCLENBRlQ7QUFHRSxJQUFBLElBQUksRUFBRUEsSUFBSSxHQUFHLENBSGY7QUFJRSxJQUFBLElBQUksRUFBRUEsSUFBSSxHQUFHLENBSmY7QUFLRSxJQUFBLFdBQVcsRUFBRUEsSUFMZjtBQU1FLElBQUEsWUFBWSxFQUFFQSxJQU5oQjtBQU9FLElBQUEsTUFBTSxFQUFDLG9CQVBUO0FBUUUsSUFBQSxTQUFTLEVBQUVlLFNBUmI7QUFTRSxJQUFBLEtBQUssRUFBRTtBQUFFQyxNQUFBQSxJQUFJLEVBQUVDLGdCQUFNQyxRQUFOLENBQWVDO0FBQXZCO0FBVFQsa0JBV0UsZ0NBQUMsU0FBRDtBQUFXLElBQUEsSUFBSSxFQUFFbkI7QUFBakIsSUFYRixDQURGO0FBZUQsQ0FoQk07OztBQWlCUGEsV0FBVyxDQUFDVixTQUFaLEdBQXdCO0FBQ3RCVyxFQUFBQSxFQUFFLEVBQUVWLHNCQUFVQyxNQURRO0FBRXRCTCxFQUFBQSxJQUFJLEVBQUVJLHNCQUFVRSxNQUZNO0FBR3RCUyxFQUFBQSxTQUFTLEVBQUVYLHNCQUFVQztBQUhDLENBQXhCO0FBS0FRLFdBQVcsQ0FBQ04sWUFBWixHQUEyQjtBQUN6QlAsRUFBQUEsSUFBSSxFQUFFO0FBRG1CLENBQTNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyBjb2xvciB9IGZyb20gJ0BwaWUtbGliL3JlbmRlci11aSc7XG5cbmV4cG9ydCBjb25zdCBBcnJvd0hlYWQgPSAoeyBzaXplLCB0cmFuc2Zvcm0sIHBvaW50cyB9KSA9PiAoXG4gIDxwb2x5Z29uIHBvaW50cz17cG9pbnRzIHx8IGAwLDAgJHtzaXplfSwke3NpemUgLyAyfSAwLCR7c2l6ZX1gfSB0cmFuc2Zvcm09e3RyYW5zZm9ybX0gLz5cbik7XG5BcnJvd0hlYWQucHJvcFR5cGVzID0ge1xuICBwb2ludHM6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHNpemU6IFByb3BUeXBlcy5udW1iZXIsXG4gIHRyYW5zZm9ybTogUHJvcFR5cGVzLnN0cmluZyxcbn07XG5BcnJvd0hlYWQuZGVmYXVsdFByb3BzID0ge1xuICBwb2ludHM6ICcnLFxuICBzaXplOiAxMCxcbiAgdHJhbnNmb3JtOiAnJyxcbn07XG5leHBvcnQgY29uc3QgZ2VuVWlkID0gKCkgPT4ge1xuICBjb25zdCB2ID0gKE1hdGgucmFuZG9tKCkgKiAxMDAwKS50b0ZpeGVkKDApO1xuICByZXR1cm4gYGFycm93LSR7dn1gO1xufTtcbmV4cG9ydCBjb25zdCBBcnJvd01hcmtlciA9ICh7IGlkLCBzaXplLCBjbGFzc05hbWUgfSkgPT4ge1xuICByZXR1cm4gKFxuICAgIDxtYXJrZXJcbiAgICAgIGlkPXtpZH1cbiAgICAgIHZpZXdCb3g9e2AwIDAgJHtzaXplfSAke3NpemV9YH1cbiAgICAgIHJlZlg9e3NpemUgLyAyfVxuICAgICAgcmVmWT17c2l6ZSAvIDJ9XG4gICAgICBtYXJrZXJXaWR0aD17c2l6ZX1cbiAgICAgIG1hcmtlckhlaWdodD17c2l6ZX1cbiAgICAgIG9yaWVudD1cImF1dG8tc3RhcnQtcmV2ZXJzZVwiXG4gICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgIHN0eWxlPXt7IGZpbGw6IGNvbG9yLmRlZmF1bHRzLkJMQUNLIH19XG4gICAgPlxuICAgICAgPEFycm93SGVhZCBzaXplPXtzaXplfSAvPlxuICAgIDwvbWFya2VyPlxuICApO1xufTtcbkFycm93TWFya2VyLnByb3BUeXBlcyA9IHtcbiAgaWQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHNpemU6IFByb3BUeXBlcy5udW1iZXIsXG4gIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbn07XG5BcnJvd01hcmtlci5kZWZhdWx0UHJvcHMgPSB7XG4gIHNpemU6IDUsXG59O1xuIl19
75
+ //# sourceMappingURL=arrow-head.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/tools/shared/arrow-head.jsx"],"names":["ArrowHead","size","transform","points","propTypes","PropTypes","string","number","defaultProps","genUid","v","Math","random","toFixed","ArrowMarker","id","className","fill","color","defaults","BLACK"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AAEO,IAAMA,SAAS,GAAG,SAAZA,SAAY;AAAA,MAAGC,IAAH,QAAGA,IAAH;AAAA,MAASC,SAAT,QAASA,SAAT;AAAA,MAAoBC,MAApB,QAAoBA,MAApB;AAAA,sBACvB;AAAS,IAAA,MAAM,EAAEA,MAAM,kBAAWF,IAAX,cAAmBA,IAAI,GAAG,CAA1B,gBAAiCA,IAAjC,CAAvB;AAAgE,IAAA,SAAS,EAAEC;AAA3E,IADuB;AAAA,CAAlB;;;AAGPF,SAAS,CAACI,SAAV,GAAsB;AACpBD,EAAAA,MAAM,EAAEE,sBAAUC,MADE;AAEpBL,EAAAA,IAAI,EAAEI,sBAAUE,MAFI;AAGpBL,EAAAA,SAAS,EAAEG,sBAAUC;AAHD,CAAtB;AAKAN,SAAS,CAACQ,YAAV,GAAyB;AACvBL,EAAAA,MAAM,EAAE,EADe;AAEvBF,EAAAA,IAAI,EAAE,EAFiB;AAGvBC,EAAAA,SAAS,EAAE;AAHY,CAAzB;;AAKO,IAAMO,MAAM,GAAG,SAATA,MAAS,GAAM;AAC1B,MAAMC,CAAC,GAAG,CAACC,IAAI,CAACC,MAAL,KAAgB,IAAjB,EAAuBC,OAAvB,CAA+B,CAA/B,CAAV;AACA,yBAAgBH,CAAhB;AACD,CAHM;;;;AAIA,IAAMI,WAAW,GAAG,SAAdA,WAAc,QAA6B;AAAA,MAA1BC,EAA0B,SAA1BA,EAA0B;AAAA,MAAtBd,IAAsB,SAAtBA,IAAsB;AAAA,MAAhBe,SAAgB,SAAhBA,SAAgB;AACtD,sBACE;AACE,IAAA,EAAE,EAAED,EADN;AAEE,IAAA,OAAO,gBAASd,IAAT,cAAiBA,IAAjB,CAFT;AAGE,IAAA,IAAI,EAAEA,IAAI,GAAG,CAHf;AAIE,IAAA,IAAI,EAAEA,IAAI,GAAG,CAJf;AAKE,IAAA,WAAW,EAAEA,IALf;AAME,IAAA,YAAY,EAAEA,IANhB;AAOE,IAAA,MAAM,EAAC,oBAPT;AAQE,IAAA,SAAS,EAAEe,SARb;AASE,IAAA,KAAK,EAAE;AAAEC,MAAAA,IAAI,EAAEC,aAAMC,QAAN,CAAeC;AAAvB;AATT,kBAWE,gCAAC,SAAD;AAAW,IAAA,IAAI,EAAEnB;AAAjB,IAXF,CADF;AAeD,CAhBM;;;AAiBPa,WAAW,CAACV,SAAZ,GAAwB;AACtBW,EAAAA,EAAE,EAAEV,sBAAUC,MADQ;AAEtBL,EAAAA,IAAI,EAAEI,sBAAUE,MAFM;AAGtBS,EAAAA,SAAS,EAAEX,sBAAUC;AAHC,CAAxB;AAKAQ,WAAW,CAACN,YAAZ,GAA2B;AACzBP,EAAAA,IAAI,EAAE;AADmB,CAA3B","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { color } from '../../../../render-ui/src/index';\n\nexport const ArrowHead = ({ size, transform, points }) => (\n <polygon points={points || `0,0 ${size},${size / 2} 0,${size}`} transform={transform} />\n);\nArrowHead.propTypes = {\n points: PropTypes.string,\n size: PropTypes.number,\n transform: PropTypes.string,\n};\nArrowHead.defaultProps = {\n points: '',\n size: 10,\n transform: '',\n};\nexport const genUid = () => {\n const v = (Math.random() * 1000).toFixed(0);\n return `arrow-${v}`;\n};\nexport const ArrowMarker = ({ id, size, className }) => {\n return (\n <marker\n id={id}\n viewBox={`0 0 ${size} ${size}`}\n refX={size / 2}\n refY={size / 2}\n markerWidth={size}\n markerHeight={size}\n orient=\"auto-start-reverse\"\n className={className}\n style={{ fill: color.defaults.BLACK }}\n >\n <ArrowHead size={size} />\n </marker>\n );\n};\nArrowMarker.propTypes = {\n id: PropTypes.string,\n size: PropTypes.number,\n className: PropTypes.string,\n};\nArrowMarker.defaultProps = {\n size: 5,\n};\n"],"file":"arrow-head.js"}
@@ -43,7 +43,7 @@ var _markLabel = _interopRequireDefault(require("../../../mark-label"));
43
43
 
44
44
  var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
45
45
 
46
- var _renderUi = require("@pie-lib/render-ui");
46
+ var _index = require("./../../../shared/index");
47
47
 
48
48
  var _utils = require("../../../utils");
49
49
 
@@ -588,31 +588,31 @@ var styles = {
588
588
  line: function line() {
589
589
  return {
590
590
  fill: 'transparent',
591
- stroke: _renderUi.color.defaults.BLACK,
591
+ stroke: _index.color.defaults.BLACK,
592
592
  strokeWidth: 4,
593
593
  transition: 'stroke 200ms ease-in, stroke-width 200ms ease-in',
594
594
  '&:hover': {
595
595
  strokeWidth: 6,
596
- stroke: _renderUi.color.defaults.BLACK
596
+ stroke: _index.color.defaults.BLACK
597
597
  }
598
598
  };
599
599
  },
600
600
  dashedLine: function dashedLine() {
601
601
  return {
602
602
  fill: 'transparent',
603
- stroke: _renderUi.color.defaults.BLACK,
603
+ stroke: _index.color.defaults.BLACK,
604
604
  strokeWidth: 4,
605
605
  transition: 'stroke 200ms ease-in, stroke-width 200ms ease-in',
606
606
  '&:hover': {
607
607
  strokeWidth: 6,
608
- stroke: _renderUi.color.defaults.BLACK
608
+ stroke: _index.color.defaults.BLACK
609
609
  },
610
610
  strokeDasharray: '3,3'
611
611
  };
612
612
  },
613
613
  arrow: function arrow() {
614
614
  return {
615
- fill: _renderUi.color.defaults.SECONDARY
615
+ fill: _index.color.defaults.SECONDARY
616
616
  };
617
617
  },
618
618
  disabledArrow: function disabledArrow() {
@@ -634,4 +634,4 @@ var styles = {
634
634
  }
635
635
  };
636
636
  exports.styles = styles;
637
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90b29scy9zaGFyZWQvbGluZS9pbmRleC5qc3giXSwibmFtZXMiOlsibGluZVRvb2wiLCJ0eXBlIiwiQ29tcG9uZW50IiwiYWRkUG9pbnQiLCJwb2ludCIsIm1hcmsiLCJyb290IiwiYnVpbGRpbmciLCJmcm9tIiwidG8iLCJsaW5lVG9vbENvbXBvbmVudCIsInByb3BzIiwic2V0U3RhdGUiLCJvbkNoYW5nZSIsInVwZGF0ZSIsInN0YXRlIiwidW5kZWZpbmVkIiwic2hvdWxkTm90Q2hhbmdlIiwieSIsIm1pZGRsZSIsImdyYXBoUHJvcHMiLCJvbkNsaWNrIiwibGFiZWxOb2RlIiwibGFiZWxNb2RlRW5hYmxlZCIsImNvb3JkaW5hdGVzT25Ib3ZlciIsImdzc0xpbmVEYXRhIiwiaXNCYWNrZ3JvdW5kIiwiZGlzYWJsZWQiLCJjb3JyZWN0bmVzcyIsImZpbGwiLCJjaGFuZ2VNYXJrIiwiY2hhbmdlTWFya1Byb3BzIiwic3RhcnREcmFnIiwic3RvcERyYWciLCJSZWFjdCIsInR5cGVzIiwiVG9vbFByb3BUeXBlRmllbGRzIiwiR3JhcGhQcm9wc1R5cGUiLCJpc1JlcXVpcmVkIiwiZHJhZ09wdHMiLCJib3VuZHMiLCJkb21haW4iLCJyYW5nZSIsImFyZWEiLCJ1dGlscyIsImxpbmVUb0FyZWEiLCJhbmNob3JQb2ludCIsImZyb21EZWx0YSIsImRlbHRhIiwiYWRkIiwibGluZUJhc2UiLCJDb21wIiwib3B0cyIsIkRyYWdnYWJsZUNvbXAiLCJGcm9tUG9pbnQiLCJCYXNlUG9pbnQiLCJUb1BvaW50IiwiTGluZUJhc2UiLCJkcmFnZ2VkRnJvbSIsImRyYWdnZWRUbyIsImxhYmVsIiwidXBkYXRlZCIsIm9uQ2hhbmdlUG9pbnQiLCJkYXRhIiwiaW5wdXQiLCJmb2N1cyIsIm9uRHJhZ1N0YXJ0Iiwib25EcmFnU3RvcCIsImNvbW1vbiIsInNlbGVjdGVkVG9vbCIsImFuZ2xlIiwidHJpZyIsInRvRGVncmVlcyIsImZyb21MYWJlbE5vZGUiLCJ0b0xhYmVsTm9kZSIsImxpbmVMYWJlbE5vZGUiLCJoYXNPd25Qcm9wZXJ0eSIsIlJlYWN0RE9NIiwiY3JlYXRlUG9ydGFsIiwiciIsImxhYmVsQ2hhbmdlIiwieCIsImRyYWdDb21wIiwiY2xpY2tQb2ludCIsImRyYWdGcm9tIiwiZHJhZ1RvIiwiUHJvcFR5cGVzIiwiYm9vbCIsIlBvaW50VHlwZSIsImZ1bmMiLCJzdHJpbmciLCJvYmplY3QiLCJzdHlsZXMiLCJsaW5lIiwic3Ryb2tlIiwiY29sb3IiLCJkZWZhdWx0cyIsIkJMQUNLIiwic3Ryb2tlV2lkdGgiLCJ0cmFuc2l0aW9uIiwiZGFzaGVkTGluZSIsInN0cm9rZURhc2hhcnJheSIsImFycm93IiwiU0VDT05EQVJZIiwiZGlzYWJsZWRBcnJvdyIsImNvcnJlY3QiLCJ0aGVtZSIsImtleSIsImluY29ycmVjdCIsIm1pc3NpbmciXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7OztBQUVPLElBQU1BLFFBQVEsR0FBRyxTQUFYQSxRQUFXLENBQUNDLElBQUQsRUFBT0MsU0FBUDtBQUFBLFNBQXFCO0FBQUEsV0FBTztBQUNsREQsTUFBQUEsSUFBSSxFQUFKQSxJQURrRDtBQUVsREMsTUFBQUEsU0FBUyxFQUFUQSxTQUZrRDtBQUdsREMsTUFBQUEsUUFBUSxFQUFFLGtCQUFDQyxLQUFELEVBQVFDLElBQVIsRUFBaUI7QUFDekIsWUFBSUEsSUFBSSxJQUFJLHdCQUFZQSxJQUFJLENBQUNDLElBQWpCLEVBQXVCRixLQUF2QixDQUFaLEVBQTJDO0FBQ3pDLGlCQUFPQyxJQUFQO0FBQ0Q7O0FBRUQsWUFBSSxDQUFDQSxJQUFMLEVBQVc7QUFDVCxpQkFBTztBQUNMSixZQUFBQSxJQUFJLEVBQUpBLElBREs7QUFFTE0sWUFBQUEsUUFBUSxFQUFFLElBRkw7QUFHTEMsWUFBQUEsSUFBSSxFQUFF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O0FBQ1p6RSxNQUFBQSxJQUFJLEVBQUVrRSxnQkFBTUMsUUFBTixDQUFlTztBQURULEtBQVA7QUFBQSxHQXRCYTtBQXlCcEJDLEVBQUFBLGFBQWEsRUFBRTtBQUFBLDZCQUNWLHVCQURVO0FBQUEsR0F6Qks7QUE0QnBCN0UsRUFBQUEsUUFBUSxFQUFFO0FBQUEsMkNBQ0wsc0JBQVMsUUFBVCxDQURLO0FBRVJ1RSxNQUFBQSxXQUFXLEVBQUU7QUFGTDtBQUFBLEdBNUJVO0FBZ0NwQk8sRUFBQUEsT0FBTyxFQUFFLGlCQUFDQyxLQUFELEVBQVFDLEdBQVI7QUFBQSw2QkFDSixxQkFBUUEsR0FBUixDQURJO0FBQUEsR0FoQ1c7QUFtQ3BCQyxFQUFBQSxTQUFTLEVBQUUsbUJBQUNGLEtBQUQsRUFBUUMsR0FBUjtBQUFBLDZCQUNOLHVCQUFVQSxHQUFWLENBRE07QUFBQSxHQW5DUztBQXNDcEJFLEVBQUFBLE9BQU8sRUFBRSxpQkFBQ0gsS0FBRCxFQUFRQyxHQUFSO0FBQUEsNkJBQ0oscUJBQVFBLEdBQVIsQ0FESTtBQUFBO0FBdENXLENBQWYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IGlzRXF1YWwgZnJvbSAnbG9kYXNoL2lzRXF1YWwnO1xuaW1wb3J0IGNsb25lRGVlcCBmcm9tICdsb2Rhc2gvY2xvbmVEZWVwJztcbmltcG9ydCB7IEJhc2VQb2ludCB9IGZyb20gJy4uL3BvaW50JztcbmltcG9ydCB7IHR5cGVzLCB1dGlscywgZ3JpZERyYWdnYWJsZSwgdHJpZyB9IGZyb20gJ0BwaWUtbGliL3Bsb3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IGRpc2FibGVkLCBjb3JyZWN0LCBpbmNvcnJlY3QsIG1pc3NpbmcgfSBmcm9tICcuLi9zdHlsZXMnO1xuaW1wb3J0IFJlYWN0RE9NIGZyb20gJ3JlYWN0LWRvbSc7XG5pbXBvcnQgTWFya0xhYmVsIGZyb20gJy4uLy4uLy4uL21hcmstbGFiZWwnO1xuaW1wb3J0IGlzRW1wdHkgZnJvbSAnbG9kYXNoL2lzRW1wdHknO1xuaW1wb3J0IHsgY29sb3IgfSBmcm9tICdAcGllLWxpYi9yZW5kZXItdWknO1xuaW1wb3J0IHsgZ2V0TWlkZGxlT2ZUd29Qb2ludHMsIGVxdWFsUG9pbnRzLCBzYW1lQXhlcyB9IGZyb20gJy4uLy4uLy4uL3V0aWxzJztcblxuZXhwb3J0IGNvbnN0IGxpbmVUb29sID0gKHR5cGUsIENvbXBvbmVudCkgPT4gKCkgPT4gKHtcbiAgdHlwZSxcbiAgQ29tcG9uZW50LFxuICBhZGRQb2ludDogKHBvaW50LCBtYXJrKSA9PiB7XG4gICAgaWYgKG1hcmsgJiYgZXF1YWxQb2ludHMobWFyay5yb290LCBwb2ludCkpIHtcbiAgICAgIHJldHVybiBtYXJrO1xuICAgIH1cblxuICAgIGlmICghbWFyaykge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdHlwZSxcbiAgICAgICAgYnVpbGRpbmc6IHRydWUsXG4gICAgICAgIGZyb206IHBvaW50LFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBpZiAoZXF1YWxQb2ludHMocG9pbnQsIG1hcmsuZnJvbSkpIHtcbiAgICAgIHJldHVybiB7IC4uLm1hcmsgfTtcbiAgICB9XG5cbiAgICByZXR1cm4geyAuLi5tYXJrLCBidWlsZGluZzogZmFsc2UsIHRvOiBwb2ludCB9O1xuICB9LFxufSk7XG5cbmV4cG9ydCBjb25zdCBsaW5lVG9vbENvbXBvbmVudCA9IChDb21wb25lbnQpID0+IHtcbiAgcmV0dXJuIGNsYXNzIExpbmVUb29sQ29tcG9uZW50IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgICAgLi4udHlwZXMuVG9vbFByb3BUeXBlRmllbGRzLFxuICAgICAgZ3JhcGhQcm9wczogdHlwZXMuR3JhcGhQcm9wc1R5cGUuaXNSZXF1aXJlZCxcbiAgICB9O1xuXG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICAgIHN1cGVyKHByb3BzKTtcbiAgICAgIHRoaXMuc3RhdGUgPSB7fTtcbiAgICB9XG5cbiAgICBzdGFydERyYWcgPSAoKSA9PiB0aGlzLnNldFN0YXRlKHsgbWFyazogeyAuLi50aGlzLnByb3BzLm1hcmsgfSB9KTtcblxuICAgIHN0b3BEcmFnID0gKCkgPT4ge1xuICAgICAgY29uc3QgeyBvbkNoYW5nZSwgbWFyayB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGNvbnN0IHVwZGF0ZSA9IHsgLi4udGhpcy5zdGF0ZS5tYXJrIH07XG5cbiAgICAgIHRoaXMuc2V0U3RhdGUoeyBtYXJrOiB1bmRlZmluZWQgfSwgKCkgPT4ge1xuICAgICAgICBjb25zdCB7IHR5cGUgfSA9IHVwZGF0ZTtcbiAgICAgICAgbGV0IHNob3VsZE5vdENoYW5nZSA9XG4gICAgICAgICAgdHlwZSAmJlxuICAgICAgICAgICh0eXBlID09PSAncGFyYWJvbGEnIHx8IHR5cGUgPT09ICdzaW5lJyB8fCB0eXBlID09PSAnYWJzb2x1dGUnIHx8IHR5cGUgPT09ICdleHBvbmVudGlhbCcpICYmXG4gICAgICAgICAgc2FtZUF4ZXModXBkYXRlLmZyb20sIHVwZGF0ZS50byk7XG4gICAgICAgIGlmICghc2hvdWxkTm90Q2hhbmdlICYmIHR5cGUgJiYgdHlwZSA9PT0gJ2V4cG9uZW50aWFsJyAmJiB1cGRhdGUuZnJvbSAmJiB1cGRhdGUudG8pIHtcbiAgICAgICAgICBzaG91bGROb3RDaGFuZ2UgPSB1cGRhdGUuZnJvbS55ID09PSAwIHx8IHVwZGF0ZS50by55ID09PSAwIHx8IHVwZGF0ZS5mcm9tLnkgKiB1cGRhdGUudG8ueSA8IDA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc0VxdWFsKG1hcmssIHVwZGF0ZSkgJiYgIXNob3VsZE5vdENoYW5nZSkge1xuICAgICAgICAgIG9uQ2hhbmdlKG1hcmssIHVwZGF0ZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBjaGFuZ2VNYXJrID0gKHsgZnJvbSwgdG8sIG1pZGRsZSB9KSA9PiB7XG4gICAgICBsZXQgbWFyayA9IHsgLi4udGhpcy5zdGF0ZS5tYXJrLCBmcm9tLCB0byB9O1xuXG4gICAgICBpZiAobWlkZGxlKSB7XG4gICAgICAgIG1hcmsgPSB7IC4uLm1hcmssIG1pZGRsZSB9O1xuICAgICAgfVxuXG4gICAgICB0aGlzLnNldFN0YXRlKHsgbWFyayB9KTtcbiAgICB9O1xuXG4gICAgY2hhbmdlTWFya1Byb3BzID0gKHsgZnJvbSwgdG8sIG1pZGRsZSB9KSA9PiB7XG4gICAgICBjb25zdCB7IG9uQ2hhbmdlLCBtYXJrIH0gPSB0aGlzLnByb3BzO1xuICAgICAgbGV0IHVwZGF0ZSA9IHsgLi4ubWFyaywgLi4udGhpcy5zdGF0ZS5tYXJrIH07XG5cbiAgICAgIGlmIChmcm9tKSB7XG4gICAgICAgIHVwZGF0ZSA9IHsgLi4udXBkYXRlLCBmcm9tIH07XG4gICAgICB9XG5cbiAgICAgIGlmICh0bykge1xuICAgICAgICB1cGRhdGUgPSB7IC4uLnVwZGF0ZSwgdG8gfTtcbiAgICAgIH1cblxuICAgICAgaWYgKG1pZGRsZSkge1xuICAgICAgICB1cGRhdGUgPSB7IC4uLnVwZGF0ZSwgbWlkZGxlIH07XG4gICAgICB9XG5cbiAgICAgIGlmICghaXNFcXVhbChtYXJrLCB1cGRhdGUpKSB7XG4gICAgICAgIG9uQ2hhbmdlKG1hcmssIHVwZGF0ZSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHJlbmRlcigpIHtcbiAgICAgIGNvbnN0IHsgZ3JhcGhQcm9wcywgb25DbGljaywgbGFiZWxOb2RlLCBsYWJlbE1vZGVFbmFibGVkLCBjb29yZGluYXRlc09uSG92ZXIsIGdzc0xpbmVEYXRhIH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3QgbWFyayA9IHRoaXMuc3RhdGUubWFyayA/IHRoaXMuc3RhdGUubWFyayA6IHRoaXMucHJvcHMubWFyaztcblxuICAgICAgY29uc3QgZnJvbSA9IGNsb25lRGVlcChtYXJrLmZyb20pO1xuICAgICAgY29uc3QgdG8gPSBjbG9uZURlZXAobWFyay50byk7XG4gICAgICBjb25zdCBtaWRkbGUgPSBjbG9uZURlZXAobWFyay5taWRkbGUpO1xuXG4gICAgICAvLyBTRVQgRElTQUJMRURcbiAgICAgIC8vIGlmIGl0J3MgYSBiYWNrZ3JvdW5kIG1hcmssIHdlIG5lZWQgdG8gZm9yY2UgZGlzYWJsZSBpdFxuICAgICAgaWYgKGZyb20gJiYgbWFyay5pc0JhY2tncm91bmQpIHtcbiAgICAgICAgZnJvbS5kaXNhYmxlZCA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIGlmICh0byAmJiBtYXJrLmlzQmFja2dyb3VuZCkge1xuICAgICAgICB0by5kaXNhYmxlZCA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChtaWRkbGUgJiYgbWFyay5pc0JhY2tncm91bmQpIHtcbiAgICAgICAgbWlkZGxlLmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPENvbXBvbmVudFxuICAgICAgICAgIGRpc2FibGVkPXttYXJrLmRpc2FibGVkfVxuICAgICAgICAgIGNvb3JkaW5hdGVzT25Ib3Zlcj17Y29vcmRpbmF0ZXNPbkhvdmVyfVxuICAgICAgICAgIGNvcnJlY3RuZXNzPXttYXJrLmNvcnJlY3RuZXNzfVxuICAgICAgICAgIGZyb209e2Zyb219XG4gICAgICAgICAgdG89e3RvfVxuICAgICAgICAgIG1pZGRsZT17bWlkZGxlfVxuICAgICAgICAgIGdyYXBoUHJvcHM9e2dyYXBoUHJvcHN9XG4gICAgICAgICAgZmlsbD17bWFyayAmJiBtYXJrLmZpbGx9XG4gICAgICAgICAgZ3NzTGluZURhdGE9e2dzc0xpbmVEYXRhfVxuICAgICAgICAgIG9uQ2hhbmdlPXt0aGlzLmNoYW5nZU1hcmt9XG4gICAgICAgICAgY2hhbmdlTWFya1Byb3BzPXt0aGlzLmNoYW5nZU1hcmtQcm9wc31cbiAgICAgICAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgICAgICAgIG9uRHJhZ1N0YXJ0PXt0aGlzLnN0YXJ0RHJhZ31cbiAgICAgICAgICBvbkRyYWdTdG9wPXt0aGlzLnN0b3BEcmFnfVxuICAgICAgICAgIGxhYmVsTm9kZT17bGFiZWxOb2RlfVxuICAgICAgICAgIGxhYmVsTW9kZUVuYWJsZWQ9e2xhYmVsTW9kZUVuYWJsZWR9XG4gICAgICAgIC8+XG4gICAgICApO1xuICAgIH1cbiAgfTtcbn07XG5cbmNvbnN0IGRyYWdPcHRzID0gKCkgPT4gKHtcbiAgYm91bmRzOiAocHJvcHMsIHsgZG9tYWluLCByYW5nZSB9KSA9PiB7XG4gICAgY29uc3QgYXJlYSA9IHV0aWxzLmxpbmVUb0FyZWEocHJvcHMuZnJvbSwgcHJvcHMudG8pO1xuICAgIHJldHVybiB1dGlscy5ib3VuZHMoYXJlYSwgZG9tYWluLCByYW5nZSk7XG4gIH0sXG4gIGFuY2hvclBvaW50OiAocHJvcHMpID0+IHtcbiAgICBjb25zdCB7IGZyb20gfSA9IHByb3BzO1xuICAgIHJldHVybiBmcm9tO1xuICB9LFxuICBmcm9tRGVsdGE6IChwcm9wcywgZGVsdGEpID0+IHtcbiAgICBjb25zdCB7IGZyb20sIHRvIH0gPSBwcm9wcztcbiAgICByZXR1cm4ge1xuICAgICAgZnJvbTogdXRpbHMucG9pbnQoZnJvbSkuYWRkKHV0aWxzLnBvaW50KGRlbHRhKSksXG4gICAgICB0bzogdXRpbHMucG9pbnQodG8pLmFkZCh1dGlscy5wb2ludChkZWx0YSkpLFxuICAgIH07XG4gIH0sXG59KTtcblxuZXhwb3J0IGNvbnN0IGxpbmVCYXNlID0gKENvbXAsIG9wdHMpID0+IHtcbiAgY29uc3QgRHJhZ2dhYmxlQ29tcCA9IGdyaWREcmFnZ2FibGUoZHJhZ09wdHMoKSkoQ29tcCk7XG5cbiAgY29uc3QgRnJvbVBvaW50ID0gb3B0cyAmJiBvcHRzLmZyb20gPyBvcHRzLmZyb20gOiBCYXNlUG9pbnQ7XG4gIGNvbnN0IFRvUG9pbnQgPSBvcHRzICYmIG9wdHMudG8gPyBvcHRzLnRvIDogQmFzZVBvaW50O1xuXG4gIGNsYXNzIExpbmVCYXNlIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgICAgY29vcmRpbmF0ZXNPbkhvdmVyOiBQcm9wVHlwZXMuYm9vbCxcbiAgICAgIGdyYXBoUHJvcHM6IHR5cGVzLkdyYXBoUHJvcHNUeXBlLFxuICAgICAgZnJvbTogdHlwZXMuUG9pbnRUeXBlLFxuICAgICAgdG86IHR5cGVzLlBvaW50VHlwZSxcbiAgICAgIG1pZGRsZTogdHlwZXMuUG9pbnRUeXBlLFxuICAgICAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLFxuICAgICAgb25EcmFnU3RhcnQ6IFByb3BUeXBlcy5mdW5jLFxuICAgICAgb25EcmFnU3RvcDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgICBvbkNsaWNrOiBQcm9wVHlwZXMuZnVuYyxcbiAgICAgIGNvcnJlY3RuZXNzOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgZmlsbDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgIGdzc0xpbmVEYXRhOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgICAgZGlzYWJsZWQ6IFByb3BUeXBlcy5ib29sLFxuICAgICAgbGFiZWxOb2RlOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgICAgbGFiZWxNb2RlRW5hYmxlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgICBjaGFuZ2VNYXJrUHJvcHM6IFByb3BUeXBlcy5mdW5jLFxuICAgIH07XG5cbiAgICBvbkNoYW5nZVBvaW50ID0gKHBvaW50KSA9PiB7XG4gICAgICBjb25zdCB7IG1pZGRsZSwgb25DaGFuZ2UgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCB7IGZyb20sIHRvIH0gPSBwb2ludDtcblxuICAgICAgLy8gYmVjYXVzZSBwb2ludC5mcm9tLmxhYmVsIGFuZCBwb2ludC50by5sYWJlbCBjYW4gYmUgZGlmZmVyZW50XG4gICAgICBpZiAoIWVxdWFsUG9pbnRzKGZyb20sIHRvKSkge1xuICAgICAgICBpZiAobWlkZGxlKSB7XG4gICAgICAgICAgcG9pbnQubWlkZGxlID0geyAuLi5taWRkbGUsIC4uLmdldE1pZGRsZU9mVHdvUG9pbnRzKGZyb20sIHRvKSB9O1xuICAgICAgICB9XG5cbiAgICAgICAgb25DaGFuZ2UocG9pbnQpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBkcmFnQ29tcCA9ICh7IGZyb206IGRyYWdnZWRGcm9tLCB0bzogZHJhZ2dlZFRvIH0pID0+IHtcbiAgICAgIGNvbnN0IHsgZnJvbSwgdG8sIG9uQ2hhbmdlLCBtaWRkbGUgfSA9IHRoaXMucHJvcHM7XG5cbiAgICAgIGlmIChmcm9tLmxhYmVsKSB7XG4gICAgICAgIGRyYWdnZWRGcm9tLmxhYmVsID0gZnJvbS5sYWJlbDtcbiAgICAgIH1cblxuICAgICAgaWYgKHRvLmxhYmVsKSB7XG4gICAgICAgIGRyYWdnZWRUby5sYWJlbCA9IHRvLmxhYmVsO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB1cGRhdGVkID0geyBmcm9tOiBkcmFnZ2VkRnJvbSwgdG86IGRyYWdnZWRUbyB9O1xuXG4gICAgICBpZiAobWlkZGxlKSB7XG4gICAgICAgIHVwZGF0ZWQubWlkZGxlID0geyAuLi5taWRkbGUsIC4uLmdldE1pZGRsZU9mVHdvUG9pbnRzKGRyYWdnZWRGcm9tLCBkcmFnZ2VkVG8pIH07XG4gICAgICB9XG5cbiAgICAgIG9uQ2hhbmdlKHVwZGF0ZWQpO1xuICAgIH07XG5cbiAgICBkcmFnRnJvbSA9IChkcmFnZ2VkRnJvbSkgPT4ge1xuICAgICAgY29uc3QgeyBmcm9tLCB0byB9ID0gdGhpcy5wcm9wcztcblxuICAgICAgaWYgKGZyb20ubGFiZWwpIHtcbiAgICAgICAgZHJhZ2dlZEZyb20ubGFiZWwgPSBmcm9tLmxhYmVsO1xuICAgICAgfVxuXG4gICAgICBpZiAoIWVxdWFsUG9pbnRzKGRyYWdnZWRGcm9tLCB0bykpIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZVBvaW50KHsgZnJvbTogZHJhZ2dlZEZyb20sIHRvOiB0byB9KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgZHJhZ1RvID0gKGRyYWdnZWRUbykgPT4ge1xuICAgICAgY29uc3QgeyBmcm9tLCB0byB9ID0gdGhpcy5wcm9wcztcblxuICAgICAgaWYgKHRvLmxhYmVsKSB7XG4gICAgICAgIGRyYWdnZWRUby5sYWJlbCA9IHRvLmxhYmVsO1xuICAgICAgfVxuXG4gICAgICBpZiAoIWVxdWFsUG9pbnRzKGZyb20sIGRyYWdnZWRUbykpIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZVBvaW50KHsgZnJvbTogZnJvbSwgdG86IGRyYWdnZWRUbyB9KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgbGFiZWxDaGFuZ2UgPSAocG9pbnQsIHR5cGUpID0+IHtcbiAgICAgIGNvbnN0IHsgY2hhbmdlTWFya1Byb3BzIH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3QgdXBkYXRlID0geyAuLi5wb2ludCB9O1xuXG4gICAgICBpZiAoIXBvaW50LmxhYmVsIHx8IGlzRW1wdHkocG9pbnQubGFiZWwpKSB7XG4gICAgICAgIGRlbGV0ZSB1cGRhdGUubGFiZWw7XG4gICAgICB9XG5cbiAgICAgIGNoYW5nZU1hcmtQcm9wcyh7IFt0eXBlXTogdXBkYXRlIH0pO1xuICAgIH07XG5cbiAgICBjbGlja1BvaW50ID0gKHBvaW50LCB0eXBlLCBkYXRhKSA9PiB7XG4gICAgICBjb25zdCB7IGNoYW5nZU1hcmtQcm9wcywgZGlzYWJsZWQsIGZyb20sIHRvLCBsYWJlbE1vZGVFbmFibGVkLCBvbkNsaWNrIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgICBpZiAoIWxhYmVsTW9kZUVuYWJsZWQpIHtcbiAgICAgICAgb25DbGljayhwb2ludCB8fCBkYXRhKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoZGlzYWJsZWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZSA9PT0gJ21pZGRsZScgJiYgIXBvaW50ICYmIGZyb20gJiYgdG8pIHtcbiAgICAgICAgcG9pbnQgPSB7IC4uLnBvaW50LCAuLi5nZXRNaWRkbGVPZlR3b1BvaW50cyhmcm9tLCB0bykgfTtcbiAgICAgIH1cblxuICAgICAgY2hhbmdlTWFya1Byb3BzKHsgZnJvbSwgdG8sIFt0eXBlXTogeyBsYWJlbDogJycsIC4uLnBvaW50IH0gfSk7XG5cbiAgICAgIGlmICh0aGlzLmlucHV0W3R5cGVdKSB7XG4gICAgICAgIHRoaXMuaW5wdXRbdHlwZV0uZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgLy8gSU1QT1JUQU5ULCBkbyBub3QgcmVtb3ZlXG4gICAgaW5wdXQgPSB7fTtcblxuICAgIHJlbmRlcigpIHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgY29vcmRpbmF0ZXNPbkhvdmVyLFxuICAgICAgICBncmFwaFByb3BzLFxuICAgICAgICBmaWxsLFxuICAgICAgICBnc3NMaW5lRGF0YSxcbiAgICAgICAgb25EcmFnU3RhcnQsXG4gICAgICAgIG9uRHJhZ1N0b3AsXG4gICAgICAgIGZyb20sXG4gICAgICAgIHRvLFxuICAgICAgICBtaWRkbGUsXG4gICAgICAgIGRpc2FibGVkLFxuICAgICAgICBjb3JyZWN0bmVzcyxcbiAgICAgICAgb25DbGljayxcbiAgICAgICAgbGFiZWxOb2RlLFxuICAgICAgICBsYWJlbE1vZGVFbmFibGVkLFxuICAgICAgfSA9IHRoaXMucHJvcHM7XG4gICAgICBsZXQgY29tbW9uID0geyBncmFwaFByb3BzLCBmaWxsLCBvbkRyYWdTdGFydCwgb25EcmFnU3RvcCwgZGlzYWJsZWQsIGNvcnJlY3RuZXNzLCBvbkNsaWNrIH07XG4gICAgICBpZiAoZ3NzTGluZURhdGEgJiYgZ3NzTGluZURhdGEuc2VsZWN0ZWRUb29sID09PSAnc29sdXRpb25TZXQnKSB7XG4gICAgICAgIC8vcmVtb3ZpbmcgZHJhZ2dpbmcgb3B0aW9uIGZvciBsaW5lIGlmIHNvbHV0aW9uIHNldCBpcyBjbGlja2VkLlxuICAgICAgICBjb21tb24gPSB7IGdyYXBoUHJvcHMsIGZpbGwsIGRpc2FibGVkLCBjb3JyZWN0bmVzcywgb25DbGljayB9O1xuICAgICAgfVxuICAgICAgY29uc3QgYW5nbGUgPSB0byA/IHRyaWcudG9EZWdyZWVzKHRyaWcuYW5nbGUoZnJvbSwgdG8pKSA6IDA7XG5cbiAgICAgIGxldCBmcm9tTGFiZWxOb2RlID0gbnVsbDtcbiAgICAgIGxldCB0b0xhYmVsTm9kZSA9IG51bGw7XG4gICAgICBsZXQgbGluZUxhYmVsTm9kZSA9IG51bGw7XG5cbiAgICAgIGlmIChsYWJlbE5vZGUpIHtcbiAgICAgICAgaWYgKGZyb20gJiYgZnJvbS5oYXNPd25Qcm9wZXJ0eSgnbGFiZWwnKSkge1xuICAgICAgICAgIGZyb21MYWJlbE5vZGUgPSBSZWFjdERPTS5jcmVhdGVQb3J0YWwoXG4gICAgICAgICAgICA8TWFya0xhYmVsXG4gICAgICAgICAgICAgIGlucHV0UmVmPXsocikgPT4gKHRoaXMuaW5wdXQuZnJvbSA9IHIpfVxuICAgICAgICAgICAgICBkaXNhYmxlZD17IWxhYmVsTW9kZUVuYWJsZWR9XG4gICAgICAgICAgICAgIG1hcms9e2Zyb219XG4gICAgICAgICAgICAgIGdyYXBoUHJvcHM9e2dyYXBoUHJvcHN9XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXsobGFiZWwpID0+IHRoaXMubGFiZWxDaGFuZ2UoeyAuLi5mcm9tLCBsYWJlbCB9LCAnZnJvbScpfVxuICAgICAgICAgICAgLz4sXG4gICAgICAgICAgICBsYWJlbE5vZGUsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0byAmJiB0by5oYXNPd25Qcm9wZXJ0eSgnbGFiZWwnKSkge1xuICAgICAgICAgIHRvTGFiZWxOb2RlID0gUmVhY3RET00uY3JlYXRlUG9ydGFsKFxuICAgICAgICAgICAgPE1hcmtMYWJlbFxuICAgICAgICAgICAgICBpbnB1dFJlZj17KHIpID0+ICh0aGlzLmlucHV0LnRvID0gcil9XG4gICAgICAgICAgICAgIGRpc2FibGVkPXshbGFiZWxNb2RlRW5hYmxlZH1cbiAgICAgICAgICAgICAgbWFyaz17dG99XG4gICAgICAgICAgICAgIGdyYXBoUHJvcHM9e2dyYXBoUHJvcHN9XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXsobGFiZWwpID0+IHRoaXMubGFiZWxDaGFuZ2UoeyAuLi50bywgbGFiZWwgfSwgJ3RvJyl9XG4gICAgICAgICAgICAvPixcbiAgICAgICAgICAgIGxhYmVsTm9kZSxcbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG1pZGRsZSAmJiBtaWRkbGUuaGFzT3duUHJvcGVydHkoJ2xhYmVsJykpIHtcbiAgICAgICAgICBsaW5lTGFiZWxOb2RlID0gUmVhY3RET00uY3JlYXRlUG9ydGFsKFxuICAgICAgICAgICAgPE1hcmtMYWJlbFxuICAgICAgICAgICAgICBpbnB1dFJlZj17KHIpID0+ICh0aGlzLmlucHV0Lm1pZGRsZSA9IHIpfVxuICAgICAgICAgICAgICBkaXNhYmxlZD17IWxhYmVsTW9kZUVuYWJsZWR9XG4gICAgICAgICAgICAgIG1hcms9e21pZGRsZX1cbiAgICAgICAgICAgICAgZ3JhcGhQcm9wcz17Z3JhcGhQcm9wc31cbiAgICAgICAgICAgICAgb25DaGFuZ2U9eyhsYWJlbCkgPT4gdGhpcy5sYWJlbENoYW5nZSh7IC4uLm1pZGRsZSwgbGFiZWwgfSwgJ21pZGRsZScpfVxuICAgICAgICAgICAgLz4sXG4gICAgICAgICAgICBsYWJlbE5vZGUsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGdzc0xpbmVEYXRhICYmIGdzc0xpbmVEYXRhLnNlbGVjdGVkVG9vbCA9PT0gJ3NvbHV0aW9uU2V0Jykge1xuICAgICAgICAvL3JlbW92aW5nIGRyYWdnaW5nIGZlYXR1cmUgb2YgbGluZSBhbmQgcG9pbnQgaWYgc29sdXRpb24gc2V0IGlzIHRydWUuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPGc+XG4gICAgICAgICAgICB7dG8gJiYgPERyYWdnYWJsZUNvbXAgZnJvbT17ZnJvbX0gdG89e3RvfSBtaWRkbGU9e21pZGRsZX0gey4uLmNvbW1vbn0gLz59XG4gICAgICAgICAgICB7bGluZUxhYmVsTm9kZX1cblxuICAgICAgICAgICAgPEZyb21Qb2ludFxuICAgICAgICAgICAgICB4PXtmcm9tLnh9XG4gICAgICAgICAgICAgIHk9e2Zyb20ueX1cbiAgICAgICAgICAgICAgbGFiZWxOb2RlPXtsYWJlbE5vZGV9XG4gICAgICAgICAgICAgIGNvb3JkaW5hdGVzT25Ib3Zlcj17Y29vcmRpbmF0ZXNPbkhvdmVyfVxuICAgICAgICAgICAgICB7Li4uY29tbW9ufVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIHtmcm9tTGFiZWxOb2RlfVxuXG4gICAgICAgICAgICB7dG8gJiYgKFxuICAgICAgICAgICAgICA8VG9Qb2ludFxuICAgICAgICAgICAgICAgIHg9e3RvLnh9XG4gICAgICAgICAgICAgICAgeT17dG8ueX1cbiAgICAgICAgICAgICAgICBhbmdsZT17YW5nbGV9IC8vYW5nbGUgKyA0NX1cbiAgICAgICAgICAgICAgICBsYWJlbE5vZGU9e2xhYmVsTm9kZX1cbiAgICAgICAgICAgICAgICBjb29yZGluYXRlc09uSG92ZXI9e2Nvb3JkaW5hdGVzT25Ib3Zlcn1cbiAgICAgICAgICAgICAgICB7Li4uY29tbW9ufVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIHt0b0xhYmVsTm9kZX1cbiAgICAgICAgICA8L2c+XG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxnPlxuICAgICAgICAgICAge3RvICYmIChcbiAgICAgICAgICAgICAgPERyYWdnYWJsZUNvbXBcbiAgICAgICAgICAgICAgICBmcm9tPXtmcm9tfVxuICAgICAgICAgICAgICAgIHRvPXt0b31cbiAgICAgICAgICAgICAgICBtaWRkbGU9e21pZGRsZX1cbiAgICAgICAgICAgICAgICBvbkRyYWc9e3RoaXMuZHJhZ0NvbXB9XG4gICAgICAgICAgICAgICAgey4uLmNvbW1vbn1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZGF0YSkgPT4gdGhpcy5jbGlja1BvaW50KG1pZGRsZSwgJ21pZGRsZScsIGRhdGEpfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIHtsaW5lTGFiZWxOb2RlfVxuXG4gICAgICAgICAgICA8RnJvbVBvaW50XG4gICAgICAgICAgICAgIHg9e2Zyb20ueH1cbiAgICAgICAgICAgICAgeT17ZnJvbS55fVxuICAgICAgICAgICAgICBsYWJlbE5vZGU9e2xhYmVsTm9kZX1cbiAgICAgICAgICAgICAgY29vcmRpbmF0ZXNPbkhvdmVyPXtjb29yZGluYXRlc09uSG92ZXJ9XG4gICAgICAgICAgICAgIG9uRHJhZz17dGhpcy5kcmFnRnJvbX1cbiAgICAgICAgICAgICAgey4uLmNvbW1vbn1cbiAgICAgICAgICAgICAgb25DbGljaz17KGRhdGEpID0+IHRoaXMuY2xpY2tQb2ludChmcm9tLCAnZnJvbScsIGRhdGEpfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIHtmcm9tTGFiZWxOb2RlfVxuXG4gICAgICAgICAgICB7dG8gJiYgKFxuICAgICAgICAgICAgICA8VG9Qb2ludFxuICAgICAgICAgICAgICAgIHg9e3RvLnh9XG4gICAgICAgICAgICAgICAgeT17dG8ueX1cbiAgICAgICAgICAgICAgICBhbmdsZT17YW5nbGV9IC8vYW5nbGUgKyA0NX1cbiAgICAgICAgICAgICAgICBsYWJlbE5vZGU9e2xhYmVsTm9kZX1cbiAgICAgICAgICAgICAgICBjb29yZGluYXRlc09uSG92ZXI9e2Nvb3JkaW5hdGVzT25Ib3Zlcn1cbiAgICAgICAgICAgICAgICBvbkRyYWc9e3RoaXMuZHJhZ1RvfVxuICAgICAgICAgICAgICAgIHsuLi5jb21tb259XG4gICAgICAgICAgICAgICAgb25DbGljaz17KGRhdGEpID0+IHRoaXMuY2xpY2tQb2ludCh0bywgJ3RvJywgZGF0YSl9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAge3RvTGFiZWxOb2RlfVxuICAgICAgICAgIDwvZz5cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gTGluZUJhc2U7XG59O1xuXG5leHBvcnQgY29uc3Qgc3R5bGVzID0ge1xuICBsaW5lOiAoKSA9PiAoe1xuICAgIGZpbGw6ICd0cmFuc3BhcmVudCcsXG4gICAgc3Ryb2tlOiBjb2xvci5kZWZhdWx0cy5CTEFDSyxcbiAgICBzdHJva2VXaWR0aDogNCxcbiAgICB0cmFuc2l0aW9uOiAnc3Ryb2tlIDIwMG1zIGVhc2UtaW4sIHN0cm9rZS13aWR0aCAyMDBtcyBlYXNlLWluJyxcbiAgICAnJjpob3Zlcic6IHtcbiAgICAgIHN0cm9rZVdpZHRoOiA2LFxuICAgICAgc3Ryb2tlOiBjb2xvci5kZWZhdWx0cy5CTEFDSyxcbiAgICB9LFxuICB9KSxcbiAgZGFzaGVkTGluZTogKCkgPT4gKHtcbiAgICBmaWxsOiAndHJhbnNwYXJlbnQnLFxuICAgIHN0cm9rZTogY29sb3IuZGVmYXVsdHMuQkxBQ0ssXG4gICAgc3Ryb2tlV2lkdGg6IDQsXG4gICAgdHJhbnNpdGlvbjogJ3N0cm9rZSAyMDBtcyBlYXNlLWluLCBzdHJva2Utd2lkdGggMjAwbXMgZWFzZS1pbicsXG4gICAgJyY6aG92ZXInOiB7XG4gICAgICBzdHJva2VXaWR0aDogNixcbiAgICAgIHN0cm9rZTogY29sb3IuZGVmYXVsdHMuQkxBQ0ssXG4gICAgfSxcbiAgICBzdHJva2VEYXNoYXJyYXk6ICczLDMnLFxuICB9KSxcbiAgYXJyb3c6ICgpID0+ICh7XG4gICAgZmlsbDogY29sb3IuZGVmYXVsdHMuU0VDT05EQVJZLFxuICB9KSxcbiAgZGlzYWJsZWRBcnJvdzogKCkgPT4gKHtcbiAgICAuLi5kaXNhYmxlZCgpLFxuICB9KSxcbiAgZGlzYWJsZWQ6ICgpID0+ICh7XG4gICAgLi4uZGlzYWJsZWQoJ3N0cm9rZScpLFxuICAgIHN0cm9rZVdpZHRoOiAyLFxuICB9KSxcbiAgY29ycmVjdDogKHRoZW1lLCBrZXkpID0+ICh7XG4gICAgLi4uY29ycmVjdChrZXkpLFxuICB9KSxcbiAgaW5jb3JyZWN0OiAodGhlbWUsIGtleSkgPT4gKHtcbiAgICAuLi5pbmNvcnJlY3Qoa2V5KSxcbiAgfSksXG4gIG1pc3Npbmc6ICh0aGVtZSwga2V5KSA9PiAoe1xuICAgIC4uLm1pc3Npbmcoa2V5KSxcbiAgfSksXG59O1xuIl19
637
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/tools/shared/line/index.jsx"],"names":["lineTool","type","Component","addPoint","point","mark","root","building","from","to","lineToolComponent","props","setState","onChange","update","state","undefined","shouldNotChange","y","middle","graphProps","onClick","labelNode","labelModeEnabled","coordinatesOnHover","gssLineData","isBackground","disabled","correctness","fill","changeMark","changeMarkProps","startDrag","stopDrag","React","types","ToolPropTypeFields","GraphPropsType","isRequired","dragOpts","bounds","domain","range","area","utils","lineToArea","anchorPoint","fromDelta","delta","add","lineBase","Comp","opts","DraggableComp","FromPoint","BasePoint","ToPoint","LineBase","draggedFrom","draggedTo","label","updated","onChangePoint","data","input","focus","onDragStart","onDragStop","common","selectedTool","angle","trig","toDegrees","fromLabelNode","toLabelNode","lineLabelNode","hasOwnProperty","ReactDOM","createPortal","r","labelChange","x","dragComp","clickPoint","dragFrom","dragTo","PropTypes","bool","PointType","func","string","object","styles","line","stroke","color","defaults","BLACK","strokeWidth","transition","dashedLine","strokeDasharray","arrow","SECONDARY","disabledArrow","correct","theme","key","incorrect","missing"],"mappings":"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","sourcesContent":["import React from 'react';\nimport isEqual from 'lodash/isEqual';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { BasePoint } from '../point';\nimport { types, utils, gridDraggable, trig } from '@pie-lib/plot';\nimport PropTypes from 'prop-types';\nimport { disabled, correct, incorrect, missing } from '../styles';\nimport ReactDOM from 'react-dom';\nimport MarkLabel from '../../../mark-label';\nimport isEmpty from 'lodash/isEmpty';\nimport { color } from '../../../../../render-ui/src/index';\nimport { getMiddleOfTwoPoints, equalPoints, sameAxes } from '../../../utils';\n\nexport const lineTool = (type, Component) => () => ({\n type,\n Component,\n addPoint: (point, mark) => {\n if (mark && equalPoints(mark.root, point)) {\n return mark;\n }\n\n if (!mark) {\n return {\n type,\n building: true,\n from: point,\n };\n }\n\n if (equalPoints(point, mark.from)) {\n return { ...mark };\n }\n\n return { ...mark, building: false, to: point };\n },\n});\n\nexport const lineToolComponent = (Component) => {\n return class LineToolComponent extends React.Component {\n static propTypes = {\n ...types.ToolPropTypeFields,\n graphProps: types.GraphPropsType.isRequired,\n };\n\n constructor(props) {\n super(props);\n this.state = {};\n }\n\n startDrag = () => this.setState({ mark: { ...this.props.mark } });\n\n stopDrag = () => {\n const { onChange, mark } = this.props;\n const update = { ...this.state.mark };\n\n this.setState({ mark: undefined }, () => {\n const { type } = update;\n let shouldNotChange =\n type &&\n (type === 'parabola' || type === 'sine' || type === 'absolute' || type === 'exponential') &&\n sameAxes(update.from, update.to);\n if (!shouldNotChange && type && type === 'exponential' && update.from && update.to) {\n shouldNotChange = update.from.y === 0 || update.to.y === 0 || update.from.y * update.to.y < 0;\n }\n if (!isEqual(mark, update) && !shouldNotChange) {\n onChange(mark, update);\n }\n });\n };\n\n changeMark = ({ from, to, middle }) => {\n let mark = { ...this.state.mark, from, to };\n\n if (middle) {\n mark = { ...mark, middle };\n }\n\n this.setState({ mark });\n };\n\n changeMarkProps = ({ from, to, middle }) => {\n const { onChange, mark } = this.props;\n let update = { ...mark, ...this.state.mark };\n\n if (from) {\n update = { ...update, from };\n }\n\n if (to) {\n update = { ...update, to };\n }\n\n if (middle) {\n update = { ...update, middle };\n }\n\n if (!isEqual(mark, update)) {\n onChange(mark, update);\n }\n };\n\n render() {\n const { graphProps, onClick, labelNode, labelModeEnabled, coordinatesOnHover, gssLineData } = this.props;\n const mark = this.state.mark ? this.state.mark : this.props.mark;\n\n const from = cloneDeep(mark.from);\n const to = cloneDeep(mark.to);\n const middle = cloneDeep(mark.middle);\n\n // SET DISABLED\n // if it's a background mark, we need to force disable it\n if (from && mark.isBackground) {\n from.disabled = true;\n }\n\n if (to && mark.isBackground) {\n to.disabled = true;\n }\n\n if (middle && mark.isBackground) {\n middle.disabled = true;\n }\n\n return (\n <Component\n disabled={mark.disabled}\n coordinatesOnHover={coordinatesOnHover}\n correctness={mark.correctness}\n from={from}\n to={to}\n middle={middle}\n graphProps={graphProps}\n fill={mark && mark.fill}\n gssLineData={gssLineData}\n onChange={this.changeMark}\n changeMarkProps={this.changeMarkProps}\n onClick={onClick}\n onDragStart={this.startDrag}\n onDragStop={this.stopDrag}\n labelNode={labelNode}\n labelModeEnabled={labelModeEnabled}\n />\n );\n }\n };\n};\n\nconst dragOpts = () => ({\n bounds: (props, { domain, range }) => {\n const area = utils.lineToArea(props.from, props.to);\n return utils.bounds(area, domain, range);\n },\n anchorPoint: (props) => {\n const { from } = props;\n return from;\n },\n fromDelta: (props, delta) => {\n const { from, to } = props;\n return {\n from: utils.point(from).add(utils.point(delta)),\n to: utils.point(to).add(utils.point(delta)),\n };\n },\n});\n\nexport const lineBase = (Comp, opts) => {\n const DraggableComp = gridDraggable(dragOpts())(Comp);\n\n const FromPoint = opts && opts.from ? opts.from : BasePoint;\n const ToPoint = opts && opts.to ? opts.to : BasePoint;\n\n class LineBase extends React.Component {\n static propTypes = {\n coordinatesOnHover: PropTypes.bool,\n graphProps: types.GraphPropsType,\n from: types.PointType,\n to: types.PointType,\n middle: types.PointType,\n onChange: PropTypes.func,\n onDragStart: PropTypes.func,\n onDragStop: PropTypes.func,\n onClick: PropTypes.func,\n correctness: PropTypes.string,\n fill: PropTypes.string,\n gssLineData: PropTypes.object,\n disabled: PropTypes.bool,\n labelNode: PropTypes.object,\n labelModeEnabled: PropTypes.bool,\n changeMarkProps: PropTypes.func,\n };\n\n onChangePoint = (point) => {\n const { middle, onChange } = this.props;\n const { from, to } = point;\n\n // because point.from.label and point.to.label can be different\n if (!equalPoints(from, to)) {\n if (middle) {\n point.middle = { ...middle, ...getMiddleOfTwoPoints(from, to) };\n }\n\n onChange(point);\n }\n };\n\n dragComp = ({ from: draggedFrom, to: draggedTo }) => {\n const { from, to, onChange, middle } = this.props;\n\n if (from.label) {\n draggedFrom.label = from.label;\n }\n\n if (to.label) {\n draggedTo.label = to.label;\n }\n\n const updated = { from: draggedFrom, to: draggedTo };\n\n if (middle) {\n updated.middle = { ...middle, ...getMiddleOfTwoPoints(draggedFrom, draggedTo) };\n }\n\n onChange(updated);\n };\n\n dragFrom = (draggedFrom) => {\n const { from, to } = this.props;\n\n if (from.label) {\n draggedFrom.label = from.label;\n }\n\n if (!equalPoints(draggedFrom, to)) {\n this.onChangePoint({ from: draggedFrom, to: to });\n }\n };\n\n dragTo = (draggedTo) => {\n const { from, to } = this.props;\n\n if (to.label) {\n draggedTo.label = to.label;\n }\n\n if (!equalPoints(from, draggedTo)) {\n this.onChangePoint({ from: from, to: draggedTo });\n }\n };\n\n labelChange = (point, type) => {\n const { changeMarkProps } = this.props;\n const update = { ...point };\n\n if (!point.label || isEmpty(point.label)) {\n delete update.label;\n }\n\n changeMarkProps({ [type]: update });\n };\n\n clickPoint = (point, type, data) => {\n const { changeMarkProps, disabled, from, to, labelModeEnabled, onClick } = this.props;\n\n if (!labelModeEnabled) {\n onClick(point || data);\n return;\n }\n\n if (disabled) {\n return;\n }\n\n if (type === 'middle' && !point && from && to) {\n point = { ...point, ...getMiddleOfTwoPoints(from, to) };\n }\n\n changeMarkProps({ from, to, [type]: { label: '', ...point } });\n\n if (this.input[type]) {\n this.input[type].focus();\n }\n };\n\n // IMPORTANT, do not remove\n input = {};\n\n render() {\n const {\n coordinatesOnHover,\n graphProps,\n fill,\n gssLineData,\n onDragStart,\n onDragStop,\n from,\n to,\n middle,\n disabled,\n correctness,\n onClick,\n labelNode,\n labelModeEnabled,\n } = this.props;\n let common = { graphProps, fill, onDragStart, onDragStop, disabled, correctness, onClick };\n if (gssLineData && gssLineData.selectedTool === 'solutionSet') {\n //removing dragging option for line if solution set is clicked.\n common = { graphProps, fill, disabled, correctness, onClick };\n }\n const angle = to ? trig.toDegrees(trig.angle(from, to)) : 0;\n\n let fromLabelNode = null;\n let toLabelNode = null;\n let lineLabelNode = null;\n\n if (labelNode) {\n if (from && from.hasOwnProperty('label')) {\n fromLabelNode = ReactDOM.createPortal(\n <MarkLabel\n inputRef={(r) => (this.input.from = r)}\n disabled={!labelModeEnabled}\n mark={from}\n graphProps={graphProps}\n onChange={(label) => this.labelChange({ ...from, label }, 'from')}\n />,\n labelNode,\n );\n }\n\n if (to && to.hasOwnProperty('label')) {\n toLabelNode = ReactDOM.createPortal(\n <MarkLabel\n inputRef={(r) => (this.input.to = r)}\n disabled={!labelModeEnabled}\n mark={to}\n graphProps={graphProps}\n onChange={(label) => this.labelChange({ ...to, label }, 'to')}\n />,\n labelNode,\n );\n }\n\n if (middle && middle.hasOwnProperty('label')) {\n lineLabelNode = ReactDOM.createPortal(\n <MarkLabel\n inputRef={(r) => (this.input.middle = r)}\n disabled={!labelModeEnabled}\n mark={middle}\n graphProps={graphProps}\n onChange={(label) => this.labelChange({ ...middle, label }, 'middle')}\n />,\n labelNode,\n );\n }\n }\n if (gssLineData && gssLineData.selectedTool === 'solutionSet') {\n //removing dragging feature of line and point if solution set is true.\n return (\n <g>\n {to && <DraggableComp from={from} to={to} middle={middle} {...common} />}\n {lineLabelNode}\n\n <FromPoint\n x={from.x}\n y={from.y}\n labelNode={labelNode}\n coordinatesOnHover={coordinatesOnHover}\n {...common}\n />\n {fromLabelNode}\n\n {to && (\n <ToPoint\n x={to.x}\n y={to.y}\n angle={angle} //angle + 45}\n labelNode={labelNode}\n coordinatesOnHover={coordinatesOnHover}\n {...common}\n />\n )}\n {toLabelNode}\n </g>\n );\n } else {\n return (\n <g>\n {to && (\n <DraggableComp\n from={from}\n to={to}\n middle={middle}\n onDrag={this.dragComp}\n {...common}\n onClick={(data) => this.clickPoint(middle, 'middle', data)}\n />\n )}\n {lineLabelNode}\n\n <FromPoint\n x={from.x}\n y={from.y}\n labelNode={labelNode}\n coordinatesOnHover={coordinatesOnHover}\n onDrag={this.dragFrom}\n {...common}\n onClick={(data) => this.clickPoint(from, 'from', data)}\n />\n {fromLabelNode}\n\n {to && (\n <ToPoint\n x={to.x}\n y={to.y}\n angle={angle} //angle + 45}\n labelNode={labelNode}\n coordinatesOnHover={coordinatesOnHover}\n onDrag={this.dragTo}\n {...common}\n onClick={(data) => this.clickPoint(to, 'to', data)}\n />\n )}\n {toLabelNode}\n </g>\n );\n }\n }\n }\n\n return LineBase;\n};\n\nexport const styles = {\n line: () => ({\n fill: 'transparent',\n stroke: color.defaults.BLACK,\n strokeWidth: 4,\n transition: 'stroke 200ms ease-in, stroke-width 200ms ease-in',\n '&:hover': {\n strokeWidth: 6,\n stroke: color.defaults.BLACK,\n },\n }),\n dashedLine: () => ({\n fill: 'transparent',\n stroke: color.defaults.BLACK,\n strokeWidth: 4,\n transition: 'stroke 200ms ease-in, stroke-width 200ms ease-in',\n '&:hover': {\n strokeWidth: 6,\n stroke: color.defaults.BLACK,\n },\n strokeDasharray: '3,3',\n }),\n arrow: () => ({\n fill: color.defaults.SECONDARY,\n }),\n disabledArrow: () => ({\n ...disabled(),\n }),\n disabled: () => ({\n ...disabled('stroke'),\n strokeWidth: 2,\n }),\n correct: (theme, key) => ({\n ...correct(key),\n }),\n incorrect: (theme, key) => ({\n ...incorrect(key),\n }),\n missing: (theme, key) => ({\n ...missing(key),\n }),\n};\n"],"file":"index.js"}
@@ -39,7 +39,7 @@ var _styles2 = require("../styles");
39
39
 
40
40
  var vx = _interopRequireWildcard(require("@vx/shape"));
41
41
 
42
- var _renderUi = require("@pie-lib/render-ui");
42
+ var _index = require("./../../../shared/index");
43
43
 
44
44
  var _excluded = ["data", "classes", "className", "disabled", "correctness", "from", "to", "graphProps", "isDragging"];
45
45
 
@@ -114,7 +114,7 @@ exports.RawLinePath = RawLinePath;
114
114
  var dragging = function dragging() {
115
115
  return {
116
116
  strokeWidth: 7,
117
- stroke: _renderUi.color.defaults.BLACK
117
+ stroke: _index.color.defaults.BLACK
118
118
  };
119
119
  };
120
120
 
@@ -123,7 +123,7 @@ var LinePath = (0, _styles.withStyles)(function (theme) {
123
123
  drawLine: {
124
124
  fill: 'none',
125
125
  strokeWidth: 2,
126
- stroke: _renderUi.color.secondaryLight()
126
+ stroke: _index.color.secondaryLight()
127
127
  },
128
128
  line: {
129
129
  strokeWidth: 6,
@@ -142,4 +142,4 @@ var LinePath = (0, _styles.withStyles)(function (theme) {
142
142
  };
143
143
  })(RawLinePath);
144
144
  exports.LinePath = LinePath;
145
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90b29scy9zaGFyZWQvbGluZS9saW5lLXBhdGguanN4Il0sIm5hbWVzIjpbIlJhd0xpbmVQYXRoIiwicHJvcHMiLCJkYXRhIiwiY2xhc3NlcyIsImNsYXNzTmFtZSIsImRpc2FibGVkIiwiY29ycmVjdG5lc3MiLCJmcm9tIiwidG8iLCJncmFwaFByb3BzIiwiaXNEcmFnZ2luZyIsInJlc3QiLCJkcmF3TGluZSIsImxpbmUiLCJkcmFnZ2luZyIsIlJlYWN0IiwiQ29tcG9uZW50IiwiUHJvcFR5cGVzIiwic3RyaW5nIiwib2JqZWN0IiwiYXJyYXlPZiIsIm51bWJlciIsInR5cGVzIiwiR3JhcGhQcm9wc1R5cGUiLCJpc1JlcXVpcmVkIiwiYm9vbCIsIlBvaW50VHlwZSIsInN0cm9rZVdpZHRoIiwic3Ryb2tlIiwiY29sb3IiLCJkZWZhdWx0cyIsIkJMQUNLIiwiTGluZVBhdGgiLCJ0aGVtZSIsImZpbGwiLCJzZWNvbmRhcnlMaWdodCIsInRyYW5zaXRpb24iLCJjb3JyZWN0IiwiaW5jb3JyZWN0IiwibWlzc2luZyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7SUFFYUEsVzs7Ozs7Ozs7Ozs7O1dBa0JYLGtCQUFTO0FBQ1A7QUFDQSx3QkFBdUcsS0FBS0MsS0FBNUc7QUFBQSxVQUFRQyxJQUFSLGVBQVFBLElBQVI7QUFBQSxVQUFjQyxPQUFkLGVBQWNBLE9BQWQ7QUFBQSxVQUF1QkMsU0FBdkIsZUFBdUJBLFNBQXZCO0FBQUEsVUFBa0NDLFFBQWxDLGVBQWtDQSxRQUFsQztBQUFBLFVBQTRDQyxXQUE1QyxlQUE0Q0EsV0FBNUM7QUFBQSxVQUF5REMsSUFBekQsZUFBeURBLElBQXpEO0FBQUEsVUFBK0RDLEVBQS9ELGVBQStEQSxFQUEvRDtBQUFBLFVBQW1FQyxVQUFuRSxlQUFtRUEsVUFBbkU7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QWpCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyB3aXRoU3R5bGVzIH0gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvc3R5bGVzJztcbmltcG9ydCB7IHR5cGVzIH0gZnJvbSAnQHBpZS1saWIvcGxvdCc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCB7IGRpc2FibGVkLCBjb3JyZWN0LCBpbmNvcnJlY3QsIG1pc3NpbmcgfSBmcm9tICcuLi9zdHlsZXMnO1xuaW1wb3J0ICogYXMgdnggZnJvbSAnQHZ4L3NoYXBlJztcbmltcG9ydCB7IGNvbG9yIH0gZnJvbSAnQHBpZS1saWIvcmVuZGVyLXVpJztcblxuZXhwb3J0IGNsYXNzIFJhd0xpbmVQYXRoIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgY2xhc3NlczogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBkYXRhOiBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMubnVtYmVyKSksXG4gICAgZ3JhcGhQcm9wczogdHlwZXMuR3JhcGhQcm9wc1R5cGUuaXNSZXF1aXJlZCxcbiAgICBkaXNhYmxlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgY29ycmVjdG5lc3M6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgZnJvbTogdHlwZXMuUG9pbnRUeXBlLFxuICAgIHRvOiB0eXBlcy5Qb2ludFR5cGUsXG4gICAgaXNEcmFnZ2luZzogUHJvcFR5cGVzLmJvb2wsXG4gIH07XG5cbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICBmcm9tOiB7fSxcbiAgICB0bzoge30sXG4gIH07XG5cbiAgcmVuZGVyKCkge1xuICAgIC8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC12YXJzICovXG4gICAgY29uc3QgeyBkYXRhLCBjbGFzc2VzLCBjbGFzc05hbWUsIGRpc2FibGVkLCBjb3JyZWN0bmVzcywgZnJvbSwgdG8sIGdyYXBoUHJvcHMsIGlzRHJhZ2dpbmcsIC4uLnJlc3QgfSA9IHRoaXMucHJvcHM7XG4gICAgLyogZXNsaW50LWVuYWJsZSAqL1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxSZWFjdC5GcmFnbWVudD5cbiAgICAgICAgPHZ4LkxpbmVQYXRoXG4gICAgICAgICAgZGF0YT17ZGF0YX1cbiAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoY2xhc3Nlcy5kcmF3TGluZSwgZGlzYWJsZWQgJiYgY2xhc3Nlcy5kaXNhYmxlZCwgY2xhc3Nlc1tjb3JyZWN0bmVzc10sIGNsYXNzTmFtZSl9XG4gICAgICAgICAgey4uLnJlc3R9XG4gICAgICAgIC8+XG4gICAgICAgIDx2eC5MaW5lUGF0aFxuICAgICAgICAgIGRhdGE9e2RhdGF9XG4gICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKFxuICAgICAgICAgICAgY2xhc3Nlcy5saW5lLFxuICAgICAgICAgICAgaXNEcmFnZ2luZyAmJiBjbGFzc2VzLmRyYWdnaW5nLFxuICAgICAgICAgICAgZGlzYWJsZWQgJiYgY2xhc3Nlcy5kaXNhYmxlZCxcbiAgICAgICAgICAgIGNsYXNzZXNbY29ycmVjdG5lc3NdLFxuICAgICAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgICAgICl9XG4gICAgICAgICAgey4uLnJlc3R9XG4gICAgICAgIC8+XG4gICAgICA8L1JlYWN0LkZyYWdtZW50PlxuICAgICk7XG4gIH1cbn1cblxuY29uc3QgZHJhZ2dpbmcgPSAoKSA9PiAoe1xuICBzdHJva2VXaWR0aDogNyxcbiAgc3Ryb2tlOiBjb2xvci5kZWZhdWx0cy5CTEFDSyxcbn0pO1xuXG5leHBvcnQgY29uc3QgTGluZVBhdGggPSB3aXRoU3R5bGVzKCh0aGVtZSkgPT4gKHtcbiAgZHJhd0xpbmU6IHtcbiAgICBmaWxsOiAnbm9uZScsXG4gICAgc3Ryb2tlV2lkdGg6IDIsXG4gICAgc3Ryb2tlOiBjb2xvci5zZWNvbmRhcnlMaWdodCgpLFxuICB9LFxuICBsaW5lOiB7XG4gICAgc3Ryb2tlV2lkdGg6IDYsXG4gICAgZmlsbDogJ25vbmUnLFxuICAgIHRyYW5zaXRpb246ICdzdHJva2Utd2lkdGggMjAwbXMgZWFzZS1pbiwgc3Ryb2tlIDIwMG1zIGVhc2UtaW4nLFxuICAgIHN0cm9rZTogJ3RyYW5zcGFyZW50JyxcbiAgICAnJjpob3Zlcic6IGRyYWdnaW5nKHRoZW1lKSxcbiAgfSxcbiAgZHJhZ2dpbmc6IGRyYWdnaW5nKHRoZW1lKSxcbiAgZGlzYWJsZWQ6IHtcbiAgICAuLi5kaXNhYmxlZCgnc3Ryb2tlJyksXG4gICAgc3Ryb2tlV2lkdGg6IDIsXG4gIH0sXG4gIGNvcnJlY3Q6IHtcbiAgICAuLi5jb3JyZWN0KCdzdHJva2UnKSxcbiAgfSxcbiAgaW5jb3JyZWN0OiB7XG4gICAgLi4uaW5jb3JyZWN0KCdzdHJva2UnKSxcbiAgfSxcbiAgbWlzc2luZzoge1xuICAgIC4uLm1pc3NpbmcoJ3N0cm9rZScpLFxuICB9LFxufSkpKFJhd0xpbmVQYXRoKTtcbiJdfQ==
145
+ //# sourceMappingURL=line-path.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/tools/shared/line/line-path.jsx"],"names":["RawLinePath","props","data","classes","className","disabled","correctness","from","to","graphProps","isDragging","rest","drawLine","line","dragging","React","Component","PropTypes","string","object","arrayOf","number","types","GraphPropsType","isRequired","bool","PointType","strokeWidth","stroke","color","defaults","BLACK","LinePath","theme","fill","secondaryLight","transition","correct","incorrect","missing"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { types } from '@pie-lib/plot';\nimport classNames from 'classnames';\nimport { disabled, correct, incorrect, missing } from '../styles';\nimport * as vx from '@vx/shape';\nimport { color } from '../../../../../render-ui/src/index';\n\nexport class RawLinePath extends React.Component {\n static propTypes = {\n className: PropTypes.string,\n classes: PropTypes.object,\n data: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.number)),\n graphProps: types.GraphPropsType.isRequired,\n disabled: PropTypes.bool,\n correctness: PropTypes.string,\n from: types.PointType,\n to: types.PointType,\n isDragging: PropTypes.bool,\n };\n\n static defaultProps = {\n from: {},\n to: {},\n };\n\n render() {\n /* eslint-disable no-unused-vars */\n const { data, classes, className, disabled, correctness, from, to, graphProps, isDragging, ...rest } = this.props;\n /* eslint-enable */\n\n return (\n <React.Fragment>\n <vx.LinePath\n data={data}\n className={classNames(classes.drawLine, disabled && classes.disabled, classes[correctness], className)}\n {...rest}\n />\n <vx.LinePath\n data={data}\n className={classNames(\n classes.line,\n isDragging && classes.dragging,\n disabled && classes.disabled,\n classes[correctness],\n className,\n )}\n {...rest}\n />\n </React.Fragment>\n );\n }\n}\n\nconst dragging = () => ({\n strokeWidth: 7,\n stroke: color.defaults.BLACK,\n});\n\nexport const LinePath = withStyles((theme) => ({\n drawLine: {\n fill: 'none',\n strokeWidth: 2,\n stroke: color.secondaryLight(),\n },\n line: {\n strokeWidth: 6,\n fill: 'none',\n transition: 'stroke-width 200ms ease-in, stroke 200ms ease-in',\n stroke: 'transparent',\n '&:hover': dragging(theme),\n },\n dragging: dragging(theme),\n disabled: {\n ...disabled('stroke'),\n strokeWidth: 2,\n },\n correct: {\n ...correct('stroke'),\n },\n incorrect: {\n ...incorrect('stroke'),\n },\n missing: {\n ...missing('stroke'),\n },\n}))(RawLinePath);\n"],"file":"line-path.js"}