@sb1/ffe-feedback-react 2.0.45 → 3.0.1

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 (69) hide show
  1. package/README.md +0 -5
  2. package/es/Animation.js +18 -0
  3. package/es/Feedback.js +61 -0
  4. package/es/FeedbackExpanded.js +35 -0
  5. package/es/FeedbackThumbs.js +13 -0
  6. package/es/highFiveAnimation.js +24158 -0
  7. package/es/i18n/en.js +16 -16
  8. package/es/i18n/nb.js +16 -16
  9. package/es/i18n/nn.js +16 -16
  10. package/es/i18n/texts.js +8 -0
  11. package/es/icons/ThumbDown.js +14 -0
  12. package/es/icons/ThumbDownFill.js +14 -0
  13. package/es/icons/ThumbUp.js +14 -0
  14. package/es/icons/index.js +4 -4
  15. package/es/icons/thumbUpFill.js +14 -0
  16. package/es/index.js +1 -4
  17. package/lib/Animation.js +48 -0
  18. package/lib/Feedback.js +91 -0
  19. package/lib/FeedbackExpanded.js +62 -0
  20. package/lib/FeedbackThumbs.js +20 -0
  21. package/lib/highFiveAnimation.js +24160 -0
  22. package/lib/i18n/en.js +18 -21
  23. package/lib/i18n/nb.js +18 -21
  24. package/lib/i18n/nn.js +18 -21
  25. package/lib/i18n/texts.js +11 -0
  26. package/lib/icons/ThumbDown.js +21 -0
  27. package/lib/icons/ThumbDownFill.js +21 -0
  28. package/lib/icons/ThumbUp.js +21 -0
  29. package/lib/icons/index.js +10 -33
  30. package/lib/icons/thumbUpFill.js +21 -0
  31. package/lib/index.js +4 -15
  32. package/package.json +7 -9
  33. package/types/Animation.d.ts +2 -0
  34. package/types/Feedback.d.ts +15 -0
  35. package/types/FeedbackExpanded.d.ts +12 -0
  36. package/types/FeedbackThumbs.d.ts +9 -0
  37. package/types/highFiveAnimation.d.ts +4085 -0
  38. package/types/i18n/en.d.ts +16 -0
  39. package/types/i18n/nb.d.ts +16 -0
  40. package/types/i18n/nn.d.ts +16 -0
  41. package/types/i18n/texts.d.ts +50 -0
  42. package/types/icons/ThumbDown.d.ts +2 -0
  43. package/types/icons/ThumbDownFill.d.ts +2 -0
  44. package/types/icons/ThumbUp.d.ts +2 -0
  45. package/types/icons/index.d.ts +4 -0
  46. package/types/icons/thumbUpFill.d.ts +2 -0
  47. package/types/index.d.ts +2 -29
  48. package/es/animation.js +0 -22
  49. package/es/feedback-expanded.js +0 -82
  50. package/es/feedback-thumbs.js +0 -45
  51. package/es/feedback.js +0 -120
  52. package/es/high-five-animation.js +0 -1
  53. package/es/i18n/i18n.js +0 -8
  54. package/es/icons/thumb-down-fill.js +0 -14
  55. package/es/icons/thumb-down.js +0 -14
  56. package/es/icons/thumb-up-fill.js +0 -14
  57. package/es/icons/thumb-up.js +0 -14
  58. package/es/index.d.js +0 -3
  59. package/lib/animation.js +0 -32
  60. package/lib/feedback-expanded.js +0 -92
  61. package/lib/feedback-thumbs.js +0 -52
  62. package/lib/feedback.js +0 -129
  63. package/lib/high-five-animation.js +0 -1
  64. package/lib/i18n/i18n.js +0 -15
  65. package/lib/icons/thumb-down-fill.js +0 -23
  66. package/lib/icons/thumb-down.js +0 -23
  67. package/lib/icons/thumb-up-fill.js +0 -23
  68. package/lib/icons/thumb-up.js +0 -23
  69. package/lib/index.d.js +0 -16
@@ -1,14 +0,0 @@
1
- function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
- import * as React from 'react';
3
- var ThumbDownFill = function ThumbDownFill(props) {
4
- return /*#__PURE__*/React.createElement("svg", _extends({
5
- "aria-hidden": true,
6
- xmlns: "http://www.w3.org/2000/svg",
7
- width: 48,
8
- height: 48,
9
- viewBox: "0 -960 960 960"
10
- }, props), /*#__PURE__*/React.createElement("path", {
11
- d: "M239-840h467v512L428-40l-33-26q-11-8-14.5-18t-3.5-23v-10l45-211H100q-23 0-41.5-18.5T40-388v-82q0-11 2.5-25.5T50-521l116-268q9-21 29.5-36t43.5-15m527 512v-512h114v512z"
12
- }));
13
- };
14
- export default ThumbDownFill;
@@ -1,14 +0,0 @@
1
- function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
- import * as React from 'react';
3
- var ThumbDown = function ThumbDown(props) {
4
- return /*#__PURE__*/React.createElement("svg", _extends({
5
- "aria-hidden": true,
6
- xmlns: "http://www.w3.org/2000/svg",
7
- width: 48,
8
- height: 48,
9
- viewBox: "0 -960 960 960"
10
- }, props), /*#__PURE__*/React.createElement("path", {
11
- d: "M105-328q-24 0-42-18t-18-42v-81.839Q45-477 43.5-484.5T45-499l126-290q8.878-21.25 29.595-36.125T244-840h444v512L463-90q-13.6 14-32.187 16.5T395-81q-17-10-25.5-27.5t-4.2-36.5L404-328zm523-25v-427H231L105-481v93h373l-53 249zm193-487q24.75 0 42.375 17.625T881-780v392q0 24.75-17.625 42.375T821-328H688v-60h133v-392H688v-60zm-193 60v427z"
12
- }));
13
- };
14
- export default ThumbDown;
@@ -1,14 +0,0 @@
1
- function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
- import * as React from 'react';
3
- var ThumbUpFill = function ThumbUpFill(props) {
4
- return /*#__PURE__*/React.createElement("svg", _extends({
5
- "aria-hidden": true,
6
- xmlns: "http://www.w3.org/2000/svg",
7
- width: 48,
8
- height: 48,
9
- viewBox: "0 -960 960 960"
10
- }, props), /*#__PURE__*/React.createElement("path", {
11
- d: "M860-632q23 0 41.5 18.5T920-572v82q0 11-2.5 25.5T910-439L794-171q-9 21-29.5 36T721-120H314q-25 0-42.5-17.5T254-180v-428q0-11 4.5-22t12.5-19l207-218q14-14 33.5-17t36.5 7 25.5 28 4.5 37l-38 180zM137-120q-23 0-40-17t-17-40v-398q0-23 17-40t40-17 40 17 17 40v398q0 23-17 40t-40 17"
12
- }));
13
- };
14
- export default ThumbUpFill;
@@ -1,14 +0,0 @@
1
- function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
- import * as React from 'react';
3
- var ThumbUp = function ThumbUp(props) {
4
- return /*#__PURE__*/React.createElement("svg", _extends({
5
- "aria-hidden": true,
6
- xmlns: "http://www.w3.org/2000/svg",
7
- width: 48,
8
- height: 48,
9
- viewBox: "0 -960 960 960"
10
- }, props), /*#__PURE__*/React.createElement("path", {
11
- d: "M855-632q24 0 42 18t18 42v81.839q0 7.161 1.5 14.661T915-461L789-171q-8.878 21.25-29.595 36.125T716-120H272v-512l225-238q13.6-14 32.187-16.5T565-879q17 10 25.5 27.5t4.2 36.5L556-632zm-523 25v427h397l126-299v-93H482l53-249zM139-120q-24.75 0-42.375-17.625T79-180v-392q0-24.75 17.625-42.375T139-632h133v60H139v392h133v60zm193-60v-427z"
12
- }));
13
- };
14
- export default ThumbUp;
package/es/index.d.js DELETED
@@ -1,3 +0,0 @@
1
- import * as React from 'react';
2
- import { Thumbs } from '../src/feedback-thumbs';
3
- export { Thumbs };
package/lib/animation.js DELETED
@@ -1,32 +0,0 @@
1
- "use strict";
2
-
3
- function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.Animation = void 0;
8
- var _lottieWeb = _interopRequireDefault(require("lottie-web"));
9
- var _react = _interopRequireWildcard(require("react"));
10
- var _highFiveAnimation = _interopRequireDefault(require("./high-five-animation.js"));
11
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
12
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
13
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
- var Animation = exports.Animation = function Animation() {
15
- var containerRef = (0, _react.useRef)();
16
- (0, _react.useEffect)(function () {
17
- _lottieWeb.default.loadAnimation({
18
- container: containerRef.current,
19
- renderer: 'svg',
20
- loop: false,
21
- autoplay: true,
22
- animationData: _highFiveAnimation.default
23
- });
24
- }, []);
25
- return /*#__PURE__*/_react.default.createElement("div", {
26
- ref: containerRef,
27
- style: {
28
- width: '180px',
29
- height: '180px'
30
- }
31
- });
32
- };
@@ -1,92 +0,0 @@
1
- "use strict";
2
-
3
- function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = void 0;
8
- var _react = _interopRequireWildcard(require("react"));
9
- var _ffeCoreReact = require("@sb1/ffe-core-react");
10
- var _i18n = _interopRequireDefault(require("./i18n/i18n"));
11
- var _ffeFormReact = require("@sb1/ffe-form-react");
12
- var _ffeButtonsReact = require("@sb1/ffe-buttons-react");
13
- var _propTypes = require("prop-types");
14
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
16
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
17
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
18
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
19
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
20
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
21
- function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
22
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
23
- var FeedbackExpanded = function FeedbackExpanded(_ref) {
24
- var _ref$language = _ref.language,
25
- language = _ref$language === void 0 ? 'nb' : _ref$language,
26
- onSend = _ref.onSend,
27
- onCancel = _ref.onCancel,
28
- _ref$contactLink = _ref.contactLink,
29
- contactLink = _ref$contactLink === void 0 ? null : _ref$contactLink;
30
- var _useState = (0, _react.useState)(''),
31
- _useState2 = _slicedToArray(_useState, 2),
32
- feedbackText = _useState2[0],
33
- setFeedbackText = _useState2[1];
34
- var _useState3 = (0, _react.useState)(undefined),
35
- _useState4 = _slicedToArray(_useState3, 2),
36
- fieldMessage = _useState4[0],
37
- setFieldMessage = _useState4[1];
38
- var validateMessage = function validateMessage() {
39
- if (feedbackText.length < 3) {
40
- setFieldMessage(_i18n.default[language].FEEDBACK_SHORT);
41
- return false;
42
- }
43
- setFieldMessage(undefined);
44
- return true;
45
- };
46
- var isValidContactLink = contactLink && (contactLink.url || contactLink.onClick);
47
- var getLinkButton = function getLinkButton() {
48
- var _contactLink$linkText;
49
- return /*#__PURE__*/_react.default.createElement(_ffeButtonsReact.TertiaryButton, {
50
- element: 'a',
51
- href: contactLink.url,
52
- className: "ffe-feedback__link-button",
53
- onClick: contactLink.onClick
54
- }, (_contactLink$linkText = contactLink.linkText) !== null && _contactLink$linkText !== void 0 ? _contactLink$linkText : _i18n.default[language].FEEDBACK_LINKTEXT);
55
- };
56
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_ffeCoreReact.Paragraph, null, _i18n.default[language].FEEDBACK_ANSWER, isValidContactLink && _i18n.default[language].QUESTIONS, isValidContactLink && getLinkButton()), /*#__PURE__*/_react.default.createElement(_ffeCoreReact.Paragraph, null, _i18n.default[language].FEEDBACK_SENSITIVE), /*#__PURE__*/_react.default.createElement(_ffeFormReact.InputGroup, {
57
- className: "ffe-feedback__textarea-container",
58
- fieldMessage: fieldMessage
59
- }, /*#__PURE__*/_react.default.createElement(_ffeFormReact.TextArea, {
60
- "data-testid": "feedbackTextArea",
61
- onChange: function onChange(event) {
62
- return setFeedbackText(event.target.value);
63
- },
64
- value: feedbackText,
65
- rows: 6,
66
- maxLength: 1000,
67
- id: "textarea-feedback",
68
- onBlur: validateMessage,
69
- title: _i18n.default[language].FEEDBACK_IMPROVE
70
- })), /*#__PURE__*/_react.default.createElement(_ffeButtonsReact.ButtonGroup, {
71
- className: "ffe-feedback__button-group"
72
- }, /*#__PURE__*/_react.default.createElement(_ffeButtonsReact.ActionButton, {
73
- onClick: function onClick() {
74
- if (validateMessage()) {
75
- onSend(feedbackText);
76
- }
77
- }
78
- }, _i18n.default[language].FEEDBACK_BUTTON_SEND), /*#__PURE__*/_react.default.createElement(_ffeButtonsReact.TertiaryButton, {
79
- onClick: onCancel
80
- }, _i18n.default[language].FEEDBACK_BUTTON_CANCEL)));
81
- };
82
- var _default = exports.default = FeedbackExpanded;
83
- FeedbackExpanded.propTypes = {
84
- language: (0, _propTypes.oneOf)(['nb', 'nn', 'en']),
85
- onSend: _propTypes.func.isRequired,
86
- onCancel: _propTypes.func.isRequired,
87
- contactLink: (0, _propTypes.shape)({
88
- url: _propTypes.string,
89
- linkText: _propTypes.string,
90
- onClick: _propTypes.func
91
- })
92
- };
@@ -1,52 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = exports.Thumbs = void 0;
7
- var _react = _interopRequireDefault(require("react"));
8
- var _i18n = _interopRequireDefault(require("./i18n/i18n"));
9
- var _propTypes = require("prop-types");
10
- var _icons = require("./icons");
11
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
- var Thumbs = exports.Thumbs = {
13
- UP: 'THUMB_UP',
14
- DOWN: 'THUMB_DOWN'
15
- };
16
- var FeedbackThumbs = function FeedbackThumbs(_ref) {
17
- var _ref$language = _ref.language,
18
- language = _ref$language === void 0 ? 'nb' : _ref$language,
19
- _onClick = _ref.onClick,
20
- headingId = _ref.headingId;
21
- return /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("button", {
22
- "aria-label": _i18n.default[language].ARIA_LABEL_THUMB_UP,
23
- "aria-describedby": headingId,
24
- className: "ffe-feedback__thumb",
25
- onClick: function onClick() {
26
- return _onClick(Thumbs.UP);
27
- },
28
- type: "button"
29
- }, /*#__PURE__*/_react.default.createElement(_icons.ThumbUp, {
30
- className: "ffe-feedback__thumb-icon"
31
- }), /*#__PURE__*/_react.default.createElement(_icons.ThumbUpFill, {
32
- className: "ffe-feedback__thumb-icon--fill"
33
- })), /*#__PURE__*/_react.default.createElement("button", {
34
- "aria-label": _i18n.default[language].ARIA_LABEL_THUMB_DOWN,
35
- "aria-describedby": headingId,
36
- className: "ffe-feedback__thumb",
37
- onClick: function onClick() {
38
- return _onClick(Thumbs.DOWN);
39
- },
40
- type: "button"
41
- }, /*#__PURE__*/_react.default.createElement(_icons.ThumbDown, {
42
- className: "ffe-feedback__thumb-icon"
43
- }), /*#__PURE__*/_react.default.createElement(_icons.ThumbDownFill, {
44
- className: "ffe-feedback__thumb-icon--fill"
45
- })));
46
- };
47
- var _default = exports.default = FeedbackThumbs;
48
- FeedbackThumbs.propTypes = {
49
- language: (0, _propTypes.oneOf)(['nb', 'nn', 'en']),
50
- onClick: _propTypes.func.isRequired,
51
- headingId: _propTypes.string.isRequired
52
- };
package/lib/feedback.js DELETED
@@ -1,129 +0,0 @@
1
- "use strict";
2
-
3
- function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = exports.Feedback = void 0;
8
- var _react = _interopRequireWildcard(require("react"));
9
- var _reactDom = require("react-dom");
10
- var _animation = require("./animation");
11
- var _propTypes = require("prop-types");
12
- var _i18n = _interopRequireDefault(require("./i18n/i18n"));
13
- var _feedbackThumbs = _interopRequireWildcard(require("./feedback-thumbs"));
14
- var _classnames = _interopRequireDefault(require("classnames"));
15
- var _feedbackExpanded = _interopRequireDefault(require("./feedback-expanded"));
16
- var _uuid = require("uuid");
17
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
19
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
20
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
21
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
22
- function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
23
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
24
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
25
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
26
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
27
- function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
28
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
29
- var Feedback = exports.Feedback = function Feedback(_ref) {
30
- var headingLevel = _ref.headingLevel,
31
- _ref$language = _ref.language,
32
- language = _ref$language === void 0 ? 'nb' : _ref$language,
33
- onThumbClick = _ref.onThumbClick,
34
- onFeedbackSend = _ref.onFeedbackSend,
35
- bgColor = _ref.bgColor,
36
- bgDarkmodeColor = _ref.bgDarkmodeColor,
37
- _ref$contactLink = _ref.contactLink,
38
- contactLink = _ref$contactLink === void 0 ? null : _ref$contactLink;
39
- var feedbackSentRef = (0, _react.useRef)();
40
- var expandedRef = (0, _react.useRef)();
41
- var _useState = (0, _react.useState)(),
42
- _useState2 = _slicedToArray(_useState, 2),
43
- feedbackThumbClicked = _useState2[0],
44
- setFeedbackThumbClicked = _useState2[1];
45
- var _useState3 = (0, _react.useState)(false),
46
- _useState4 = _slicedToArray(_useState3, 2),
47
- expanded = _useState4[0],
48
- setExpanded = _useState4[1];
49
- var _useState5 = (0, _react.useState)(false),
50
- _useState6 = _slicedToArray(_useState5, 2),
51
- feedbackSent = _useState6[0],
52
- setFeedbackSent = _useState6[1];
53
- var headingId = (0, _react.useRef)((0, _uuid.v4)()).current;
54
- var feedbackClassnames = (0, _classnames.default)('ffe-feedback', _defineProperty(_defineProperty({}, "ffe-feedback--bg-".concat(bgColor), bgColor), "ffe-feedback--dm-bg-".concat(bgDarkmodeColor), bgDarkmodeColor));
55
- var handleThumbClicked = function handleThumbClicked(thumb) {
56
- setFeedbackThumbClicked(thumb);
57
- (0, _reactDom.flushSync)(function () {
58
- setExpanded(function (prevState) {
59
- return !prevState;
60
- });
61
- });
62
- expandedRef.current.focus();
63
- onThumbClick(thumb);
64
- };
65
- var handleFeedbackSent = function handleFeedbackSent(feedbackText) {
66
- (0, _reactDom.flushSync)(function () {
67
- setFeedbackSent(true);
68
- });
69
- feedbackSentRef.current.focus();
70
- onFeedbackSend(feedbackText);
71
- };
72
- if (feedbackSent) {
73
- return /*#__PURE__*/_react.default.createElement("div", {
74
- className: feedbackClassnames
75
- }, /*#__PURE__*/_react.default.createElement("div", {
76
- className: "ffe-feedback__content"
77
- }, /*#__PURE__*/_react.default.createElement("h".concat(headingLevel), {
78
- ref: feedbackSentRef,
79
- tabIndex: -1,
80
- className: 'ffe-h4'
81
- }, _i18n.default[language].FEEDBACK_SENT_HEADING), /*#__PURE__*/_react.default.createElement(_animation.Animation, null)));
82
- }
83
- if (expanded) {
84
- return /*#__PURE__*/_react.default.createElement("div", {
85
- className: feedbackClassnames
86
- }, /*#__PURE__*/_react.default.createElement("div", {
87
- className: "ffe-feedback__content"
88
- }, /*#__PURE__*/_react.default.createElement("h".concat(headingLevel), {
89
- ref: expandedRef,
90
- tabIndex: -1,
91
- className: 'ffe-h5'
92
- }, feedbackThumbClicked === _feedbackThumbs.Thumbs.UP ? _i18n.default[language].FEEDBACK_GOOD : _i18n.default[language].FEEDBACK_IMPROVE), /*#__PURE__*/_react.default.createElement(_feedbackExpanded.default, {
93
- language: language,
94
- onSend: handleFeedbackSent,
95
- onCancel: function onCancel() {
96
- return setExpanded(false);
97
- },
98
- contactLink: contactLink
99
- })));
100
- }
101
- return /*#__PURE__*/_react.default.createElement("div", {
102
- className: feedbackClassnames
103
- }, /*#__PURE__*/_react.default.createElement("div", {
104
- className: "ffe-feedback__content"
105
- }, /*#__PURE__*/_react.default.createElement("h".concat(headingLevel), {
106
- id: headingId,
107
- className: 'ffe-h4'
108
- }, _i18n.default[language].FEEDBACK_NOT_SENT_HEADING), /*#__PURE__*/_react.default.createElement(_feedbackThumbs.default, {
109
- onClick: handleThumbClicked,
110
- language: language,
111
- headingId: headingId
112
- })));
113
- };
114
- var _default = exports.default = Feedback;
115
- Feedback.propTypes = {
116
- headingLevel: (0, _propTypes.oneOf)([1, 2, 3, 4, 5, 6]).isRequired,
117
- language: (0, _propTypes.oneOf)(['nb', 'nn', 'en']),
118
- onThumbClick: _propTypes.func.isRequired,
119
- onFeedbackSend: _propTypes.func.isRequired,
120
- /** Set the background color of the feedback container. Accepts ffe-color variables without the "ffe-farge-" bit of the name. */
121
- bgColor: (0, _propTypes.oneOf)(['hvit', 'frost-30', 'sand-30', 'syrin-30', 'vann-30']),
122
- /** Set the background color of the feedback container in darkmode */
123
- bgDarkmodeColor: (0, _propTypes.oneOf)(['svart', 'natt']),
124
- contactLink: (0, _propTypes.shape)({
125
- url: _propTypes.string,
126
- linkText: _propTypes.string,
127
- onClick: _propTypes.func
128
- })
129
- };