pushfeedback 0.1.70 → 0.1.72

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 (46) hide show
  1. package/dist/cjs/canvas-editor_3.cjs.entry.js +1364 -0
  2. package/dist/cjs/index-9a8f4784.js +1584 -0
  3. package/dist/cjs/index.cjs.js +2 -0
  4. package/dist/cjs/loader.cjs.js +22 -0
  5. package/dist/cjs/pushfeedback.cjs.js +23 -0
  6. package/dist/collection/collection-manifest.json +14 -0
  7. package/dist/collection/components/canvas-editor/canvas-editor.css +404 -0
  8. package/dist/collection/components/canvas-editor/canvas-editor.js +1282 -0
  9. package/dist/collection/components/feedback-button/feedback-button.css +81 -0
  10. package/dist/collection/components/feedback-button/feedback-button.js +1149 -0
  11. package/dist/collection/components/feedback-modal/feedback-modal.css +547 -0
  12. package/dist/collection/components/feedback-modal/feedback-modal.js +1238 -0
  13. package/dist/collection/index.js +1 -0
  14. package/dist/components/canvas-editor.js +6 -0
  15. package/dist/{pushfeedback/canvas-editor.entry.js → components/canvas-editor2.js} +64 -7
  16. package/dist/{pushfeedback/feedback-button.entry.js → components/feedback-button.js} +112 -33
  17. package/dist/components/feedback-modal.js +6 -0
  18. package/dist/{pushfeedback/feedback-modal.entry.js → components/feedback-modal2.js} +106 -18
  19. package/dist/components/index.js +4 -0
  20. package/dist/esm/canvas-editor_3.entry.js +1358 -0
  21. package/dist/esm/index-f65e9124.js +1555 -0
  22. package/dist/esm/index.js +1 -0
  23. package/dist/esm/loader.js +18 -0
  24. package/dist/esm/polyfills/core-js.js +11 -0
  25. package/dist/esm/polyfills/css-shim.js +1 -0
  26. package/dist/esm/polyfills/dom.js +79 -0
  27. package/dist/esm/polyfills/es5-html-element.js +1 -0
  28. package/dist/esm/polyfills/index.js +34 -0
  29. package/dist/esm/polyfills/system.js +6 -0
  30. package/dist/esm/pushfeedback.js +18 -0
  31. package/dist/index.cjs.js +1 -0
  32. package/dist/index.js +1 -0
  33. package/dist/pushfeedback/index.esm.js +0 -1
  34. package/dist/pushfeedback/p-881a733a.entry.js +1 -0
  35. package/dist/pushfeedback/p-af2a1f7f.js +2 -0
  36. package/dist/pushfeedback/pushfeedback.css +1 -146
  37. package/dist/pushfeedback/pushfeedback.esm.js +1 -148
  38. package/dist/types/components/feedback-button/feedback-button.d.ts +16 -17
  39. package/dist/types/components/feedback-modal/feedback-modal.d.ts +8 -9
  40. package/dist/types/components.d.ts +28 -32
  41. package/package.json +1 -1
  42. package/dist/pushfeedback/app-globals-0f993ce5.js +0 -3
  43. package/dist/pushfeedback/css-shim-b7d3d95f.js +0 -4
  44. package/dist/pushfeedback/dom-64053c71.js +0 -73
  45. package/dist/pushfeedback/index-36434da0.js +0 -3371
  46. package/dist/pushfeedback/shadow-css-98135883.js +0 -387
@@ -0,0 +1,1238 @@
1
+ import { h } from '@stencil/core';
2
+ export class FeedbackModal {
3
+ constructor() {
4
+ this.onScrollDebounced = () => {
5
+ clearTimeout(this.scrollTimeout);
6
+ this.scrollTimeout = setTimeout(() => {
7
+ document.documentElement.classList.remove('feedback-modal-screenshot-closing');
8
+ document.documentElement.style.top = '';
9
+ window.removeEventListener('scroll', this.onScrollDebounced);
10
+ }, 200);
11
+ };
12
+ this.handleSubmit = async (event) => {
13
+ event.preventDefault();
14
+ if (this.isEmailRequired && !this.formEmail) {
15
+ return;
16
+ }
17
+ this.resetOverflow();
18
+ this.showScreenshotMode = false;
19
+ this.showScreenshotTopBar = false;
20
+ this.showModal = false;
21
+ this.sending = true;
22
+ try {
23
+ const body = {
24
+ url: window.location.href,
25
+ message: this.formMessage,
26
+ email: this.formEmail,
27
+ project: this.project,
28
+ screenshot: this.encodedScreenshot,
29
+ rating: this.selectedRating,
30
+ ratingMode: this.ratingMode,
31
+ metadata: this.metadata,
32
+ verification: this.formVerification,
33
+ session: localStorage.getItem('pushfeedback_sessionid') || '',
34
+ };
35
+ const res = await fetch('https://app.pushfeedback.com/api/feedback/', {
36
+ method: 'POST',
37
+ body: JSON.stringify(body),
38
+ headers: {
39
+ 'Content-Type': 'application/json',
40
+ },
41
+ });
42
+ if (res.status === 201) {
43
+ const feedback_with_id = Object.assign(Object.assign({}, body), { id: await res.json() });
44
+ this.feedbackSent.emit({ feedback: feedback_with_id });
45
+ this.formSuccess = true;
46
+ this.formError = false;
47
+ }
48
+ else {
49
+ const errorText = await res.text();
50
+ const response = {
51
+ status: res.status,
52
+ message: errorText,
53
+ };
54
+ this.feedbackError.emit({ error: response });
55
+ this.formSuccess = false;
56
+ this.formError = true;
57
+ this.formErrorStatus = res.status;
58
+ }
59
+ }
60
+ catch (error) {
61
+ const response = {
62
+ status: 500,
63
+ message: error,
64
+ };
65
+ this.feedbackError.emit({ error: response });
66
+ this.formSuccess = false;
67
+ this.formError = true;
68
+ this.formErrorStatus = 500;
69
+ }
70
+ finally {
71
+ this.sending = false;
72
+ this.showModal = true;
73
+ }
74
+ };
75
+ this.close = () => {
76
+ this.isAnimating = false;
77
+ setTimeout(() => {
78
+ this.sending = false;
79
+ this.showModal = false;
80
+ this.showScreenshotMode = false;
81
+ this.showScreenshotTopBar = false;
82
+ this.hasSelectedElement = false;
83
+ this.encodedScreenshot = null;
84
+ // Remove highlight from ALL selected elements
85
+ document.querySelectorAll('.feedback-modal-element-selected').forEach(el => {
86
+ el.classList.remove('feedback-modal-element-selected');
87
+ });
88
+ // Reset form states
89
+ this.formSuccess = false;
90
+ this.formError = false;
91
+ this.formErrorStatus = 500;
92
+ this.formMessage = '';
93
+ this.formEmail = '';
94
+ this.resetOverflow();
95
+ }, 200);
96
+ };
97
+ // Handle screenshot events from canvas editor
98
+ this.handleScreenshotReady = (event) => {
99
+ this.encodedScreenshot = event.detail.screenshot;
100
+ this.showModal = true;
101
+ this.takingScreenshot = false;
102
+ this.showCanvasEditor = false;
103
+ this.autoStartCapture = false;
104
+ };
105
+ this.handleScreenshotCancelled = () => {
106
+ this.showModal = true;
107
+ this.takingScreenshot = false;
108
+ this.showCanvasEditor = false;
109
+ this.autoStartCapture = false;
110
+ };
111
+ this.handleScreenshotError = (event) => {
112
+ console.error('Screenshot error:', event.detail.error);
113
+ // Store error message to display in feedback modal
114
+ this.screenshotError = event.detail.error;
115
+ this.showScreenshotError = true;
116
+ // Close canvas editor and return to feedback modal
117
+ this.showModal = true;
118
+ this.takingScreenshot = false;
119
+ this.showCanvasEditor = false;
120
+ this.autoStartCapture = false;
121
+ // Auto-hide error after 8 seconds
122
+ setTimeout(() => {
123
+ this.showScreenshotError = false;
124
+ }, 8000);
125
+ };
126
+ // Trigger screenshot capture
127
+ this.openScreenShot = () => {
128
+ this.showModal = false;
129
+ this.takingScreenshot = true;
130
+ this.autoStartCapture = true; // Auto-start new screenshot
131
+ this.showCanvasEditor = true;
132
+ };
133
+ // Open canvas editor for existing screenshot
134
+ this.openCanvasEditor = (event) => {
135
+ if (event) {
136
+ event.stopPropagation();
137
+ }
138
+ this.showModal = false;
139
+ this.autoStartCapture = false; // Don't auto-start, just edit existing
140
+ this.showCanvasEditor = true;
141
+ };
142
+ this.sending = false;
143
+ this.formMessage = '';
144
+ this.formEmail = '';
145
+ this.formSuccess = false;
146
+ this.formVerification = '';
147
+ this.formError = false;
148
+ this.formErrorStatus = 500;
149
+ this.encodedScreenshot = undefined;
150
+ this.isPrivacyChecked = false;
151
+ this.whitelabel = false;
152
+ this.selectedRating = -1;
153
+ this.overlayVisible = false;
154
+ this.isAnimating = false;
155
+ this.takingScreenshot = false;
156
+ this.showScreenshotError = false;
157
+ this.screenshotError = '';
158
+ this.showCanvasEditor = false;
159
+ this.autoStartCapture = false;
160
+ this.customFont = false;
161
+ this.emailAddress = '';
162
+ this.hideEmail = false;
163
+ this.isEmailRequired = false;
164
+ this.ratingMode = 'thumbs';
165
+ this.hasSelectedElement = false;
166
+ this.hidePrivacyPolicy = true;
167
+ this.hideRating = false;
168
+ this.hideScreenshotButton = false;
169
+ this.project = '';
170
+ this.showScreenshotMode = false;
171
+ this.showScreenshotTopBar = false;
172
+ this.showModal = false;
173
+ this.rating = undefined;
174
+ this.metadata = undefined;
175
+ this.fetchData = true;
176
+ this.emailPlaceholder = 'Email address (optional)';
177
+ this.errorMessage = 'Please try again later.';
178
+ this.errorMessage403 = 'The request URL does not match the one defined in PushFeedback for this project.';
179
+ this.errorMessage404 = 'We could not find the provided project ID in PushFeedback.';
180
+ this.messagePlaceholder = 'Comments';
181
+ this.footerText = '';
182
+ this.modalPosition = 'center';
183
+ this.modalTitle = 'Share your feedback';
184
+ this.modalTitleError = 'Oops!';
185
+ this.modalTitleSuccess = 'Thanks for your feedback!';
186
+ this.privacyPolicyText = "I have read and expressly consent to the terms of the <a href='https://pushfeedback.com/privacy'>Privacy Policy</a>.";
187
+ this.ratingPlaceholder = 'Was this page helpful?';
188
+ this.ratingStarsPlaceholder = 'How would you rate this page?';
189
+ this.sendButtonText = 'Send';
190
+ this.successMessage = '';
191
+ this.screenshotEditorTitle = 'Edit screenshot';
192
+ this.screenshotEditorCancelText = 'Cancel';
193
+ this.screenshotEditorSaveText = 'Save';
194
+ this.screenshotAttachedText = 'Screenshot attached';
195
+ this.screenshotButtonText = 'Add a screenshot';
196
+ this.screenshotTakingText = 'Taking screenshot...';
197
+ this.screenshotEditTextButtonText = 'Edit text';
198
+ this.screenshotSizeLabelText = 'Size:';
199
+ this.screenshotBorderLabelText = 'Border:';
200
+ this.screenshotEditTextPromptText = 'Edit text:';
201
+ this.screenshotErrorGeneral = 'Failed to capture screenshot.';
202
+ this.screenshotErrorPermission = 'Permission denied. Please allow screen sharing to take screenshots.';
203
+ this.screenshotErrorNotSupported = 'Screen capture is not supported in this browser.';
204
+ this.screenshotErrorNotFound = 'No screen sources available for capture.';
205
+ this.screenshotErrorCancelled = 'Screenshot capture was cancelled.';
206
+ this.screenshotErrorBrowserNotSupported = 'Your browser does not support screen capture. Please use a browser like Chrome, Firefox, or Safari on desktop.';
207
+ this.screenshotErrorUnexpected = 'An unexpected error occurred. Please try again.';
208
+ }
209
+ componentWillLoad() {
210
+ if (this.fetchData)
211
+ this.fetchProjectData();
212
+ this.formEmail = this.emailAddress;
213
+ if (this.rating) {
214
+ this.selectedRating = this.rating;
215
+ }
216
+ if (this.ratingMode == 'thumbs' && this.rating == 0) {
217
+ this.selectedRating = 5;
218
+ }
219
+ }
220
+ async fetchProjectData() {
221
+ try {
222
+ const response = await fetch('https://app.pushfeedback.com/api/projects/' + this.project + '/');
223
+ const data = await response.json();
224
+ this.whitelabel = data.whitelabel;
225
+ }
226
+ catch (error) {
227
+ console.log(error);
228
+ }
229
+ }
230
+ resetOverflow() {
231
+ // Just clean up any stray classes, don't add/remove during screenshot
232
+ document.documentElement.classList.remove('feedback-modal-screenshot-open');
233
+ document.documentElement.classList.remove('feedback-modal-screenshot-open--scroll');
234
+ document.documentElement.classList.remove('feedback-modal-screenshot-closing');
235
+ }
236
+ handleMessageInput(event) {
237
+ this.formMessage = event.target.value;
238
+ }
239
+ handleEmailInput(event) {
240
+ this.formEmail = event.target.value;
241
+ }
242
+ handleCheckboxChange(event) {
243
+ this.isPrivacyChecked = event.target.checked;
244
+ }
245
+ handleVerification(event) {
246
+ this.formVerification = event.target.value;
247
+ }
248
+ handleRatingChange(newRating) {
249
+ this.selectedRating = newRating;
250
+ }
251
+ render() {
252
+ return (h("div", { class: `feedback-modal-wrapper ${this.customFont ? 'feedback-modal-wrapper--custom-font' : ''}` }, this.showCanvasEditor && (h("canvas-editor", { ref: (el) => this.canvasEditorRef = el, "canvas-editor-title": this.screenshotEditorTitle, "canvas-editor-cancel-text": this.screenshotEditorCancelText, "canvas-editor-save-text": this.screenshotEditorSaveText, "screenshot-taking-text": this.screenshotTakingText, "screenshot-attached-text": this.screenshotAttachedText, "screenshot-button-text": this.screenshotButtonText, "auto-start-screenshot": this.autoStartCapture, "existing-screenshot": this.encodedScreenshot || '', "edit-text-button-text": this.screenshotEditTextButtonText, "size-label-text": this.screenshotSizeLabelText, "border-label-text": this.screenshotBorderLabelText, "edit-text-prompt-text": this.screenshotEditTextPromptText, "screenshot-error-general": this.screenshotErrorGeneral, "screenshot-error-permission": this.screenshotErrorPermission, "screenshot-error-not-supported": this.screenshotErrorNotSupported, "screenshot-error-not-found": this.screenshotErrorNotFound, "screenshot-error-cancelled": this.screenshotErrorCancelled, "screenshot-error-browser-not-supported": this.screenshotErrorBrowserNotSupported, "screenshot-error-unexpected": this.screenshotErrorUnexpected, onScreenshotReady: this.handleScreenshotReady, onScreenshotCancelled: this.handleScreenshotCancelled, onScreenshotFailed: this.handleScreenshotError })), this.showScreenshotError && (h("div", { class: "screenshot-error-notification" }, h("div", { class: "screenshot-error-content" }, h("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" }, h("circle", { cx: "12", cy: "12", r: "10" }), h("line", { x1: "15", y1: "9", x2: "9", y2: "15" }), h("line", { x1: "9", y1: "9", x2: "15", y2: "15" })), h("span", null, this.screenshotError), h("button", { class: "error-close-btn", onClick: () => this.showScreenshotError = false, title: "Close" }, h("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" }, h("line", { x1: "18", y1: "6", x2: "6", y2: "18" }), h("line", { x1: "6", y1: "6", x2: "18", y2: "18" })))))), this.showModal && (h("div", { class: `feedback-overlay ${this.isAnimating ? 'feedback-overlay--visible' : ''}` })), this.showModal && (h("div", { class: `feedback-modal-content feedback-modal-content--${this.modalPosition} ${this.isAnimating ? 'feedback-modal-content--open' : ''}`, ref: (el) => (this.modalContent = el) }, h("div", { class: "feedback-modal-header" }, !this.formSuccess && !this.formError ? (h("span", null, this.modalTitle)) : this.formSuccess ? (h("span", null, this.modalTitleSuccess)) : (h("span", null, this.modalTitleError)), h("button", { class: "feedback-modal-close", onClick: this.close }, h("svg", { xmlns: "http://www.w3.org/2000/svg", width: "22", height: "22", viewBox: "0 0 24 24", fill: "none", stroke: "#191919", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round", class: "feather feather-x" }, h("line", { x1: "18", y1: "6", x2: "6", y2: "18" }), h("line", { x1: "6", y1: "6", x2: "18", y2: "18" })))), h("div", { class: "feedback-modal-body" }, !this.formSuccess && !this.formError ? (h("form", { onSubmit: this.handleSubmit }, !this.hideRating && (h("div", { class: "feedback-modal-rating" }, this.ratingMode === 'thumbs' ? (h("div", { class: "feedback-modal-rating-content" }, h("span", { class: "feedback-modal-input-heading" }, this.ratingPlaceholder), h("div", { class: "feedback-modal-rating-buttons feedback-modal-rating-buttons--thumbs" }, h("button", { title: "Yes", class: `feedback-modal-rating-button ${this.selectedRating === 1
253
+ ? 'feedback-modal-rating-button--selected'
254
+ : ''}`, onClick: (event) => {
255
+ event.preventDefault();
256
+ this.handleRatingChange(1);
257
+ } }, h("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "#5F6368", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" }, h("path", { d: "M14 9V5a3 3 0 0 0-3-3l-4 9v11h11.28a2 2 0 0 0 2-1.7l1.38-9a2 2 0 0 0-2-2.3zM7 22H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h3" }))), h("button", { title: "No", class: `feedback-modal-rating-button ${this.selectedRating === 5
258
+ ? 'feedback-modal-rating-button--selected'
259
+ : ''}`, onClick: (event) => {
260
+ event.preventDefault();
261
+ this.handleRatingChange(5);
262
+ } }, h("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "#5F6368", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" }, h("path", { d: "M10 15v4a3 3 0 0 0 3 3l4-9V2H5.72a2 2 0 0 0-2 1.7l-1.38 9a2 2 0 0 0 2 2.3zm7-13h2.67A2.31 2.31 0 0 1 22 4v7a2.31 2.31 0 0 1-2.33 2H17" })))))) : (h("div", { class: "feedback-modal-rating-content" }, h("span", { class: "feedback-modal-input-heading" }, this.ratingStarsPlaceholder), h("div", { class: "feedback-modal-rating-buttons feedback-modal-rating-buttons--stars" }, [1, 2, 3, 4, 5].map((rating) => (h("button", { key: rating, class: `feedback-modal-rating-button ${this.selectedRating >= rating
263
+ ? 'feedback-modal-rating-button--selected'
264
+ : ''}`, onClick: (event) => {
265
+ event.preventDefault();
266
+ this.handleRatingChange(rating);
267
+ } }, h("svg", { xmlns: "http://www.w3.org/2000/svg", width: "28", height: "28", viewBox: "0 0 24 24", fill: "none", stroke: "#5F6368", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" }, h("polygon", { points: "12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2" })))))))))), h("div", { class: "feedback-modal-text" }, h("textarea", { placeholder: this.messagePlaceholder, value: this.formMessage, onInput: (event) => this.handleMessageInput(event) })), !this.hideEmail && (h("div", { class: "feedback-modal-email" }, h("input", { placeholder: this.emailPlaceholder, type: "email", onInput: (event) => this.handleEmailInput(event), value: this.formEmail, required: this.isEmailRequired }))), h("div", { class: "feedback-verification" }, h("input", { type: "text", name: "verification", style: { display: 'none' }, onInput: (event) => this.handleVerification(event), value: this.formVerification })), !this.hidePrivacyPolicy && (h("div", { class: "feedback-modal-privacy" }, h("input", { type: "checkbox", id: "privacyPolicy", onChange: (ev) => this.handleCheckboxChange(ev), required: true }), h("span", { innerHTML: this.privacyPolicyText }))), h("div", { class: `feedback-modal-buttons ${this.hideScreenshotButton ? 'single' : ''}` }, !this.hideScreenshotButton && (h("button", { type: "button", class: `feedback-modal-button feedback-modal-button--screenshot ${this.encodedScreenshot ? 'feedback-modal-button--active' : ''}`, onClick: this.openScreenShot, disabled: this.sending || this.takingScreenshot }, this.encodedScreenshot && (h("div", { class: "screenshot-preview", onClick: this.openCanvasEditor }, h("img", { src: this.encodedScreenshot, alt: "Screenshot Preview" }))), !this.encodedScreenshot && !this.takingScreenshot && (h("svg", { xmlns: "http://www.w3.org/2000/svg", height: "24", viewBox: "0 -960 960 960", width: "24" }, h("path", { d: "M680-80v-120H560v-80h120v-120h80v120h120v80H760v120h-80ZM200-200v-200h80v120h120v80H200Zm0-360v-200h200v80H280v120h-80Zm480 0v-120H560v-80h200v200h-80Z" }))), this.takingScreenshot && (h("div", { class: "screenshot-loading" }, h("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "#666", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round", class: "feather-loader" }, h("line", { x1: "12", y1: "2", x2: "12", y2: "6" }), h("line", { x1: "12", y1: "18", x2: "12", y2: "22" }), h("line", { x1: "4.93", y1: "4.93", x2: "7.76", y2: "7.76" }), h("line", { x1: "16.24", y1: "16.24", x2: "19.07", y2: "19.07" }), h("line", { x1: "2", y1: "12", x2: "6", y2: "12" }), h("line", { x1: "18", y1: "12", x2: "22", y2: "12" }), h("line", { x1: "4.93", y1: "19.07", x2: "7.76", y2: "16.24" }), h("line", { x1: "16.24", y1: "7.76", x2: "19.07", y2: "4.93" })))), this.takingScreenshot ? this.screenshotTakingText :
268
+ this.encodedScreenshot ? this.screenshotAttachedText : this.screenshotButtonText)), h("button", { class: "feedback-modal-button feedback-modal-button--submit", type: "submit", disabled: this.sending }, this.sendButtonText)))) : this.formSuccess && !this.formError ? (h("div", { class: "feedback-modal-success" }, h("p", { class: "feedback-modal-message" }, this.successMessage))) : this.formError && this.formErrorStatus == 404 ? (h("p", { class: "feedback-modal-message" }, this.errorMessage404)) : this.formError && this.formErrorStatus == 403 ? (h("p", { class: "feedback-modal-message" }, this.errorMessage403)) : this.formError ? (h("p", { class: "feedback-modal-message" }, this.errorMessage)) : (h("span", null))), h("div", { class: "feedback-modal-footer" }, h("div", { class: "feedback-logo", style: { display: this.whitelabel ? 'none' : 'block' } }, "Powered by", ' ', h("a", { target: "_blank", href: "https://pushfeedback.com" }, "PushFeedback.com")), this.footerText && (h("div", { class: "feedback-footer-text" }, h("span", { innerHTML: this.footerText }))))))));
269
+ }
270
+ componentDidRender() {
271
+ if (this.showModal) {
272
+ requestAnimationFrame(() => {
273
+ this.overlayVisible = true;
274
+ });
275
+ }
276
+ }
277
+ async openModal() {
278
+ this.showModal = true;
279
+ requestAnimationFrame(() => {
280
+ requestAnimationFrame(() => {
281
+ this.isAnimating = true;
282
+ });
283
+ });
284
+ }
285
+ static get is() { return "feedback-modal"; }
286
+ static get encapsulation() { return "shadow"; }
287
+ static get originalStyleUrls() {
288
+ return {
289
+ "$": ["feedback-modal.css"]
290
+ };
291
+ }
292
+ static get styleUrls() {
293
+ return {
294
+ "$": ["feedback-modal.css"]
295
+ };
296
+ }
297
+ static get properties() {
298
+ return {
299
+ "customFont": {
300
+ "type": "boolean",
301
+ "mutable": false,
302
+ "complexType": {
303
+ "original": "boolean",
304
+ "resolved": "boolean",
305
+ "references": {}
306
+ },
307
+ "required": false,
308
+ "optional": false,
309
+ "docs": {
310
+ "tags": [],
311
+ "text": ""
312
+ },
313
+ "attribute": "custom-font",
314
+ "reflect": false,
315
+ "defaultValue": "false"
316
+ },
317
+ "emailAddress": {
318
+ "type": "string",
319
+ "mutable": false,
320
+ "complexType": {
321
+ "original": "string",
322
+ "resolved": "string",
323
+ "references": {}
324
+ },
325
+ "required": false,
326
+ "optional": false,
327
+ "docs": {
328
+ "tags": [],
329
+ "text": ""
330
+ },
331
+ "attribute": "email-address",
332
+ "reflect": false,
333
+ "defaultValue": "''"
334
+ },
335
+ "hideEmail": {
336
+ "type": "boolean",
337
+ "mutable": false,
338
+ "complexType": {
339
+ "original": "boolean",
340
+ "resolved": "boolean",
341
+ "references": {}
342
+ },
343
+ "required": false,
344
+ "optional": false,
345
+ "docs": {
346
+ "tags": [],
347
+ "text": ""
348
+ },
349
+ "attribute": "hide-email",
350
+ "reflect": false,
351
+ "defaultValue": "false"
352
+ },
353
+ "isEmailRequired": {
354
+ "type": "boolean",
355
+ "mutable": false,
356
+ "complexType": {
357
+ "original": "boolean",
358
+ "resolved": "boolean",
359
+ "references": {}
360
+ },
361
+ "required": false,
362
+ "optional": false,
363
+ "docs": {
364
+ "tags": [],
365
+ "text": ""
366
+ },
367
+ "attribute": "is-email-required",
368
+ "reflect": false,
369
+ "defaultValue": "false"
370
+ },
371
+ "ratingMode": {
372
+ "type": "string",
373
+ "mutable": false,
374
+ "complexType": {
375
+ "original": "string",
376
+ "resolved": "string",
377
+ "references": {}
378
+ },
379
+ "required": false,
380
+ "optional": false,
381
+ "docs": {
382
+ "tags": [],
383
+ "text": ""
384
+ },
385
+ "attribute": "rating-mode",
386
+ "reflect": false,
387
+ "defaultValue": "'thumbs'"
388
+ },
389
+ "hasSelectedElement": {
390
+ "type": "boolean",
391
+ "mutable": true,
392
+ "complexType": {
393
+ "original": "boolean",
394
+ "resolved": "boolean",
395
+ "references": {}
396
+ },
397
+ "required": false,
398
+ "optional": false,
399
+ "docs": {
400
+ "tags": [],
401
+ "text": ""
402
+ },
403
+ "attribute": "has-selected-element",
404
+ "reflect": true,
405
+ "defaultValue": "false"
406
+ },
407
+ "hidePrivacyPolicy": {
408
+ "type": "boolean",
409
+ "mutable": false,
410
+ "complexType": {
411
+ "original": "boolean",
412
+ "resolved": "boolean",
413
+ "references": {}
414
+ },
415
+ "required": false,
416
+ "optional": false,
417
+ "docs": {
418
+ "tags": [],
419
+ "text": ""
420
+ },
421
+ "attribute": "hide-privacy-policy",
422
+ "reflect": false,
423
+ "defaultValue": "true"
424
+ },
425
+ "hideRating": {
426
+ "type": "boolean",
427
+ "mutable": false,
428
+ "complexType": {
429
+ "original": "boolean",
430
+ "resolved": "boolean",
431
+ "references": {}
432
+ },
433
+ "required": false,
434
+ "optional": false,
435
+ "docs": {
436
+ "tags": [],
437
+ "text": ""
438
+ },
439
+ "attribute": "hide-rating",
440
+ "reflect": false,
441
+ "defaultValue": "false"
442
+ },
443
+ "hideScreenshotButton": {
444
+ "type": "boolean",
445
+ "mutable": false,
446
+ "complexType": {
447
+ "original": "boolean",
448
+ "resolved": "boolean",
449
+ "references": {}
450
+ },
451
+ "required": false,
452
+ "optional": false,
453
+ "docs": {
454
+ "tags": [],
455
+ "text": ""
456
+ },
457
+ "attribute": "hide-screenshot-button",
458
+ "reflect": false,
459
+ "defaultValue": "false"
460
+ },
461
+ "project": {
462
+ "type": "string",
463
+ "mutable": false,
464
+ "complexType": {
465
+ "original": "string",
466
+ "resolved": "string",
467
+ "references": {}
468
+ },
469
+ "required": false,
470
+ "optional": false,
471
+ "docs": {
472
+ "tags": [],
473
+ "text": ""
474
+ },
475
+ "attribute": "project",
476
+ "reflect": false,
477
+ "defaultValue": "''"
478
+ },
479
+ "showScreenshotMode": {
480
+ "type": "boolean",
481
+ "mutable": true,
482
+ "complexType": {
483
+ "original": "boolean",
484
+ "resolved": "boolean",
485
+ "references": {}
486
+ },
487
+ "required": false,
488
+ "optional": false,
489
+ "docs": {
490
+ "tags": [],
491
+ "text": ""
492
+ },
493
+ "attribute": "show-screenshot-mode",
494
+ "reflect": true,
495
+ "defaultValue": "false"
496
+ },
497
+ "showScreenshotTopBar": {
498
+ "type": "boolean",
499
+ "mutable": true,
500
+ "complexType": {
501
+ "original": "boolean",
502
+ "resolved": "boolean",
503
+ "references": {}
504
+ },
505
+ "required": false,
506
+ "optional": false,
507
+ "docs": {
508
+ "tags": [],
509
+ "text": ""
510
+ },
511
+ "attribute": "show-screenshot-top-bar",
512
+ "reflect": true,
513
+ "defaultValue": "false"
514
+ },
515
+ "showModal": {
516
+ "type": "boolean",
517
+ "mutable": true,
518
+ "complexType": {
519
+ "original": "boolean",
520
+ "resolved": "boolean",
521
+ "references": {}
522
+ },
523
+ "required": false,
524
+ "optional": false,
525
+ "docs": {
526
+ "tags": [],
527
+ "text": ""
528
+ },
529
+ "attribute": "show-modal",
530
+ "reflect": true,
531
+ "defaultValue": "false"
532
+ },
533
+ "rating": {
534
+ "type": "number",
535
+ "mutable": false,
536
+ "complexType": {
537
+ "original": "number",
538
+ "resolved": "number",
539
+ "references": {}
540
+ },
541
+ "required": false,
542
+ "optional": false,
543
+ "docs": {
544
+ "tags": [],
545
+ "text": ""
546
+ },
547
+ "attribute": "rating",
548
+ "reflect": false
549
+ },
550
+ "metadata": {
551
+ "type": "string",
552
+ "mutable": false,
553
+ "complexType": {
554
+ "original": "''",
555
+ "resolved": "\"\"",
556
+ "references": {}
557
+ },
558
+ "required": false,
559
+ "optional": false,
560
+ "docs": {
561
+ "tags": [],
562
+ "text": ""
563
+ },
564
+ "attribute": "metadata",
565
+ "reflect": false
566
+ },
567
+ "fetchData": {
568
+ "type": "boolean",
569
+ "mutable": false,
570
+ "complexType": {
571
+ "original": "boolean",
572
+ "resolved": "boolean",
573
+ "references": {}
574
+ },
575
+ "required": false,
576
+ "optional": false,
577
+ "docs": {
578
+ "tags": [],
579
+ "text": ""
580
+ },
581
+ "attribute": "fetch-data",
582
+ "reflect": false,
583
+ "defaultValue": "true"
584
+ },
585
+ "emailPlaceholder": {
586
+ "type": "string",
587
+ "mutable": false,
588
+ "complexType": {
589
+ "original": "string",
590
+ "resolved": "string",
591
+ "references": {}
592
+ },
593
+ "required": false,
594
+ "optional": false,
595
+ "docs": {
596
+ "tags": [],
597
+ "text": ""
598
+ },
599
+ "attribute": "email-placeholder",
600
+ "reflect": false,
601
+ "defaultValue": "'Email address (optional)'"
602
+ },
603
+ "errorMessage": {
604
+ "type": "string",
605
+ "mutable": false,
606
+ "complexType": {
607
+ "original": "string",
608
+ "resolved": "string",
609
+ "references": {}
610
+ },
611
+ "required": false,
612
+ "optional": false,
613
+ "docs": {
614
+ "tags": [],
615
+ "text": ""
616
+ },
617
+ "attribute": "error-message",
618
+ "reflect": false,
619
+ "defaultValue": "'Please try again later.'"
620
+ },
621
+ "errorMessage403": {
622
+ "type": "string",
623
+ "mutable": false,
624
+ "complexType": {
625
+ "original": "string",
626
+ "resolved": "string",
627
+ "references": {}
628
+ },
629
+ "required": false,
630
+ "optional": false,
631
+ "docs": {
632
+ "tags": [],
633
+ "text": ""
634
+ },
635
+ "attribute": "error-message-4-0-3",
636
+ "reflect": false,
637
+ "defaultValue": "'The request URL does not match the one defined in PushFeedback for this project.'"
638
+ },
639
+ "errorMessage404": {
640
+ "type": "string",
641
+ "mutable": false,
642
+ "complexType": {
643
+ "original": "string",
644
+ "resolved": "string",
645
+ "references": {}
646
+ },
647
+ "required": false,
648
+ "optional": false,
649
+ "docs": {
650
+ "tags": [],
651
+ "text": ""
652
+ },
653
+ "attribute": "error-message-4-0-4",
654
+ "reflect": false,
655
+ "defaultValue": "'We could not find the provided project ID in PushFeedback.'"
656
+ },
657
+ "messagePlaceholder": {
658
+ "type": "string",
659
+ "mutable": false,
660
+ "complexType": {
661
+ "original": "string",
662
+ "resolved": "string",
663
+ "references": {}
664
+ },
665
+ "required": false,
666
+ "optional": false,
667
+ "docs": {
668
+ "tags": [],
669
+ "text": ""
670
+ },
671
+ "attribute": "message-placeholder",
672
+ "reflect": false,
673
+ "defaultValue": "'Comments'"
674
+ },
675
+ "footerText": {
676
+ "type": "string",
677
+ "mutable": false,
678
+ "complexType": {
679
+ "original": "string",
680
+ "resolved": "string",
681
+ "references": {}
682
+ },
683
+ "required": false,
684
+ "optional": false,
685
+ "docs": {
686
+ "tags": [],
687
+ "text": ""
688
+ },
689
+ "attribute": "footer-text",
690
+ "reflect": false,
691
+ "defaultValue": "''"
692
+ },
693
+ "modalPosition": {
694
+ "type": "string",
695
+ "mutable": false,
696
+ "complexType": {
697
+ "original": "string",
698
+ "resolved": "string",
699
+ "references": {}
700
+ },
701
+ "required": false,
702
+ "optional": false,
703
+ "docs": {
704
+ "tags": [],
705
+ "text": ""
706
+ },
707
+ "attribute": "modal-position",
708
+ "reflect": false,
709
+ "defaultValue": "'center'"
710
+ },
711
+ "modalTitle": {
712
+ "type": "string",
713
+ "mutable": false,
714
+ "complexType": {
715
+ "original": "string",
716
+ "resolved": "string",
717
+ "references": {}
718
+ },
719
+ "required": false,
720
+ "optional": false,
721
+ "docs": {
722
+ "tags": [],
723
+ "text": ""
724
+ },
725
+ "attribute": "modal-title",
726
+ "reflect": false,
727
+ "defaultValue": "'Share your feedback'"
728
+ },
729
+ "modalTitleError": {
730
+ "type": "string",
731
+ "mutable": false,
732
+ "complexType": {
733
+ "original": "string",
734
+ "resolved": "string",
735
+ "references": {}
736
+ },
737
+ "required": false,
738
+ "optional": false,
739
+ "docs": {
740
+ "tags": [],
741
+ "text": ""
742
+ },
743
+ "attribute": "modal-title-error",
744
+ "reflect": false,
745
+ "defaultValue": "'Oops!'"
746
+ },
747
+ "modalTitleSuccess": {
748
+ "type": "string",
749
+ "mutable": false,
750
+ "complexType": {
751
+ "original": "string",
752
+ "resolved": "string",
753
+ "references": {}
754
+ },
755
+ "required": false,
756
+ "optional": false,
757
+ "docs": {
758
+ "tags": [],
759
+ "text": ""
760
+ },
761
+ "attribute": "modal-title-success",
762
+ "reflect": false,
763
+ "defaultValue": "'Thanks for your feedback!'"
764
+ },
765
+ "privacyPolicyText": {
766
+ "type": "string",
767
+ "mutable": false,
768
+ "complexType": {
769
+ "original": "string",
770
+ "resolved": "string",
771
+ "references": {}
772
+ },
773
+ "required": false,
774
+ "optional": false,
775
+ "docs": {
776
+ "tags": [],
777
+ "text": ""
778
+ },
779
+ "attribute": "privacy-policy-text",
780
+ "reflect": false,
781
+ "defaultValue": "\"I have read and expressly consent to the terms of the <a href='https://pushfeedback.com/privacy'>Privacy Policy</a>.\""
782
+ },
783
+ "ratingPlaceholder": {
784
+ "type": "string",
785
+ "mutable": false,
786
+ "complexType": {
787
+ "original": "string",
788
+ "resolved": "string",
789
+ "references": {}
790
+ },
791
+ "required": false,
792
+ "optional": false,
793
+ "docs": {
794
+ "tags": [],
795
+ "text": ""
796
+ },
797
+ "attribute": "rating-placeholder",
798
+ "reflect": false,
799
+ "defaultValue": "'Was this page helpful?'"
800
+ },
801
+ "ratingStarsPlaceholder": {
802
+ "type": "string",
803
+ "mutable": false,
804
+ "complexType": {
805
+ "original": "string",
806
+ "resolved": "string",
807
+ "references": {}
808
+ },
809
+ "required": false,
810
+ "optional": false,
811
+ "docs": {
812
+ "tags": [],
813
+ "text": ""
814
+ },
815
+ "attribute": "rating-stars-placeholder",
816
+ "reflect": false,
817
+ "defaultValue": "'How would you rate this page?'"
818
+ },
819
+ "sendButtonText": {
820
+ "type": "string",
821
+ "mutable": false,
822
+ "complexType": {
823
+ "original": "string",
824
+ "resolved": "string",
825
+ "references": {}
826
+ },
827
+ "required": false,
828
+ "optional": false,
829
+ "docs": {
830
+ "tags": [],
831
+ "text": ""
832
+ },
833
+ "attribute": "send-button-text",
834
+ "reflect": false,
835
+ "defaultValue": "'Send'"
836
+ },
837
+ "successMessage": {
838
+ "type": "string",
839
+ "mutable": false,
840
+ "complexType": {
841
+ "original": "string",
842
+ "resolved": "string",
843
+ "references": {}
844
+ },
845
+ "required": false,
846
+ "optional": false,
847
+ "docs": {
848
+ "tags": [],
849
+ "text": ""
850
+ },
851
+ "attribute": "success-message",
852
+ "reflect": false,
853
+ "defaultValue": "''"
854
+ },
855
+ "screenshotEditorTitle": {
856
+ "type": "string",
857
+ "mutable": false,
858
+ "complexType": {
859
+ "original": "string",
860
+ "resolved": "string",
861
+ "references": {}
862
+ },
863
+ "required": false,
864
+ "optional": false,
865
+ "docs": {
866
+ "tags": [],
867
+ "text": ""
868
+ },
869
+ "attribute": "screenshot-editor-title",
870
+ "reflect": false,
871
+ "defaultValue": "'Edit screenshot'"
872
+ },
873
+ "screenshotEditorCancelText": {
874
+ "type": "string",
875
+ "mutable": false,
876
+ "complexType": {
877
+ "original": "string",
878
+ "resolved": "string",
879
+ "references": {}
880
+ },
881
+ "required": false,
882
+ "optional": false,
883
+ "docs": {
884
+ "tags": [],
885
+ "text": ""
886
+ },
887
+ "attribute": "screenshot-editor-cancel-text",
888
+ "reflect": false,
889
+ "defaultValue": "'Cancel'"
890
+ },
891
+ "screenshotEditorSaveText": {
892
+ "type": "string",
893
+ "mutable": false,
894
+ "complexType": {
895
+ "original": "string",
896
+ "resolved": "string",
897
+ "references": {}
898
+ },
899
+ "required": false,
900
+ "optional": false,
901
+ "docs": {
902
+ "tags": [],
903
+ "text": ""
904
+ },
905
+ "attribute": "screenshot-editor-save-text",
906
+ "reflect": false,
907
+ "defaultValue": "'Save'"
908
+ },
909
+ "screenshotAttachedText": {
910
+ "type": "string",
911
+ "mutable": false,
912
+ "complexType": {
913
+ "original": "string",
914
+ "resolved": "string",
915
+ "references": {}
916
+ },
917
+ "required": false,
918
+ "optional": false,
919
+ "docs": {
920
+ "tags": [],
921
+ "text": ""
922
+ },
923
+ "attribute": "screenshot-attached-text",
924
+ "reflect": false,
925
+ "defaultValue": "'Screenshot attached'"
926
+ },
927
+ "screenshotButtonText": {
928
+ "type": "string",
929
+ "mutable": false,
930
+ "complexType": {
931
+ "original": "string",
932
+ "resolved": "string",
933
+ "references": {}
934
+ },
935
+ "required": false,
936
+ "optional": false,
937
+ "docs": {
938
+ "tags": [],
939
+ "text": ""
940
+ },
941
+ "attribute": "screenshot-button-text",
942
+ "reflect": false,
943
+ "defaultValue": "'Add a screenshot'"
944
+ },
945
+ "screenshotTakingText": {
946
+ "type": "string",
947
+ "mutable": false,
948
+ "complexType": {
949
+ "original": "string",
950
+ "resolved": "string",
951
+ "references": {}
952
+ },
953
+ "required": false,
954
+ "optional": false,
955
+ "docs": {
956
+ "tags": [],
957
+ "text": ""
958
+ },
959
+ "attribute": "screenshot-taking-text",
960
+ "reflect": false,
961
+ "defaultValue": "'Taking screenshot...'"
962
+ },
963
+ "screenshotEditTextButtonText": {
964
+ "type": "string",
965
+ "mutable": false,
966
+ "complexType": {
967
+ "original": "string",
968
+ "resolved": "string",
969
+ "references": {}
970
+ },
971
+ "required": false,
972
+ "optional": false,
973
+ "docs": {
974
+ "tags": [],
975
+ "text": ""
976
+ },
977
+ "attribute": "screenshot-edit-text-button-text",
978
+ "reflect": false,
979
+ "defaultValue": "'Edit text'"
980
+ },
981
+ "screenshotSizeLabelText": {
982
+ "type": "string",
983
+ "mutable": false,
984
+ "complexType": {
985
+ "original": "string",
986
+ "resolved": "string",
987
+ "references": {}
988
+ },
989
+ "required": false,
990
+ "optional": false,
991
+ "docs": {
992
+ "tags": [],
993
+ "text": ""
994
+ },
995
+ "attribute": "screenshot-size-label-text",
996
+ "reflect": false,
997
+ "defaultValue": "'Size:'"
998
+ },
999
+ "screenshotBorderLabelText": {
1000
+ "type": "string",
1001
+ "mutable": false,
1002
+ "complexType": {
1003
+ "original": "string",
1004
+ "resolved": "string",
1005
+ "references": {}
1006
+ },
1007
+ "required": false,
1008
+ "optional": false,
1009
+ "docs": {
1010
+ "tags": [],
1011
+ "text": ""
1012
+ },
1013
+ "attribute": "screenshot-border-label-text",
1014
+ "reflect": false,
1015
+ "defaultValue": "'Border:'"
1016
+ },
1017
+ "screenshotEditTextPromptText": {
1018
+ "type": "string",
1019
+ "mutable": false,
1020
+ "complexType": {
1021
+ "original": "string",
1022
+ "resolved": "string",
1023
+ "references": {}
1024
+ },
1025
+ "required": false,
1026
+ "optional": false,
1027
+ "docs": {
1028
+ "tags": [],
1029
+ "text": ""
1030
+ },
1031
+ "attribute": "screenshot-edit-text-prompt-text",
1032
+ "reflect": false,
1033
+ "defaultValue": "'Edit text:'"
1034
+ },
1035
+ "screenshotErrorGeneral": {
1036
+ "type": "string",
1037
+ "mutable": false,
1038
+ "complexType": {
1039
+ "original": "string",
1040
+ "resolved": "string",
1041
+ "references": {}
1042
+ },
1043
+ "required": false,
1044
+ "optional": false,
1045
+ "docs": {
1046
+ "tags": [],
1047
+ "text": ""
1048
+ },
1049
+ "attribute": "screenshot-error-general",
1050
+ "reflect": false,
1051
+ "defaultValue": "'Failed to capture screenshot.'"
1052
+ },
1053
+ "screenshotErrorPermission": {
1054
+ "type": "string",
1055
+ "mutable": false,
1056
+ "complexType": {
1057
+ "original": "string",
1058
+ "resolved": "string",
1059
+ "references": {}
1060
+ },
1061
+ "required": false,
1062
+ "optional": false,
1063
+ "docs": {
1064
+ "tags": [],
1065
+ "text": ""
1066
+ },
1067
+ "attribute": "screenshot-error-permission",
1068
+ "reflect": false,
1069
+ "defaultValue": "'Permission denied. Please allow screen sharing to take screenshots.'"
1070
+ },
1071
+ "screenshotErrorNotSupported": {
1072
+ "type": "string",
1073
+ "mutable": false,
1074
+ "complexType": {
1075
+ "original": "string",
1076
+ "resolved": "string",
1077
+ "references": {}
1078
+ },
1079
+ "required": false,
1080
+ "optional": false,
1081
+ "docs": {
1082
+ "tags": [],
1083
+ "text": ""
1084
+ },
1085
+ "attribute": "screenshot-error-not-supported",
1086
+ "reflect": false,
1087
+ "defaultValue": "'Screen capture is not supported in this browser.'"
1088
+ },
1089
+ "screenshotErrorNotFound": {
1090
+ "type": "string",
1091
+ "mutable": false,
1092
+ "complexType": {
1093
+ "original": "string",
1094
+ "resolved": "string",
1095
+ "references": {}
1096
+ },
1097
+ "required": false,
1098
+ "optional": false,
1099
+ "docs": {
1100
+ "tags": [],
1101
+ "text": ""
1102
+ },
1103
+ "attribute": "screenshot-error-not-found",
1104
+ "reflect": false,
1105
+ "defaultValue": "'No screen sources available for capture.'"
1106
+ },
1107
+ "screenshotErrorCancelled": {
1108
+ "type": "string",
1109
+ "mutable": false,
1110
+ "complexType": {
1111
+ "original": "string",
1112
+ "resolved": "string",
1113
+ "references": {}
1114
+ },
1115
+ "required": false,
1116
+ "optional": false,
1117
+ "docs": {
1118
+ "tags": [],
1119
+ "text": ""
1120
+ },
1121
+ "attribute": "screenshot-error-cancelled",
1122
+ "reflect": false,
1123
+ "defaultValue": "'Screenshot capture was cancelled.'"
1124
+ },
1125
+ "screenshotErrorBrowserNotSupported": {
1126
+ "type": "string",
1127
+ "mutable": false,
1128
+ "complexType": {
1129
+ "original": "string",
1130
+ "resolved": "string",
1131
+ "references": {}
1132
+ },
1133
+ "required": false,
1134
+ "optional": false,
1135
+ "docs": {
1136
+ "tags": [],
1137
+ "text": ""
1138
+ },
1139
+ "attribute": "screenshot-error-browser-not-supported",
1140
+ "reflect": false,
1141
+ "defaultValue": "'Your browser does not support screen capture. Please use a browser like Chrome, Firefox, or Safari on desktop.'"
1142
+ },
1143
+ "screenshotErrorUnexpected": {
1144
+ "type": "string",
1145
+ "mutable": false,
1146
+ "complexType": {
1147
+ "original": "string",
1148
+ "resolved": "string",
1149
+ "references": {}
1150
+ },
1151
+ "required": false,
1152
+ "optional": false,
1153
+ "docs": {
1154
+ "tags": [],
1155
+ "text": ""
1156
+ },
1157
+ "attribute": "screenshot-error-unexpected",
1158
+ "reflect": false,
1159
+ "defaultValue": "'An unexpected error occurred. Please try again.'"
1160
+ }
1161
+ };
1162
+ }
1163
+ static get states() {
1164
+ return {
1165
+ "sending": {},
1166
+ "formMessage": {},
1167
+ "formEmail": {},
1168
+ "formSuccess": {},
1169
+ "formVerification": {},
1170
+ "formError": {},
1171
+ "formErrorStatus": {},
1172
+ "encodedScreenshot": {},
1173
+ "isPrivacyChecked": {},
1174
+ "whitelabel": {},
1175
+ "selectedRating": {},
1176
+ "overlayVisible": {},
1177
+ "isAnimating": {},
1178
+ "takingScreenshot": {},
1179
+ "showScreenshotError": {},
1180
+ "screenshotError": {},
1181
+ "showCanvasEditor": {},
1182
+ "autoStartCapture": {}
1183
+ };
1184
+ }
1185
+ static get events() {
1186
+ return [{
1187
+ "method": "feedbackSent",
1188
+ "name": "feedbackSent",
1189
+ "bubbles": true,
1190
+ "cancelable": true,
1191
+ "composed": true,
1192
+ "docs": {
1193
+ "tags": [],
1194
+ "text": ""
1195
+ },
1196
+ "complexType": {
1197
+ "original": "{ feedback: any }",
1198
+ "resolved": "{ feedback: any; }",
1199
+ "references": {}
1200
+ }
1201
+ }, {
1202
+ "method": "feedbackError",
1203
+ "name": "feedbackError",
1204
+ "bubbles": true,
1205
+ "cancelable": true,
1206
+ "composed": true,
1207
+ "docs": {
1208
+ "tags": [],
1209
+ "text": ""
1210
+ },
1211
+ "complexType": {
1212
+ "original": "{ error: any }",
1213
+ "resolved": "{ error: any; }",
1214
+ "references": {}
1215
+ }
1216
+ }];
1217
+ }
1218
+ static get methods() {
1219
+ return {
1220
+ "openModal": {
1221
+ "complexType": {
1222
+ "signature": "() => Promise<void>",
1223
+ "parameters": [],
1224
+ "references": {
1225
+ "Promise": {
1226
+ "location": "global"
1227
+ }
1228
+ },
1229
+ "return": "Promise<void>"
1230
+ },
1231
+ "docs": {
1232
+ "text": "",
1233
+ "tags": []
1234
+ }
1235
+ }
1236
+ };
1237
+ }
1238
+ }