@pie-lib/config-ui 11.11.0-beta.0 → 11.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/CHANGELOG.json +8 -1653
  2. package/CHANGELOG.md +81 -39
  3. package/package.json +8 -5
  4. package/src/checkbox.jsx +5 -9
  5. package/src/inputs.jsx +2 -2
  6. package/src/radio-with-label.jsx +3 -9
  7. package/src/settings/settings-radio-label.jsx +2 -8
  8. package/lib/__tests__/choice-utils.test.js +0 -16
  9. package/lib/__tests__/langs.test.js +0 -55
  10. package/lib/__tests__/number-text-field.test.js +0 -128
  11. package/lib/__tests__/settings-panel.test.js +0 -201
  12. package/lib/__tests__/two-choice.test.js +0 -33
  13. package/lib/alert-dialog.js +0 -75
  14. package/lib/checkbox.js +0 -99
  15. package/lib/choice-configuration/__tests__/feedback-menu.test.js +0 -20
  16. package/lib/choice-configuration/__tests__/index.test.js +0 -119
  17. package/lib/choice-configuration/feedback-menu.js +0 -164
  18. package/lib/choice-configuration/index.js +0 -445
  19. package/lib/choice-utils.js +0 -54
  20. package/lib/feedback-config/__tests__/feedback-config.test.js +0 -78
  21. package/lib/feedback-config/__tests__/feedback-selector.test.js +0 -71
  22. package/lib/feedback-config/feedback-selector.js +0 -195
  23. package/lib/feedback-config/group.js +0 -75
  24. package/lib/feedback-config/index.js +0 -189
  25. package/lib/form-section.js +0 -46
  26. package/lib/help.js +0 -147
  27. package/lib/index.js +0 -216
  28. package/lib/input.js +0 -139
  29. package/lib/inputs.js +0 -139
  30. package/lib/langs.js +0 -179
  31. package/lib/layout/__tests__/config.layout.test.js +0 -33
  32. package/lib/layout/__tests__/layout-content.test.js +0 -6
  33. package/lib/layout/config-layout.js +0 -143
  34. package/lib/layout/index.js +0 -24
  35. package/lib/layout/layout-contents.js +0 -191
  36. package/lib/layout/settings-box.js +0 -86
  37. package/lib/mui-box/index.js +0 -79
  38. package/lib/number-text-field-custom.js +0 -458
  39. package/lib/number-text-field.js +0 -267
  40. package/lib/radio-with-label.js +0 -49
  41. package/lib/settings/display-size.js +0 -77
  42. package/lib/settings/index.js +0 -143
  43. package/lib/settings/panel.js +0 -463
  44. package/lib/settings/settings-radio-label.js +0 -53
  45. package/lib/settings/toggle.js +0 -74
  46. package/lib/tabs/index.js +0 -110
  47. package/lib/tags-input/__tests__/index.test.js +0 -88
  48. package/lib/tags-input/index.js +0 -198
  49. package/lib/two-choice.js +0 -180
  50. package/lib/with-stateful-model.js +0 -84
@@ -1,119 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _typeof = require("@babel/runtime/helpers/typeof");
6
-
7
- var _react = _interopRequireDefault(require("react"));
8
-
9
- var _index = require("../index");
10
-
11
- var _reactTestRenderer = _interopRequireDefault(require("react-test-renderer"));
12
-
13
- var _enzyme = _interopRequireWildcard(require("enzyme"));
14
-
15
- var _enzymeAdapterReact = _interopRequireDefault(require("enzyme-adapter-react-16"));
16
-
17
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
18
-
19
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
20
-
21
- jest.mock('@pie-lib/editable-html', function () {
22
- return function () {
23
- return /*#__PURE__*/_react["default"].createElement("div", null);
24
- };
25
- });
26
-
27
- _enzyme["default"].configure({
28
- adapter: new _enzymeAdapterReact["default"]()
29
- });
30
-
31
- var defaultFeedback = {
32
- correct: 'Correct',
33
- incorrect: 'Incorrect'
34
- };
35
- var data = {
36
- checked: true,
37
- value: 'foo',
38
- label: 'Foo',
39
- feedback: {
40
- type: 'custom'
41
- }
42
- };
43
- var classes = {
44
- choiceConfiguration: 'choiceConfiguration'
45
- };
46
- describe('index - snapshot', function () {
47
- it('renders correctly with default props', function () {
48
- var tree = _reactTestRenderer["default"].create( /*#__PURE__*/_react["default"].createElement(_index.ChoiceConfiguration, {
49
- classes: classes,
50
- defaultFeedback: defaultFeedback,
51
- data: data
52
- })).toJSON();
53
-
54
- expect(tree).toMatchSnapshot();
55
- });
56
- it('renders correctly when feedback is not allowed', function () {
57
- var tree = _reactTestRenderer["default"].create( /*#__PURE__*/_react["default"].createElement(_index.ChoiceConfiguration, {
58
- allowFeedBack: false,
59
- classes: classes,
60
- defaultFeedback: defaultFeedback,
61
- data: data
62
- })).toJSON();
63
-
64
- expect(tree).toMatchSnapshot();
65
- });
66
- it('renders correctly when delete is not allowed', function () {
67
- var tree = _reactTestRenderer["default"].create( /*#__PURE__*/_react["default"].createElement(_index.ChoiceConfiguration, {
68
- allowDelete: false,
69
- classes: classes,
70
- defaultFeedback: defaultFeedback,
71
- data: data
72
- })).toJSON();
73
-
74
- expect(tree).toMatchSnapshot();
75
- });
76
- });
77
- describe('index - logic', function () {
78
- var wrapper, instance, onChange;
79
- beforeEach(function () {
80
- onChange = jest.fn();
81
- wrapper = (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_index.ChoiceConfiguration, {
82
- classes: classes,
83
- defaultFeedback: defaultFeedback,
84
- data: data,
85
- onChange: onChange
86
- }));
87
- instance = wrapper.instance();
88
- });
89
- describe('onCheckedChange', function () {
90
- it('calls onChange', function () {
91
- instance.onLabelChange('new label');
92
- expect(onChange.mock.calls.length).toBe(1);
93
- expect(onChange.mock.calls[0][0]).toMatchObject({
94
- label: 'new label'
95
- });
96
- });
97
- });
98
- describe('onFeedbackTypeChange', function () {
99
- it('calls onChange', function () {
100
- instance.onFeedbackTypeChange('default');
101
- expect(onChange.mock.calls[0][0]).toMatchObject({
102
- feedback: {
103
- type: 'default'
104
- }
105
- });
106
- });
107
- });
108
- describe('onFeedbackValueChange', function () {
109
- it('calls onChange', function () {
110
- instance.onFeedbackValueChange('new feedback');
111
- expect(onChange.mock.calls[0][0]).toMatchObject({
112
- feedback: {
113
- value: 'new feedback'
114
- }
115
- });
116
- });
117
- });
118
- });
119
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jaG9pY2UtY29uZmlndXJhdGlvbi9fX3Rlc3RzX18vaW5kZXgudGVzdC5qc3giXSwibmFtZXMiOlsiamVzdCIsIm1vY2siLCJFbnp5bWUiLCJjb25maWd1cmUiLCJhZGFwdGVyIiwiQWRhcHRlciIsImRlZmF1bHRGZWVkYmFjayIsImNvcnJlY3QiLCJpbmNvcnJlY3QiLCJkYXRhIiwiY2hlY2tlZCIsInZhbHVlIiwibGFiZWwiLCJmZWVkYmFjayIsInR5cGUiLCJjbGFzc2VzIiwiY2hvaWNlQ29uZmlndXJhdGlvbiIsImRlc2NyaWJlIiwiaXQiLCJ0cmVlIiwicmVuZGVyZXIiLCJjcmVhdGUiLCJ0b0pTT04iLCJleHBlY3QiLCJ0b01hdGNoU25hcHNob3QiLCJ3cmFwcGVyIiwiaW5zdGFuY2UiLCJvbkNoYW5nZSIsImJlZm9yZUVhY2giLCJmbiIsIm9uTGFiZWxDaGFuZ2UiLCJjYWxscyIsImxlbmd0aCIsInRvQmUiLCJ0b01hdGNoT2JqZWN0Iiwib25GZWVkYmFja1R5cGVDaGFuZ2UiLCJvbkZlZWRiYWNrVmFsdWVDaGFuZ2UiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOzs7Ozs7QUFFQUEsSUFBSSxDQUFDQyxJQUFMLENBQVUsd0JBQVYsRUFBb0M7QUFBQSxTQUFNO0FBQUEsd0JBQU0sNENBQU47QUFBQSxHQUFOO0FBQUEsQ0FBcEM7O0FBRUFDLG1CQUFPQyxTQUFQLENBQWlCO0FBQUVDLEVBQUFBLE9BQU8sRUFBRSxJQUFJQyw4QkFBSjtBQUFYLENBQWpCOztBQUVBLElBQU1DLGVBQWUsR0FBRztBQUN0QkMsRUFBQUEsT0FBTyxFQUFFLFNBRGE7QUFFdEJDLEVBQUFBLFNBQVMsRUFBRTtBQUZXLENBQXhCO0FBS0EsSUFBTUMsSUFBSSxHQUFHO0FBQ1hDLEVBQUFBLE9BQU8sRUFBRSxJQURFO0FBRVhDLEVBQUFBLEtBQUssRUFBRSxLQUZJO0FBR1hDLEVBQUFBLEtBQUssRUFBRSxLQUhJ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QUMsZ0JBQUQsRUFBbUIsWUFBTTtBQUN6QlEsTUFBQUEsUUFBUSxDQUFDUyxvQkFBVCxDQUE4QixTQUE5QjtBQUNBWixNQUFBQSxNQUFNLENBQUNJLFFBQVEsQ0FBQzFCLElBQVQsQ0FBYzhCLEtBQWQsQ0FBb0IsQ0FBcEIsRUFBdUIsQ0FBdkIsQ0FBRCxDQUFOLENBQWtDRyxhQUFsQyxDQUFnRDtBQUM5Q3JCLFFBQUFBLFFBQVEsRUFBRTtBQUFFQyxVQUFBQSxJQUFJLEVBQUU7QUFBUjtBQURvQyxPQUFoRDtBQUdELEtBTEMsQ0FBRjtBQU1ELEdBUE8sQ0FBUjtBQVNBRyxFQUFBQSxRQUFRLENBQUMsdUJBQUQsRUFBMEIsWUFBTTtBQUN0Q0MsSUFBQUEsRUFBRSxDQUFDLGdCQUFELEVBQW1CLFlBQU07QUFDekJRLE1BQUFBLFFBQVEsQ0FBQ1UscUJBQVQsQ0FBK0IsY0FBL0I7QUFDQWIsTUFBQUEsTUFBTSxDQUFDSSxRQUFRLENBQUMxQixJQUFULENBQWM4QixLQUFkLENBQW9CLENBQXBCLEVBQXVCLENBQXZCLENBQUQsQ0FBTixDQUFrQ0csYUFBbEMsQ0FBZ0Q7QUFDOUNyQixRQUFBQSxRQUFRLEVBQUU7QUFBRUYsVUFBQUEsS0FBSyxFQUFFO0FBQVQ7QUFEb0MsT0FBaEQ7QUFHRCxLQUxDLENBQUY7QUFNRCxHQVBPLENBQVI7QUFRRCxDQXJDTyxDQUFSIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IENob2ljZUNvbmZpZ3VyYXRpb24gfSBmcm9tICcuLi9pbmRleCc7XG5pbXBvcnQgcmVuZGVyZXIgZnJvbSAncmVhY3QtdGVzdC1yZW5kZXJlcic7XG5pbXBvcnQgeyBzaGFsbG93IH0gZnJvbSAnZW56eW1lJztcbmltcG9ydCBFbnp5bWUgZnJvbSAnZW56eW1lJztcbmltcG9ydCBBZGFwdGVyIGZyb20gJ2VuenltZS1hZGFwdGVyLXJlYWN0LTE2JztcblxuamVzdC5tb2NrKCdAcGllLWxpYi9lZGl0YWJsZS1odG1sJywgKCkgPT4gKCkgPT4gPGRpdiAvPik7XG5cbkVuenltZS5jb25maWd1cmUoeyBhZGFwdGVyOiBuZXcgQWRhcHRlcigpIH0pO1xuXG5jb25zdCBkZWZhdWx0RmVlZGJhY2sgPSB7XG4gIGNvcnJlY3Q6ICdDb3JyZWN0JyxcbiAgaW5jb3JyZWN0OiAnSW5jb3JyZWN0Jyxcbn07XG5cbmNvbnN0IGRhdGEgPSB7XG4gIGNoZWNrZWQ6IHRydWUsXG4gIHZhbHVlOiAnZm9vJyxcbiAgbGFiZWw6ICdGb28nLFxuICBmZWVkYmFjazoge1xuICAgIHR5cGU6ICdjdXN0b20nLFxuICB9LFxufTtcblxuY29uc3QgY2xhc3NlcyA9IHtcbiAgY2hvaWNlQ29uZmlndXJhdGlvbjogJ2Nob2ljZUNvbmZpZ3VyYXRpb24nLFxufTtcblxuZGVzY3JpYmUoJ2luZGV4IC0gc25hcHNob3QnLCAoKSA9PiB7XG4gIGl0KCdyZW5kZXJzIGNvcnJlY3RseSB3aXRoIGRlZmF1bHQgcHJvcHMnLCAoKSA9PiB7XG4gICAgY29uc3QgdHJlZSA9IHJlbmRlcmVyXG4gICAgICAuY3JlYXRlKDxDaG9pY2VDb25maWd1cmF0aW9uIGNsYXNzZXM9e2NsYXNzZXN9IGRlZmF1bHRGZWVkYmFjaz17ZGVmYXVsdEZlZWRiYWNrfSBkYXRhPXtkYXRhfSAvPilcbiAgICAgIC50b0pTT04oKTtcbiAgICBleHBlY3QodHJlZSkudG9NYXRjaFNuYXBzaG90KCk7XG4gIH0pO1xuICBpdCgncmVuZGVycyBjb3JyZWN0bHkgd2hlbiBmZWVkYmFjayBpcyBub3QgYWxsb3dlZCcsICgpID0+IHtcbiAgICBjb25zdCB0cmVlID0gcmVuZGVyZXJcbiAgICAgIC5jcmVhdGUoXG4gICAgICAgIDxDaG9pY2VDb25maWd1cmF0aW9uIGFsbG93RmVlZEJhY2s9e2ZhbHNlfSBjbGFzc2VzPXtjbGFzc2VzfSBkZWZhdWx0RmVlZGJhY2s9e2RlZmF1bHRGZWVkYmFja30gZGF0YT17ZGF0YX0gLz4sXG4gICAgICApXG4gICAgICAudG9KU09OKCk7XG4gICAgZXhwZWN0KHRyZWUpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICB9KTtcbiAgaXQoJ3JlbmRlcnMgY29ycmVjdGx5IHdoZW4gZGVsZXRlIGlzIG5vdCBhbGxvd2VkJywgKCkgPT4ge1xuICAgIGNvbnN0IHRyZWUgPSByZW5kZXJlclxuICAgICAgLmNyZWF0ZShcbiAgICAgICAgPENob2ljZUNvbmZpZ3VyYXRpb24gYWxsb3dEZWxldGU9e2ZhbHNlfSBjbGFzc2VzPXtjbGFzc2VzfSBkZWZhdWx0RmVlZGJhY2s9e2RlZmF1bHRGZWVkYmFja30gZGF0YT17ZGF0YX0gLz4sXG4gICAgICApXG4gICAgICAudG9KU09OKCk7XG4gICAgZXhwZWN0KHRyZWUpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICB9KTtcbn0pO1xuXG5kZXNjcmliZSgnaW5kZXggLSBsb2dpYycsICgpID0+IHtcbiAgbGV0IHdyYXBwZXIsIGluc3RhbmNlLCBvbkNoYW5nZTtcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBvbkNoYW5nZSA9IGplc3QuZm4oKTtcblxuICAgIHdyYXBwZXIgPSBzaGFsbG93KFxuICAgICAgPENob2ljZUNvbmZpZ3VyYXRpb24gY2xhc3Nlcz17Y2xhc3Nlc30gZGVmYXVsdEZlZWRiYWNrPXtkZWZhdWx0RmVlZGJhY2t9IGRhdGE9e2RhdGF9IG9uQ2hhbmdlPXtvbkNoYW5nZX0gLz4sXG4gICAgKTtcbiAgICBpbnN0YW5jZSA9IHdyYXBwZXIuaW5zdGFuY2UoKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ29uQ2hlY2tlZENoYW5nZScsICgpID0+IHtcbiAgICBpdCgnY2FsbHMgb25DaGFuZ2UnLCAoKSA9PiB7XG4gICAgICBpbnN0YW5jZS5vbkxhYmVsQ2hhbmdlKCduZXcgbGFiZWwnKTtcbiAgICAgIGV4cGVjdChvbkNoYW5nZS5tb2NrLmNhbGxzLmxlbmd0aCkudG9CZSgxKTtcbiAgICAgIGV4cGVjdChvbkNoYW5nZS5tb2NrLmNhbGxzWzBdWzBdKS50b01hdGNoT2JqZWN0KHsgbGFiZWw6ICduZXcgbGFiZWwnIH0pO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnb25GZWVkYmFja1R5cGVDaGFuZ2UnLCAoKSA9PiB7XG4gICAgaXQoJ2NhbGxzIG9uQ2hhbmdlJywgKCkgPT4ge1xuICAgICAgaW5zdGFuY2Uub25GZWVkYmFja1R5cGVDaGFuZ2UoJ2RlZmF1bHQnKTtcbiAgICAgIGV4cGVjdChvbkNoYW5nZS5tb2NrLmNhbGxzWzBdWzBdKS50b01hdGNoT2JqZWN0KHtcbiAgICAgICAgZmVlZGJhY2s6IHsgdHlwZTogJ2RlZmF1bHQnIH0sXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ29uRmVlZGJhY2tWYWx1ZUNoYW5nZScsICgpID0+IHtcbiAgICBpdCgnY2FsbHMgb25DaGFuZ2UnLCAoKSA9PiB7XG4gICAgICBpbnN0YW5jZS5vbkZlZWRiYWNrVmFsdWVDaGFuZ2UoJ25ldyBmZWVkYmFjaycpO1xuICAgICAgZXhwZWN0KG9uQ2hhbmdlLm1vY2suY2FsbHNbMF1bMF0pLnRvTWF0Y2hPYmplY3Qoe1xuICAgICAgICBmZWVkYmFjazogeyB2YWx1ZTogJ25ldyBmZWVkYmFjaycgfSxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
@@ -1,164 +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["default"] = exports.IconMenu = void 0;
9
-
10
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
-
14
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
15
-
16
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
-
18
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
-
20
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
-
22
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
23
-
24
- var _Menu = _interopRequireDefault(require("@material-ui/core/Menu"));
25
-
26
- var _MenuItem = _interopRequireDefault(require("@material-ui/core/MenuItem"));
27
-
28
- var _Feedback = _interopRequireDefault(require("@material-ui/icons/Feedback"));
29
-
30
- var _IconButton = _interopRequireDefault(require("@material-ui/core/IconButton"));
31
-
32
- var _propTypes = _interopRequireDefault(require("prop-types"));
33
-
34
- var _react = _interopRequireDefault(require("react"));
35
-
36
- 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); }; }
37
-
38
- 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; } }
39
-
40
- var IconMenu = /*#__PURE__*/function (_React$Component) {
41
- (0, _inherits2["default"])(IconMenu, _React$Component);
42
-
43
- var _super = _createSuper(IconMenu);
44
-
45
- function IconMenu(props) {
46
- var _this;
47
-
48
- (0, _classCallCheck2["default"])(this, IconMenu);
49
- _this = _super.call(this, props);
50
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleClick", function (event) {
51
- _this.setState({
52
- open: true,
53
- anchorEl: event.currentTarget
54
- });
55
- });
56
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleRequestClose", function () {
57
- _this.setState({
58
- open: false
59
- });
60
- });
61
- _this.state = {
62
- anchorEl: undefined,
63
- open: false
64
- };
65
- return _this;
66
- }
67
-
68
- (0, _createClass2["default"])(IconMenu, [{
69
- key: "render",
70
- value: function render() {
71
- var _this2 = this;
72
-
73
- var _this$props = this.props,
74
- opts = _this$props.opts,
75
- onClick = _this$props.onClick;
76
- var keys = Object.keys(opts);
77
-
78
- var handleMenuClick = function handleMenuClick(key) {
79
- return function () {
80
- onClick(key);
81
-
82
- _this2.handleRequestClose();
83
- };
84
- };
85
-
86
- return /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("div", {
87
- onClick: this.handleClick
88
- }, this.props.iconButtonElement), /*#__PURE__*/_react["default"].createElement(_Menu["default"], {
89
- id: "simple-menu",
90
- anchorEl: this.state.anchorEl,
91
- open: this.state.open,
92
- onClose: this.handleRequestClose
93
- }, keys.map(function (k, index) {
94
- return /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
95
- key: index,
96
- onClick: handleMenuClick(k)
97
- }, opts[k]);
98
- })));
99
- }
100
- }]);
101
- return IconMenu;
102
- }(_react["default"].Component);
103
-
104
- exports.IconMenu = IconMenu;
105
- (0, _defineProperty2["default"])(IconMenu, "propTypes", {
106
- opts: _propTypes["default"].object,
107
- onClick: _propTypes["default"].func.isRequired,
108
- iconButtonElement: _propTypes["default"].any
109
- });
110
-
111
- var FeedbackMenu = /*#__PURE__*/function (_React$Component2) {
112
- (0, _inherits2["default"])(FeedbackMenu, _React$Component2);
113
-
114
- var _super2 = _createSuper(FeedbackMenu);
115
-
116
- function FeedbackMenu() {
117
- (0, _classCallCheck2["default"])(this, FeedbackMenu);
118
- return _super2.apply(this, arguments);
119
- }
120
-
121
- (0, _createClass2["default"])(FeedbackMenu, [{
122
- key: "render",
123
- value: function render() {
124
- var _this$props2 = this.props,
125
- value = _this$props2.value,
126
- onChange = _this$props2.onChange,
127
- classes = _this$props2.classes;
128
- var t = value && value.type;
129
- var iconColor = t === 'custom' || t === 'default' ? 'primary' : 'disabled';
130
- var tooltip = t === 'custom' ? 'Custom Feedback' : t === 'default' ? 'Default Feedback' : 'Feedback disabled';
131
-
132
- var icon = /*#__PURE__*/_react["default"].createElement(_IconButton["default"], {
133
- className: classes.icon,
134
- "aria-label": tooltip
135
- }, /*#__PURE__*/_react["default"].createElement(_Feedback["default"], {
136
- color: iconColor
137
- }));
138
-
139
- return /*#__PURE__*/_react["default"].createElement(IconMenu, {
140
- iconButtonElement: icon,
141
- onClick: function onClick(key) {
142
- return onChange(key);
143
- },
144
- opts: {
145
- none: 'No Feedback',
146
- "default": 'Default',
147
- custom: 'Custom'
148
- }
149
- });
150
- }
151
- }]);
152
- return FeedbackMenu;
153
- }(_react["default"].Component);
154
-
155
- exports["default"] = FeedbackMenu;
156
- (0, _defineProperty2["default"])(FeedbackMenu, "propTypes", {
157
- value: _propTypes["default"].object,
158
- onChange: _propTypes["default"].func.isRequired,
159
- classes: _propTypes["default"].object.isRequired
160
- });
161
- (0, _defineProperty2["default"])(FeedbackMenu, "defaultProps", {
162
- classes: {}
163
- });
164
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jaG9pY2UtY29uZmlndXJhdGlvbi9mZWVkYmFjay1tZW51LmpzeCJdLCJuYW1lcyI6WyJJY29uTWVudSIsInByb3BzIiwiZXZlbnQiLCJzZXRTdGF0ZSIsIm9wZW4iLCJhbmNob3JFbCIsImN1cnJlbnRUYXJnZXQiLCJzdGF0ZSIsInVuZGVmaW5lZCIsIm9wdHMiLCJvbkNsaWNrIiwia2V5cyIsIk9iamVjdCIsImhhbmRsZU1lbnVDbGljayIsImtleSIsImhhbmRsZVJlcXVlc3RDbG9zZSIsImhhbmRsZUNsaWNrIiwiaWNvbkJ1dHRvbkVsZW1lbnQiLCJtYXAiLCJrIiwiaW5kZXgiLCJSZWFjdCIsIkNvbXBvbmVudCIsIlByb3BUeXBlcyIsIm9iamVjdCIsImZ1bmMiLCJpc1JlcXVpcmVkIiwiYW55IiwiRmVlZGJhY2tNZW51IiwidmFsdWUiLCJvbkNoYW5nZSIsImNsYXNzZXMiLCJ0IiwidHlwZSIsImljb25Db2xvciIsInRvb2x0aXAiLCJpY29uIiwibm9uZSIsImN1c3RvbSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7O0lBRWFBLFE7Ozs7O0FBT1gsb0JBQVlDLEtBQVosRUFBbUI7QUFBQTs7QUFBQTtBQUNqQiw4QkFBTUEsS0FBTjtBQURpQixvR0FRTCxVQUFDQyxLQUFELEVBQVc7QUFDdkIsWUFBS0MsUUFBTCxDQUFjO0FBQUVDLFFBQUFBLElBQUksRUFBRSxJQUFSO0FBQWNDLFFBQUFBLFFBQVEsRUFBRUgsS0FBSyxDQUFDSTtBQUE5QixPQUFkO0FBQ0QsS0FWa0I7QUFBQSwyR0FZRSxZQUFNO0FBQ3pCLFlBQUtILFFBQUwsQ0FBYztBQUFFQyxRQUFBQSxJQUFJLEVBQUU7QUFBUixPQUFkO0FBQ0QsS0Fka0I7QUFFakIsVUFBS0csS0FBTCxHQUFhO0FBQ1hGLE1BQUFBLFFBQVEsRUFBRUcsU0FEQztBQUVYSixNQUFBQSxJQUFJLEVBQUU7QUFGSyxLQUFiO0FBRmlCO0FBTWxCOzs7O1dBVUQsa0JBQVM7QUFBQTs7QUFDUCx3QkFBMEIsS0FBS0gsS0FBL0I7QUFBQSxVQUFRUSxJQUFSLGVBQVFBLElBQVI7QUFBQSxVQUFjQyxPQUFkLGVBQWNBLE9BQWQ7QUFDQSxVQUFNQyxJQUFJLEdBQUdDLE1BQU0sQ0FBQ0QsSUFBUCxDQUFZRixJQUFaLENBQWI7O0FBRUEsVUFBTUksZUFBZSxHQUFHLFNBQWxCQSxlQUFrQixDQUFDQyxHQUFEO0FBQUEsZUFBUyxZQUFNO0FBQ3JDSixVQUFBQSxPQUFPLENBQUNJLEdBQUQsQ0FBUDs7QUFDQSxVQUFBLE1BQUksQ0FBQ0Msa0JBQUw7QUFDRCxTQUh1QjtBQUFBLE9BQXhCOztBQUtBLDBCQUNFLDBEQUNFO0FBQUssUUFBQSxPQUFPLEVBQUUsS0FBS0M7QUFBbkIsU0FBaUMsS0FBS2YsS0FBTCxDQUFXZ0IsaUJBQTVDLENBREYsZUFFRSxnQ0FBQyxnQkFBRDtBQUFNLFFBQUEsRUFBRSxFQUFDLGFBQVQ7QUFBdUIsUUFBQSxRQUFRLEVBQUUsS0FBS1YsS0FBTCxDQUFXRixRQUE1QztBQUFzRCxRQUFBLElBQUksRUFBRSxLQUFLRSxLQUFMLENBQVdILElBQXZFO0FBQTZFLFFBQUEsT0FBTyxFQUFFLEtBQUtXO0FBQTNGLFNBQ0dKLElBQUksQ0FBQ08sR0FBTCxDQUFTLFVBQUNDLENBQUQsRUFBSUMsS0FBSjtBQUFBLDRCQUNSLGdDQUFDLG9CQUFEO0FBQVUsVUFBQSxHQUFHLEVBQUVBLEtBQWY7QUFBc0IsVUFBQSxPQUFPLEVBQUVQLGVBQWUsQ0FBQ00sQ0FBRDtBQUE5QyxXQUNHVixJQUFJLENBQUNVLENBQUQsQ0FEUCxDQURRO0FBQUEsT0FBVCxDQURILENBRkYsQ0FERjtBQVlEOzs7RUE1QzJCRSxrQkFBTUMsUzs7O2lDQUF2QnRCLFEsZUFDUTtBQUNqQlMsRUFBQUEsSUFBSSxFQUFFYyxzQkFBVUMsTUFEQztBQUVqQmQsRUFBQUEsT0FBTyxFQUFFYSxzQkFBVUUsSUFBVixDQUFlQyxVQUZQO0FBR2pCVCxFQUFBQSxpQkFBaUIsRUFBRU0sc0JBQVVJO0FBSFosQzs7SUE4Q0FDLFk7Ozs7Ozs7Ozs7OztXQVduQixrQkFBUztBQUNQLHlCQUFxQyxLQUFLM0IsS0FBMUM7QUFBQSxVQUFRNEIsS0FBUixnQkFBUUEsS0FBUjtBQUFBLFVBQWVDLFFBQWYsZ0JBQWVBLFFBQWY7QUFBQSxVQUF5QkMsT0FBekIsZ0JBQXlCQSxPQUF6QjtBQUNBLFVBQU1DLENBQUMsR0FBR0gsS0FBSyxJQUFJQSxLQUFLLENBQUNJLElBQXpCO0FBQ0EsVUFBTUMsU0FBUyxHQUFHRixDQUFDLEtBQUssUUFBTixJQUFrQkEsQ0FBQyxLQUFLLFNBQXhCLEdBQW9DLFNBQXBDLEdBQWdELFVBQWxFO0FBQ0EsVUFBTUcsT0FBTyxHQUFHSCxDQUFDLEtBQUssUUFBTixHQUFpQixpQkFBakIsR0FBcUNBLENBQUMsS0FBSyxTQUFOLEdBQWtCLGtCQUFsQixHQUF1QyxtQkFBNUY7O0FBRUEsVUFBTUksSUFBSSxnQkFDUixnQ0FBQyxzQkFBRDtBQUFZLFFBQUEsU0FBUyxFQUFFTCxPQUFPLENBQUNLLElBQS9CO0FBQXFDLHNCQUFZRDtBQUFqRCxzQkFDRSxnQ0FBQyxvQkFBRDtBQUFnQixRQUFBLEtBQUssRUFBRUQ7QUFBdkIsUUFERixDQURGOztBQU1BLDBCQUNFLGdDQUFDLFFBQUQ7QUFDRSxRQUFBLGlCQUFpQixFQUFFRSxJQURyQjtBQUVFLFFBQUEsT0FBTyxFQUFFLGlCQUFDdEIsR0FBRDtBQUFBLGlCQUFTZ0IsUUFBUSxDQUFDaEIsR0FBRCxDQUFqQjtBQUFBLFNBRlg7QUFHRSxRQUFBLElBQUksRUFBRTtBQUNKdUIsVUFBQUEsSUFBSSxFQUFFLGFBREY7QUFFSixxQkFBUyxTQUZMO0FBR0pDLFVBQUFBLE1BQU0sRUFBRTtBQUhKO0FBSFIsUUFERjtBQVdEOzs7RUFsQ3VDakIsa0JBQU1DLFM7OztpQ0FBM0JNLFksZUFDQTtBQUNqQkMsRUFBQUEsS0FBSyxFQUFFTixzQkFBVUMsTUFEQTtBQUVqQk0sRUFBQUEsUUFBUSxFQUFFUCxzQkFBVUUsSUFBVixDQUFlQyxVQUZSO0FBR2pCSyxFQUFBQSxPQUFPLEVBQUVSLHNCQUFVQyxNQUFWLENBQWlCRTtBQUhULEM7aUNBREFFLFksa0JBT0c7QUFDcEJHLEVBQUFBLE9BQU8sRUFBRTtBQURXLEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTWVudSBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9NZW51JztcbmltcG9ydCBNZW51SXRlbSBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9NZW51SXRlbSc7XG5pbXBvcnQgQWN0aW9uRmVlZGJhY2sgZnJvbSAnQG1hdGVyaWFsLXVpL2ljb25zL0ZlZWRiYWNrJztcbmltcG9ydCBJY29uQnV0dG9uIGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL0ljb25CdXR0b24nO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmV4cG9ydCBjbGFzcyBJY29uTWVudSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgb3B0czogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBvbkNsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGljb25CdXR0b25FbGVtZW50OiBQcm9wVHlwZXMuYW55LFxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICBhbmNob3JFbDogdW5kZWZpbmVkLFxuICAgICAgb3BlbjogZmFsc2UsXG4gICAgfTtcbiAgfVxuXG4gIGhhbmRsZUNsaWNrID0gKGV2ZW50KSA9PiB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7IG9wZW46IHRydWUsIGFuY2hvckVsOiBldmVudC5jdXJyZW50VGFyZ2V0IH0pO1xuICB9O1xuXG4gIGhhbmRsZVJlcXVlc3RDbG9zZSA9ICgpID0+IHtcbiAgICB0aGlzLnNldFN0YXRlKHsgb3BlbjogZmFsc2UgfSk7XG4gIH07XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgb3B0cywgb25DbGljayB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMob3B0cyk7XG5cbiAgICBjb25zdCBoYW5kbGVNZW51Q2xpY2sgPSAoa2V5KSA9PiAoKSA9PiB7XG4gICAgICBvbkNsaWNrKGtleSk7XG4gICAgICB0aGlzLmhhbmRsZVJlcXVlc3RDbG9zZSgpO1xuICAgIH07XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdj5cbiAgICAgICAgPGRpdiBvbkNsaWNrPXt0aGlzLmhhbmRsZUNsaWNrfT57dGhpcy5wcm9wcy5pY29uQnV0dG9uRWxlbWVudH08L2Rpdj5cbiAgICAgICAgPE1lbnUgaWQ9XCJzaW1wbGUtbWVudVwiIGFuY2hvckVsPXt0aGlzLnN0YXRlLmFuY2hvckVsfSBvcGVuPXt0aGlzLnN0YXRlLm9wZW59IG9uQ2xvc2U9e3RoaXMuaGFuZGxlUmVxdWVzdENsb3NlfT5cbiAgICAgICAgICB7a2V5cy5tYXAoKGssIGluZGV4KSA9PiAoXG4gICAgICAgICAgICA8TWVudUl0ZW0ga2V5PXtpbmRleH0gb25DbGljaz17aGFuZGxlTWVudUNsaWNrKGspfT5cbiAgICAgICAgICAgICAge29wdHNba119XG4gICAgICAgICAgICA8L01lbnVJdGVtPlxuICAgICAgICAgICkpfVxuICAgICAgICA8L01lbnU+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZlZWRiYWNrTWVudSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgdmFsdWU6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgY2xhc3NlczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgY2xhc3Nlczoge30sXG4gIH07XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgdmFsdWUsIG9uQ2hhbmdlLCBjbGFzc2VzIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHQgPSB2YWx1ZSAmJiB2YWx1ZS50eXBlO1xuICAgIGNvbnN0IGljb25Db2xvciA9IHQgPT09ICdjdXN0b20nIHx8IHQgPT09ICdkZWZhdWx0JyA/ICdwcmltYXJ5JyA6ICdkaXNhYmxlZCc7XG4gICAgY29uc3QgdG9vbHRpcCA9IHQgPT09ICdjdXN0b20nID8gJ0N1c3RvbSBGZWVkYmFjaycgOiB0ID09PSAnZGVmYXVsdCcgPyAnRGVmYXVsdCBGZWVkYmFjaycgOiAnRmVlZGJhY2sgZGlzYWJsZWQnO1xuXG4gICAgY29uc3QgaWNvbiA9IChcbiAgICAgIDxJY29uQnV0dG9uIGNsYXNzTmFtZT17Y2xhc3Nlcy5pY29ufSBhcmlhLWxhYmVsPXt0b29sdGlwfT5cbiAgICAgICAgPEFjdGlvbkZlZWRiYWNrIGNvbG9yPXtpY29uQ29sb3J9IC8+XG4gICAgICA8L0ljb25CdXR0b24+XG4gICAgKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8SWNvbk1lbnVcbiAgICAgICAgaWNvbkJ1dHRvbkVsZW1lbnQ9e2ljb259XG4gICAgICAgIG9uQ2xpY2s9eyhrZXkpID0+IG9uQ2hhbmdlKGtleSl9XG4gICAgICAgIG9wdHM9e3tcbiAgICAgICAgICBub25lOiAnTm8gRmVlZGJhY2snLFxuICAgICAgICAgIGRlZmF1bHQ6ICdEZWZhdWx0JyxcbiAgICAgICAgICBjdXN0b206ICdDdXN0b20nLFxuICAgICAgICB9fVxuICAgICAgLz5cbiAgICApO1xuICB9XG59XG4iXX0=