pushfeedback 0.1.83 → 0.1.85
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/dist/cjs/canvas-editor_3.cjs.entry.js +440 -44
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/pushfeedback.cjs.js +1 -1
- package/dist/collection/components/canvas-editor/canvas-editor.js +173 -15
- package/dist/collection/components/feedback-button/feedback-button.css +45 -1
- package/dist/collection/components/feedback-button/feedback-button.js +98 -8
- package/dist/collection/components/feedback-modal/feedback-modal.css +6 -0
- package/dist/collection/components/feedback-modal/feedback-modal.js +351 -20
- package/dist/collection/utils/sanitize-html.js +90 -0
- package/dist/components/canvas-editor2.js +139 -15
- package/dist/components/feedback-button.js +30 -8
- package/dist/components/feedback-modal2.js +286 -21
- package/dist/esm/canvas-editor_3.entry.js +440 -44
- package/dist/esm/loader.js +1 -1
- package/dist/esm/pushfeedback.js +1 -1
- package/dist/pushfeedback/p-17acbd1c.entry.js +1 -0
- package/dist/pushfeedback/pushfeedback.esm.js +1 -1
- package/dist/types/components/canvas-editor/canvas-editor.d.ts +7 -0
- package/dist/types/components/feedback-button/feedback-button.d.ts +16 -0
- package/dist/types/components/feedback-modal/feedback-modal.d.ts +33 -0
- package/dist/types/components.d.ts +48 -0
- package/dist/types/utils/sanitize-html.d.ts +8 -0
- package/package.json +2 -1
- package/dist/pushfeedback/p-1338beed.entry.js +0 -1
package/dist/cjs/loader.cjs.js
CHANGED
|
@@ -14,7 +14,7 @@ const patchEsm = () => {
|
|
|
14
14
|
const defineCustomElements = (win, options) => {
|
|
15
15
|
if (typeof window === 'undefined') return Promise.resolve();
|
|
16
16
|
return patchEsm().then(() => {
|
|
17
|
-
return index.bootstrapLazy([["canvas-editor_3.cjs",[[1,"feedback-button",{"buttonPosition":[1,"button-position"],"buttonStyle":[1,"button-style"],"hideIcon":[4,"hide-icon"],"hideMobile":[4,"hide-mobile"],"sessionId":[1537,"session-id"],"metadata":[1],"submit":[4],"customFont":[4,"custom-font"],"emailAddress":[1,"email-address"],"isEmailRequired":[4,"is-email-required"],"fetchData":[4,"fetch-data"],"hideEmail":[4,"hide-email"],"hidePrivacyPolicy":[4,"hide-privacy-policy"],"hideRating":[4,"hide-rating"],"hideScreenshotButton":[4,"hide-screenshot-button"],"modalPosition":[1,"modal-position"],"project":[1],"rating":[2],"ratingMode":[1,"rating-mode"],"emailPlaceholder":[1,"email-placeholder"],"errorMessage":[1,"error-message"],"errorMessage403":[1,"error-message-4-0-3"],"errorMessage404":[1,"error-message-4-0-4"],"footerText":[1,"footer-text"],"messagePlaceholder":[1,"message-placeholder"],"modalTitle":[1,"modal-title"],"modalTitleError":[1,"modal-title-error"],"modalTitleSuccess":[1,"modal-title-success"],"privacyPolicyText":[1,"privacy-policy-text"],"ratingPlaceholder":[1,"rating-placeholder"],"ratingStarsPlaceholder":[1,"rating-stars-placeholder"],"sendButtonText":[1,"send-button-text"],"successMessage":[1,"success-message"],"recaptchaText":[1,"recaptcha-text"],"screenshotAttachedText":[1,"screenshot-attached-text"],"screenshotButtonText":[1,"screenshot-button-text"],"screenshotTakingText":[1,"screenshot-taking-text"],"screenshotEditTextButtonText":[1,"screenshot-edit-text-button-text"],"screenshotEditorTitle":[1,"screenshot-editor-title"],"screenshotEditorCancelText":[1,"screenshot-editor-cancel-text"],"screenshotEditorSaveText":[1,"screenshot-editor-save-text"],"screenshotSizeLabelText":[1,"screenshot-size-label-text"],"screenshotBorderLabelText":[1,"screenshot-border-label-text"],"screenshotEditTextPromptText":[1,"screenshot-edit-text-prompt-text"],"screenshotErrorGeneral":[1,"screenshot-error-general"],"screenshotErrorPermission":[1,"screenshot-error-permission"],"screenshotErrorNotSupported":[1,"screenshot-error-not-supported"],"screenshotErrorNotFound":[1,"screenshot-error-not-found"],"screenshotErrorCancelled":[1,"screenshot-error-cancelled"],"screenshotErrorBrowserNotSupported":[1,"screenshot-error-browser-not-supported"],"screenshotErrorUnexpected":[1,"screenshot-error-unexpected"]}],[1,"feedback-modal",{"customFont":[4,"custom-font"],"emailAddress":[1,"email-address"],"hideEmail":[4,"hide-email"],"isEmailRequired":[4,"is-email-required"],"ratingMode":[1,"rating-mode"],"hasSelectedElement":[1540,"has-selected-element"],"hidePrivacyPolicy":[4,"hide-privacy-policy"],"hideRating":[4,"hide-rating"],"hideScreenshotButton":[4,"hide-screenshot-button"],"project":[1],"showScreenshotMode":[1540,"show-screenshot-mode"],"showScreenshotTopBar":[1540,"show-screenshot-top-bar"],"showModal":[1540,"show-modal"],"rating":[2],"metadata":[1],"fetchData":[4,"fetch-data"],"embedded":[4],"emailPlaceholder":[1,"email-placeholder"],"errorMessage":[1,"error-message"],"errorMessage403":[1,"error-message-4-0-3"],"errorMessage404":[1,"error-message-4-0-4"],"messagePlaceholder":[1,"message-placeholder"],"footerText":[1,"footer-text"],"modalPosition":[1,"modal-position"],"modalTitle":[1,"modal-title"],"modalTitleError":[1,"modal-title-error"],"modalTitleSuccess":[1,"modal-title-success"],"privacyPolicyText":[1,"privacy-policy-text"],"ratingPlaceholder":[1,"rating-placeholder"],"ratingStarsPlaceholder":[1,"rating-stars-placeholder"],"sendButtonText":[1,"send-button-text"],"successMessage":[1,"success-message"],"recaptchaText":[1,"recaptcha-text"],"screenshotAttachedText":[1,"screenshot-attached-text"],"screenshotButtonText":[1,"screenshot-button-text"],"screenshotTakingText":[1,"screenshot-taking-text"],"screenshotEditTextButtonText":[1,"screenshot-edit-text-button-text"],"screenshotEditorTitle":[1,"screenshot-editor-title"],"screenshotEditorCancelText":[1,"screenshot-editor-cancel-text"],"screenshotEditorSaveText":[1,"screenshot-editor-save-text"],"screenshotSizeLabelText":[1,"screenshot-size-label-text"],"screenshotBorderLabelText":[1,"screenshot-border-label-text"],"screenshotEditTextPromptText":[1,"screenshot-edit-text-prompt-text"],"screenshotErrorGeneral":[1,"screenshot-error-general"],"screenshotErrorPermission":[1,"screenshot-error-permission"],"screenshotErrorNotSupported":[1,"screenshot-error-not-supported"],"screenshotErrorNotFound":[1,"screenshot-error-not-found"],"screenshotErrorCancelled":[1,"screenshot-error-cancelled"],"screenshotErrorBrowserNotSupported":[1,"screenshot-error-browser-not-supported"],"screenshotErrorUnexpected":[1,"screenshot-error-unexpected"],"sending":[32],"formMessage":[32],"formEmail":[32],"formSuccess":[32],"formVerification":[32],"formError":[32],"formErrorStatus":[32],"encodedScreenshot":[32],"isPrivacyChecked":[32],"whitelabel":[32],"selectedRating":[32],"overlayVisible":[32],"isAnimating":[32],"recaptchaEnabled":[32],"recaptchaSiteKey":[32],"takingScreenshot":[32],"showScreenshotError":[32],"screenshotError":[32],"showCanvasEditor":[32],"autoStartCapture":[32],"openModal":[64]}],[1,"canvas-editor",{"canvasEditorTitle":[1,"canvas-editor-title"],"canvasEditorCancelText":[1,"canvas-editor-cancel-text"],"canvasEditorSaveText":[1,"canvas-editor-save-text"],"screenshotTakingText":[1,"screenshot-taking-text"],"screenshotAttachedText":[1,"screenshot-attached-text"],"screenshotButtonText":[1,"screenshot-button-text"],"autoStartScreenshot":[4,"auto-start-screenshot"],"existingScreenshot":[1,"existing-screenshot"],"editTextButtonText":[1,"edit-text-button-text"],"sizeLabelText":[1,"size-label-text"],"borderLabelText":[1,"border-label-text"],"editTextPromptText":[1,"edit-text-prompt-text"],"screenshotErrorGeneral":[1,"screenshot-error-general"],"screenshotErrorPermission":[1,"screenshot-error-permission"],"screenshotErrorNotSupported":[1,"screenshot-error-not-supported"],"screenshotErrorNotFound":[1,"screenshot-error-not-found"],"screenshotErrorCancelled":[1,"screenshot-error-cancelled"],"screenshotErrorBrowserNotSupported":[1,"screenshot-error-browser-not-supported"],"screenshotErrorUnexpected":[1,"screenshot-error-unexpected"],"takingScreenshot":[32],"showCanvasEditor":[32],"canvasDrawingTool":[32],"canvasDrawingColor":[32],"canvasLineWidth":[32],"canvasTextSize":[32],"isDrawing":[32],"annotations":[32],"currentAnnotation":[32],"isDragging":[32],"draggedAnnotation":[32],"dragStartPos":[32],"showColorPicker":[32],"editingColorIndex":[32],"selectedAnnotation":[32],"isResizing":[32],"resizingAnnotation":[32],"resizeStartSize":[32],"resizeStartDimensions":[32],"hoveredAnnotation":[32],"resizeHandle":[32],"defaultColors":[32]}]]]], options);
|
|
17
|
+
return index.bootstrapLazy([["canvas-editor_3.cjs",[[1,"feedback-button",{"buttonPosition":[1,"button-position"],"buttonStyle":[1,"button-style"],"hideIcon":[4,"hide-icon"],"hideMobile":[4,"hide-mobile"],"sessionId":[1537,"session-id"],"metadata":[1],"submit":[4],"apiKey":[1,"api-key"],"clickOutsideClose":[4,"click-outside-close"],"customFont":[4,"custom-font"],"emailAddress":[1,"email-address"],"historyClose":[4,"history-close"],"isEmailRequired":[4,"is-email-required"],"fetchData":[4,"fetch-data"],"hideEmail":[4,"hide-email"],"hidePrivacyPolicy":[4,"hide-privacy-policy"],"hideRating":[4,"hide-rating"],"hideScreenshotButton":[4,"hide-screenshot-button"],"modalPosition":[1,"modal-position"],"project":[1],"rating":[2],"ratingMode":[1,"rating-mode"],"emailPlaceholder":[1,"email-placeholder"],"errorMessage":[1,"error-message"],"errorMessage401":[1,"error-message-4-0-1"],"errorMessage403":[1,"error-message-4-0-3"],"errorMessage404":[1,"error-message-4-0-4"],"footerText":[1,"footer-text"],"messagePlaceholder":[1,"message-placeholder"],"modalTitle":[1,"modal-title"],"modalTitleError":[1,"modal-title-error"],"modalTitleSuccess":[1,"modal-title-success"],"privacyPolicyText":[1,"privacy-policy-text"],"ratingPlaceholder":[1,"rating-placeholder"],"ratingStarsPlaceholder":[1,"rating-stars-placeholder"],"sendButtonText":[1,"send-button-text"],"successMessage":[1,"success-message"],"recaptchaText":[1,"recaptcha-text"],"screenshotAttachedText":[1,"screenshot-attached-text"],"screenshotButtonText":[1,"screenshot-button-text"],"screenshotTakingText":[1,"screenshot-taking-text"],"screenshotEditTextButtonText":[1,"screenshot-edit-text-button-text"],"screenshotEditorTitle":[1,"screenshot-editor-title"],"screenshotEditorCancelText":[1,"screenshot-editor-cancel-text"],"screenshotEditorSaveText":[1,"screenshot-editor-save-text"],"screenshotSizeLabelText":[1,"screenshot-size-label-text"],"screenshotBorderLabelText":[1,"screenshot-border-label-text"],"screenshotEditTextPromptText":[1,"screenshot-edit-text-prompt-text"],"screenshotErrorGeneral":[1,"screenshot-error-general"],"screenshotErrorPermission":[1,"screenshot-error-permission"],"screenshotErrorNotSupported":[1,"screenshot-error-not-supported"],"screenshotErrorNotFound":[1,"screenshot-error-not-found"],"screenshotErrorCancelled":[1,"screenshot-error-cancelled"],"screenshotErrorBrowserNotSupported":[1,"screenshot-error-browser-not-supported"],"screenshotErrorUnexpected":[1,"screenshot-error-unexpected"]}],[1,"feedback-modal",{"apiKey":[1,"api-key"],"customFont":[4,"custom-font"],"emailAddress":[1,"email-address"],"hideEmail":[4,"hide-email"],"isEmailRequired":[4,"is-email-required"],"ratingMode":[1,"rating-mode"],"hasSelectedElement":[1540,"has-selected-element"],"hidePrivacyPolicy":[4,"hide-privacy-policy"],"hideRating":[4,"hide-rating"],"hideScreenshotButton":[4,"hide-screenshot-button"],"project":[1],"showScreenshotMode":[1540,"show-screenshot-mode"],"showScreenshotTopBar":[1540,"show-screenshot-top-bar"],"showModal":[1540,"show-modal"],"rating":[2],"metadata":[1],"fetchData":[4,"fetch-data"],"embedded":[4],"clickOutsideClose":[4,"click-outside-close"],"historyClose":[4,"history-close"],"escapeClose":[4,"escape-close"],"emailPlaceholder":[1,"email-placeholder"],"errorMessage":[1,"error-message"],"errorMessage401":[1,"error-message-4-0-1"],"errorMessage403":[1,"error-message-4-0-3"],"errorMessage404":[1,"error-message-4-0-4"],"messagePlaceholder":[1,"message-placeholder"],"footerText":[1,"footer-text"],"modalPosition":[1,"modal-position"],"modalTitle":[1,"modal-title"],"modalTitleError":[1,"modal-title-error"],"modalTitleSuccess":[1,"modal-title-success"],"privacyPolicyText":[1,"privacy-policy-text"],"ratingPlaceholder":[1,"rating-placeholder"],"ratingStarsPlaceholder":[1,"rating-stars-placeholder"],"sendButtonText":[1,"send-button-text"],"closeButtonLabel":[1,"close-button-label"],"ratingPositiveLabel":[1,"rating-positive-label"],"ratingNegativeLabel":[1,"rating-negative-label"],"ratingStarLabel":[1,"rating-star-label"],"successMessage":[1,"success-message"],"recaptchaText":[1,"recaptcha-text"],"screenshotAttachedText":[1,"screenshot-attached-text"],"screenshotButtonText":[1,"screenshot-button-text"],"screenshotTakingText":[1,"screenshot-taking-text"],"screenshotEditTextButtonText":[1,"screenshot-edit-text-button-text"],"screenshotEditorTitle":[1,"screenshot-editor-title"],"screenshotEditorCancelText":[1,"screenshot-editor-cancel-text"],"screenshotEditorSaveText":[1,"screenshot-editor-save-text"],"screenshotSizeLabelText":[1,"screenshot-size-label-text"],"screenshotBorderLabelText":[1,"screenshot-border-label-text"],"screenshotEditTextPromptText":[1,"screenshot-edit-text-prompt-text"],"screenshotErrorGeneral":[1,"screenshot-error-general"],"screenshotErrorPermission":[1,"screenshot-error-permission"],"screenshotErrorNotSupported":[1,"screenshot-error-not-supported"],"screenshotErrorNotFound":[1,"screenshot-error-not-found"],"screenshotErrorCancelled":[1,"screenshot-error-cancelled"],"screenshotErrorBrowserNotSupported":[1,"screenshot-error-browser-not-supported"],"screenshotErrorUnexpected":[1,"screenshot-error-unexpected"],"sending":[32],"formMessage":[32],"formEmail":[32],"formSuccess":[32],"formVerification":[32],"formError":[32],"formErrorStatus":[32],"encodedScreenshot":[32],"isPrivacyChecked":[32],"whitelabel":[32],"selectedRating":[32],"overlayVisible":[32],"isAnimating":[32],"recaptchaEnabled":[32],"recaptchaSiteKey":[32],"takingScreenshot":[32],"showScreenshotError":[32],"screenshotError":[32],"showCanvasEditor":[32],"autoStartCapture":[32],"openModal":[64]}],[1,"canvas-editor",{"canvasEditorTitle":[1,"canvas-editor-title"],"canvasEditorCancelText":[1,"canvas-editor-cancel-text"],"canvasEditorSaveText":[1,"canvas-editor-save-text"],"screenshotTakingText":[1,"screenshot-taking-text"],"screenshotAttachedText":[1,"screenshot-attached-text"],"screenshotButtonText":[1,"screenshot-button-text"],"escapeClose":[4,"escape-close"],"clickOutsideClose":[4,"click-outside-close"],"autoStartScreenshot":[4,"auto-start-screenshot"],"existingScreenshot":[1,"existing-screenshot"],"editTextButtonText":[1,"edit-text-button-text"],"sizeLabelText":[1,"size-label-text"],"borderLabelText":[1,"border-label-text"],"editTextPromptText":[1,"edit-text-prompt-text"],"screenshotErrorGeneral":[1,"screenshot-error-general"],"screenshotErrorPermission":[1,"screenshot-error-permission"],"screenshotErrorNotSupported":[1,"screenshot-error-not-supported"],"screenshotErrorNotFound":[1,"screenshot-error-not-found"],"screenshotErrorCancelled":[1,"screenshot-error-cancelled"],"screenshotErrorBrowserNotSupported":[1,"screenshot-error-browser-not-supported"],"screenshotErrorUnexpected":[1,"screenshot-error-unexpected"],"takingScreenshot":[32],"showCanvasEditor":[32],"canvasDrawingTool":[32],"canvasDrawingColor":[32],"canvasLineWidth":[32],"canvasTextSize":[32],"isDrawing":[32],"annotations":[32],"currentAnnotation":[32],"isDragging":[32],"draggedAnnotation":[32],"dragStartPos":[32],"showColorPicker":[32],"editingColorIndex":[32],"selectedAnnotation":[32],"isResizing":[32],"resizingAnnotation":[32],"resizeStartSize":[32],"resizeStartDimensions":[32],"hoveredAnnotation":[32],"resizeHandle":[32],"defaultColors":[32]}]]]], options);
|
|
18
18
|
});
|
|
19
19
|
};
|
|
20
20
|
|
|
@@ -17,7 +17,7 @@ const patchBrowser = () => {
|
|
|
17
17
|
};
|
|
18
18
|
|
|
19
19
|
patchBrowser().then(options => {
|
|
20
|
-
return index.bootstrapLazy([["canvas-editor_3.cjs",[[1,"feedback-button",{"buttonPosition":[1,"button-position"],"buttonStyle":[1,"button-style"],"hideIcon":[4,"hide-icon"],"hideMobile":[4,"hide-mobile"],"sessionId":[1537,"session-id"],"metadata":[1],"submit":[4],"customFont":[4,"custom-font"],"emailAddress":[1,"email-address"],"isEmailRequired":[4,"is-email-required"],"fetchData":[4,"fetch-data"],"hideEmail":[4,"hide-email"],"hidePrivacyPolicy":[4,"hide-privacy-policy"],"hideRating":[4,"hide-rating"],"hideScreenshotButton":[4,"hide-screenshot-button"],"modalPosition":[1,"modal-position"],"project":[1],"rating":[2],"ratingMode":[1,"rating-mode"],"emailPlaceholder":[1,"email-placeholder"],"errorMessage":[1,"error-message"],"errorMessage403":[1,"error-message-4-0-3"],"errorMessage404":[1,"error-message-4-0-4"],"footerText":[1,"footer-text"],"messagePlaceholder":[1,"message-placeholder"],"modalTitle":[1,"modal-title"],"modalTitleError":[1,"modal-title-error"],"modalTitleSuccess":[1,"modal-title-success"],"privacyPolicyText":[1,"privacy-policy-text"],"ratingPlaceholder":[1,"rating-placeholder"],"ratingStarsPlaceholder":[1,"rating-stars-placeholder"],"sendButtonText":[1,"send-button-text"],"successMessage":[1,"success-message"],"recaptchaText":[1,"recaptcha-text"],"screenshotAttachedText":[1,"screenshot-attached-text"],"screenshotButtonText":[1,"screenshot-button-text"],"screenshotTakingText":[1,"screenshot-taking-text"],"screenshotEditTextButtonText":[1,"screenshot-edit-text-button-text"],"screenshotEditorTitle":[1,"screenshot-editor-title"],"screenshotEditorCancelText":[1,"screenshot-editor-cancel-text"],"screenshotEditorSaveText":[1,"screenshot-editor-save-text"],"screenshotSizeLabelText":[1,"screenshot-size-label-text"],"screenshotBorderLabelText":[1,"screenshot-border-label-text"],"screenshotEditTextPromptText":[1,"screenshot-edit-text-prompt-text"],"screenshotErrorGeneral":[1,"screenshot-error-general"],"screenshotErrorPermission":[1,"screenshot-error-permission"],"screenshotErrorNotSupported":[1,"screenshot-error-not-supported"],"screenshotErrorNotFound":[1,"screenshot-error-not-found"],"screenshotErrorCancelled":[1,"screenshot-error-cancelled"],"screenshotErrorBrowserNotSupported":[1,"screenshot-error-browser-not-supported"],"screenshotErrorUnexpected":[1,"screenshot-error-unexpected"]}],[1,"feedback-modal",{"customFont":[4,"custom-font"],"emailAddress":[1,"email-address"],"hideEmail":[4,"hide-email"],"isEmailRequired":[4,"is-email-required"],"ratingMode":[1,"rating-mode"],"hasSelectedElement":[1540,"has-selected-element"],"hidePrivacyPolicy":[4,"hide-privacy-policy"],"hideRating":[4,"hide-rating"],"hideScreenshotButton":[4,"hide-screenshot-button"],"project":[1],"showScreenshotMode":[1540,"show-screenshot-mode"],"showScreenshotTopBar":[1540,"show-screenshot-top-bar"],"showModal":[1540,"show-modal"],"rating":[2],"metadata":[1],"fetchData":[4,"fetch-data"],"embedded":[4],"emailPlaceholder":[1,"email-placeholder"],"errorMessage":[1,"error-message"],"errorMessage403":[1,"error-message-4-0-3"],"errorMessage404":[1,"error-message-4-0-4"],"messagePlaceholder":[1,"message-placeholder"],"footerText":[1,"footer-text"],"modalPosition":[1,"modal-position"],"modalTitle":[1,"modal-title"],"modalTitleError":[1,"modal-title-error"],"modalTitleSuccess":[1,"modal-title-success"],"privacyPolicyText":[1,"privacy-policy-text"],"ratingPlaceholder":[1,"rating-placeholder"],"ratingStarsPlaceholder":[1,"rating-stars-placeholder"],"sendButtonText":[1,"send-button-text"],"successMessage":[1,"success-message"],"recaptchaText":[1,"recaptcha-text"],"screenshotAttachedText":[1,"screenshot-attached-text"],"screenshotButtonText":[1,"screenshot-button-text"],"screenshotTakingText":[1,"screenshot-taking-text"],"screenshotEditTextButtonText":[1,"screenshot-edit-text-button-text"],"screenshotEditorTitle":[1,"screenshot-editor-title"],"screenshotEditorCancelText":[1,"screenshot-editor-cancel-text"],"screenshotEditorSaveText":[1,"screenshot-editor-save-text"],"screenshotSizeLabelText":[1,"screenshot-size-label-text"],"screenshotBorderLabelText":[1,"screenshot-border-label-text"],"screenshotEditTextPromptText":[1,"screenshot-edit-text-prompt-text"],"screenshotErrorGeneral":[1,"screenshot-error-general"],"screenshotErrorPermission":[1,"screenshot-error-permission"],"screenshotErrorNotSupported":[1,"screenshot-error-not-supported"],"screenshotErrorNotFound":[1,"screenshot-error-not-found"],"screenshotErrorCancelled":[1,"screenshot-error-cancelled"],"screenshotErrorBrowserNotSupported":[1,"screenshot-error-browser-not-supported"],"screenshotErrorUnexpected":[1,"screenshot-error-unexpected"],"sending":[32],"formMessage":[32],"formEmail":[32],"formSuccess":[32],"formVerification":[32],"formError":[32],"formErrorStatus":[32],"encodedScreenshot":[32],"isPrivacyChecked":[32],"whitelabel":[32],"selectedRating":[32],"overlayVisible":[32],"isAnimating":[32],"recaptchaEnabled":[32],"recaptchaSiteKey":[32],"takingScreenshot":[32],"showScreenshotError":[32],"screenshotError":[32],"showCanvasEditor":[32],"autoStartCapture":[32],"openModal":[64]}],[1,"canvas-editor",{"canvasEditorTitle":[1,"canvas-editor-title"],"canvasEditorCancelText":[1,"canvas-editor-cancel-text"],"canvasEditorSaveText":[1,"canvas-editor-save-text"],"screenshotTakingText":[1,"screenshot-taking-text"],"screenshotAttachedText":[1,"screenshot-attached-text"],"screenshotButtonText":[1,"screenshot-button-text"],"autoStartScreenshot":[4,"auto-start-screenshot"],"existingScreenshot":[1,"existing-screenshot"],"editTextButtonText":[1,"edit-text-button-text"],"sizeLabelText":[1,"size-label-text"],"borderLabelText":[1,"border-label-text"],"editTextPromptText":[1,"edit-text-prompt-text"],"screenshotErrorGeneral":[1,"screenshot-error-general"],"screenshotErrorPermission":[1,"screenshot-error-permission"],"screenshotErrorNotSupported":[1,"screenshot-error-not-supported"],"screenshotErrorNotFound":[1,"screenshot-error-not-found"],"screenshotErrorCancelled":[1,"screenshot-error-cancelled"],"screenshotErrorBrowserNotSupported":[1,"screenshot-error-browser-not-supported"],"screenshotErrorUnexpected":[1,"screenshot-error-unexpected"],"takingScreenshot":[32],"showCanvasEditor":[32],"canvasDrawingTool":[32],"canvasDrawingColor":[32],"canvasLineWidth":[32],"canvasTextSize":[32],"isDrawing":[32],"annotations":[32],"currentAnnotation":[32],"isDragging":[32],"draggedAnnotation":[32],"dragStartPos":[32],"showColorPicker":[32],"editingColorIndex":[32],"selectedAnnotation":[32],"isResizing":[32],"resizingAnnotation":[32],"resizeStartSize":[32],"resizeStartDimensions":[32],"hoveredAnnotation":[32],"resizeHandle":[32],"defaultColors":[32]}]]]], options);
|
|
20
|
+
return index.bootstrapLazy([["canvas-editor_3.cjs",[[1,"feedback-button",{"buttonPosition":[1,"button-position"],"buttonStyle":[1,"button-style"],"hideIcon":[4,"hide-icon"],"hideMobile":[4,"hide-mobile"],"sessionId":[1537,"session-id"],"metadata":[1],"submit":[4],"apiKey":[1,"api-key"],"clickOutsideClose":[4,"click-outside-close"],"customFont":[4,"custom-font"],"emailAddress":[1,"email-address"],"historyClose":[4,"history-close"],"isEmailRequired":[4,"is-email-required"],"fetchData":[4,"fetch-data"],"hideEmail":[4,"hide-email"],"hidePrivacyPolicy":[4,"hide-privacy-policy"],"hideRating":[4,"hide-rating"],"hideScreenshotButton":[4,"hide-screenshot-button"],"modalPosition":[1,"modal-position"],"project":[1],"rating":[2],"ratingMode":[1,"rating-mode"],"emailPlaceholder":[1,"email-placeholder"],"errorMessage":[1,"error-message"],"errorMessage401":[1,"error-message-4-0-1"],"errorMessage403":[1,"error-message-4-0-3"],"errorMessage404":[1,"error-message-4-0-4"],"footerText":[1,"footer-text"],"messagePlaceholder":[1,"message-placeholder"],"modalTitle":[1,"modal-title"],"modalTitleError":[1,"modal-title-error"],"modalTitleSuccess":[1,"modal-title-success"],"privacyPolicyText":[1,"privacy-policy-text"],"ratingPlaceholder":[1,"rating-placeholder"],"ratingStarsPlaceholder":[1,"rating-stars-placeholder"],"sendButtonText":[1,"send-button-text"],"successMessage":[1,"success-message"],"recaptchaText":[1,"recaptcha-text"],"screenshotAttachedText":[1,"screenshot-attached-text"],"screenshotButtonText":[1,"screenshot-button-text"],"screenshotTakingText":[1,"screenshot-taking-text"],"screenshotEditTextButtonText":[1,"screenshot-edit-text-button-text"],"screenshotEditorTitle":[1,"screenshot-editor-title"],"screenshotEditorCancelText":[1,"screenshot-editor-cancel-text"],"screenshotEditorSaveText":[1,"screenshot-editor-save-text"],"screenshotSizeLabelText":[1,"screenshot-size-label-text"],"screenshotBorderLabelText":[1,"screenshot-border-label-text"],"screenshotEditTextPromptText":[1,"screenshot-edit-text-prompt-text"],"screenshotErrorGeneral":[1,"screenshot-error-general"],"screenshotErrorPermission":[1,"screenshot-error-permission"],"screenshotErrorNotSupported":[1,"screenshot-error-not-supported"],"screenshotErrorNotFound":[1,"screenshot-error-not-found"],"screenshotErrorCancelled":[1,"screenshot-error-cancelled"],"screenshotErrorBrowserNotSupported":[1,"screenshot-error-browser-not-supported"],"screenshotErrorUnexpected":[1,"screenshot-error-unexpected"]}],[1,"feedback-modal",{"apiKey":[1,"api-key"],"customFont":[4,"custom-font"],"emailAddress":[1,"email-address"],"hideEmail":[4,"hide-email"],"isEmailRequired":[4,"is-email-required"],"ratingMode":[1,"rating-mode"],"hasSelectedElement":[1540,"has-selected-element"],"hidePrivacyPolicy":[4,"hide-privacy-policy"],"hideRating":[4,"hide-rating"],"hideScreenshotButton":[4,"hide-screenshot-button"],"project":[1],"showScreenshotMode":[1540,"show-screenshot-mode"],"showScreenshotTopBar":[1540,"show-screenshot-top-bar"],"showModal":[1540,"show-modal"],"rating":[2],"metadata":[1],"fetchData":[4,"fetch-data"],"embedded":[4],"clickOutsideClose":[4,"click-outside-close"],"historyClose":[4,"history-close"],"escapeClose":[4,"escape-close"],"emailPlaceholder":[1,"email-placeholder"],"errorMessage":[1,"error-message"],"errorMessage401":[1,"error-message-4-0-1"],"errorMessage403":[1,"error-message-4-0-3"],"errorMessage404":[1,"error-message-4-0-4"],"messagePlaceholder":[1,"message-placeholder"],"footerText":[1,"footer-text"],"modalPosition":[1,"modal-position"],"modalTitle":[1,"modal-title"],"modalTitleError":[1,"modal-title-error"],"modalTitleSuccess":[1,"modal-title-success"],"privacyPolicyText":[1,"privacy-policy-text"],"ratingPlaceholder":[1,"rating-placeholder"],"ratingStarsPlaceholder":[1,"rating-stars-placeholder"],"sendButtonText":[1,"send-button-text"],"closeButtonLabel":[1,"close-button-label"],"ratingPositiveLabel":[1,"rating-positive-label"],"ratingNegativeLabel":[1,"rating-negative-label"],"ratingStarLabel":[1,"rating-star-label"],"successMessage":[1,"success-message"],"recaptchaText":[1,"recaptcha-text"],"screenshotAttachedText":[1,"screenshot-attached-text"],"screenshotButtonText":[1,"screenshot-button-text"],"screenshotTakingText":[1,"screenshot-taking-text"],"screenshotEditTextButtonText":[1,"screenshot-edit-text-button-text"],"screenshotEditorTitle":[1,"screenshot-editor-title"],"screenshotEditorCancelText":[1,"screenshot-editor-cancel-text"],"screenshotEditorSaveText":[1,"screenshot-editor-save-text"],"screenshotSizeLabelText":[1,"screenshot-size-label-text"],"screenshotBorderLabelText":[1,"screenshot-border-label-text"],"screenshotEditTextPromptText":[1,"screenshot-edit-text-prompt-text"],"screenshotErrorGeneral":[1,"screenshot-error-general"],"screenshotErrorPermission":[1,"screenshot-error-permission"],"screenshotErrorNotSupported":[1,"screenshot-error-not-supported"],"screenshotErrorNotFound":[1,"screenshot-error-not-found"],"screenshotErrorCancelled":[1,"screenshot-error-cancelled"],"screenshotErrorBrowserNotSupported":[1,"screenshot-error-browser-not-supported"],"screenshotErrorUnexpected":[1,"screenshot-error-unexpected"],"sending":[32],"formMessage":[32],"formEmail":[32],"formSuccess":[32],"formVerification":[32],"formError":[32],"formErrorStatus":[32],"encodedScreenshot":[32],"isPrivacyChecked":[32],"whitelabel":[32],"selectedRating":[32],"overlayVisible":[32],"isAnimating":[32],"recaptchaEnabled":[32],"recaptchaSiteKey":[32],"takingScreenshot":[32],"showScreenshotError":[32],"screenshotError":[32],"showCanvasEditor":[32],"autoStartCapture":[32],"openModal":[64]}],[1,"canvas-editor",{"canvasEditorTitle":[1,"canvas-editor-title"],"canvasEditorCancelText":[1,"canvas-editor-cancel-text"],"canvasEditorSaveText":[1,"canvas-editor-save-text"],"screenshotTakingText":[1,"screenshot-taking-text"],"screenshotAttachedText":[1,"screenshot-attached-text"],"screenshotButtonText":[1,"screenshot-button-text"],"escapeClose":[4,"escape-close"],"clickOutsideClose":[4,"click-outside-close"],"autoStartScreenshot":[4,"auto-start-screenshot"],"existingScreenshot":[1,"existing-screenshot"],"editTextButtonText":[1,"edit-text-button-text"],"sizeLabelText":[1,"size-label-text"],"borderLabelText":[1,"border-label-text"],"editTextPromptText":[1,"edit-text-prompt-text"],"screenshotErrorGeneral":[1,"screenshot-error-general"],"screenshotErrorPermission":[1,"screenshot-error-permission"],"screenshotErrorNotSupported":[1,"screenshot-error-not-supported"],"screenshotErrorNotFound":[1,"screenshot-error-not-found"],"screenshotErrorCancelled":[1,"screenshot-error-cancelled"],"screenshotErrorBrowserNotSupported":[1,"screenshot-error-browser-not-supported"],"screenshotErrorUnexpected":[1,"screenshot-error-unexpected"],"takingScreenshot":[32],"showCanvasEditor":[32],"canvasDrawingTool":[32],"canvasDrawingColor":[32],"canvasLineWidth":[32],"canvasTextSize":[32],"isDrawing":[32],"annotations":[32],"currentAnnotation":[32],"isDragging":[32],"draggedAnnotation":[32],"dragStartPos":[32],"showColorPicker":[32],"editingColorIndex":[32],"selectedAnnotation":[32],"isResizing":[32],"resizingAnnotation":[32],"resizeStartSize":[32],"resizeStartDimensions":[32],"hoveredAnnotation":[32],"resizeHandle":[32],"defaultColors":[32]}]]]], options);
|
|
21
21
|
});
|
|
22
22
|
|
|
23
23
|
exports.setNonce = index.setNonce;
|
|
@@ -1,6 +1,53 @@
|
|
|
1
1
|
import { h } from '@stencil/core';
|
|
2
|
+
// Upper bound on waiting for the capture stream to produce video metadata,
|
|
3
|
+
// after which the stream is stopped so it cannot leak
|
|
4
|
+
const CAPTURE_TIMEOUT_MS = 10000;
|
|
2
5
|
export class CanvasEditor {
|
|
3
6
|
constructor() {
|
|
7
|
+
this.handleKeyDown = (event) => {
|
|
8
|
+
if (!this.showCanvasEditor || !this.escapeClose || event.key !== 'Escape') {
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
// While the browser is capturing the screen, the picker owns the keyboard
|
|
12
|
+
if (this.takingScreenshot) {
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
event.preventDefault();
|
|
16
|
+
// The colour picker is a popup on top of the editor, so Escape dismisses
|
|
17
|
+
// that first and leaves the editor (and any annotations) in place
|
|
18
|
+
if (this.showColorPicker) {
|
|
19
|
+
this.showColorPicker = false;
|
|
20
|
+
this.editingColorIndex = -1;
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
// Deselect before closing, the way drawing tools do. Closing throws away
|
|
24
|
+
// every annotation, so someone who has just selected one gets a cheap
|
|
25
|
+
// Escape that only drops the selection rather than their work
|
|
26
|
+
if (this.selectedAnnotation) {
|
|
27
|
+
this.selectedAnnotation = null;
|
|
28
|
+
this.redrawAnnotations();
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
// Same as the Cancel button: discards annotations and returns to the form
|
|
32
|
+
this.closeCanvasEditor();
|
|
33
|
+
};
|
|
34
|
+
// Tracks whether the press that started this click landed on the backdrop.
|
|
35
|
+
// Dragging an annotation and releasing past the edge of the editor fires a
|
|
36
|
+
// click on the backdrop too, and that must not be read as "clicked outside".
|
|
37
|
+
this.pressStartedOnOverlay = false;
|
|
38
|
+
this.handleOverlayMouseDown = (event) => {
|
|
39
|
+
this.pressStartedOnOverlay = event.target === event.currentTarget;
|
|
40
|
+
};
|
|
41
|
+
this.handleOverlayClick = (event) => {
|
|
42
|
+
const startedOutside = this.pressStartedOnOverlay;
|
|
43
|
+
this.pressStartedOnOverlay = false;
|
|
44
|
+
if (!this.clickOutsideClose || !startedOutside || event.target !== event.currentTarget) {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
// Closes the editor only. The feedback form reopens behind it, so a stray
|
|
48
|
+
// click never dismisses the whole widget
|
|
49
|
+
this.closeCanvasEditor();
|
|
50
|
+
};
|
|
4
51
|
this.handleWindowResize = () => {
|
|
5
52
|
// Debounce resize events
|
|
6
53
|
if (this.resizeTimeout) {
|
|
@@ -680,8 +727,16 @@ export class CanvasEditor {
|
|
|
680
727
|
if (!this.isDrawing || !this.currentAnnotation)
|
|
681
728
|
return;
|
|
682
729
|
this.isDrawing = false;
|
|
683
|
-
|
|
730
|
+
const annotation = this.currentAnnotation;
|
|
684
731
|
this.currentAnnotation = null;
|
|
732
|
+
// A click with no drag never reaches mousemove, so the shape has no end
|
|
733
|
+
// point or size. Committing it added an invisible annotation that could
|
|
734
|
+
// not be selected, dragged or deleted, and it still consumed an undo step.
|
|
735
|
+
if (this.isDegenerateAnnotation(annotation)) {
|
|
736
|
+
this.redrawAnnotations();
|
|
737
|
+
return;
|
|
738
|
+
}
|
|
739
|
+
this.annotations = [...this.annotations, annotation];
|
|
685
740
|
this.redrawAnnotations();
|
|
686
741
|
};
|
|
687
742
|
// Convert screen coordinates to canvas coordinates
|
|
@@ -723,11 +778,28 @@ export class CanvasEditor {
|
|
|
723
778
|
}
|
|
724
779
|
case 'line':
|
|
725
780
|
case 'arrow': {
|
|
726
|
-
// Distance from point to line
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
781
|
+
// Distance from the point to the line *segment*, not to the infinite
|
|
782
|
+
// line through it. The previous formula measured the infinite line, so
|
|
783
|
+
// a click far past either end still counted as a hit, and a zero-length
|
|
784
|
+
// segment divided by zero and gave NaN, leaving that annotation
|
|
785
|
+
// impossible to select, drag or delete.
|
|
786
|
+
// A click with no drag never reaches mousemove, so endX/endY are
|
|
787
|
+
// undefined rather than equal to the start. Treat that as a segment
|
|
788
|
+
// collapsed to its start point instead of letting NaN propagate.
|
|
789
|
+
const endX = Number.isFinite(annotation.endX) ? annotation.endX : annotation.startX;
|
|
790
|
+
const endY = Number.isFinite(annotation.endY) ? annotation.endY : annotation.startY;
|
|
791
|
+
const dx = endX - annotation.startX;
|
|
792
|
+
const dy = endY - annotation.startY;
|
|
793
|
+
const lengthSquared = dx * dx + dy * dy;
|
|
794
|
+
// Zero-length segment: t stays 0 and we measure to the single point
|
|
795
|
+
let t = 0;
|
|
796
|
+
if (lengthSquared > 0) {
|
|
797
|
+
t = ((x - annotation.startX) * dx + (y - annotation.startY) * dy) / lengthSquared;
|
|
798
|
+
t = Math.max(0, Math.min(1, t));
|
|
799
|
+
}
|
|
800
|
+
const closestX = annotation.startX + t * dx;
|
|
801
|
+
const closestY = annotation.startY + t * dy;
|
|
802
|
+
const distance = Math.hypot(x - closestX, y - closestY);
|
|
731
803
|
return distance <= tolerance;
|
|
732
804
|
}
|
|
733
805
|
case 'text': {
|
|
@@ -752,6 +824,8 @@ export class CanvasEditor {
|
|
|
752
824
|
this.screenshotTakingText = 'Taking screenshot...';
|
|
753
825
|
this.screenshotAttachedText = 'Screenshot attached';
|
|
754
826
|
this.screenshotButtonText = 'Add a screenshot';
|
|
827
|
+
this.escapeClose = true;
|
|
828
|
+
this.clickOutsideClose = true;
|
|
755
829
|
this.autoStartScreenshot = false;
|
|
756
830
|
this.existingScreenshot = '';
|
|
757
831
|
this.editTextButtonText = 'Edit Text';
|
|
@@ -807,10 +881,12 @@ export class CanvasEditor {
|
|
|
807
881
|
// Add window resize listener for canvas adaptation
|
|
808
882
|
this.handleWindowResize = this.handleWindowResize.bind(this);
|
|
809
883
|
window.addEventListener('resize', this.handleWindowResize);
|
|
884
|
+
document.addEventListener('keydown', this.handleKeyDown);
|
|
810
885
|
}
|
|
811
886
|
disconnectedCallback() {
|
|
812
887
|
// Clean up resize listener
|
|
813
888
|
window.removeEventListener('resize', this.handleWindowResize);
|
|
889
|
+
document.removeEventListener('keydown', this.handleKeyDown);
|
|
814
890
|
}
|
|
815
891
|
async captureViewportScreenshot() {
|
|
816
892
|
try {
|
|
@@ -834,6 +910,30 @@ export class CanvasEditor {
|
|
|
834
910
|
video.autoplay = true;
|
|
835
911
|
video.muted = true;
|
|
836
912
|
return new Promise((resolve, reject) => {
|
|
913
|
+
// If neither onloadedmetadata nor onerror ever fires, the promise would
|
|
914
|
+
// never settle: the capture stream would stay live with the browser's
|
|
915
|
+
// recording indicator on, and the widget would sit in "Taking
|
|
916
|
+
// screenshot..." forever with no way back short of a page reload.
|
|
917
|
+
let settled = false;
|
|
918
|
+
const stopStream = () => {
|
|
919
|
+
stream.getTracks().forEach((track) => track.stop());
|
|
920
|
+
};
|
|
921
|
+
const finish = (fn) => {
|
|
922
|
+
if (settled) {
|
|
923
|
+
return;
|
|
924
|
+
}
|
|
925
|
+
settled = true;
|
|
926
|
+
clearTimeout(watchdog);
|
|
927
|
+
video.onloadedmetadata = null;
|
|
928
|
+
video.onerror = null;
|
|
929
|
+
fn();
|
|
930
|
+
};
|
|
931
|
+
const watchdog = setTimeout(() => {
|
|
932
|
+
finish(() => {
|
|
933
|
+
stopStream();
|
|
934
|
+
reject(new Error('Screenshot capture timed out'));
|
|
935
|
+
});
|
|
936
|
+
}, CAPTURE_TIMEOUT_MS);
|
|
837
937
|
video.onloadedmetadata = () => {
|
|
838
938
|
video.play();
|
|
839
939
|
// Wait a moment for video to stabilize
|
|
@@ -845,22 +945,26 @@ export class CanvasEditor {
|
|
|
845
945
|
canvas.height = video.videoHeight;
|
|
846
946
|
const ctx = canvas.getContext('2d');
|
|
847
947
|
ctx.drawImage(video, 0, 0);
|
|
848
|
-
// Stop the stream
|
|
849
|
-
stream.getTracks().forEach((track) => track.stop());
|
|
850
948
|
// Convert to data URL
|
|
851
949
|
const dataUrl = canvas.toDataURL('image/png');
|
|
852
|
-
|
|
853
|
-
|
|
950
|
+
finish(() => {
|
|
951
|
+
stopStream();
|
|
952
|
+
resolve(dataUrl);
|
|
953
|
+
});
|
|
854
954
|
}
|
|
855
955
|
catch (error) {
|
|
856
|
-
|
|
857
|
-
|
|
956
|
+
finish(() => {
|
|
957
|
+
stopStream();
|
|
958
|
+
reject(error);
|
|
959
|
+
});
|
|
858
960
|
}
|
|
859
961
|
}, 100);
|
|
860
962
|
};
|
|
861
963
|
video.onerror = () => {
|
|
862
|
-
|
|
863
|
-
|
|
964
|
+
finish(() => {
|
|
965
|
+
stopStream();
|
|
966
|
+
reject(new Error('Failed to load video for screenshot capture'));
|
|
967
|
+
});
|
|
864
968
|
};
|
|
865
969
|
});
|
|
866
970
|
}
|
|
@@ -869,9 +973,27 @@ export class CanvasEditor {
|
|
|
869
973
|
throw error;
|
|
870
974
|
}
|
|
871
975
|
}
|
|
976
|
+
// Whether a freshly drawn shape is too small to be worth keeping
|
|
977
|
+
isDegenerateAnnotation(annotation) {
|
|
978
|
+
const MIN_SIZE = 2; // canvas pixels
|
|
979
|
+
if (annotation.type === 'line' || annotation.type === 'arrow') {
|
|
980
|
+
if (!Number.isFinite(annotation.endX) || !Number.isFinite(annotation.endY)) {
|
|
981
|
+
return true;
|
|
982
|
+
}
|
|
983
|
+
return (Math.hypot(annotation.endX - annotation.startX, annotation.endY - annotation.startY) <
|
|
984
|
+
MIN_SIZE);
|
|
985
|
+
}
|
|
986
|
+
if (annotation.type === 'rectangle') {
|
|
987
|
+
if (!Number.isFinite(annotation.width) || !Number.isFinite(annotation.height)) {
|
|
988
|
+
return true;
|
|
989
|
+
}
|
|
990
|
+
return Math.abs(annotation.width) < MIN_SIZE && Math.abs(annotation.height) < MIN_SIZE;
|
|
991
|
+
}
|
|
992
|
+
return false;
|
|
993
|
+
}
|
|
872
994
|
render() {
|
|
873
995
|
var _a, _b, _c, _d, _e, _f;
|
|
874
|
-
return (h("div", { class: "canvas-editor-wrapper" }, this.showCanvasEditor && (h("div", { class: "canvas-editor-overlay", part: "overlay" }, h("div", { class: "canvas-editor-modal", part: "modal" }, h("div", { class: "canvas-editor-header", part: "header" }, h("div", { class: "canvas-editor-title", part: "title" }, h("h3",
|
|
996
|
+
return (h("div", { class: "canvas-editor-wrapper" }, this.showCanvasEditor && (h("div", { class: "canvas-editor-overlay", part: "overlay", onMouseDown: this.handleOverlayMouseDown, onClick: this.handleOverlayClick }, h("div", { class: "canvas-editor-modal", part: "modal", role: "dialog", "aria-modal": "true", "aria-labelledby": "canvas-editor-title" }, h("div", { class: "canvas-editor-header", part: "header" }, h("div", { class: "canvas-editor-title", part: "title" }, h("h3", { id: "canvas-editor-title" }, this.canvasEditorTitle)), h("div", { class: "canvas-editor-toolbar", part: "toolbar" }, h("div", { class: "toolbar-section" }, h("div", { class: "tool-group" }, h("button", { class: `tool-btn ${this.canvasDrawingTool === 'rectangle' ? 'active' : ''}`, part: "tool-button", onClick: () => (this.canvasDrawingTool = 'rectangle'), title: "Rectangle" }, h("svg", { xmlns: "http://www.w3.org/2000/svg", width: "18", height: "18", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round", class: "lucide lucide-square" }, h("rect", { width: "18", height: "18", x: "3", y: "3", rx: "2" }))), h("button", { class: `tool-btn ${this.canvasDrawingTool === 'line' ? 'active' : ''}`, part: "tool-button", onClick: () => (this.canvasDrawingTool = 'line'), title: "Line" }, h("svg", { xmlns: "http://www.w3.org/2000/svg", width: "18", height: "18", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round", class: "lucide lucide-minus" }, h("path", { d: "M5 12h14" }))), h("button", { class: `tool-btn ${this.canvasDrawingTool === 'arrow' ? 'active' : ''}`, part: "tool-button", onClick: () => (this.canvasDrawingTool = 'arrow'), title: "Arrow" }, h("svg", { xmlns: "http://www.w3.org/2000/svg", width: "18", height: "18", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round", class: "lucide lucide-move-up-right" }, h("path", { d: "M13 5H19V11" }), h("path", { d: "M19 5L5 19" }))), h("button", { class: `tool-btn ${this.canvasDrawingTool === 'text' ? 'active' : ''}`, part: "tool-button", onClick: () => (this.canvasDrawingTool = 'text'), title: "Text" }, h("svg", { xmlns: "http://www.w3.org/2000/svg", width: "18", height: "18", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round", class: "lucide lucide-type" }, h("path", { d: "M12 4v16" }), h("path", { d: "M4 7V5a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2" }), h("path", { d: "M9 20h6" }))), h("div", { class: "toolbar-divider" }), h("button", { class: "tool-btn undo-btn", part: "tool-button", onClick: this.undoLastAnnotation, disabled: this.annotations.length === 0, title: "Undo" }, h("svg", { xmlns: "http://www.w3.org/2000/svg", width: "18", height: "18", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round", class: "lucide lucide-undo" }, h("path", { d: "M3 7v6h6" }), h("path", { d: "M21 17a9 9 0 0 0-9-9 9 9 0 0 0-6 2.3L3 13" }))), this.selectedAnnotation && (h("button", { class: "tool-btn delete-btn", part: "tool-button", onClick: this.deleteSelectedAnnotation, title: "Delete" }, h("svg", { xmlns: "http://www.w3.org/2000/svg", width: "18", height: "18", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round", class: "lucide lucide-trash-2" }, h("path", { d: "M3 6h18" }), h("path", { d: "M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6" }), h("path", { d: "M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2" }), h("line", { x1: "10", x2: "10", y1: "11", y2: "17" }), h("line", { x1: "14", x2: "14", y1: "11", y2: "17" })))))), h("div", { class: "toolbar-section" }, h("div", { class: "color-palette" }, this.defaultColors.map((color, index) => (h("div", { class: "color-slot-wrapper" }, h("button", { class: `color-btn ${this.canvasDrawingColor === color ? 'active' : ''} ${this.editingColorIndex === index ? 'editing' : ''}`, style: { backgroundColor: color }, onClick: () => this.handleColorSlotClick(index), title: `Color ${index + 1} - Click to customize` }, this.editingColorIndex === index && (h("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "white", "stroke-width": "2" }, h("path", { d: "M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z" })))), this.editingColorIndex === index && this.showColorPicker && (h("div", { class: "color-picker-dropdown" }, h("input", { type: "color", value: color, onInput: (e) => this.handleColorPickerInput(e), onClick: (e) => this.handleColorPickerClick(e) })))))))), (this.selectedAnnotation || this.canvasDrawingTool) && (h("div", { class: "toolbar-section selected-annotation-controls" }, (((_a = this.selectedAnnotation) === null || _a === void 0 ? void 0 : _a.type) === 'text' ||
|
|
875
997
|
(!this.selectedAnnotation && this.canvasDrawingTool === 'text')) && (h("div", { class: "text-controls" }, h("div", { class: "font-size-control" }, h("label", null, this.sizeLabelText), h("input", { type: "range", min: "8", max: "72", value: ((_b = this.selectedAnnotation) === null || _b === void 0 ? void 0 : _b.fontSize) || this.canvasTextSize, onInput: (e) => {
|
|
876
998
|
const newSize = parseInt(e.target.value);
|
|
877
999
|
if (this.selectedAnnotation) {
|
|
@@ -1014,6 +1136,42 @@ export class CanvasEditor {
|
|
|
1014
1136
|
"reflect": false,
|
|
1015
1137
|
"defaultValue": "'Add a screenshot'"
|
|
1016
1138
|
},
|
|
1139
|
+
"escapeClose": {
|
|
1140
|
+
"type": "boolean",
|
|
1141
|
+
"mutable": false,
|
|
1142
|
+
"complexType": {
|
|
1143
|
+
"original": "boolean",
|
|
1144
|
+
"resolved": "boolean",
|
|
1145
|
+
"references": {}
|
|
1146
|
+
},
|
|
1147
|
+
"required": false,
|
|
1148
|
+
"optional": false,
|
|
1149
|
+
"docs": {
|
|
1150
|
+
"tags": [],
|
|
1151
|
+
"text": ""
|
|
1152
|
+
},
|
|
1153
|
+
"attribute": "escape-close",
|
|
1154
|
+
"reflect": false,
|
|
1155
|
+
"defaultValue": "true"
|
|
1156
|
+
},
|
|
1157
|
+
"clickOutsideClose": {
|
|
1158
|
+
"type": "boolean",
|
|
1159
|
+
"mutable": false,
|
|
1160
|
+
"complexType": {
|
|
1161
|
+
"original": "boolean",
|
|
1162
|
+
"resolved": "boolean",
|
|
1163
|
+
"references": {}
|
|
1164
|
+
},
|
|
1165
|
+
"required": false,
|
|
1166
|
+
"optional": false,
|
|
1167
|
+
"docs": {
|
|
1168
|
+
"tags": [],
|
|
1169
|
+
"text": ""
|
|
1170
|
+
},
|
|
1171
|
+
"attribute": "click-outside-close",
|
|
1172
|
+
"reflect": false,
|
|
1173
|
+
"defaultValue": "true"
|
|
1174
|
+
},
|
|
1017
1175
|
"autoStartScreenshot": {
|
|
1018
1176
|
"type": "boolean",
|
|
1019
1177
|
"mutable": false,
|
|
@@ -4,6 +4,20 @@
|
|
|
4
4
|
letter-spacing: var(--feedback-button-letter-spacing);
|
|
5
5
|
z-index: var(--feedback-button-z-index);
|
|
6
6
|
font-family: var(--feedback-font-family);
|
|
7
|
+
|
|
8
|
+
/* The trigger is a real <button> so it is keyboard reachable. Strip the
|
|
9
|
+
user-agent button styling so the default variant stays plain text; the
|
|
10
|
+
--light and --dark variants below re-apply their own background,
|
|
11
|
+
padding and colour. */
|
|
12
|
+
background: none;
|
|
13
|
+
border: none;
|
|
14
|
+
margin: 0;
|
|
15
|
+
padding: 0;
|
|
16
|
+
color: inherit;
|
|
17
|
+
font-size: inherit;
|
|
18
|
+
font-weight: inherit;
|
|
19
|
+
line-height: inherit;
|
|
20
|
+
text-align: inherit;
|
|
7
21
|
}
|
|
8
22
|
|
|
9
23
|
.feedback-button-content--custom-font {
|
|
@@ -51,14 +65,40 @@
|
|
|
51
65
|
right: 10px;
|
|
52
66
|
}
|
|
53
67
|
|
|
68
|
+
.feedback-button-content--bottom-left{
|
|
69
|
+
bottom: 10px;
|
|
70
|
+
left: 10px;
|
|
71
|
+
position: fixed;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.feedback-button-content--top-right{
|
|
75
|
+
position: fixed;
|
|
76
|
+
right: 10px;
|
|
77
|
+
top: 10px;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.feedback-button-content--top-left{
|
|
81
|
+
left: 10px;
|
|
82
|
+
position: fixed;
|
|
83
|
+
top: 10px;
|
|
84
|
+
}
|
|
85
|
+
|
|
54
86
|
.feedback-button-content--center-right{
|
|
55
87
|
position: fixed;
|
|
56
88
|
transform: rotate(-90deg) translateY(-50%);
|
|
57
89
|
top: 50%;
|
|
58
90
|
}
|
|
59
91
|
|
|
92
|
+
.feedback-button-content--center-left{
|
|
93
|
+
position: fixed;
|
|
94
|
+
transform: rotate(90deg) translateY(-50%);
|
|
95
|
+
top: 50%;
|
|
96
|
+
}
|
|
97
|
+
|
|
60
98
|
.feedback-button-content--center-right.feedback-button-content--dark,
|
|
61
|
-
.feedback-button-content--center-right.feedback-button-content--light
|
|
99
|
+
.feedback-button-content--center-right.feedback-button-content--light,
|
|
100
|
+
.feedback-button-content--center-left.feedback-button-content--dark,
|
|
101
|
+
.feedback-button-content--center-left.feedback-button-content--light {
|
|
62
102
|
border-radius: 4px;
|
|
63
103
|
border-bottom-left-radius: 0px;
|
|
64
104
|
border-bottom-right-radius: 0px;
|
|
@@ -75,6 +115,10 @@
|
|
|
75
115
|
rotate: 90deg;
|
|
76
116
|
}
|
|
77
117
|
|
|
118
|
+
.feedback-button-content--center-left .feedback-button-content-icon {
|
|
119
|
+
rotate: -90deg;
|
|
120
|
+
}
|
|
121
|
+
|
|
78
122
|
@media screen and (max-width: 767px) {
|
|
79
123
|
.feedback-button-content--hide-mobile {
|
|
80
124
|
display: none;
|