@pie-lib/editable-html-tip-tap 1.0.20 → 1.0.21-next.6057

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 (103) hide show
  1. package/CHANGELOG.md +7 -73
  2. package/LICENSE.md +5 -0
  3. package/NEXT.CHANGELOG.json +1 -0
  4. package/lib/components/CharacterPicker.js +20 -60
  5. package/lib/components/CharacterPicker.js.map +1 -1
  6. package/lib/components/EditableHtml.js +50 -121
  7. package/lib/components/EditableHtml.js.map +1 -1
  8. package/lib/components/MenuBar.js +96 -128
  9. package/lib/components/MenuBar.js.map +1 -1
  10. package/lib/components/TiptapContainer.js +162 -45
  11. package/lib/components/TiptapContainer.js.map +1 -1
  12. package/lib/components/characters/characterUtils.js +4 -7
  13. package/lib/components/characters/characterUtils.js.map +1 -1
  14. package/lib/components/characters/custom-popper.js +22 -51
  15. package/lib/components/characters/custom-popper.js.map +1 -1
  16. package/lib/components/common/done-button.js +17 -36
  17. package/lib/components/common/done-button.js.map +1 -1
  18. package/lib/components/common/toolbar-buttons.js +57 -107
  19. package/lib/components/common/toolbar-buttons.js.map +1 -1
  20. package/lib/components/icons/CssIcon.js +14 -26
  21. package/lib/components/icons/CssIcon.js.map +1 -1
  22. package/lib/components/icons/RespArea.js +23 -46
  23. package/lib/components/icons/RespArea.js.map +1 -1
  24. package/lib/components/icons/TableIcons.js +20 -36
  25. package/lib/components/icons/TableIcons.js.map +1 -1
  26. package/lib/components/icons/TextAlign.js +16 -53
  27. package/lib/components/icons/TextAlign.js.map +1 -1
  28. package/lib/components/image/AltDialog.js +18 -49
  29. package/lib/components/image/AltDialog.js.map +1 -1
  30. package/lib/components/image/ImageToolbar.js +50 -90
  31. package/lib/components/image/ImageToolbar.js.map +1 -1
  32. package/lib/components/image/InsertImageHandler.js +17 -35
  33. package/lib/components/image/InsertImageHandler.js.map +1 -1
  34. package/lib/components/media/MediaDialog.js +195 -309
  35. package/lib/components/media/MediaDialog.js.map +1 -1
  36. package/lib/components/media/MediaToolbar.js +39 -66
  37. package/lib/components/media/MediaToolbar.js.map +1 -1
  38. package/lib/components/media/MediaWrapper.js +30 -56
  39. package/lib/components/media/MediaWrapper.js.map +1 -1
  40. package/lib/components/respArea/DragInTheBlank/DragInTheBlank.js +21 -36
  41. package/lib/components/respArea/DragInTheBlank/DragInTheBlank.js.map +1 -1
  42. package/lib/components/respArea/DragInTheBlank/choice.js +215 -262
  43. package/lib/components/respArea/DragInTheBlank/choice.js.map +1 -1
  44. package/lib/components/respArea/ExplicitConstructedResponse.js +11 -33
  45. package/lib/components/respArea/ExplicitConstructedResponse.js.map +1 -1
  46. package/lib/components/respArea/InlineDropdown.js +19 -41
  47. package/lib/components/respArea/InlineDropdown.js.map +1 -1
  48. package/lib/components/respArea/ToolbarIcon.js +21 -45
  49. package/lib/components/respArea/ToolbarIcon.js.map +1 -1
  50. package/lib/constants.js +3 -5
  51. package/lib/constants.js.map +1 -1
  52. package/lib/extensions/component.js +94 -148
  53. package/lib/extensions/component.js.map +1 -1
  54. package/lib/extensions/css.js +9 -44
  55. package/lib/extensions/css.js.map +1 -1
  56. package/lib/extensions/custom-toolbar-wrapper.js +66 -94
  57. package/lib/extensions/custom-toolbar-wrapper.js.map +1 -1
  58. package/lib/extensions/extended-table.js +2 -6
  59. package/lib/extensions/extended-table.js.map +1 -1
  60. package/lib/extensions/image.js +4 -17
  61. package/lib/extensions/image.js.map +1 -1
  62. package/lib/extensions/index.js +13 -23
  63. package/lib/extensions/index.js.map +1 -1
  64. package/lib/extensions/math.js +45 -96
  65. package/lib/extensions/math.js.map +1 -1
  66. package/lib/extensions/media.js +21 -59
  67. package/lib/extensions/media.js.map +1 -1
  68. package/lib/extensions/responseArea.js +43 -89
  69. package/lib/extensions/responseArea.js.map +1 -1
  70. package/lib/index.js +9 -11
  71. package/lib/index.js.map +1 -1
  72. package/lib/styles/editorContainerStyles.js +2 -7
  73. package/lib/styles/editorContainerStyles.js.map +1 -1
  74. package/lib/theme.js +2 -3
  75. package/lib/theme.js.map +1 -1
  76. package/lib/utils/size.js +2 -10
  77. package/lib/utils/size.js.map +1 -1
  78. package/package.json +15 -13
  79. package/src/components/EditableHtml.jsx +21 -33
  80. package/src/components/MenuBar.jsx +66 -37
  81. package/src/components/TiptapContainer.jsx +133 -34
  82. package/src/components/characters/custom-popper.js +18 -28
  83. package/src/components/common/done-button.jsx +15 -26
  84. package/src/components/common/toolbar-buttons.jsx +28 -44
  85. package/src/components/icons/CssIcon.jsx +11 -13
  86. package/src/components/icons/RespArea.jsx +16 -16
  87. package/src/components/icons/TableIcons.jsx +15 -16
  88. package/src/components/icons/TextAlign.jsx +3 -3
  89. package/src/components/image/AltDialog.jsx +6 -6
  90. package/src/components/image/ImageToolbar.jsx +28 -29
  91. package/src/components/media/MediaDialog.js +61 -78
  92. package/src/components/media/MediaToolbar.jsx +30 -37
  93. package/src/components/media/MediaWrapper.jsx +12 -16
  94. package/src/components/respArea/DragInTheBlank/DragInTheBlank.jsx +5 -4
  95. package/src/components/respArea/DragInTheBlank/choice.jsx +191 -185
  96. package/src/components/respArea/ToolbarIcon.jsx +13 -15
  97. package/src/extensions/component.jsx +61 -89
  98. package/src/extensions/css.js +6 -5
  99. package/src/extensions/custom-toolbar-wrapper.jsx +61 -81
  100. package/src/extensions/index.js +2 -2
  101. package/src/index.jsx +2 -2
  102. package/lib/__tests__/utils.js +0 -106
  103. package/src/__tests__/utils.js +0 -36
@@ -1,99 +1,79 @@
1
1
  import React, { useCallback } from 'react';
2
- import IconButton from '@material-ui/core/IconButton';
3
- import Delete from '@material-ui/icons/Delete';
2
+ import IconButton from '@mui/material/IconButton';
3
+ import Delete from '@mui/icons-material/Delete';
4
4
  import classNames from 'classnames';
5
5
  import { PIE_TOOLBAR__CLASS } from '../constants';
6
- import { withStyles } from '@material-ui/core/styles';
6
+ import { styled } from '@mui/material/styles';
7
7
  import { DoneButton } from '../components/common/done-button';
8
8
 
9
+ const StyledToolbar = styled('div', {
10
+ shouldForwardProp: (prop) => !['showDone', 'toolbarAlignment', 'isFocused', 'autoWidth', 'isHidden'].includes(prop),
11
+ })(({ showDone, toolbarAlignment, isFocused, autoWidth, isHidden }) => ({
12
+ position: 'absolute',
13
+ zIndex: 10,
14
+ cursor: 'pointer',
15
+ justifyContent: 'space-between',
16
+ background: 'var(--editable-html-toolbar-bg, #efefef)',
17
+ minWidth: showDone ? '280px' : '265px',
18
+ margin: '5px 0 0 0',
19
+ padding: '2px',
20
+ boxShadow:
21
+ '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)',
22
+ boxSizing: 'border-box',
23
+ display: 'flex',
24
+ opacity: 1,
25
+ ...(toolbarAlignment === 'right' && {
26
+ right: 0,
27
+ }),
28
+ ...(autoWidth
29
+ ? {
30
+ width: 'auto',
31
+ }
32
+ : {
33
+ width: '100%',
34
+ }),
35
+ ...(isHidden && {
36
+ visibility: 'hidden',
37
+ }),
38
+ }));
39
+
40
+ const StyledIconButton = styled(IconButton)({
41
+ width: '28px',
42
+ height: '28px',
43
+ padding: '4px',
44
+ verticalAlign: 'top',
45
+ });
46
+
47
+ const SharedContainer = styled('div')({
48
+ display: 'flex',
49
+ });
50
+
9
51
  function CustomToolbarWrapper(props) {
10
- const {
11
- children,
12
- deletable,
13
- classes,
14
- toolbarOpts,
15
- autoWidth,
16
- isFocused,
17
- doneButtonRef,
18
- onDelete,
19
- showDone,
20
- onDone,
21
- } = props;
22
- const names = classNames(classes.toolbar, PIE_TOOLBAR__CLASS, {
23
- [classes.toolbarWithNoDone]: !showDone,
24
- [classes.toolbarRight]: toolbarOpts.alignment === 'right',
25
- [classes.focused]: toolbarOpts.alwaysVisible || isFocused,
26
- [classes.autoWidth]: autoWidth,
27
- [classes.fullWidth]: !autoWidth,
28
- [classes.hidden]: toolbarOpts.isHidden === true,
29
- });
52
+ const { children, deletable, toolbarOpts, autoWidth, isFocused, doneButtonRef, onDelete, showDone, onDone } = props;
30
53
  const customStyles = toolbarOpts.minWidth !== undefined ? { minWidth: toolbarOpts.minWidth } : {};
31
54
 
32
55
  return (
33
- <div className={names} style={{ ...customStyles }}>
56
+ <StyledToolbar
57
+ className={PIE_TOOLBAR__CLASS}
58
+ showDone={showDone}
59
+ toolbarAlignment={toolbarOpts.alignment}
60
+ isFocused={toolbarOpts.alwaysVisible || isFocused}
61
+ autoWidth={autoWidth}
62
+ isHidden={toolbarOpts.isHidden === true}
63
+ style={{ ...customStyles }}
64
+ >
34
65
  {children}
35
66
 
36
- <div className={classes.shared}>
67
+ <SharedContainer>
37
68
  {deletable && (
38
- <IconButton
39
- aria-label="Delete"
40
- className={classes.iconRoot}
41
- onMouseDown={(e) => onDelete?.(e)}
42
- classes={{
43
- root: classes.iconRoot,
44
- }}
45
- >
69
+ <StyledIconButton aria-label="Delete" onMouseDown={(e) => onDelete?.(e)}>
46
70
  <Delete />
47
- </IconButton>
71
+ </StyledIconButton>
48
72
  )}
49
73
  {showDone && <DoneButton doneButtonRef={doneButtonRef} onClick={onDone} />}
50
- </div>
51
- </div>
74
+ </SharedContainer>
75
+ </StyledToolbar>
52
76
  );
53
77
  }
54
78
 
55
- const style = {
56
- toolbar: {
57
- position: 'absolute',
58
- zIndex: 10,
59
- cursor: 'pointer',
60
- justifyContent: 'space-between',
61
- background: 'var(--editable-html-toolbar-bg, #efefef)',
62
- minWidth: '280px',
63
- margin: '5px 0 0 0',
64
- padding: '2px',
65
- boxShadow:
66
- '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)',
67
- boxSizing: 'border-box',
68
- display: 'flex',
69
- opacity: 1,
70
- },
71
- toolbarWithNoDone: {
72
- minWidth: '265px',
73
- },
74
- toolbarRight: {
75
- right: 0,
76
- },
77
- fullWidth: {
78
- width: '100%',
79
- },
80
- hidden: {
81
- visibility: 'hidden',
82
- },
83
- autoWidth: {
84
- width: 'auto',
85
- },
86
- iconRoot: {
87
- width: '28px',
88
- height: '28px',
89
- padding: '4px',
90
- verticalAlign: 'top',
91
- },
92
- label: {
93
- color: 'var(--editable-html-toolbar-check, #00bb00)',
94
- },
95
- shared: {
96
- display: 'flex',
97
- },
98
- };
99
- export default withStyles(style, { index: 1000 })(CustomToolbarWrapper);
79
+ export default CustomToolbarWrapper;
@@ -30,12 +30,12 @@ export const ALL_PLUGINS = [
30
30
  'subscript',
31
31
  ];
32
32
 
33
- export const DEFAULT_EXTENSIONS = ALL_PLUGINS.filter((plug) => !['responseArea', 'h3', 'blockquote'].includes(plug));
33
+ export const DEFAULT_PLUGINS = ALL_PLUGINS.filter((plug) => !['responseArea', 'h3', 'blockquote'].includes(plug));
34
34
 
35
35
  export const buildExtensions = (activeExtensions, customExtensions, opts) => {
36
36
  log('[buildPlugins] opts: ', opts);
37
37
 
38
- activeExtensions = activeExtensions || DEFAULT_EXTENSIONS;
38
+ activeExtensions = activeExtensions || DEFAULT_PLUGINS;
39
39
 
40
40
  const addIf = (key, shouldAdd = true) => activeExtensions.includes(key) && shouldAdd && key;
41
41
 
package/src/index.jsx CHANGED
@@ -1,5 +1,5 @@
1
1
  import StyledEditor, { EditableHtml } from './components/EditableHtml';
2
- import { ALL_PLUGINS } from './extensions';
2
+ import { ALL_PLUGINS, DEFAULT_PLUGINS } from './extensions';
3
3
 
4
- export { EditableHtml, ALL_PLUGINS };
4
+ export { EditableHtml, ALL_PLUGINS, DEFAULT_PLUGINS };
5
5
  export default StyledEditor;
@@ -1,106 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.classObject = classObject;
9
- exports.mockComponents = mockComponents;
10
- exports.mockIconButton = mockIconButton;
11
- exports.mockMathInput = mockMathInput;
12
-
13
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
14
-
15
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
16
-
17
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
18
-
19
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
20
-
21
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
22
-
23
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
24
-
25
- var _react = _interopRequireDefault(require("react"));
26
-
27
- 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; }
28
-
29
- 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; }
30
-
31
- 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); }; }
32
-
33
- 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; } }
34
-
35
- function classObject() {
36
- var out = {};
37
-
38
- for (var a in arguments) {
39
- var value = arguments[a];
40
- out[value] = value;
41
- }
42
-
43
- return out;
44
- }
45
-
46
- function mockComponents() {
47
- var _arguments = arguments;
48
- var out = {};
49
-
50
- var _loop = function _loop() {
51
- var value = _arguments[a];
52
-
53
- out[value] = /*#__PURE__*/function (_React$Component) {
54
- (0, _inherits2["default"])(_class, _React$Component);
55
-
56
- var _super = _createSuper(_class);
57
-
58
- function _class() {
59
- (0, _classCallCheck2["default"])(this, _class);
60
- return _super.apply(this, arguments);
61
- }
62
-
63
- (0, _createClass2["default"])(_class, [{
64
- key: "render",
65
- value: function render() {
66
- return /*#__PURE__*/_react["default"].createElement("div", {
67
- "data-mock-component": "true"
68
- }, value);
69
- }
70
- }]);
71
- return _class;
72
- }(_react["default"].Component);
73
- };
74
-
75
- for (var a in arguments) {
76
- _loop();
77
- }
78
-
79
- return out;
80
- }
81
-
82
- function mockIconButton() {
83
- jest.mock('@material-ui/core/IconButton', function () {
84
- return function (props) {
85
- return /*#__PURE__*/_react["default"].createElement("div", {
86
- className: props.className,
87
- style: props.style,
88
- ariaLabel: props['aria-label']
89
- });
90
- };
91
- });
92
- }
93
-
94
- function mockMathInput() {
95
- jest.mock('@pie-lib/math-input', function () {
96
- return _objectSpread({
97
- addBrackets: jest.fn(function (s) {
98
- return s;
99
- }),
100
- removeBrackets: jest.fn(function (s) {
101
- return s;
102
- })
103
- }, mockComponents('Keypad', 'MathQuillInput', 'EditableMathInput', 'HorizontalKeypad'));
104
- });
105
- }
106
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vdXRpbHMuanMiXSwibmFtZXMiOlsiY2xhc3NPYmplY3QiLCJvdXQiLCJhIiwiYXJndW1lbnRzIiwidmFsdWUiLCJtb2NrQ29tcG9uZW50cyIsIlJlYWN0IiwiQ29tcG9uZW50IiwibW9ja0ljb25CdXR0b24iLCJqZXN0IiwibW9jayIsInByb3BzIiwiY2xhc3NOYW1lIiwic3R5bGUiLCJtb2NrTWF0aElucHV0IiwiYWRkQnJhY2tldHMiLCJmbiIsInMiLCJyZW1vdmVCcmFja2V0cyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7Ozs7Ozs7Ozs7QUFFTyxTQUFTQSxXQUFULEdBQXVCO0FBQzVCLE1BQU1DLEdBQUcsR0FBRyxFQUFaOztBQUNBLE9BQUssSUFBSUMsQ0FBVCxJQUFjQyxTQUFkLEVBQXlCO0FBQ3ZCLFFBQU1DLEtBQUssR0FBR0QsU0FBUyxDQUFDRCxDQUFELENBQXZCO0FBQ0FELElBQUFBLEdBQUcsQ0FBQ0csS0FBRCxDQUFILEdBQWFBLEtBQWI7QUFDRDs7QUFDRCxTQUFPSCxHQUFQO0FBQ0Q7O0FBRU0sU0FBU0ksY0FBVCxHQUEwQjtBQUFBO0FBQy9CLE1BQU1KLEdBQUcsR0FBRyxFQUFaOztBQUQrQjtBQUc3QixRQUFNRyxLQUFLLEdBQUdELFVBQVMsQ0FBQ0QsQ0FBRCxDQUF2Qjs7QUFDQUQsSUFBQUEsR0FBRyxDQUFDRyxLQUFELENBQUg7QUFBQTs7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUEsZUFDRSxrQkFBUztBQUNQLDhCQUFPO0FBQUssbUNBQW9CO0FBQXpCLGFBQWlDQSxLQUFqQyxDQUFQO0FBQ0Q7QUFISDtBQUFBO0FBQUEsTUFBMkJFLGtCQUFNQyxTQUFqQztBQUo2Qjs7QUFFL0IsT0FBSyxJQUFJTCxDQUFULElBQWNDLFNBQWQsRUFBeUI7QUFBQTtBQU94Qjs7QUFDRCxTQUFPRixHQUFQO0FBQ0Q7O0FBRU0sU0FBU08sY0FBVCxHQUEwQjtBQUMvQkMsRUFBQUEsSUFBSSxDQUFDQyxJQUFMLENBQVUsOEJBQVYsRUFBMEMsWUFBTTtBQUM5QyxXQUFPLFVBQUNDLEtBQUQ7QUFBQSwwQkFBVztBQUFLLFFBQUEsU0FBUyxFQUFFQSxLQUFLLENBQUNDLFNBQXRCO0FBQWlDLFFBQUEsS0FBSyxFQUFFRCxLQUFLLENBQUNFLEtBQTlDO0FBQXFELFFBQUEsU0FBUyxFQUFFRixLQUFLLENBQUMsWUFBRDtBQUFyRSxRQUFYO0FBQUEsS0FBUDtBQUNELEdBRkQ7QUFHRDs7QUFDTSxTQUFTRyxhQUFULEdBQXlCO0FBQzlCTCxFQUFBQSxJQUFJLENBQUNDLElBQUwsQ0FBVSxxQkFBVixFQUFpQztBQUFBO0FBQy9CSyxNQUFBQSxXQUFXLEVBQUVOLElBQUksQ0FBQ08sRUFBTCxDQUFRLFVBQUNDLENBQUQ7QUFBQSxlQUFPQSxDQUFQO0FBQUEsT0FBUixDQURrQjtBQUUvQkMsTUFBQUEsY0FBYyxFQUFFVCxJQUFJLENBQUNPLEVBQUwsQ0FBUSxVQUFDQyxDQUFEO0FBQUEsZUFBT0EsQ0FBUDtBQUFBLE9BQVI7QUFGZSxPQUc1QlosY0FBYyxDQUFDLFFBQUQsRUFBVyxnQkFBWCxFQUE2QixtQkFBN0IsRUFBa0Qsa0JBQWxELENBSGM7QUFBQSxHQUFqQztBQUtEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcblxuZXhwb3J0IGZ1bmN0aW9uIGNsYXNzT2JqZWN0KCkge1xuICBjb25zdCBvdXQgPSB7fTtcbiAgZm9yICh2YXIgYSBpbiBhcmd1bWVudHMpIHtcbiAgICBjb25zdCB2YWx1ZSA9IGFyZ3VtZW50c1thXTtcbiAgICBvdXRbdmFsdWVdID0gdmFsdWU7XG4gIH1cbiAgcmV0dXJuIG91dDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vY2tDb21wb25lbnRzKCkge1xuICBjb25zdCBvdXQgPSB7fTtcbiAgZm9yICh2YXIgYSBpbiBhcmd1bWVudHMpIHtcbiAgICBjb25zdCB2YWx1ZSA9IGFyZ3VtZW50c1thXTtcbiAgICBvdXRbdmFsdWVdID0gY2xhc3MgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICAgICAgcmVuZGVyKCkge1xuICAgICAgICByZXR1cm4gPGRpdiBkYXRhLW1vY2stY29tcG9uZW50PVwidHJ1ZVwiPnt2YWx1ZX08L2Rpdj47XG4gICAgICB9XG4gICAgfTtcbiAgfVxuICByZXR1cm4gb3V0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbW9ja0ljb25CdXR0b24oKSB7XG4gIGplc3QubW9jaygnQG1hdGVyaWFsLXVpL2NvcmUvSWNvbkJ1dHRvbicsICgpID0+IHtcbiAgICByZXR1cm4gKHByb3BzKSA9PiA8ZGl2IGNsYXNzTmFtZT17cHJvcHMuY2xhc3NOYW1lfSBzdHlsZT17cHJvcHMuc3R5bGV9IGFyaWFMYWJlbD17cHJvcHNbJ2FyaWEtbGFiZWwnXX0gLz47XG4gIH0pO1xufVxuZXhwb3J0IGZ1bmN0aW9uIG1vY2tNYXRoSW5wdXQoKSB7XG4gIGplc3QubW9jaygnQHBpZS1saWIvbWF0aC1pbnB1dCcsICgpID0+ICh7XG4gICAgYWRkQnJhY2tldHM6IGplc3QuZm4oKHMpID0+IHMpLFxuICAgIHJlbW92ZUJyYWNrZXRzOiBqZXN0LmZuKChzKSA9PiBzKSxcbiAgICAuLi5tb2NrQ29tcG9uZW50cygnS2V5cGFkJywgJ01hdGhRdWlsbElucHV0JywgJ0VkaXRhYmxlTWF0aElucHV0JywgJ0hvcml6b250YWxLZXlwYWQnKSxcbiAgfSkpO1xufVxuIl19
@@ -1,36 +0,0 @@
1
- import React from 'react';
2
-
3
- export function classObject() {
4
- const out = {};
5
- for (var a in arguments) {
6
- const value = arguments[a];
7
- out[value] = value;
8
- }
9
- return out;
10
- }
11
-
12
- export function mockComponents() {
13
- const out = {};
14
- for (var a in arguments) {
15
- const value = arguments[a];
16
- out[value] = class extends React.Component {
17
- render() {
18
- return <div data-mock-component="true">{value}</div>;
19
- }
20
- };
21
- }
22
- return out;
23
- }
24
-
25
- export function mockIconButton() {
26
- jest.mock('@material-ui/core/IconButton', () => {
27
- return (props) => <div className={props.className} style={props.style} ariaLabel={props['aria-label']} />;
28
- });
29
- }
30
- export function mockMathInput() {
31
- jest.mock('@pie-lib/math-input', () => ({
32
- addBrackets: jest.fn((s) => s),
33
- removeBrackets: jest.fn((s) => s),
34
- ...mockComponents('Keypad', 'MathQuillInput', 'EditableMathInput', 'HorizontalKeypad'),
35
- }));
36
- }