@pie-lib/graphing 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 (181) hide show
  1. package/CHANGELOG.json +1 -1017
  2. package/CHANGELOG.md +96 -27
  3. package/lib/axis/arrow.js +1 -1
  4. package/lib/axis/arrow.js.map +1 -0
  5. package/lib/axis/axes.js +7 -7
  6. package/lib/axis/axes.js.map +1 -0
  7. package/lib/axis/index.js +1 -1
  8. package/lib/axis/index.js.map +1 -0
  9. package/lib/bg.js +1 -1
  10. package/lib/bg.js.map +1 -0
  11. package/lib/container/actions.js +1 -1
  12. package/lib/container/actions.js.map +1 -0
  13. package/lib/container/index.js +1 -1
  14. package/lib/container/index.js.map +1 -0
  15. package/lib/container/marks.js +1 -1
  16. package/lib/container/marks.js.map +1 -0
  17. package/lib/container/middleware.js +1 -1
  18. package/lib/container/middleware.js.map +1 -0
  19. package/lib/container/reducer.js +1 -1
  20. package/lib/container/reducer.js.map +1 -0
  21. package/lib/coordinates-label.js +3 -3
  22. package/lib/coordinates-label.js.map +1 -0
  23. package/lib/graph-with-controls.js +5 -5
  24. package/lib/graph-with-controls.js.map +1 -0
  25. package/lib/graph.js +1 -1
  26. package/lib/graph.js.map +1 -0
  27. package/lib/grid-setup.js +4 -4
  28. package/lib/grid-setup.js.map +1 -0
  29. package/lib/grid.js +1 -1
  30. package/lib/grid.js.map +1 -0
  31. package/lib/index.js +1 -1
  32. package/lib/index.js.map +1 -0
  33. package/lib/key-legend.js +3 -3
  34. package/lib/key-legend.js.map +1 -0
  35. package/lib/label-svg-icon.js +1 -1
  36. package/lib/label-svg-icon.js.map +1 -0
  37. package/lib/labels.js +4 -4
  38. package/lib/labels.js.map +1 -0
  39. package/lib/mark-label.js +18 -18
  40. package/lib/mark-label.js.map +1 -0
  41. package/lib/shared/index.js +136 -0
  42. package/lib/toggle-bar.js +10 -10
  43. package/lib/toggle-bar.js.map +1 -0
  44. package/lib/tool-menu.js +1 -1
  45. package/lib/tool-menu.js.map +1 -0
  46. package/lib/tools/absolute/component.js +1 -1
  47. package/lib/tools/absolute/component.js.map +1 -0
  48. package/lib/tools/absolute/index.js +1 -1
  49. package/lib/tools/absolute/index.js.map +1 -0
  50. package/lib/tools/circle/bg-circle.js +4 -4
  51. package/lib/tools/circle/bg-circle.js.map +1 -0
  52. package/lib/tools/circle/component.js +5 -5
  53. package/lib/tools/circle/component.js.map +1 -0
  54. package/lib/tools/circle/index.js +1 -1
  55. package/lib/tools/circle/index.js.map +1 -0
  56. package/lib/tools/exponential/component.js +1 -1
  57. package/lib/tools/exponential/component.js.map +1 -0
  58. package/lib/tools/exponential/index.js +1 -1
  59. package/lib/tools/exponential/index.js.map +1 -0
  60. package/lib/tools/index.js +1 -1
  61. package/lib/tools/index.js.map +1 -0
  62. package/lib/tools/line/component.js +1 -1
  63. package/lib/tools/line/component.js.map +1 -0
  64. package/lib/tools/line/index.js +1 -1
  65. package/lib/tools/line/index.js.map +1 -0
  66. package/lib/tools/parabola/component.js +1 -1
  67. package/lib/tools/parabola/component.js.map +1 -0
  68. package/lib/tools/parabola/index.js +1 -1
  69. package/lib/tools/parabola/index.js.map +1 -0
  70. package/lib/tools/point/component.js +1 -1
  71. package/lib/tools/point/component.js.map +1 -0
  72. package/lib/tools/point/index.js +1 -1
  73. package/lib/tools/point/index.js.map +1 -0
  74. package/lib/tools/polygon/component.js +1 -1
  75. package/lib/tools/polygon/component.js.map +1 -0
  76. package/lib/tools/polygon/index.js +1 -1
  77. package/lib/tools/polygon/index.js.map +1 -0
  78. package/lib/tools/polygon/line.js +3 -3
  79. package/lib/tools/polygon/line.js.map +1 -0
  80. package/lib/tools/polygon/polygon.js +4 -4
  81. package/lib/tools/polygon/polygon.js.map +1 -0
  82. package/lib/tools/ray/component.js +1 -1
  83. package/lib/tools/ray/component.js.map +1 -0
  84. package/lib/tools/ray/index.js +1 -1
  85. package/lib/tools/ray/index.js.map +1 -0
  86. package/lib/tools/segment/component.js +1 -1
  87. package/lib/tools/segment/component.js.map +1 -0
  88. package/lib/tools/segment/index.js +1 -1
  89. package/lib/tools/segment/index.js.map +1 -0
  90. package/lib/tools/shared/arrow-head.js +1 -1
  91. package/lib/tools/shared/arrow-head.js.map +1 -0
  92. package/lib/tools/shared/icons/CorrectSVG.js +1 -1
  93. package/lib/tools/shared/icons/CorrectSVG.js.map +1 -0
  94. package/lib/tools/shared/icons/IncorrectSVG.js +1 -1
  95. package/lib/tools/shared/icons/IncorrectSVG.js.map +1 -0
  96. package/lib/tools/shared/icons/MissingSVG.js +1 -1
  97. package/lib/tools/shared/icons/MissingSVG.js.map +1 -0
  98. package/lib/tools/shared/line/index.js +5 -5
  99. package/lib/tools/shared/line/index.js.map +1 -0
  100. package/lib/tools/shared/line/line-path.js +4 -4
  101. package/lib/tools/shared/line/line-path.js.map +1 -0
  102. package/lib/tools/shared/line/with-root-edge.js +1 -1
  103. package/lib/tools/shared/line/with-root-edge.js.map +1 -0
  104. package/lib/tools/shared/point/arrow-point.js +1 -1
  105. package/lib/tools/shared/point/arrow-point.js.map +1 -0
  106. package/lib/tools/shared/point/arrow.js +1 -1
  107. package/lib/tools/shared/point/arrow.js.map +1 -0
  108. package/lib/tools/shared/point/base-point.js +1 -1
  109. package/lib/tools/shared/point/base-point.js.map +1 -0
  110. package/lib/tools/shared/point/index.js +3 -3
  111. package/lib/tools/shared/point/index.js.map +1 -0
  112. package/lib/tools/shared/styles.js +7 -7
  113. package/lib/tools/shared/styles.js.map +1 -0
  114. package/lib/tools/shared/types.js +1 -1
  115. package/lib/tools/shared/types.js.map +1 -0
  116. package/lib/tools/sine/component.js +1 -1
  117. package/lib/tools/sine/component.js.map +1 -0
  118. package/lib/tools/sine/index.js +1 -1
  119. package/lib/tools/sine/index.js.map +1 -0
  120. package/lib/tools/vector/component.js +1 -1
  121. package/lib/tools/vector/component.js.map +1 -0
  122. package/lib/tools/vector/index.js +1 -1
  123. package/lib/tools/vector/index.js.map +1 -0
  124. package/lib/undo-redo.js +3 -3
  125. package/lib/undo-redo.js.map +1 -0
  126. package/lib/use-debounce.js +1 -1
  127. package/lib/use-debounce.js.map +1 -0
  128. package/lib/utils.js +1 -1
  129. package/lib/utils.js.map +1 -0
  130. package/package.json +13 -9
  131. package/src/axis/axes.jsx +1 -1
  132. package/src/coordinates-label.jsx +1 -1
  133. package/src/graph-with-controls.jsx +1 -1
  134. package/src/grid-setup.jsx +7 -10
  135. package/src/key-legend.jsx +131 -101
  136. package/src/labels.jsx +1 -1
  137. package/src/mark-label.jsx +1 -1
  138. package/src/toggle-bar.jsx +1 -1
  139. package/src/tools/circle/bg-circle.jsx +1 -1
  140. package/src/tools/circle/component.jsx +1 -1
  141. package/src/tools/polygon/line.jsx +1 -1
  142. package/src/tools/polygon/polygon.jsx +3 -3
  143. package/src/tools/shared/line/index.jsx +1 -1
  144. package/src/tools/shared/line/line-path.jsx +1 -1
  145. package/src/tools/shared/point/index.jsx +1 -1
  146. package/src/tools/shared/styles.js +1 -1
  147. package/src/undo-redo.jsx +1 -1
  148. package/lib/__tests__/graph-with-controls.test.js +0 -215
  149. package/lib/__tests__/graph.test.js +0 -290
  150. package/lib/__tests__/grid.test.js +0 -40
  151. package/lib/__tests__/labels.test.js +0 -59
  152. package/lib/__tests__/mark-label.test.js +0 -154
  153. package/lib/__tests__/toggle-bar.test.js +0 -54
  154. package/lib/__tests__/tool-menu.test.js +0 -43
  155. package/lib/__tests__/undo-redo.test.js +0 -42
  156. package/lib/__tests__/use-debounce.test.js +0 -28
  157. package/lib/__tests__/utils.js +0 -72
  158. package/lib/__tests__/utils.test.js +0 -133
  159. package/lib/axis/__tests__/arrow.test.js +0 -68
  160. package/lib/axis/__tests__/axes.test.js +0 -214
  161. package/lib/tools/absolute/__tests__/component.test.js +0 -74
  162. package/lib/tools/circle/__tests__/bg-circle.test.js +0 -46
  163. package/lib/tools/circle/__tests__/component.test.js +0 -259
  164. package/lib/tools/exponential/__tests__/component.test.js +0 -73
  165. package/lib/tools/line/__tests__/component.test.js +0 -56
  166. package/lib/tools/parabola/__tests__/component.test.js +0 -73
  167. package/lib/tools/point/__tests__/component.test.js +0 -97
  168. package/lib/tools/polygon/__tests__/component.test.js +0 -255
  169. package/lib/tools/polygon/__tests__/index.test.js +0 -95
  170. package/lib/tools/polygon/__tests__/line.test.js +0 -43
  171. package/lib/tools/polygon/__tests__/polygon.test.js +0 -73
  172. package/lib/tools/ray/__tests__/component.test.js +0 -48
  173. package/lib/tools/segment/__tests__/component.test.js +0 -48
  174. package/lib/tools/shared/__tests__/arrow-head.test.js +0 -62
  175. package/lib/tools/shared/line/__tests__/index.test.js +0 -301
  176. package/lib/tools/shared/line/__tests__/line-path.test.js +0 -78
  177. package/lib/tools/shared/line/__tests__/with-root-edge.test.js +0 -122
  178. package/lib/tools/shared/point/__tests__/arrow-point.test.js +0 -137
  179. package/lib/tools/shared/point/__tests__/base-point.test.js +0 -134
  180. package/lib/tools/sine/__tests__/component.test.js +0 -81
  181. package/lib/tools/vector/__tests__/component.test.js +0 -45
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/container/reducer.js"],"names":["marks","debug"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;eAEe;AAAA,SAAM,4BAAgB;AAAEA,IAAAA,KAAK,EAAE,2BAASA,iBAAT,EAAgB;AAAEC,MAAAA,KAAK,EAAE;AAAT,KAAhB;AAAT,GAAhB,CAAN;AAAA,C","sourcesContent":["import { combineReducers } from 'redux';\nimport marks from './marks';\nimport undoable from 'redux-undo';\n\nexport default () => combineReducers({ marks: undoable(marks, { debug: false }) });\n"],"file":"reducer.js"}
@@ -15,7 +15,7 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
15
15
 
16
16
  var _plot = require("@pie-lib/plot");
17
17
 
18
- var _renderUi = require("@pie-lib/render-ui");
18
+ var _index = require("./shared/index");
19
19
 
20
20
  var _styles = require("@material-ui/core/styles");
21
21
 
@@ -34,7 +34,7 @@ var styles = function styles(theme) {
34
34
  fontSize: theme.typography.fontSize,
35
35
  borderRadius: '8px',
36
36
  background: theme.palette.common.white,
37
- color: _renderUi.color.defaults.PRIMARY_DARK
37
+ color: _index.color.defaults.PRIMARY_DARK
38
38
  },
39
39
  inputLabel: {
40
40
  padding: 0
@@ -106,4 +106,4 @@ CoordinatesLabel.propTypes = {
106
106
  var _default = (0, _styles.withStyles)(styles)(CoordinatesLabel);
107
107
 
108
108
  exports["default"] = _default;
109
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb29yZGluYXRlcy1sYWJlbC5qc3giXSwibmFtZXMiOlsic3R5bGVzIiwidGhlbWUiLCJpbnB1dCIsImZvbnRGYW1pbHkiLCJ0eXBvZ3JhcGh5IiwiZm9udFNpemUiLCJib3JkZXJSYWRpdXMiLCJiYWNrZ3JvdW5kIiwicGFsZXR0ZSIsImNvbW1vbiIsIndoaXRlIiwiY29sb3IiLCJkZWZhdWx0cyIsIlBSSU1BUllfREFSSyIsImlucHV0TGFiZWwiLCJwYWRkaW5nIiwiZ2V0TGFiZWxQb3NpdGlvbiIsImdyYXBoUHJvcHMiLCJ4IiwieSIsImxhYmVsTGVuZ3RoIiwic2NhbGUiLCJkb21haW4iLCJyYW5nZSIsInRvcFNoaWZ0IiwibWluIiwibWF4IiwibGVmdFNoaWZ0IiwicmlnaHRFZGdlIiwibGVmdCIsInRvcCIsIkNvb3JkaW5hdGVzTGFiZWwiLCJjbGFzc2VzIiwibGFiZWwiLCJsZW5ndGgiLCJsYWJlbFBvc2l0aW9uIiwic3R5bGUiLCJwb3NpdGlvbiIsInBvaW50ZXJFdmVudHMiLCJ3aWR0aCIsImFyaWFMYWJlbCIsInByb3BUeXBlcyIsInR5cGVzIiwiR3JhcGhQcm9wc1R5cGUiLCJQcm9wVHlwZXMiLCJvYmplY3QiLCJudW1iZXIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7OztBQUVBLElBQU1BLE1BQU0sR0FBRyxTQUFUQSxNQUFTLENBQUNDLEtBQUQ7QUFBQSxTQUFZO0FBQ3pCQyxJQUFBQSxLQUFLLEVBQUU7QUFDTEMsTUFBQUEsVUFBVSxFQUFFRixLQUFLLENBQUNHLFVBQU4sQ0FBaUJELFVBRHhCO0FBRUxFLE1BQUFBLFFBQVEsRUFBRUosS0FBSyxDQUFDRyxVQUFOLENBQWlCQyxRQUZ0QjtBQUdMQyxNQUFBQSxZQUFZLEVBQUUsS0FIVDtBQUlMQyxNQUFBQSxVQUFVLEVBQUVOLEtBQUssQ0FBQ08sT0FBTixDQUFjQyxNQUFkLENBQXFCQyxLQUo1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QyxjQURTO0FBRTNCWCxFQUFBQSxPQUFPLEVBQUVZLHNCQUFVQyxNQUZRO0FBRzNCM0IsRUFBQUEsQ0FBQyxFQUFFMEIsc0JBQVVFLE1BSGM7QUFJM0IzQixFQUFBQSxDQUFDLEVBQUV5QixzQkFBVUU7QUFKYyxDQUE3Qjs7ZUFPZSx3QkFBVzlDLE1BQVgsRUFBbUIrQixnQkFBbkIsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgdHlwZXMgfSBmcm9tICdAcGllLWxpYi9wbG90JztcbmltcG9ydCB7IGNvbG9yIH0gZnJvbSAnQHBpZS1saWIvcmVuZGVyLXVpJztcbmltcG9ydCB7IHdpdGhTdHlsZXMgfSBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9zdHlsZXMnO1xuaW1wb3J0IElucHV0QmFzZSBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9JbnB1dEJhc2UnO1xuaW1wb3J0IHsgcm91bmROdW1iZXIgfSBmcm9tICcuL3V0aWxzJztcblxuY29uc3Qgc3R5bGVzID0gKHRoZW1lKSA9PiAoe1xuICBpbnB1dDoge1xuICAgIGZvbnRGYW1pbHk6IHRoZW1lLnR5cG9ncmFwaHkuZm9udEZhbWlseSxcbiAgICBmb250U2l6ZTogdGhlbWUudHlwb2dyYXBoeS5mb250U2l6ZSxcbiAgICBib3JkZXJSYWRpdXM6ICc4cHgnLFxuICAgIGJhY2tncm91bmQ6IHRoZW1lLnBhbGV0dGUuY29tbW9uLndoaXRlLFxuICAgIGNvbG9yOiBjb2xvci5kZWZhdWx0cy5QUklNQVJZX0RBUkssXG4gIH0sXG4gIGlucHV0TGFiZWw6IHtcbiAgICBwYWRkaW5nOiAwLFxuICB9LFxufSk7XG5cbmV4cG9ydCBjb25zdCBnZXRMYWJlbFBvc2l0aW9uID0gKGdyYXBoUHJvcHMsIHgsIHksIGxhYmVsTGVuZ3RoKSA9PiB7XG4gIGNvbnN0IHsgc2NhbGUsIGRvbWFpbiwgcmFuZ2UgfSA9IGdyYXBoUHJvcHM7XG4gIC8vIHRyZWF0IGNvcm5lciBjYXNlcyBmb3IgbWF4aW11bSBhbmQgbWluaW11bVxuICBjb25zdCB0b3BTaGlmdCA9IHkgPT09IHJhbmdlLm1pbiA/IDE2IDogeSA9PT0gcmFuZ2UubWF4ID8gMCA6IDg7XG4gIGNvbnN0IGxlZnRTaGlmdCA9IDEwO1xuICBjb25zdCByaWdodEVkZ2UgPSBzY2FsZS54KHgpICsgbGFiZWxMZW5ndGggKyBsZWZ0U2hpZnQ7XG5cbiAgaWYgKHJpZ2h0RWRnZSA+PSBzY2FsZS54KGRvbWFpbi5tYXgpKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxlZnQ6IHNjYWxlLngoeCkgLSBsZWZ0U2hpZnQgLSBsYWJlbExlbmd0aCxcbiAgICAgIHRvcDogc2NhbGUueSh5KSAtIHRvcFNoaWZ0LFxuICAgIH07XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGxlZnQ6IHNjYWxlLngoeCkgKyBsZWZ0U2hpZnQsXG4gICAgdG9wOiBzY2FsZS55KHkpIC0gdG9wU2hpZnQsXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgQ29vcmRpbmF0ZXNMYWJlbCA9ICh7IHgsIHksIGdyYXBoUHJvcHMsIGNsYXNzZXMgfSkgPT4ge1xuICBjb25zdCBsYWJlbCA9IGAoJHtyb3VuZE51bWJlcih4KX0sICR7cm91bmROdW1iZXIoeSl9KWA7XG4gIGNvbnN0IGxhYmVsTGVuZ3RoID0gKGxhYmVsLmxlbmd0aCB8fCAwKSAqIDY7XG4gIGNvbnN0IGxhYmVsUG9zaXRpb24gPSBnZXRMYWJlbFBvc2l0aW9uKGdyYXBoUHJvcHMsIHgsIHksIGxhYmVsTGVuZ3RoKTtcblxuICBjb25zdCBzdHlsZSA9IHtcbiAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICBwb2ludGVyRXZlbnRzOiAnYXV0bycsXG4gICAgd2lkdGg6IGxhYmVsTGVuZ3RoLFxuICAgIHBhZGRpbmc6IDAsXG4gICAgLi4ubGFiZWxQb3NpdGlvbixcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxJbnB1dEJhc2VcbiAgICAgIHN0eWxlPXtzdHlsZX1cbiAgICAgIGNsYXNzZXM9e3sgaW5wdXQ6IGNsYXNzZXMuaW5wdXRMYWJlbCB9fVxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLmlucHV0fVxuICAgICAgdmFsdWU9e2xhYmVsfVxuICAgICAgaW5wdXRQcm9wcz17eyBhcmlhTGFiZWw6ICduYWtlZCcgfX1cbiAgICAvPlxuICApO1xufTtcblxuQ29vcmRpbmF0ZXNMYWJlbC5wcm9wVHlwZXMgPSB7XG4gIGdyYXBoUHJvcHM6IHR5cGVzLkdyYXBoUHJvcHNUeXBlLFxuICBjbGFzc2VzOiBQcm9wVHlwZXMub2JqZWN0LFxuICB4OiBQcm9wVHlwZXMubnVtYmVyLFxuICB5OiBQcm9wVHlwZXMubnVtYmVyLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgd2l0aFN0eWxlcyhzdHlsZXMpKENvb3JkaW5hdGVzTGFiZWwpO1xuIl19
109
+ //# sourceMappingURL=coordinates-label.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/coordinates-label.jsx"],"names":["styles","theme","input","fontFamily","typography","fontSize","borderRadius","background","palette","common","white","color","defaults","PRIMARY_DARK","inputLabel","padding","getLabelPosition","graphProps","x","y","labelLength","scale","domain","range","topShift","min","max","leftShift","rightEdge","left","top","CoordinatesLabel","classes","label","length","labelPosition","style","position","pointerEvents","width","ariaLabel","propTypes","types","GraphPropsType","PropTypes","object","number"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { types } from '@pie-lib/plot';\nimport { color } from '../../render-ui/src/index';\nimport { withStyles } from '@material-ui/core/styles';\nimport InputBase from '@material-ui/core/InputBase';\nimport { roundNumber } from './utils';\n\nconst styles = (theme) => ({\n input: {\n fontFamily: theme.typography.fontFamily,\n fontSize: theme.typography.fontSize,\n borderRadius: '8px',\n background: theme.palette.common.white,\n color: color.defaults.PRIMARY_DARK,\n },\n inputLabel: {\n padding: 0,\n },\n});\n\nexport const getLabelPosition = (graphProps, x, y, labelLength) => {\n const { scale, domain, range } = graphProps;\n // treat corner cases for maximum and minimum\n const topShift = y === range.min ? 16 : y === range.max ? 0 : 8;\n const leftShift = 10;\n const rightEdge = scale.x(x) + labelLength + leftShift;\n\n if (rightEdge >= scale.x(domain.max)) {\n return {\n left: scale.x(x) - leftShift - labelLength,\n top: scale.y(y) - topShift,\n };\n }\n\n return {\n left: scale.x(x) + leftShift,\n top: scale.y(y) - topShift,\n };\n};\n\nexport const CoordinatesLabel = ({ x, y, graphProps, classes }) => {\n const label = `(${roundNumber(x)}, ${roundNumber(y)})`;\n const labelLength = (label.length || 0) * 6;\n const labelPosition = getLabelPosition(graphProps, x, y, labelLength);\n\n const style = {\n position: 'absolute',\n pointerEvents: 'auto',\n width: labelLength,\n padding: 0,\n ...labelPosition,\n };\n\n return (\n <InputBase\n style={style}\n classes={{ input: classes.inputLabel }}\n className={classes.input}\n value={label}\n inputProps={{ ariaLabel: 'naked' }}\n />\n );\n};\n\nCoordinatesLabel.propTypes = {\n graphProps: types.GraphPropsType,\n classes: PropTypes.object,\n x: PropTypes.number,\n y: PropTypes.number,\n};\n\nexport default withStyles(styles)(CoordinatesLabel);\n"],"file":"coordinates-label.js"}
@@ -35,7 +35,7 @@ var _uniq = _interopRequireDefault(require("lodash/uniq"));
35
35
 
36
36
  var _isString = _interopRequireDefault(require("lodash/isString"));
37
37
 
38
- var _renderUi = require("@pie-lib/render-ui");
38
+ var _index = require("./shared/index");
39
39
 
40
40
  var _toolMenu = _interopRequireDefault(require("./tool-menu"));
41
41
 
@@ -327,14 +327,14 @@ var styles = function styles(theme) {
327
327
  display: 'flex',
328
328
  justifyContent: 'space-between',
329
329
  padding: theme.spacing.unit,
330
- color: _renderUi.color.text(),
331
- backgroundColor: _renderUi.color.primaryLight(),
330
+ color: _index.color.text(),
331
+ backgroundColor: _index.color.primaryLight(),
332
332
  '& button': {
333
333
  fontSize: theme.typography.fontSize
334
334
  }
335
335
  },
336
336
  expansionPanel: {
337
- backgroundColor: _renderUi.color.primaryLight(),
337
+ backgroundColor: _index.color.primaryLight(),
338
338
  width: '100%'
339
339
  },
340
340
  summaryRoot: {
@@ -356,4 +356,4 @@ var styles = function styles(theme) {
356
356
  var _default = (0, _styles.withStyles)(styles)(GraphWithControls);
357
357
 
358
358
  exports["default"] = _default;
359
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ncmFwaC13aXRoLWNvbnRyb2xzLmpzeCJdLCJuYW1lcyI6WyJzZXRUb29sYmFyQXZhaWxhYmlsaXR5IiwidG9vbGJhclRvb2xzIiwidG9vbHNBcnIiLCJtYXAiLCJ0QSIsInRvb2xiYXIiLCJmaW5kIiwidCIsInR5cGUiLCJ0b29sSXNBdmFpbGFibGUiLCJ0b29scyIsImN1cnJlbnRUb29sIiwidG9vbCIsImdldEF2YWlsYWJsZVRvb2wiLCJmaWx0ZXJCeVZhbGlkVG9vbFR5cGVzIiwiYmFja2dyb3VuZE1hcmtzIiwiZmlsdGVyIiwiYk0iLCJhbGxUb29scyIsImZpbHRlckJ5VmlzaWJsZVRvb2xUeXBlcyIsIm1hcmtzIiwiZ2V0RGVmYXVsdEN1cnJlbnRUb29sIiwidG9vbFR5cGUiLCJDb2xsYXBzaWJsZSIsImNsYXNzZXMiLCJjaGlsZHJlbiIsInRpdGxlIiwiZXhwYW5zaW9uUGFuZWwiLCJyb290Iiwic3VtbWFyeVJvb3QiLCJjb250ZW50Iiwic3VtbWFyeUNvbnRlbnQiLCJkZXRhaWxzIiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwib2JqZWN0IiwiYXJyYXkiLCJzdHJpbmciLCJHcmFwaFdpdGhDb250cm9scyIsInByb3BzIiwic2V0U3RhdGUiLCJsYWJlbE1vZGVFbmFibGVkIiwic3RhdGUiLCJkZWZhdWx0VG9vbCIsInByZXZQcm9wcyIsImF4ZXNTZXR0aW5ncyIsImNsYXNzTmFtZSIsImNvb3JkaW5hdGVzT25Ib3ZlciIsImNvbGxhcHNpYmxlVG9vbGJhciIsImNvbGxhcHNpYmxlVG9vbGJhclRpdGxlIiwiZGlzYWJsZWQiLCJkaXNhYmxlZExhYmVscyIsImRpc2FibGVkVGl0bGUiLCJkb21haW4iLCJkcmFnZ2FibGVUb29scyIsImxhYmVscyIsImxhYmVsc1BsYWNlaG9sZGVycyIsIm9uQ2hhbmdlTGFiZWxzIiwib25DaGFuZ2VNYXJrcyIsIm9uQ2hhbmdlVGl0bGUiLCJvbkNoYW5nZVRvb2xzIiwib25VbmRvIiwib25SZWRvIiwib25SZXNldCIsInJhbmdlIiwic2l6ZSIsInNob3dMYWJlbHMiLCJzaG93UGl4ZWxHdWlkZXMiLCJzaG93VGl0bGUiLCJ0aXRsZVBsYWNlaG9sZGVyIiwibGFuZ3VhZ2UiLCJyZW1vdmVJbmNvbXBsZXRlVG9vbCIsImxpbWl0TGFiZWxpbmciLCJ0VCIsImdyYXBoQWN0aW9ucyIsImNoYW5nZUN1cnJlbnRUb29sIiwiZ3JhcGhXaXRoQ29udHJvbHMiLCJjb250cm9scyIsInIiLCJsYWJlbE5vZGUiLCJ1bmRlZmluZWQiLCJSZWFjdCIsIkNvbXBvbmVudCIsImdyYXBoUHJvcFR5cGVzIiwiZnVuYyIsImFycmF5T2YiLCJzdHlsZXMiLCJ0aGVtZSIsImRpc3BsYXkiLCJmbGV4RGlyZWN0aW9uIiwid2lkdGgiLCJqdXN0aWZ5Q29udGVudCIsInBhZGRpbmciLCJzcGFjaW5nIiwidW5pdCIsImNvbG9yIiwidGV4dCIsImJhY2tncm91bmRDb2xvciIsInByaW1hcnlMaWdodCIsImZvbnRTaXplIiwidHlwb2dyYXBoeSIsIm1pbkhlaWdodCIsIm1hcmdpbiIsIm1hcmdpblRvcCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7Ozs7Ozs7OztBQUVPLElBQU1BLHNCQUFzQixHQUFHLFNBQXpCQSxzQkFBeUIsQ0FBQ0MsWUFBRDtBQUFBLFNBQ3BDQyxnQkFBU0MsR0FBVCxDQUFhLFVBQUNDLEVBQUQ7QUFBQSwyQ0FBY0EsRUFBZDtBQUFrQkMsTUFBQUEsT0FBTyxFQUFFLENBQUMsQ0FBQ0osWUFBWSxDQUFDSyxJQUFiLENBQWtCLFVBQUNDLENBQUQ7QUFBQSxlQUFPQSxDQUFDLEtBQUtILEVBQUUsQ0FBQ0ksSUFBaEI7QUFBQSxPQUFsQjtBQUE3QjtBQUFBLEdBQWIsS0FBeUYsRUFEckQ7QUFBQSxDQUEvQjs7OztBQUdBLElBQU1DLGVBQWUsR0FB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QUFBLFFBQVEsRUFBRTtBQUNSVyxNQUFBQSxPQUFPLEVBQUUsTUFERDtBQUVSRyxNQUFBQSxjQUFjLEVBQUUsZUFGUjtBQUdSQyxNQUFBQSxPQUFPLEVBQUVMLEtBQUssQ0FBQ00sT0FBTixDQUFjQyxJQUhmO0FBSVJDLE1BQUFBLEtBQUssRUFBRUEsZ0JBQU1DLElBQU4sRUFKQztBQUtSQyxNQUFBQSxlQUFlLEVBQUVGLGdCQUFNRyxZQUFOLEVBTFQ7QUFNUixrQkFBWTtBQUNWQyxRQUFBQSxRQUFRLEVBQUVaLEtBQUssQ0FBQ2EsVUFBTixDQUFpQkQ7QUFEakI7QUFOSixLQU5lO0FBZ0J6QnhFLElBQUFBLGNBQWMsRUFBRTtBQUNkc0UsTUFBQUEsZUFBZSxFQUFFRixnQkFBTUcsWUFBTixFQURIO0FBRWRSLE1BQUFBLEtBQUssRUFBRTtBQUZPLEtBaEJTO0FBb0J6QjdELElBQUFBLFdBQVcsRUFBRTtBQUNYK0QsTUFBQUEsT0FBTyxjQUFPTCxLQUFLLENBQUNNLE9BQU4sQ0FBY0MsSUFBckIsT0FESTtBQUVYTyxNQUFBQSxTQUFTLEVBQUU7QUFGQSxLQXBCWTtBQXdCekJ0RSxJQUFBQSxjQUFjLEVBQUU7QUFDZHVFLE1BQUFBLE1BQU0sRUFBRTtBQURNLEtBeEJTO0FBMkJ6QnRFLElBQUFBLE9BQU8sRUFBRTtBQUNQNEQsTUFBQUEsT0FBTyxFQUFFLENBREY7QUFFUFcsTUFBQUEsU0FBUyxFQUFFaEIsS0FBSyxDQUFDTSxPQUFOLENBQWNDLElBRmxCO0FBR1BOLE1BQUFBLE9BQU8sRUFBRSxNQUhGO0FBSVBHLE1BQUFBLGNBQWMsRUFBRTtBQUpUO0FBM0JnQixHQUFaO0FBQUEsQ0FBZjs7ZUFtQ2Usd0JBQVdMLE1BQVgsRUFBbUJoRCxpQkFBbkIsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgd2l0aFN0eWxlcyB9IGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL3N0eWxlcyc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCB1bmlxIGZyb20gJ2xvZGFzaC91bmlxJztcbmltcG9ydCBpc1N0cmluZyBmcm9tICdsb2Rhc2gvaXNTdHJpbmcnO1xuaW1wb3J0IHsgY29sb3IgfSBmcm9tICdAcGllLWxpYi9yZW5kZXItdWknO1xuXG5pbXBvcnQgVG9vbE1lbnUgZnJvbSAnLi90b29sLW1lbnUnO1xuaW1wb3J0IEdyYXBoLCB7IGdyYXBoUHJvcFR5cGVzIH0gZnJvbSAnLi9ncmFwaCc7XG5pbXBvcnQgVW5kb1JlZG8gZnJvbSAnLi91bmRvLXJlZG8nO1xuaW1wb3J0IHsgYWxsVG9vbHMsIHRvb2xzQXJyIH0gZnJvbSAnLi90b29scyc7XG5pbXBvcnQgeyBFeHBhbnNpb25QYW5lbCwgRXhwYW5zaW9uUGFuZWxEZXRhaWxzLCBFeHBhbnNpb25QYW5lbFN1bW1hcnksIFR5cG9ncmFwaHkgfSBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZSc7XG5pbXBvcnQgRXhwYW5kTW9yZUljb24gZnJvbSAnQG1hdGVyaWFsLXVpL2ljb25zL0V4cGFuZE1vcmUnO1xuXG5leHBvcnQgY29uc3Qgc2V0VG9vbGJhckF2YWlsYWJpbGl0eSA9ICh0b29sYmFyVG9vbHMpID0+XG4gIHRvb2xzQXJyLm1hcCgodEEpID0+ICh7IC4uLnRBLCB0b29sYmFyOiAhIXRvb2xiYXJUb29scy5maW5kKCh0KSA9PiB0ID09PSB0QS50eXBlKSB9KSkgfHwgW107XG5cbmV4cG9ydCBjb25zdCB0b29sSXNBdmFpbGFibGUgPSAodG9vbHMsIGN1cnJlbnRUb29sKSA9PlxuICBjdXJyZW50VG9vbCAmJiB0b29scyAmJiAodG9vbHMuZmluZCgodG9vbCkgPT4gdG9vbC50eXBlID09PSBjdXJyZW50VG9vbC50eXBlKSB8fCB7fSkudG9vbGJhcjtcblxuZXhwb3J0IGNvbnN0IGdldEF2YWlsYWJsZVRvb2wgPSAodG9vbHMpID0+IHRvb2xzLmZpbmQoKHRvb2wpID0+IHRvb2wudG9vbGJhcik7XG5cbmV4cG9ydCBjb25zdCBmaWx0ZXJCeVZhbGlkVG9vbFR5cGVzID0gKGJhY2tncm91bmRNYXJrcykgPT5cbiAgYmFja2dyb3VuZE1hcmtzLmZpbHRlcigoYk0pID0+ICEhYWxsVG9vbHMuZmluZCgodG9vbCkgPT4gdG9vbCA9PT0gYk0udHlwZSkpO1xuXG5leHBvcnQgY29uc3QgZmlsdGVyQnlWaXNpYmxlVG9vbFR5cGVzID0gKHRvb2xiYXJUb29scywgbWFya3MpID0+XG4gIG1hcmtzLmZpbHRlcigoYk0pID0+ICEhdG9vbGJhclRvb2xzLmZpbmQoKHRvb2wpID0+IHRvb2wgPT09IGJNLnR5cGUpKTtcblxuY29uc3QgZ2V0RGVmYXVsdEN1cnJlbnRUb29sID0gKHRvb2xUeXBlKSA9PiB0b29sc0Fyci5maW5kKCh0b29sKSA9PiB0b29sLnR5cGUgPT09IHRvb2xUeXBlKSB8fCBudWxsO1xuXG5jb25zdCBDb2xsYXBzaWJsZSA9ICh7IGNsYXNzZXMsIGNoaWxkcmVuLCB0aXRsZSB9KSA9PiAoXG4gIDxFeHBhbnNpb25QYW5lbCBlbGV2YXRpb249ezB9IGNsYXNzTmFtZT17Y2xhc3Nlcy5leHBhbnNpb25QYW5lbH0gZGlzYWJsZWRHdXR0ZXJzPXt0cnVlfSBzcXVhcmU9e3RydWV9PlxuICAgIDxFeHBhbnNpb25QYW5lbFN1bW1hcnlcbiAgICAgIGNsYXNzZXM9e3tcbiAgICAgICAgcm9vdDogY2xhc3Nlcy5zdW1tYXJ5Um9vdCxcbiAgICAgICAgY29udGVudDogY2xhc3Nlcy5zdW1tYXJ5Q29udGVudCxcbiAgICAgIH19XG4gICAgICBleHBhbmRJY29uPXs8RXhwYW5kTW9yZUljb24gLz59XG4gICAgPlxuICAgICAgPFR5cG9ncmFwaHkgdmFyaWFudD1cInN1YmhlYWRpbmdcIj57dGl0bGV9PC9UeXBvZ3JhcGh5PlxuICAgIDwvRXhwYW5zaW9uUGFuZWxTdW1tYXJ5PlxuICAgIDxFeHBhbnNpb25QYW5lbERldGFpbHMgY2xhc3NOYW1lPXtjbGFzc2VzLmRldGFpbHN9PntjaGlsZHJlbn08L0V4cGFuc2lvblBhbmVsRGV0YWlscz5cbiAgPC9FeHBhbnNpb25QYW5lbD5cbik7XG5cbkNvbGxhcHNpYmxlLnByb3BUeXBlcyA9IHtcbiAgY2xhc3NlczogUHJvcFR5cGVzLm9iamVjdCxcbiAgY2hpbGRyZW46IFByb3BUeXBlcy5hcnJheSxcbiAgdGl0bGU6IFByb3BUeXBlcy5zdHJpbmcsXG59O1xuXG5leHBvcnQgY2xhc3MgR3JhcGhXaXRoQ29udHJvbHMgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIC4uLmdyYXBoUHJvcFR5cGVzLFxuICAgIG9uVW5kbzogUHJvcFR5cGVzLmZ1bmMsXG4gICAgb25SZWRvOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBvblJlc2V0OiBQcm9wVHlwZXMuZnVuYyxcbiAgICB0b29sYmFyVG9vbHM6IFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5zdHJpbmcpLCAvLyBhcnJheSBvZiB0b29sIHR5cGVzIHRoYXQgaGF2ZSB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIHRvb2xiYXIsIHNhbWUgc2hhcGUgYXMgJ2FsbFRvb2xzJ1xuICAgIGxhbmd1YWdlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICB9O1xuXG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgY29sbGFwc2libGVUb29sYmFyOiBmYWxzZSxcbiAgICBjb2xsYXBzaWJsZVRvb2xiYXJUaXRsZTogJycsXG4gICAgZGlzYWJsZWRMYWJlbHM6IGZhbHNlLFxuICAgIGRpc2FibGVkVGl0bGU6IGZhbHNlLFxuICAgIHNob3dMYWJlbHM6IHRydWUsXG4gICAgc2hvd1RpdGxlOiB0cnVlLFxuICAgIHRvb2xiYXJUb29sczogW10sXG4gIH07XG5cbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG5cbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgY3VycmVudFRvb2w6IGdldERlZmF1bHRDdXJyZW50VG9vbChwcm9wcy5kZWZhdWx0VG9vbCksXG4gICAgICBsYWJlbE1vZGVFbmFibGVkOiBmYWxzZSxcbiAgICB9O1xuICB9XG5cbiAgY29tcG9uZW50RGlkVXBkYXRlKHByZXZQcm9wcykge1xuICAgIGNvbnN0IHsgZGVmYXVsdFRvb2wgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBpZiAocHJldlByb3BzLmRlZmF1bHRUb29sICE9PSBkZWZhdWx0VG9vbCkge1xuICAgICAgY29uc3QgY3VycmVudFRvb2wgPSBnZXREZWZhdWx0Q3VycmVudFRvb2woZGVmYXVsdFRvb2wpO1xuXG4gICAgICB0aGlzLnNldFN0YXRlKHsgY3VycmVudFRvb2wgfSk7XG4gICAgfVxuICB9XG5cbiAgY2hhbmdlQ3VycmVudFRvb2wgPSAodG9vbCwgdG9vbHMpID0+XG4gICAgdGhpcy5zZXRTdGF0ZSh7IGN1cnJlbnRUb29sOiB0b29scy5maW5kKCh0KSA9PiB0LnR5cGUgPT09IHRvb2wpLCBsYWJlbE1vZGVFbmFibGVkOiB0b29sID09PSAnbGFiZWwnIH0pO1xuXG4gIHJlbmRlcigpIHtcbiAgICBsZXQgeyBjdXJyZW50VG9vbCwgbGFiZWxNb2RlRW5hYmxlZCB9ID0gdGhpcy5zdGF0ZTtcbiAgICBjb25zdCB7XG4gICAgICBheGVzU2V0dGluZ3MsXG4gICAgICBjbGFzc2VzLFxuICAgICAgY2xhc3NOYW1lLFxuICAgICAgY29vcmRpbmF0ZXNPbkhvdmVyLFxuICAgICAgY29sbGFwc2libGVUb29sYmFyLFxuICAgICAgY29sbGFwc2libGVUb29sYmFyVGl0bGUsXG4gICAgICBkaXNhYmxlZCxcbiAgICAgIGRpc2FibGVkTGFiZWxzLFxuICAgICAgZGlzYWJsZWRUaXRsZSxcbiAgICAgIGRvbWFpbixcbiAgICAgIGRyYWdnYWJsZVRvb2xzLFxuICAgICAgbGFiZWxzLFxuICAgICAgbGFiZWxzUGxhY2Vob2xkZXJzLFxuICAgICAgb25DaGFuZ2VMYWJlbHMsXG4gICAgICBvbkNoYW5nZU1hcmtzLFxuICAgICAgb25DaGFuZ2VUaXRsZSxcbiAgICAgIG9uQ2hhbmdlVG9vbHMsXG4gICAgICBvblVuZG8sXG4gICAgICBvblJlZG8sXG4gICAgICBvblJlc2V0LFxuICAgICAgcmFuZ2UsXG4gICAgICBzaXplLFxuICAgICAgc2hvd0xhYmVscyxcbiAgICAgIHNob3dQaXhlbEd1aWRlcyxcbiAgICAgIHNob3dUaXRsZSxcbiAgICAgIHRpdGxlLFxuICAgICAgdGl0bGVQbGFjZWhvbGRlcixcbiAgICAgIGxhbmd1YWdlLFxuICAgICAgcmVtb3ZlSW5jb21wbGV0ZVRvb2wsXG4gICAgICBsaW1pdExhYmVsaW5nLFxuICAgIH0gPSB0aGlzLnByb3BzO1xuICAgIGxldCB7IGJhY2tncm91bmRNYXJrcywgbWFya3MsIHRvb2xiYXJUb29scyB9ID0gdGhpcy5wcm9wcztcblxuICAgIC8vIG1ha2Ugc3VyZSBvbmx5IHZhbGlkIHRvb2wgdHlwZXMgYXJlIGtlcHQgKHN0cmluZykgYW5kIHdpdGhvdXQgZHVwbGljYXRlc1xuICAgIHRvb2xiYXJUb29scyA9IHVuaXEodG9vbGJhclRvb2xzIHx8IFtdKS5maWx0ZXIoKHRUKSA9PiAhIWlzU3RyaW5nKHRUKSkgfHwgW107XG5cbiAgICAvLyBrZWVwIG9ubHkgdGhlIGJhY2tncm91bmRNYXJrcyB0aGF0IGhhdmUgdmFsaWQgdHlwZXNcbiAgICBiYWNrZ3JvdW5kTWFya3MgPSBmaWx0ZXJCeVZhbGlkVG9vbFR5cGVzKGJhY2tncm91bmRNYXJrcyB8fCBbXSk7XG5cbiAgICAvLyBrZWVwIG9ubHkgdGhlIG1hcmtzIHRoYXQgaGF2ZSB0eXBlcyB3aGljaCBhcHBlYXIgaW4gdG9vbGJhclxuICAgIG1hcmtzID0gZmlsdGVyQnlWaXNpYmxlVG9vbFR5cGVzKHRvb2xiYXJUb29scywgbWFya3MgfHwgW10pO1xuXG4gICAgY29uc3QgdG9vbHMgPSBzZXRUb29sYmFyQXZhaWxhYmlsaXR5KHRvb2xiYXJUb29scyk7XG5cbiAgICAvLyBzZXQgY3VycmVudCB0b29sIGlmIHRoZXJlJ3Mgbm8gY3VycmVudCB0b29sIG9yIGlmIHRoZSBleGlzdGluZyBvbmUgaXMgbm8gbG9uZ2VyIGF2YWlsYWJsZVxuICAgIGlmICghY3VycmVudFRvb2wgfHwgIXRvb2xJc0F2YWlsYWJsZSh0b29scywgY3VycmVudFRvb2wpKSB7XG4gICAgICBjdXJyZW50VG9vbCA9IGdldEF2YWlsYWJsZVRvb2wodG9vbHMpO1xuICAgIH1cblxuICAgIGNvbnN0IGdyYXBoQWN0aW9ucyA9IChcbiAgICAgIDxSZWFjdC5GcmFnbWVudD5cbiAgICAgICAgPFRvb2xNZW51XG4gICAgICAgICAgY3VycmVudFRvb2xUeXBlPXtjdXJyZW50VG9vbCAmJiBjdXJyZW50VG9vbC50eXBlfVxuICAgICAgICAgIGRpc2FibGVkPXshIWRpc2FibGVkfVxuICAgICAgICAgIGRyYWdnYWJsZVRvb2xzPXtkcmFnZ2FibGVUb29sc31cbiAgICAgICAgICBsYWJlbE1vZGVFbmFibGVkPXtsYWJlbE1vZGVFbmFibGVkfVxuICAgICAgICAgIG9uQ2hhbmdlPXsodG9vbCkgPT4gdGhpcy5jaGFuZ2VDdXJyZW50VG9vbCh0b29sLCB0b29scyl9XG4gICAgICAgICAgdG9vbGJhclRvb2xzPXt0b29sYmFyVG9vbHN9XG4gICAgICAgICAgb25DaGFuZ2VUb29scz17b25DaGFuZ2VUb29sc31cbiAgICAgICAgICBsYW5ndWFnZT17bGFuZ3VhZ2V9XG4gICAgICAgIC8+XG5cbiAgICAgICAgeyFkaXNhYmxlZCAmJiA8VW5kb1JlZG8gb25VbmRvPXtvblVuZG99IG9uUmVkbz17b25SZWRvfSBvblJlc2V0PXtvblJlc2V0fSBsYW5ndWFnZT17bGFuZ3VhZ2V9IC8+fVxuICAgICAgPC9SZWFjdC5GcmFnbWVudD5cbiAgICApO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbGFzc05hbWVzKGNsYXNzZXMuZ3JhcGhXaXRoQ29udHJvbHMsIGNsYXNzTmFtZSl9PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3Nlcy5jb250cm9sc30+XG4gICAgICAgICAge2NvbGxhcHNpYmxlVG9vbGJhciA/IChcbiAgICAgICAgICAgIDxDb2xsYXBzaWJsZSBjbGFzc2VzPXtjbGFzc2VzfSB0aXRsZT17Y29sbGFwc2libGVUb29sYmFyVGl0bGV9PlxuICAgICAgICAgICAgICB7Z3JhcGhBY3Rpb25zfVxuICAgICAgICAgICAgPC9Db2xsYXBzaWJsZT5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgZ3JhcGhBY3Rpb25zXG4gICAgICAgICAgKX1cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiByZWY9eyhyKSA9PiAodGhpcy5sYWJlbE5vZGUgPSByKX0gLz5cblxuICAgICAgICA8R3JhcGhcbiAgICAgICAgICBheGVzU2V0dGluZ3M9e2F4ZXNTZXR0aW5nc31cbiAgICAgICAgICBiYWNrZ3JvdW5kTWFya3M9e2JhY2tncm91bmRNYXJrc31cbiAgICAgICAgICBjb29yZGluYXRlc09uSG92ZXI9e2Nvb3JkaW5hdGVzT25Ib3Zlcn1cbiAgICAgICAgICBjdXJyZW50VG9vbD17Y3VycmVudFRvb2x9XG4gICAgICAgICAgZGlzYWJsZWRMYWJlbHM9e2Rpc2FibGVkTGFiZWxzfVxuICAgICAgICAgIGRpc2FibGVkVGl0bGU9e2Rpc2FibGVkVGl0bGV9XG4gICAgICAgICAgZG9tYWluPXtkb21haW59XG4gICAgICAgICAgbGFiZWxzPXtsYWJlbHN9XG4gICAgICAgICAgbGFiZWxNb2RlRW5hYmxlZD17bGFiZWxNb2RlRW5hYmxlZH1cbiAgICAgICAgICBsYWJlbHNQbGFjZWhvbGRlcnM9e2xhYmVsc1BsYWNlaG9sZGVyc31cbiAgICAgICAgICBtYXJrcz17bWFya3N9XG4gICAgICAgICAgb25DaGFuZ2VNYXJrcz17IWRpc2FibGVkID8gb25DaGFuZ2VNYXJrcyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICBvbkNoYW5nZUxhYmVscz17b25DaGFuZ2VMYWJlbHN9XG4gICAgICAgICAgb25DaGFuZ2VUaXRsZT17b25DaGFuZ2VUaXRsZX1cbiAgICAgICAgICByYW5nZT17cmFuZ2V9XG4gICAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgICBzaG93TGFiZWxzPXtzaG93TGFiZWxzfVxuICAgICAgICAgIHNob3dQaXhlbEd1aWRlcz17c2hvd1BpeGVsR3VpZGVzfVxuICAgICAgICAgIHNob3dUaXRsZT17c2hvd1RpdGxlfVxuICAgICAgICAgIHRpdGxlPXt0aXRsZX1cbiAgICAgICAgICB0aXRsZVBsYWNlaG9sZGVyPXt0aXRsZVBsYWNlaG9sZGVyfVxuICAgICAgICAgIHRvb2xzPXt0b29sc31cbiAgICAgICAgICByZW1vdmVJbmNvbXBsZXRlVG9vbD17cmVtb3ZlSW5jb21wbGV0ZVRvb2x9XG4gICAgICAgICAgbGltaXRMYWJlbGluZz17bGltaXRMYWJlbGluZ31cbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cbn1cblxuY29uc3Qgc3R5bGVzID0gKHRoZW1lKSA9PiAoe1xuICBncmFwaFdpdGhDb250cm9sczoge1xuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyxcbiAgICB3aWR0aDogJ21pbi1jb250ZW50JyxcbiAgfSxcbiAgY29udHJvbHM6IHtcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAganVzdGlmeUNvbnRlbnQ6ICdzcGFjZS1iZXR3ZWVuJyxcbiAgICBwYWRkaW5nOiB0aGVtZS5zcGFjaW5nLnVuaXQsXG4gICAgY29sb3I6IGNvbG9yLnRleHQoKSxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IGNvbG9yLnByaW1hcnlMaWdodCgpLFxuICAgICcmIGJ1dHRvbic6IHtcbiAgICAgIGZvbnRTaXplOiB0aGVtZS50eXBvZ3JhcGh5LmZvbnRTaXplLFxuICAgIH0sXG4gIH0sXG4gIGV4cGFuc2lvblBhbmVsOiB7XG4gICAgYmFja2dyb3VuZENvbG9yOiBjb2xvci5wcmltYXJ5TGlnaHQoKSxcbiAgICB3aWR0aDogJzEwMCUnLFxuICB9LFxuICBzdW1tYXJ5Um9vdDoge1xuICAgIHBhZGRpbmc6IGAwICR7dGhlbWUuc3BhY2luZy51bml0fXB4YCxcbiAgICBtaW5IZWlnaHQ6ICczMnB4ICFpbXBvcnRhbnQnLFxuICB9LFxuICBzdW1tYXJ5Q29udGVudDoge1xuICAgIG1hcmdpbjogJzRweCAwICFpbXBvcnRhbnQnLFxuICB9LFxuICBkZXRhaWxzOiB7XG4gICAgcGFkZGluZzogMCxcbiAgICBtYXJnaW5Ub3A6IHRoZW1lLnNwYWNpbmcudW5pdCxcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAganVzdGlmeUNvbnRlbnQ6ICdzcGFjZS1iZXR3ZWVuJyxcbiAgfSxcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCB3aXRoU3R5bGVzKHN0eWxlcykoR3JhcGhXaXRoQ29udHJvbHMpO1xuIl19
359
+ //# sourceMappingURL=graph-with-controls.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/graph-with-controls.jsx"],"names":["setToolbarAvailability","toolbarTools","toolsArr","map","tA","toolbar","find","t","type","toolIsAvailable","tools","currentTool","tool","getAvailableTool","filterByValidToolTypes","backgroundMarks","filter","bM","allTools","filterByVisibleToolTypes","marks","getDefaultCurrentTool","toolType","Collapsible","classes","children","title","expansionPanel","root","summaryRoot","content","summaryContent","details","propTypes","PropTypes","object","array","string","GraphWithControls","props","setState","labelModeEnabled","state","defaultTool","prevProps","axesSettings","className","coordinatesOnHover","collapsibleToolbar","collapsibleToolbarTitle","disabled","disabledLabels","disabledTitle","domain","draggableTools","labels","labelsPlaceholders","onChangeLabels","onChangeMarks","onChangeTitle","onChangeTools","onUndo","onRedo","onReset","range","size","showLabels","showPixelGuides","showTitle","titlePlaceholder","language","removeIncompleteTool","limitLabeling","tT","graphActions","changeCurrentTool","graphWithControls","controls","r","labelNode","undefined","React","Component","graphPropTypes","func","arrayOf","styles","theme","display","flexDirection","width","justifyContent","padding","spacing","unit","color","text","backgroundColor","primaryLight","fontSize","typography","minHeight","margin","marginTop"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport uniq from 'lodash/uniq';\nimport isString from 'lodash/isString';\nimport { color } from '../../render-ui/src/index';\n\nimport ToolMenu from './tool-menu';\nimport Graph, { graphPropTypes } from './graph';\nimport UndoRedo from './undo-redo';\nimport { allTools, toolsArr } from './tools';\nimport { ExpansionPanel, ExpansionPanelDetails, ExpansionPanelSummary, Typography } from '@material-ui/core';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\n\nexport const setToolbarAvailability = (toolbarTools) =>\n toolsArr.map((tA) => ({ ...tA, toolbar: !!toolbarTools.find((t) => t === tA.type) })) || [];\n\nexport const toolIsAvailable = (tools, currentTool) =>\n currentTool && tools && (tools.find((tool) => tool.type === currentTool.type) || {}).toolbar;\n\nexport const getAvailableTool = (tools) => tools.find((tool) => tool.toolbar);\n\nexport const filterByValidToolTypes = (backgroundMarks) =>\n backgroundMarks.filter((bM) => !!allTools.find((tool) => tool === bM.type));\n\nexport const filterByVisibleToolTypes = (toolbarTools, marks) =>\n marks.filter((bM) => !!toolbarTools.find((tool) => tool === bM.type));\n\nconst getDefaultCurrentTool = (toolType) => toolsArr.find((tool) => tool.type === toolType) || null;\n\nconst Collapsible = ({ classes, children, title }) => (\n <ExpansionPanel elevation={0} className={classes.expansionPanel} disabledGutters={true} square={true}>\n <ExpansionPanelSummary\n classes={{\n root: classes.summaryRoot,\n content: classes.summaryContent,\n }}\n expandIcon={<ExpandMoreIcon />}\n >\n <Typography variant=\"subheading\">{title}</Typography>\n </ExpansionPanelSummary>\n <ExpansionPanelDetails className={classes.details}>{children}</ExpansionPanelDetails>\n </ExpansionPanel>\n);\n\nCollapsible.propTypes = {\n classes: PropTypes.object,\n children: PropTypes.array,\n title: PropTypes.string,\n};\n\nexport class GraphWithControls extends React.Component {\n static propTypes = {\n ...graphPropTypes,\n onUndo: PropTypes.func,\n onRedo: PropTypes.func,\n onReset: PropTypes.func,\n toolbarTools: PropTypes.arrayOf(PropTypes.string), // array of tool types that have to be displayed in the toolbar, same shape as 'allTools'\n language: PropTypes.string,\n };\n\n static defaultProps = {\n collapsibleToolbar: false,\n collapsibleToolbarTitle: '',\n disabledLabels: false,\n disabledTitle: false,\n showLabels: true,\n showTitle: true,\n toolbarTools: [],\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n currentTool: getDefaultCurrentTool(props.defaultTool),\n labelModeEnabled: false,\n };\n }\n\n componentDidUpdate(prevProps) {\n const { defaultTool } = this.props;\n\n if (prevProps.defaultTool !== defaultTool) {\n const currentTool = getDefaultCurrentTool(defaultTool);\n\n this.setState({ currentTool });\n }\n }\n\n changeCurrentTool = (tool, tools) =>\n this.setState({ currentTool: tools.find((t) => t.type === tool), labelModeEnabled: tool === 'label' });\n\n render() {\n let { currentTool, labelModeEnabled } = this.state;\n const {\n axesSettings,\n classes,\n className,\n coordinatesOnHover,\n collapsibleToolbar,\n collapsibleToolbarTitle,\n disabled,\n disabledLabels,\n disabledTitle,\n domain,\n draggableTools,\n labels,\n labelsPlaceholders,\n onChangeLabels,\n onChangeMarks,\n onChangeTitle,\n onChangeTools,\n onUndo,\n onRedo,\n onReset,\n range,\n size,\n showLabels,\n showPixelGuides,\n showTitle,\n title,\n titlePlaceholder,\n language,\n removeIncompleteTool,\n limitLabeling,\n } = this.props;\n let { backgroundMarks, marks, toolbarTools } = this.props;\n\n // make sure only valid tool types are kept (string) and without duplicates\n toolbarTools = uniq(toolbarTools || []).filter((tT) => !!isString(tT)) || [];\n\n // keep only the backgroundMarks that have valid types\n backgroundMarks = filterByValidToolTypes(backgroundMarks || []);\n\n // keep only the marks that have types which appear in toolbar\n marks = filterByVisibleToolTypes(toolbarTools, marks || []);\n\n const tools = setToolbarAvailability(toolbarTools);\n\n // set current tool if there's no current tool or if the existing one is no longer available\n if (!currentTool || !toolIsAvailable(tools, currentTool)) {\n currentTool = getAvailableTool(tools);\n }\n\n const graphActions = (\n <React.Fragment>\n <ToolMenu\n currentToolType={currentTool && currentTool.type}\n disabled={!!disabled}\n draggableTools={draggableTools}\n labelModeEnabled={labelModeEnabled}\n onChange={(tool) => this.changeCurrentTool(tool, tools)}\n toolbarTools={toolbarTools}\n onChangeTools={onChangeTools}\n language={language}\n />\n\n {!disabled && <UndoRedo onUndo={onUndo} onRedo={onRedo} onReset={onReset} language={language} />}\n </React.Fragment>\n );\n\n return (\n <div className={classNames(classes.graphWithControls, className)}>\n <div className={classes.controls}>\n {collapsibleToolbar ? (\n <Collapsible classes={classes} title={collapsibleToolbarTitle}>\n {graphActions}\n </Collapsible>\n ) : (\n graphActions\n )}\n </div>\n\n <div ref={(r) => (this.labelNode = r)} />\n\n <Graph\n axesSettings={axesSettings}\n backgroundMarks={backgroundMarks}\n coordinatesOnHover={coordinatesOnHover}\n currentTool={currentTool}\n disabledLabels={disabledLabels}\n disabledTitle={disabledTitle}\n domain={domain}\n labels={labels}\n labelModeEnabled={labelModeEnabled}\n labelsPlaceholders={labelsPlaceholders}\n marks={marks}\n onChangeMarks={!disabled ? onChangeMarks : undefined}\n onChangeLabels={onChangeLabels}\n onChangeTitle={onChangeTitle}\n range={range}\n size={size}\n showLabels={showLabels}\n showPixelGuides={showPixelGuides}\n showTitle={showTitle}\n title={title}\n titlePlaceholder={titlePlaceholder}\n tools={tools}\n removeIncompleteTool={removeIncompleteTool}\n limitLabeling={limitLabeling}\n />\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n graphWithControls: {\n display: 'flex',\n flexDirection: 'column',\n width: 'min-content',\n },\n controls: {\n display: 'flex',\n justifyContent: 'space-between',\n padding: theme.spacing.unit,\n color: color.text(),\n backgroundColor: color.primaryLight(),\n '& button': {\n fontSize: theme.typography.fontSize,\n },\n },\n expansionPanel: {\n backgroundColor: color.primaryLight(),\n width: '100%',\n },\n summaryRoot: {\n padding: `0 ${theme.spacing.unit}px`,\n minHeight: '32px !important',\n },\n summaryContent: {\n margin: '4px 0 !important',\n },\n details: {\n padding: 0,\n marginTop: theme.spacing.unit,\n display: 'flex',\n justifyContent: 'space-between',\n },\n});\n\nexport default withStyles(styles)(GraphWithControls);\n"],"file":"graph-with-controls.js"}
package/lib/graph.js CHANGED
@@ -368,4 +368,4 @@ exports.Graph = Graph;
368
368
  });
369
369
  var _default = Graph;
370
370
  exports["default"] = _default;
371
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ncmFwaC5qc3giXSwibmFtZXMiOlsibG9nIiwiZ3JhcGhQcm9wVHlwZXMiLCJheGVzU2V0dGluZ3MiLCJQcm9wVHlwZXMiLCJzaGFwZSIsIkF4aXNQcm9wVHlwZXMiLCJiYWNrZ3JvdW5kTWFya3MiLCJhcnJheSIsImNsYXNzTmFtZSIsInN0cmluZyIsImNvbGxhcHNpYmxlVG9vbGJhciIsImJvb2wiLCJjb2xsYXBzaWJsZVRvb2xiYXJUaXRsZSIsImRpc2FibGVkTGFiZWxzIiwiZGlzYWJsZWRUaXRsZSIsImRvbWFpbiIsInR5cGVzIiwiRG9tYWluVHlwZSIsImxhYmVscyIsIkxhYmVsVHlwZSIsImxhYmVsTW9kZUVuYWJsZWQiLCJjb29yZGluYXRlc09uSG92ZXIiLCJtYXJrcyIsIm9uQ2hhbmdlTGFiZWxzIiwiZnVuYyIsIm9uQ2hhbmdlTWFya3MiLCJvbkNoYW5nZVRpdGxlIiwicmFuZ2UiLCJzaXplIiwid2lkdGgiLCJudW1iZXIiLCJpc1JlcXVpcmVkIiwiaGVpZ2h0Iiwic2hvd0xhYmVscyIsInNob3dQaXhlbEd1aWRlcyIsInNob3dUaXRsZSIsInRpdGxlIiwidG9vbHMiLCJsaW1pdExhYmVsaW5nIiwiZ2V0TWFza1NpemUiLCJ4IiwieSIsInJlbW92ZUJ1aWxkaW5nVG9vbElmQ3VycmVudFRvb2xEaWZmZXJzIiwiY3VycmVudFRvb2wiLCJyZW1vdmVJbmNvbXBsZXRlVG9vbCIsImJ1aWxkaW5nTWFyayIsImZpbHRlciIsIm0iLCJidWlsZGluZyIsIm5ld01hcmtzIiwidHlwZSIsImluZGV4IiwiZmluZEluZGV4Iiwic3BsaWNlIiwiR3JhcGgiLCJwcm9wcyIsInNldFN0YXRlIiwibGFiZWxOb2RlIiwib2xkTWFyayIsIm5ld01hcmsiLCJtYXJrRGF0YSIsInVwZGF0ZWRNYXJrIiwiY29tcGxldGUiLCJ1cGRhdGVNYXJrcyIsImV4aXN0aW5nIiwidXBkYXRlIiwiYWRkSWZNaXNzaW5nIiwibWFyayIsInRvb2wiLCJmaW5kIiwidCIsIkNvbXBvbmVudCIsInBvaW50IiwidW5kZWZpbmVkIiwiaW5jbHVkZXMiLCJhZGRQb2ludCIsIm1hc2tVaWQiLCJnZW5lcmF0ZU1hc2tJZCIsIk1hdGgiLCJyYW5kb20iLCJ0b0ZpeGVkIiwibGFiZWxzUGxhY2Vob2xkZXJzIiwidGl0bGVQbGFjZWhvbGRlciIsIm1hdGhNbE9wdGlvbnMiLCJncmFwaFByb3BzIiwicm9vdE5vZGUiLCJtYXNrU2l6ZSIsImNvbW1vbiIsInIiLCJwYWRkaW5nIiwib25CZ0NsaWNrIiwibWFwIiwiZ2V0Q29tcG9uZW50IiwibWFya1R5cGUiLCJkaXNhYmxlZCIsImlzQmFja2dyb3VuZCIsInN0YXRlIiwiY2hhbmdlTWFyayIsImNvbXBsZXRlTWFyayIsInN0YXJ0RHJhZyIsInN0b3BEcmFnIiwicG9pbnRlckV2ZW50cyIsImZvbnRTaXplIiwiUmVhY3QiLCJvYmplY3QiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7Ozs7O0FBRUEsSUFBTUEsR0FBRyxHQUFHLHVCQUFNLHdCQUFOLENBQVo7QUFFTyxJQUFNQyxjQUFjLEdBQUc7QUFDNUJDLEVBQUFBLFlBQVksRUFBRUMsc0JBQVVDLEtBQVYsQ0FBZ0JDLG1CQUFoQixDQURjO0FBRTVCQyxFQUFBQSxlQUFlLEVBQUVILHNCQUFVSSxLQUZDO0FBRzVCQyxFQUFBQSxTQUFTLEVBQUVMLHNCQUFVTSxNQUhPO0FBSTVCQyxFQUFBQSxrQkFBa0IsRUFBRVAsc0JBQVVRLElBSkY7QUFLNUJDLEVBQUFBLHVCQUF1QixFQUFFVCxzQkFBVU0sTUFMUDtBQU01QkksRUFBQUEsY0FBYyxFQUFFVixzQkFBVVEsSUFORTtBQU81QkcsRUFBQUEsYUFBYSxFQUFFWCxzQkFBVVEsSUFQRztBQVE1QkksRUFBQUEsTUFBTSxFQUFFQyxZQUFNQyxVQVJjO0FBUzVCQyxFQUFBQSxNQUFNLEVBQUVm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S0FBS2xELFdBQVcsQ0FBQ087QUFWeEQsV0FXTXFDLE1BWE4sRUFERjtBQWVELE9BbkJBLENBaEJILGVBb0NFO0FBQ0UsUUFBQSxHQUFHLEVBQUUsYUFBQzlCLFNBQUQ7QUFBQSxpQkFBZ0IsTUFBSSxDQUFDQSxTQUFMLEdBQWlCQSxTQUFqQztBQUFBLFNBRFA7QUFFRSxRQUFBLENBQUMsRUFBQyxHQUZKO0FBR0UsUUFBQSxDQUFDLEVBQUM7QUFISixTQUlNN0IsSUFKTjtBQUtFLFFBQUEsS0FBSyxFQUFFO0FBQUV5RSxVQUFBQSxhQUFhLEVBQUUsTUFBakI7QUFBeUJDLFVBQUFBLFFBQVEsRUFBRTtBQUFuQztBQUxULFNBcENGLENBWkYsQ0FoQkYsQ0FERjtBQTRFRDs7O0VBdk53QkMsa0JBQU1oQyxTOzs7aUNBQXBCakIsSywrQ0FPTnJELGM7QUFDSDBDLEVBQUFBLFdBQVcsRUFBRXhDLHNCQUFVcUc7O2lDQVJkbEQsSyxrQkFXVztBQUNwQjdCLEVBQUFBLGFBQWEsRUFBRSx5QkFBTSxDQUFFLENBREg7QUFFcEJaLEVBQUFBLGNBQWMsRUFBRSxLQUZJO0FBR3BCQyxFQUFBQSxhQUFhLEVBQUU7QUFISyxDO2VBK01Ud0MsSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IGlzRXF1YWwgZnJvbSAnbG9kYXNoL2lzRXF1YWwnO1xuaW1wb3J0IGNsb25lRGVlcCBmcm9tICdsb2Rhc2gvY2xvbmVEZWVwJztcbmltcG9ydCB7IFJvb3QsIHR5cGVzLCBjcmVhdGVHcmFwaFByb3BzIH0gZnJvbSAnQHBpZS1saWIvcGxvdCc7XG5pbXBvcnQgZGVidWcgZnJvbSAnZGVidWcnO1xuXG5pbXBvcnQgeyBBeGVzLCBBeGlzUHJvcFR5cGVzIH0gZnJvbSAnLi9heGlzJztcbmltcG9ydCBHcmlkIGZyb20gJy4vZ3JpZCc7XG5pbXBvcnQgeyBMYWJlbFR5cGUgfSBmcm9tICcuL2xhYmVscyc7XG5pbXBvcnQgQmcgZnJvbSAnLi9iZyc7XG5pbXBvcnQgeyBpc0R1cGxpY2F0ZWRNYXJrIH0gZnJvbSAnLi91dGlscyc7XG5cbmNvbnN0IGxvZyA9IGRlYnVnKCdwaWUtbGliOmdyYXBoaW5nOmdyYXBoJyk7XG5cbmV4cG9ydCBjb25zdCBncmFwaFByb3BUeXBlcyA9IHtcbiAgYXhlc1NldHRpbmdzOiBQcm9wVHlwZXMuc2hhcGUoQXhpc1Byb3BUeXBlcyksXG4gIGJhY2tncm91bmRNYXJrczogUHJvcFR5cGVzLmFycmF5LFxuICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGNvbGxhcHNpYmxlVG9vbGJhcjogUHJvcFR5cGVzLmJvb2wsXG4gIGNvbGxhcHNpYmxlVG9vbGJhclRpdGxlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBkaXNhYmxlZExhYmVsczogUHJvcFR5cGVzLmJvb2wsXG4gIGRpc2FibGVkVGl0bGU6IFByb3BUeXBlcy5ib29sLFxuICBkb21haW46IHR5cGVzLkRvbWFpblR5cGUsXG4gIGxhYmVsczogUHJvcFR5cGVzLnNoYXBlKExhYmVsVHlwZSksXG4gIGxhYmVsTW9kZUVuYWJsZWQ6IFByb3BUeXBlcy5ib29sLFxuICBjb29yZGluYXRlc09uSG92ZXI6IFByb3BUeXBlcy5ib29sLFxuICBtYXJrczogUHJvcFR5cGVzLmFycmF5LFxuICBvbkNoYW5nZUxhYmVsczogUHJvcFR5cGVzLmZ1bmMsXG4gIG9uQ2hhbmdlTWFya3M6IFByb3BUeXBlcy5mdW5jLFxuICBvbkNoYW5nZVRpdGxlOiBQcm9wVHlwZXMuZnVuYyxcbiAgcmFuZ2U6IHR5cGVzLkRvbWFpblR5cGUsXG4gIHNpemU6IFByb3BUeXBlcy5zaGFwZSh7XG4gICAgd2lkdGg6IFByb3BUeXBlcy5udW1iZXIuaXNSZXF1aXJlZCxcbiAgICBoZWlnaHQ6IFByb3BUeXBlcy5udW1iZXIuaXNSZXF1aXJlZCxcbiAgfSksXG4gIHNob3dMYWJlbHM6IFByb3BUeXBlcy5ib29sLFxuICBzaG93UGl4ZWxHdWlkZXM6IFByb3BUeXBlcy5ib29sLFxuICBzaG93VGl0bGU6IFByb3BUeXBlcy5ib29sLFxuICB0aXRsZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgdG9vbHM6IFByb3BUeXBlcy5hcnJheSxcbiAgbGltaXRMYWJlbGluZzogUHJvcFR5cGVzLmJvb2wsXG59O1xuXG5jb25zdCBnZXRNYXNrU2l6ZSA9IChzaXplKSA9PiAoe1xuICB4OiAtMjMsXG4gIHk6IC0yMyxcbiAgd2lkdGg6IHNpemUud2lkdGggKyA0NixcbiAgaGVpZ2h0OiBzaXplLmhlaWdodCArIDQ2LFxufSk7XG5cbmV4cG9ydCBjb25zdCByZW1vdmVCdWlsZGluZ1Rvb2xJZkN1cnJlbnRUb29sRGlmZmVycyA9ICh7IG1hcmtzLCBjdXJyZW50VG9vbCwgb25DaGFuZ2VNYXJrcywgcmVtb3ZlSW5jb21wbGV0ZVRvb2wgfSkgPT4ge1xuICBjb25zdCBidWlsZGluZ01hcmsgPSBtYXJrcy5maWx0ZXIoKG0pID0+IG0uYnVpbGRpbmcpWzBdO1xuICBsZXQgbmV3TWFya3MgPSBjbG9uZURlZXAobWFya3MpO1xuXG4gIGlmIChidWlsZGluZ01hcmsgJiYgY3VycmVudFRvb2wgJiYgYnVpbGRpbmdNYXJrLnR5cGUgIT09IGN1cnJlbnRUb29sLnR5cGUpIHtcbiAgICBjb25zdCBpbmRleCA9IG5ld01hcmtzLmZpbmRJbmRleCgobSkgPT4gaXNFcXVhbChtLCBidWlsZGluZ01hcmspKTtcblxuICAgIGlmIChpbmRleCA+PSAwKSB7XG4gICAgICBuZXdNYXJrcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIH1cbiAgfVxuICBpZiAocmVtb3ZlSW5jb21wbGV0ZVRvb2wgJiYgIWlzRXF1YWwobmV3TWFya3MsIG1hcmtzKSkge1xuICAgIG9uQ2hhbmdlTWFya3MobmV3TWFya3MpO1xuICB9XG4gIHJldHVybiBuZXdNYXJrcztcbn07XG5cbmV4cG9ydCBjbGFzcyBHcmFwaCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuICAgIHRoaXMubWFza1VpZCA9IHRoaXMuZ2VuZXJhdGVNYXNrSWQoKTtcbiAgfVxuXG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgLi4uZ3JhcGhQcm9wVHlwZXMsXG4gICAgY3VycmVudFRvb2w6IFByb3BUeXBlcy5vYmplY3QsXG4gIH07XG5cbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICBvbkNoYW5nZU1hcmtzOiAoKSA9PiB7fSxcbiAgICBkaXNhYmxlZExhYmVsczogZmFsc2UsXG4gICAgZGlzYWJsZWRUaXRsZTogZmFsc2UsXG4gIH07XG5cbiAgc3RhdGUgPSB7fTtcblxuICBnZW5lcmF0ZU1hc2tJZCgpIHtcbiAgICByZXR1cm4gJ2dyYXBoLScgKyAoTWF0aC5yYW5kb20oKSAqIDEwMDAwKS50b0ZpeGVkKCk7XG4gIH1cblxuICBjb21wb25lbnREaWRNb3VudCA9ICgpID0+IHRoaXMuc2V0U3RhdGUoeyBsYWJlbE5vZGU6IHRoaXMubGFiZWxOb2RlIH0pO1xuXG4gIGNoYW5nZU1hcmsgPSAob2xkTWFyaywgbmV3TWFyaykgPT4ge1xuICAgIGNvbnN0IHsgb25DaGFuZ2VNYXJrcywgbWFya3MgfSA9IHRoaXMucHJvcHM7XG4gICAgbGV0IG5ld01hcmtzID0gY2xvbmVEZWVwKG1hcmtzKTtcblxuICAgIGNvbnN0IGluZGV4ID0gbmV3TWFya3MuZmluZEluZGV4KChtKSA9PiBpc0VxdWFsKG0sIG9sZE1hcmspKTtcblxuICAgIGlmIChpbmRleCA+PSAwICYmICFpc0R1cGxpY2F0ZWRNYXJrKG5ld01hcmssIG1hcmtzLCBvbGRNYXJrKSkge1xuICAgICAgbmV3TWFya3Muc3BsaWNlKGluZGV4LCAxLCBuZXdNYXJrKTtcblxuICAgICAgb25DaGFuZ2VNYXJrcyhuZXdNYXJrcyk7XG4gICAgfVxuICB9O1xuXG4gIGNvbXBsZXRlTWFyayA9IChtYXJrRGF0YSkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudFRvb2wsIG1hcmtzIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGJ1aWxkaW5nTWFyayA9IG1hcmtzLmZpbHRlcigobSkgPT4gbS5idWlsZGluZylbMF07XG5cbiAgICBpZiAoIWJ1aWxkaW5nTWFyayB8fCAhY3VycmVudFRvb2wpIHJldHVybjtcblxuICAgIGNvbnN0IHVwZGF0ZWRNYXJrID0gY3VycmVudFRvb2wuY29tcGxldGUoYnVpbGRpbmdNYXJrLCBtYXJrRGF0YSk7XG5cbiAgICB0aGlzLnVwZGF0ZU1hcmtzKGJ1aWxkaW5nTWFyaywgdXBkYXRlZE1hcmspO1xuICB9O1xuXG4gIHVwZGF0ZU1hcmtzID0gKGV4aXN0aW5nLCB1cGRhdGUsIGFkZElmTWlzc2luZyA9IGZhbHNlKSA9PiB7XG4gICAgY29uc3QgeyBvbkNoYW5nZU1hcmtzLCBtYXJrcyB9ID0gdGhpcy5wcm9wcztcbiAgICBsZXQgbmV3TWFya3MgPSBjbG9uZURlZXAobWFya3MpO1xuXG4gICAgaWYgKCF1cGRhdGUgfHwgKCF1cGRhdGUuYnVpbGRpbmcgJiYgaXNEdXBsaWNhdGVkTWFyayh1cGRhdGUsIG1hcmtzKSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBpbmRleCA9IG5ld01hcmtzLmZpbmRJbmRleCgobSkgPT4gaXNFcXVhbChtLCBleGlzdGluZykpO1xuXG4gICAgaWYgKGluZGV4ID49IDApIHtcbiAgICAgIG5ld01hcmtzLnNwbGljZShpbmRleCwgMSwgdXBkYXRlKTtcblxuICAgICAgb25DaGFuZ2VNYXJrcyhuZXdNYXJrcyk7XG4gICAgfSBlbHNlIGlmIChhZGRJZk1pc3NpbmcpIHtcbiAgICAgIG9uQ2hhbmdlTWFya3MoWy4uLm5ld01hcmtzLCB1cGRhdGVdKTtcbiAgICB9XG4gIH07XG5cbiAgZ2V0Q29tcG9uZW50ID0gKG1hcmspID0+IHtcbiAgICBpZiAoIW1hcmspIHJldHVybiBudWxsO1xuXG4gICAgY29uc3QgdG9vbCA9ICh0aGlzLnByb3BzLnRvb2xzIHx8IFtdKS5maW5kKCh0KSA9PiB0LnR5cGUgPT09IG1hcmsudHlwZSk7XG5cbiAgICByZXR1cm4gKHRvb2wgJiYgdG9vbC5Db21wb25lbnQpIHx8IG51bGw7XG4gIH07XG5cbiAgb25CZ0NsaWNrID0gKHBvaW50KSA9PiB7XG4gICAgY29uc3QgeyB4LCB5IH0gPSBwb2ludCB8fCB7fTtcbiAgICBjb25zdCB7IGxhYmVsTW9kZUVuYWJsZWQsIGN1cnJlbnRUb29sLCBtYXJrcyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChsYWJlbE1vZGVFbmFibGVkIHx8ICFjdXJyZW50VG9vbCB8fCBbbnVsbCwgdW5kZWZpbmVkXS5pbmNsdWRlcyh4KSB8fCBbbnVsbCwgdW5kZWZpbmVkXS5pbmNsdWRlcyh5KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxvZygnW29uQmdDbGlja10geCx5OiAnLCB4LCB5KTtcblxuICAgIGNvbnN0IGJ1aWxkaW5nTWFyayA9IG1hcmtzLmZpbHRlcigobSkgPT4gbS5idWlsZGluZylbMF07XG4gICAgbGV0IHVwZGF0ZWRNYXJrO1xuXG4gICAgLy8gaWYgdGhlIGJ1aWxkaW5nIG1hcmsgaGFzIGEgZGlmZmVyZW50IHR5cGUsIHdlIGp1c3QgcmVwbGFjZSBpdFxuICAgIGlmIChidWlsZGluZ01hcmsgJiYgY3VycmVudFRvb2wgJiYgYnVpbGRpbmdNYXJrLnR5cGUgPT09IGN1cnJlbnRUb29sLnR5cGUpIHtcbiAgICAgIHVwZGF0ZWRNYXJrID0gY3VycmVudFRvb2wuYWRkUG9pbnQoeyB4LCB5IH0sIHsgLi4uYnVpbGRpbmdNYXJrIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB1cGRhdGVkTWFyayA9IGN1cnJlbnRUb29sLmFkZFBvaW50KHsgeCwgeSB9LCB1bmRlZmluZWQpO1xuICAgIH1cblxuICAgIHRoaXMudXBkYXRlTWFya3MoYnVpbGRpbmdNYXJrLCB1cGRhdGVkTWFyaywgdHJ1ZSk7XG4gIH07XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHtcbiAgICAgIGF4ZXNTZXR0aW5ncyxcbiAgICAgIGN1cnJlbnRUb29sLFxuICAgICAgY29vcmRpbmF0ZXNPbkhvdmVyLFxuICAgICAgc2l6ZSxcbiAgICAgIGRpc2FibGVkTGFiZWxzLFxuICAgICAgZGlzYWJsZWRUaXRsZSxcbiAgICAgIGRvbWFpbixcbiAgICAgIGJhY2tncm91bmRNYXJrcyxcbiAgICAgIHJhbmdlLFxuICAgICAgdGl0bGUsXG4gICAgICBsYWJlbHMsXG4gICAgICBsYWJlbE1vZGVFbmFibGVkLFxuICAgICAgbGFiZWxzUGxhY2Vob2xkZXJzLFxuICAgICAgbGltaXRMYWJlbGluZyxcbiAgICAgIHNob3dMYWJlbHMsXG4gICAgICBzaG93UGl4ZWxHdWlkZXMsXG4gICAgICBzaG93VGl0bGUsXG4gICAgICB0aXRsZVBsYWNlaG9sZGVyLFxuICAgICAgb25DaGFuZ2VMYWJlbHMsXG4gICAgICBvbkNoYW5nZVRpdGxlLFxuICAgICAgbWF0aE1sT3B0aW9ucyA9IHt9LFxuICAgICAgb25DaGFuZ2VNYXJrcyxcbiAgICAgIHJlbW92ZUluY29tcGxldGVUb29sLFxuICAgIH0gPSB0aGlzLnByb3BzO1xuICAgIGxldCB7IG1hcmtzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3QgZ3JhcGhQcm9wcyA9IGNyZWF0ZUdyYXBoUHJvcHMoZG9tYWluLCByYW5nZSwgc2l6ZSwgKCkgPT4gdGhpcy5yb290Tm9kZSk7XG5cbiAgICBjb25zdCBtYXNrU2l6ZSA9IGdldE1hc2tTaXplKHNpemUpO1xuICAgIGNvbnN0IGNvbW1vbiA9IHsgZ3JhcGhQcm9wcywgbGFiZWxNb2RlRW5hYmxlZCwgbGltaXRMYWJlbGluZyB9O1xuXG4gICAgbWFya3MgPSByZW1vdmVCdWlsZGluZ1Rvb2xJZkN1cnJlbnRUb29sRGlmZmVycyh7XG4gICAgICBtYXJrczogbWFya3MgfHwgW10sXG4gICAgICBjdXJyZW50VG9vbCxcbiAgICAgIG9uQ2hhbmdlTWFya3MsXG4gICAgICByZW1vdmVJbmNvbXBsZXRlVG9vbCxcbiAgICB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8Um9vdFxuICAgICAgICByb290UmVmPXsocikgPT4gKHRoaXMucm9vdE5vZGUgPSByKX1cbiAgICAgICAgZGlzYWJsZWRUaXRsZT17ZGlzYWJsZWRUaXRsZX1cbiAgICAgICAgZGlzYWJsZWRMYWJlbHM9e2Rpc2FibGVkTGFiZWxzfVxuICAgICAgICBsYWJlbHM9e2xhYmVsc31cbiAgICAgICAgbGFiZWxzUGxhY2Vob2xkZXJzPXtsYWJlbHNQbGFjZWhvbGRlcnMgfHwge319XG4gICAgICAgIHNob3dQaXhlbEd1aWRlcz17c2hvd1BpeGVsR3VpZGVzfVxuICAgICAgICBzaG93TGFiZWxzPXtzaG93TGFiZWxzfVxuICAgICAgICBzaG93VGl0bGU9e3Nob3dUaXRsZX1cbiAgICAgICAgdGl0bGU9e3RpdGxlfVxuICAgICAgICB0aXRsZVBsYWNlaG9sZGVyPXt0aXRsZVBsYWNlaG9sZGVyfVxuICAgICAgICBvbkNoYW5nZVRpdGxlPXtvbkNoYW5nZVRpdGxlfVxuICAgICAgICBvbkNoYW5nZUxhYmVscz17b25DaGFuZ2VMYWJlbHN9XG4gICAgICAgIG1hdGhNbE9wdGlvbnM9e21hdGhNbE9wdGlvbnN9XG4gICAgICAgIHsuLi5jb21tb259XG4gICAgICA+XG4gICAgICAgIDxnXG4gICAgICAgICAgdHJhbnNmb3JtPXtcbiAgICAgICAgICAgIGRvbWFpbiAmJiBkb21haW4ucGFkZGluZyAmJiBkb21haW4ucmFuZ2UgPyBgdHJhbnNsYXRlKCR7ZG9tYWluLnBhZGRpbmd9LCAke3JhbmdlLnBhZGRpbmd9KWAgOiB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgID5cbiAgICAgICAgICA8R3JpZCB7Li4uY29tbW9ufSAvPlxuICAgICAgICAgIDxBeGVzIHsuLi5heGVzU2V0dGluZ3N9IHsuLi5jb21tb259IC8+XG4gICAgICAgICAgPEJnIHsuLi5zaXplfSBvbkNsaWNrPXt0aGlzLm9uQmdDbGlja30gey4uLmNvbW1vbn0gLz5cbiAgICAgICAgICA8bWFzayBpZD17YCR7dGhpcy5tYXNrVWlkfWB9PlxuICAgICAgICAgICAgPHJlY3Qgey4uLm1hc2tTaXplfSBmaWxsPVwid2hpdGVcIiAvPiB7LyogVE9ETyBoYXJkY29kZWQgY29sb3IgKi99XG4gICAgICAgICAgPC9tYXNrPlxuXG4gICAgICAgICAgPGcgaWQ9XCJtYXJrc1wiIG1hc2s9e2B1cmwoJyMke3RoaXMubWFza1VpZH0nKWB9PlxuICAgICAgICAgICAgeyhiYWNrZ3JvdW5kTWFya3MgfHwgW10pLm1hcCgobSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgQ29tcG9uZW50ID0gdGhpcy5nZXRDb21wb25lbnQobSk7XG4gICAgICAgICAgICAgIGNvbnN0IG1hcmtUeXBlID0gbS50eXBlO1xuXG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPENvbXBvbmVudFxuICAgICAgICAgICAgICAgICAga2V5PXtgJHttYXJrVHlwZX0tJHtpbmRleH0tYmdgfVxuICAgICAgICAgICAgICAgICAgbWFyaz17eyAuLi5tLCBkaXNhYmxlZDogdHJ1ZSwgaXNCYWNrZ3JvdW5kOiB0cnVlIH19XG4gICAgICAgICAgICAgICAgICBsYWJlbE5vZGU9e3RoaXMuc3RhdGUubGFiZWxOb2RlfVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17dGhpcy5vbkJnQ2xpY2t9XG4gICAgICAgICAgICAgICAgICB7Li4uY29tbW9ufVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KX1cblxuICAgICAgICAgICAge21hcmtzLm1hcCgobSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgQ29tcG9uZW50ID0gdGhpcy5nZXRDb21wb25lbnQobSk7XG4gICAgICAgICAgICAgIGNvbnN0IG1hcmtUeXBlID0gbS50eXBlO1xuXG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPENvbXBvbmVudFxuICAgICAgICAgICAgICAgICAga2V5PXtgJHttYXJrVHlwZX0tJHtpbmRleH1gfVxuICAgICAgICAgICAgICAgICAgbWFyaz17bX1cbiAgICAgICAgICAgICAgICAgIGNvb3JkaW5hdGVzT25Ib3Zlcj17Y29vcmRpbmF0ZXNPbkhvdmVyfVxuICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e3RoaXMuY2hhbmdlTWFya31cbiAgICAgICAgICAgICAgICAgIG9uQ29tcGxldGU9e3RoaXMuY29tcGxldGVNYXJrfVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17dGhpcy5vbkJnQ2xpY2t9XG4gICAgICAgICAgICAgICAgICBvbkRyYWdTdGFydD17dGhpcy5zdGFydERyYWd9XG4gICAgICAgICAgICAgICAgICBvbkRyYWdTdG9wPXt0aGlzLnN0b3BEcmFnfVxuICAgICAgICAgICAgICAgICAgbGFiZWxOb2RlPXt0aGlzLnN0YXRlLmxhYmVsTm9kZX1cbiAgICAgICAgICAgICAgICAgIGlzVG9vbEFjdGl2ZT17Y3VycmVudFRvb2wgJiYgbWFya1R5cGUgPT09IGN1cnJlbnRUb29sLnR5cGV9XG4gICAgICAgICAgICAgICAgICB7Li4uY29tbW9ufVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDxmb3JlaWduT2JqZWN0XG4gICAgICAgICAgICAgIHJlZj17KGxhYmVsTm9kZSkgPT4gKHRoaXMubGFiZWxOb2RlID0gbGFiZWxOb2RlKX1cbiAgICAgICAgICAgICAgeD1cIjBcIlxuICAgICAgICAgICAgICB5PVwiMFwiXG4gICAgICAgICAgICAgIHsuLi5zaXplfVxuICAgICAgICAgICAgICBzdHlsZT17eyBwb2ludGVyRXZlbnRzOiAnbm9uZScsIGZvbnRTaXplOiAnMTRweCcgfX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9nPlxuICAgICAgICA8L2c+XG4gICAgICA8L1Jvb3Q+XG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBHcmFwaDtcbiJdfQ==
371
+ //# sourceMappingURL=graph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/graph.jsx"],"names":["log","graphPropTypes","axesSettings","PropTypes","shape","AxisPropTypes","backgroundMarks","array","className","string","collapsibleToolbar","bool","collapsibleToolbarTitle","disabledLabels","disabledTitle","domain","types","DomainType","labels","LabelType","labelModeEnabled","coordinatesOnHover","marks","onChangeLabels","func","onChangeMarks","onChangeTitle","range","size","width","number","isRequired","height","showLabels","showPixelGuides","showTitle","title","tools","limitLabeling","getMaskSize","x","y","removeBuildingToolIfCurrentToolDiffers","currentTool","removeIncompleteTool","buildingMark","filter","m","building","newMarks","type","index","findIndex","splice","Graph","props","setState","labelNode","oldMark","newMark","markData","updatedMark","complete","updateMarks","existing","update","addIfMissing","mark","tool","find","t","Component","point","undefined","includes","addPoint","maskUid","generateMaskId","Math","random","toFixed","labelsPlaceholders","titlePlaceholder","mathMlOptions","graphProps","rootNode","maskSize","common","r","padding","onBgClick","map","getComponent","markType","disabled","isBackground","state","changeMark","completeMark","startDrag","stopDrag","pointerEvents","fontSize","React","object"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport isEqual from 'lodash/isEqual';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { Root, types, createGraphProps } from '@pie-lib/plot';\nimport debug from 'debug';\n\nimport { Axes, AxisPropTypes } from './axis';\nimport Grid from './grid';\nimport { LabelType } from './labels';\nimport Bg from './bg';\nimport { isDuplicatedMark } from './utils';\n\nconst log = debug('pie-lib:graphing:graph');\n\nexport const graphPropTypes = {\n axesSettings: PropTypes.shape(AxisPropTypes),\n backgroundMarks: PropTypes.array,\n className: PropTypes.string,\n collapsibleToolbar: PropTypes.bool,\n collapsibleToolbarTitle: PropTypes.string,\n disabledLabels: PropTypes.bool,\n disabledTitle: PropTypes.bool,\n domain: types.DomainType,\n labels: PropTypes.shape(LabelType),\n labelModeEnabled: PropTypes.bool,\n coordinatesOnHover: PropTypes.bool,\n marks: PropTypes.array,\n onChangeLabels: PropTypes.func,\n onChangeMarks: PropTypes.func,\n onChangeTitle: PropTypes.func,\n range: types.DomainType,\n size: PropTypes.shape({\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n }),\n showLabels: PropTypes.bool,\n showPixelGuides: PropTypes.bool,\n showTitle: PropTypes.bool,\n title: PropTypes.string,\n tools: PropTypes.array,\n limitLabeling: PropTypes.bool,\n};\n\nconst getMaskSize = (size) => ({\n x: -23,\n y: -23,\n width: size.width + 46,\n height: size.height + 46,\n});\n\nexport const removeBuildingToolIfCurrentToolDiffers = ({ marks, currentTool, onChangeMarks, removeIncompleteTool }) => {\n const buildingMark = marks.filter((m) => m.building)[0];\n let newMarks = cloneDeep(marks);\n\n if (buildingMark && currentTool && buildingMark.type !== currentTool.type) {\n const index = newMarks.findIndex((m) => isEqual(m, buildingMark));\n\n if (index >= 0) {\n newMarks.splice(index, 1);\n }\n }\n if (removeIncompleteTool && !isEqual(newMarks, marks)) {\n onChangeMarks(newMarks);\n }\n return newMarks;\n};\n\nexport class Graph extends React.Component {\n constructor(props) {\n super(props);\n this.maskUid = this.generateMaskId();\n }\n\n static propTypes = {\n ...graphPropTypes,\n currentTool: PropTypes.object,\n };\n\n static defaultProps = {\n onChangeMarks: () => {},\n disabledLabels: false,\n disabledTitle: false,\n };\n\n state = {};\n\n generateMaskId() {\n return 'graph-' + (Math.random() * 10000).toFixed();\n }\n\n componentDidMount = () => this.setState({ labelNode: this.labelNode });\n\n changeMark = (oldMark, newMark) => {\n const { onChangeMarks, marks } = this.props;\n let newMarks = cloneDeep(marks);\n\n const index = newMarks.findIndex((m) => isEqual(m, oldMark));\n\n if (index >= 0 && !isDuplicatedMark(newMark, marks, oldMark)) {\n newMarks.splice(index, 1, newMark);\n\n onChangeMarks(newMarks);\n }\n };\n\n completeMark = (markData) => {\n const { currentTool, marks } = this.props;\n const buildingMark = marks.filter((m) => m.building)[0];\n\n if (!buildingMark || !currentTool) return;\n\n const updatedMark = currentTool.complete(buildingMark, markData);\n\n this.updateMarks(buildingMark, updatedMark);\n };\n\n updateMarks = (existing, update, addIfMissing = false) => {\n const { onChangeMarks, marks } = this.props;\n let newMarks = cloneDeep(marks);\n\n if (!update || (!update.building && isDuplicatedMark(update, marks))) {\n return;\n }\n\n const index = newMarks.findIndex((m) => isEqual(m, existing));\n\n if (index >= 0) {\n newMarks.splice(index, 1, update);\n\n onChangeMarks(newMarks);\n } else if (addIfMissing) {\n onChangeMarks([...newMarks, update]);\n }\n };\n\n getComponent = (mark) => {\n if (!mark) return null;\n\n const tool = (this.props.tools || []).find((t) => t.type === mark.type);\n\n return (tool && tool.Component) || null;\n };\n\n onBgClick = (point) => {\n const { x, y } = point || {};\n const { labelModeEnabled, currentTool, marks } = this.props;\n\n if (labelModeEnabled || !currentTool || [null, undefined].includes(x) || [null, undefined].includes(y)) {\n return;\n }\n\n log('[onBgClick] x,y: ', x, y);\n\n const buildingMark = marks.filter((m) => m.building)[0];\n let updatedMark;\n\n // if the building mark has a different type, we just replace it\n if (buildingMark && currentTool && buildingMark.type === currentTool.type) {\n updatedMark = currentTool.addPoint({ x, y }, { ...buildingMark });\n } else {\n updatedMark = currentTool.addPoint({ x, y }, undefined);\n }\n\n this.updateMarks(buildingMark, updatedMark, true);\n };\n\n render() {\n const {\n axesSettings,\n currentTool,\n coordinatesOnHover,\n size,\n disabledLabels,\n disabledTitle,\n domain,\n backgroundMarks,\n range,\n title,\n labels,\n labelModeEnabled,\n labelsPlaceholders,\n limitLabeling,\n showLabels,\n showPixelGuides,\n showTitle,\n titlePlaceholder,\n onChangeLabels,\n onChangeTitle,\n mathMlOptions = {},\n onChangeMarks,\n removeIncompleteTool,\n } = this.props;\n let { marks } = this.props;\n\n const graphProps = createGraphProps(domain, range, size, () => this.rootNode);\n\n const maskSize = getMaskSize(size);\n const common = { graphProps, labelModeEnabled, limitLabeling };\n\n marks = removeBuildingToolIfCurrentToolDiffers({\n marks: marks || [],\n currentTool,\n onChangeMarks,\n removeIncompleteTool,\n });\n\n return (\n <Root\n rootRef={(r) => (this.rootNode = r)}\n disabledTitle={disabledTitle}\n disabledLabels={disabledLabels}\n labels={labels}\n labelsPlaceholders={labelsPlaceholders || {}}\n showPixelGuides={showPixelGuides}\n showLabels={showLabels}\n showTitle={showTitle}\n title={title}\n titlePlaceholder={titlePlaceholder}\n onChangeTitle={onChangeTitle}\n onChangeLabels={onChangeLabels}\n mathMlOptions={mathMlOptions}\n {...common}\n >\n <g\n transform={\n domain && domain.padding && domain.range ? `translate(${domain.padding}, ${range.padding})` : undefined\n }\n >\n <Grid {...common} />\n <Axes {...axesSettings} {...common} />\n <Bg {...size} onClick={this.onBgClick} {...common} />\n <mask id={`${this.maskUid}`}>\n <rect {...maskSize} fill=\"white\" /> {/* TODO hardcoded color */}\n </mask>\n\n <g id=\"marks\" mask={`url('#${this.maskUid}')`}>\n {(backgroundMarks || []).map((m, index) => {\n const Component = this.getComponent(m);\n const markType = m.type;\n\n return (\n <Component\n key={`${markType}-${index}-bg`}\n mark={{ ...m, disabled: true, isBackground: true }}\n labelNode={this.state.labelNode}\n onClick={this.onBgClick}\n {...common}\n />\n );\n })}\n\n {marks.map((m, index) => {\n const Component = this.getComponent(m);\n const markType = m.type;\n\n return (\n <Component\n key={`${markType}-${index}`}\n mark={m}\n coordinatesOnHover={coordinatesOnHover}\n onChange={this.changeMark}\n onComplete={this.completeMark}\n onClick={this.onBgClick}\n onDragStart={this.startDrag}\n onDragStop={this.stopDrag}\n labelNode={this.state.labelNode}\n isToolActive={currentTool && markType === currentTool.type}\n {...common}\n />\n );\n })}\n <foreignObject\n ref={(labelNode) => (this.labelNode = labelNode)}\n x=\"0\"\n y=\"0\"\n {...size}\n style={{ pointerEvents: 'none', fontSize: '14px' }}\n />\n </g>\n </g>\n </Root>\n );\n }\n}\n\nexport default Graph;\n"],"file":"graph.js"}
package/lib/grid-setup.js CHANGED
@@ -13,7 +13,7 @@ var _react = _interopRequireDefault(require("react"));
13
13
 
14
14
  var _propTypes = _interopRequireDefault(require("prop-types"));
15
15
 
16
- var _renderUi = require("@pie-lib/render-ui");
16
+ var _index = require("./shared/index");
17
17
 
18
18
  var _styles = require("@material-ui/core/styles");
19
19
 
@@ -128,7 +128,7 @@ var AxisConfig = function AxisConfig(props) {
128
128
  onChange: function onChange(e, v) {
129
129
  return _onChange2('max', v);
130
130
  }
131
- }), axisLabel && axisLabel.enabled && /*#__PURE__*/_react["default"].createElement(_renderUi.InputContainer, {
131
+ }), axisLabel && axisLabel.enabled && /*#__PURE__*/_react["default"].createElement(_index.InputContainer, {
132
132
  label: axisLabel.label || '',
133
133
  className: classes.mediumTextField
134
134
  }, /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
@@ -448,7 +448,7 @@ var styles = function styles(theme) {
448
448
  alignItems: 'center'
449
449
  },
450
450
  disabled: {
451
- color: _renderUi.color.disabled()
451
+ color: _index.color.disabled()
452
452
  },
453
453
  axisLabel: {
454
454
  paddingTop: theme.spacing.unit * 2
@@ -459,4 +459,4 @@ var styles = function styles(theme) {
459
459
  var _default = (0, _styles.withStyles)(styles)(GridSetup);
460
460
 
461
461
  exports["default"] = _default;
462
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ncmlkLXNldHVwLmpzeCJdLCJuYW1lcyI6WyJHcmlkQ29uZmlnIiwicHJvcHMiLCJjbGFzc2VzIiwiZGlzYWJsZWQiLCJkaXNwbGF5ZWRGaWVsZHMiLCJsYWJlbFZhbHVlIiwibGFiZWxWYWx1ZXMiLCJncmlkVmFsdWUiLCJncmlkVmFsdWVzIiwib25DaGFuZ2UiLCJsYWJlbFN0ZXAiLCJzdGVwIiwiY29sdW1uVmlldyIsImVuYWJsZWQiLCJtZWRpdW1UZXh0RmllbGQiLCJsYWJlbCIsImUiLCJ2IiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwib2JqZWN0IiwiYm9vbCIsIm51bWJlciIsImFycmF5IiwiZnVuYyIsIkF4aXNDb25maWciLCJkaXNwbGF5SGVhZGVyIiwibWF4VmFsdWUiLCJtaW5WYWx1ZSIsInR5cGUiLCJheGlzTGFiZWwiLCJtaW4iLCJtYXgiLCJhY3RpdmVQbHVnaW5zIiwidmFsdWUiLCJzdHJpbmciLCJHcmlkU2V0dXAiLCJkb21haW4iLCJpbmNsdWRlQXhlcyIsIm9uQ2hhbmdlVmlldyIsInJhbmdlIiwic2l6ZSIsInNpemVDb25zdHJhaW50cyIsInN0YW5kYXJkR3JpZCIsImdyaWRQcm9wcyIsImRpbWVuc2lvbnNFbmFibGVkIiwiaW5jbHVkZUF4ZXNFbmFibGVkIiwic3RhbmRhcmRHcmlkRW5hYmxlZCIsImRpc3BsYXlBeGlzVHlwZSIsImdyaWRDb25maWdGaWVsZHMiLCJheGlzQ29uZmlnRmllbGRzIiwib25JbmNsdWRlQXhlcyIsIm5vQXhlc0NvbmZpZyIsImF4aXMiLCJ1cGRhdGVkUmFuZ2UiLCJ1cGRhdGVkRG9tYWluIiwib25TdGFuZGFyZEdyaWRDaGFuZ2VkIiwiZ3JhcGgiLCJoZWlnaHQiLCJ3aWR0aCIsIm9uU2l6ZUNoYW5nZWQiLCJrZXkiLCJvbkRvbWFpbkNoYW5nZWQiLCJvblJhbmdlQ2hhbmdlZCIsImF4ZXNDb25maWciLCJyb3dWaWV3IiwidGV4dCIsImdyaWRsaW5lc0NvbmZpZyIsImxhcmdlVGV4dEZpZWxkIiwid3JhcHBlciIsImNvbnRlbnQiLCJkaW1lbnNpb25zIiwidGV4dEZpZWxkIiwic3R5bGVzIiwidGhlbWUiLCJkaXNwbGF5IiwiZmxleERpcmVjdGlvbiIsImFsaWduSXRlbXMiLCJqdXN0aWZ5Q29udGVudCIsIm1hcmdpbiIsInNwYWNpbmciLCJ1bml0IiwiZm9udFN0eWxlIiwiY29sb3IiLCJwYWRkaW5nVG9wIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7QUFFQSxJQUFNQSxVQUFVLEdBQUcsU0FBYkEsVUFBYSxDQUFDQyxLQUFELEVBQVc7QUFDNUIsTUFBUUMsT0FBUixHQUF5R0QsS0FBekcsQ0FBUUMsT0FBUjtBQUFBLE1BQWlCQyxRQUFqQixHQUF5R0YsS0FBekcsQ0FBaUJFLFFBQWpCO0FBQUEsTUFBMkJDLGVBQTNCLEdBQXlHSCxLQUF6RyxDQUEyQkcsZUFBM0I7QUFBQSxNQUE0Q0MsVUFBNUMsR0FBeUdKLEtBQXpHLENBQTRDSSxVQUE1QztBQUFBLE1BQXdEQyxXQUF4RCxHQUF5R0wsS0FBekcsQ0FBd0RLLFdBQXhEO0FBQUEsTUFBcUVDLFNBQXJFLEdBQXlHTixLQUF6RyxDQUFxRU0sU0FBckU7QUFBQSxNQUFnRkMsVUFBaEYsR0FBeUdQLEtBQXpHLENBQWdGTyxVQUFoRjtBQUFBLE1BQTRGQyxTQUE1RixHQUF5R1IsS0FBekcsQ0FBNEZRLFFBQTVGO0FBQ0EsOEJBQXNDTCxlQUF0QyxDQUFRTSxTQUFSO0FBQUEsTUFBUUEsU0FBUixzQ0FBb0IsRUFBcEI7QUFBQSw4QkFBc0NOLGVBQXRDLENBQXdCTyxJQUF4QjtBQUFBLE1BQXdCQSxJQUF4QixzQ0FBK0IsRUFBL0I7QUFFQSxzQkFDRTtBQUFLLElBQUEsU0FBUyxFQUFFVCxPQUFPLENBQUNVO0FBQXhCLEtBQ0dELElBQUksSUFBSUEsSUFBSSxDQUFDRSxPQUFiLGlCQUNDLGdDQUFDLCtCQUFEO0FBQ0Us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RDtBQUZHLEtBbkJjO0FBdUJ6Qm5FLElBQUFBLGVBQWUsRUFBRTtBQUNmNkMsTUFBQUEsS0FBSyxFQUFFLE9BRFE7QUFFZm9CLE1BQUFBLE1BQU0sWUFBS0wsS0FBSyxDQUFDTSxPQUFOLENBQWNDLElBQW5CLGdCQUE2QlAsS0FBSyxDQUFDTSxPQUFOLENBQWNDLElBQWQsR0FBcUIsQ0FBbEQ7QUFGUyxLQXZCUTtBQTJCekJiLElBQUFBLGNBQWMsRUFBRTtBQUNkVCxNQUFBQSxLQUFLLEVBQUUsT0FETztBQUVkb0IsTUFBQUEsTUFBTSxZQUFLTCxLQUFLLENBQUNNLE9BQU4sQ0FBY0MsSUFBbkIsZ0JBQTZCUCxLQUFLLENBQUNNLE9BQU4sQ0FBY0MsSUFBZCxHQUFxQixDQUFsRDtBQUZRLEtBM0JTO0FBK0J6QmYsSUFBQUEsSUFBSSxFQUFFO0FBQ0pnQixNQUFBQSxTQUFTLEVBQUUsUUFEUDtBQUVKSCxNQUFBQSxNQUFNLFlBQUtMLEtBQUssQ0FBQ00sT0FBTixDQUFjQyxJQUFuQjtBQUZGLEtBL0JtQjtBQW1DekJWLElBQUFBLFVBQVUsRUFBRTtBQUNWSSxNQUFBQSxPQUFPLEVBQUUsTUFEQztBQUVWRyxNQUFBQSxjQUFjLEVBQUUsZUFGTjtBQUdWRCxNQUFBQSxVQUFVLEVBQUU7QUFIRixLQW5DYTtBQXdDekIxRSxJQUFBQSxRQUFRLEVBQUU7QUFDUmdGLE1BQUFBLEtBQUssRUFBRUEsZ0JBQU1oRixRQUFOO0FBREMsS0F4Q2U7QUEyQ3pCMkIsSUFBQUEsU0FBUyxFQUFFO0FBQ1RzRCxNQUFBQSxVQUFVLEVBQUVWLEtBQUssQ0FBQ00sT0FBTixDQUFjQyxJQUFkLEdBQXFCO0FBRHhCO0FBM0NjLEdBQVo7QUFBQSxDQUFmOztlQWdEZSx3QkFBV1IsTUFBWCxFQUFtQnJDLFNBQW5CLEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IGNvbG9yLCBJbnB1dENvbnRhaW5lciB9IGZyb20gJ0BwaWUtbGliL3JlbmRlci11aSc7XG5pbXBvcnQgeyB3aXRoU3R5bGVzIH0gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvc3R5bGVzJztcbmltcG9ydCBFeHBhbnNpb25QYW5lbFN1bW1hcnkgZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvRXhwYW5zaW9uUGFuZWxTdW1tYXJ5JztcbmltcG9ydCBUeXBvZ3JhcGh5IGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL1R5cG9ncmFwaHknO1xuaW1wb3J0IEV4cGFuc2lvblBhbmVsRGV0YWlscyBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9FeHBhbnNpb25QYW5lbERldGFpbHMnO1xuaW1wb3J0IEV4cGFuc2lvblBhbmVsIGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL0V4cGFuc2lvblBhbmVsJztcbmltcG9ydCBFeHBhbmRNb3JlSWNvbiBmcm9tICdAbWF0ZXJpYWwtdWkvaWNvbnMvRXhwYW5kTW9yZSc7XG5pbXBvcnQgeyBOdW1iZXJUZXh0RmllbGRDdXN0b20sIFRvZ2dsZSB9IGZyb20gJ0BwaWUtbGliL2NvbmZpZy11aSc7XG5pbXBvcnQgRWRpdGFibGVIVE1MIGZyb20gJ0BwaWUtbGliL2VkaXRhYmxlLWh0bWwnO1xuXG5jb25zdCBHcmlkQ29uZmlnID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgY2xhc3NlcywgZGlzYWJsZWQsIGRpc3BsYXllZEZpZWxkcywgbGFiZWxWYWx1ZSwgbGFiZWxWYWx1ZXMsIGdyaWRWYWx1ZSwgZ3JpZFZhbHVlcywgb25DaGFuZ2UgfSA9IHByb3BzO1xuICBjb25zdCB7IGxhYmVsU3RlcCA9IHt9LCBzdGVwID0ge30gfSA9IGRpc3BsYXllZEZpZWxkcztcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtjbGFzc2VzLmNvbHVtblZpZXd9PlxuICAgICAge3N0ZXAgJiYgc3RlcC5lbmFibGVkICYmIChcbiAgICAgICAgPE51bWJlclRleHRGaWVsZEN1c3RvbVxuICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy5tZWRpdW1UZXh0RmllbGR9XG4gICAgICAgICAgbGFiZWw9e3N0ZXAubGFiZWwgfHwgJyd9XG4gICAgICAgICAgdmFsdWU9e2dyaWRWYWx1ZX1cbiAgICAgICAgICBjdXN0b21WYWx1ZXM9e2dyaWRWYWx1ZXN9XG4gICAgICAgICAgdmFyaWFudD1cIm91dGxpbmVkXCJcbiAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgb25DaGFuZ2U9eyhlLCB2KSA9PiBvbkNoYW5nZSgnc3RlcCcsIHYpfVxuICAgICAgICAvPlxuICAgICAgKX1cbiAgICAgIHtsYWJlbFN0ZXAgJiYgbGFiZWxTdGVwLmVuYWJsZWQgJiYgKFxuICAgICAgICA8TnVtYmVyVGV4dEZpZWxkQ3VzdG9tXG4gICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLm1lZGl1bVRleHRGaWVsZH1cbiAgICAgICAgICBsYWJlbD17bGFiZWxTdGVwLmxhYmVsIHx8ICcnfVxuICAgICAgICAgIHZhbHVlPXtsYWJlbFZhbHVlfVxuICAgICAgICAgIGN1c3RvbVZhbHVlcz17bGFiZWxWYWx1ZXN9XG4gICAgICAgICAgdmFyaWFudD1cIm91dGxpbmVkXCJcbiAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgb25DaGFuZ2U9eyhlLCB2KSA9PiBvbkNoYW5nZSgnbGFiZWxTdGVwJywgdil9XG4gICAgICAgIC8+XG4gICAgICApfVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuR3JpZENvbmZpZy5wcm9wVHlwZXMgPSB7XG4gIGNsYXNzZXM6IFByb3BUeXBlcy5vYmplY3QsXG4gIGRpc2FibGVkOiBQcm9wVHlwZXMuYm9vbCxcbiAgZGlzcGxheWVkRmllbGRzOiBQcm9wVHlwZXMub2JqZWN0LFxuICBsYWJlbFZhbHVlOiBQcm9wVHlwZXMubnVtYmVyLFxuICBsYWJlbFZhbHVlczogUHJvcFR5cGVzLmFycmF5LFxuICBncmlkVmFsdWU6IFByb3BUeXBlcy5udW1iZXIsXG4gIGdyaWRWYWx1ZXM6IFByb3BUeXBlcy5hcnJheSxcbiAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLFxufTtcblxuY29uc3QgQXhpc0NvbmZpZyA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7IGNsYXNzZXMsIGRpc2FibGVkLCBkaXNwbGF5ZWRGaWVsZHMsIGRpc3BsYXlIZWFkZXIsIGxhYmVsLCBtYXhWYWx1ZSwgbWluVmFsdWUsIG9uQ2hhbmdlLCB0eXBlIH0gPSBwcm9wcztcbiAgY29uc3QgeyBheGlzTGFiZWwgPSB7fSwgbWluID0ge30sIG1heCA9IHt9IH0gPSBkaXNwbGF5ZWRGaWVsZHM7XG4gIGNvbnN0IGFjdGl2ZVBsdWdpbnMgPSBbXG4gICAgJ2JvbGQnLFxuICAgICdpdGFsaWMnLFxuICAgICd1bmRlcmxpbmUnLFxuICAgICdzdHJpa2V0aHJvdWdoJyxcbiAgICAvLyAnbGFuZ3VhZ2VDaGFyYWN0ZXJzJ1xuICBdO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzZXMuY29sdW1uVmlld30+XG4gICAgICB7ZGlzcGxheUhlYWRlciAmJiAoXG4gICAgICAgIDxUeXBvZ3JhcGh5IHZhcmlhbnQ9XCJzdWJ0aXRsZTJcIj5cbiAgICAgICAgICA8aT57dHlwZSA9PT0gJ2RvbWFpbicgPyAneCcgOiAneSd9PC9pPlxuICAgICAgICAgIC1heGlzXG4gICAgICAgIDwvVHlwb2dyYXBoeT5cbiAgICAgICl9XG4gICAgICB7bWluICYmIG1pbi5lbmFibGVkICYmIChcbiAgICAgICAgPE51bWJlclRleHRGaWVsZEN1c3RvbVxuICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy5tZWRpdW1UZXh0RmllbGR9XG4gICAgICAgICAgbGFiZWw9e21pbi5sYWJlbCB8fCAnJ31cbiAgICAgICAgICB2YWx1ZT17bWluVmFsdWV9XG4gICAgICAgICAgbWluPXstMTAwMDB9XG4gICAgICAgICAgbWF4PXttYXhWYWx1ZSAtIDAuMDV9XG4gICAgICAgICAgdmFyaWFudD1cIm91dGxpbmVkXCJcbiAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgb25DaGFuZ2U9eyhlLCB2KSA9PiBvbkNoYW5nZSgnbWluJywgdil9XG4gICAgICAgIC8+XG4gICAgICApfVxuICAgICAge21heCAmJiBtYXguZW5hYmxlZCAmJiAoXG4gICAgICAgIDxOdW1iZXJUZXh0RmllbGRDdXN0b21cbiAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMubWVkaXVtVGV4dEZpZWxkfVxuICAgICAgICAgIGxhYmVsPXttYXgubGFiZWwgfHwgJyd9XG4gICAgICAgICAgdmFsdWU9e21heFZhbHVlfVxuICAgICAgICAgIG1pbj17bWluVmFsdWUgKyAwLjA1fVxuICAgICAgICAgIG1heD17MTAwMDB9XG4gICAgICAgICAgdmFyaWFudD1cIm91dGxpbmVkXCJcbiAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgb25DaGFuZ2U9eyhlLCB2KSA9PiBvbkNoYW5nZSgnbWF4Jywgdil9XG4gICAgICAgIC8+XG4gICAgICApfVxuICAgICAge2F4aXNMYWJlbCAmJiBheGlzTGFiZWwuZW5hYmxlZCAmJiAoXG4gICAgICAgIDxJbnB1dENvbnRhaW5lciBsYWJlbD17YXhpc0xhYmVsLmxhYmVsIHx8ICcnfSBjbGFzc05hbWU9e2NsYXNzZXMubWVkaXVtVGV4dEZpZWxkfT5cbiAgICAgICAgICA8RWRpdGFibGVIVE1MXG4gICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMuYXhpc0xhYmVsfVxuICAgICAgICAgICAgb25DaGFuZ2U9eyh2YWx1ZSkgPT4gb25DaGFuZ2UoJ2F4aXNMYWJlbCcsIHZhbHVlKX1cbiAgICAgICAgICAgIG1hcmt1cD17bGFiZWwgfHwgJyd9XG4gICAgICAgICAgICBjaGFyYWN0ZXJzTGltaXQ9ezV9XG4gICAgICAgICAgICBhY3RpdmVQbHVnaW5zPXthY3RpdmVQbHVnaW5zfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvSW5wdXRDb250YWluZXI+XG4gICAgICApfVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuQXhpc0NvbmZpZy5wcm9wVHlwZXMgPSB7XG4gIGNsYXNzZXM6IFByb3BUeXBlcy5vYmplY3QsXG4gIGRpc2FibGVkOiBQcm9wVHlwZXMuYm9vbCxcbiAgZGlzcGxheWVkRmllbGRzOiBQcm9wVHlwZXMub2JqZWN0LFxuICBkaXNwbGF5SGVhZGVyOiBQcm9wVHlwZXMuYm9vbCxcbiAgbGFiZWw6IFByb3BUeXBlcy5zdHJpbmcsXG4gIG1heFZhbHVlOiBQcm9wVHlwZXMubnVtYmVyLFxuICBtaW5WYWx1ZTogUHJvcFR5cGVzLm51bWJlcixcbiAgdHlwZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLFxufTtcbmNvbnN0IEdyaWRTZXR1cCA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7XG4gICAgY2xhc3NlcyxcbiAgICBkb21haW4sXG4gICAgZGlzcGxheWVkRmllbGRzID0ge30sXG4gICAgZ3JpZFZhbHVlcyA9IHt9LFxuICAgIGluY2x1ZGVBeGVzLFxuICAgIGxhYmVsVmFsdWVzID0ge30sXG4gICAgb25DaGFuZ2UsXG4gICAgb25DaGFuZ2VWaWV3LFxuICAgIHJhbmdlLFxuICAgIHNpemUsXG4gICAgc2l6ZUNvbnN0cmFpbnRzLFxuICAgIHN0YW5kYXJkR3JpZCxcbiAgfSA9IHByb3BzO1xuICBjb25zdCBncmlkUHJvcHMgPSB7IG1pbjogMiwgbWF4OiA0MSB9O1xuICBjb25zdCB7XG4gICAgYXhpc0xhYmVsID0ge30sXG4gICAgZGltZW5zaW9uc0VuYWJsZWQsXG4gICAgaW5jbHVkZUF4ZXNFbmFibGVkLFxuICAgIGxhYmVsU3RlcCA9IHt9LFxuICAgIG1pbiA9IHt9LFxuICAgIG1heCA9IHt9LFxuICAgIHN0YW5kYXJkR3JpZEVuYWJsZWQsXG4gICAgc3RlcCA9IHt9LFxuICB9ID0gZGlzcGxheWVkRmllbGRzIHx8IHt9O1xuICBjb25zdCBkaXNwbGF5QXhpc1R5cGUgPSBtaW4uZW5hYmxlZCB8fCBtYXguZW5hYmxlZCB8fCBheGlzTGFiZWwuZW5hYmxlZCB8fCBzdGVwLmVuYWJsZWQgfHwgbGFiZWxTdGVwLmVuYWJsZWQ7XG4gIGNvbnN0IGdyaWRDb25maWdGaWVsZHMgPSB7IHN0ZXAsIGxhYmVsU3RlcCB9O1xuICBjb25zdCBheGlzQ29uZmlnRmllbGRzID0geyBtaW4sIG1heCwgYXhpc0xhYmVsIH07XG5cbiAgY29uc3Qgb25JbmNsdWRlQXhlcyA9IChpbmNsdWRlQXhlcykgPT4ge1xuICAgIGNvbnN0IG5vQXhlc0NvbmZpZyA9ICh0eXBlKSA9PiB7XG4gICAgICBjb25zdCBheGlzID0gdHlwZSA9PT0gJ2RvbWFpbicgPyBkb21haW4gOiByYW5nZTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbWluOiAxLFxuICAgICAgICBtYXg6IGF4aXMubWF4IDwgZ3JpZFByb3BzLm1pbiB8fCBheGlzLm1heCA+IGdyaWRQcm9wcy5tYXggPyAxNiA6IGF4aXMubWF4LFxuICAgICAgICBzdGVwOiAxLFxuICAgICAgICBsYWJlbFN0ZXA6IDAsXG4gICAgICB9O1xuICAgIH07XG5cbiAgICBjb25zdCB1cGRhdGVkUmFuZ2UgPSB7XG4gICAgICAuLi5yYW5nZSxcbiAgICAgIC4uLihpbmNsdWRlQXhlcyA/IHsgbGFiZWxTdGVwOiAxIH0gOiBub0F4ZXNDb25maWcoJ3JhbmdlJykpLFxuICAgIH07XG4gICAgY29uc3QgdXBkYXRlZERvbWFpbiA9IHtcbiAgICAgIC4uLmRvbWFpbixcbiAgICAgIC4uLihpbmNsdWRlQXhlcyA/IHsgbGFiZWxTdGVwOiAxIH0gOiBub0F4ZXNDb25maWcoJ2RvbWFpbicpKSxcbiAgICB9O1xuXG4gICAgb25DaGFuZ2UoeyBpbmNsdWRlQXhlcywgcmFuZ2U6IHVwZGF0ZWRSYW5nZSwgZG9tYWluOiB1cGRhdGVkRG9tYWluIH0pO1xuICB9O1xuXG4gIGNvbnN0IG9uU3RhbmRhcmRHcmlkQ2hhbmdlZCA9ICh2YWx1ZSkgPT4ge1xuICAgIG9uQ2hhbmdlKHtcbiAgICAgIHN0YW5kYXJkR3JpZDogdmFsdWUsXG4gICAgICByYW5nZToge1xuICAgICAgICAuLi5kb21haW4sXG4gICAgICAgIGF4aXNMYWJlbDogcmFuZ2UuYXhpc0xhYmVsLFxuICAgICAgfSxcbiAgICAgIGdyYXBoOiB7XG4gICAgICAgIC4uLnNpemUsXG4gICAgICAgIGhlaWdodDogc2l6ZS53aWR0aCxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3Qgb25TaXplQ2hhbmdlZCA9IChrZXksIHZhbHVlKSA9PiB7XG4gICAgY29uc3QgZ3JhcGggPSB7IC4uLnNpemUsIFtrZXldOiB2YWx1ZSB9O1xuXG4gICAgaWYgKHN0YW5kYXJkR3JpZCkge1xuICAgICAgZ3JhcGguaGVpZ2h0ID0gdmFsdWU7XG4gICAgfVxuXG4gICAgb25DaGFuZ2UoeyBncmFwaCB9KTtcbiAgfTtcblxuICBjb25zdCBvbkRvbWFpbkNoYW5nZWQgPSAoa2V5LCB2YWx1ZSkgPT4ge1xuICAgIGRvbWFpbltrZXldID0gdmFsdWU7XG5cbiAgICBpZiAoc3RhbmRhcmRHcmlkICYmIGtleSAhPT0gJ2F4aXNMYWJlbCcpIHtcbiAgICAgIHJhbmdlW2tleV0gPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBvbkNoYW5nZSh7IGRvbWFpbiwgcmFuZ2UgfSk7XG4gIH07XG5cbiAgY29uc3Qgb25SYW5nZUNoYW5nZWQgPSAoa2V5LCB2YWx1ZSkgPT4ge1xuICAgIHJhbmdlW2tleV0gPSB2YWx1ZTtcblxuICAgIG9uQ2hhbmdlKHsgcmFuZ2UgfSk7XG4gIH07XG5cbiAgY29uc3QgYXhlc0NvbmZpZyA9IChcbiAgICA8UmVhY3QuRnJhZ21lbnQ+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3Nlcy5yb3dWaWV3fT5cbiAgICAgICAgPEF4aXNDb25maWdcbiAgICAgICAgICBjbGFzc2VzPXtjbGFzc2VzfVxuICAgICAgICAgIGRpc3BsYXllZEZpZWxkcz17YXhpc0NvbmZpZ0ZpZWxkc31cbiAgICAgICAgICBkaXNwbGF5SGVhZGVyPXtkaXNwbGF5QXhpc1R5cGV9XG4gICAgICAgICAgdHlwZT1cImRvbWFpblwiXG4gICAgICAgICAgbWluVmFsdWU9e2RvbWFpbi5taW59XG4gICAgICAgICAgbWF4VmFsdWU9e2RvbWFpbi5tYXh9XG4gICAgICAgICAgbGFiZWw9e2RvbWFpbi5heGlzTGFiZWx9XG4gICAgICAgICAgaW5jbHVkZUF4ZXM9e2luY2x1ZGVBeGVzfVxuICAgICAgICAgIG9uQ2hhbmdlPXtvbkRvbWFpbkNoYW5nZWR9XG4gICAgICAgIC8+XG4gICAgICAgIDxBeGlzQ29uZmlnXG4gICAgICAgICAgY2xhc3Nlcz17Y2xhc3Nlc31cbiAgICAgICAgICBkaXNwbGF5ZWRGaWVsZHM9e2F4aXNDb25maWdGaWVsZHN9XG4gICAgICAgICAgZGlzcGxheUhlYWRlcj17ZGlzcGxheUF4aXNUeXBlfVxuICAgICAgICAgIHR5cGU9XCJyYW5nZVwiXG4gICAgICAgICAgbWluVmFsdWU9e3JhbmdlLm1pbn1cbiAgICAgICAgICBtYXhWYWx1ZT17cmFuZ2UubWF4fVxuICAgICAgICAgIGxhYmVsPXtyYW5nZS5heGlzTGFiZWx9XG4gICAgICAgICAgZGlzYWJsZWQ9e3N0YW5kYXJkR3JpZH1cbiAgICAgICAgICBpbmNsdWRlQXhlcz17aW5jbHVkZUF4ZXN9XG4gICAgICAgICAgb25DaGFuZ2U9e29uUmFuZ2VDaGFuZ2VkfVxuICAgICAgICAvPlxuICAgICAgPC9kaXY+XG4gICAgICB7KG1pbi5lbmFibGVkIHx8IG1heC5lbmFibGVkKSAmJiAoXG4gICAgICAgIDxUeXBvZ3JhcGh5IGNsYXNzTmFtZT17Y2xhc3Nlcy50ZXh0fT5cbiAgICAgICAgICBJZiB5b3Ugd2FudCB0aGUgYXhpcyB0byBiZSB2aXNpYmxlLCB1c2UgYSB6ZXJvIG9yIG5lZ2F0aXZlIE1pbiBWYWx1ZSwgYW5kIGEgcG9zaXRpdmUgTWF4IFZhbHVlXG4gICAgICAgIDwvVHlwb2dyYXBoeT5cbiAgICAgICl9XG4gICAgICB7KHN0ZXAuZW5hYmxlZCB8fCBsYWJlbFN0ZXAuZW5hYmxlZCkgJiYgKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3Nlcy5yb3dWaWV3fT5cbiAgICAgICAgICA8R3JpZENvbmZpZ1xuICAgICAgICAgICAgY2xhc3Nlcz17Y2xhc3Nlc31cbiAgICAgICAgICAgIGRpc3BsYXllZEZpZWxkcz17Z3JpZENvbmZpZ0ZpZWxkc31cbiAgICAgICAgICAgIGdyaWRWYWx1ZT17ZG9tYWluLnN0ZXB9XG4gICAgICAgICAgICBsYWJlbFZhbHVlPXtkb21haW4ubGFiZWxTdGVwfVxuICAgICAgICAgICAgZ3JpZFZhbHVlcz17Z3JpZFZhbHVlcy5kb21haW4gfHwgW119XG4gICAgICAgICAgICBsYWJlbFZhbHVlcz17bGFiZWxWYWx1ZXMuZG9tYWluIHx8IFtdfVxuICAgICAgICAgICAgb25DaGFuZ2U9e29uRG9tYWluQ2hhbmdlZH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxHcmlkQ29uZmlnXG4gICAgICAgICAgICBjbGFzc2VzPXtjbGFzc2VzfVxuICAgICAgICAgICAgZGlzYWJsZWQ9e3N0YW5kYXJkR3JpZH1cbiAgICAgICAgICAgIGRpc3BsYXllZEZpZWxkcz17Z3JpZENvbmZpZ0ZpZWxkc31cbiAgICAgICAgICAgIGdyaWRWYWx1ZT17cmFuZ2Uuc3RlcH1cbiAgICAgICAgICAgIGxhYmVsVmFsdWU9e3JhbmdlLmxhYmVsU3RlcH1cbiAgICAgICAgICAgIGdyaWRWYWx1ZXM9e2dyaWRWYWx1ZXMucmFuZ2UgfHwgW119XG4gICAgICAgICAgICBsYWJlbFZhbHVlcz17bGFiZWxWYWx1ZXMucmFuZ2UgfHwgW119XG4gICAgICAgICAgICBvbkNoYW5nZT17b25SYW5nZUNoYW5nZWR9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICApfVxuICAgICAge2xhYmVsU3RlcC5lbmFibGVkICYmIChcbiAgICAgICAgPFR5cG9ncmFwaHkgY2xhc3NOYW1lPXtjbGFzc2VzLnRleHR9PkZvciB1bm51bWJlcmVkIGdyaWRsaW5lcywgZW50ZXIgYSBsYWJlbCBpbnRlcnZhbCBvZiAwPC9UeXBvZ3JhcGh5PlxuICAgICAgKX1cbiAgICA8L1JlYWN0LkZyYWdtZW50PlxuICApO1xuXG4gIGNvbnN0IGdyaWRsaW5lc0NvbmZpZyA9IG1heC5lbmFibGVkID8gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtjbGFzc2VzLmNvbHVtblZpZXd9PlxuICAgICAgPE51bWJlclRleHRGaWVsZEN1c3RvbVxuICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMubGFyZ2VUZXh0RmllbGR9XG4gICAgICAgIGxhYmVsPVwiTnVtYmVyIG9mIFZlcnRpY2FsIEdyaWRsaW5lc1wiXG4gICAgICAgIHZhbHVlPXtkb21haW4ubWF4fVxuICAgICAgICBtaW49eyFpbmNsdWRlQXhlcyAmJiBncmlkUHJvcHMubWlufVxuICAgICAgICBtYXg9eyFpbmNsdWRlQXhlcyAmJiBncmlkUHJvcHMubWF4fVxuICAgICAgICB2YXJpYW50PVwib3V0bGluZWRcIlxuICAgICAgICBvbkNoYW5nZT17KGUsIHYpID0+IG9uRG9tYWluQ2hhbmdlZCgnbWF4Jywgdil9XG4gICAgICAvPlxuICAgICAgPE51bWJlclRleHRGaWVsZEN1c3RvbVxuICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMubGFyZ2VUZXh0RmllbGR9XG4gICAgICAgIGxhYmVsPVwiTnVtYmVyIG9mIEhvcml6b250YWwgR3JpZGxpbmVzXCJcbiAgICAgICAgdmFsdWU9e3JhbmdlLm1heH1cbiAgICAgICAgbWluPXshaW5jbHVkZUF4ZXMgJiYgZ3JpZFByb3BzLm1pbn1cbiAgICAgICAgbWF4PXshaW5jbHVkZUF4ZXMgJiYgZ3JpZFByb3BzLm1heH1cbiAgICAgICAgdmFyaWFudD1cIm91dGxpbmVkXCJcbiAgICAgICAgZGlzYWJsZWQ9e3N0YW5kYXJkR3JpZH1cbiAgICAgICAgb25DaGFuZ2U9eyhlLCB2KSA9PiBvblJhbmdlQ2hhbmdlZCgnbWF4Jywgdil9XG4gICAgICAvPlxuICAgIDwvZGl2PlxuICApIDogbnVsbDtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtjbGFzc2VzLndyYXBwZXJ9PlxuICAgICAgPEV4cGFuc2lvblBhbmVsIG9uQ2hhbmdlPXtvbkNoYW5nZVZpZXd9PlxuICAgICAgICA8RXhwYW5zaW9uUGFuZWxTdW1tYXJ5IGV4cGFuZEljb249ezxFeHBhbmRNb3JlSWNvbiAvPn0+XG4gICAgICAgICAgPFR5cG9ncmFwaHkgdmFyaWFudD1cInN1YnRpdGxlMVwiPkN1c3RvbWl6ZSBHcmlkIFNldHVwPC9UeXBvZ3JhcGh5PlxuICAgICAgICA8L0V4cGFuc2lvblBhbmVsU3VtbWFyeT5cbiAgICAgICAgPEV4cGFuc2lvblBhbmVsRGV0YWlscz5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3Nlcy5jb250ZW50fT5cbiAgICAgICAgICAgIHtpbmNsdWRlQXhlc0VuYWJsZWQgJiYgKFxuICAgICAgICAgICAgICA8VG9nZ2xlXG4gICAgICAgICAgICAgICAgICBsYWJlbD1cIkluY2x1ZGUgYXhlcyBhbmQgbGFiZWxzP1wiXG4gICAgICAgICAgICAgICAgICB0b2dnbGU9e29uSW5jbHVkZUF4ZXN9XG4gICAgICAgICAgICAgICAgICBjaGVja2VkPXtpbmNsdWRlQXhlc30gLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICB7c3RhbmRhcmRHcmlkRW5hYmxlZCAmJiAoXG4gICAgICAgICAgICAgICAgPFRvZ2dsZVxuICAgICAgICAgICAgICAgICAgbGFiZWw9XCJDb25zdHJhaW4gdG8gc3RhbmRhcmQgY29vcmRpbmF0ZSBncmlkP1wiXG4gICAgICAgICAgICAgICAgICB0b2dnbGU9e29uU3RhbmRhcmRHcmlkQ2hhbmdlZH1cbiAgICAgICAgICAgICAgICAgIGNoZWNrZWQ9e3N0YW5kYXJkR3JpZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIHtpbmNsdWRlQXhlcyA/IGF4ZXNDb25maWcgOiBncmlkbGluZXNDb25maWd9XG4gICAgICAgICAgICB7ZGltZW5zaW9uc0VuYWJsZWQgJiYgKFxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3Nlcy5kaW1lbnNpb25zfT5cbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgPFR5cG9ncmFwaHk+RGltZW5zaW9ucyhweCk8L1R5cG9ncmFwaHk+XG4gICAgICAgICAgICAgICAgICA8VHlwb2dyYXBoeSBjbGFzc05hbWU9e2NsYXNzZXMuZGlzYWJsZWR9PlxuICAgICAgICAgICAgICAgICAgICBNaW4ge3NpemVDb25zdHJhaW50cy5taW59LCBNYXgge3NpemVDb25zdHJhaW50cy5tYXh9XG4gICAgICAgICAgICAgICAgICA8L1R5cG9ncmFwaHk+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPE51bWJlclRleHRGaWVsZEN1c3RvbVxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLnRleHRGaWVsZH1cbiAgICAgICAgICAgICAgICAgIGxhYmVsPVwiV2lkdGhcIlxuICAgICAgICAgICAgICAgICAgdmFsdWU9e3NpemUud2lkdGh9XG4gICAgICAgICAgICAgICAgICBtaW49e3NpemVDb25zdHJhaW50cy5taW59XG4gICAgICAgICAgICAgICAgICBtYXg9e3NpemVDb25zdHJhaW50cy5tYXh9XG4gICAgICAgICAgICAgICAgICBzdGVwPXtzaXplQ29uc3RyYWludHMuc3RlcH1cbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJvdXRsaW5lZFwiXG4gICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUsIHYpID0+IG9uU2l6ZUNoYW5nZWQoJ3dpZHRoJywgdil9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8TnVtYmVyVGV4dEZpZWxkQ3VzdG9tXG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMudGV4dEZpZWxkfVxuICAgICAgICAgICAgICAgICAgbGFiZWw9XCJIZWlnaHRcIlxuICAgICAgICAgICAgICAgICAgdmFsdWU9e3NpemUuaGVpZ2h0fVxuICAgICAgICAgICAgICAgICAgbWluPXtzaXplQ29uc3RyYWludHMubWlufVxuICAgICAgICAgICAgICAgICAgbWF4PXtzaXplQ29uc3RyYWludHMubWF4fVxuICAgICAgICAgICAgICAgICAgc3RlcD17c2l6ZUNvbnN0cmFpbnRzLnN0ZXB9XG4gICAgICAgICAgICAgICAgICB2YXJpYW50PVwib3V0bGluZWRcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e3N0YW5kYXJkR3JpZH1cbiAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSwgdikgPT4gb25TaXplQ2hhbmdlZCgnaGVpZ2h0Jywgdil9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L0V4cGFuc2lvblBhbmVsRGV0YWlscz5cbiAgICAgIDwvRXhwYW5zaW9uUGFuZWw+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5HcmlkU2V0dXAucHJvcFR5cGVzID0ge1xuICBjbGFzc2VzOiBQcm9wVHlwZXMub2JqZWN0LFxuICBkb21haW46IFByb3BUeXBlcy5vYmplY3QsXG4gIGRpc3BsYXllZEZpZWxkczogUHJvcFR5cGVzLm9iamVjdCxcbiAgZ3JpZFZhbHVlczogUHJvcFR5cGVzLm9iamVjdCxcbiAgaW5jbHVkZUF4ZXM6IFByb3BUeXBlcy5ib29sLFxuICBsYWJlbFZhbHVlczogUHJvcFR5cGVzLm9iamVjdCxcbiAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLFxuICBvbkNoYW5nZVZpZXc6IFByb3BUeXBlcy5mdW5jLFxuICByYW5nZTogUHJvcFR5cGVzLm9iamVjdCxcbiAgc2l6ZTogUHJvcFR5cGVzLm9iamVjdCxcbiAgc2l6ZUNvbnN0cmFpbnRzOiBQcm9wVHlwZXMub2JqZWN0LFxuICBzdGFuZGFyZEdyaWQ6IFByb3BUeXBlcy5ib29sLFxufTtcblxuY29uc3Qgc3R5bGVzID0gKHRoZW1lKSA9PiAoe1xuICB3cmFwcGVyOiB7XG4gICAgd2lkdGg6ICc0NTBweCcsXG4gIH0sXG4gIGNvbnRlbnQ6IHtcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsXG4gICAgd2lkdGg6ICcxMDAlJyxcbiAgfSxcbiAgY29sdW1uVmlldzoge1xuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyxcbiAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgfSxcbiAgcm93Vmlldzoge1xuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBqdXN0aWZ5Q29udGVudDogJ3NwYWNlLWFyb3VuZCcsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gIH0sXG4gIHRleHRGaWVsZDoge1xuICAgIHdpZHRoOiAnMTMwcHgnLFxuICAgIG1hcmdpbjogYCR7dGhlbWUuc3BhY2luZy51bml0fXB4ICR7dGhlbWUuc3BhY2luZy51bml0IC8gMn1weGAsXG4gIH0sXG4gIG1lZGl1bVRleHRGaWVsZDoge1xuICAgIHdpZHRoOiAnMTYwcHgnLFxuICAgIG1hcmdpbjogYCR7dGhlbWUuc3BhY2luZy51bml0fXB4ICR7dGhlbWUuc3BhY2luZy51bml0IC8gMn1weGAsXG4gIH0sXG4gIGxhcmdlVGV4dEZpZWxkOiB7XG4gICAgd2lkdGg6ICcyMzBweCcsXG4gICAgbWFyZ2luOiBgJHt0aGVtZS5zcGFjaW5nLnVuaXR9cHggJHt0aGVtZS5zcGFjaW5nLnVuaXQgLyAyfXB4YCxcbiAgfSxcbiAgdGV4dDoge1xuICAgIGZvbnRTdHlsZTogJ2l0YWxpYycsXG4gICAgbWFyZ2luOiBgJHt0aGVtZS5zcGFjaW5nLnVuaXR9cHggMGAsXG4gIH0sXG4gIGRpbWVuc2lvbnM6IHtcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAganVzdGlmeUNvbnRlbnQ6ICdzcGFjZS1iZXR3ZWVuJyxcbiAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgfSxcbiAgZGlzYWJsZWQ6IHtcbiAgICBjb2xvcjogY29sb3IuZGlzYWJsZWQoKSxcbiAgfSxcbiAgYXhpc0xhYmVsOiB7XG4gICAgcGFkZGluZ1RvcDogdGhlbWUuc3BhY2luZy51bml0ICogMixcbiAgfSxcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCB3aXRoU3R5bGVzKHN0eWxlcykoR3JpZFNldHVwKTtcbiJdfQ==
462
+ //# sourceMappingURL=grid-setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/grid-setup.jsx"],"names":["GridConfig","props","classes","disabled","displayedFields","labelValue","labelValues","gridValue","gridValues","onChange","labelStep","step","columnView","enabled","mediumTextField","label","e","v","propTypes","PropTypes","object","bool","number","array","func","AxisConfig","displayHeader","maxValue","minValue","type","axisLabel","min","max","activePlugins","value","string","GridSetup","domain","includeAxes","onChangeView","range","size","sizeConstraints","standardGrid","gridProps","dimensionsEnabled","includeAxesEnabled","standardGridEnabled","displayAxisType","gridConfigFields","axisConfigFields","onIncludeAxes","noAxesConfig","axis","updatedRange","updatedDomain","onStandardGridChanged","graph","height","width","onSizeChanged","key","onDomainChanged","onRangeChanged","axesConfig","rowView","text","gridlinesConfig","largeTextField","wrapper","content","dimensions","textField","styles","theme","display","flexDirection","alignItems","justifyContent","margin","spacing","unit","fontStyle","color","paddingTop"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;AAEA,IAAMA,UAAU,GAAG,SAAbA,UAAa,CAACC,KAAD,EAAW;AAC5B,MAAQC,OAAR,GAAyGD,KAAzG,CAAQC,OAAR;AAAA,MAAiBC,QAAjB,GAAyGF,KAAzG,CAAiBE,QAAjB;AAAA,MAA2BC,eAA3B,GAAyGH,KAAzG,CAA2BG,eAA3B;AAAA,MAA4CC,UAA5C,GAAyGJ,KAAzG,CAA4CI,UAA5C;AAAA,MAAwDC,WAAxD,GAAyGL,KAAzG,CAAwDK,WAAxD;AAAA,MAAqEC,SAArE,GAAyGN,KAAzG,CAAqEM,SAArE;AAAA,MAAgFC,UAAhF,GAAyGP,KAAzG,CAAgFO,UAAhF;AAAA,MAA4FC,SAA5F,GAAyGR,KAAzG,CAA4FQ,QAA5F;AACA,8BAAsCL,eAAtC,CAAQM,SAAR;AAAA,MAAQA,SAAR,sCAAoB,EAApB;AAAA,8BAAsCN,eAAtC,CAAwBO,IAAxB;AAAA,MAAwBA,IAAxB,sCAA+B,EAA/B;AAEA,sBACE;AAAK,IAAA,SAAS,EAAET,OAAO,CAACU;AAAxB,KACGD,IAAI,IAAIA,IAAI,CAACE,OAAb,iBACC,gCAAC,+BAAD;AACE,IAAA,SAAS,EAAEX,OAAO,CAACY,eADrB;AAEE,IAAA,KAAK,EAAEH,IAAI,CAACI,KAAL,IAAc,EAFvB;AAGE,IAAA,KAAK,EAAER,SAHT;AAIE,IAAA,YAAY,EAAEC,UAJhB;AAKE,IAAA,OAAO,EAAC,UALV;AAME,IAAA,QAAQ,EAAEL,QANZ;AAOE,IAAA,QAAQ,EAAE,kBAACa,CAAD,EAAIC,CAAJ;AAAA,aAAUR,SAAQ,CAAC,MAAD,EAASQ,CAAT,CAAlB;AAAA;AAPZ,IAFJ,EAYGP,SAAS,IAAIA,SAAS,CAACG,OAAvB,iBACC,gCAAC,+BAAD;AACE,IAAA,SAAS,EAAEX,OAAO,CAACY,eADrB;AAEE,IAAA,KAAK,EAAEJ,SAAS,CAACK,KAAV,IAAmB,EAF5B;AAGE,IAAA,KAAK,EAAEV,UAHT;AAIE,IAAA,YAAY,EAAEC,WAJhB;AAKE,IAAA,OAAO,EAAC,UALV;AAME,IAAA,QAAQ,EAAEH,QANZ;AAOE,IAAA,QAAQ,EAAE,kBAACa,CAAD,EAAIC,CAAJ;AAAA,aAAUR,SAAQ,CAAC,WAAD,EAAcQ,CAAd,CAAlB;AAAA;AAPZ,IAbJ,CADF;AA0BD,CA9BD;;AAgCAjB,UAAU,CAACkB,SAAX,GAAuB;AACrBhB,EAAAA,OAAO,EAAEiB,sBAAUC,MADE;AAErBjB,EAAAA,QAAQ,EAAEgB,sBAAUE,IAFC;AAGrBjB,EAAAA,eAAe,EAAEe,sBAAUC,MAHN;AAIrBf,EAAAA,UAAU,EAAEc,sBAAUG,MAJD;AAKrBhB,EAAAA,WAAW,EAAEa,sBAAUI,KALF;AAMrBhB,EAAAA,SAAS,EAAEY,sBAAUG,MANA;AAOrBd,EAAAA,UAAU,EAAEW,sBAAUI,KAPD;AAQrBd,EAAAA,QAAQ,EAAEU,sBAAUK;AARC,CAAvB;;AAWA,IAAMC,UAAU,GAAG,SAAbA,UAAa,CAACxB,KAAD,EAAW;AAC5B,MAAQC,OAAR,GAAyGD,KAAzG,CAAQC,OAAR;AAAA,MAAiBC,QAAjB,GAAyGF,KAAzG,CAAiBE,QAAjB;AAAA,MAA2BC,eAA3B,GAAyGH,KAAzG,CAA2BG,eAA3B;AAAA,MAA4CsB,aAA5C,GAAyGzB,KAAzG,CAA4CyB,aAA5C;AAAA,MAA2DX,KAA3D,GAAyGd,KAAzG,CAA2Dc,KAA3D;AAAA,MAAkEY,QAAlE,GAAyG1B,KAAzG,CAAkE0B,QAAlE;AAAA,MAA4EC,QAA5E,GAAyG3B,KAAzG,CAA4E2B,QAA5E;AAAA,MAAsFnB,UAAtF,GAAyGR,KAAzG,CAAsFQ,QAAtF;AAAA,MAAgGoB,IAAhG,GAAyG5B,KAAzG,CAAgG4B,IAAhG;AACA,8BAA+CzB,eAA/C,CAAQ0B,SAAR;AAAA,MAAQA,SAAR,sCAAoB,EAApB;AAAA,6BAA+C1B,eAA/C,CAAwB2B,GAAxB;AAAA,MAAwBA,GAAxB,qCAA8B,EAA9B;AAAA,6BAA+C3B,eAA/C,CAAkC4B,GAAlC;AAAA,MAAkCA,GAAlC,qCAAwC,EAAxC;AACA,MAAMC,aAAa,GAAG,CACpB,MADoB,EAEpB,QAFoB,EAGpB,WAHoB,EAIpB,eAJoB,CAKpB;AALoB,GAAtB;AAQA,sBACE;AAAK,IAAA,SAAS,EAAE/B,OAAO,CAACU;AAAxB,KACGc,aAAa,iBACZ,gCAAC,sBAAD;AAAY,IAAA,OAAO,EAAC;AAApB,kBACE,2CAAIG,IAAI,KAAK,QAAT,GAAoB,GAApB,GAA0B,GAA9B,CADF,UAFJ,EAOGE,GAAG,IAAIA,GAAG,CAAClB,OAAX,iBACC,gCAAC,+BAAD;AACE,IAAA,SAAS,EAAEX,OAAO,CAACY,eADrB;AAEE,IAAA,KAAK,EAAEiB,GAAG,CAAChB,KAAJ,IAAa,EAFtB;AAGE,IAAA,KAAK,EAAEa,QAHT;AAIE,IAAA,GAAG,EAAE,CAAC,KAJR;AAKE,IAAA,GAAG,EAAED,QAAQ,GAAG,IALlB;AAME,IAAA,OAAO,EAAC,UANV;AAOE,IAAA,QAAQ,EAAExB,QAPZ;AAQE,IAAA,QAAQ,EAAE,kBAACa,CAAD,EAAIC,CAAJ;AAAA,aAAUR,UAAQ,CAAC,KAAD,EAAQQ,CAAR,CAAlB;AAAA;AARZ,IARJ,EAmBGe,GAAG,IAAIA,GAAG,CAACnB,OAAX,iBACC,gCAAC,+BAAD;AACE,IAAA,SAAS,EAAEX,OAAO,CAACY,eADrB;AAEE,IAAA,KAAK,EAAEkB,GAAG,CAACjB,KAAJ,IAAa,EAFtB;AAGE,IAAA,KAAK,EAAEY,QAHT;AAIE,IAAA,GAAG,EAAEC,QAAQ,GAAG,IAJlB;AAKE,IAAA,GAAG,EAAE,KALP;AAME,IAAA,OAAO,EAAC,UANV;AAOE,IAAA,QAAQ,EAAEzB,QAPZ;AAQE,IAAA,QAAQ,EAAE,kBAACa,CAAD,EAAIC,CAAJ;AAAA,aAAUR,UAAQ,CAAC,KAAD,EAAQQ,CAAR,CAAlB;AAAA;AARZ,IApBJ,EA+BGa,SAAS,IAAIA,SAAS,CAACjB,OAAvB,iBACC,gCAAC,qBAAD;AAAgB,IAAA,KAAK,EAAEiB,SAAS,CAACf,KAAV,IAAmB,EAA1C;AAA8C,IAAA,SAAS,EAAEb,OAAO,CAACY;AAAjE,kBACE,gCAAC,wBAAD;AACE,IAAA,SAAS,EAAEZ,OAAO,CAAC4B,SADrB;AAEE,IAAA,QAAQ,EAAE,kBAACI,KAAD;AAAA,aAAWzB,UAAQ,CAAC,WAAD,EAAcyB,KAAd,CAAnB;AAAA,KAFZ;AAGE,IAAA,MAAM,EAAEnB,KAAK,IAAI,EAHnB;AAIE,IAAA,eAAe,EAAE,CAJnB;AAKE,IAAA,aAAa,EAAEkB;AALjB,IADF,CAhCJ,CADF;AA6CD,CAxDD;;AA0DAR,UAAU,CAACP,SAAX,GAAuB;AACrBhB,EAAAA,OAAO,EAAEiB,sBAAUC,MADE;AAErBjB,EAAAA,QAAQ,EAAEgB,sBAAUE,IAFC;AAGrBjB,EAAAA,eAAe,EAAEe,sBAAUC,MAHN;AAIrBM,EAAAA,aAAa,EAAEP,sBAAUE,IAJJ;AAKrBN,EAAAA,KAAK,EAAEI,sBAAUgB,MALI;AAMrBR,EAAAA,QAAQ,EAAER,sBAAUG,MANC;AAOrBM,EAAAA,QAAQ,EAAET,sBAAUG,MAPC;AAQrBO,EAAAA,IAAI,EAAEV,sBAAUgB,MARK;AASrB1B,EAAAA,QAAQ,EAAEU,sBAAUK;AATC,CAAvB;;AAWA,IAAMY,SAAS,GAAG,SAAZA,SAAY,CAACnC,KAAD,EAAW;AAC3B,MACEC,OADF,GAaID,KAbJ,CACEC,OADF;AAAA,MAEEmC,MAFF,GAaIpC,KAbJ,CAEEoC,MAFF;AAAA,8BAaIpC,KAbJ,CAGEG,eAHF;AAAA,MAGEA,eAHF,sCAGoB,EAHpB;AAAA,0BAaIH,KAbJ,CAIEO,UAJF;AAAA,MAIEA,UAJF,kCAIe,EAJf;AAAA,MAKE8B,WALF,GAaIrC,KAbJ,CAKEqC,WALF;AAAA,2BAaIrC,KAbJ,CAMEK,WANF;AAAA,MAMEA,WANF,mCAMgB,EANhB;AAAA,MAOEG,QAPF,GAaIR,KAbJ,CAOEQ,QAPF;AAAA,MAQE8B,YARF,GAaItC,KAbJ,CAQEsC,YARF;AAAA,MASEC,KATF,GAaIvC,KAbJ,CASEuC,KATF;AAAA,MAUEC,IAVF,GAaIxC,KAbJ,CAUEwC,IAVF;AAAA,MAWEC,eAXF,GAaIzC,KAbJ,CAWEyC,eAXF;AAAA,MAYEC,YAZF,GAaI1C,KAbJ,CAYE0C,YAZF;AAcA,MAAMC,SAAS,GAAG;AAAEb,IAAAA,GAAG,EAAE,CAAP;AAAUC,IAAAA,GAAG,EAAE;AAAf,GAAlB;;AACA,aASI5B,eAAe,IAAI,EATvB;AAAA,4BACE0B,SADF;AAAA,MACEA,SADF,+BACc,EADd;AAAA,MAEEe,iBAFF,QAEEA,iBAFF;AAAA,MAGEC,kBAHF,QAGEA,kBAHF;AAAA,4BAIEpC,SAJF;AAAA,MAIEA,SAJF,+BAIc,EAJd;AAAA,sBAKEqB,GALF;AAAA,MAKEA,GALF,yBAKQ,EALR;AAAA,sBAMEC,GANF;AAAA,MAMEA,GANF,yBAMQ,EANR;AAAA,MAOEe,mBAPF,QAOEA,mBAPF;AAAA,uBAQEpC,IARF;AAAA,MAQEA,IARF,0BAQS,EART;;AAUA,MAAMqC,eAAe,GAAGjB,GAAG,CAAClB,OAAJ,IAAemB,GAAG,CAACnB,OAAnB,IAA8BiB,SAAS,CAACjB,OAAxC,IAAmDF,IAAI,CAACE,OAAxD,IAAmEH,SAAS,CAACG,OAArG;AACA,MAAMoC,gBAAgB,GAAG;AAAEtC,IAAAA,IAAI,EAAJA,IAAF;AAAQD,IAAAA,SAAS,EAATA;AAAR,GAAzB;AACA,MAAMwC,gBAAgB,GAAG;AAAEnB,IAAAA,GAAG,EAAHA,GAAF;AAAOC,IAAAA,GAAG,EAAHA,GAAP;AAAYF,IAAAA,SAAS,EAATA;AAAZ,GAAzB;;AAEA,MAAMqB,aAAa,GAAG,SAAhBA,aAAgB,CAACb,WAAD,EAAiB;AACrC,QAAMc,YAAY,GAAG,SAAfA,YAAe,CAACvB,IAAD,EAAU;AAC7B,UAAMwB,IAAI,GAAGxB,IAAI,KAAK,QAAT,GAAoBQ,MAApB,GAA6BG,KAA1C;AAEA,aAAO;AACLT,QAAAA,GAAG,EAAE,CADA;AAELC,QAAAA,GAAG,EAAEqB,IAAI,CAACrB,GAAL,GAAWY,SAAS,CAACb,GAArB,IAA4BsB,IAAI,CAACrB,GAAL,GAAWY,SAAS,CAACZ,GAAjD,GAAuD,EAAvD,GAA4DqB,IAAI,CAACrB,GAFjE;AAGLrB,QAAAA,IAAI,EAAE,CAHD;AAILD,QAAAA,SAAS,EAAE;AAJN,OAAP;AAMD,KATD;;AAWA,QAAM4C,YAAY,mCACbd,KADa,GAEZF,WAAW,GAAG;AAAE5B,MAAAA,SAAS,EAAE;AAAb,KAAH,GAAsB0C,YAAY,CAAC,OAAD,CAFjC,CAAlB;;AAIA,QAAMG,aAAa,mCACdlB,MADc,GAEbC,WAAW,GAAG;AAAE5B,MAAAA,SAAS,EAAE;AAAb,KAAH,GAAsB0C,YAAY,CAAC,QAAD,CAFhC,CAAnB;;AAKA3C,IAAAA,QAAQ,CAAC;AAAE6B,MAAAA,WAAW,EAAXA,WAAF;AAAeE,MAAAA,KAAK,EAAEc,YAAtB;AAAoCjB,MAAAA,MAAM,EAAEkB;AAA5C,KAAD,CAAR;AACD,GAtBD;;AAwBA,MAAMC,qBAAqB,GAAG,SAAxBA,qBAAwB,CAACtB,KAAD,EAAW;AACvCzB,IAAAA,QAAQ,CAAC;AACPkC,MAAAA,YAAY,EAAET,KADP;AAEPM,MAAAA,KAAK,kCACAH,MADA;AAEHP,QAAAA,SAAS,EAAEU,KAAK,CAACV;AAFd,QAFE;AAMP2B,MAAAA,KAAK,kCACAhB,IADA;AAEHiB,QAAAA,MAAM,EAAEjB,IAAI,CAACkB;AAFV;AANE,KAAD,CAAR;AAWD,GAZD;;AAcA,MAAMC,aAAa,GAAG,SAAhBA,aAAgB,CAACC,GAAD,EAAM3B,KAAN,EAAgB;AACpC,QAAMuB,KAAK,mCAAQhB,IAAR,4CAAeoB,GAAf,EAAqB3B,KAArB,EAAX;;AAEA,QAAIS,YAAJ,EAAkB;AAChBc,MAAAA,KAAK,CAACC,MAAN,GAAexB,KAAf;AACD;;AAEDzB,IAAAA,QAAQ,CAAC;AAAEgD,MAAAA,KAAK,EAALA;AAAF,KAAD,CAAR;AACD,GARD;;AAUA,MAAMK,eAAe,GAAG,SAAlBA,eAAkB,CAACD,GAAD,EAAM3B,KAAN,EAAgB;AACtCG,IAAAA,MAAM,CAACwB,GAAD,CAAN,GAAc3B,KAAd;;AAEA,QAAIS,YAAY,IAAIkB,GAAG,KAAK,WAA5B,EAAyC;AACvCrB,MAAAA,KAAK,CAACqB,GAAD,CAAL,GAAa3B,KAAb;AACD;;AAEDzB,IAAAA,QAAQ,CAAC;AAAE4B,MAAAA,MAAM,EAANA,MAAF;AAAUG,MAAAA,KAAK,EAALA;AAAV,KAAD,CAAR;AACD,GARD;;AAUA,MAAMuB,cAAc,GAAG,SAAjBA,cAAiB,CAACF,GAAD,EAAM3B,KAAN,EAAgB;AACrCM,IAAAA,KAAK,CAACqB,GAAD,CAAL,GAAa3B,KAAb;AAEAzB,IAAAA,QAAQ,CAAC;AAAE+B,MAAAA,KAAK,EAALA;AAAF,KAAD,CAAR;AACD,GAJD;;AAMA,MAAMwB,UAAU,gBACd,gCAAC,iBAAD,CAAO,QAAP,qBACE;AAAK,IAAA,SAAS,EAAE9D,OAAO,CAAC+D;AAAxB,kBACE,gCAAC,UAAD;AACE,IAAA,OAAO,EAAE/D,OADX;AAEE,IAAA,eAAe,EAAEgD,gBAFnB;AAGE,IAAA,aAAa,EAAEF,eAHjB;AAIE,IAAA,IAAI,EAAC,QAJP;AAKE,IAAA,QAAQ,EAAEX,MAAM,CAACN,GALnB;AAME,IAAA,QAAQ,EAAEM,MAAM,CAACL,GANnB;AAOE,IAAA,KAAK,EAAEK,MAAM,CAACP,SAPhB;AAQE,IAAA,WAAW,EAAEQ,WARf;AASE,IAAA,QAAQ,EAAEwB;AATZ,IADF,eAYE,gCAAC,UAAD;AACE,IAAA,OAAO,EAAE5D,OADX;AAEE,IAAA,eAAe,EAAEgD,gBAFnB;AAGE,IAAA,aAAa,EAAEF,eAHjB;AAIE,IAAA,IAAI,EAAC,OAJP;AAKE,IAAA,QAAQ,EAAER,KAAK,CAACT,GALlB;AAME,IAAA,QAAQ,EAAES,KAAK,CAACR,GANlB;AAOE,IAAA,KAAK,EAAEQ,KAAK,CAACV,SAPf;AAQE,IAAA,QAAQ,EAAEa,YARZ;AASE,IAAA,WAAW,EAAEL,WATf;AAUE,IAAA,QAAQ,EAAEyB;AAVZ,IAZF,CADF,EA0BG,CAAChC,GAAG,CAAClB,OAAJ,IAAemB,GAAG,CAACnB,OAApB,kBACC,gCAAC,sBAAD;AAAY,IAAA,SAAS,EAAEX,OAAO,CAACgE;AAA/B,sGA3BJ,EA+BG,CAACvD,IAAI,CAACE,OAAL,IAAgBH,SAAS,CAACG,OAA3B,kBACC;AAAK,IAAA,SAAS,EAAEX,OAAO,CAAC+D;AAAxB,kBACE,gCAAC,UAAD;AACE,IAAA,OAAO,EAAE/D,OADX;AAEE,IAAA,eAAe,EAAE+C,gBAFnB;AAGE,IAAA,SAAS,EAAEZ,MAAM,CAAC1B,IAHpB;AAIE,IAAA,UAAU,EAAE0B,MAAM,CAAC3B,SAJrB;AAKE,IAAA,UAAU,EAAEF,UAAU,CAAC6B,MAAX,IAAqB,EALnC;AAME,IAAA,WAAW,EAAE/B,WAAW,CAAC+B,MAAZ,IAAsB,EANrC;AAOE,IAAA,QAAQ,EAAEyB;AAPZ,IADF,eAUE,gCAAC,UAAD;AACE,IAAA,OAAO,EAAE5D,OADX;AAEE,IAAA,QAAQ,EAAEyC,YAFZ;AAGE,IAAA,eAAe,EAAEM,gBAHnB;AAIE,IAAA,SAAS,EAAET,KAAK,CAAC7B,IAJnB;AAKE,IAAA,UAAU,EAAE6B,KAAK,CAAC9B,SALpB;AAME,IAAA,UAAU,EAAEF,UAAU,CAACgC,KAAX,IAAoB,EANlC;AAOE,IAAA,WAAW,EAAElC,WAAW,CAACkC,KAAZ,IAAqB,EAPpC;AAQE,IAAA,QAAQ,EAAEuB;AARZ,IAVF,CAhCJ,EAsDGrD,SAAS,CAACG,OAAV,iBACC,gCAAC,sBAAD;AAAY,IAAA,SAAS,EAAEX,OAAO,CAACgE;AAA/B,6DAvDJ,CADF;;AA6DA,MAAMC,eAAe,GAAGnC,GAAG,CAACnB,OAAJ,gBACtB;AAAK,IAAA,SAAS,EAAEX,OAAO,CAACU;AAAxB,kBACE,gCAAC,+BAAD;AACE,IAAA,SAAS,EAAEV,OAAO,CAACkE,cADrB;AAEE,IAAA,KAAK,EAAC,8BAFR;AAGE,IAAA,KAAK,EAAE/B,MAAM,CAACL,GAHhB;AAIE,IAAA,GAAG,EAAE,CAACM,WAAD,IAAgBM,SAAS,CAACb,GAJjC;AAKE,IAAA,GAAG,EAAE,CAACO,WAAD,IAAgBM,SAAS,CAACZ,GALjC;AAME,IAAA,OAAO,EAAC,UANV;AAOE,IAAA,QAAQ,EAAE,kBAAChB,CAAD,EAAIC,CAAJ;AAAA,aAAU6C,eAAe,CAAC,KAAD,EAAQ7C,CAAR,CAAzB;AAAA;AAPZ,IADF,eAUE,gCAAC,+BAAD;AACE,IAAA,SAAS,EAAEf,OAAO,CAACkE,cADrB;AAEE,IAAA,KAAK,EAAC,gCAFR;AAGE,IAAA,KAAK,EAAE5B,KAAK,CAACR,GAHf;AAIE,IAAA,GAAG,EAAE,CAACM,WAAD,IAAgBM,SAAS,CAACb,GAJjC;AAKE,IAAA,GAAG,EAAE,CAACO,WAAD,IAAgBM,SAAS,CAACZ,GALjC;AAME,IAAA,OAAO,EAAC,UANV;AAOE,IAAA,QAAQ,EAAEW,YAPZ;AAQE,IAAA,QAAQ,EAAE,kBAAC3B,CAAD,EAAIC,CAAJ;AAAA,aAAU8C,cAAc,CAAC,KAAD,EAAQ9C,CAAR,CAAxB;AAAA;AARZ,IAVF,CADsB,GAsBpB,IAtBJ;AAwBA,sBACE;AAAK,IAAA,SAAS,EAAEf,OAAO,CAACmE;AAAxB,kBACE,gCAAC,0BAAD;AAAgB,IAAA,QAAQ,EAAE9B;AAA1B,kBACE,gCAAC,iCAAD;AAAuB,IAAA,UAAU,eAAE,gCAAC,sBAAD;AAAnC,kBACE,gCAAC,sBAAD;AAAY,IAAA,OAAO,EAAC;AAApB,4BADF,CADF,eAIE,gCAAC,iCAAD,qBACE;AAAK,IAAA,SAAS,EAAErC,OAAO,CAACoE;AAAxB,KACGxB,kBAAkB,iBACjB,gCAAC,gBAAD;AAAQ,IAAA,KAAK,EAAC,0BAAd;AAAyC,IAAA,MAAM,EAAEK,aAAjD;AAAgE,IAAA,OAAO,EAAEb;AAAzE,IAFJ,EAIGS,mBAAmB,iBAClB,gCAAC,gBAAD;AACE,IAAA,KAAK,EAAC,wCADR;AAEE,IAAA,MAAM,EAAES,qBAFV;AAGE,IAAA,OAAO,EAAEb;AAHX,IALJ,EAWGL,WAAW,GAAG0B,UAAH,GAAgBG,eAX9B,EAYGtB,iBAAiB,iBAChB;AAAK,IAAA,SAAS,EAAE3C,OAAO,CAACqE;AAAxB,kBACE,0DACE,gCAAC,sBAAD,yBADF,eAEE,gCAAC,sBAAD;AAAY,IAAA,SAAS,EAAErE,OAAO,CAACC;AAA/B,aACOuC,eAAe,CAACX,GADvB,YACkCW,eAAe,CAACV,GADlD,CAFF,CADF,eAOE,gCAAC,+BAAD;AACE,IAAA,SAAS,EAAE9B,OAAO,CAACsE,SADrB;AAEE,IAAA,KAAK,EAAC,OAFR;AAGE,IAAA,KAAK,EAAE/B,IAAI,CAACkB,KAHd;AAIE,IAAA,GAAG,EAAEjB,eAAe,CAACX,GAJvB;AAKE,IAAA,GAAG,EAAEW,eAAe,CAACV,GALvB;AAME,IAAA,IAAI,EAAEU,eAAe,CAAC/B,IANxB;AAOE,IAAA,OAAO,EAAC,UAPV;AAQE,IAAA,QAAQ,EAAE,kBAACK,CAAD,EAAIC,CAAJ;AAAA,aAAU2C,aAAa,CAAC,OAAD,EAAU3C,CAAV,CAAvB;AAAA;AARZ,IAPF,eAiBE,gCAAC,+BAAD;AACE,IAAA,SAAS,EAAEf,OAAO,CAACsE,SADrB;AAEE,IAAA,KAAK,EAAC,QAFR;AAGE,IAAA,KAAK,EAAE/B,IAAI,CAACiB,MAHd;AAIE,IAAA,GAAG,EAAEhB,eAAe,CAACX,GAJvB;AAKE,IAAA,GAAG,EAAEW,eAAe,CAACV,GALvB;AAME,IAAA,IAAI,EAAEU,eAAe,CAAC/B,IANxB;AAOE,IAAA,OAAO,EAAC,UAPV;AAQE,IAAA,QAAQ,EAAEgC,YARZ;AASE,IAAA,QAAQ,EAAE,kBAAC3B,CAAD,EAAIC,CAAJ;AAAA,aAAU2C,aAAa,CAAC,QAAD,EAAW3C,CAAX,CAAvB;AAAA;AATZ,IAjBF,CAbJ,CADF,CAJF,CADF,CADF;AAuDD,CA1OD;;AA4OAmB,SAAS,CAAClB,SAAV,GAAsB;AACpBhB,EAAAA,OAAO,EAAEiB,sBAAUC,MADC;AAEpBiB,EAAAA,MAAM,EAAElB,sBAAUC,MAFE;AAGpBhB,EAAAA,eAAe,EAAEe,sBAAUC,MAHP;AAIpBZ,EAAAA,UAAU,EAAEW,sBAAUC,MAJF;AAKpBkB,EAAAA,WAAW,EAAEnB,sBAAUE,IALH;AAMpBf,EAAAA,WAAW,EAAEa,sBAAUC,MANH;AAOpBX,EAAAA,QAAQ,EAAEU,sBAAUK,IAPA;AAQpBe,EAAAA,YAAY,EAAEpB,sBAAUK,IARJ;AASpBgB,EAAAA,KAAK,EAAErB,sBAAUC,MATG;AAUpBqB,EAAAA,IAAI,EAAEtB,sBAAUC,MAVI;AAWpBsB,EAAAA,eAAe,EAAEvB,sBAAUC,MAXP;AAYpBuB,EAAAA,YAAY,EAAExB,sBAAUE;AAZJ,CAAtB;;AAeA,IAAMoD,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD;AAAA,SAAY;AACzBL,IAAAA,OAAO,EAAE;AACPV,MAAAA,KAAK,EAAE;AADA,KADgB;AAIzBW,IAAAA,OAAO,EAAE;AACPK,MAAAA,OAAO,EAAE,MADF;AAEPC,MAAAA,aAAa,EAAE,QAFR;AAGPjB,MAAAA,KAAK,EAAE;AAHA,KAJgB;AASzB/C,IAAAA,UAAU,EAAE;AACV+D,MAAAA,OAAO,EAAE,MADC;AAEVC,MAAAA,aAAa,EAAE,QAFL;AAGVC,MAAAA,UAAU,EAAE;AAHF,KATa;AAczBZ,IAAAA,OAAO,EAAE;AACPU,MAAAA,OAAO,EAAE,MADF;AAEPG,MAAAA,cAAc,EAAE,cAFT;AAGPD,MAAAA,UAAU,EAAE;AAHL,KAdgB;AAmBzBL,IAAAA,SAAS,EAAE;AACTb,MAAAA,KAAK,EAAE,OADE;AAEToB,MAAAA,MAAM,YAAKL,KAAK,CAACM,OAAN,CAAcC,IAAnB,gBAA6BP,KAAK,CAACM,OAAN,CAAcC,IAAd,GAAqB,CAAlD;AAFG,KAnBc;AAuBzBnE,IAAAA,eAAe,EAAE;AACf6C,MAAAA,KAAK,EAAE,OADQ;AAEfoB,MAAAA,MAAM,YAAKL,KAAK,CAACM,OAAN,CAAcC,IAAnB,gBAA6BP,KAAK,CAACM,OAAN,CAAcC,IAAd,GAAqB,CAAlD;AAFS,KAvBQ;AA2BzBb,IAAAA,cAAc,EAAE;AACdT,MAAAA,KAAK,EAAE,OADO;AAEdoB,MAAAA,MAAM,YAAKL,KAAK,CAACM,OAAN,CAAcC,IAAnB,gBAA6BP,KAAK,CAACM,OAAN,CAAcC,IAAd,GAAqB,CAAlD;AAFQ,KA3BS;AA+BzBf,IAAAA,IAAI,EAAE;AACJgB,MAAAA,SAAS,EAAE,QADP;AAEJH,MAAAA,MAAM,YAAKL,KAAK,CAACM,OAAN,CAAcC,IAAnB;AAFF,KA/BmB;AAmCzBV,IAAAA,UAAU,EAAE;AACVI,MAAAA,OAAO,EAAE,MADC;AAEVG,MAAAA,cAAc,EAAE,eAFN;AAGVD,MAAAA,UAAU,EAAE;AAHF,KAnCa;AAwCzB1E,IAAAA,QAAQ,EAAE;AACRgF,MAAAA,KAAK,EAAEA,aAAMhF,QAAN;AADC,KAxCe;AA2CzB2B,IAAAA,SAAS,EAAE;AACTsD,MAAAA,UAAU,EAAEV,KAAK,CAACM,OAAN,CAAcC,IAAd,GAAqB;AADxB;AA3Cc,GAAZ;AAAA,CAAf;;eAgDe,wBAAWR,MAAX,EAAmBrC,SAAnB,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { color, InputContainer } from '../../render-ui/src/index';\nimport { withStyles } from '@material-ui/core/styles';\nimport ExpansionPanelSummary from '@material-ui/core/ExpansionPanelSummary';\nimport Typography from '@material-ui/core/Typography';\nimport ExpansionPanelDetails from '@material-ui/core/ExpansionPanelDetails';\nimport ExpansionPanel from '@material-ui/core/ExpansionPanel';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\nimport { NumberTextFieldCustom, Toggle } from '@pie-lib/config-ui';\nimport EditableHTML from '@pie-lib/editable-html';\n\nconst GridConfig = (props) => {\n const { classes, disabled, displayedFields, labelValue, labelValues, gridValue, gridValues, onChange } = props;\n const { labelStep = {}, step = {} } = displayedFields;\n\n return (\n <div className={classes.columnView}>\n {step && step.enabled && (\n <NumberTextFieldCustom\n className={classes.mediumTextField}\n label={step.label || ''}\n value={gridValue}\n customValues={gridValues}\n variant=\"outlined\"\n disabled={disabled}\n onChange={(e, v) => onChange('step', v)}\n />\n )}\n {labelStep && labelStep.enabled && (\n <NumberTextFieldCustom\n className={classes.mediumTextField}\n label={labelStep.label || ''}\n value={labelValue}\n customValues={labelValues}\n variant=\"outlined\"\n disabled={disabled}\n onChange={(e, v) => onChange('labelStep', v)}\n />\n )}\n </div>\n );\n};\n\nGridConfig.propTypes = {\n classes: PropTypes.object,\n disabled: PropTypes.bool,\n displayedFields: PropTypes.object,\n labelValue: PropTypes.number,\n labelValues: PropTypes.array,\n gridValue: PropTypes.number,\n gridValues: PropTypes.array,\n onChange: PropTypes.func,\n};\n\nconst AxisConfig = (props) => {\n const { classes, disabled, displayedFields, displayHeader, label, maxValue, minValue, onChange, type } = props;\n const { axisLabel = {}, min = {}, max = {} } = displayedFields;\n const activePlugins = [\n 'bold',\n 'italic',\n 'underline',\n 'strikethrough',\n // 'languageCharacters'\n ];\n\n return (\n <div className={classes.columnView}>\n {displayHeader && (\n <Typography variant=\"subtitle2\">\n <i>{type === 'domain' ? 'x' : 'y'}</i>\n -axis\n </Typography>\n )}\n {min && min.enabled && (\n <NumberTextFieldCustom\n className={classes.mediumTextField}\n label={min.label || ''}\n value={minValue}\n min={-10000}\n max={maxValue - 0.05}\n variant=\"outlined\"\n disabled={disabled}\n onChange={(e, v) => onChange('min', v)}\n />\n )}\n {max && max.enabled && (\n <NumberTextFieldCustom\n className={classes.mediumTextField}\n label={max.label || ''}\n value={maxValue}\n min={minValue + 0.05}\n max={10000}\n variant=\"outlined\"\n disabled={disabled}\n onChange={(e, v) => onChange('max', v)}\n />\n )}\n {axisLabel && axisLabel.enabled && (\n <InputContainer label={axisLabel.label || ''} className={classes.mediumTextField}>\n <EditableHTML\n className={classes.axisLabel}\n onChange={(value) => onChange('axisLabel', value)}\n markup={label || ''}\n charactersLimit={5}\n activePlugins={activePlugins}\n />\n </InputContainer>\n )}\n </div>\n );\n};\n\nAxisConfig.propTypes = {\n classes: PropTypes.object,\n disabled: PropTypes.bool,\n displayedFields: PropTypes.object,\n displayHeader: PropTypes.bool,\n label: PropTypes.string,\n maxValue: PropTypes.number,\n minValue: PropTypes.number,\n type: PropTypes.string,\n onChange: PropTypes.func,\n};\nconst GridSetup = (props) => {\n const {\n classes,\n domain,\n displayedFields = {},\n gridValues = {},\n includeAxes,\n labelValues = {},\n onChange,\n onChangeView,\n range,\n size,\n sizeConstraints,\n standardGrid,\n } = props;\n const gridProps = { min: 2, max: 41 };\n const {\n axisLabel = {},\n dimensionsEnabled,\n includeAxesEnabled,\n labelStep = {},\n min = {},\n max = {},\n standardGridEnabled,\n step = {},\n } = displayedFields || {};\n const displayAxisType = min.enabled || max.enabled || axisLabel.enabled || step.enabled || labelStep.enabled;\n const gridConfigFields = { step, labelStep };\n const axisConfigFields = { min, max, axisLabel };\n\n const onIncludeAxes = (includeAxes) => {\n const noAxesConfig = (type) => {\n const axis = type === 'domain' ? domain : range;\n\n return {\n min: 1,\n max: axis.max < gridProps.min || axis.max > gridProps.max ? 16 : axis.max,\n step: 1,\n labelStep: 0,\n };\n };\n\n const updatedRange = {\n ...range,\n ...(includeAxes ? { labelStep: 1 } : noAxesConfig('range')),\n };\n const updatedDomain = {\n ...domain,\n ...(includeAxes ? { labelStep: 1 } : noAxesConfig('domain')),\n };\n\n onChange({ includeAxes, range: updatedRange, domain: updatedDomain });\n };\n\n const onStandardGridChanged = (value) => {\n onChange({\n standardGrid: value,\n range: {\n ...domain,\n axisLabel: range.axisLabel,\n },\n graph: {\n ...size,\n height: size.width,\n },\n });\n };\n\n const onSizeChanged = (key, value) => {\n const graph = { ...size, [key]: value };\n\n if (standardGrid) {\n graph.height = value;\n }\n\n onChange({ graph });\n };\n\n const onDomainChanged = (key, value) => {\n domain[key] = value;\n\n if (standardGrid && key !== 'axisLabel') {\n range[key] = value;\n }\n\n onChange({ domain, range });\n };\n\n const onRangeChanged = (key, value) => {\n range[key] = value;\n\n onChange({ range });\n };\n\n const axesConfig = (\n <React.Fragment>\n <div className={classes.rowView}>\n <AxisConfig\n classes={classes}\n displayedFields={axisConfigFields}\n displayHeader={displayAxisType}\n type=\"domain\"\n minValue={domain.min}\n maxValue={domain.max}\n label={domain.axisLabel}\n includeAxes={includeAxes}\n onChange={onDomainChanged}\n />\n <AxisConfig\n classes={classes}\n displayedFields={axisConfigFields}\n displayHeader={displayAxisType}\n type=\"range\"\n minValue={range.min}\n maxValue={range.max}\n label={range.axisLabel}\n disabled={standardGrid}\n includeAxes={includeAxes}\n onChange={onRangeChanged}\n />\n </div>\n {(min.enabled || max.enabled) && (\n <Typography className={classes.text}>\n If you want the axis to be visible, use a zero or negative Min Value, and a positive Max Value\n </Typography>\n )}\n {(step.enabled || labelStep.enabled) && (\n <div className={classes.rowView}>\n <GridConfig\n classes={classes}\n displayedFields={gridConfigFields}\n gridValue={domain.step}\n labelValue={domain.labelStep}\n gridValues={gridValues.domain || []}\n labelValues={labelValues.domain || []}\n onChange={onDomainChanged}\n />\n <GridConfig\n classes={classes}\n disabled={standardGrid}\n displayedFields={gridConfigFields}\n gridValue={range.step}\n labelValue={range.labelStep}\n gridValues={gridValues.range || []}\n labelValues={labelValues.range || []}\n onChange={onRangeChanged}\n />\n </div>\n )}\n {labelStep.enabled && (\n <Typography className={classes.text}>For unnumbered gridlines, enter a label interval of 0</Typography>\n )}\n </React.Fragment>\n );\n\n const gridlinesConfig = max.enabled ? (\n <div className={classes.columnView}>\n <NumberTextFieldCustom\n className={classes.largeTextField}\n label=\"Number of Vertical Gridlines\"\n value={domain.max}\n min={!includeAxes && gridProps.min}\n max={!includeAxes && gridProps.max}\n variant=\"outlined\"\n onChange={(e, v) => onDomainChanged('max', v)}\n />\n <NumberTextFieldCustom\n className={classes.largeTextField}\n label=\"Number of Horizontal Gridlines\"\n value={range.max}\n min={!includeAxes && gridProps.min}\n max={!includeAxes && gridProps.max}\n variant=\"outlined\"\n disabled={standardGrid}\n onChange={(e, v) => onRangeChanged('max', v)}\n />\n </div>\n ) : null;\n\n return (\n <div className={classes.wrapper}>\n <ExpansionPanel onChange={onChangeView}>\n <ExpansionPanelSummary expandIcon={<ExpandMoreIcon />}>\n <Typography variant=\"subtitle1\">Customize Grid Setup</Typography>\n </ExpansionPanelSummary>\n <ExpansionPanelDetails>\n <div className={classes.content}>\n {includeAxesEnabled && (\n <Toggle label=\"Include axes and labels?\" toggle={onIncludeAxes} checked={includeAxes} />\n )}\n {standardGridEnabled && (\n <Toggle\n label=\"Constrain to standard coordinate grid?\"\n toggle={onStandardGridChanged}\n checked={standardGrid}\n />\n )}\n {includeAxes ? axesConfig : gridlinesConfig}\n {dimensionsEnabled && (\n <div className={classes.dimensions}>\n <div>\n <Typography>Dimensions(px)</Typography>\n <Typography className={classes.disabled}>\n Min {sizeConstraints.min}, Max {sizeConstraints.max}\n </Typography>\n </div>\n <NumberTextFieldCustom\n className={classes.textField}\n label=\"Width\"\n value={size.width}\n min={sizeConstraints.min}\n max={sizeConstraints.max}\n step={sizeConstraints.step}\n variant=\"outlined\"\n onChange={(e, v) => onSizeChanged('width', v)}\n />\n <NumberTextFieldCustom\n className={classes.textField}\n label=\"Height\"\n value={size.height}\n min={sizeConstraints.min}\n max={sizeConstraints.max}\n step={sizeConstraints.step}\n variant=\"outlined\"\n disabled={standardGrid}\n onChange={(e, v) => onSizeChanged('height', v)}\n />\n </div>\n )}\n </div>\n </ExpansionPanelDetails>\n </ExpansionPanel>\n </div>\n );\n};\n\nGridSetup.propTypes = {\n classes: PropTypes.object,\n domain: PropTypes.object,\n displayedFields: PropTypes.object,\n gridValues: PropTypes.object,\n includeAxes: PropTypes.bool,\n labelValues: PropTypes.object,\n onChange: PropTypes.func,\n onChangeView: PropTypes.func,\n range: PropTypes.object,\n size: PropTypes.object,\n sizeConstraints: PropTypes.object,\n standardGrid: PropTypes.bool,\n};\n\nconst styles = (theme) => ({\n wrapper: {\n width: '450px',\n },\n content: {\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n },\n columnView: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n },\n rowView: {\n display: 'flex',\n justifyContent: 'space-around',\n alignItems: 'center',\n },\n textField: {\n width: '130px',\n margin: `${theme.spacing.unit}px ${theme.spacing.unit / 2}px`,\n },\n mediumTextField: {\n width: '160px',\n margin: `${theme.spacing.unit}px ${theme.spacing.unit / 2}px`,\n },\n largeTextField: {\n width: '230px',\n margin: `${theme.spacing.unit}px ${theme.spacing.unit / 2}px`,\n },\n text: {\n fontStyle: 'italic',\n margin: `${theme.spacing.unit}px 0`,\n },\n dimensions: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n disabled: {\n color: color.disabled(),\n },\n axisLabel: {\n paddingTop: theme.spacing.unit * 2,\n },\n});\n\nexport default withStyles(styles)(GridSetup);\n"],"file":"grid-setup.js"}
package/lib/grid.js CHANGED
@@ -173,4 +173,4 @@ var _default = (0, _styles.withStyles)(function () {
173
173
  })(Grid);
174
174
 
175
175
  exports["default"] = _default;
176
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ncmlkLmpzeCJdLCJuYW1lcyI6WyJHcmlkIiwicm93VGlja1ZhbHVlcyIsImNvbHVtblRpY2tWYWx1ZXMiLCJwcm9wcyIsImdyYXBoUHJvcHMiLCJzY2FsZSIsInNpemUiLCJ3aWR0aCIsImhlaWdodCIsImRvbWFpbiIsInJhbmdlIiwicm93VGlja0xhYmVsVmFsdWVzIiwic3RlcCIsImxhYmVsU3RlcCIsImZpbHRlciIsInZhbHVlIiwiaW5jbHVkZXMiLCJjb2x1bW5UaWNrTGFiZWxWYWx1ZXMiLCJtaW5WYWx1ZUxlbmd0aCIsImxlbmd0aCIsIk1hdGgiLCJtaW4iLCJ0b1N0cmluZyIsInJlcGxhY2UiLCJtYXhWYWx1ZUxlbmd0aCIsIm1heCIsInJvd0xhYmVsTGVuZ3RoIiwiaG9yaXpvbnRhbERpc3RhbmNlVG9aZXJvIiwieCIsInZlcnRpY2FsRGlzdGFuY2VUb1plcm8iLCJ5IiwiY29sdW1uTGFiZWxMZW5ndGgiLCJyb3dTdHJva2VEYXNoYXJyYXkiLCJjb2x1bW5TdHJva2VEYXNoYXJyYXkiLCJkaXNwbGF5QWRkaXRpb25hbEdyaWQiLCJmaWx0ZXJlZENvbHVtblZhbHVlcyIsImZpbHRlcmVkUm93VmFsdWVzIiwiZ2V0QWRkaXRpb25hbEdyaWRQcm9wcyIsImFkZGl0aW9uYWxHcmlkU3Ryb2tlIiwiciIsImdyaWQiLCJSZWFjdCIsIkNvbXBvbmVudCIsImRpc2FibGVkIiwiUHJvcFR5cGVzIiwiYm9vbCIsImRpc2FibGVkQWRkaXRpb25hbEdyaWQiLCJjbGFzc2VzIiwib2JqZWN0IiwiaXNSZXF1aXJlZCIsInR5cGVzIiwiR3JhcGhQcm9wc1R5cGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7Ozs7Ozs7OztJQUVhQSxJOzs7Ozs7Ozs7Ozs7Ozs7K0dBUWMsVUFBQ0MsYUFBRCxFQUFnQkMsZ0JBQWhCLEVBQXFDO0FBQzVELGtDQU9JLE1B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O0FBR2pCRSxFQUFBQSxPQUFPLEVBQUVILHNCQUFVSSxNQUFWLENBQWlCQyxVQUhUO0FBSWpCN0MsRUFBQUEsVUFBVSxFQUFFOEMsWUFBTUMsY0FBTixDQUFxQkY7QUFKaEIsQzs7ZUE4SE4sd0JBQVc7QUFBQSxTQUFPLEVBQVA7QUFBQSxDQUFYLEVBQXVCakQsSUFBdkIsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0ICogYXMgdnggZnJvbSAnQHZ4L2dyaWQnO1xuaW1wb3J0IHsgdHlwZXMgfSBmcm9tICdAcGllLWxpYi9wbG90JztcbmltcG9ydCB7IHdpdGhTdHlsZXMgfSBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9zdHlsZXMnO1xuaW1wb3J0IHsgZ2V0VGlja1ZhbHVlcyB9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgR3JpZCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgZGlzYWJsZWQ6IFByb3BUeXBlcy5ib29sLFxuICAgIGRpc2FibGVkQWRkaXRpb25hbEdyaWQ6IFByb3BUeXBlcy5ib29sLFxuICAgIGNsYXNzZXM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBncmFwaFByb3BzOiB0eXBlcy5HcmFwaFByb3BzVHlwZS5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGdldEFkZGl0aW9uYWxHcmlkUHJvcHMgPSAocm93VGlja1ZhbHVlcywgY29sdW1uVGlja1ZhbHVlcykgPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgIGdyYXBoUHJvcHM6IHtcbiAgICAgICAgc2NhbGUsXG4gICAgICAgIHNpemU6IHsgd2lkdGgsIGhlaWdodCB9LFxuICAgICAgICBkb21haW4sXG4gICAgICAgIHJhbmdlLFxuICAgICAgfSxcbiAgICB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCByb3dUaWNrTGFiZWxWYWx1ZXMgPSBnZXRUaWNrVmFsdWVzKHtcbiAgICAgIC4uLnJhbmdlLFxuICAgICAgc3RlcDogcmFuZ2UubGFiZWxTdGVwLFxuICAgIH0pLmZpbHRlcigodmFsdWUpID0+IHJvd1RpY2tWYWx1ZXMuaW5jbHVkZXModmFsdWUpKTtcbiAgICBjb25zdCBjb2x1bW5UaWNrTGFiZWxWYWx1ZXMgPSBnZXRUaWNrVmFsdWVzKHtcbiAgICAgIC4uLmRvbWFpbixcbiAgICAgIHN0ZXA6IGRvbWFpbi5sYWJlbFN0ZXAsXG4gICAgfSkuZmlsdGVyKCh2YWx1ZSkgPT4gY29sdW1uVGlja1ZhbHVlcy5pbmNsdWRlcyh2YWx1ZSkpO1xuXG4gICAgY29uc3QgbWluVmFsdWVMZW5ndGggPVxuICAgICAgKHJvd1RpY2tMYWJlbFZhbHVlcy5sZW5ndGggJiZcbiAgICAgICAgTWF0aC5taW4oLi4ucm93VGlja0xhYmVsVmFsdWVzKVxuICAgICAgICAgIC50b1N0cmluZygpXG4gICAgICAgICAgLnJlcGxhY2UoL1suLV0vZywgJycpLmxlbmd0aCkgfHxcbiAgICAgIDE7XG4gICAgY29uc3QgbWF4VmFsdWVMZW5ndGggPVxuICAgICAgKHJvd1RpY2tMYWJlbFZhbHVlcy5sZW5ndGggJiZcbiAgICAgICAgTWF0aC5tYXgoLi4ucm93VGlja0xhYmVsVmFsdWVzKVxuICAgICAgICAgIC50b1N0cmluZygpXG4gICAgICAgICAgLnJlcGxhY2UoL1suLV0vZywgJycpLmxlbmd0aCkgfHxcbiAgICAgIDE7XG5cbiAgICBjb25zdCByb3dMYWJlbExlbmd0aCA9IE1hdGgubWF4KG1pblZhbHVlTGVuZ3RoLCBtYXhWYWx1ZUxlbmd0aCkgKiA5ICsgMjI7XG4gICAgY29uc3QgaG9yaXpvbnRhbERpc3RhbmNlVG9aZXJvID0gc2NhbGUueCgwKTtcbiAgICBjb25zdCB2ZXJ0aWNhbERpc3RhbmNlVG9aZXJvID0gc2NhbGUueSgwKTtcbiAgICBjb25zdCBjb2x1bW5MYWJlbExlbmd0aCA9IDI4O1xuICAgIGNvbnN0IHJvd1N0cm9rZURhc2hhcnJheSA9IGAke2hvcml6b250YWxEaXN0YW5jZVRvWmVybyAtIHJvd0xhYmVsTGVuZ3RofSAke3Jvd0xhYmVsTGVuZ3RofSAke3dpZHRofWA7XG4gICAgY29uc3QgY29sdW1uU3Ryb2tlRGFzaGFycmF5ID0gYCR7dmVydGljYWxEaXN0YW5jZVRvWmVyb30gJHtjb2x1bW5MYWJlbExlbmd0aH0gJHtoZWlnaHR9YDtcblxuICAgIGNvbnN0IGRpc3BsYXlBZGRpdGlvbmFsR3JpZCA9XG4gICAgICBkb21haW4ubGFiZWxTdGVwID4gMCAmJlxuICAgICAgcmFuZ2UubGFiZWxTdGVwID4gMCAmJlxuICAgICAgcm93VGlja0xhYmVsVmFsdWVzICYmXG4gICAgICBjb2x1bW5UaWNrTGFiZWxWYWx1ZXMgJiZcbiAgICAgIHJvd1RpY2tMYWJlbFZhbHVlcy5sZW5ndGggPiAxICYmXG4gICAgICBjb2x1bW5UaWNrTGFiZWxWYWx1ZXMubGVuZ3RoID4gMSAmJlxuICAgICAgKHJvd1RpY2tMYWJlbFZhbHVlcy5sZW5ndGggIT09IHJvd1RpY2tWYWx1ZXMubGVuZ3RoIHx8IGNvbHVtblRpY2tMYWJlbFZhbHVlcy5sZW5ndGggIT09IGNvbHVtblRpY2tWYWx1ZXMubGVuZ3RoKTtcblxuICAgIGNvbnN0IGZpbHRlcmVkQ29sdW1uVmFsdWVzID0gY29sdW1uVGlja0xhYmVsVmFsdWVzLmZpbHRlcihcbiAgICAgICh2YWx1ZSkgPT4gdmFsdWUgPj0gMCB8fCBob3Jpem9udGFsRGlzdGFuY2VUb1plcm8gLSBzY2FsZS54KHZhbHVlKSA+IHJvd0xhYmVsTGVuZ3RoLFxuICAgICk7XG4gICAgY29uc3QgZmlsdGVyZWRSb3dWYWx1ZXMgPSByb3dUaWNrTGFiZWxWYWx1ZXMuZmlsdGVyKFxuICAgICAgKHZhbHVlKSA9PiB2YWx1ZSA+PSAwIHx8IHNjYWxlLnkodmFsdWUpIC0gdmVydGljYWxEaXN0YW5jZVRvWmVybyA+IGNvbHVtbkxhYmVsTGVuZ3RoLFxuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgcm93VGlja0xhYmVsVmFsdWVzOiBmaWx0ZXJlZFJvd1ZhbHVlcyxcbiAgICAgIGNvbHVtblRpY2tMYWJlbFZhbHVlczogZmlsdGVyZWRDb2x1bW5WYWx1ZXMsXG4gICAgICByb3dTdHJva2VEYXNoYXJyYXksXG4gICAgICBjb2x1bW5TdHJva2VEYXNoYXJyYXksXG4gICAgICBkaXNwbGF5QWRkaXRpb25hbEdyaWQsXG4gICAgfTtcbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgeyBncmFwaFByb3BzIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHtcbiAgICAgIHNjYWxlLFxuICAgICAgc2l6ZTogeyBoZWlnaHQsIHdpZHRoIH0sXG4gICAgICBkb21haW4sXG4gICAgICByYW5nZSxcbiAgICB9ID0gZ3JhcGhQcm9wcztcbiAgICBjb25zdCByb3dUaWNrVmFsdWVzID0gZ2V0VGlja1ZhbHVlcyhyYW5nZSk7XG4gICAgY29uc3QgY29sdW1uVGlja1ZhbHVlcyA9IGdldFRpY2tWYWx1ZXMoZG9tYWluKTtcbiAgICBjb25zdCB7XG4gICAgICByb3dUaWNrTGFiZWxWYWx1ZXMsXG4gICAgICBjb2x1bW5UaWNrTGFiZWxWYWx1ZXMsXG4gICAgICByb3dTdHJva2VEYXNoYXJyYXksXG4gICAgICBjb2x1bW5TdHJva2VEYXNoYXJyYXksXG4gICAgICBkaXNwbGF5QWRkaXRpb25hbEdyaWQsXG4gICAgfSA9IHRoaXMuZ2V0QWRkaXRpb25hbEdyaWRQcm9wcyhyb3dUaWNrVmFsdWVzLCBjb2x1bW5UaWNrVmFsdWVzKTtcblxuICAgIGNvbnN0IGFkZGl0aW9uYWxHcmlkU3Ryb2tlID1cbiAgICAgIGRvbWFpbi5sYWJlbFN0ZXAgKiAyID09PSBkb21haW4uc3RlcCB8fCByYW5nZS5sYWJlbFN0ZXAgKiAyID09PSByYW5nZS5zdGVwID8gJyM5RkE4REEnIDogJyM3OTg1Q0InO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDx2eC5HcmlkXG4gICAgICAgICAgaW5uZXJSZWY9eyhyKSA9PiAodGhpcy5ncmlkID0gcil9XG4gICAgICAgICAgeFNjYWxlPXtzY2FsZS54fVxuICAgICAgICAgIHlTY2FsZT17c2NhbGUueX1cbiAgICAgICAgICB3aWR0aD17d2lkdGh9XG4gICAgICAgICAgaGVpZ2h0PXtoZWlnaHR9XG4gICAgICAgICAgc3Ryb2tlPVwiI0UxRTZFQ1wiXG4gICAgICAgICAgcm93VGlja1ZhbHVlcz17cm93VGlja1ZhbHVlc31cbiAgICAgICAgICBjb2x1bW5UaWNrVmFsdWVzPXtjb2x1bW5UaWNrVmFsdWVzfVxuICAgICAgICAvPlxuICAgICAgICB7ZGlzcGxheUFkZGl0aW9uYWxHcmlkICYmIChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgPHZ4LkdyaWRSb3dzXG4gICAgICAgICAgICAgIHNjYWxlPXtzY2FsZS55fVxuICAgICAgICAgICAgICB3aWR0aD17d2lkdGh9XG4gICAgICAgICAgICAgIHRpY2tWYWx1ZXM9e3Jvd1RpY2tMYWJlbFZhbHVlc31cbiAgICAgICAgICAgICAgc3Ryb2tlPXthZGRpdGlvbmFsR3JpZFN0cm9rZX1cbiAgICAgICAgICAgICAgc3Ryb2tlRGFzaGFycmF5PXtyb3dTdHJva2VEYXNoYXJyYXl9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPHZ4LkdyaWRDb2x1bW5zXG4gICAgICAgICAgICAgIHNjYWxlPXtzY2FsZS54fVxuICAgICAgICAgICAgICBoZWlnaHQ9e2hlaWdodH1cbiAgICAgICAgICAgICAgdGlja1ZhbHVlcz17Y29sdW1uVGlja0xhYmVsVmFsdWVzfVxuICAgICAgICAgICAgICBzdHJva2U9e2FkZGl0aW9uYWxHcmlkU3Ryb2tlfVxuICAgICAgICAgICAgICBzdHJva2VEYXNoYXJyYXk9e2NvbHVtblN0cm9rZURhc2hhcnJheX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICl9XG4gICAgICA8Lz5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHdpdGhTdHlsZXMoKCkgPT4gKHt9KSkoR3JpZCk7XG4iXX0=
176
+ //# sourceMappingURL=grid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/grid.jsx"],"names":["Grid","rowTickValues","columnTickValues","props","graphProps","scale","size","width","height","domain","range","rowTickLabelValues","step","labelStep","filter","value","includes","columnTickLabelValues","minValueLength","length","Math","min","toString","replace","maxValueLength","max","rowLabelLength","horizontalDistanceToZero","x","verticalDistanceToZero","y","columnLabelLength","rowStrokeDasharray","columnStrokeDasharray","displayAdditionalGrid","filteredColumnValues","filteredRowValues","getAdditionalGridProps","additionalGridStroke","r","grid","React","Component","disabled","PropTypes","bool","disabledAdditionalGrid","classes","object","isRequired","types","GraphPropsType"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport * as vx from '@vx/grid';\nimport { types } from '@pie-lib/plot';\nimport { withStyles } from '@material-ui/core/styles';\nimport { getTickValues } from './utils';\n\nexport class Grid extends React.Component {\n static propTypes = {\n disabled: PropTypes.bool,\n disabledAdditionalGrid: PropTypes.bool,\n classes: PropTypes.object.isRequired,\n graphProps: types.GraphPropsType.isRequired,\n };\n\n getAdditionalGridProps = (rowTickValues, columnTickValues) => {\n const {\n graphProps: {\n scale,\n size: { width, height },\n domain,\n range,\n },\n } = this.props;\n const rowTickLabelValues = getTickValues({\n ...range,\n step: range.labelStep,\n }).filter((value) => rowTickValues.includes(value));\n const columnTickLabelValues = getTickValues({\n ...domain,\n step: domain.labelStep,\n }).filter((value) => columnTickValues.includes(value));\n\n const minValueLength =\n (rowTickLabelValues.length &&\n Math.min(...rowTickLabelValues)\n .toString()\n .replace(/[.-]/g, '').length) ||\n 1;\n const maxValueLength =\n (rowTickLabelValues.length &&\n Math.max(...rowTickLabelValues)\n .toString()\n .replace(/[.-]/g, '').length) ||\n 1;\n\n const rowLabelLength = Math.max(minValueLength, maxValueLength) * 9 + 22;\n const horizontalDistanceToZero = scale.x(0);\n const verticalDistanceToZero = scale.y(0);\n const columnLabelLength = 28;\n const rowStrokeDasharray = `${horizontalDistanceToZero - rowLabelLength} ${rowLabelLength} ${width}`;\n const columnStrokeDasharray = `${verticalDistanceToZero} ${columnLabelLength} ${height}`;\n\n const displayAdditionalGrid =\n domain.labelStep > 0 &&\n range.labelStep > 0 &&\n rowTickLabelValues &&\n columnTickLabelValues &&\n rowTickLabelValues.length > 1 &&\n columnTickLabelValues.length > 1 &&\n (rowTickLabelValues.length !== rowTickValues.length || columnTickLabelValues.length !== columnTickValues.length);\n\n const filteredColumnValues = columnTickLabelValues.filter(\n (value) => value >= 0 || horizontalDistanceToZero - scale.x(value) > rowLabelLength,\n );\n const filteredRowValues = rowTickLabelValues.filter(\n (value) => value >= 0 || scale.y(value) - verticalDistanceToZero > columnLabelLength,\n );\n\n return {\n rowTickLabelValues: filteredRowValues,\n columnTickLabelValues: filteredColumnValues,\n rowStrokeDasharray,\n columnStrokeDasharray,\n displayAdditionalGrid,\n };\n };\n\n render() {\n const { graphProps } = this.props;\n const {\n scale,\n size: { height, width },\n domain,\n range,\n } = graphProps;\n const rowTickValues = getTickValues(range);\n const columnTickValues = getTickValues(domain);\n const {\n rowTickLabelValues,\n columnTickLabelValues,\n rowStrokeDasharray,\n columnStrokeDasharray,\n displayAdditionalGrid,\n } = this.getAdditionalGridProps(rowTickValues, columnTickValues);\n\n const additionalGridStroke =\n domain.labelStep * 2 === domain.step || range.labelStep * 2 === range.step ? '#9FA8DA' : '#7985CB';\n\n return (\n <>\n <vx.Grid\n innerRef={(r) => (this.grid = r)}\n xScale={scale.x}\n yScale={scale.y}\n width={width}\n height={height}\n stroke=\"#E1E6EC\"\n rowTickValues={rowTickValues}\n columnTickValues={columnTickValues}\n />\n {displayAdditionalGrid && (\n <>\n <vx.GridRows\n scale={scale.y}\n width={width}\n tickValues={rowTickLabelValues}\n stroke={additionalGridStroke}\n strokeDasharray={rowStrokeDasharray}\n />\n <vx.GridColumns\n scale={scale.x}\n height={height}\n tickValues={columnTickLabelValues}\n stroke={additionalGridStroke}\n strokeDasharray={columnStrokeDasharray}\n />\n </>\n )}\n </>\n );\n }\n}\n\nexport default withStyles(() => ({}))(Grid);\n"],"file":"grid.js"}
package/lib/index.js CHANGED
@@ -56,4 +56,4 @@ var _keyLegend = _interopRequireDefault(require("./key-legend"));
56
56
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
57
57
 
58
58
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
59
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOzs7O0FBQ0E7O0FBQ0EiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgR3JhcGggZnJvbSAnLi9ncmFwaCc7XG5pbXBvcnQgR3JhcGhDb250YWluZXIgZnJvbSAnLi9jb250YWluZXInO1xuaW1wb3J0IEdyaWRTZXR1cCBmcm9tICcuL2dyaWQtc2V0dXAnO1xuaW1wb3J0ICogYXMgdG9vbHMgZnJvbSAnLi90b29scyc7XG5pbXBvcnQgVG9vbE1lbnUgZnJvbSAnLi90b29sLW1lbnUnO1xuaW1wb3J0IEtleUxlZ2VuZCBmcm9tICcuL2tleS1sZWdlbmQnO1xuZXhwb3J0IHsgR3JhcGgsIEdyYXBoQ29udGFpbmVyLCBHcmlkU2V0dXAsIFRvb2xNZW51LCB0b29scywgS2V5TGVnZW5kIH07XG4iXX0=
59
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;AACA;;AACA","sourcesContent":["import Graph from './graph';\nimport GraphContainer from './container';\nimport GridSetup from './grid-setup';\nimport * as tools from './tools';\nimport ToolMenu from './tool-menu';\nimport KeyLegend from './key-legend';\nexport { Graph, GraphContainer, GridSetup, ToolMenu, tools, KeyLegend };\n"],"file":"index.js"}