@pie-lib/editable-html 11.1.1 → 11.3.0-beta.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 (194) hide show
  1. package/CHANGELOG.md +8 -4
  2. package/NEXT.CHANGELOG.json +1 -0
  3. package/lib/__tests__/editor.test.js +470 -0
  4. package/lib/__tests__/serialization.test.js +246 -0
  5. package/lib/__tests__/utils.js +106 -0
  6. package/lib/block-tags.js +25 -0
  7. package/lib/constants.js +16 -0
  8. package/lib/editor.js +349 -88
  9. package/lib/index.js +26 -10
  10. package/lib/parse-html.js +1 -1
  11. package/lib/plugins/characters/custom-popper.js +1 -1
  12. package/lib/plugins/characters/index.js +9 -4
  13. package/lib/plugins/characters/utils.js +13 -13
  14. package/lib/plugins/css/icons/index.js +37 -0
  15. package/lib/plugins/css/index.js +397 -0
  16. package/lib/plugins/customPlugin/index.js +114 -0
  17. package/lib/plugins/html/icons/index.js +1 -1
  18. package/lib/plugins/html/index.js +12 -8
  19. package/lib/plugins/image/__tests__/component.test.js +51 -0
  20. package/lib/plugins/image/__tests__/image-toolbar-logic.test.js +56 -0
  21. package/lib/plugins/image/__tests__/image-toolbar.test.js +26 -0
  22. package/lib/plugins/image/__tests__/index.test.js +98 -0
  23. package/lib/plugins/image/__tests__/insert-image-handler.test.js +125 -0
  24. package/lib/plugins/image/__tests__/mock-change.js +25 -0
  25. package/lib/plugins/image/alt-dialog.js +1 -1
  26. package/lib/plugins/image/component.js +1 -1
  27. package/lib/plugins/image/image-toolbar.js +1 -1
  28. package/lib/plugins/image/index.js +3 -2
  29. package/lib/plugins/image/insert-image-handler.js +14 -5
  30. package/lib/plugins/index.js +271 -12
  31. package/lib/plugins/list/__tests__/index.test.js +79 -0
  32. package/lib/plugins/list/index.js +131 -1
  33. package/lib/plugins/math/__tests__/index.test.js +300 -0
  34. package/lib/plugins/math/index.js +92 -57
  35. package/lib/plugins/media/__tests__/index.test.js +71 -0
  36. package/lib/plugins/media/index.js +6 -3
  37. package/lib/plugins/media/media-dialog.js +99 -58
  38. package/lib/plugins/media/media-toolbar.js +1 -1
  39. package/lib/plugins/media/media-wrapper.js +1 -1
  40. package/lib/plugins/rendering/index.js +46 -0
  41. package/lib/plugins/respArea/drag-in-the-blank/choice.js +6 -3
  42. package/lib/plugins/respArea/drag-in-the-blank/index.js +1 -1
  43. package/lib/plugins/respArea/explicit-constructed-response/index.js +12 -10
  44. package/lib/plugins/respArea/icons/index.js +1 -1
  45. package/lib/plugins/respArea/index.js +70 -22
  46. package/lib/plugins/respArea/inline-dropdown/index.js +11 -6
  47. package/lib/plugins/respArea/math-templated/index.js +130 -0
  48. package/lib/plugins/respArea/utils.js +17 -2
  49. package/lib/plugins/table/CustomTablePlugin.js +133 -0
  50. package/lib/plugins/table/__tests__/index.test.js +442 -0
  51. package/lib/plugins/table/__tests__/table-toolbar.test.js +54 -0
  52. package/lib/plugins/table/icons/index.js +1 -1
  53. package/lib/plugins/table/index.js +44 -60
  54. package/lib/plugins/table/table-toolbar.js +34 -5
  55. package/lib/plugins/textAlign/icons/index.js +226 -0
  56. package/lib/plugins/textAlign/index.js +34 -0
  57. package/lib/plugins/toolbar/__tests__/default-toolbar.test.js +128 -0
  58. package/lib/plugins/toolbar/__tests__/editor-and-toolbar.test.js +51 -0
  59. package/lib/plugins/toolbar/__tests__/toolbar-buttons.test.js +54 -0
  60. package/lib/plugins/toolbar/__tests__/toolbar.test.js +120 -0
  61. package/lib/plugins/toolbar/default-toolbar.js +83 -28
  62. package/lib/plugins/toolbar/done-button.js +6 -3
  63. package/lib/plugins/toolbar/editor-and-toolbar.js +19 -20
  64. package/lib/plugins/toolbar/index.js +1 -1
  65. package/lib/plugins/toolbar/toolbar-buttons.js +45 -12
  66. package/lib/plugins/toolbar/toolbar.js +36 -12
  67. package/lib/plugins/utils.js +1 -1
  68. package/lib/serialization.js +234 -45
  69. package/lib/theme.js +1 -1
  70. package/package.json +6 -6
  71. package/src/__tests__/editor.test.jsx +363 -0
  72. package/src/__tests__/serialization.test.js +291 -0
  73. package/src/__tests__/utils.js +36 -0
  74. package/src/block-tags.js +17 -0
  75. package/src/constants.js +7 -0
  76. package/src/editor.jsx +303 -49
  77. package/src/index.jsx +19 -10
  78. package/src/plugins/characters/index.jsx +11 -3
  79. package/src/plugins/characters/utils.js +12 -12
  80. package/src/plugins/css/icons/index.jsx +17 -0
  81. package/src/plugins/css/index.jsx +346 -0
  82. package/src/plugins/customPlugin/index.jsx +85 -0
  83. package/src/plugins/html/index.jsx +9 -6
  84. package/src/plugins/image/__tests__/__snapshots__/component.test.jsx.snap +51 -0
  85. package/src/plugins/image/__tests__/__snapshots__/image-toolbar-logic.test.jsx.snap +27 -0
  86. package/src/plugins/image/__tests__/__snapshots__/image-toolbar.test.jsx.snap +44 -0
  87. package/src/plugins/image/__tests__/component.test.jsx +41 -0
  88. package/src/plugins/image/__tests__/image-toolbar-logic.test.jsx +42 -0
  89. package/src/plugins/image/__tests__/image-toolbar.test.jsx +11 -0
  90. package/src/plugins/image/__tests__/index.test.js +95 -0
  91. package/src/plugins/image/__tests__/insert-image-handler.test.js +113 -0
  92. package/src/plugins/image/__tests__/mock-change.js +15 -0
  93. package/src/plugins/image/index.jsx +2 -1
  94. package/src/plugins/image/insert-image-handler.js +13 -6
  95. package/src/plugins/index.jsx +248 -5
  96. package/src/plugins/list/__tests__/index.test.js +54 -0
  97. package/src/plugins/list/index.jsx +130 -0
  98. package/src/plugins/math/__tests__/__snapshots__/index.test.jsx.snap +48 -0
  99. package/src/plugins/math/__tests__/index.test.jsx +245 -0
  100. package/src/plugins/math/index.jsx +87 -56
  101. package/src/plugins/media/__tests__/index.test.js +75 -0
  102. package/src/plugins/media/index.jsx +3 -2
  103. package/src/plugins/media/media-dialog.js +106 -57
  104. package/src/plugins/rendering/index.js +31 -0
  105. package/src/plugins/respArea/drag-in-the-blank/choice.jsx +4 -1
  106. package/src/plugins/respArea/explicit-constructed-response/index.jsx +10 -8
  107. package/src/plugins/respArea/index.jsx +53 -7
  108. package/src/plugins/respArea/inline-dropdown/index.jsx +13 -6
  109. package/src/plugins/respArea/math-templated/index.jsx +104 -0
  110. package/src/plugins/respArea/utils.jsx +11 -0
  111. package/src/plugins/table/CustomTablePlugin.js +113 -0
  112. package/src/plugins/table/__tests__/__snapshots__/table-toolbar.test.jsx.snap +44 -0
  113. package/src/plugins/table/__tests__/index.test.jsx +401 -0
  114. package/src/plugins/table/__tests__/table-toolbar.test.jsx +42 -0
  115. package/src/plugins/table/index.jsx +46 -59
  116. package/src/plugins/table/table-toolbar.jsx +39 -2
  117. package/src/plugins/textAlign/icons/index.jsx +139 -0
  118. package/src/plugins/textAlign/index.jsx +23 -0
  119. package/src/plugins/toolbar/__tests__/__snapshots__/default-toolbar.test.jsx.snap +923 -0
  120. package/src/plugins/toolbar/__tests__/__snapshots__/editor-and-toolbar.test.jsx.snap +20 -0
  121. package/src/plugins/toolbar/__tests__/__snapshots__/toolbar-buttons.test.jsx.snap +36 -0
  122. package/src/plugins/toolbar/__tests__/__snapshots__/toolbar.test.jsx.snap +46 -0
  123. package/src/plugins/toolbar/__tests__/default-toolbar.test.jsx +94 -0
  124. package/src/plugins/toolbar/__tests__/editor-and-toolbar.test.jsx +37 -0
  125. package/src/plugins/toolbar/__tests__/toolbar-buttons.test.jsx +51 -0
  126. package/src/plugins/toolbar/__tests__/toolbar.test.jsx +106 -0
  127. package/src/plugins/toolbar/default-toolbar.jsx +80 -20
  128. package/src/plugins/toolbar/done-button.jsx +3 -1
  129. package/src/plugins/toolbar/editor-and-toolbar.jsx +18 -13
  130. package/src/plugins/toolbar/toolbar-buttons.jsx +52 -11
  131. package/src/plugins/toolbar/toolbar.jsx +31 -8
  132. package/src/serialization.jsx +213 -38
  133. package/README.md +0 -45
  134. package/deploy.sh +0 -16
  135. package/lib/editor.js.map +0 -1
  136. package/lib/index.js.map +0 -1
  137. package/lib/parse-html.js.map +0 -1
  138. package/lib/plugins/characters/custom-popper.js.map +0 -1
  139. package/lib/plugins/characters/index.js.map +0 -1
  140. package/lib/plugins/characters/utils.js.map +0 -1
  141. package/lib/plugins/html/icons/index.js.map +0 -1
  142. package/lib/plugins/html/index.js.map +0 -1
  143. package/lib/plugins/image/alt-dialog.js.map +0 -1
  144. package/lib/plugins/image/component.js.map +0 -1
  145. package/lib/plugins/image/image-toolbar.js.map +0 -1
  146. package/lib/plugins/image/index.js.map +0 -1
  147. package/lib/plugins/image/insert-image-handler.js.map +0 -1
  148. package/lib/plugins/index.js.map +0 -1
  149. package/lib/plugins/list/index.js.map +0 -1
  150. package/lib/plugins/math/index.js.map +0 -1
  151. package/lib/plugins/media/index.js.map +0 -1
  152. package/lib/plugins/media/media-dialog.js.map +0 -1
  153. package/lib/plugins/media/media-toolbar.js.map +0 -1
  154. package/lib/plugins/media/media-wrapper.js.map +0 -1
  155. package/lib/plugins/respArea/drag-in-the-blank/choice.js.map +0 -1
  156. package/lib/plugins/respArea/drag-in-the-blank/index.js.map +0 -1
  157. package/lib/plugins/respArea/explicit-constructed-response/index.js.map +0 -1
  158. package/lib/plugins/respArea/icons/index.js.map +0 -1
  159. package/lib/plugins/respArea/index.js.map +0 -1
  160. package/lib/plugins/respArea/inline-dropdown/index.js.map +0 -1
  161. package/lib/plugins/respArea/utils.js.map +0 -1
  162. package/lib/plugins/table/icons/index.js.map +0 -1
  163. package/lib/plugins/table/index.js.map +0 -1
  164. package/lib/plugins/table/table-toolbar.js.map +0 -1
  165. package/lib/plugins/toolbar/default-toolbar.js.map +0 -1
  166. package/lib/plugins/toolbar/done-button.js.map +0 -1
  167. package/lib/plugins/toolbar/editor-and-toolbar.js.map +0 -1
  168. package/lib/plugins/toolbar/index.js.map +0 -1
  169. package/lib/plugins/toolbar/toolbar-buttons.js.map +0 -1
  170. package/lib/plugins/toolbar/toolbar.js.map +0 -1
  171. package/lib/plugins/utils.js.map +0 -1
  172. package/lib/serialization.js.map +0 -1
  173. package/lib/theme.js.map +0 -1
  174. package/playground/image/data.js +0 -59
  175. package/playground/image/index.html +0 -22
  176. package/playground/image/index.jsx +0 -81
  177. package/playground/index.html +0 -25
  178. package/playground/mathquill/index.html +0 -22
  179. package/playground/mathquill/index.jsx +0 -155
  180. package/playground/package.json +0 -15
  181. package/playground/prod-test/index.html +0 -22
  182. package/playground/prod-test/index.jsx +0 -28
  183. package/playground/schema-override/data.js +0 -29
  184. package/playground/schema-override/image-plugin.jsx +0 -41
  185. package/playground/schema-override/index.html +0 -21
  186. package/playground/schema-override/index.jsx +0 -97
  187. package/playground/serialization/data.js +0 -29
  188. package/playground/serialization/image-plugin.jsx +0 -41
  189. package/playground/serialization/index.html +0 -22
  190. package/playground/serialization/index.jsx +0 -12
  191. package/playground/static.json +0 -3
  192. package/playground/table-examples.html +0 -70
  193. package/playground/webpack.config.js +0 -42
  194. package/static.json +0 -1
@@ -19,10 +19,12 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
19
19
 
20
20
  var RawDoneButton = function RawDoneButton(_ref) {
21
21
  var classes = _ref.classes,
22
- onClick = _ref.onClick;
22
+ onClick = _ref.onClick,
23
+ doneButtonRef = _ref.doneButtonRef;
23
24
  return /*#__PURE__*/_react["default"].createElement(_IconButton["default"], {
24
25
  "aria-label": "Done",
25
26
  className: classes.iconRoot,
27
+ buttonRef: doneButtonRef,
26
28
  onClick: onClick,
27
29
  classes: {
28
30
  label: classes.label,
@@ -34,7 +36,8 @@ var RawDoneButton = function RawDoneButton(_ref) {
34
36
  exports.RawDoneButton = RawDoneButton;
35
37
  RawDoneButton.propTypes = {
36
38
  classes: _propTypes["default"].object.isRequired,
37
- onClick: _propTypes["default"].func
39
+ onClick: _propTypes["default"].func,
40
+ doneButtonRef: _propTypes["default"].func
38
41
  };
39
42
  var styles = {
40
43
  iconRoot: {
@@ -47,4 +50,4 @@ var styles = {
47
50
  };
48
51
  var DoneButton = (0, _styles.withStyles)(styles)(RawDoneButton);
49
52
  exports.DoneButton = DoneButton;
50
- //# sourceMappingURL=done-button.js.map
53
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wbHVnaW5zL3Rvb2xiYXIvZG9uZS1idXR0b24uanN4Il0sIm5hbWVzIjpbIlJhd0RvbmVCdXR0b24iLCJjbGFzc2VzIiwib25DbGljayIsImRvbmVCdXR0b25SZWYiLCJpY29uUm9vdCIsImxhYmVsIiwicm9vdCIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsIm9iamVjdCIsImlzUmVxdWlyZWQiLCJmdW5jIiwic3R5bGVzIiwidmVydGljYWxBbGlnbiIsIndpZHRoIiwiaGVpZ2h0IiwiY29sb3IiLCJwYWRkaW5nIiwiRG9uZUJ1dHRvbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRU8sSUFBTUEsYUFBYSxHQUFHLFNBQWhCQSxhQUFnQjtBQUFBLE1BQUdDLE9BQUgsUUFBR0EsT0FBSDtBQUFBLE1BQVlDLE9BQVosUUFBWUEsT0FBWjtBQUFBLE1BQXFCQyxhQUFyQixRQUFxQkEsYUFBckI7QUFBQSxzQkFDM0IsZ0NBQUMsc0JBQUQ7QUFDRSxrQkFBVyxNQURiO0FBRUUsSUFBQSxTQUFTLEVBQUVGLE9BQU8sQ0FBQ0csUUFGckI7QUFHRSxJQUFBLFNBQVMsRUFBRUQsYUFIYjtBQUlFLElBQUEsT0FBTyxFQUFFRCxPQUpYO0FBS0UsSUFBQSxPQUFPLEVBQUU7QUFDUEcsTUFBQUEsS0FBSyxFQUFFSixPQUFPLENBQUNJLEtBRFI7QUFFUEMsTUFBQUEsSUFBSSxFQUFFTCxPQUFPLENBQUNHO0FBRlA7QUFMWCxrQkFVRSxnQ0FBQyxpQkFBRCxPQVZGLENBRDJCO0FBQUEsQ0FBdEI7OztBQWVQSixhQUFhLENBQUNPLFNBQWQsR0FBMEI7QUFDeEJOLEVBQUFBLE9BQU8sRUFBRU8sc0JBQVVDLE1BQVYsQ0FBaUJDLFVBREY7QUFFeEJSLEVBQUFBLE9BQU8sRUFBRU0sc0JBQVVHLElBRks7QUFHeEJSLEVBQUFBLGFBQWEsRUFBRUssc0JBQVVHO0FBSEQsQ0FBMUI7QUFNQSxJQUFNQyxNQUFNLEdBQUc7QUFDYlIsRUFBQUEsUUFBUSxFQUFFO0FBQ1JTLElBQUFBLGFBQWEsRUFBRSxLQURQO0FBRVJDLElBQUFBLEtBQUssRUFBRSxNQUZDO0FBR1JDLElBQUFBLE1BQU0sRUFBRSxNQUhBO0FBSVJDLElBQUFBLEtBQUssRUFBRSw2Q0FKQztBQUtSQyxJQUFBQSxPQUFPLEVBQUU7QUFMRDtBQURHLENBQWY7QUFTTyxJQUFNQyxVQUFVLEdBQUcsd0JBQVdOLE1BQVgsRUFBbUJaLGFBQW5CLENBQW5CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IEljb25CdXR0b24gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvSWNvbkJ1dHRvbic7XG5pbXBvcnQgQ2hlY2sgZnJvbSAnQG1hdGVyaWFsLXVpL2ljb25zL0NoZWNrJztcbmltcG9ydCB7IHdpdGhTdHlsZXMgfSBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9zdHlsZXMnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcblxuZXhwb3J0IGNvbnN0IFJhd0RvbmVCdXR0b24gPSAoeyBjbGFzc2VzLCBvbkNsaWNrLCBkb25lQnV0dG9uUmVmIH0pID0+IChcbiAgPEljb25CdXR0b25cbiAgICBhcmlhLWxhYmVsPVwiRG9uZVwiXG4gICAgY2xhc3NOYW1lPXtjbGFzc2VzLmljb25Sb290fVxuICAgIGJ1dHRvblJlZj17ZG9uZUJ1dHRvblJlZn1cbiAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgIGNsYXNzZXM9e3tcbiAgICAgIGxhYmVsOiBjbGFzc2VzLmxhYmVsLFxuICAgICAgcm9vdDogY2xhc3Nlcy5pY29uUm9vdCxcbiAgICB9fVxuICA+XG4gICAgPENoZWNrIC8+XG4gIDwvSWNvbkJ1dHRvbj5cbik7XG5cblJhd0RvbmVCdXR0b24ucHJvcFR5cGVzID0ge1xuICBjbGFzc2VzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gIG9uQ2xpY2s6IFByb3BUeXBlcy5mdW5jLFxuICBkb25lQnV0dG9uUmVmOiBQcm9wVHlwZXMuZnVuYyxcbn07XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgaWNvblJvb3Q6IHtcbiAgICB2ZXJ0aWNhbEFsaWduOiAndG9wJyxcbiAgICB3aWR0aDogJzI4cHgnLFxuICAgIGhlaWdodDogJzI4cHgnLFxuICAgIGNvbG9yOiAndmFyKC0tZWRpdGFibGUtaHRtbC10b29sYmFyLWNoZWNrLCAjMDBiYjAwKScsXG4gICAgcGFkZGluZzogJzRweCcsXG4gIH0sXG59O1xuZXhwb3J0IGNvbnN0IERvbmVCdXR0b24gPSB3aXRoU3R5bGVzKHN0eWxlcykoUmF3RG9uZUJ1dHRvbik7XG4iXX0=
@@ -35,8 +35,6 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
35
35
 
36
36
  var _slatePropTypes = _interopRequireDefault(require("slate-prop-types"));
37
37
 
38
- var _slateDevEnvironment = require("slate-dev-environment");
39
-
40
38
  var _renderUi = require("@pie-lib/render-ui");
41
39
 
42
40
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
@@ -56,17 +54,6 @@ var EditorAndToolbar = /*#__PURE__*/function (_React$Component) {
56
54
  }
57
55
 
58
56
  (0, _createClass2["default"])(EditorAndToolbar, [{
59
- key: "componentDidMount",
60
- value:
61
- /** This is an interim fix until this PR is merged in slate:
62
- * https://github.com/ianstormtaylor/slate/pull/2236
63
- */
64
- function componentDidMount() {
65
- if (_slateDevEnvironment.IS_FIREFOX) {
66
- this.editorRef.tmp.isUpdatingSelection = true;
67
- }
68
- }
69
- }, {
70
57
  key: "render",
71
58
  value: function render() {
72
59
  var _classNames,
@@ -89,8 +76,12 @@ var EditorAndToolbar = /*#__PURE__*/function (_React$Component) {
89
76
  pluginProps = _this$props.pluginProps,
90
77
  toolbarOpts = _this$props.toolbarOpts,
91
78
  onDataChange = _this$props.onDataChange,
92
- toolbarRef = _this$props.toolbarRef;
93
- var inFocus = value.isFocused || focusedNode !== null && focusedNode !== undefined;
79
+ toolbarRef = _this$props.toolbarRef,
80
+ doneButtonRef = _this$props.doneButtonRef,
81
+ focusToolbar = _this$props.focusToolbar,
82
+ onToolbarFocus = _this$props.onToolbarFocus,
83
+ onToolbarBlur = _this$props.onToolbarBlur;
84
+ var inFocus = value.isFocused || focusedNode !== null && focusedNode !== undefined || focusToolbar;
94
85
  var holderNames = (0, _classnames["default"])(classes.editorHolder, (_classNames = {}, (0, _defineProperty2["default"])(_classNames, classes.editorInFocus, inFocus), (0, _defineProperty2["default"])(_classNames, classes.readOnly, readOnly), (0, _defineProperty2["default"])(_classNames, classes.disabledUnderline, disableUnderline), (0, _defineProperty2["default"])(_classNames, classes.disabledScrollbar, disableScrollbar), _classNames));
95
86
  var clonedChildren = children;
96
87
 
@@ -108,18 +99,21 @@ var EditorAndToolbar = /*#__PURE__*/function (_React$Component) {
108
99
  }, /*#__PURE__*/_react["default"].createElement("div", {
109
100
  className: holderNames
110
101
  }, /*#__PURE__*/_react["default"].createElement("div", {
111
- className: (0, _classnames["default"])((0, _defineProperty2["default"])({}, classes.noPadding, toolbarOpts && toolbarOpts.noBorder), classes.children)
102
+ className: (0, _classnames["default"])((0, _defineProperty2["default"])({}, classes.noPadding, toolbarOpts && toolbarOpts.noPadding), classes.children)
112
103
  }, clonedChildren)), /*#__PURE__*/_react["default"].createElement(_toolbar["default"], {
113
104
  autoWidth: autoWidth,
114
105
  plugins: plugins,
115
106
  focusedNode: focusedNode,
116
107
  value: value,
117
108
  isFocused: inFocus,
109
+ onBlur: onToolbarBlur,
110
+ onFocus: onToolbarFocus,
118
111
  onChange: onChange,
119
112
  getFocusedValue: getFocusedValue,
120
113
  onDone: onDone,
121
114
  onDataChange: onDataChange,
122
115
  toolbarRef: toolbarRef,
116
+ doneButtonRef: doneButtonRef,
123
117
  pluginProps: pluginProps,
124
118
  toolbarOpts: toolbarOpts
125
119
  }));
@@ -149,8 +143,13 @@ exports.EditorAndToolbar = EditorAndToolbar;
149
143
  position: _propTypes["default"].oneOf(['bottom', 'top']),
150
144
  alwaysVisible: _propTypes["default"].bool,
151
145
  error: _propTypes["default"].string,
152
- noBorder: _propTypes["default"].any
153
- })
146
+ noBorder: _propTypes["default"].any,
147
+ noPadding: _propTypes["default"].any
148
+ }),
149
+ focusToolbar: _propTypes["default"].bool.isRequired,
150
+ onToolbarFocus: _propTypes["default"].func.isRequired,
151
+ onToolbarBlur: _propTypes["default"].func.isRequired,
152
+ doneButtonRef: _propTypes["default"].func
154
153
  });
155
154
 
156
155
  var style = function style(theme) {
@@ -175,7 +174,7 @@ var style = function style(theme) {
175
174
  editorHolder: {
176
175
  position: 'relative',
177
176
  padding: '0px',
178
- overflowY: 'scroll',
177
+ overflowY: 'auto',
179
178
  color: _renderUi.color.text(),
180
179
  backgroundColor: _renderUi.color.background(),
181
180
  '&::before': {
@@ -284,4 +283,4 @@ var style = function style(theme) {
284
283
  var _default = (0, _styles.withStyles)(style)(EditorAndToolbar);
285
284
 
286
285
  exports["default"] = _default;
287
- //# sourceMappingURL=editor-and-toolbar.js.map
286
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wbHVnaW5zL3Rvb2xiYXIvZWRpdG9yLWFuZC10b29sYmFyLmpzeCJdLCJuYW1lcyI6WyJsb2ciLCJFZGl0b3JBbmRUb29sYmFyIiwicHJvcHMiLCJjbGFzc2VzIiwiY2hpbGRyZW4iLCJ2YWx1ZSIsInBsdWdpbnMiLCJvbkNoYW5nZSIsImdldEZvY3VzZWRWYWx1ZSIsIm9uRG9uZSIsImZvY3VzZWROb2RlIiwiYXV0b1dpZHRoIiwicmVhZE9ubHkiLCJkaXNhYmxlU2Nyb2xsYmFyIiwiZGlzYWJsZVVuZGVybGluZSIsInBsdWdpblByb3BzIiwidG9vbGJhck9wdHMiLCJvbkRhdGFDaGFuZ2UiLCJ0b29sYmFyUmVmIiwiZG9uZUJ1dHRvblJlZiIsImZvY3VzVG9vbGJhciIsIm9uVG9vbGJhckZvY3VzIiwib25Ub29sYmFyQmx1ciIsImluRm9jdXMiLCJpc0ZvY3VzZWQiLCJ1bmRlZmluZWQiLCJob2xkZXJOYW1lcyIsImVkaXRvckhvbGRlciIsImVkaXRvckluRm9jdXMiLCJkaXNhYmxlZFVuZGVybGluZSIsImRpc2FibGVkU2Nyb2xsYmFyIiwiY2xvbmVkQ2hpbGRyZW4iLCJSZWFjdCIsImNsb25lRWxlbWVudCIsInJlZiIsImVsIiwiZWRpdG9yUmVmIiwibm9Cb3JkZXIiLCJlcnJvciIsInJvb3QiLCJub1BhZGRpbmciLCJDb21wb25lbnQiLCJQcm9wVHlwZXMiLCJvbmVPZlR5cGUiLCJhcnJheU9mIiwibm9kZSIsImlzUmVxdWlyZWQiLCJTbGF0ZVByb3BUeXBlcyIsImFycmF5IiwiZnVuYyIsImJvb2wiLCJvYmplY3QiLCJzaGFwZSIsInBvc2l0aW9uIiwib25lT2YiLCJhbHdheXNWaXNpYmxlIiwic3RyaW5nIiwiYW55Iiwic3R5bGUiLCJ0aGVtZSIsInBhZGRpbmciLCJib3JkZXIiLCJib3JkZXJSYWRpdXMiLCJjdXJzb3IiLCJ3b3JkQnJlYWsiLCJvdmVyZmxvdyIsIm1heEhlaWdodCIsIm92ZXJmbG93WSIsImNvbG9yIiwidGV4dCIsImJhY2tncm91bmRDb2xvciIsImJhY2tncm91bmQiLCJsZWZ0IiwicmlnaHQiLCJib3R0b20iLCJoZWlnaHQiLCJjb250ZW50IiwidHJhbnNpdGlvbiIsInBvaW50ZXJFdmVudHMiLCJ0cmFuc2Zvcm0iLCJwcmltYXJ5IiwicGFsZXR0ZSIsImNvbW1vbiIsImJsYWNrIiwiZGlzcGxheSIsInNjcm9sbGJhcldpZHRoIiwiYmFja2dyb3VuZFNpemUiLCJiYWNrZ3JvdW5kSW1hZ2UiLCJiYWNrZ3JvdW5kUmVwZWF0IiwiYmFja2dyb3VuZFBvc2l0aW9uIiwibWFpbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7OztBQUVBLElBQU1BLEdBQUcsR0FBRyx1QkFBTSwyREFBTixDQUFaOztJQUVhQyxnQjs7Ozs7Ozs7Ozs7O1dBOEJYLGtCQUFTO0FBQUE7QUFBQTtBQUFBOztBQUNQLHdCQXFCSSxLQUFLQyxLQXJCVDtBQUFBLFVBQ0VDLE9BREYsZUFDRUEsT0FERjtBQUFBLFVBRUVDLFFBRkYsZUFFRUEsUUFGRjtBQUFBLFVBR0VDLEtBSEYsZUFHRUEsS0FIRjtBQUFBLFVBSUVDLE9BSkYsZUFJRUEsT0FKRjtBQUFBLFVBS0VDLFFBTEYsZUFLRUEsUUFMRjtBQUFBLFVBTUVDLGVBTkYsZUFNRUEsZUFORjtBQUFBLFVBT0VDLE1BUEYsZUFPRUEsTUFQRjtBQUFBLFVBUUVDLFdBUkYsZUFRRUEsV0FSRjtBQUFBLFVBU0VDLFNBVEYsZUFTRUEsU0FURjtBQUFBLFVBVUVDLFFBVkYsZUFVRUEsUUFWRjtBQUFBLFVBV0VDLGdCQVhGLGVBV0VBLGdCQVhGO0FBQUEsVUFZRUMsZ0JBWkYsZUFZRUEsZ0JBWkY7QUFBQSxVQWFFQyxXQWJGLGVBYUVBLFdBYkY7QUFBQSxVQWNFQyxXQWRGLGVBY0VBLFdBZEY7QUFBQSxVQWVFQyxZQWZGLGVBZUVBLFlBZkY7QUFBQSxVQWdCRUMsVUFoQkYsZUFnQkVBLFVBaEJGO0FBQUEsVUFpQkVDLGFBakJGLGVBaUJFQSxhQWpCRjtBQUFBLFVBa0JFQyxZQWxCRixlQWtCRUEsWUFsQkY7QUFBQSxVQW1CRUMsY0FuQkYsZUFtQkVBLGNBbkJGO0FBQUEsVUFvQkVDLGFBcEJGLGVBb0JFQSxhQXBCRjtBQXVCQSxVQUFJQyxPQUFPLEdBQUdsQixLQUFLLENBQUNtQixTQUFOLElBQW9CZCxXQUFXLEtBQUssSUFBaEIsSUFBd0JBLFdBQVcsS0FBS2UsU0FBNUQsSUFBMEVMLFlBQXhGO0FBRUEsVUFBTU0sV0FBVyxHQUFHLDRCQUFXdkIsT0FBTyxDQUFDd0IsWUFBbkIsbUVBQ2pCeEIsT0FBTyxDQUFDeUIsYUFEUyxFQUNPTCxPQURQLGlEQUVqQnBCLE9BQU8sQ0FBQ1MsUUFGUyxFQUVFQSxRQUZGLGlEQUdqQlQsT0FBTyxDQUFDMEIsaUJBSFMsRUFHV2YsZ0JBSFgsaURBSWpCWCxPQUFPLENBQUMyQixpQkFKUyxFQUlXakIsZ0JBSlgsZ0JBQXBCO0FBT0EsVUFBSWtCLGNBQWMsR0FBRzNCLFFBQXJCOztBQUVBLFVBQUksT0FBT0EsUUFBUCxLQUFvQixRQUF4QixFQUFrQztBQUNoQzJCLFFBQUFBLGNBQWMsZ0JBQUdDLGtCQUFNQyxZQUFOLENBQW1CN0IsUUFBbkIsRUFBNkI7QUFDNUM4QixVQUFBQSxHQUFHLEVBQUUsYUFBQ0MsRUFBRDtBQUFBLG1CQUFTLEtBQUksQ0FBQ0MsU0FBTCxHQUFpQkQsRUFBMUI7QUFBQTtBQUR1QyxTQUE3QixDQUFqQjtBQUdEOztBQUVEbkMsTUFBQUEsR0FBRyxDQUFDLG9CQUFELEVBQXVCdUIsT0FBdkIsRUFBZ0Msa0JBQWhDLEVBQW9EbEIsS0FBSyxDQUFDbUIsU0FBMUQsRUFBcUUsZ0JBQXJFLEVBQXVGZCxXQUF2RixDQUFIO0FBRUEsMEJBQ0U7QUFDRSxRQUFBLFNBQVMsRUFBRSwrRkFFTlAsT0FBTyxDQUFDa0MsUUFGRixFQUVhckIsV0FBVyxJQUFJQSxXQUFXLENBQUNxQixRQUZ4QyxrREFHTmxDLE9BQU8sQ0FBQ21DLEtBSEYsRUFHVXRCLFdBQVcsSUFBSUEsV0FBVyxDQUFDc0IsS0FIckMsa0JBS1RuQyxPQUFPLENBQUNvQyxJQUxDO0FBRGIsc0JBU0U7QUFBSyxRQUFBLFNBQVMsRUFBRWI7QUFBaEIsc0JBQ0U7QUFDRSxRQUFBLFNBQVMsRUFBRSxpRUFFTnZCLE9BQU8sQ0FBQ3FDLFNBRkYsRUFFY3hCLFdBQVcsSUFBSUEsV0FBVyxDQUFDd0IsU0FGekMsR0FJVHJDLE9BQU8sQ0FBQ0MsUUFKQztBQURiLFNBUUcyQixjQVJILENBREYsQ0FURixlQXNCRSxnQ0FBQyxtQkFBRDtBQUNFLFFBQUEsU0FBUyxFQUFFcEIsU0FEYjtBQUVFLFFBQUEsT0FBTyxFQUFFTCxPQUZYO0FBR0UsUUFBQSxXQUFXLEVBQUVJLFdBSGY7QUFJRSxRQUFBLEtBQUssRUFBRUwsS0FKVDtBQUtFLFFBQUEsU0FBUyxFQUFFa0IsT0FMYjtBQU1FLFFBQUEsTUFBTSxFQUFFRCxhQU5WO0FBT0UsUUFBQSxPQUFPLEVBQUVELGNBUFg7QUFRRSxRQUFBLFFBQVEsRUFBRWQsUUFSWjtBQVNFLFFBQUEsZUFBZSxFQUFFQyxlQVRuQjtBQVVFLFFBQUEsTUFBTSxFQUFFQyxNQVZWO0FBV0UsUUFBQSxZQUFZLEVBQUVRLFlBWGhCO0FBWUUsUUFBQSxVQUFVLEVBQUVDLFVBWmQ7QUFhRSxRQUFBLGFBQWEsRUFBRUMsYUFiakI7QUFjRSxRQUFBLFdBQVcsRUFBRUosV0FkZjtBQWVFLFFBQUEsV0FBVyxFQUFFQztBQWZmLFFBdEJGLENBREY7QUEwQ0Q7OztFQW5IbUNnQixrQkFBTVMsUzs7O2lDQUEvQnhDLGdCLGVBQ1E7QUFDakJHLEVBQUFBLFFBQVEsRUFBRXNDLHNCQUFVQyxTQUFWLENBQW9CLENBQUNELHNCQUFVRSxPQUFWLENBQWtCRixzQkFBVUcsSUFBNUIsQ0FBRCxFQUFvQ0gsc0JBQVVHLElBQTlDLENBQXBCLEVBQXlFQyxVQURsRTtBQUVqQnpDLEVBQUFBLEtBQUssRUFBRTBDLDJCQUFlMUMsS0FBZixDQUFxQnlDLFVBRlg7QUFHakJ4QyxFQUFBQSxPQUFPLEVBQUVvQyxzQkFBVU0sS0FBVixDQUFnQkYsVUFIUjtBQUlqQnZDLEVBQUFBLFFBQVEsRUFBRW1DLHNCQUFVTyxJQUFWLENBQWVILFVBSlI7QUFLakJ0QyxFQUFBQSxlQUFlLEVBQUVrQyxzQkFBVU8sSUFBVixDQUFlSCxVQUxmO0FBTWpCckMsRUFBQUEsTUFBTSxFQUFFaUMsc0JBQVVPLElBQVYsQ0FBZUgsVUFOTjtBQU9qQjdCLEVBQUFBLFlBQVksRUFBRXlCLHNCQUFVTyxJQVBQO0FBUWpCL0IsRUFBQUEsVUFBVSxFQUFFd0Isc0JBQVVPLElBUkw7QUFTakJ2QyxFQUFBQSxXQUFXLEVBQUVxQywyQkFBZUYsSUFUWDtBQVVqQmpDLEVBQUFBLFFBQVEsRUFBRThCLHNCQUFVUSxJQVZIO0FBV2pCckMsRUFBQUEsZ0JBQWdCLEVBQUU2QixzQkFBVVEsSUFYWDtBQVlqQnBDLEVBQUFBLGdCQUFnQixFQUFFNEIsc0JBQVVRLElBWlg7QUFhakJ2QyxFQUFBQSxTQUFTLEVBQUUrQixzQkFBVVEsSUFiSjtBQWNqQi9DLEVBQUFBLE9BQU8sRUFBRXVDLHNCQUFVUyxNQUFWLENBQWlCTCxVQWRUO0FBZWpCL0IsRUFBQUEsV0FBVyxFQUFFMkIsc0JBQVVTLE1BZk47QUFnQmpCbkMsRUFBQUEsV0FBVyxFQUFFMEIsc0JBQVVVLEtBQVYsQ0FBZ0I7QUFDM0JDLElBQUFBLFFBQVEsRUFBRVgsc0JBQVVZLEtBQVYsQ0FBZ0IsQ0FBQyxRQUFELEVBQVcsS0FBWCxDQUFoQixDQURpQjtBQUUzQkMsSUFBQUEsYUFBYSxFQUFFYixzQkFBVVEsSUFGRTtBQUczQlosSUFBQUEsS0FBSyxFQUFFSSxzQkFBVWMsTUFIVTtBQUkzQm5CLElBQUFBLFFBQVEsRUFBRUssc0JBQVVlLEdBSk87QUFLM0JqQixJQUFBQSxTQUFTLEVBQUVFLHNCQUFVZTtBQUxNLEdBQWhCLENBaEJJO0FBdUJqQnJDLEVBQUFBLFlBQVksRUFBRXNCLHNCQUFVUSxJQUFWLENBQWVKLFVBdkJaO0FBd0JqQnpCLEVBQUFBLGNBQWMsRUFBRXFCLHNCQUFVTyxJQUFWLENBQWVILFVBeEJkO0FBeUJqQnhCLEVBQUFBLGFBQWEsRUFBRW9CLHNCQUFVTyxJQUFWLENBQWVILFVBekJiO0FBMEJqQjNCLEVBQUFBLGFBQWEsRUFBRXVCLHNCQUFVTztBQTFCUixDOztBQXFIckIsSUFBTVMsS0FBSyxHQUFHLFNBQVJBLEtBQVEsQ0FBQ0MsS0FBRDtBQUFBLFNBQVk7QUFDeEJwQixJQUFBQSxJQUFJLEVBQUU7QUFDSmMsTUFBQUEsUUFBUSxFQUFFLFVBRE47QUFFSk8sTUFBQUEsT0FBTyxFQUFFLEtBRkw7QUFHSkMsTUFBQUEsTUFBTSxFQUFFLGdCQUhKO0FBSUpDLE1BQUFBLFlBQVksRUFBRSxLQUpWO0FBS0pDLE1BQUFBLE1BQU0sRUFBRSxNQUxKO0FBTUosc0NBQWdDO0FBQzlCQyxRQUFBQSxTQUFTLEVBQUUsWUFEbUI7QUFFOUJDLFFBQUFBLFFBQVEsRUFBRSxTQUZvQjtBQUc5QkMsUUFBQUEsU0FBUyxFQUFFLE9BSG1CO0FBSTlCO0FBQ0FOLFFBQUFBLE9BQU8sRUFBRTtBQUxxQjtBQU41QixLQURrQjtBQWV4QnhELElBQUFBLFFBQVEsRUFBRTtBQUNSd0QsTUFBQUEsT0FBTyxFQUFFO0FBREQsS0FmYztBQWtCeEJqQyxJQUFBQSxZQUFZLEVBQUU7QUFDWjBCLE1BQUFBLFFBQVEsRUFBRSxVQURFO0FBRVpPLE1BQUFBLE9BQU8sRUFBRSxLQUZHO0FBR1pPLE1BQUFBLFNBQVMsRUFBRSxNQUhDO0FBSVpDLE1BQUFBLEtBQUssRUFBRUEsZ0JBQU1DLElBQU4sRUFKSztBQUtaQyxNQUFBQSxlQUFlLEVBQUVGLGdCQUFNRyxVQUFOLEVBTEw7QUFNWixtQkFBYTtBQUNYQyxRQUFBQSxJQUFJLEVBQUUsR0FESztBQUVYQyxRQUFBQSxLQUFLLEVBQUUsR0FGSTtBQUdYQyxRQUFBQSxNQUFNLEVBQUUsR0FIRztBQUlYQyxRQUFBQSxNQUFNLEVBQUUsS0FKRztBQUtYQyxRQUFBQSxPQUFPLEVBQUUsSUFMRTtBQU1YdkIsUUFBQUEsUUFBUSxFQUFFLFVBTkM7QUFPWHdCLFFBQUFBLFVBQVUsRUFBRSx5REFQRDtBQVFYQyxRQUFBQSxhQUFhLEVBQUUsTUFSSjtBQVNYUixRQUFBQSxlQUFlLEVBQUU7QUFUTixPQU5EO0FBaUJaLGtCQUFZO0FBQ1ZFLFFBQUFBLElBQUksRUFBRSxHQURJO0FBRVZDLFFBQUFBLEtBQUssRUFBRSxHQUZHO0FBR1ZDLFFBQUFBLE1BQU0sRUFBRSxHQUhFO0FBSVZDLFFBQUFBLE1BQU0sRUFBRSxLQUpFO0FBS1ZDLFFBQUFBLE9BQU8sRUFBRSxJQUxDO0FBTVZ2QixRQUFBQSxRQUFRLEVBQUUsVUFOQTtBQU9WMEIsUUFBQUEsU0FBUyxFQUFFLFdBUEQ7QUFRVkYsUUFBQUEsVUFBVSxFQUFFLG1GQVJGO0FBU1ZQLFFBQUFBLGVBQWUsRUFBRTtBQVRQLE9BakJBO0FBNEJaLGlCQUFXO0FBQ1Qsb0JBQVk7QUFDVlMsVUFBQUEsU0FBUyxFQUFFLFdBREQ7QUFFVlQsVUFBQUEsZUFBZSxFQUFFVSxjQUZQO0FBR1ZMLFVBQUFBLE1BQU0sRUFBRTtBQUhFO0FBREgsT0E1QkM7QUFtQ1osaUJBQVc7QUFDVCxvQkFBWTtBQUNWSSxVQUFBQSxTQUFTLEVBQUUsV0FERDtBQUVWVCxVQUFBQSxlQUFlLEVBQUVYLEtBQUssQ0FBQ3NCLE9BQU4sQ0FBY0MsTUFBZCxDQUFxQkMsS0FGNUI7QUFHVlIsVUFBQUEsTUFBTSxFQUFFO0FBSEU7QUFESDtBQW5DQyxLQWxCVTtBQTZEeEI5QyxJQUFBQSxpQkFBaUIsRUFBRTtBQUNqQixtQkFBYTtBQUNYdUQsUUFBQUEsT0FBTyxFQUFFO0FBREUsT0FESTtBQUlqQixrQkFBWTtBQUNWQSxRQUFBQSxPQUFPLEVBQUU7QUFEQztBQUpLLEtBN0RLO0FBcUV4QnRELElBQUFBLGlCQUFpQixFQUFFO0FBQ2pCLDhCQUF3QjtBQUN0QnNELFFBQUFBLE9BQU8sRUFBRTtBQURhLE9BRFA7QUFJakJDLE1BQUFBLGNBQWMsRUFBRSxNQUpDO0FBS2pCLDRCQUFzQjtBQUxMLEtBckVLO0FBNEV4QnpFLElBQUFBLFFBQVEsRUFBRTtBQUNSLG1CQUFhO0FBQ1gyRCxRQUFBQSxVQUFVLEVBQUUsYUFERDtBQUVYZSxRQUFBQSxjQUFjLEVBQUUsU0FGTDtBQUdYQyxRQUFBQSxlQUFlLEVBQUUsb0VBSE47QUFJWEMsUUFBQUEsZ0JBQWdCLEVBQUUsVUFKUDtBQUtYQyxRQUFBQSxrQkFBa0IsRUFBRTtBQUxULE9BREw7QUFRUixrQkFBWTtBQUNWakIsUUFBQUEsSUFBSSxFQUFFLEdBREk7QUFFVkMsUUFBQUEsS0FBSyxFQUFFLEdBRkc7QUFHVkMsUUFBQUEsTUFBTSxFQUFFLEdBSEU7QUFJVkMsUUFBQUEsTUFBTSxFQUFFLEtBSkU7QUFLVkMsUUFBQUEsT0FBTyxFQUFFLElBTEM7QUFNVnZCLFFBQUFBLFFBQVEsRUFBRSxVQU5BO0FBT1YwQixRQUFBQSxTQUFTLEVBQUUsV0FQRDtBQVFWRixRQUFBQSxVQUFVLEVBQUUsaUZBUkY7QUFTVlAsUUFBQUEsZUFBZSxFQUFFO0FBVFAsT0FSSjtBQW1CUixpQkFBVztBQUNULG9CQUFZO0FBQ1ZTLFVBQUFBLFNBQVMsRUFBRSxXQUREO0FBRVZULFVBQUFBLGVBQWUsRUFBRVgsS0FBSyxDQUFDc0IsT0FBTixDQUFjQyxNQUFkLENBQXFCQyxLQUY1QjtBQUdWUixVQUFBQSxNQUFNLEVBQUU7QUFIRTtBQURIO0FBbkJILEtBNUVjO0FBdUd4Qi9DLElBQUFBLGFBQWEsRUFBRTtBQUNiLGtCQUFZO0FBQ1ZtRCxRQUFBQSxTQUFTLEVBQUUsV0FERDtBQUVWVCxRQUFBQSxlQUFlLEVBQUVVLGNBRlA7QUFHVkwsUUFBQUEsTUFBTSxFQUFFO0FBSEUsT0FEQztBQU1iLGlCQUFXO0FBQ1Qsb0JBQVk7QUFDVkwsVUFBQUEsZUFBZSxFQUFFVTtBQURQO0FBREg7QUFORSxLQXZHUztBQW1IeEIxQyxJQUFBQSxLQUFLLEVBQUU7QUFDTHVCLE1BQUFBLE1BQU0sc0JBQWVGLEtBQUssQ0FBQ3NCLE9BQU4sQ0FBYzNDLEtBQWQsQ0FBb0JvRCxJQUFuQztBQURELEtBbkhpQjtBQXNIeEJyRCxJQUFBQSxRQUFRLEVBQUU7QUFDUndCLE1BQUFBLE1BQU0sRUFBRTtBQURBLEtBdEhjO0FBeUh4QnJCLElBQUFBLFNBQVMsRUFBRTtBQUNUb0IsTUFBQUEsT0FBTyxFQUFFO0FBREE7QUF6SGEsR0FBWjtBQUFBLENBQWQ7O2VBOEhlLHdCQUFXRixLQUFYLEVBQWtCekQsZ0JBQWxCLEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFRvb2xiYXIgZnJvbSAnLi90b29sYmFyJztcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IGRlYnVnIGZyb20gJ2RlYnVnJztcbmltcG9ydCB7IHByaW1hcnkgfSBmcm9tICcuLi8uLi90aGVtZSc7XG5pbXBvcnQgeyB3aXRoU3R5bGVzIH0gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvc3R5bGVzJztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgU2xhdGVQcm9wVHlwZXMgZnJvbSAnc2xhdGUtcHJvcC10eXBlcyc7XG5pbXBvcnQgeyBjb2xvciB9IGZyb20gJ0BwaWUtbGliL3JlbmRlci11aSc7XG5cbmNvbnN0IGxvZyA9IGRlYnVnKCdAcGllLWxpYjplZGl0YWJsZS1odG1sOnBsdWdpbnM6dG9vbGJhcjplZGl0b3ItYW5kLXRvb2xiYXInKTtcblxuZXhwb3J0IGNsYXNzIEVkaXRvckFuZFRvb2xiYXIgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIGNoaWxkcmVuOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMubm9kZSksIFByb3BUeXBlcy5ub2RlXSkuaXNSZXF1aXJlZCxcbiAgICB2YWx1ZTogU2xhdGVQcm9wVHlwZXMudmFsdWUuaXNSZXF1aXJlZCxcbiAgICBwbHVnaW5zOiBQcm9wVHlwZXMuYXJyYXkuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBnZXRGb2N1c2VkVmFsdWU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25Eb25lOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRGF0YUNoYW5nZTogUHJvcFR5cGVzLmZ1bmMsXG4gICAgdG9vbGJhclJlZjogUHJvcFR5cGVzLmZ1bmMsXG4gICAgZm9jdXNlZE5vZGU6IFNsYXRlUHJvcFR5cGVzLm5vZGUsXG4gICAgcmVhZE9ubHk6IFByb3BUeXBlcy5ib29sLFxuICAgIGRpc2FibGVTY3JvbGxiYXI6IFByb3BUeXBlcy5ib29sLFxuICAgIGRpc2FibGVVbmRlcmxpbmU6IFByb3BUeXBlcy5ib29sLFxuICAgIGF1dG9XaWR0aDogUHJvcFR5cGVzLmJvb2wsXG4gICAgY2xhc3NlczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIHBsdWdpblByb3BzOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIHRvb2xiYXJPcHRzOiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgICAgcG9zaXRpb246IFByb3BUeXBlcy5vbmVPZihbJ2JvdHRvbScsICd0b3AnXSksXG4gICAgICBhbHdheXNWaXNpYmxlOiBQcm9wVHlwZXMuYm9vbCxcbiAgICAgIGVycm9yOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgbm9Cb3JkZXI6IFByb3BUeXBlcy5hbnksXG4gICAgICBub1BhZGRpbmc6IFByb3BUeXBlcy5hbnksXG4gICAgfSksXG4gICAgZm9jdXNUb29sYmFyOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICAgIG9uVG9vbGJhckZvY3VzOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uVG9vbGJhckJsdXI6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZG9uZUJ1dHRvblJlZjogUHJvcFR5cGVzLmZ1bmMsXG4gIH07XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHtcbiAgICAgIGNsYXNzZXMsXG4gICAgICBjaGlsZHJlbixcbiAgICAgIHZhbHVlLFxuICAgICAgcGx1Z2lucyxcbiAgICAgIG9uQ2hhbmdlLFxuICAgICAgZ2V0Rm9jdXNlZFZhbHVlLFxuICAgICAgb25Eb25lLFxuICAgICAgZm9jdXNlZE5vZGUsXG4gICAgICBhdXRvV2lkdGgsXG4gICAgICByZWFkT25seSxcbiAgICAgIGRpc2FibGVTY3JvbGxiYXIsXG4gICAgICBkaXNhYmxlVW5kZXJsaW5lLFxuICAgICAgcGx1Z2luUHJvcHMsXG4gICAgICB0b29sYmFyT3B0cyxcbiAgICAgIG9uRGF0YUNoYW5nZSxcbiAgICAgIHRvb2xiYXJSZWYsXG4gICAgICBkb25lQnV0dG9uUmVmLFxuICAgICAgZm9jdXNUb29sYmFyLFxuICAgICAgb25Ub29sYmFyRm9jdXMsXG4gICAgICBvblRvb2xiYXJCbHVyLFxuICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgbGV0IGluRm9jdXMgPSB2YWx1ZS5pc0ZvY3VzZWQgfHwgKGZvY3VzZWROb2RlICE9PSBudWxsICYmIGZvY3VzZWROb2RlICE9PSB1bmRlZmluZWQpIHx8IGZvY3VzVG9vbGJhcjtcblxuICAgIGNvbnN0IGhvbGRlck5hbWVzID0gY2xhc3NOYW1lcyhjbGFzc2VzLmVkaXRvckhvbGRlciwge1xuICAgICAgW2NsYXNzZXMuZWRpdG9ySW5Gb2N1c106IGluRm9jdXMsXG4gICAgICBbY2xhc3Nlcy5yZWFkT25seV06IHJlYWRPbmx5LFxuICAgICAgW2NsYXNzZXMuZGlzYWJsZWRVbmRlcmxpbmVdOiBkaXNhYmxlVW5kZXJsaW5lLFxuICAgICAgW2NsYXNzZXMuZGlzYWJsZWRTY3JvbGxiYXJdOiBkaXNhYmxlU2Nyb2xsYmFyLFxuICAgIH0pO1xuXG4gICAgbGV0IGNsb25lZENoaWxkcmVuID0gY2hpbGRyZW47XG5cbiAgICBpZiAodHlwZW9mIGNoaWxkcmVuICE9PSAnc3RyaW5nJykge1xuICAgICAgY2xvbmVkQ2hpbGRyZW4gPSBSZWFjdC5jbG9uZUVsZW1lbnQoY2hpbGRyZW4sIHtcbiAgICAgICAgcmVmOiAoZWwpID0+ICh0aGlzLmVkaXRvclJlZiA9IGVsKSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGxvZygnW3JlbmRlcl0gaW5Gb2N1czogJywgaW5Gb2N1cywgJ3ZhbHVlLmlzRm9jdXNlZDonLCB2YWx1ZS5pc0ZvY3VzZWQsICdmb2N1c2VkIG5vZGU6ICcsIGZvY3VzZWROb2RlKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhcbiAgICAgICAgICB7XG4gICAgICAgICAgICBbY2xhc3Nlcy5ub0JvcmRlcl06IHRvb2xiYXJPcHRzICYmIHRvb2xiYXJPcHRzLm5vQm9yZGVyLFxuICAgICAgICAgICAgW2NsYXNzZXMuZXJyb3JdOiB0b29sYmFyT3B0cyAmJiB0b29sYmFyT3B0cy5lcnJvcixcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNsYXNzZXMucm9vdCxcbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e2hvbGRlck5hbWVzfT5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBbY2xhc3Nlcy5ub1BhZGRpbmddOiB0b29sYmFyT3B0cyAmJiB0b29sYmFyT3B0cy5ub1BhZGRpbmcsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGNsYXNzZXMuY2hpbGRyZW4sXG4gICAgICAgICAgICApfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtjbG9uZWRDaGlsZHJlbn1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPFRvb2xiYXJcbiAgICAgICAgICBhdXRvV2lkdGg9e2F1dG9XaWR0aH1cbiAgICAgICAgICBwbHVnaW5zPXtwbHVnaW5zfVxuICAgICAgICAgIGZvY3VzZWROb2RlPXtmb2N1c2VkTm9kZX1cbiAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgaXNGb2N1c2VkPXtpbkZvY3VzfVxuICAgICAgICAgIG9uQmx1cj17b25Ub29sYmFyQmx1cn1cbiAgICAgICAgICBvbkZvY3VzPXtvblRvb2xiYXJGb2N1c31cbiAgICAgICAgICBvbkNoYW5nZT17b25DaGFuZ2V9XG4gICAgICAgICAgZ2V0Rm9jdXNlZFZhbHVlPXtnZXRGb2N1c2VkVmFsdWV9XG4gICAgICAgICAgb25Eb25lPXtvbkRvbmV9XG4gICAgICAgICAgb25EYXRhQ2hhbmdlPXtvbkRhdGFDaGFuZ2V9XG4gICAgICAgICAgdG9vbGJhclJlZj17dG9vbGJhclJlZn1cbiAgICAgICAgICBkb25lQnV0dG9uUmVmPXtkb25lQnV0dG9uUmVmfVxuICAgICAgICAgIHBsdWdpblByb3BzPXtwbHVnaW5Qcm9wc31cbiAgICAgICAgICB0b29sYmFyT3B0cz17dG9vbGJhck9wdHN9XG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG59XG5cbmNvbnN0IHN0eWxlID0gKHRoZW1lKSA9PiAoe1xuICByb290OiB7XG4gICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgcGFkZGluZzogJzBweCcsXG4gICAgYm9yZGVyOiAnMXB4IHNvbGlkICNjY2MnLFxuICAgIGJvcmRlclJhZGl1czogJzRweCcsXG4gICAgY3Vyc29yOiAndGV4dCcsXG4gICAgJyYgW2RhdGEtc2xhdGUtZWRpdG9yPVwidHJ1ZVwiXSc6IHtcbiAgICAgIHdvcmRCcmVhazogJ2JyZWFrLXdvcmQnLFxuICAgICAgb3ZlcmZsb3c6ICd2aXNpYmxlJyxcbiAgICAgIG1heEhlaWdodDogJzUwMHB4JyxcbiAgICAgIC8vIG5lZWRlZCBpbiBvcmRlciB0byBiZSBhYmxlIHRvIHB1dCB0aGUgZm9jdXMgYmVmb3JlIGEgdm9pZCBlbGVtZW50IHdoZW4gaXQgaXMgdGhlIGZpcnN0IG9uZSBpbiB0aGUgZWRpdG9yXG4gICAgICBwYWRkaW5nOiAnNXB4JyxcbiAgICB9LFxuICB9LFxuICBjaGlsZHJlbjoge1xuICAgIHBhZGRpbmc6ICcxMHB4IDE2cHgnLFxuICB9LFxuICBlZGl0b3JIb2xkZXI6IHtcbiAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgICBwYWRkaW5nOiAnMHB4JyxcbiAgICBvdmVyZmxvd1k6ICdhdXRvJyxcbiAgICBjb2xvcjogY29sb3IudGV4dCgpLFxuICAgIGJhY2tncm91bmRDb2xvcjogY29sb3IuYmFja2dyb3VuZCgpLFxuICAgICcmOjpiZWZvcmUnOiB7XG4gICAgICBsZWZ0OiAnMCcsXG4gICAgICByaWdodDogJzAnLFxuICAgICAgYm90dG9tOiAnMCcsXG4gICAgICBoZWlnaHQ6ICcxcHgnLFxuICAgICAgY29udGVudDogJ1wiXCInLFxuICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICB0cmFuc2l0aW9uOiAnYmFja2dyb3VuZC1jb2xvciAyMDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIDBtcycsXG4gICAgICBwb2ludGVyRXZlbnRzOiAnbm9uZScsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6ICdyZ2JhKDAsIDAsIDAsIDAuNDIpJyxcbiAgICB9LFxuICAgICcmOjphZnRlcic6IHtcbiAgICAgIGxlZnQ6ICcwJyxcbiAgICAgIHJpZ2h0OiAnMCcsXG4gICAgICBib3R0b206ICcwJyxcbiAgICAgIGhlaWdodDogJzFweCcsXG4gICAgICBjb250ZW50OiAnXCJcIicsXG4gICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgIHRyYW5zZm9ybTogJ3NjYWxlWCgwKScsXG4gICAgICB0cmFuc2l0aW9uOiAndHJhbnNmb3JtIDIwMG1zIGN1YmljLWJlemllcigwLjAsIDAuMCwgMC4yLCAxKSAwbXMsIGJhY2tncm91bmQtY29sb3IgMjAwbXMgbGluZWFyJyxcbiAgICAgIGJhY2tncm91bmRDb2xvcjogJ3JnYmEoMCwgMCwgMCwgMC40MiknLFxuICAgIH0sXG4gICAgJyY6Zm9jdXMnOiB7XG4gICAgICAnJjo6YWZ0ZXInOiB7XG4gICAgICAgIHRyYW5zZm9ybTogJ3NjYWxlWCgxKScsXG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogcHJpbWFyeSxcbiAgICAgICAgaGVpZ2h0OiAnMnB4JyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICAnJjpob3Zlcic6IHtcbiAgICAgICcmOjphZnRlcic6IHtcbiAgICAgICAgdHJhbnNmb3JtOiAnc2NhbGVYKDEpJyxcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5wYWxldHRlLmNvbW1vbi5ibGFjayxcbiAgICAgICAgaGVpZ2h0OiAnMnB4JyxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbiAgZGlzYWJsZWRVbmRlcmxpbmU6IHtcbiAgICAnJjo6YmVmb3JlJzoge1xuICAgICAgZGlzcGxheTogJ25vbmUnLFxuICAgIH0sXG4gICAgJyY6OmFmdGVyJzoge1xuICAgICAgZGlzcGxheTogJ25vbmUnLFxuICAgIH0sXG4gIH0sXG4gIGRpc2FibGVkU2Nyb2xsYmFyOiB7XG4gICAgJyY6Oi13ZWJraXQtc2Nyb2xsYmFyJzoge1xuICAgICAgZGlzcGxheTogJ25vbmUnLFxuICAgIH0sXG4gICAgc2Nyb2xsYmFyV2lkdGg6ICdub25lJyxcbiAgICAnLW1zLW92ZXJmbG93LXN0eWxlJzogJ25vbmUnLFxuICB9LFxuICByZWFkT25seToge1xuICAgICcmOjpiZWZvcmUnOiB7XG4gICAgICBiYWNrZ3JvdW5kOiAndHJhbnNwYXJlbnQnLFxuICAgICAgYmFja2dyb3VuZFNpemU6ICc1cHggMXB4JyxcbiAgICAgIGJhY2tncm91bmRJbWFnZTogJ2xpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgwLCAwLCAwLCAwLjQyKSAzMyUsIHRyYW5zcGFyZW50IDAlKScsXG4gICAgICBiYWNrZ3JvdW5kUmVwZWF0OiAncmVwZWF0LXgnLFxuICAgICAgYmFja2dyb3VuZFBvc2l0aW9uOiAnbGVmdCB0b3AnLFxuICAgIH0sXG4gICAgJyY6OmFmdGVyJzoge1xuICAgICAgbGVmdDogJzAnLFxuICAgICAgcmlnaHQ6ICcwJyxcbiAgICAgIGJvdHRvbTogJzAnLFxuICAgICAgaGVpZ2h0OiAnMXB4JyxcbiAgICAgIGNvbnRlbnQ6ICdcIlwiJyxcbiAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgdHJhbnNmb3JtOiAnc2NhbGVYKDApJyxcbiAgICAgIHRyYW5zaXRpb246ICd0cmFuc2Zvcm0gMjAwbXMgY3ViaWMtYmV6aWVyKDAuMCwgMC4wLCAwLjIsIDEpIDBtcywgYmFja2dyb3VuZC1jb2xvciAwbXMgbGluZWFyJyxcbiAgICAgIGJhY2tncm91bmRDb2xvcjogJ3JnYmEoMCwgMCwgMCwgMCknLFxuICAgIH0sXG4gICAgJyY6aG92ZXInOiB7XG4gICAgICAnJjo6YWZ0ZXInOiB7XG4gICAgICAgIHRyYW5zZm9ybTogJ3NjYWxlWCgwKScsXG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogdGhlbWUucGFsZXR0ZS5jb21tb24uYmxhY2ssXG4gICAgICAgIGhlaWdodDogJzJweCcsXG4gICAgICB9LFxuICAgIH0sXG4gIH0sXG4gIGVkaXRvckluRm9jdXM6IHtcbiAgICAnJjo6YWZ0ZXInOiB7XG4gICAgICB0cmFuc2Zvcm06ICdzY2FsZVgoMSknLFxuICAgICAgYmFja2dyb3VuZENvbG9yOiBwcmltYXJ5LFxuICAgICAgaGVpZ2h0OiAnMnB4JyxcbiAgICB9LFxuICAgICcmOmhvdmVyJzoge1xuICAgICAgJyY6OmFmdGVyJzoge1xuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHByaW1hcnksXG4gICAgICB9LFxuICAgIH0sXG4gIH0sXG4gIGVycm9yOiB7XG4gICAgYm9yZGVyOiBgMnB4IHNvbGlkICR7dGhlbWUucGFsZXR0ZS5lcnJvci5tYWlufSAhaW1wb3J0YW50YCxcbiAgfSxcbiAgbm9Cb3JkZXI6IHtcbiAgICBib3JkZXI6ICdub25lJyxcbiAgfSxcbiAgbm9QYWRkaW5nOiB7XG4gICAgcGFkZGluZzogMCxcbiAgfSxcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCB3aXRoU3R5bGVzKHN0eWxlKShFZGl0b3JBbmRUb29sYmFyKTtcbiJdfQ==
@@ -31,4 +31,4 @@ function ToolbarPlugin(opts) {
31
31
  }
32
32
  };
33
33
  }
34
- //# sourceMappingURL=index.js.map
34
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wbHVnaW5zL3Rvb2xiYXIvaW5kZXguanN4Il0sIm5hbWVzIjpbIlRvb2xiYXJQbHVnaW4iLCJvcHRzIiwicmVuZGVyRWRpdG9yIiwicHJvcHMiLCJtYWluRWRpdG9yUmVmIiwiZGlzYWJsZVNjcm9sbGJhciIsImRpc2FibGVVbmRlcmxpbmUiLCJhdXRvV2lkdGgiLCJvbkRvbmUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDZSxTQUFTQSxhQUFULENBQXVCQyxJQUF2QixFQUE2QjtBQUMxQyxTQUFPO0FBQ0w7QUFDQUMsSUFBQUEsWUFBWSxFQUFFLHNCQUFDQyxLQUFEO0FBQUEsMEJBQ1osZ0NBQUMsNEJBQUQsZ0NBQ01BLEtBRE47QUFFRSxRQUFBLGFBQWEsRUFBRUYsSUFBSSxDQUFDRyxhQUZ0QjtBQUdFLFFBQUEsZ0JBQWdCLEVBQUVILElBQUksQ0FBQ0ksZ0JBSHpCO0FBSUUsUUFBQSxnQkFBZ0IsRUFBRUosSUFBSSxDQUFDSyxnQkFKekI7QUFLRSxRQUFBLFNBQVMsRUFBRUwsSUFBSSxDQUFDTSxTQUxsQjtBQU1FLFFBQUEsTUFBTSxFQUFFTixJQUFJLENBQUNPO0FBTmYsU0FEWTtBQUFBO0FBRlQsR0FBUDtBQWFEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IEVkaXRvckFuZFRvb2xiYXIgZnJvbSAnLi9lZGl0b3ItYW5kLXRvb2xiYXInO1xuXG4vKipcbiAqIEFkZHMgYSB0b29sYmFyIHdoaWNoIGlzIHNob3duIHdoZW4gdGhlIGVkaXRvciBpcyBmb2N1c2VkLlxuICogQHBhcmFtIHsqfSBvcHRzXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFRvb2xiYXJQbHVnaW4ob3B0cykge1xuICByZXR1cm4ge1xuICAgIC8qIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSAqL1xuICAgIHJlbmRlckVkaXRvcjogKHByb3BzKSA9PiAoXG4gICAgICA8RWRpdG9yQW5kVG9vbGJhclxuICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAgIG1haW5FZGl0b3JSZWY9e29wdHMubWFpbkVkaXRvclJlZn1cbiAgICAgICAgZGlzYWJsZVNjcm9sbGJhcj17b3B0cy5kaXNhYmxlU2Nyb2xsYmFyfVxuICAgICAgICBkaXNhYmxlVW5kZXJsaW5lPXtvcHRzLmRpc2FibGVVbmRlcmxpbmV9XG4gICAgICAgIGF1dG9XaWR0aD17b3B0cy5hdXRvV2lkdGh9XG4gICAgICAgIG9uRG9uZT17b3B0cy5vbkRvbmV9XG4gICAgICAvPlxuICAgICksXG4gIH07XG59XG4iXX0=
@@ -25,7 +25,7 @@ var _react = _interopRequireDefault(require("react"));
25
25
 
26
26
  var _debug = _interopRequireDefault(require("debug"));
27
27
 
28
- var _reactJss = _interopRequireDefault(require("react-jss"));
28
+ var _styles = require("@material-ui/core/styles");
29
29
 
30
30
  var _classnames = _interopRequireDefault(require("classnames"));
31
31
 
@@ -35,14 +35,20 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
35
35
 
36
36
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
37
37
 
38
- var styles = function styles() {
38
+ var styles = function styles(theme) {
39
39
  return {
40
40
  button: {
41
41
  color: 'grey',
42
42
  display: 'inline-flex',
43
43
  padding: '2px',
44
- '& :hover': {
44
+ background: 'none',
45
+ border: 'none',
46
+ cursor: 'pointer',
47
+ '&:hover': {
45
48
  color: 'black'
49
+ },
50
+ '&:focus': {
51
+ outline: "2px solid ".concat(theme.palette.grey[700])
46
52
  }
47
53
  },
48
54
  active: {
@@ -76,6 +82,14 @@ var RawButton = /*#__PURE__*/function (_React$Component) {
76
82
  var onClick = _this.props.onClick;
77
83
  onClick(e);
78
84
  });
85
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onKeyDown", function (e) {
86
+ if (e.key === 'Enter' || e.key === ' ') {
87
+ log('[onKeyDown]');
88
+ e.preventDefault();
89
+ var onClick = _this.props.onClick;
90
+ onClick(e);
91
+ }
92
+ });
79
93
  return _this;
80
94
  }
81
95
 
@@ -89,12 +103,18 @@ var RawButton = /*#__PURE__*/function (_React$Component) {
89
103
  classes = _this$props.classes,
90
104
  children = _this$props.children,
91
105
  disabled = _this$props.disabled,
92
- extraStyles = _this$props.extraStyles;
106
+ extraStyles = _this$props.extraStyles,
107
+ ariaLabel = _this$props.ariaLabel;
93
108
  var names = (0, _classnames["default"])(classes.button, (_classNames = {}, (0, _defineProperty2["default"])(_classNames, classes.active, active), (0, _defineProperty2["default"])(_classNames, classes.disabled, disabled), _classNames));
94
- return /*#__PURE__*/_react["default"].createElement("div", {
109
+ return /*#__PURE__*/_react["default"].createElement("button", {
95
110
  style: extraStyles,
96
111
  className: names,
97
- onMouseDown: this.onClick
112
+ onMouseDown: this.onClick,
113
+ onKeyDown: this.onKeyDown,
114
+ disabled: disabled,
115
+ "aria-label": ariaLabel,
116
+ "aria-pressed": active,
117
+ tabIndex: 0
98
118
  }, children);
99
119
  }
100
120
  }]);
@@ -110,7 +130,7 @@ exports.RawButton = RawButton;
110
130
  disabled: _propTypes["default"].bool,
111
131
  extraStyles: _propTypes["default"].object
112
132
  });
113
- var Button = (0, _reactJss["default"])(styles())(RawButton);
133
+ var Button = (0, _styles.withStyles)(styles)(RawButton);
114
134
  exports.Button = Button;
115
135
 
116
136
  var RawMarkButton = /*#__PURE__*/function (_React$Component2) {
@@ -128,6 +148,13 @@ var RawMarkButton = /*#__PURE__*/function (_React$Component2) {
128
148
 
129
149
  _this2.props.onToggle(_this2.props.mark);
130
150
  });
151
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this2), "onKeyDown", function (e) {
152
+ if (e.key === 'Enter' || e.key === ' ') {
153
+ e.preventDefault();
154
+
155
+ _this2.props.onToggle(_this2.props.mark);
156
+ }
157
+ });
131
158
  return _this2;
132
159
  }
133
160
 
@@ -137,11 +164,16 @@ var RawMarkButton = /*#__PURE__*/function (_React$Component2) {
137
164
  var _this$props2 = this.props,
138
165
  classes = _this$props2.classes,
139
166
  children = _this$props2.children,
140
- active = _this$props2.active;
167
+ active = _this$props2.active,
168
+ label = _this$props2.label;
141
169
  var names = (0, _classnames["default"])(classes.button, active && classes.active);
142
- return /*#__PURE__*/_react["default"].createElement("span", {
170
+ return /*#__PURE__*/_react["default"].createElement("button", {
143
171
  className: names,
144
- onMouseDown: this.onToggle
172
+ onMouseDown: this.onToggle,
173
+ "aria-pressed": active,
174
+ onKeyDown: this.onKeyDown,
175
+ "aria-label": label,
176
+ tabIndex: 0
145
177
  }, children);
146
178
  }
147
179
  }]);
@@ -152,10 +184,11 @@ exports.RawMarkButton = RawMarkButton;
152
184
  (0, _defineProperty2["default"])(RawMarkButton, "propTypes", {
153
185
  onToggle: _propTypes["default"].func.isRequired,
154
186
  mark: _propTypes["default"].string,
187
+ label: _propTypes["default"].string.isRequired,
155
188
  children: _propTypes["default"].oneOfType([_propTypes["default"].arrayOf(_propTypes["default"].node), _propTypes["default"].node]).isRequired,
156
189
  classes: _propTypes["default"].object.isRequired,
157
190
  active: _propTypes["default"].bool
158
191
  });
159
- var MarkButton = (0, _reactJss["default"])(styles())(RawMarkButton);
192
+ var MarkButton = (0, _styles.withStyles)(styles)(RawMarkButton);
160
193
  exports.MarkButton = MarkButton;
161
- //# sourceMappingURL=toolbar-buttons.js.map
194
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wbHVnaW5zL3Rvb2xiYXIvdG9vbGJhci1idXR0b25zLmpzeCJdLCJuYW1lcyI6WyJzdHlsZXMiLCJ0aGVtZSIsImJ1dHRvbiIsImNvbG9yIiwiZGlzcGxheSIsInBhZGRpbmciLCJiYWNrZ3JvdW5kIiwiYm9yZGVyIiwiY3Vyc29yIiwib3V0bGluZSIsInBhbGV0dGUiLCJncmV5IiwiYWN0aXZlIiwiZGlzYWJsZWQiLCJvcGFjaXR5IiwibG9nIiwiUmF3QnV0dG9uIiwicHJvcHMiLCJlIiwicHJldmVudERlZmF1bHQiLCJvbkNsaWNrIiwia2V5IiwiY2xhc3NlcyIsImNoaWxkcmVuIiwiZXh0cmFTdHlsZXMiLCJhcmlhTGFiZWwiLCJuYW1lcyIsIm9uS2V5RG93biIsIlJlYWN0IiwiQ29tcG9uZW50IiwiUHJvcFR5cGVzIiwiZnVuYyIsImlzUmVxdWlyZWQiLCJvYmplY3QiLCJvbmVPZlR5cGUiLCJhcnJheU9mIiwibm9kZSIsImJvb2wiLCJCdXR0b24iLCJSYXdNYXJrQnV0dG9uIiwib25Ub2dnbGUiLCJtYXJrIiwibGFiZWwiLCJzdHJpbmciLCJNYXJrQnV0dG9uIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7QUFFQSxJQUFNQSxNQUFNLEdBQUcsU0FBVEEsTUFBUyxDQUFDQyxLQUFEO0FBQUEsU0FBWTtBQUN6QkMsSUFBQUEsTUFBTSxFQUFFO0FBQ05DLE1BQUFBLEtBQUssRUFBRSxNQUREO0FBRU5DLE1BQUFBLE9BQU8sRUFBRSxhQUZIO0FBR05DLE1BQUFBLE9BQU8sRUFBRSxLQUhIO0FBSU5DLE1BQUFBLFVBQVUsRUFBRSxNQUpOO0FBS05DLE1BQUFBLE1BQU0sRUFBRSxNQUxGO0FBTU5DLE1BQUFBLE1BQU0sRUFBRSxTQU5GO0FBT04saUJBQVc7QUFDVEwsUUFBQUEsS0FBSyxFQUFFO0FBREUsT0FQTDtBQVVOLGlCQUFXO0FBQ1RNLFFBQUFB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Uzs7O2lDQUE1QlUsYSxlQUNRO0FBQ2pCQyxFQUFBQSxRQUFRLEVBQUVWLHNCQUFVQyxJQUFWLENBQWVDLFVBRFI7QUFFakJTLEVBQUFBLElBQUksRUFBRVgsc0JBQVVhLE1BRkM7QUFHakJELEVBQUFBLEtBQUssRUFBRVosc0JBQVVhLE1BQVYsQ0FBaUJYLFVBSFA7QUFJakJULEVBQUFBLFFBQVEsRUFBRU8sc0JBQVVJLFNBQVYsQ0FBb0IsQ0FBQ0osc0JBQVVLLE9BQVYsQ0FBa0JMLHNCQUFVTSxJQUE1QixDQUFELEVBQW9DTixzQkFBVU0sSUFBOUMsQ0FBcEIsRUFBeUVKLFVBSmxFO0FBS2pCVixFQUFBQSxPQUFPLEVBQUVRLHNCQUFVRyxNQUFWLENBQWlCRCxVQUxUO0FBTWpCcEIsRUFBQUEsTUFBTSxFQUFFa0Isc0JBQVVPO0FBTkQsQztBQTRDZCxJQUFNTyxVQUFVLEdBQUcsd0JBQVc1QyxNQUFYLEVBQW1CdUMsYUFBbkIsQ0FBbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IGRlYnVnIGZyb20gJ2RlYnVnJztcbmltcG9ydCB7IHdpdGhTdHlsZXMgfSBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9zdHlsZXMnO1xuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuXG5jb25zdCBzdHlsZXMgPSAodGhlbWUpID0+ICh7XG4gIGJ1dHRvbjoge1xuICAgIGNvbG9yOiAnZ3JleScsXG4gICAgZGlzcGxheTogJ2lubGluZS1mbGV4JyxcbiAgICBwYWRkaW5nOiAnMnB4JyxcbiAgICBiYWNrZ3JvdW5kOiAnbm9uZScsXG4gICAgYm9yZGVyOiAnbm9uZScsXG4gICAgY3Vyc29yOiAncG9pbnRlcicsXG4gICAgJyY6aG92ZXInOiB7XG4gICAgICBjb2xvcjogJ2JsYWNrJyxcbiAgICB9LFxuICAgICcmOmZvY3VzJzoge1xuICAgICAgb3V0bGluZTogYDJweCBzb2xpZCAke3RoZW1lLnBhbGV0dGUuZ3JleVs3MDBdfWAsXG4gICAgfSxcbiAgfSxcbiAgYWN0aXZlOiB7XG4gICAgY29sb3I6ICdibGFjaycsXG4gIH0sXG4gIGRpc2FibGVkOiB7XG4gICAgb3BhY2l0eTogMC43LFxuICAgIGN1cnNvcjogJ25vdC1hbGxvd2VkJyxcbiAgICAnJiA6aG92ZXInOiB7XG4gICAgICBjb2xvcjogJ2dyZXknLFxuICAgIH0sXG4gIH0sXG59KTtcblxuY29uc3QgbG9nID0gZGVidWcoJ3BpZS1lbGVtZW50czplZGl0YWJsZS1odG1sOnJhdy1idXR0b24nKTtcblxuZXhwb3J0IGNsYXNzIFJhd0J1dHRvbiBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgb25DbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBjbGFzc2VzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgY2hpbGRyZW46IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5ub2RlKSwgUHJvcFR5cGVzLm5vZGVdKS5pc1JlcXVpcmVkLFxuICAgIGFjdGl2ZTogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzYWJsZWQ6IFByb3BUeXBlcy5ib29sLFxuICAgIGV4dHJhU3R5bGVzOiBQcm9wVHlwZXMub2JqZWN0LFxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuICB9XG5cbiAgb25DbGljayA9IChlKSA9PiB7XG4gICAgbG9nKCdbb25DbGlja10nKTtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgY29uc3QgeyBvbkNsaWNrIH0gPSB0aGlzLnByb3BzO1xuICAgIG9uQ2xpY2soZSk7XG4gIH07XG5cbiAgb25LZXlEb3duID0gKGUpID0+IHtcbiAgICBpZiAoZS5rZXkgPT09ICdFbnRlcicgfHwgZS5rZXkgPT09ICcgJykge1xuICAgICAgbG9nKCdbb25LZXlEb3duXScpO1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgY29uc3QgeyBvbkNsaWNrIH0gPSB0aGlzLnByb3BzO1xuICAgICAgb25DbGljayhlKTtcbiAgICB9XG4gIH07XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgYWN0aXZlLCBjbGFzc2VzLCBjaGlsZHJlbiwgZGlzYWJsZWQsIGV4dHJhU3R5bGVzLCBhcmlhTGFiZWwgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBuYW1lcyA9IGNsYXNzTmFtZXMoY2xhc3Nlcy5idXR0b24sIHtcbiAgICAgIFtjbGFzc2VzLmFjdGl2ZV06IGFjdGl2ZSxcbiAgICAgIFtjbGFzc2VzLmRpc2FibGVkXTogZGlzYWJsZWQsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGJ1dHRvblxuICAgICAgICBzdHlsZT17ZXh0cmFTdHlsZXN9XG4gICAgICAgIGNsYXNzTmFtZT17bmFtZXN9XG4gICAgICAgIG9uTW91c2VEb3duPXt0aGlzLm9uQ2xpY2t9XG4gICAgICAgIG9uS2V5RG93bj17dGhpcy5vbktleURvd259XG4gICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgYXJpYS1sYWJlbD17YXJpYUxhYmVsfVxuICAgICAgICBhcmlhLXByZXNzZWQ9e2FjdGl2ZX1cbiAgICAgICAgdGFiSW5kZXg9ezB9XG4gICAgICA+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvYnV0dG9uPlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IEJ1dHRvbiA9IHdpdGhTdHlsZXMoc3R5bGVzKShSYXdCdXR0b24pO1xuXG5leHBvcnQgY2xhc3MgUmF3TWFya0J1dHRvbiBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgb25Ub2dnbGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgbWFyazogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBsYWJlbDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIGNoaWxkcmVuOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMubm9kZSksIFByb3BUeXBlcy5ub2RlXSkuaXNSZXF1aXJlZCxcbiAgICBjbGFzc2VzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgYWN0aXZlOiBQcm9wVHlwZXMuYm9vbCxcbiAgfTtcblxuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcbiAgfVxuXG4gIG9uVG9nZ2xlID0gKGUpID0+IHtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5wcm9wcy5vblRvZ2dsZSh0aGlzLnByb3BzLm1hcmspO1xuICB9O1xuXG4gIG9uS2V5RG93biA9IChlKSA9PiB7XG4gICAgaWYgKGUua2V5ID09PSAnRW50ZXInIHx8IGUua2V5ID09PSAnICcpIHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMucHJvcHMub25Ub2dnbGUodGhpcy5wcm9wcy5tYXJrKTtcbiAgICB9XG4gIH07XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgY2xhc3NlcywgY2hpbGRyZW4sIGFjdGl2ZSwgbGFiZWwgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBuYW1lcyA9IGNsYXNzTmFtZXMoY2xhc3Nlcy5idXR0b24sIGFjdGl2ZSAmJiBjbGFzc2VzLmFjdGl2ZSk7XG4gICAgcmV0dXJuIChcbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3NOYW1lPXtuYW1lc31cbiAgICAgICAgb25Nb3VzZURvd249e3RoaXMub25Ub2dnbGV9XG4gICAgICAgIGFyaWEtcHJlc3NlZD17YWN0aXZlfVxuICAgICAgICBvbktleURvd249e3RoaXMub25LZXlEb3dufVxuICAgICAgICBhcmlhLWxhYmVsPXtsYWJlbH1cbiAgICAgICAgdGFiSW5kZXg9ezB9XG4gICAgICA+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvYnV0dG9uPlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IE1hcmtCdXR0b24gPSB3aXRoU3R5bGVzKHN0eWxlcykoUmF3TWFya0J1dHRvbik7XG4iXX0=
@@ -49,6 +49,8 @@ var _defaultToolbar = _interopRequireDefault(require("./default-toolbar"));
49
49
 
50
50
  var _characters = require("../characters");
51
51
 
52
+ var _constants = require("../../constants");
53
+
52
54
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
53
55
 
54
56
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
@@ -59,7 +61,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re
59
61
 
60
62
  var log = (0, _debug["default"])('@pie-lib:editable-html:plugins:toolbar');
61
63
 
62
- var getCustomToolbar = function getCustomToolbar(plugin, node, value, handleDone, onDataChange) {
64
+ var getCustomToolbar = function getCustomToolbar(plugin, node, value, handleDone, getFocusedValue, onDataChange) {
63
65
  if (!plugin) {
64
66
  return;
65
67
  }
@@ -78,7 +80,7 @@ var getCustomToolbar = function getCustomToolbar(plugin, node, value, handleDone
78
80
  return plugin.toolbar.CustomToolbarComp;
79
81
  } else if (typeof plugin.toolbar.customToolbar === 'function') {
80
82
  log('deprecated - use CustomToolbarComp');
81
- return plugin.toolbar.customToolbar(node, value, handleDone, onDataChange);
83
+ return plugin.toolbar.customToolbar(node, value, handleDone, getFocusedValue, onDataChange);
82
84
  }
83
85
  };
84
86
 
@@ -177,7 +179,10 @@ var Toolbar = /*#__PURE__*/function (_React$Component) {
177
179
  getFocusedValue = _this$props3.getFocusedValue,
178
180
  isFocused = _this$props3.isFocused,
179
181
  onDone = _this$props3.onDone,
180
- toolbarRef = _this$props3.toolbarRef;
182
+ toolbarRef = _this$props3.toolbarRef,
183
+ doneButtonRef = _this$props3.doneButtonRef,
184
+ onBlur = _this$props3.onBlur,
185
+ onFocus = _this$props3.onFocus;
181
186
  var node = (0, _utils.findSingleNode)(value);
182
187
  var parentNode = (0, _utils.findParentNode)(value, node);
183
188
  log(' --------------> [render] node: ', node);
@@ -220,7 +225,7 @@ var Toolbar = /*#__PURE__*/function (_React$Component) {
220
225
  _this2.props.onDataChange(key, data);
221
226
  };
222
227
 
223
- var CustomToolbar = getCustomToolbar(plugin, node, value, handleDone, this.props.onDataChange);
228
+ var CustomToolbar = getCustomToolbar(plugin, node, value, handleDone, getFocusedValue, this.props.onDataChange);
224
229
  var filteredPlugins = plugin && plugin.filterPlugins ? plugin.filterPlugins(node, plugins) : plugins;
225
230
  log('[render] CustomToolbar: ', CustomToolbar);
226
231
  var parentExtraStyles = parentPlugin && parentPlugin.pluginStyles ? parentPlugin.pluginStyles(node, parentNode, plugin) : {};
@@ -233,15 +238,19 @@ var Toolbar = /*#__PURE__*/function (_React$Component) {
233
238
 
234
239
  var defaultToolbarShowDone = !toolbarOpts || toolbarOpts.showDone !== false;
235
240
  var hasDoneButton = defaultToolbarShowDone || customToolbarShowDone;
236
- var names = (0, _classnames["default"])(classes.toolbar, (_classNames = {}, (0, _defineProperty2["default"])(_classNames, classes.toolbarWithNoDone, !hasDoneButton), (0, _defineProperty2["default"])(_classNames, classes.toolbarTop, toolbarOpts.position === 'top'), (0, _defineProperty2["default"])(_classNames, classes.toolbarRight, toolbarOpts.alignment === 'right'), (0, _defineProperty2["default"])(_classNames, classes.focused, toolbarOpts.alwaysVisible || isFocused), (0, _defineProperty2["default"])(_classNames, classes.autoWidth, autoWidth), (0, _defineProperty2["default"])(_classNames, classes.fullWidth, !autoWidth), _classNames));
241
+ var names = (0, _classnames["default"])(classes.toolbar, _constants.PIE_TOOLBAR__CLASS, (_classNames = {}, (0, _defineProperty2["default"])(_classNames, classes.toolbarWithNoDone, !hasDoneButton), (0, _defineProperty2["default"])(_classNames, classes.toolbarTop, toolbarOpts.position === 'top'), (0, _defineProperty2["default"])(_classNames, classes.toolbarRight, toolbarOpts.alignment === 'right'), (0, _defineProperty2["default"])(_classNames, classes.focused, toolbarOpts.alwaysVisible || isFocused), (0, _defineProperty2["default"])(_classNames, classes.autoWidth, autoWidth), (0, _defineProperty2["default"])(_classNames, classes.fullWidth, !autoWidth), (0, _defineProperty2["default"])(_classNames, classes.hidden, toolbarOpts.isHidden === true), _classNames));
242
+ var customStyles = toolbarOpts.minWidth !== undefined ? {
243
+ minWidth: toolbarOpts.minWidth
244
+ } : {};
237
245
  return /*#__PURE__*/_react["default"].createElement("div", {
238
246
  className: names,
239
- style: extraStyles,
247
+ style: _objectSpread(_objectSpread({}, extraStyles), customStyles),
240
248
  onClick: this.onClick,
241
249
  ref: toolbarRef
242
250
  }, CustomToolbar ? /*#__PURE__*/_react["default"].createElement(CustomToolbar, {
243
251
  node: node,
244
252
  value: value,
253
+ getFocusedValue: getFocusedValue,
245
254
  onToolbarDone: this.onToolbarDone,
246
255
  onDataChange: handleDataChange,
247
256
  pluginProps: pluginProps
@@ -254,7 +263,10 @@ var Toolbar = /*#__PURE__*/function (_React$Component) {
254
263
  showDone: defaultToolbarShowDone,
255
264
  onDone: handleDone,
256
265
  deletable: deletable,
257
- isHtmlMode: toolbarOpts.isHtmlMode
266
+ isHtmlMode: toolbarOpts.isHtmlMode,
267
+ onFocus: onFocus,
268
+ doneButtonRef: doneButtonRef,
269
+ onBlur: onBlur
258
270
  }), /*#__PURE__*/_react["default"].createElement("div", {
259
271
  className: classes.shared
260
272
  }, deletable && /*#__PURE__*/_react["default"].createElement(_IconButton["default"], {
@@ -267,6 +279,7 @@ var Toolbar = /*#__PURE__*/function (_React$Component) {
267
279
  root: classes.iconRoot
268
280
  }
269
281
  }, /*#__PURE__*/_react["default"].createElement(_Delete["default"], null)), customToolbarShowDone && /*#__PURE__*/_react["default"].createElement(_doneButton.DoneButton, {
282
+ doneButtonRef: doneButtonRef,
270
283
  onClick: handleDone
271
284
  })));
272
285
  }
@@ -294,9 +307,14 @@ exports.Toolbar = Toolbar;
294
307
  alignment: _propTypes["default"].oneOf(['left', 'right']),
295
308
  alwaysVisible: _propTypes["default"].bool,
296
309
  ref: _propTypes["default"].func,
297
- showDone: _propTypes["default"].bool
310
+ showDone: _propTypes["default"].bool,
311
+ minWidth: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
312
+ isHidden: _propTypes["default"].bool
298
313
  }),
299
- onDataChange: _propTypes["default"].func
314
+ onDataChange: _propTypes["default"].func,
315
+ doneButtonRef: _propTypes["default"].func,
316
+ onBlur: _propTypes["default"].func,
317
+ onFocus: _propTypes["default"].func
300
318
  });
301
319
  var style = {
302
320
  toolbar: {
@@ -310,7 +328,9 @@ var style = {
310
328
  padding: '2px',
311
329
  boxShadow: '0px 1px 5px 0px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 3px 1px -2px rgba(0, 0, 0, 0.12)',
312
330
  boxSizing: 'border-box',
313
- display: 'none'
331
+ display: 'flex',
332
+ opacity: 0,
333
+ pointerEvents: 'none'
314
334
  },
315
335
  toolbarWithNoDone: {
316
336
  minWidth: '265px'
@@ -324,11 +344,15 @@ var style = {
324
344
  fullWidth: {
325
345
  width: '100%'
326
346
  },
347
+ hidden: {
348
+ visibility: 'hidden'
349
+ },
327
350
  autoWidth: {
328
351
  width: 'auto'
329
352
  },
330
353
  focused: {
331
- display: 'flex'
354
+ opacity: 1,
355
+ pointerEvents: 'auto'
332
356
  },
333
357
  iconRoot: {
334
358
  width: '28px',
@@ -349,4 +373,4 @@ var _default = (0, _styles.withStyles)(style, {
349
373
  })(Toolbar);
350
374
 
351
375
  exports["default"] = _default;
352
- //# sourceMappingURL=toolbar.js.map
376
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wbHVnaW5zL3Rvb2xiYXIvdG9vbGJhci5qc3giXSwibmFtZXMiOlsibG9nIiwiZ2V0Q3VzdG9tVG9vbGJhciIsInBsdWdpbiIsIm5vZGUiLCJ2YWx1ZSIsImhhbmRsZURvbmUiLCJnZXRGb2N1c2VkVmFsdWUiLCJvbkRhdGFDaGFuZ2UiLCJ0b29sYmFyIiwiQ3VzdG9tVG9vbGJhckNvbXAiLCJjdXN0b21Ub29sYmFyIiwiVG9vbGJhciIsInByb3BzIiwidHlwZSIsIm1hcmtzIiwic29tZSIsIm1hcmsiLCJibG9ja3MiLCJvbkNoYW5nZSIsIm9uVG9nZ2xlIiwiY2hhbmdlIiwiZSIsInByZXZlbnREZWZhdWx0IiwiZm4iLCJmaW5pc2hFZGl0aW5nIiwib25Eb25lIiwiQ2hhbmdlIiwiZGVsZXRlTm9kZSIsInBlcnNpc3QiLCJvbkRlbGV0ZUNsaWNrIiwic3RhdGUiLCJjbGFzc2VzIiwicGx1Z2lucyIsInBsdWdpblByb3BzIiwidG9vbGJhck9wdHMiLCJhdXRvV2lkdGgiLCJpc0ZvY3VzZWQiLCJ0b29sYmFyUmVmIiwiZG9uZUJ1dHRvblJlZiIsIm9uQmx1ciIsIm9uRm9jdXMiLCJwYXJlbnROb2RlIiwiZmluZCIsInAiLCJzdXBwb3J0cyIsInBhcmVudFBsdWdpbiIsImRvbmUiLCJoYW5kbGVyIiwib25Ub29sYmFyRG9uZSIsImhhbmRsZURhdGFDaGFuZ2UiLCJrZXkiLCJkYXRhIiwiQ3VzdG9tVG9vbGJhciIsImZpbHRlcmVkUGx1Z2lucyIsImZpbHRlclBsdWdpbnMiLCJwYXJlbnRFeHRyYVN0eWxlcyIsInBsdWdpblN0eWxlcyIsInBsdWdpbkV4dHJhU3R5bGVzIiwiZXh0cmFTdHlsZXMiLCJkZWxldGFibGUiLCJjdXN0b21Ub29sYmFyU2hvd0RvbmUiLCJzaG93RG9uZSIsImFsd2F5c1Zpc2libGUiLCJkZWZhdWx0VG9vbGJhclNob3dEb25lIiwiaGFzRG9uZUJ1dHRvbiIsIm5hbWVzIiwiUElFX1RPT0xCQVJfX0NMQVNTIiwidG9vbGJhcldpdGhOb0RvbmUiLCJ0b29sYmFyVG9wIiwicG9zaXRpb24iLCJ0b29sYmFyUmlnaHQiLCJhbGlnbm1lbnQiLCJmb2N1c2VkIiwiZnVsbFdpZHRoIiwiaGlkZGVuIiwiaXNIaWRkZW4iLCJjdXN0b21TdHlsZXMiLCJtaW5XaWR0aCIsInVuZGVmaW5lZCIsIm9uQ2xpY2siLCJpc0h0bWxNb2RlIiwic2hhcmVkIiwiaWNvblJvb3QiLCJvbkRlbGV0ZU1vdXNlRG93biIsInJvb3QiLCJSZWFjdCIsIkNvbXBvbmVudCIsInpJbmRleCIsIlByb3BUeXBlcyIsIm51bWJlciIsIlNsYXRlUHJvcFR5cGVzIiwiaXNSZXF1aXJlZCIsImFycmF5Iiwib2JqZWN0Iiwib25JbWFnZUNsaWNrIiwiZnVuYyIsImJvb2wiLCJzaGFwZSIsIm9uZU9mIiwicmVmIiwib25lT2ZUeXBlIiwic3RyaW5nIiwic3R5bGUiLCJjdXJzb3IiLCJqdXN0aWZ5Q29udGVudCIsImJhY2tncm91bmQiLCJtYXJnaW4iLCJwYWRkaW5nIiwiYm94U2hhZG93IiwiYm94U2l6aW5nIiwiZGlzcGxheSIsIm9wYWNpdHkiLCJwb2ludGVyRXZlbnRzIiwidG9wIiwicmlnaHQiLCJ3aWR0aCIsInZpc2liaWxpdHkiLCJoZWlnaHQiLCJ2ZXJ0aWNhbEFsaWduIiwibGFiZWwiLCJjb2xvciIsImluZGV4Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOztBQUVBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7Ozs7O0FBRUEsSUFBTUEsR0FBRyxHQUFHLHVCQUFNLHdDQUFOLENBQVo7O0FBRUEsSUFBTUMsZ0JBQWdCLEdBQUcsU0FBbkJBLGdCQUFtQixDQUFDQyxNQUFELEVBQVNDLElBQVQsRUFBZUMsS0FBZixFQUFzQkMsVUFBdEIsRUFBa0NDLGVBQWxDLEVBQW1EQyxZQUFuRCxFQUFvRTtBQUMzRixNQUFJLENB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RTtBQURGLEdBN0NLO0FBZ0RadkMsRUFBQUEsTUFBTSxFQUFFO0FBQ042QixJQUFBQSxPQUFPLEVBQUU7QUFESDtBQWhESSxDQUFkOztlQW9EZSx3QkFBV1IsS0FBWCxFQUFrQjtBQUFFbUIsRUFBQUEsS0FBSyxFQUFFO0FBQVQsQ0FBbEIsRUFBbUM5RyxPQUFuQyxDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IENoYW5nZSB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCBEZWxldGUgZnJvbSAnQG1hdGVyaWFsLXVpL2ljb25zL0RlbGV0ZSc7XG5pbXBvcnQgSWNvbkJ1dHRvbiBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9JY29uQnV0dG9uJztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCBkZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5pbXBvcnQgU2xhdGVQcm9wVHlwZXMgZnJvbSAnc2xhdGUtcHJvcC10eXBlcyc7XG5pbXBvcnQgZGVib3VuY2UgZnJvbSAnbG9kYXNoL2RlYm91bmNlJztcblxuaW1wb3J0IHsgRG9uZUJ1dHRvbiB9IGZyb20gJy4vZG9uZS1idXR0b24nO1xuXG5pbXBvcnQgeyBmaW5kU2luZ2xlTm9kZSwgZmluZFBhcmVudE5vZGUgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyB3aXRoU3R5bGVzIH0gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvc3R5bGVzJztcbmltcG9ydCBEZWZhdWx0VG9vbGJhciBmcm9tICcuL2RlZmF1bHQtdG9vbGJhcic7XG5pbXBvcnQgeyByZW1vdmVEaWFsb2dzIGFzIHJlbW92ZUNoYXJhY3RlckRpYWxvZ3MgfSBmcm9tICcuLi9jaGFyYWN0ZXJzJztcbmltcG9ydCB7IFBJRV9UT09MQkFSX19DTEFTUyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5cbmNvbnN0IGxvZyA9IGRlYnVnKCdAcGllLWxpYjplZGl0YWJsZS1odG1sOnBsdWdpbnM6dG9vbGJhcicpO1xuXG5jb25zdCBnZXRDdXN0b21Ub29sYmFyID0gKHBsdWdpbiwgbm9kZSwgdmFsdWUsIGhhbmRsZURvbmUsIGdldEZvY3VzZWRWYWx1ZSwgb25EYXRhQ2hhbmdlKSA9PiB7XG4gIGlmICghcGx1Z2luKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKCFwbHVnaW4udG9vbGJhcikge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmIChwbHVnaW4udG9vbGJhci5DdXN0b21Ub29sYmFyQ29tcCkge1xuICAgIC8qKlxuICAgICAqIFVzaW5nIGEgcHJlLWRlZmluZWQgQ29tcG9uZW50IHNob3VsZCBiZSBwcmVmZXJyZWRcbiAgICAgKiBhcyB0aGUgcmVuZGVyaW5nIG9mIGl0IChhbmQgaXQncyBjaGlsZHJlbikgY2FuIGJlIG9wdGltaXplZCBieSBSZWFjdC5cbiAgICAgKiBJZiB5b3Uga2VlcCByZS1kZWZpbmluZyB0aGUgY29tcCB3aXRoIGFuIGlubGluZSBmdW5jdGlvblxuICAgICAqIHRoZW4gcmVhY3Qgd2lsbCBoYXZlIHRvIHJlLXJlbmRlci5cbiAgICAgKi9cbiAgICByZXR1cm4gcGx1Z2luLnRvb2xiYXIuQ3VzdG9tVG9vbGJhckNvbXA7XG4gIH0gZWxzZSBpZiAodHlwZW9mIHBsdWdpbi50b29sYmFyLmN1c3RvbVRvb2xiYXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICBsb2coJ2RlcHJlY2F0ZWQgLSB1c2UgQ3VzdG9tVG9vbGJhckNvbXAnKTtcbiAgICByZXR1cm4gcGx1Z2luLnRvb2xiYXIuY3VzdG9tVG9vbGJhcihub2RlLCB2YWx1ZSwgaGFuZGxlRG9uZSwgZ2V0Rm9jdXNlZFZhbHVlLCBvbkRhdGFDaGFuZ2UpO1xuICB9XG59O1xuXG5leHBvcnQgY2xhc3MgVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgekluZGV4OiBQcm9wVHlwZXMubnVtYmVyLFxuICAgIHZhbHVlOiBTbGF0ZVByb3BUeXBlcy52YWx1ZS5pc1JlcXVpcmVkLFxuICAgIHBsdWdpbnM6IFByb3BUeXBlcy5hcnJheSxcbiAgICBwbHVnaW46IFByb3BUeXBlcy5vYmplY3QsXG4gICAgb25JbWFnZUNsaWNrOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBvbkRvbmU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdG9vbGJhclJlZjogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBjbGFzc2VzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgaXNGb2N1c2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBhdXRvV2lkdGg6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGdldEZvY3VzZWRWYWx1ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBwbHVnaW5Qcm9wczogUHJvcFR5cGVzLm9iamVjdCxcbiAgICB0b29sYmFyT3B0czogUHJvcFR5cGVzLnNoYXBlKHtcbiAgICAgIHBvc2l0aW9uOiBQcm9wVHlwZXMub25lT2YoWydib3R0b20nLCAndG9wJ10pLFxuICAgICAgYWxpZ25tZW50OiBQcm9wVHlwZXMub25lT2YoWydsZWZ0JywgJ3JpZ2h0J10pLFxuICAgICAgYWx3YXlzVmlzaWJsZTogUHJvcFR5cGVzLmJvb2wsXG4gICAgICByZWY6IFByb3BUeXBlcy5mdW5jLFxuICAgICAgc2hvd0RvbmU6IFByb3BUeXBlcy5ib29sLFxuICAgICAgbWluV2lkdGg6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5zdHJpbmcsIFByb3BUeXBlcy5udW1iZXJdKSxcbiAgICAgIGlzSGlkZGVuOiBQcm9wVHlwZXMuYm9vbCxcbiAgICB9KSxcbiAgICBvbkRhdGFDaGFuZ2U6IFByb3BUeXBlcy5mdW5jLFxuICAgIGRvbmVCdXR0b25SZWY6IFByb3BUeXBlcy5mdW5jLFxuICAgIG9uQmx1cjogUHJvcFR5cGVzLmZ1bmMsXG4gICAgb25Gb2N1czogUHJvcFR5cGVzLmZ1bmMsXG4gIH07XG5cbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG4gICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgIGNoYW5nZTogbnVsbCxcbiAgICB9O1xuICB9XG5cbiAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgcmVtb3ZlQ2hhcmFjdGVyRGlhbG9ncygpO1xuICB9XG5cbiAgaGFzTWFyayA9ICh0eXBlKSA9PiB7XG4gICAgY29uc3QgeyB2YWx1ZSB9ID0gdGhpcy5wcm9wcztcbiAgICByZXR1cm4gdmFsdWUubWFya3Muc29tZSgobWFyaykgPT4gbWFyay50eXBlID09IHR5cGUpO1xuICB9O1xuXG4gIGhhc0Jsb2NrID0gKHR5cGUpID0+IHtcbiAgICBjb25zdCB7IHZhbHVlIH0gPSB0aGlzLnByb3BzO1xuICAgIHJldHVybiB2YWx1ZS5ibG9ja3Muc29tZSgobm9kZSkgPT4gbm9kZS50eXBlID09IHR5cGUpO1xuICB9O1xuXG4gIG9uVG9nZ2xlID0gKHBsdWdpbikgPT4ge1xuICAgIGNvbnN0IHsgdmFsdWUsIG9uQ2hhbmdlIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFwbHVnaW4ub25Ub2dnbGUpIHJldHVybjtcblxuICAgIGNvbnN0IGNoYW5nZSA9IHBsdWdpbi5vblRvZ2dsZSh2YWx1ZS5jaGFuZ2UoKSk7XG4gICAgb25DaGFuZ2UoY2hhbmdlKTtcbiAgfTtcblxuICBvbkNsaWNrID0gKGUpID0+IHtcbiAgICBsb2coJ1tvbkNsaWNrXScpO1xuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgfTtcblxuICBvbkJ1dHRvbkNsaWNrID0gKGZuKSA9PiB7XG4gICAgcmV0dXJuIChlKSA9PiB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBmbigpO1xuICAgIH07XG4gIH07XG5cbiAgb25Ub29sYmFyRG9uZSA9IChjaGFuZ2UsIGZpbmlzaEVkaXRpbmcpID0+IHtcbiAgICBsb2coJ1tvblRvb2xiYXJEb25lXSBjaGFuZ2U6ICcsIGNoYW5nZSwgJ2ZpbmlzaEVkaXRpbmc6ICcsIGZpbmlzaEVkaXRpbmcpO1xuICAgIGNvbnN0IHsgb25DaGFuZ2UsIG9uRG9uZSB9ID0gdGhpcy5wcm9wcztcblxuICAgIC8vIHVzZSBoYW5kbGVyIG9ubHkgaWYgdGhpcyBpcyBhbiBhY3R1YWwgU2xhdGUgQ2hhbmdlXG4gICAgaWYgKGNoYW5nZSBpbnN0YW5jZW9mIENoYW5nZSkge1xuICAgICAgb25DaGFuZ2UoY2hhbmdlLCAoKSA9PiB7XG4gICAgICAgIGlmIChmaW5pc2hFZGl0aW5nKSB7XG4gICAgICAgICAgb25Eb25lKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoZmluaXNoRWRpdGluZykge1xuICAgICAgICBsb2coJ1tvblRvb2xiYXJDaGFuZ2VdIGNhbGwgb25Eb25lJyk7XG4gICAgICAgIG9uRG9uZSgpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICBvbkRlbGV0ZUNsaWNrID0gZGVib3VuY2UoKGUsIHBsdWdpbiwgbm9kZSwgdmFsdWUsIG9uQ2hhbmdlKSA9PiBwbHVnaW4uZGVsZXRlTm9kZShlLCBub2RlLCB2YWx1ZSwgb25DaGFuZ2UpLCA1MDApO1xuXG4gIG9uRGVsZXRlTW91c2VEb3duID0gKGUsIHBsdWdpbiwgbm9kZSwgdmFsdWUsIG9uQ2hhbmdlKSA9PiB7XG4gICAgZS5wZXJzaXN0KCk7XG4gICAgdGhpcy5vbkRlbGV0ZUNsaWNrKGUsIHBsdWdpbiwgbm9kZSwgdmFsdWUsIG9uQ2hhbmdlKTtcbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgY2xhc3NlcyxcbiAgICAgIHBsdWdpbnMsXG4gICAgICBwbHVnaW5Qcm9wcyxcbiAgICAgIHRvb2xiYXJPcHRzLFxuICAgICAgdmFsdWUsXG4gICAgICBhdXRvV2lkdGgsXG4gICAgICBvbkNoYW5nZSxcbiAgICAgIGdldEZvY3VzZWRWYWx1ZSxcbiAgICAgIGlzRm9jdXNlZCxcbiAgICAgIG9uRG9uZSxcbiAgICAgIHRvb2xiYXJSZWYsXG4gICAgICBkb25lQnV0dG9uUmVmLFxuICAgICAgb25CbHVyLFxuICAgICAgb25Gb2N1cyxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IG5vZGUgPSBmaW5kU2luZ2xlTm9kZSh2YWx1ZSk7XG4gICAgY29uc3QgcGFyZW50Tm9kZSA9IGZpbmRQYXJlbnROb2RlKHZhbHVlLCBub2RlKTtcblxuICAgIGxvZygnIC0tLS0tLS0tLS0tLS0tPiBbcmVuZGVyXSBub2RlOiAnLCBub2RlKTtcbiAgICBsb2coJ1tyZW5kZXJdIG5vZGU6ICcsIG5vZGUpO1xuXG4gICAgY29uc3QgcGx1Z2luID0gcGx1Z2lucy5maW5kKChwKSA9PiB7XG4gICAgICBpZiAoIW5vZGUpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAocC50b29sYmFyKSB7XG4gICAgICAgIHJldHVybiBwLnRvb2xiYXIuc3VwcG9ydHMgJiYgcC50b29sYmFyLnN1cHBvcnRzKG5vZGUsIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBwYXJlbnRQbHVnaW4gPSBwbHVnaW5zLmZpbmQoKHApID0+IHtcbiAgICAgIGlmICghcGFyZW50Tm9kZSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChwLnRvb2xiYXIpIHtcbiAgICAgICAgcmV0dXJuIHAudG9vbGJhci5zdXBwb3J0cyAmJiBwLnRvb2xiYXIuc3VwcG9ydHMocGFyZW50Tm9kZSwgdmFsdWUpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgbG9nKCdbcmVuZGVyXSBwbHVnaW46ICcsIHBsdWdpbik7XG5cbiAgICBjb25zdCBoYW5kbGVEb25lID0gKGNoYW5nZSwgZG9uZSkgPT4ge1xuICAgICAgbGV0IGhhbmRsZXIgPSBvbkRvbmU7XG5cbiAgICAgIGlmIChwbHVnaW4gJiYgcGx1Z2luLnRvb2xiYXIgJiYgcGx1Z2luLnRvb2xiYXIuY3VzdG9tVG9vbGJhcikge1xuICAgICAgICBoYW5kbGVyID0gdGhpcy5vblRvb2xiYXJEb25lO1xuICAgICAgfVxuXG4gICAgICBoYW5kbGVyKGNoYW5nZSwgZG9uZSk7XG5cbiAgICAgIGlmIChwYXJlbnRQbHVnaW4gJiYgcGFyZW50UGx1Z2luLmhhbmRsZURvbmUpIHtcbiAgICAgICAgcGFyZW50UGx1Z2luLmhhbmRsZURvbmUodmFsdWUsIG5vZGUsIHBsdWdpbiwgb25DaGFuZ2UpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVEYXRhQ2hhbmdlID0gKGtleSwgZGF0YSkgPT4ge1xuICAgICAgdGhpcy5wcm9wcy5vbkRhdGFDaGFuZ2Uoa2V5LCBkYXRhKTtcbiAgICB9O1xuXG4gICAgY29uc3QgQ3VzdG9tVG9vbGJhciA9IGdldEN1c3RvbVRvb2xiYXIocGx1Z2luLCBub2RlLCB2YWx1ZSwgaGFuZGxlRG9uZSwgZ2V0Rm9jdXNlZFZhbHVlLCB0aGlzLnByb3BzLm9uRGF0YUNoYW5nZSk7XG5cbiAgICBjb25zdCBmaWx0ZXJlZFBsdWdpbnMgPSBwbHVnaW4gJiYgcGx1Z2luLmZpbHRlclBsdWdpbnMgPyBwbHVnaW4uZmlsdGVyUGx1Z2lucyhub2RlLCBwbHVnaW5zKSA6IHBsdWdpbnM7XG5cbiAgICBsb2coJ1tyZW5kZXJdIEN1c3RvbVRvb2xiYXI6ICcsIEN1c3RvbVRvb2xiYXIpO1xuICAgIGNvbnN0IHBhcmVudEV4dHJhU3R5bGVzID1cbiAgICAgIHBhcmVudFBsdWdpbiAmJiBwYXJlbnRQbHVnaW4ucGx1Z2luU3R5bGVzID8gcGFyZW50UGx1Z2luLnBsdWdpblN0eWxlcyhub2RlLCBwYXJlbnROb2RlLCBwbHVnaW4pIDoge307XG4gICAgY29uc3QgcGx1Z2luRXh0cmFTdHlsZXMgPSBwbHVnaW4gJiYgcGx1Z2luLnBsdWdpblN0eWxlcyA/IHBsdWdpbi5wbHVnaW5TdHlsZXMobm9kZSwgcGFyZW50Tm9kZSwgcGx1Z2luKSA6IHt9O1xuICAgIGNvbnN0IGV4dHJhU3R5bGVzID0ge1xuICAgICAgLi4ucGx1Z2luRXh0cmFTdHlsZXMsXG4gICAgICAuLi5wYXJlbnRFeHRyYVN0eWxlcyxcbiAgICB9O1xuXG4gICAgY29uc3QgZGVsZXRhYmxlID0gbm9kZSAmJiBwbHVnaW4gJiYgcGx1Z2luLmRlbGV0ZU5vZGU7XG4gICAgY29uc3QgY3VzdG9tVG9vbGJhclNob3dEb25lID1cbiAgICAgIG5vZGUgJiYgcGx1Z2luICYmIHBsdWdpbi50b29sYmFyICYmIHBsdWdpbi50b29sYmFyLnNob3dEb25lICYmICF0b29sYmFyT3B0cy5hbHdheXNWaXNpYmxlO1xuXG4gICAgLy8gSWYgdGhlcmUgaXMgYSB0b29sYmFyT3B0cyB3ZSBjaGVjayBpZiB0aGUgc2hvd0RvbmUgaXMgbm90IGVxdWFsIHRvIGZhbHNlXG4gICAgY29uc3QgZGVmYXVsdFRvb2xiYXJTaG93RG9uZSA9ICF0b29sYmFyT3B0cyB8fCB0b29sYmFyT3B0cy5zaG93RG9uZSAhPT0gZmFsc2U7XG5cbiAgICBjb25zdCBoYXNEb25lQnV0dG9uID0gZGVmYXVsdFRvb2xiYXJTaG93RG9uZSB8fCBjdXN0b21Ub29sYmFyU2hvd0RvbmU7XG5cbiAgICBjb25zdCBuYW1lcyA9IGNsYXNzTmFtZXMoY2xhc3Nlcy50b29sYmFyLCBQSUVfVE9PTEJBUl9fQ0xBU1MsIHtcbiAgICAgIFtjbGFzc2VzLnRvb2xiYXJXaXRoTm9Eb25lXTogIWhhc0RvbmVCdXR0b24sXG4gICAgICBbY2xhc3Nlcy50b29sYmFyVG9wXTogdG9vbGJhck9wdHMucG9zaXRpb24gPT09ICd0b3AnLFxuICAgICAgW2NsYXNzZXMudG9vbGJhclJpZ2h0XTogdG9vbGJhck9wdHMuYWxpZ25tZW50ID09PSAncmlnaHQnLFxuICAgICAgW2NsYXNzZXMuZm9jdXNlZF06IHRvb2xiYXJPcHRzLmFsd2F5c1Zpc2libGUgfHwgaXNGb2N1c2VkLFxuICAgICAgW2NsYXNzZXMuYXV0b1dpZHRoXTogYXV0b1dpZHRoLFxuICAgICAgW2NsYXNzZXMuZnVsbFdpZHRoXTogIWF1dG9XaWR0aCxcbiAgICAgIFtjbGFzc2VzLmhpZGRlbl06IHRvb2xiYXJPcHRzLmlzSGlkZGVuID09PSB0cnVlXG4gICAgfSk7XG4gICAgY29uc3QgY3VzdG9tU3R5bGVzID0gdG9vbGJhck9wdHMubWluV2lkdGggIT09IHVuZGVmaW5lZCA/IHsgbWluV2lkdGg6IHRvb2xiYXJPcHRzLm1pbldpZHRoIH0gOiB7fTtcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT17bmFtZXN9IHN0eWxlPXt7IC4uLmV4dHJhU3R5bGVzLCAuLi5jdXN0b21TdHlsZXMgfX0gb25DbGljaz17dGhpcy5vbkNsaWNrfSByZWY9e3Rvb2xiYXJSZWZ9PlxuICAgICAgICB7Q3VzdG9tVG9vbGJhciA/IChcbiAgICAgICAgICA8Q3VzdG9tVG9vbGJhclxuICAgICAgICAgICAgbm9kZT17bm9kZX1cbiAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgIGdldEZvY3VzZWRWYWx1ZT17Z2V0Rm9jdXNlZFZhbHVlfVxuICAgICAgICAgICAgb25Ub29sYmFyRG9uZT17dGhpcy5vblRvb2xiYXJEb25lfVxuICAgICAgICAgICAgb25EYXRhQ2hhbmdlPXtoYW5kbGVEYXRhQ2hhbmdlfVxuICAgICAgICAgICAgcGx1Z2luUHJvcHM9e3BsdWdpblByb3BzfVxuICAgICAgICAgIC8+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPERlZmF1bHRUb29sYmFyXG4gICAgICAgICAgICBwbHVnaW5zPXtmaWx0ZXJlZFBsdWdpbnN9XG4gICAgICAgICAgICBwbHVnaW5Qcm9wcz17cGx1Z2luUHJvcHN9XG4gICAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgICBvbkNoYW5nZT17b25DaGFuZ2V9XG4gICAgICAgICAgICBnZXRGb2N1c2VkVmFsdWU9e2dldEZvY3VzZWRWYWx1ZX1cbiAgICAgICAgICAgIHNob3dEb25lPXtkZWZhdWx0VG9vbGJhclNob3dEb25lfVxuICAgICAgICAgICAgb25Eb25lPXtoYW5kbGVEb25lfVxuICAgICAgICAgICAgZGVsZXRhYmxlPXtkZWxldGFibGV9XG4gICAgICAgICAgICBpc0h0bWxNb2RlPXt0b29sYmFyT3B0cy5pc0h0bWxNb2RlfVxuICAgICAgICAgICAgb25Gb2N1cz17b25Gb2N1c31cbiAgICAgICAgICAgIGRvbmVCdXR0b25SZWY9e2RvbmVCdXR0b25SZWZ9XG4gICAgICAgICAgICBvbkJsdXI9e29uQmx1cn1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbGFzc2VzLnNoYXJlZH0+XG4gICAgICAgICAge2RlbGV0YWJsZSAmJiAoXG4gICAgICAgICAgICA8SWNvbkJ1dHRvblxuICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiRGVsZXRlXCJcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLmljb25Sb290fVxuICAgICAgICAgICAgICBvbk1vdXNlRG93bj17KGUpID0+IHRoaXMub25EZWxldGVNb3VzZURvd24oZSwgcGx1Z2luLCBub2RlLCB2YWx1ZSwgb25DaGFuZ2UpfVxuICAgICAgICAgICAgICBjbGFzc2VzPXt7XG4gICAgICAgICAgICAgICAgcm9vdDogY2xhc3Nlcy5pY29uUm9vdCxcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPERlbGV0ZSAvPlxuICAgICAgICAgICAgPC9JY29uQnV0dG9uPlxuICAgICAgICAgICl9XG4gICAgICAgICAge2N1c3RvbVRvb2xiYXJTaG93RG9uZSAmJiA8RG9uZUJ1dHRvbiBkb25lQnV0dG9uUmVmPXtkb25lQnV0dG9uUmVmfSBvbkNsaWNrPXtoYW5kbGVEb25lfSAvPn1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG59XG5cbmNvbnN0IHN0eWxlID0ge1xuICB0b29sYmFyOiB7XG4gICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgekluZGV4OiAxMCxcbiAgICBjdXJzb3I6ICdwb2ludGVyJyxcbiAgICBqdXN0aWZ5Q29udGVudDogJ3NwYWNlLWJldHdlZW4nLFxuICAgIGJhY2tncm91bmQ6ICd2YXIoLS1lZGl0YWJsZS1odG1sLXRvb2xiYXItYmcsICNlZmVmZWYpJyxcbiAgICBtaW5XaWR0aDogJzI4MHB4JyxcbiAgICBtYXJnaW46ICc1cHggMCAwIDAnLFxuICAgIHBhZGRpbmc6ICcycHgnLFxuICAgIGJveFNoYWRvdzpcbiAgICAgICcwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMTIpJyxcbiAgICBib3hTaXppbmc6ICdib3JkZXItYm94JyxcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgb3BhY2l0eTogMCxcbiAgICBwb2ludGVyRXZlbnRzOiAnbm9uZSdcbiAgfSxcbiAgdG9vbGJhcldpdGhOb0RvbmU6IHtcbiAgICBtaW5XaWR0aDogJzI2NXB4JyxcbiAgfSxcbiAgdG9vbGJhclRvcDoge1xuICAgIHRvcDogJy00NXB4JyxcbiAgfSxcbiAgdG9vbGJhclJpZ2h0OiB7XG4gICAgcmlnaHQ6IDAsXG4gIH0sXG4gIGZ1bGxXaWR0aDoge1xuICAgIHdpZHRoOiAnMTAwJScsXG4gIH0sXG4gIGhpZGRlbjoge1xuICAgIHZpc2liaWxpdHk6ICdoaWRkZW4nXG4gIH0sXG4gIGF1dG9XaWR0aDoge1xuICAgIHdpZHRoOiAnYXV0bycsXG4gIH0sXG4gIGZvY3VzZWQ6IHtcbiAgICBvcGFjaXR5OiAxLFxuICAgIHBvaW50ZXJFdmVudHM6ICdhdXRvJ1xuICB9LFxuICBpY29uUm9vdDoge1xuICAgIHdpZHRoOiAnMjhweCcsXG4gICAgaGVpZ2h0OiAnMjhweCcsXG4gICAgcGFkZGluZzogJzRweCcsXG4gICAgdmVydGljYWxBbGlnbjogJ3RvcCcsXG4gIH0sXG4gIGxhYmVsOiB7XG4gICAgY29sb3I6ICd2YXIoLS1lZGl0YWJsZS1odG1sLXRvb2xiYXItY2hlY2ssICMwMGJiMDApJyxcbiAgfSxcbiAgc2hhcmVkOiB7XG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICB9LFxufTtcbmV4cG9ydCBkZWZhdWx0IHdpdGhTdHlsZXMoc3R5bGUsIHsgaW5kZXg6IDEwMDAgfSkoVG9vbGJhcik7XG4iXX0=
@@ -59,4 +59,4 @@ var hasNode = function hasNode(_ref, type) {
59
59
  };
60
60
 
61
61
  exports.hasNode = hasNode;
62
- //# sourceMappingURL=utils.js.map
62
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wbHVnaW5zL3V0aWxzLmpzIl0sIm5hbWVzIjpbImZpbmRTaW5nbGVOb2RlIiwidmFsdWUiLCJpc0NvbGxhcHNlZCIsInN0YXJ0S2V5IiwiaW5saW5lIiwiZG9jdW1lbnQiLCJnZXRDbG9zZXN0SW5saW5lIiwiYmxvY2siLCJnZXRDbG9zZXN0QmxvY2siLCJmaW5kUGFyZW50Tm9kZSIsIm5vZGUiLCJnZXRQYXJlbnQiLCJrZXkiLCJoYXNNYXJrIiwidHlwZSIsIm1hcmtzIiwic29tZSIsIm1hcmsiLCJoYXNCbG9jayIsImJsb2NrcyIsImhhc05vZGUiLCJub2RlcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFPLElBQU1BLGNBQWMsR0FBRyxTQUFqQkEsY0FBaUIsQ0FBQ0MsS0FBRCxFQUFXO0FBQ3ZDLE1BQUksQ0FBQ0EsS0FBRCxJQUFVLENBQUNBLEtBQUssQ0FBQ0MsV0FBakIsSUFBZ0MsQ0FBQ0QsS0FBSyxDQUFDRSxRQUEzQyxFQUFxRDtBQUNuRDtBQUNEOztBQUVELE1BQU1DLE1BQU0sR0FBR0gsS0FBSyxDQUFDSSxRQUFOLENBQWVDLGdCQUFmLENBQWdDTCxLQUFLLENBQUNFLFFBQXRDLENBQWY7O0FBRUEsTUFBSUMsTUFBSixFQUFZO0FBQ1YsV0FBT0EsTUFBUDtBQUNEOztBQUVELE1BQU1HLEtBQUssR0FBR04sS0FBSyxDQUFDSSxRQUFOLENBQWVHLGVBQWYsQ0FBK0JQLEtBQUssQ0FBQ0UsUUFBckMsQ0FBZDs7QUFFQSxNQUFJSSxLQUFKLEVBQVc7QUFDVCxXQUFPQSxLQUFQO0FBQ0Q7QUFDRixDQWhCTTs7OztBQWtCQSxJQUFNRSxjQUFjLEdBQUcsU0FBakJBLGNBQWlCLENBQUNSLEtBQUQsRUFBUVMsSUFBUixFQUFpQjtBQUM3QyxNQUFJLENBQUNULEtBQUQsSUFBVSxDQUFDUyxJQUFmLEVBQXFCO0FBQ25CO0FBQ0Q7O0FBRUQsU0FBT1QsS0FBSyxDQUFDSSxRQUFOLENBQWVNLFNBQWYsQ0FBeUJELElBQUksQ0FBQ0UsR0FBOUIsQ0FBUDtBQUNELENBTk07Ozs7QUFRQSxJQUFNQyxPQUFPLEdBQUcsU0FBVkEsT0FBVSxDQUFDWixLQUFELEVBQVFhLElBQVI7QUFBQSxTQUFpQmIsS0FBSyxJQUFJQSxLQUFLLENBQUNjLEtBQU4sQ0FBWUMsSUFBWixDQUFpQixVQUFDQyxJQUFEO0FBQUEsV0FBVUEsSUFBSSxDQUFDSCxJQUFMLElBQWFBLElBQXZCO0FBQUEsR0FBakIsQ0FBMUI7QUFBQSxDQUFoQjs7OztBQUVBLElBQU1JLFFBQVEsR0FBRyxTQUFYQSxRQUFXLENBQUNqQixLQUFELEVBQVFhLElBQVI7QUFBQSxTQUFpQmIsS0FBSyxJQUFJQSxLQUFLLENBQUNrQixNQUFOLENBQWFILElBQWIsQ0FBa0IsVUFBQ04sSUFBRDtBQUFBLFdBQVVBLElBQUksQ0FBQ0ksSUFBTCxJQUFhQSxJQUF2QjtBQUFBLEdBQWxCLENBQTFCO0FBQUEsQ0FBakI7Ozs7QUFFQSxJQUFNTSxPQUFPLEdBQUcsU0FBVkEsT0FBVSxPQUFlTixJQUFmO0FBQUEsTUFBR1QsUUFBSCxRQUFHQSxRQUFIO0FBQUEsU0FBd0JBLFFBQVEsSUFBSUEsUUFBUSxDQUFDZ0IsS0FBVCxDQUFlTCxJQUFmLENBQW9CLFVBQUNOLElBQUQ7QUFBQSxXQUFVQSxJQUFJLENBQUNJLElBQUwsSUFBYUEsSUFBdkI7QUFBQSxHQUFwQixDQUFwQztBQUFBLENBQWhCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGZpbmRTaW5nbGVOb2RlID0gKHZhbHVlKSA9PiB7XG4gIGlmICghdmFsdWUgfHwgIXZhbHVlLmlzQ29sbGFwc2VkIHx8ICF2YWx1ZS5zdGFydEtleSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGlubGluZSA9IHZhbHVlLmRvY3VtZW50LmdldENsb3Nlc3RJbmxpbmUodmFsdWUuc3RhcnRLZXkpO1xuXG4gIGlmIChpbmxpbmUpIHtcbiAgICByZXR1cm4gaW5saW5lO1xuICB9XG5cbiAgY29uc3QgYmxvY2sgPSB2YWx1ZS5kb2N1bWVudC5nZXRDbG9zZXN0QmxvY2sodmFsdWUuc3RhcnRLZXkpO1xuXG4gIGlmIChibG9jaykge1xuICAgIHJldHVybiBibG9jaztcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGZpbmRQYXJlbnROb2RlID0gKHZhbHVlLCBub2RlKSA9PiB7XG4gIGlmICghdmFsdWUgfHwgIW5vZGUpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICByZXR1cm4gdmFsdWUuZG9jdW1lbnQuZ2V0UGFyZW50KG5vZGUua2V5KTtcbn07XG5cbmV4cG9ydCBjb25zdCBoYXNNYXJrID0gKHZhbHVlLCB0eXBlKSA9PiB2YWx1ZSAmJiB2YWx1ZS5tYXJrcy5zb21lKChtYXJrKSA9PiBtYXJrLnR5cGUgPT0gdHlwZSk7XG5cbmV4cG9ydCBjb25zdCBoYXNCbG9jayA9ICh2YWx1ZSwgdHlwZSkgPT4gdmFsdWUgJiYgdmFsdWUuYmxvY2tzLnNvbWUoKG5vZGUpID0+IG5vZGUudHlwZSA9PSB0eXBlKTtcblxuZXhwb3J0IGNvbnN0IGhhc05vZGUgPSAoeyBkb2N1bWVudCB9LCB0eXBlKSA9PiBkb2N1bWVudCAmJiBkb2N1bWVudC5ub2Rlcy5zb21lKChub2RlKSA9PiBub2RlLnR5cGUgPT0gdHlwZSk7XG4iXX0=