@pie-lib/correct-answer-toggle 2.25.3-next.2 → 2.25.4-next.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.
package/lib/index.js CHANGED
@@ -1,67 +1,97 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports["default"] = exports.CorrectAnswerToggle = void 0;
9
-
10
8
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
9
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
-
14
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
15
-
16
10
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
17
-
18
11
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
19
-
12
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
20
13
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
21
-
22
- var _styles = _interopRequireDefault(require("./styles"));
23
-
24
- var _styles2 = require("@material-ui/core/styles");
25
-
26
- var _CSSTransition = _interopRequireDefault(require("react-transition-group/CSSTransition"));
27
-
14
+ var _styles = require("@mui/material/styles");
15
+ var _reactTransitionGroup = require("react-transition-group");
28
16
  var _icons = require("@pie-lib/icons");
29
-
30
17
  var _renderUi = require("@pie-lib/render-ui");
31
-
32
18
  var _expander = _interopRequireDefault(require("./expander"));
33
-
34
19
  var _react = _interopRequireDefault(require("react"));
35
-
36
- var _classnames = _interopRequireDefault(require("classnames"));
37
-
38
20
  var _propTypes = _interopRequireDefault(require("prop-types"));
39
-
40
21
  var _translator = _interopRequireDefault(require("@pie-lib/translator"));
41
-
42
- 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; }
43
-
44
- 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; }
45
-
46
- 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); }; }
47
-
48
- 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; } }
49
-
22
+ function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
23
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
24
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
25
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
50
26
  var translator = _translator["default"].translator;
27
+ var noTouch = {
28
+ '-webkit-touchCcallout': 'none',
29
+ '-webkit-user-select': 'none',
30
+ '-khtml-user-select': 'none',
31
+ '-moz-user-select': 'none',
32
+ '-ms-user-select': 'none',
33
+ 'user-select': 'none'
34
+ };
35
+ var StyledRoot = (0, _styles.styled)('div')(function () {
36
+ return {
37
+ width: '100%',
38
+ cursor: 'pointer'
39
+ };
40
+ });
41
+ var StyledContent = (0, _styles.styled)('div')(function () {
42
+ return {
43
+ margin: '0 auto',
44
+ textAlign: 'center',
45
+ display: 'flex'
46
+ };
47
+ });
48
+ var StyledLabel = (0, _styles.styled)('div')(function () {
49
+ return _objectSpread({
50
+ width: 'fit-content',
51
+ minWidth: '140px',
52
+ alignSelf: 'center',
53
+ verticalAlign: 'middle',
54
+ color: "var(--correct-answer-toggle-label-color, ".concat(_renderUi.color.text(), ")"),
55
+ fontWeight: 'normal'
56
+ }, noTouch);
57
+ });
58
+ var StyledIcon = (0, _styles.styled)('div')(function () {
59
+ return {
60
+ position: 'absolute',
61
+ width: '25px',
62
+ '&.enter': {
63
+ opacity: '0'
64
+ },
65
+ '&.enter-active': {
66
+ opacity: '1',
67
+ transition: 'opacity 0.3s ease-in'
68
+ },
69
+ '&.exit': {
70
+ opacity: '1'
71
+ },
72
+ '&.exit-active': {
73
+ opacity: '0',
74
+ transition: 'opacity 0.3s ease-in'
75
+ }
76
+ };
77
+ });
78
+ var StyledIconHolder = (0, _styles.styled)('div')(function () {
79
+ return {
80
+ width: '25px',
81
+ marginRight: '5px',
82
+ display: 'flex',
83
+ alignItems: 'center'
84
+ };
85
+ });
86
+
51
87
  /**
52
88
  * We export the raw unstyled class for testability. For public use please use the default export.
53
89
  */
54
-
55
- var CorrectAnswerToggle = /*#__PURE__*/function (_React$Component) {
56
- (0, _inherits2["default"])(CorrectAnswerToggle, _React$Component);
57
-
58
- var _super = _createSuper(CorrectAnswerToggle);
59
-
90
+ var CorrectAnswerToggle = exports.CorrectAnswerToggle = /*#__PURE__*/function (_React$Component) {
60
91
  function CorrectAnswerToggle(props) {
61
92
  var _this;
62
-
63
93
  (0, _classCallCheck2["default"])(this, CorrectAnswerToggle);
64
- _this = _super.call(this, props);
94
+ _this = _callSuper(this, CorrectAnswerToggle, [props]);
65
95
  _this.state = {
66
96
  show: props.show
67
97
  };
@@ -75,8 +105,8 @@ var CorrectAnswerToggle = /*#__PURE__*/function (_React$Component) {
75
105
  });
76
106
  return _this;
77
107
  }
78
-
79
- (0, _createClass2["default"])(CorrectAnswerToggle, [{
108
+ (0, _inherits2["default"])(CorrectAnswerToggle, _React$Component);
109
+ return (0, _createClass2["default"])(CorrectAnswerToggle, [{
80
110
  key: "onClick",
81
111
  value: function onClick() {
82
112
  this.props.onToggle(!this.props.toggled);
@@ -85,18 +115,15 @@ var CorrectAnswerToggle = /*#__PURE__*/function (_React$Component) {
85
115
  key: "onTouch",
86
116
  value: function onTouch(event) {
87
117
  event.preventDefault(); // Prevents the default action (click event)
88
-
89
118
  this.props.onToggle(!this.props.toggled);
90
119
  }
91
120
  }, {
92
121
  key: "UNSAFE_componentWillReceiveProps",
93
122
  value: function UNSAFE_componentWillReceiveProps(nextProps) {
94
123
  var _this$props;
95
-
96
124
  this.setState({
97
125
  show: nextProps.show
98
126
  });
99
-
100
127
  if (nextProps.language !== ((_this$props = this.props) === null || _this$props === void 0 ? void 0 : _this$props.language)) {
101
128
  CorrectAnswerToggle.defaultProps = _objectSpread(_objectSpread({}, CorrectAnswerToggle.defaultProps), {}, {
102
129
  showMessage: translator.t('common:showCorrectAnswer', {
@@ -112,59 +139,57 @@ var CorrectAnswerToggle = /*#__PURE__*/function (_React$Component) {
112
139
  key: "render",
113
140
  value: function render() {
114
141
  var _this$props2 = this.props,
115
- classes = _this$props2.classes,
116
- className = _this$props2.className,
117
- toggled = _this$props2.toggled,
118
- hideMessage = _this$props2.hideMessage,
119
- showMessage = _this$props2.showMessage;
120
- return /*#__PURE__*/_react["default"].createElement("div", {
121
- className: (0, _classnames["default"])(classes.root, className)
142
+ className = _this$props2.className,
143
+ toggled = _this$props2.toggled,
144
+ hideMessage = _this$props2.hideMessage,
145
+ showMessage = _this$props2.showMessage;
146
+ return /*#__PURE__*/_react["default"].createElement(StyledRoot, {
147
+ className: className
122
148
  }, /*#__PURE__*/_react["default"].createElement(_expander["default"], {
123
- show: this.state.show,
124
- className: classes.expander
125
- }, /*#__PURE__*/_react["default"].createElement("div", {
126
- className: classes.content,
149
+ show: this.state.show
150
+ }, /*#__PURE__*/_react["default"].createElement(StyledContent, {
127
151
  onClick: this.onClick.bind(this),
128
152
  onTouchEnd: this.onTouch.bind(this)
129
- }, /*#__PURE__*/_react["default"].createElement("div", {
130
- className: classes.iconHolder
131
- }, /*#__PURE__*/_react["default"].createElement(_CSSTransition["default"], {
153
+ }, /*#__PURE__*/_react["default"].createElement(StyledIconHolder, null, /*#__PURE__*/_react["default"].createElement(_reactTransitionGroup.CSSTransition, {
132
154
  timeout: 400,
133
155
  "in": toggled,
134
156
  exit: !toggled,
135
- classNames: classes
136
- }, /*#__PURE__*/_react["default"].createElement(_icons.CorrectResponse, {
157
+ classNames: {
158
+ enter: 'enter',
159
+ enterActive: 'enter-active',
160
+ exit: 'exit',
161
+ exitActive: 'exit-active'
162
+ }
163
+ }, /*#__PURE__*/_react["default"].createElement(StyledIcon, null, /*#__PURE__*/_react["default"].createElement(_icons.CorrectResponse, {
137
164
  open: toggled,
138
- key: "correct-open",
139
- className: classes.icon
140
- })), /*#__PURE__*/_react["default"].createElement(_CSSTransition["default"], {
165
+ key: "correct-open"
166
+ }))), /*#__PURE__*/_react["default"].createElement(_reactTransitionGroup.CSSTransition, {
141
167
  timeout: 5000,
142
168
  "in": !toggled,
143
169
  exit: toggled,
144
- classNames: classes
145
- }, /*#__PURE__*/_react["default"].createElement(_icons.CorrectResponse, {
170
+ classNames: {
171
+ enter: 'enter',
172
+ enterActive: 'enter-active',
173
+ exit: 'exit',
174
+ exitActive: 'exit-active'
175
+ }
176
+ }, /*#__PURE__*/_react["default"].createElement(StyledIcon, null, /*#__PURE__*/_react["default"].createElement(_icons.CorrectResponse, {
146
177
  open: toggled,
147
- key: "correct-closed",
148
- className: classes.icon
149
- }))), /*#__PURE__*/_react["default"].createElement(_renderUi.Readable, {
178
+ key: "correct-closed"
179
+ })))), /*#__PURE__*/_react["default"].createElement(_renderUi.Readable, {
150
180
  "false": true
151
- }, /*#__PURE__*/_react["default"].createElement("div", {
152
- className: classes.label,
181
+ }, /*#__PURE__*/_react["default"].createElement(StyledLabel, {
153
182
  "aria-hidden": !this.state.show
154
183
  }, toggled ? hideMessage : showMessage)))));
155
184
  }
156
185
  }]);
157
- return CorrectAnswerToggle;
158
186
  }(_react["default"].Component);
159
-
160
- exports.CorrectAnswerToggle = CorrectAnswerToggle;
161
187
  (0, _defineProperty2["default"])(CorrectAnswerToggle, "propTypes", {
162
188
  onToggle: _propTypes["default"].func,
163
189
  toggled: _propTypes["default"].bool,
164
190
  show: _propTypes["default"].bool,
165
191
  hideMessage: _propTypes["default"].string,
166
192
  showMessage: _propTypes["default"].string,
167
- classes: _propTypes["default"].object.isRequired,
168
193
  className: _propTypes["default"].string,
169
194
  language: _propTypes["default"].string
170
195
  });
@@ -174,8 +199,5 @@ exports.CorrectAnswerToggle = CorrectAnswerToggle;
174
199
  show: false,
175
200
  toggled: false
176
201
  });
177
-
178
- var _default = (0, _styles2.withStyles)(_styles["default"])(CorrectAnswerToggle);
179
-
180
- exports["default"] = _default;
181
- //# sourceMappingURL=index.js.map
202
+ var _default = exports["default"] = CorrectAnswerToggle;
203
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfc3R5bGVzIiwicmVxdWlyZSIsIl9yZWFjdFRyYW5zaXRpb25Hcm91cCIsIl9pY29ucyIsIl9yZW5kZXJVaSIsIl9leHBhbmRlciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfcmVhY3QiLCJfcHJvcFR5cGVzIiwiX3RyYW5zbGF0b3IiLCJfY2FsbFN1cGVyIiwidCIsIm8iLCJlIiwiX2dldFByb3RvdHlwZU9mMiIsIl9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuMiIsIl9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QiLCJSZWZsZWN0IiwiY29uc3RydWN0IiwiY29uc3RydWN0b3IiLCJhcHBseSIsIkJvb2xlYW4iLCJwcm90b3R5cGUiLCJ2YWx1ZU9mIiwiY2FsbCIsIm93bktleXMiLCJyIiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsInRyYW5zbGF0b3IiLCJUcmFuc2xhdG9yIiwibm9Ub3VjaCIsIlN0eWxlZFJvb3QiLCJzdHlsZWQiLCJ3aWR0aCIsImN1cnNvciIsIlN0eWxlZENvbnRlbnQiLCJtYXJnaW4iLCJ0ZXh0QWxpZ24iLCJkaXNwbGF5IiwiU3R5bGVkTGFiZWwiLCJtaW5XaWR0aCIsImFsaWduU2VsZiIsInZlcnRpY2FsQWxpZ24iLCJjb2xvciIsImNvbmNhdCIsInRleHQiLCJmb250V2VpZ2h0IiwiU3R5bGVkSWNvbiIsInBvc2l0aW9uIiwib3BhY2l0eSIsInRyYW5zaXRpb24iLCJTdHlsZWRJY29uSG9sZGVyIiwibWFyZ2luUmlnaHQiLCJhbGlnbkl0ZW1zIiwiQ29ycmVjdEFuc3dlclRvZ2dsZSIsImV4cG9ydHMiLCJfUmVhY3QkQ29tcG9uZW50IiwicHJvcHMiLCJfdGhpcyIsIl9jbGFzc0NhbGxDaGVjazIiLCJzdGF0ZSIsInNob3ciLCJkZWZhdWx0UHJvcHMiLCJzaG93TWVzc2FnZSIsImxuZyIsImxhbmd1YWdlIiwiaGlkZU1lc3NhZ2UiLCJfaW5oZXJpdHMyIiwiX2NyZWF0ZUNsYXNzMiIsImtleSIsInZhbHVlIiwib25DbGljayIsIm9uVG9nZ2xlIiwidG9nZ2xlZCIsIm9uVG91Y2giLCJldmVudCIsInByZXZlbnREZWZhdWx0IiwiVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMiLCJuZXh0UHJvcHMiLCJfdGhpcyRwcm9wcyIsInNldFN0YXRlIiwicmVuZGVyIiwiX3RoaXMkcHJvcHMyIiwiY2xhc3NOYW1lIiwiY3JlYXRlRWxlbWVudCIsImJpbmQiLCJvblRvdWNoRW5kIiwiQ1NTVHJhbnNpdGlvbiIsInRpbWVvdXQiLCJleGl0IiwiY2xhc3NOYW1lcyIsImVudGVyIiwiZW50ZXJBY3RpdmUiLCJleGl0QWN0aXZlIiwiQ29ycmVjdFJlc3BvbnNlIiwib3BlbiIsIlJlYWRhYmxlIiwiUmVhY3QiLCJDb21wb25lbnQiLCJQcm9wVHlwZXMiLCJmdW5jIiwiYm9vbCIsInN0cmluZyIsIl9kZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vc3JjL2luZGV4LmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzdHlsZWQgfSBmcm9tICdAbXVpL21hdGVyaWFsL3N0eWxlcyc7XG5pbXBvcnQgeyBDU1NUcmFuc2l0aW9uIH0gZnJvbSAncmVhY3QtdHJhbnNpdGlvbi1ncm91cCc7XG5pbXBvcnQgeyBDb3JyZWN0UmVzcG9uc2UgfSBmcm9tICdAcGllLWxpYi9pY29ucyc7XG5pbXBvcnQgeyBSZWFkYWJsZSB9IGZyb20gJ0BwaWUtbGliL3JlbmRlci11aSc7XG5pbXBvcnQgRXhwYW5kZXIgZnJvbSAnLi9leHBhbmRlcic7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBUcmFuc2xhdG9yIGZyb20gJ0BwaWUtbGliL3RyYW5zbGF0b3InO1xuaW1wb3J0IHsgY29sb3IgfSBmcm9tICdAcGllLWxpYi9yZW5kZXItdWknO1xuXG5jb25zdCB7IHRyYW5zbGF0b3IgfSA9IFRyYW5zbGF0b3I7XG5cbmNvbnN0IG5vVG91Y2ggPSB7XG4gICctd2Via2l0LXRvdWNoQ2NhbGxvdXQnOiAnbm9uZScsXG4gICctd2Via2l0LXVzZXItc2VsZWN0JzogJ25vbmUnLFxuICAnLWtodG1sLXVzZXItc2VsZWN0JzogJ25vbmUnLFxuICAnLW1vei11c2VyLXNlbGVjdCc6ICdub25lJyxcbiAgJy1tcy11c2VyLXNlbGVjdCc6ICdub25lJyxcbiAgJ3VzZXItc2VsZWN0JzogJ25vbmUnLFxufTtcblxuY29uc3QgU3R5bGVkUm9vdCA9IHN0eWxlZCgnZGl2JykoKCkgPT4gKHtcbiAgd2lkdGg6ICcxMDAlJyxcbiAgY3Vyc29yOiAncG9pbnRlcicsXG59KSk7XG5cbmNvbnN0IFN0eWxlZENvbnRlbnQgPSBzdHlsZWQoJ2RpdicpKCgpID0+ICh7XG4gIG1hcmdpbjogJzAgYXV0bycsXG4gIHRleHRBbGlnbjogJ2NlbnRlcicsXG4gIGRpc3BsYXk6ICdmbGV4Jyxcbn0pKTtcblxuY29uc3QgU3R5bGVkTGFiZWwgPSBzdHlsZWQoJ2RpdicpKCgpID0+ICh7XG4gIHdpZHRoOiAnZml0LWNvbnRlbnQnLFxuICBtaW5XaWR0aDogJzE0MHB4JyxcbiAgYWxpZ25TZWxmOiAnY2VudGVyJyxcbiAgdmVydGljYWxBbGlnbjogJ21pZGRsZScsXG4gIGNvbG9yOiBgdmFyKC0tY29ycmVjdC1hbnN3ZXItdG9nZ2xlLWxhYmVsLWNvbG9yLCAke2NvbG9yLnRleHQoKX0pYCxcbiAgZm9udFdlaWdodDogJ25vcm1hbCcsXG4gIC4uLm5vVG91Y2gsXG59KSk7XG5cbmNvbnN0IFN0eWxlZEljb24gPSBzdHlsZWQoJ2RpdicpKCgpID0+ICh7XG4gIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICB3aWR0aDogJzI1cHgnLFxuICAnJi5lbnRlcic6IHtcbiAgICBvcGFjaXR5OiAnMCcsXG4gIH0sXG4gICcmLmVudGVyLWFjdGl2ZSc6IHtcbiAgICBvcGFjaXR5OiAnMScsXG4gICAgdHJhbnNpdGlvbjogJ29wYWNpdHkgMC4zcyBlYXNlLWluJyxcbiAgfSxcbiAgJyYuZXhpdCc6IHtcbiAgICBvcGFjaXR5OiAnMScsXG4gIH0sXG4gICcmLmV4aXQtYWN0aXZlJzoge1xuICAgIG9wYWNpdHk6ICcwJyxcbiAgICB0cmFuc2l0aW9uOiAnb3BhY2l0eSAwLjNzIGVhc2UtaW4nLFxuICB9LFxufSkpO1xuXG5jb25zdCBTdHlsZWRJY29uSG9sZGVyID0gc3R5bGVkKCdkaXYnKSgoKSA9PiAoe1xuICB3aWR0aDogJzI1cHgnLFxuICBtYXJnaW5SaWdodDogJzVweCcsXG4gIGRpc3BsYXk6ICdmbGV4JyxcbiAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG59KSk7XG5cbi8qKlxuICogV2UgZXhwb3J0IHRoZSByYXcgdW5zdHlsZWQgY2xhc3MgZm9yIHRlc3RhYmlsaXR5LiBGb3IgcHVibGljIHVzZSBwbGVhc2UgdXNlIHRoZSBkZWZhdWx0IGV4cG9ydC5cbiAqL1xuZXhwb3J0IGNsYXNzIENvcnJlY3RBbnN3ZXJUb2dnbGUgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIG9uVG9nZ2xlOiBQcm9wVHlwZXMuZnVuYyxcbiAgICB0b2dnbGVkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBzaG93OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBoaWRlTWVzc2FnZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBzaG93TWVzc2FnZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgbGFuZ3VhZ2U6IFByb3BUeXBlcy5zdHJpbmcsXG4gIH07XG5cbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICBzaG93TWVzc2FnZTogJ1Nob3cgY29ycmVjdCBhbnN3ZXInLFxuICAgIGhpZGVNZXNzYWdlOiAnSGlkZSBjb3JyZWN0IGFuc3dlcicsXG4gICAgc2hvdzogZmFsc2UsXG4gICAgdG9nZ2xlZDogZmFsc2UsXG4gIH07XG5cbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG4gICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgIHNob3c6IHByb3BzLnNob3csXG4gICAgfTtcblxuICAgIENvcnJlY3RBbnN3ZXJUb2dnbGUuZGVmYXVsdFByb3BzID0ge1xuICAgICAgLi4uQ29ycmVjdEFuc3dlclRvZ2dsZS5kZWZhdWx0UHJvcHMsXG4gICAgICBzaG93TWVzc2FnZTogdHJhbnNsYXRvci50KCdjb21tb246c2hvd0NvcnJlY3RBbnN3ZXInLCB7IGxuZzogcHJvcHMubGFuZ3VhZ2UgfSksXG4gICAgICBoaWRlTWVzc2FnZTogdHJhbnNsYXRvci50KCdjb21tb246aGlkZUNvcnJlY3RBbnN3ZXInLCB7IGxuZzogcHJvcHMubGFuZ3VhZ2UgfSksXG4gICAgfTtcbiAgfVxuXG4gIG9uQ2xpY2soKSB7XG4gICAgdGhpcy5wcm9wcy5vblRvZ2dsZSghdGhpcy5wcm9wcy50b2dnbGVkKTtcbiAgfVxuICBvblRvdWNoKGV2ZW50KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsgLy8gUHJldmVudHMgdGhlIGRlZmF1bHQgYWN0aW9uIChjbGljayBldmVudClcbiAgICB0aGlzLnByb3BzLm9uVG9nZ2xlKCF0aGlzLnByb3BzLnRvZ2dsZWQpO1xuICB9XG5cbiAgVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMobmV4dFByb3BzKSB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICBzaG93OiBuZXh0UHJvcHMuc2hvdyxcbiAgICB9KTtcblxuICAgIGlmIChuZXh0UHJvcHMubGFuZ3VhZ2UgIT09IHRoaXMucHJvcHM/Lmxhbmd1YWdlKSB7XG4gICAgICBDb3JyZWN0QW5zd2VyVG9nZ2xlLmRlZmF1bHRQcm9wcyA9IHtcbiAgICAgICAgLi4uQ29ycmVjdEFuc3dlclRvZ2dsZS5kZWZhdWx0UHJvcHMsXG4gICAgICAgIHNob3dNZXNzYWdlOiB0cmFuc2xhdG9yLnQoJ2NvbW1vbjpzaG93Q29ycmVjdEFuc3dlcicsIHsgbG5nOiBuZXh0UHJvcHMubGFuZ3VhZ2UgfSksXG4gICAgICAgIGhpZGVNZXNzYWdlOiB0cmFuc2xhdG9yLnQoJ2NvbW1vbjpoaWRlQ29ycmVjdEFuc3dlcicsIHsgbG5nOiBuZXh0UHJvcHMubGFuZ3VhZ2UgfSksXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7IGNsYXNzTmFtZSwgdG9nZ2xlZCwgaGlkZU1lc3NhZ2UsIHNob3dNZXNzYWdlIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRSb290IGNsYXNzTmFtZT17Y2xhc3NOYW1lfT5cbiAgICAgICAgPEV4cGFuZGVyIHNob3c9e3RoaXMuc3RhdGUuc2hvd30+XG4gICAgICAgICAgPFN0eWxlZENvbnRlbnQgb25DbGljaz17dGhpcy5vbkNsaWNrLmJpbmQodGhpcyl9IG9uVG91Y2hFbmQ9e3RoaXMub25Ub3VjaC5iaW5kKHRoaXMpfT5cbiAgICAgICAgICAgIDxTdHlsZWRJY29uSG9sZGVyPlxuICAgICAgICAgICAgICA8Q1NTVHJhbnNpdGlvbiBcbiAgICAgICAgICAgICAgICB0aW1lb3V0PXs0MDB9IFxuICAgICAgICAgICAgICAgIGluPXt0b2dnbGVkfSBcbiAgICAgICAgICAgICAgICBleGl0PXshdG9nZ2xlZH0gXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lcz17e1xuICAgICAgICAgICAgICAgICAgZW50ZXI6ICdlbnRlcicsXG4gICAgICAgICAgICAgICAgICBlbnRlckFjdGl2ZTogJ2VudGVyLWFjdGl2ZScsXG4gICAgICAgICAgICAgICAgICBleGl0OiAnZXhpdCcsXG4gICAgICAgICAgICAgICAgICBleGl0QWN0aXZlOiAnZXhpdC1hY3RpdmUnXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTdHlsZWRJY29uPlxuICAgICAgICAgICAgICAgICAgPENvcnJlY3RSZXNwb25zZSBvcGVuPXt0b2dnbGVkfSBrZXk9XCJjb3JyZWN0LW9wZW5cIiAvPlxuICAgICAgICAgICAgICAgIDwvU3R5bGVkSWNvbj5cbiAgICAgICAgICAgICAgPC9DU1NUcmFuc2l0aW9uPlxuICAgICAgICAgICAgICA8Q1NTVHJhbnNpdGlvbiBcbiAgICAgICAgICAgICAgICB0aW1lb3V0PXs1MDAwfSBcbiAgICAgICAgICAgICAgICBpbj17IXRvZ2dsZWR9IFxuICAgICAgICAgICAgICAgIGV4aXQ9e3RvZ2dsZWR9IFxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZXM9e3tcbiAgICAgICAgICAgICAgICAgIGVudGVyOiAnZW50ZXInLFxuICAgICAgICAgICAgICAgICAgZW50ZXJBY3RpdmU6ICdlbnRlci1hY3RpdmUnLFxuICAgICAgICAgICAgICAgICAgZXhpdDogJ2V4aXQnLFxuICAgICAgICAgICAgICAgICAgZXhpdEFjdGl2ZTogJ2V4aXQtYWN0aXZlJ1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8U3R5bGVkSWNvbj5cbiAgICAgICAgICAgICAgICAgIDxDb3JyZWN0UmVzcG9uc2Ugb3Blbj17dG9nZ2xlZH0ga2V5PVwiY29ycmVjdC1jbG9zZWRcIiAvPlxuICAgICAgICAgICAgICAgIDwvU3R5bGVkSWNvbj5cbiAgICAgICAgICAgICAgPC9DU1NUcmFuc2l0aW9uPlxuICAgICAgICAgICAgPC9TdHlsZWRJY29uSG9sZGVyPlxuICAgICAgICAgICAgPFJlYWRhYmxlIGZhbHNlPlxuICAgICAgICAgICAgICA8U3R5bGVkTGFiZWwgYXJpYS1oaWRkZW49eyF0aGlzLnN0YXRlLnNob3d9PlxuICAgICAgICAgICAgICAgIHt0b2dnbGVkID8gaGlkZU1lc3NhZ2UgOiBzaG93TWVzc2FnZX1cbiAgICAgICAgICAgICAgPC9TdHlsZWRMYWJlbD5cbiAgICAgICAgICAgIDwvUmVhZGFibGU+XG4gICAgICAgICAgPC9TdHlsZWRDb250ZW50PlxuICAgICAgICA8L0V4cGFuZGVyPlxuICAgICAgPC9TdHlsZWRSb290PlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgQ29ycmVjdEFuc3dlclRvZ2dsZTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBLElBQUFBLE9BQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLHFCQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxNQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxTQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxTQUFBLEdBQUFDLHNCQUFBLENBQUFMLE9BQUE7QUFDQSxJQUFBTSxNQUFBLEdBQUFELHNCQUFBLENBQUFMLE9BQUE7QUFDQSxJQUFBTyxVQUFBLEdBQUFGLHNCQUFBLENBQUFMLE9BQUE7QUFDQSxJQUFBUSxXQUFBLEdBQUFILHNCQUFBLENBQUFMLE9BQUE7QUFBNkMsU0FBQVMsV0FBQUMsQ0FBQSxFQUFBQyxDQUFBLEVBQUFDLENBQUEsV0FBQUQsQ0FBQSxPQUFBRSxnQkFBQSxhQUFBRixDQUFBLE9BQUFHLDJCQUFBLGFBQUFKLENBQUEsRUFBQUsseUJBQUEsS0FBQUMsT0FBQSxDQUFBQyxTQUFBLENBQUFOLENBQUEsRUFBQUMsQ0FBQSxZQUFBQyxnQkFBQSxhQUFBSCxDQUFBLEVBQUFRLFdBQUEsSUFBQVAsQ0FBQSxDQUFBUSxLQUFBLENBQUFULENBQUEsRUFBQUUsQ0FBQTtBQUFBLFNBQUFHLDBCQUFBLGNBQUFMLENBQUEsSUFBQVUsT0FBQSxDQUFBQyxTQUFBLENBQUFDLE9BQUEsQ0FBQUMsSUFBQSxDQUFBUCxPQUFBLENBQUFDLFNBQUEsQ0FBQUcsT0FBQSxpQ0FBQVYsQ0FBQSxhQUFBSyx5QkFBQSxZQUFBQSwwQkFBQSxhQUFB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RUFBQztNQUFjLENBQUUsQ0FDMUMsQ0FDQyxDQUFDLGVBQ2hCNUUsTUFBQSxZQUFBMkYsYUFBQSxDQUFDaEcscUJBQUEsQ0FBQW1HLGFBQWE7UUFDWkMsT0FBTyxFQUFFLElBQUs7UUFDZCxNQUFJLENBQUNmLE9BQVE7UUFDYmdCLElBQUksRUFBRWhCLE9BQVE7UUFDZGlCLFVBQVUsRUFBRTtVQUNWQyxLQUFLLEVBQUUsT0FBTztVQUNkQyxXQUFXLEVBQUUsY0FBYztVQUMzQkgsSUFBSSxFQUFFLE1BQU07VUFDWkksVUFBVSxFQUFFO1FBQ2Q7TUFBRSxnQkFFRnBHLE1BQUEsWUFBQTJGLGFBQUEsQ0FBQ3JDLFVBQVUscUJBQ1R0RCxNQUFBLFlBQUEyRixhQUFBLENBQUMvRixNQUFBLENBQUF5RyxlQUFlO1FBQUNDLElBQUksRUFBRXRCLE9BQVE7UUFBQ0osR0FBRyxFQUFDO01BQWdCLENBQUUsQ0FDNUMsQ0FDQyxDQUNDLENBQUMsZUFDbkI1RSxNQUFBLFlBQUEyRixhQUFBLENBQUM5RixTQUFBLENBQUEwRyxRQUFRO1FBQUM7TUFBSyxnQkFDYnZHLE1BQUEsWUFBQTJGLGFBQUEsQ0FBQzdDLFdBQVc7UUFBQyxlQUFhLENBQUMsSUFBSSxDQUFDcUIsS0FBSyxDQUFDQztNQUFLLEdBQ3hDWSxPQUFPLEdBQUdQLFdBQVcsR0FBR0gsV0FDZCxDQUNMLENBQ0csQ0FDUCxDQUNBLENBQUM7SUFFakI7RUFBQztBQUFBLEVBckdzQ2tDLGlCQUFLLENBQUNDLFNBQVM7QUFBQSxJQUFBMUUsZ0JBQUEsYUFBM0M4QixtQkFBbUIsZUFDWDtFQUNqQmtCLFFBQVEsRUFBRTJCLHFCQUFTLENBQUNDLElBQUk7RUFDeEIzQixPQUFPLEVBQUUwQixxQkFBUyxDQUFDRSxJQUFJO0VBQ3ZCeEMsSUFBSSxFQUFFc0MscUJBQVMsQ0FBQ0UsSUFBSTtFQUNwQm5DLFdBQVcsRUFBRWlDLHFCQUFTLENBQUNHLE1BQU07RUFDN0J2QyxXQUFXLEVBQUVvQyxxQkFBUyxDQUFDRyxNQUFNO0VBQzdCbkIsU0FBUyxFQUFFZ0IscUJBQVMsQ0FBQ0csTUFBTTtFQUMzQnJDLFFBQVEsRUFBRWtDLHFCQUFTLENBQUNHO0FBQ3RCLENBQUM7QUFBQSxJQUFBOUUsZ0JBQUEsYUFUVThCLG1CQUFtQixrQkFXUjtFQUNwQlMsV0FBVyxFQUFFLHFCQUFxQjtFQUNsQ0csV0FBVyxFQUFFLHFCQUFxQjtFQUNsQ0wsSUFBSSxFQUFFLEtBQUs7RUFDWFksT0FBTyxFQUFFO0FBQ1gsQ0FBQztBQUFBLElBQUE4QixRQUFBLEdBQUFoRCxPQUFBLGNBd0ZZRCxtQkFBbUIiLCJpZ25vcmVMaXN0IjpbXX0=
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.jsx"],"names":["translator","Translator","CorrectAnswerToggle","props","state","show","defaultProps","showMessage","t","lng","language","hideMessage","onToggle","toggled","event","preventDefault","nextProps","setState","classes","className","root","expander","content","onClick","bind","onTouch","iconHolder","icon","label","React","Component","PropTypes","func","bool","string","object","isRequired","styles"],"mappings":"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","sourcesContent":["import styles from './styles';\nimport { withStyles } from '@material-ui/core/styles';\nimport CSSTransition from 'react-transition-group/CSSTransition';\nimport { CorrectResponse } from '@pie-lib/icons';\nimport { Readable } from '@pie-lib/render-ui';\nimport Expander from './expander';\nimport React from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport Translator from '@pie-lib/translator';\n\nconst { translator } = Translator;\n\n/**\n * We export the raw unstyled class for testability. For public use please use the default export.\n */\nexport class CorrectAnswerToggle extends React.Component {\n static propTypes = {\n onToggle: PropTypes.func,\n toggled: PropTypes.bool,\n show: PropTypes.bool,\n hideMessage: PropTypes.string,\n showMessage: PropTypes.string,\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n language: PropTypes.string,\n };\n\n static defaultProps = {\n showMessage: 'Show correct answer',\n hideMessage: 'Hide correct answer',\n show: false,\n toggled: false,\n };\n\n constructor(props) {\n super(props);\n this.state = {\n show: props.show,\n };\n\n CorrectAnswerToggle.defaultProps = {\n ...CorrectAnswerToggle.defaultProps,\n showMessage: translator.t('common:showCorrectAnswer', { lng: props.language }),\n hideMessage: translator.t('common:hideCorrectAnswer', { lng: props.language }),\n };\n }\n\n onClick() {\n this.props.onToggle(!this.props.toggled);\n }\n onTouch(event) {\n event.preventDefault(); // Prevents the default action (click event)\n this.props.onToggle(!this.props.toggled);\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n this.setState({\n show: nextProps.show,\n });\n\n if (nextProps.language !== this.props?.language) {\n CorrectAnswerToggle.defaultProps = {\n ...CorrectAnswerToggle.defaultProps,\n showMessage: translator.t('common:showCorrectAnswer', { lng: nextProps.language }),\n hideMessage: translator.t('common:hideCorrectAnswer', { lng: nextProps.language }),\n };\n }\n }\n\n render() {\n const { classes, className, toggled, hideMessage, showMessage } = this.props;\n\n return (\n <div className={classNames(classes.root, className)}>\n <Expander show={this.state.show} className={classes.expander}>\n <div className={classes.content} onClick={this.onClick.bind(this)} onTouchEnd={this.onTouch.bind(this)}>\n <div className={classes.iconHolder}>\n <CSSTransition timeout={400} in={toggled} exit={!toggled} classNames={classes}>\n <CorrectResponse open={toggled} key=\"correct-open\" className={classes.icon} />\n </CSSTransition>\n <CSSTransition timeout={5000} in={!toggled} exit={toggled} classNames={classes}>\n <CorrectResponse open={toggled} key=\"correct-closed\" className={classes.icon} />\n </CSSTransition>\n </div>\n <Readable false>\n <div className={classes.label} aria-hidden={!this.state.show}>\n {toggled ? hideMessage : showMessage}\n </div>\n </Readable>\n </div>\n </Expander>\n </div>\n );\n }\n}\n\nexport default withStyles(styles)(CorrectAnswerToggle);\n"],"file":"index.js"}
1
+ {"version":3,"file":"index.js","names":["_styles","require","_reactTransitionGroup","_icons","_renderUi","_expander","_interopRequireDefault","_react","_propTypes","_translator","_callSuper","t","o","e","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","prototype","valueOf","call","ownKeys","r","Object","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","enumerable","push","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","translator","Translator","noTouch","StyledRoot","styled","width","cursor","StyledContent","margin","textAlign","display","StyledLabel","minWidth","alignSelf","verticalAlign","color","concat","text","fontWeight","StyledIcon","position","opacity","transition","StyledIconHolder","marginRight","alignItems","CorrectAnswerToggle","exports","_React$Component","props","_this","_classCallCheck2","state","show","defaultProps","showMessage","lng","language","hideMessage","_inherits2","_createClass2","key","value","onClick","onToggle","toggled","onTouch","event","preventDefault","UNSAFE_componentWillReceiveProps","nextProps","_this$props","setState","render","_this$props2","className","createElement","bind","onTouchEnd","CSSTransition","timeout","exit","classNames","enter","enterActive","exitActive","CorrectResponse","open","Readable","React","Component","PropTypes","func","bool","string","_default"],"sources":["../src/index.jsx"],"sourcesContent":["import { styled } from '@mui/material/styles';\nimport { CSSTransition } from 'react-transition-group';\nimport { CorrectResponse } from '@pie-lib/icons';\nimport { Readable } from '@pie-lib/render-ui';\nimport Expander from './expander';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport Translator from '@pie-lib/translator';\nimport { color } from '@pie-lib/render-ui';\n\nconst { translator } = Translator;\n\nconst noTouch = {\n '-webkit-touchCcallout': 'none',\n '-webkit-user-select': 'none',\n '-khtml-user-select': 'none',\n '-moz-user-select': 'none',\n '-ms-user-select': 'none',\n 'user-select': 'none',\n};\n\nconst StyledRoot = styled('div')(() => ({\n width: '100%',\n cursor: 'pointer',\n}));\n\nconst StyledContent = styled('div')(() => ({\n margin: '0 auto',\n textAlign: 'center',\n display: 'flex',\n}));\n\nconst StyledLabel = styled('div')(() => ({\n width: 'fit-content',\n minWidth: '140px',\n alignSelf: 'center',\n verticalAlign: 'middle',\n color: `var(--correct-answer-toggle-label-color, ${color.text()})`,\n fontWeight: 'normal',\n ...noTouch,\n}));\n\nconst StyledIcon = styled('div')(() => ({\n position: 'absolute',\n width: '25px',\n '&.enter': {\n opacity: '0',\n },\n '&.enter-active': {\n opacity: '1',\n transition: 'opacity 0.3s ease-in',\n },\n '&.exit': {\n opacity: '1',\n },\n '&.exit-active': {\n opacity: '0',\n transition: 'opacity 0.3s ease-in',\n },\n}));\n\nconst StyledIconHolder = styled('div')(() => ({\n width: '25px',\n marginRight: '5px',\n display: 'flex',\n alignItems: 'center',\n}));\n\n/**\n * We export the raw unstyled class for testability. For public use please use the default export.\n */\nexport class CorrectAnswerToggle extends React.Component {\n static propTypes = {\n onToggle: PropTypes.func,\n toggled: PropTypes.bool,\n show: PropTypes.bool,\n hideMessage: PropTypes.string,\n showMessage: PropTypes.string,\n className: PropTypes.string,\n language: PropTypes.string,\n };\n\n static defaultProps = {\n showMessage: 'Show correct answer',\n hideMessage: 'Hide correct answer',\n show: false,\n toggled: false,\n };\n\n constructor(props) {\n super(props);\n this.state = {\n show: props.show,\n };\n\n CorrectAnswerToggle.defaultProps = {\n ...CorrectAnswerToggle.defaultProps,\n showMessage: translator.t('common:showCorrectAnswer', { lng: props.language }),\n hideMessage: translator.t('common:hideCorrectAnswer', { lng: props.language }),\n };\n }\n\n onClick() {\n this.props.onToggle(!this.props.toggled);\n }\n onTouch(event) {\n event.preventDefault(); // Prevents the default action (click event)\n this.props.onToggle(!this.props.toggled);\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n this.setState({\n show: nextProps.show,\n });\n\n if (nextProps.language !== this.props?.language) {\n CorrectAnswerToggle.defaultProps = {\n ...CorrectAnswerToggle.defaultProps,\n showMessage: translator.t('common:showCorrectAnswer', { lng: nextProps.language }),\n hideMessage: translator.t('common:hideCorrectAnswer', { lng: nextProps.language }),\n };\n }\n }\n\n render() {\n const { className, toggled, hideMessage, showMessage } = this.props;\n\n return (\n <StyledRoot className={className}>\n <Expander show={this.state.show}>\n <StyledContent onClick={this.onClick.bind(this)} onTouchEnd={this.onTouch.bind(this)}>\n <StyledIconHolder>\n <CSSTransition \n timeout={400} \n in={toggled} \n exit={!toggled} \n classNames={{\n enter: 'enter',\n enterActive: 'enter-active',\n exit: 'exit',\n exitActive: 'exit-active'\n }}\n >\n <StyledIcon>\n <CorrectResponse open={toggled} key=\"correct-open\" />\n </StyledIcon>\n </CSSTransition>\n <CSSTransition \n timeout={5000} \n in={!toggled} \n exit={toggled} \n classNames={{\n enter: 'enter',\n enterActive: 'enter-active',\n exit: 'exit',\n exitActive: 'exit-active'\n }}\n >\n <StyledIcon>\n <CorrectResponse open={toggled} key=\"correct-closed\" />\n </StyledIcon>\n </CSSTransition>\n </StyledIconHolder>\n <Readable false>\n <StyledLabel aria-hidden={!this.state.show}>\n {toggled ? hideMessage : showMessage}\n </StyledLabel>\n </Readable>\n </StyledContent>\n </Expander>\n </StyledRoot>\n );\n }\n}\n\nexport default CorrectAnswerToggle;\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -6,40 +6,35 @@
6
6
  "keywords": [
7
7
  "react",
8
8
  "pie",
9
- "material-ui"
9
+ "mui",
10
+ "@mui/material"
10
11
  ],
11
12
  "publishConfig": {
12
13
  "access": "public"
13
14
  },
14
- "version": "2.25.3-next.2+9ae1017d",
15
+ "version": "2.25.4-next.0",
15
16
  "main": "lib/index.js",
16
17
  "module": "src/index.jsx",
17
18
  "scripts": {},
18
19
  "dependencies": {
19
- "@material-ui/core": "^3.8.3",
20
- "@pie-lib/icons": "^2.24.2-next.11+9ae1017d",
21
- "@pie-lib/render-ui": "^4.35.3-next.2+9ae1017d",
22
- "@pie-lib/translator": "^2.23.2-next.11+9ae1017d",
23
- "classnames": "^2.2.6",
20
+ "@emotion/react": "^11.14.0",
21
+ "@emotion/style": "^0.8.0",
22
+ "@mui/icons-material": "^7.3.4",
23
+ "@mui/material": "^7.3.4",
24
+ "@pie-lib/icons": "2.24.3-next.0",
25
+ "@pie-lib/render-ui": "4.35.4-next.0",
26
+ "@pie-lib/translator": "2.23.3-next.0",
24
27
  "lodash": "^4.17.11",
25
28
  "prop-types": "^15.6.2",
26
- "react-transition-group": "^2.5.2"
29
+ "react-transition-group": "^4.4.5"
27
30
  },
28
31
  "devDependencies": {
29
- "react": "^16.8.1",
30
- "react-dom": "^16.9.0"
32
+ "react": "^18.2.0",
33
+ "react-dom": "^18.2.0"
31
34
  },
32
35
  "peerDependencies": {
33
- "react": "^16.8.1",
34
- "react-dom": "^16.8.1"
36
+ "react": "^18.2.0",
37
+ "react-dom": "^18.2.0"
35
38
  },
36
- "gitHead": "9ae1017d80207591d7570de6d6153fa476f3b18b",
37
- "exports": {
38
- ".": {
39
- "require": "./lib/index.js",
40
- "import": "./src/index.jsx",
41
- "default": "./lib/index.js"
42
- },
43
- "./esm": "./esm/index.js"
44
- }
39
+ "gitHead": "ad47e833acbaecca94eab8df2aee2a1ee9d90516"
45
40
  }
@@ -1,99 +1,91 @@
1
- import { mount, shallow, configure } from 'enzyme';
2
-
3
- import Expander from '../expander';
1
+ import { render, screen } from '@testing-library/react';
2
+ import userEvent from '@testing-library/user-event';
4
3
  import React from 'react';
5
4
  import { CorrectAnswerToggle } from '../index';
6
- import Adapter from 'enzyme-adapter-react-16';
7
-
8
- configure({ adapter: new Adapter() });
9
5
 
10
6
  describe('CorrectAnswerToggle', () => {
11
7
  let onToggle;
12
- let wrapper;
13
- let sheet;
14
8
 
15
- let mkWrapper = (toggled, msgs) => {
16
- toggled = toggled === false ? false : true;
17
- msgs = msgs || {};
18
- return shallow(
9
+ const renderComponent = (toggled = true, msgs = {}) => {
10
+ return render(
19
11
  <CorrectAnswerToggle
12
+ show={true}
20
13
  toggled={toggled}
21
- classes={{
22
- root: 'root',
23
- label: 'label',
24
- }}
25
14
  onToggle={onToggle}
26
15
  hideMessage={msgs.hide}
27
16
  showMessage={msgs.show}
28
- sheet={sheet}
29
17
  />,
30
- {
31
- context: {},
32
- },
33
18
  );
34
19
  };
35
20
 
36
21
  beforeEach(() => {
37
- let iconStub = {};
38
-
39
- sheet = {
40
- classes: {
41
- root: 'root',
42
- label: 'label',
43
- },
44
- };
45
22
  onToggle = jest.fn();
46
- wrapper = mkWrapper();
47
23
  });
48
24
 
49
- describe('render', () => {
50
- it('has the hide message', () => {
51
- let holder = wrapper.find('.label');
52
- expect(holder.text()).toEqual('Hide correct answer');
25
+ describe('rendering', () => {
26
+ it('shows hide message when toggled is true', () => {
27
+ renderComponent(true);
28
+ expect(screen.getByText('Hide correct answer')).toBeInTheDocument();
53
29
  });
54
30
 
55
- it('has show message when toggled is false', () => {
56
- const w = mkWrapper(false);
57
- let holder = w.find(`.label`);
58
- expect(holder.text()).toEqual('Show correct answer');
31
+ it('shows show message when toggled is false', () => {
32
+ renderComponent(false);
33
+ expect(screen.getByText('Show correct answer')).toBeInTheDocument();
59
34
  });
60
35
 
61
- it('sets a custom hide message', () => {
62
- wrapper = mkWrapper(true, { hide: 'hide!' });
63
- let holder = wrapper.find('.label');
64
- expect(holder.text()).toEqual('hide!');
36
+ it('displays custom hide message', () => {
37
+ renderComponent(true, { hide: 'hide!' });
38
+ expect(screen.getByText('hide!')).toBeInTheDocument();
65
39
  });
66
40
 
67
- it('sets a custom show message', () => {
68
- wrapper = mkWrapper(false, { show: 'show!' });
69
- let holder = wrapper.find('.label');
70
- expect(holder.text()).toEqual('show!');
41
+ it('displays custom show message', () => {
42
+ renderComponent(false, { show: 'show!' });
43
+ expect(screen.getByText('show!')).toBeInTheDocument();
71
44
  });
72
45
  });
73
46
 
74
- describe('onClick', () => {
75
- it('calls onToggle', () => {
76
- wrapper
77
- .find(Expander)
78
- .childAt(0)
79
- .simulate('click');
80
- expect(onToggle.mock.calls[0][0]).toEqual(false);
47
+ describe('user interactions', () => {
48
+ it('calls onToggle with false when clicked while toggled', async () => {
49
+ const user = userEvent.setup();
50
+ renderComponent(true);
51
+
52
+ const button = screen.getByText('Hide correct answer');
53
+ await user.click(button);
54
+
55
+ expect(onToggle).toHaveBeenCalledWith(false);
81
56
  });
82
57
 
83
- it('calls onToggle with update state', () => {
84
- onToggle.mockReset();
85
- wrapper
86
- .find(Expander)
87
- .childAt(0)
88
- .simulate('click');
89
- expect(onToggle.mock.calls[0][0]).toEqual(false);
90
- //simulate updating the toggled prop
91
- wrapper.setProps({ toggled: false });
92
- wrapper
93
- .find(Expander)
94
- .childAt(0)
95
- .simulate('click');
96
- expect(onToggle.mock.calls[1][0]).toEqual(true);
58
+ it('calls onToggle with true when clicked while not toggled', async () => {
59
+ const user = userEvent.setup();
60
+ renderComponent(false);
61
+
62
+ const button = screen.getByText('Show correct answer');
63
+ await user.click(button);
64
+
65
+ expect(onToggle).toHaveBeenCalledWith(true);
66
+ });
67
+
68
+ it('toggles correctly after prop update', async () => {
69
+ const user = userEvent.setup();
70
+ const { rerender } = renderComponent(true);
71
+
72
+ // First click - toggled is true, should call with false
73
+ await user.click(screen.getByText('Hide correct answer'));
74
+ expect(onToggle).toHaveBeenCalledWith(false);
75
+
76
+ // Simulate prop update to toggled=false
77
+ onToggle.mockClear();
78
+ rerender(
79
+ <CorrectAnswerToggle
80
+ show={true}
81
+ toggled={false}
82
+ onToggle={onToggle}
83
+ />
84
+ );
85
+
86
+ // Second click - toggled is false, should call with true
87
+ await user.click(screen.getByText('Show correct answer'));
88
+ expect(onToggle).toHaveBeenCalledWith(true);
97
89
  });
98
90
  });
99
91
  });