@atlaskit/contextual-survey 5.1.2 → 6.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.
- package/CHANGELOG.md +13 -0
- package/afm-cc/tsconfig.json +6 -0
- package/afm-jira/tsconfig.json +7 -1
- package/afm-products/tsconfig.json +6 -0
- package/dist/cjs/new-survey/ContextualSurvey.js +231 -0
- package/dist/cjs/new-survey/FeedbackAcknowledgement.js +15 -0
- package/dist/cjs/new-survey/FeedbackScoreButtons.compiled.css +9 -0
- package/dist/cjs/new-survey/FeedbackScoreButtons.js +64 -0
- package/dist/cjs/new-survey/SignUpPrompt.compiled.css +4 -0
- package/dist/cjs/new-survey/SignUpPrompt.js +79 -0
- package/dist/cjs/new-survey/SignUpSuccess.js +22 -0
- package/dist/cjs/new-survey/SuccessContainer.compiled.css +4 -0
- package/dist/cjs/new-survey/SuccessContainer.js +30 -0
- package/dist/cjs/new-survey/SurveyContainer.compiled.css +11 -0
- package/dist/cjs/new-survey/SurveyContainer.js +46 -0
- package/dist/cjs/new-survey/SurveyForm.compiled.css +4 -0
- package/dist/cjs/new-survey/SurveyForm.js +153 -0
- package/dist/cjs/new.js +28 -0
- package/dist/es2019/new-survey/ContextualSurvey.js +178 -0
- package/dist/es2019/new-survey/FeedbackAcknowledgement.js +6 -0
- package/dist/es2019/new-survey/FeedbackScoreButtons.compiled.css +9 -0
- package/dist/es2019/new-survey/FeedbackScoreButtons.js +52 -0
- package/dist/es2019/new-survey/SignUpPrompt.compiled.css +4 -0
- package/dist/es2019/new-survey/SignUpPrompt.js +47 -0
- package/dist/es2019/new-survey/SignUpSuccess.js +11 -0
- package/dist/es2019/new-survey/SuccessContainer.compiled.css +4 -0
- package/dist/es2019/new-survey/SuccessContainer.js +20 -0
- package/dist/es2019/new-survey/SurveyContainer.compiled.css +11 -0
- package/dist/es2019/new-survey/SurveyContainer.js +38 -0
- package/dist/es2019/new-survey/SurveyForm.compiled.css +4 -0
- package/dist/es2019/new-survey/SurveyForm.js +132 -0
- package/dist/es2019/new.js +2 -0
- package/dist/esm/new-survey/ContextualSurvey.js +222 -0
- package/dist/esm/new-survey/FeedbackAcknowledgement.js +8 -0
- package/dist/esm/new-survey/FeedbackScoreButtons.compiled.css +9 -0
- package/dist/esm/new-survey/FeedbackScoreButtons.js +55 -0
- package/dist/esm/new-survey/SignUpPrompt.compiled.css +4 -0
- package/dist/esm/new-survey/SignUpPrompt.js +70 -0
- package/dist/esm/new-survey/SignUpSuccess.js +15 -0
- package/dist/esm/new-survey/SuccessContainer.compiled.css +4 -0
- package/dist/esm/new-survey/SuccessContainer.js +21 -0
- package/dist/esm/new-survey/SurveyContainer.compiled.css +11 -0
- package/dist/esm/new-survey/SurveyContainer.js +37 -0
- package/dist/esm/new-survey/SurveyForm.compiled.css +4 -0
- package/dist/esm/new-survey/SurveyForm.js +144 -0
- package/dist/esm/new.js +2 -0
- package/dist/types/new-survey/ContextualSurvey.d.ts +39 -0
- package/dist/types/new-survey/FeedbackAcknowledgement.d.ts +3 -0
- package/dist/types/new-survey/FeedbackScoreButtons.d.ts +11 -0
- package/dist/types/new-survey/SignUpPrompt.d.ts +9 -0
- package/dist/types/new-survey/SignUpSuccess.d.ts +5 -0
- package/dist/types/new-survey/SuccessContainer.d.ts +5 -0
- package/dist/types/new-survey/SurveyContainer.d.ts +11 -0
- package/dist/types/new-survey/SurveyForm.d.ts +11 -0
- package/dist/types/new.d.ts +2 -0
- package/dist/types-ts4.5/new-survey/ContextualSurvey.d.ts +39 -0
- package/dist/types-ts4.5/new-survey/FeedbackAcknowledgement.d.ts +3 -0
- package/dist/types-ts4.5/new-survey/FeedbackScoreButtons.d.ts +11 -0
- package/dist/types-ts4.5/new-survey/SignUpPrompt.d.ts +9 -0
- package/dist/types-ts4.5/new-survey/SignUpSuccess.d.ts +5 -0
- package/dist/types-ts4.5/new-survey/SuccessContainer.d.ts +5 -0
- package/dist/types-ts4.5/new-survey/SurveyContainer.d.ts +11 -0
- package/dist/types-ts4.5/new-survey/SurveyForm.d.ts +11 -0
- package/dist/types-ts4.5/new.d.ts +2 -0
- package/new/package.json +17 -0
- package/package.json +5 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# @atlaskit/contextual-survey
|
|
2
2
|
|
|
3
|
+
## 6.0.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies
|
|
8
|
+
|
|
9
|
+
## 6.0.0
|
|
10
|
+
|
|
11
|
+
### Major Changes
|
|
12
|
+
|
|
13
|
+
- [`6bf206e599731`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/6bf206e599731) -
|
|
14
|
+
[ux] A new Contextual Survey Component with Redesigned UI
|
|
15
|
+
|
|
3
16
|
## 5.1.2
|
|
4
17
|
|
|
5
18
|
### Patch Changes
|
package/afm-cc/tsconfig.json
CHANGED
|
@@ -30,6 +30,9 @@
|
|
|
30
30
|
{
|
|
31
31
|
"path": "../../../design-system/checkbox/afm-cc/tsconfig.json"
|
|
32
32
|
},
|
|
33
|
+
{
|
|
34
|
+
"path": "../../../design-system/css/afm-cc/tsconfig.json"
|
|
35
|
+
},
|
|
33
36
|
{
|
|
34
37
|
"path": "../../../design-system/form/afm-cc/tsconfig.json"
|
|
35
38
|
},
|
|
@@ -39,6 +42,9 @@
|
|
|
39
42
|
{
|
|
40
43
|
"path": "../../../design-system/icon/afm-cc/tsconfig.json"
|
|
41
44
|
},
|
|
45
|
+
{
|
|
46
|
+
"path": "../../../design-system/image/afm-cc/tsconfig.json"
|
|
47
|
+
},
|
|
42
48
|
{
|
|
43
49
|
"path": "../../../design-system/link/afm-cc/tsconfig.json"
|
|
44
50
|
},
|
package/afm-jira/tsconfig.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"extends": "../../../../tsconfig.
|
|
2
|
+
"extends": "../../../../tsconfig.local-consumption.json",
|
|
3
3
|
"compilerOptions": {
|
|
4
4
|
"declaration": true,
|
|
5
5
|
"target": "es5",
|
|
@@ -30,6 +30,9 @@
|
|
|
30
30
|
{
|
|
31
31
|
"path": "../../../design-system/checkbox/afm-jira/tsconfig.json"
|
|
32
32
|
},
|
|
33
|
+
{
|
|
34
|
+
"path": "../../../design-system/css/afm-jira/tsconfig.json"
|
|
35
|
+
},
|
|
33
36
|
{
|
|
34
37
|
"path": "../../../design-system/form/afm-jira/tsconfig.json"
|
|
35
38
|
},
|
|
@@ -39,6 +42,9 @@
|
|
|
39
42
|
{
|
|
40
43
|
"path": "../../../design-system/icon/afm-jira/tsconfig.json"
|
|
41
44
|
},
|
|
45
|
+
{
|
|
46
|
+
"path": "../../../design-system/image/afm-jira/tsconfig.json"
|
|
47
|
+
},
|
|
42
48
|
{
|
|
43
49
|
"path": "../../../design-system/link/afm-jira/tsconfig.json"
|
|
44
50
|
},
|
|
@@ -30,6 +30,9 @@
|
|
|
30
30
|
{
|
|
31
31
|
"path": "../../../design-system/checkbox/afm-products/tsconfig.json"
|
|
32
32
|
},
|
|
33
|
+
{
|
|
34
|
+
"path": "../../../design-system/css/afm-products/tsconfig.json"
|
|
35
|
+
},
|
|
33
36
|
{
|
|
34
37
|
"path": "../../../design-system/form/afm-products/tsconfig.json"
|
|
35
38
|
},
|
|
@@ -39,6 +42,9 @@
|
|
|
39
42
|
{
|
|
40
43
|
"path": "../../../design-system/icon/afm-products/tsconfig.json"
|
|
41
44
|
},
|
|
45
|
+
{
|
|
46
|
+
"path": "../../../design-system/image/afm-products/tsconfig.json"
|
|
47
|
+
},
|
|
42
48
|
{
|
|
43
49
|
"path": "../../../design-system/link/afm-products/tsconfig.json"
|
|
44
50
|
},
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = exports.DismissTrigger = exports.AUTO_DISAPPEAR_DURATION = void 0;
|
|
9
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
10
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
11
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
12
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
13
|
+
var _useEscapeToDismiss = _interopRequireDefault(require("../components/useEscapeToDismiss"));
|
|
14
|
+
var _FeedbackAcknowledgement = _interopRequireDefault(require("./FeedbackAcknowledgement"));
|
|
15
|
+
var _SignUpPrompt = _interopRequireDefault(require("./SignUpPrompt"));
|
|
16
|
+
var _SignUpSuccess = _interopRequireDefault(require("./SignUpSuccess"));
|
|
17
|
+
var _SurveyContainer = _interopRequireDefault(require("./SurveyContainer"));
|
|
18
|
+
var _SurveyForm = _interopRequireDefault(require("./SurveyForm"));
|
|
19
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
20
|
+
var DismissTrigger = exports.DismissTrigger = /*#__PURE__*/function (DismissTrigger) {
|
|
21
|
+
DismissTrigger["AutoDismiss"] = "AUTO_DISMISS";
|
|
22
|
+
DismissTrigger["Manual"] = "MANUAL";
|
|
23
|
+
DismissTrigger["Finished"] = "FINISHED";
|
|
24
|
+
DismissTrigger["Unmount"] = "UNMOUNT";
|
|
25
|
+
return DismissTrigger;
|
|
26
|
+
}({});
|
|
27
|
+
var AUTO_DISAPPEAR_DURATION = exports.AUTO_DISAPPEAR_DURATION = 8000;
|
|
28
|
+
var _default = exports.default = function _default(_ref) {
|
|
29
|
+
var question = _ref.question,
|
|
30
|
+
statement = _ref.statement,
|
|
31
|
+
onDismiss = _ref.onDismiss,
|
|
32
|
+
onSubmit = _ref.onSubmit,
|
|
33
|
+
onMailingListAnswer = _ref.onMailingListAnswer,
|
|
34
|
+
getUserHasAnsweredMailingList = _ref.getUserHasAnsweredMailingList,
|
|
35
|
+
_ref$textLabel = _ref.textLabel,
|
|
36
|
+
textLabel = _ref$textLabel === void 0 ? 'Tell us why? (Optional)' : _ref$textLabel,
|
|
37
|
+
headerImage = _ref.headerImage,
|
|
38
|
+
scoreSubtext = _ref.scoreSubtext;
|
|
39
|
+
var autoDisappearTimeoutRef = (0, _react.useRef)(null);
|
|
40
|
+
|
|
41
|
+
// only allow a single dismiss for a component
|
|
42
|
+
var isDismissedRef = (0, _react.useRef)(false);
|
|
43
|
+
var tryDismiss = (0, _react.useCallback)(function (trigger) {
|
|
44
|
+
// Already called dismiss once
|
|
45
|
+
if (isDismissedRef.current) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
isDismissedRef.current = true;
|
|
49
|
+
onDismissRef.current({
|
|
50
|
+
trigger: trigger
|
|
51
|
+
});
|
|
52
|
+
}, []);
|
|
53
|
+
var _useState = (0, _react.useState)('SURVEY'),
|
|
54
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
55
|
+
currentStep = _useState2[0],
|
|
56
|
+
setCurrentStep = _useState2[1];
|
|
57
|
+
var trySetCurrentStep = (0, _react.useCallback)(function (step) {
|
|
58
|
+
// Already dismissed - cannot update the step
|
|
59
|
+
if (isDismissedRef.current) {
|
|
60
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
61
|
+
// eslint-disable-next-line no-console
|
|
62
|
+
console.log("not setting step \"".concat(step, "\" as survey is already dismissed"));
|
|
63
|
+
}
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
setCurrentStep(step);
|
|
67
|
+
}, [setCurrentStep]);
|
|
68
|
+
|
|
69
|
+
// using a ref so that we don't break all of our caches if a consumer is using an arrow function
|
|
70
|
+
var onDismissRef = (0, _react.useRef)(onDismiss);
|
|
71
|
+
(0, _react.useEffect)(function () {
|
|
72
|
+
onDismissRef.current = onDismiss;
|
|
73
|
+
}, [onDismiss]);
|
|
74
|
+
|
|
75
|
+
// reset isDismissedRef.current on mount to be compatible with double render in react18 strict mode
|
|
76
|
+
(0, _react.useEffect)(function () {
|
|
77
|
+
isDismissedRef.current = false;
|
|
78
|
+
}, []);
|
|
79
|
+
var tryClearTimeout = (0, _react.useCallback)(function () {
|
|
80
|
+
var id = autoDisappearTimeoutRef.current;
|
|
81
|
+
if (id) {
|
|
82
|
+
clearTimeout(id);
|
|
83
|
+
autoDisappearTimeoutRef.current = null;
|
|
84
|
+
}
|
|
85
|
+
}, []);
|
|
86
|
+
|
|
87
|
+
// Cleanup any auto dismiss after dismiss
|
|
88
|
+
(0, _react.useEffect)(function () {
|
|
89
|
+
return function unmount() {
|
|
90
|
+
tryClearTimeout();
|
|
91
|
+
tryDismiss(DismissTrigger.Unmount);
|
|
92
|
+
};
|
|
93
|
+
}, [tryClearTimeout, tryDismiss]);
|
|
94
|
+
var onSurveySubmit = (0, _react.useCallback)( /*#__PURE__*/function () {
|
|
95
|
+
var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(formValues, _form) {
|
|
96
|
+
var callback,
|
|
97
|
+
userHasAnswered,
|
|
98
|
+
_args = arguments;
|
|
99
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
100
|
+
while (1) switch (_context.prev = _context.next) {
|
|
101
|
+
case 0:
|
|
102
|
+
callback = _args.length > 2 && _args[2] !== undefined ? _args[2] : function () {};
|
|
103
|
+
_context.next = 3;
|
|
104
|
+
return onSubmit(formValues);
|
|
105
|
+
case 3:
|
|
106
|
+
if (!isDismissedRef.current) {
|
|
107
|
+
_context.next = 6;
|
|
108
|
+
break;
|
|
109
|
+
}
|
|
110
|
+
callback();
|
|
111
|
+
return _context.abrupt("return");
|
|
112
|
+
case 6:
|
|
113
|
+
if (formValues.canContact) {
|
|
114
|
+
_context.next = 10;
|
|
115
|
+
break;
|
|
116
|
+
}
|
|
117
|
+
callback();
|
|
118
|
+
trySetCurrentStep('POST_SURVEY_NO_CONSENT');
|
|
119
|
+
return _context.abrupt("return");
|
|
120
|
+
case 10:
|
|
121
|
+
_context.next = 12;
|
|
122
|
+
return getUserHasAnsweredMailingList();
|
|
123
|
+
case 12:
|
|
124
|
+
userHasAnswered = _context.sent;
|
|
125
|
+
callback();
|
|
126
|
+
|
|
127
|
+
// Not entering phase 2: user has already answered this question
|
|
128
|
+
if (!userHasAnswered) {
|
|
129
|
+
_context.next = 17;
|
|
130
|
+
break;
|
|
131
|
+
}
|
|
132
|
+
trySetCurrentStep('POST_SURVEY_HAS_SIGN_UP');
|
|
133
|
+
return _context.abrupt("return");
|
|
134
|
+
case 17:
|
|
135
|
+
// Enter phase 2
|
|
136
|
+
trySetCurrentStep('SIGN_UP_PROMPT');
|
|
137
|
+
case 18:
|
|
138
|
+
case "end":
|
|
139
|
+
return _context.stop();
|
|
140
|
+
}
|
|
141
|
+
}, _callee);
|
|
142
|
+
}));
|
|
143
|
+
return function (_x, _x2) {
|
|
144
|
+
return _ref2.apply(this, arguments);
|
|
145
|
+
};
|
|
146
|
+
}(), [getUserHasAnsweredMailingList, onSubmit, trySetCurrentStep]);
|
|
147
|
+
var onMailingListResponse = (0, _react.useCallback)( /*#__PURE__*/function () {
|
|
148
|
+
var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(answer) {
|
|
149
|
+
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
150
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
151
|
+
case 0:
|
|
152
|
+
_context2.next = 2;
|
|
153
|
+
return onMailingListAnswer(answer);
|
|
154
|
+
case 2:
|
|
155
|
+
if (!answer) {
|
|
156
|
+
_context2.next = 5;
|
|
157
|
+
break;
|
|
158
|
+
}
|
|
159
|
+
trySetCurrentStep('SIGN_UP_SUCCESS');
|
|
160
|
+
return _context2.abrupt("return");
|
|
161
|
+
case 5:
|
|
162
|
+
// We have already thanked to user, we can simply close
|
|
163
|
+
tryDismiss(DismissTrigger.Finished);
|
|
164
|
+
case 6:
|
|
165
|
+
case "end":
|
|
166
|
+
return _context2.stop();
|
|
167
|
+
}
|
|
168
|
+
}, _callee2);
|
|
169
|
+
}));
|
|
170
|
+
return function (_x3) {
|
|
171
|
+
return _ref3.apply(this, arguments);
|
|
172
|
+
};
|
|
173
|
+
}(),
|
|
174
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
175
|
+
[tryDismiss, trySetCurrentStep]);
|
|
176
|
+
|
|
177
|
+
// Start the auto disappear when we are finished
|
|
178
|
+
(0, _react.useEffect)(function () {
|
|
179
|
+
// Already dismissed
|
|
180
|
+
if (isDismissedRef.current) {
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
// Timeout already scheduled
|
|
185
|
+
if (autoDisappearTimeoutRef.current) {
|
|
186
|
+
return;
|
|
187
|
+
}
|
|
188
|
+
if (['SIGN_UP_SUCCESS', 'POST_SURVEY_NO_CONSENT', 'POST_SURVEY_HAS_SIGN_UP'].includes(currentStep)) {
|
|
189
|
+
autoDisappearTimeoutRef.current = window.setTimeout(function () {
|
|
190
|
+
return tryDismiss(DismissTrigger.AutoDismiss);
|
|
191
|
+
}, AUTO_DISAPPEAR_DURATION);
|
|
192
|
+
}
|
|
193
|
+
}, [currentStep, tryDismiss]);
|
|
194
|
+
(0, _useEscapeToDismiss.default)({
|
|
195
|
+
onDismiss: function onDismiss() {
|
|
196
|
+
return tryDismiss(DismissTrigger.Manual);
|
|
197
|
+
}
|
|
198
|
+
});
|
|
199
|
+
var content = function () {
|
|
200
|
+
if (currentStep === 'SURVEY') {
|
|
201
|
+
return /*#__PURE__*/_react.default.createElement(_SurveyForm.default, {
|
|
202
|
+
question: question,
|
|
203
|
+
statement: statement,
|
|
204
|
+
textLabel: textLabel,
|
|
205
|
+
onSubmit: onSurveySubmit,
|
|
206
|
+
scoreSubtext: scoreSubtext
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
if (currentStep === 'SIGN_UP_PROMPT') {
|
|
210
|
+
return /*#__PURE__*/_react.default.createElement(_SignUpPrompt.default, {
|
|
211
|
+
onAnswer: onMailingListResponse
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
if (currentStep === 'SIGN_UP_SUCCESS') {
|
|
215
|
+
return /*#__PURE__*/_react.default.createElement(_SignUpSuccess.default, null);
|
|
216
|
+
}
|
|
217
|
+
if (currentStep === 'POST_SURVEY_NO_CONSENT' || currentStep === 'POST_SURVEY_HAS_SIGN_UP') {
|
|
218
|
+
return /*#__PURE__*/_react.default.createElement(_FeedbackAcknowledgement.default, null);
|
|
219
|
+
}
|
|
220
|
+
return null;
|
|
221
|
+
}();
|
|
222
|
+
var manualDismiss = (0, _react.useCallback)(function () {
|
|
223
|
+
// clear any pending timers
|
|
224
|
+
tryClearTimeout();
|
|
225
|
+
tryDismiss(DismissTrigger.Manual);
|
|
226
|
+
}, [tryDismiss, tryClearTimeout]);
|
|
227
|
+
return /*#__PURE__*/_react.default.createElement(_SurveyContainer.default, {
|
|
228
|
+
headerImage: currentStep === 'SURVEY' ? headerImage : undefined,
|
|
229
|
+
onDismiss: manualDismiss
|
|
230
|
+
}, content);
|
|
231
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _heading = _interopRequireDefault(require("@atlaskit/heading"));
|
|
10
|
+
var _SuccessContainer = _interopRequireDefault(require("./SuccessContainer"));
|
|
11
|
+
var _default = exports.default = function _default() {
|
|
12
|
+
return /*#__PURE__*/_react.default.createElement(_SuccessContainer.default, null, /*#__PURE__*/_react.default.createElement(_heading.default, {
|
|
13
|
+
size: "xsmall"
|
|
14
|
+
}, "Thanks for your feedback"));
|
|
15
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
._13lsf1ug>*{flex-basis:0%}
|
|
2
|
+
._19pku2gc{margin-top:var(--ds-space-100,8px)}
|
|
3
|
+
._1bah1yb4{justify-content:space-between}
|
|
4
|
+
._1e0c1txw{display:flex}
|
|
5
|
+
._1o0a1h6o>*>button{justify-content:center}
|
|
6
|
+
._nbgxuxkd>span{width:33%}
|
|
7
|
+
._pof3u2gc>*+*{margin-left:var(--ds-space-100,8px)}
|
|
8
|
+
._v5ynkb7n>*{flex-shrink:1}
|
|
9
|
+
._zdxokb7n>*{flex-grow:1}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/* FeedbackScoreButtons.tsx generated by @compiled/babel-plugin v0.38.1 */
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
Object.defineProperty(exports, "__esModule", {
|
|
7
|
+
value: true
|
|
8
|
+
});
|
|
9
|
+
exports.default = void 0;
|
|
10
|
+
require("./FeedbackScoreButtons.compiled.css");
|
|
11
|
+
var React = _interopRequireWildcard(require("react"));
|
|
12
|
+
var _runtime = require("@compiled/react/runtime");
|
|
13
|
+
var _new = _interopRequireDefault(require("@atlaskit/button/new"));
|
|
14
|
+
var _compiled = require("@atlaskit/primitives/compiled");
|
|
15
|
+
var _tooltip = _interopRequireDefault(require("@atlaskit/tooltip"));
|
|
16
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
17
|
+
var tooltipMessage = ['Strongly disagree', 'Disagree', 'Slightly disagree', 'Neutral', 'Slightly agree', 'Agree', 'Strongly agree'];
|
|
18
|
+
var buttonWrapperStyles = null;
|
|
19
|
+
var descriptionWrapperStyles = null;
|
|
20
|
+
var _default = exports.default = function _default(_ref) {
|
|
21
|
+
var onChange = _ref.onChange,
|
|
22
|
+
value = _ref.value,
|
|
23
|
+
scoreSubtext = _ref.scoreSubtext;
|
|
24
|
+
return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", {
|
|
25
|
+
className: (0, _runtime.ax)(["_1e0c1txw _1bah1yb4 _zdxokb7n _v5ynkb7n _13lsf1ug _1o0a1h6o _pof3u2gc"])
|
|
26
|
+
}, Array.from({
|
|
27
|
+
length: 7
|
|
28
|
+
}, function (_, i) {
|
|
29
|
+
var score = i + 1;
|
|
30
|
+
var isSelected = value === score;
|
|
31
|
+
return /*#__PURE__*/React.createElement(_tooltip.default, {
|
|
32
|
+
content: tooltipMessage[i],
|
|
33
|
+
key: score,
|
|
34
|
+
hideTooltipOnClick: true
|
|
35
|
+
}, /*#__PURE__*/React.createElement(_new.default, {
|
|
36
|
+
onClick: function onClick() {
|
|
37
|
+
return onChange(score);
|
|
38
|
+
},
|
|
39
|
+
isSelected: isSelected,
|
|
40
|
+
"aria-pressed": isSelected,
|
|
41
|
+
"aria-describedby": "contextualSurveyStatement",
|
|
42
|
+
"aria-label": tooltipMessage[i],
|
|
43
|
+
shouldFitContainer: true
|
|
44
|
+
}, score));
|
|
45
|
+
})), /*#__PURE__*/React.createElement("div", {
|
|
46
|
+
"aria-hidden": true,
|
|
47
|
+
className: (0, _runtime.ax)(["_1e0c1txw _19pku2gc _1bah1yb4 _nbgxuxkd"])
|
|
48
|
+
}, /*#__PURE__*/React.createElement(_compiled.Text, {
|
|
49
|
+
color: "color.text.subtlest",
|
|
50
|
+
size: "small",
|
|
51
|
+
weight: "regular",
|
|
52
|
+
align: "start"
|
|
53
|
+
}, scoreSubtext ? scoreSubtext[0] : 'Not at all'), /*#__PURE__*/React.createElement(_compiled.Text, {
|
|
54
|
+
color: "color.text.subtlest",
|
|
55
|
+
size: "small",
|
|
56
|
+
weight: "regular",
|
|
57
|
+
align: "center"
|
|
58
|
+
}, scoreSubtext ? scoreSubtext[1] : 'Neutral'), /*#__PURE__*/React.createElement(_compiled.Text, {
|
|
59
|
+
color: "color.text.subtlest",
|
|
60
|
+
size: "small",
|
|
61
|
+
weight: "regular",
|
|
62
|
+
align: "end"
|
|
63
|
+
}, scoreSubtext ? scoreSubtext[2] : 'Very much')));
|
|
64
|
+
};
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/* SignUpPrompt.tsx generated by @compiled/babel-plugin v0.38.1 */
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
Object.defineProperty(exports, "__esModule", {
|
|
7
|
+
value: true
|
|
8
|
+
});
|
|
9
|
+
exports.default = void 0;
|
|
10
|
+
require("./SignUpPrompt.compiled.css");
|
|
11
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
12
|
+
var React = _react;
|
|
13
|
+
var _runtime = require("@compiled/react/runtime");
|
|
14
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
15
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
16
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
17
|
+
var _new = _interopRequireDefault(require("@atlaskit/button/new"));
|
|
18
|
+
var _heading = _interopRequireDefault(require("@atlaskit/heading"));
|
|
19
|
+
var _link = _interopRequireDefault(require("@atlaskit/link"));
|
|
20
|
+
var _compiled = require("@atlaskit/primitives/compiled");
|
|
21
|
+
var _SuccessContainer = _interopRequireDefault(require("./SuccessContainer"));
|
|
22
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
23
|
+
var buttonContainerStyles = null;
|
|
24
|
+
var _default = exports.default = function _default(_ref) {
|
|
25
|
+
var onAnswer = _ref.onAnswer;
|
|
26
|
+
var _useState = (0, _react.useState)(null),
|
|
27
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
28
|
+
pending = _useState2[0],
|
|
29
|
+
setPending = _useState2[1];
|
|
30
|
+
var answeredWith = (0, _react.useCallback)( /*#__PURE__*/function () {
|
|
31
|
+
var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(answer) {
|
|
32
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
33
|
+
while (1) switch (_context.prev = _context.next) {
|
|
34
|
+
case 0:
|
|
35
|
+
setPending(answer ? 'yes' : 'no');
|
|
36
|
+
_context.next = 3;
|
|
37
|
+
return onAnswer(answer);
|
|
38
|
+
case 3:
|
|
39
|
+
case "end":
|
|
40
|
+
return _context.stop();
|
|
41
|
+
}
|
|
42
|
+
}, _callee);
|
|
43
|
+
}));
|
|
44
|
+
return function (_x) {
|
|
45
|
+
return _ref2.apply(this, arguments);
|
|
46
|
+
};
|
|
47
|
+
}(), [setPending, onAnswer]);
|
|
48
|
+
var isDisabled = Boolean(pending);
|
|
49
|
+
return /*#__PURE__*/React.createElement(_SuccessContainer.default, null, /*#__PURE__*/React.createElement(_heading.default, {
|
|
50
|
+
size: "xsmall"
|
|
51
|
+
}, "Thanks for your feedback"), /*#__PURE__*/React.createElement(_compiled.Box, {
|
|
52
|
+
paddingBlockStart: "space.150"
|
|
53
|
+
}, /*#__PURE__*/React.createElement(_compiled.Stack, {
|
|
54
|
+
space: "space.150"
|
|
55
|
+
}, /*#__PURE__*/React.createElement(_compiled.Text, {
|
|
56
|
+
as: "p"
|
|
57
|
+
}, "Are you interested in participating in our research?"), /*#__PURE__*/React.createElement(_compiled.Text, {
|
|
58
|
+
as: "p"
|
|
59
|
+
}, "Sign up for the", ' ', /*#__PURE__*/React.createElement(_link.default, {
|
|
60
|
+
href: "https://www.atlassian.com/research-group",
|
|
61
|
+
target: "_blank"
|
|
62
|
+
}, "Atlassian Research Group"), ' ', "and we may contact you in the future with research opportunities."))), /*#__PURE__*/React.createElement("div", {
|
|
63
|
+
className: (0, _runtime.ax)(["_19pkxy5q _1e0c1txw _1bahesu3 _pof3u2gc"])
|
|
64
|
+
}, /*#__PURE__*/React.createElement(_new.default, {
|
|
65
|
+
appearance: "subtle",
|
|
66
|
+
onClick: function onClick() {
|
|
67
|
+
return answeredWith(false);
|
|
68
|
+
},
|
|
69
|
+
isDisabled: isDisabled,
|
|
70
|
+
isLoading: pending === 'no'
|
|
71
|
+
}, "No, thanks"), /*#__PURE__*/React.createElement(_new.default, {
|
|
72
|
+
appearance: "primary",
|
|
73
|
+
onClick: function onClick() {
|
|
74
|
+
return answeredWith(true);
|
|
75
|
+
},
|
|
76
|
+
isDisabled: isDisabled,
|
|
77
|
+
isLoading: pending === 'yes'
|
|
78
|
+
}, "Yes, sign me up")));
|
|
79
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _objectDestructuringEmpty2 = _interopRequireDefault(require("@babel/runtime/helpers/objectDestructuringEmpty"));
|
|
9
|
+
var _react = _interopRequireDefault(require("react"));
|
|
10
|
+
var _heading = _interopRequireDefault(require("@atlaskit/heading"));
|
|
11
|
+
var _compiled = require("@atlaskit/primitives/compiled");
|
|
12
|
+
var _SuccessContainer = _interopRequireDefault(require("./SuccessContainer"));
|
|
13
|
+
var _default = exports.default = function _default(_ref) {
|
|
14
|
+
(0, _objectDestructuringEmpty2.default)(_ref);
|
|
15
|
+
return /*#__PURE__*/_react.default.createElement(_SuccessContainer.default, null, /*#__PURE__*/_react.default.createElement(_compiled.Stack, {
|
|
16
|
+
space: "space.150"
|
|
17
|
+
}, /*#__PURE__*/_react.default.createElement(_heading.default, {
|
|
18
|
+
size: "xsmall"
|
|
19
|
+
}, "Thanks for signing up"), /*#__PURE__*/_react.default.createElement(_compiled.Text, {
|
|
20
|
+
as: "p"
|
|
21
|
+
}, "We may reach out to you in the future to participate in additional research.")));
|
|
22
|
+
};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/* SuccessContainer.tsx generated by @compiled/babel-plugin v0.38.1 */
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
Object.defineProperty(exports, "__esModule", {
|
|
7
|
+
value: true
|
|
8
|
+
});
|
|
9
|
+
exports.default = void 0;
|
|
10
|
+
require("./SuccessContainer.compiled.css");
|
|
11
|
+
var React = _interopRequireWildcard(require("react"));
|
|
12
|
+
var _runtime = require("@compiled/react/runtime");
|
|
13
|
+
var _image = _interopRequireDefault(require("@atlaskit/image"));
|
|
14
|
+
var _compiled = require("@atlaskit/primitives/compiled");
|
|
15
|
+
var _checkIcon = _interopRequireDefault(require("./assets/checkIcon.svg"));
|
|
16
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
17
|
+
var styles = {
|
|
18
|
+
container: "_zulputpp _ae4v1h6o _4cvr1h6o _y3gn1h6o"
|
|
19
|
+
};
|
|
20
|
+
var _default = exports.default = function _default(_ref) {
|
|
21
|
+
var children = _ref.children;
|
|
22
|
+
return /*#__PURE__*/React.createElement(_compiled.Stack, {
|
|
23
|
+
xcss: styles.container
|
|
24
|
+
}, /*#__PURE__*/React.createElement(_image.default, {
|
|
25
|
+
width: "88px",
|
|
26
|
+
height: "88px",
|
|
27
|
+
src: _checkIcon.default,
|
|
28
|
+
alt: "Success"
|
|
29
|
+
}), children);
|
|
30
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
|
|
2
|
+
._2rkofajl{border-radius:var(--ds-radius-small,3px)}._154iu2gc{top:var(--ds-space-100,8px)}
|
|
3
|
+
._16qsuzq3{box-shadow:var(--ds-shadow-overlay,0 20px 2pc -8px rgba(9,30,66,.25),0 0 1px rgba(9,30,66,.31))}
|
|
4
|
+
._19bv1ejb{padding-left:var(--ds-space-300,24px)}
|
|
5
|
+
._1bsbrdnh{width:4in}
|
|
6
|
+
._1xi2u2gc{right:var(--ds-space-100,8px)}
|
|
7
|
+
._bfhk1bhr{background-color:var(--ds-surface-overlay,#fff)}
|
|
8
|
+
._ca0q1ejb{padding-top:var(--ds-space-300,24px)}
|
|
9
|
+
._kqswstnw{position:absolute}
|
|
10
|
+
._n3td1ejb{padding-bottom:var(--ds-space-300,24px)}
|
|
11
|
+
._u5f31ejb{padding-right:var(--ds-space-300,24px)}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/* SurveyContainer.tsx generated by @compiled/babel-plugin v0.38.1 */
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
Object.defineProperty(exports, "__esModule", {
|
|
7
|
+
value: true
|
|
8
|
+
});
|
|
9
|
+
exports.default = void 0;
|
|
10
|
+
require("./SurveyContainer.compiled.css");
|
|
11
|
+
var React = _interopRequireWildcard(require("react"));
|
|
12
|
+
var _runtime = require("@compiled/react/runtime");
|
|
13
|
+
var _new = require("@atlaskit/button/new");
|
|
14
|
+
var _cross = _interopRequireDefault(require("@atlaskit/icon/core/cross"));
|
|
15
|
+
var _image = _interopRequireDefault(require("@atlaskit/image"));
|
|
16
|
+
var _compiled = require("@atlaskit/primitives/compiled");
|
|
17
|
+
var _colors = require("@atlaskit/theme/colors");
|
|
18
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
19
|
+
var styles = {
|
|
20
|
+
root: "_2rkofajl _bfhk1bhr _16qsuzq3 _1bsbrdnh",
|
|
21
|
+
container: "_ca0q1ejb _n3td1ejb _19bv1ejb _u5f31ejb",
|
|
22
|
+
buttonWrapperStyles: "_kqswstnw _154iu2gc _1xi2u2gc"
|
|
23
|
+
};
|
|
24
|
+
var _default = exports.default = function _default(_ref) {
|
|
25
|
+
var children = _ref.children,
|
|
26
|
+
onDismiss = _ref.onDismiss,
|
|
27
|
+
headerImage = _ref.headerImage;
|
|
28
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
29
|
+
style: {},
|
|
30
|
+
className: (0, _runtime.ax)([styles.root])
|
|
31
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
32
|
+
className: (0, _runtime.ax)([styles.buttonWrapperStyles])
|
|
33
|
+
}, /*#__PURE__*/React.createElement(_new.IconButton, {
|
|
34
|
+
icon: _cross.default,
|
|
35
|
+
label: "Dismiss",
|
|
36
|
+
appearance: "subtle",
|
|
37
|
+
onClick: onDismiss
|
|
38
|
+
})), headerImage && /*#__PURE__*/React.createElement(_image.default, {
|
|
39
|
+
width: "384px",
|
|
40
|
+
height: "112px",
|
|
41
|
+
src: headerImage,
|
|
42
|
+
alt: "Header"
|
|
43
|
+
}), /*#__PURE__*/React.createElement(_compiled.Stack, {
|
|
44
|
+
xcss: styles.container
|
|
45
|
+
}, children));
|
|
46
|
+
};
|