{"version":3,"sources":["Assets/images/icons/remove-icon.svg","Assets/images/icons/folder-icon2.svg","Assets/images/icons/sort.svg","Assets/images/icons/select-arrow-icon.svg","Assets/images/icons/close-icon.svg","Assets/images/icons/download-icon.svg","Assets/images/icons/key-icon.svg","Assets/images/icons/documents-icon.svg","Assets/images/logo.svg","Assets/images/icons/sign-icon.svg","Assets/images/icons/copy-icon.svg","Assets/images/icons/pencil.svg","Assets/images/icons/activity-icon.svg","Assets/images/icons/arrow-circle.svg","Assets/images/icons/circle-success.svg","Assets/images/icons/lock.svg","Assets/images/icons/eye-icon.svg","Assets/images/icons/integrations-icon.svg","Assets/images/icons/angle-arrow.svg","Assets/images/icons/doc-pencil-icon.svg","Assets/images/icons/team-icon.svg","Assets/images/icons/search.svg","Assets/images/icons/doc-download-icon.svg","Assets/images/icons/document-icon.svg","Assets/images/icons/edit-icon.svg","Assets/images/icons/circle-close.svg","Assets/images/icons/templates-icon.svg","Assets/images/icons/company-icon.svg","Assets/images/icons/billing-icon.svg","Assets/images/icons/cancel.svg","Assets/images/icons/print-icon.svg","Assets/images/icons/share-icon.svg","Assets/images/icons/alert-icon.svg","Assets/images/icons/middle-step-icon.svg","Assets/images/icons/logout-icon.svg","Assets/images/icons/help-icon.svg","Assets/images/icons/settings-icon.svg","Assets/images/icons/forms-icon.svg","Assets/images/icons/team-empty-icon.svg","Assets/images/icons/present.svg","Assets/images/icons/in-icon.svg","Assets/images/icons/date-icon.svg","Assets/images/icons/name-icon.svg","Assets/images/icons/first-step-icon.svg","Assets/images/icons/finish-step-icon.svg","Assets/images/icons/notification-bell.svg","Assets/images/icons/api-icon.svg","Assets/images/icons/check-v2.svg","Assets/images/icons/check.svg","Assets/images/icons/check-circle.svg","Assets/images/icons/upload-icon.svg","Assets/images/icons/cross-in-circle.svg","Assets/images/activityTypeIcons/declined-icon.svg","Assets/images/icons/star-icon.svg","Assets/images/icons/feedback-icon.svg","Assets/images/icons/menu.svg","Assets/images/icons/checkbox-arrow.svg","Assets/images/icons/circle-add-icon.svg","Assets/images/icons/error.svg","Assets/images/icons/tooltip-icon.svg","Assets/images/icons/eye.svg","Assets/images/icons/crossed-eye.svg","Assets/images/icons/bag-icon.svg","Assets/images/icons/draggable-icon.svg","Assets/images/integtationsExampleIcons/google-drive-icon.svg","Assets/images/integtationsExampleIcons/drop-box-icon.svg","Assets/images/integtationsExampleIcons/one-drive-icon.svg","Assets/images/integtationsExampleIcons/box-icon.svg","Assets/images/icons/dropbox.svg","Assets/images/icons/google-drive.svg","Assets/images/icons/one-drive.svg","Assets/images/icons/box.svg","Assets/images/icons/checkbox-arrow-document.svg","Assets/images/icons/text-icon.svg","Assets/images/icons/checkbox-icon.svg","Assets/images/icons/document.svg","Assets/images/icons/navigate-icon-left.svg","Assets/images/icons/navigate-icon-right.svg","Assets/images/icons/paste-icon.svg","Assets/images/icons/datepicker.svg","Assets/images/icons/select-cross-icon.svg","Assets/images/icons/create-folder-icon.svg","Assets/images/icons/skip-dots.svg","Assets/images/activityTypeIcons/created-icon.svg","Assets/images/activityTypeIcons/updated-icon.svg","Assets/images/activityTypeIcons/sent-icon.svg","Assets/images/activityTypeIcons/viewed-icon.svg","Assets/images/activityTypeIcons/signed-icon.svg","Assets/images/activityTypeIcons/completed-icon.svg","Assets/images/activityTypeIcons/reverted-icon.svg","Assets/images/activityTypeIcons/expired-icon.svg","Assets/images/icons/pause.svg","Assets/images/icons/play.svg","Assets/images/icons/user.svg","Assets/images/icons/check-in-circle.svg","Assets/images/icons/unlock-icon.svg","Assets/images/icons/bell-icon.svg","Assets/images/icons/star-icon-v2.svg","Assets/images/logoMobile.svg","Assets/images/icons/google-icon.svg","Assets/images/users/lee.jpg","Assets/images/users/maha.jpg","Assets/images/users/quinn.jpg","Assets/images/users/lulian.jpg","Assets/images/logoWhite.svg","Assets/images/icons/circle-declined.svg","Assets/images/icons/document-completed-signing-icon.svg","Assets/images/icons/document-signed-icon.svg","Assets/images/icons/document-unavailable-icon.svg","Assets/images/aboutSignaturelyIcons/collaboration-icon.svg","Assets/images/aboutSignaturelyIcons/time-save-icon.svg","Assets/images/aboutSignaturelyIcons/legal-icon.svg","Assets/images/aboutSignaturelyIcons/reminder-icon.svg","Assets/images/aboutSignaturelyIcons/management-icon.svg","Assets/images/aboutSignaturelyIcons/paperless-icon.svg","Assets/images/bg/signUpConfirm.svg","Assets/images/icons/leaf.svg","Assets/images/icons/prime-club.svg","Assets/images/icons/undermaintenance-icon.svg","Assets/images/icons/plus.svg","Assets/images/icons/appsumo.svg","Interfaces/HttpStatusEnum.ts","Interfaces/DocumentFields.ts","Services/Toast.ts","Store/actionTypes.ts","Interfaces/User.ts","Interfaces/Billing.ts","Utils/constants.ts","Utils/functions.ts","Interfaces/Document.ts","Hooks/Common/useAsyncAction.ts","Hooks/Common/useModal.ts","Hooks/Common/useSelectableItem.ts","Hooks/Common/useToggler.ts","Services/Storage.ts","Services/HttpClient.ts","Services/Api/Api.ts","Services/Api/Auth.ts","Services/Api/User.ts","Services/Socket.ts","Utils/typeGuards.ts","Store/ducks/user/actionTypes.ts","Interfaces/Common.ts","Store/ducks/user/actionCreators.ts","Interfaces/Requisite.ts","Services/AWS.ts","Pages/Settings/Billing/screens/LifeTimeDealScreen/planTableItems.ts","Utils/selectors.ts","Store/ducks/user/sagas.ts","Interfaces/Auth.ts","Store/ducks/billing/actionTypes.ts","Store/ducks/billing/actionCreators.ts","Store/ducks/document/actionTypes.ts","Store/ducks/documentSign/actionTypes.ts","Store/ducks/document/actionCreators.ts","Store/ducks/documentSign/actionCreators.ts","Store/ducks/integration/actionTypes.ts","Store/ducks/integration/actionCreators.ts","Store/ducks/team/actionTypes.ts","Store/ducks/team/actionCreators.ts","Store/ducks/user/index.ts","Store/ducks/user/reducer.ts","Services/Api/Document.ts","Services/Api/DocumentSign.ts","Store/ducks/document/sagas.ts","Store/ducks/documentField/actionTypes.ts","Store/ducks/document/index.ts","Store/ducks/document/reducer.ts","Store/ducks/documentField/actionCreators.ts","Store/ducks/documentField/sagas.ts","Store/ducks/documentField/reducer.ts","Store/ducks/documentField/index.ts","Services/Api/Billing.ts","Store/ducks/billing/sagas.ts","Store/ducks/billing/index.ts","Store/ducks/billing/reducer.ts","Services/Api/Team.ts","Store/ducks/team/sagas.ts","Store/ducks/team/index.ts","Store/ducks/team/reducer.ts","Services/Api/Integrations.ts","Store/ducks/integration/sagas.ts","Store/ducks/requisite/actionTypes.ts","Store/ducks/integration/index.ts","Services/Api/Requisite.ts","Store/ducks/requisite/actionCreators.ts","Store/ducks/requisite/sagas.ts","Store/ducks/requisite/index.ts","Store/ducks/requisite/reducer.ts","Store/ducks/documentSign/sagas.ts","Store/ducks/requestHistory/actionTypes.ts","Store/ducks/documentSign/index.ts","Store/ducks/requestHistory/actionCreators.ts","Services/Api/RequestHistory.ts","Store/ducks/requestHistory/sagas.ts","Store/ducks/apiKey/actionTypes.ts","Store/ducks/requestHistory/index.ts","Store/ducks/requestHistory/reducer.ts","Store/ducks/apiKey/actionCreators.ts","Services/Api/ApiKeys.ts","Store/ducks/apiKey/sagas.ts","Store/ducks/grid/actionTypes.ts","Store/ducks/apiKey/index.ts","Store/ducks/apiKey/reducer.ts","Store/ducks/grid/actionCreators.ts","Store/ducks/company/actionTypes.ts","Store/ducks/meta/index.ts","Store/ducks/meta/reducer.ts","Store/ducks/company/actionCreators.ts","Store/ducks/company/reducer.ts","Store/ducks/company/sagas.ts","Store/ducks/contracts/actionTypes.ts","Store/ducks/company/index.ts","Store/ducks/contracts/actionCreators.ts","Store/ducks/contracts/sagas.ts","Store/ducks/folders/actionTypes.ts","Store/ducks/contracts/index.ts","Store/ducks/contracts/reducer.ts","Store/ducks/folders/actionCreators.ts","Services/Api/Folder.ts","Store/ducks/folders/sagas.ts","Interfaces/Grid.ts","Store/ducks/folders/index.ts","Store/ducks/folders/reducer.ts","Services/Api/Grid.ts","Store/ducks/grid/sagas.ts","Store/ducks/signatureRequest/actionTypes.ts","Store/ducks/grid/index.ts","Store/ducks/grid/reducer.ts","Store/ducks/signatureRequest/actionCreators.ts","Services/Api/SignatureRequest.ts","Store/ducks/signatureRequest/sagas.ts","Store/ducks/signatureRequest/index.ts","Store/ducks/signatureRequest/reducer.ts","Store/ducks/index.ts","Hooks/Common/useSocket.ts","Hooks/Common/usePagination.ts","Hooks/Common/useDataOrdering.ts","Utils/validation.ts","Utils/formatters.ts","Hooks/Common/useDownloadFiles.ts","Hooks/Common/useFileUpload.ts","Hooks/Common/useShadowIframe.ts","Hooks/Common/usePrint.ts","Hooks/Common/useShadowLink.ts","Hooks/Common/useAttachmentDownload.ts","Store/watchers/promisifyWatcher.ts","Store/watchers/failureWatcher.ts","Store/store.ts","Hooks/Common/useBeaconRemove.ts","Hooks/Common/useNewTabOpen.ts","Services/History.ts","Hooks/Common/useIsMobile.ts","Hooks/Common/useIsTablet.ts","Hooks/User/useSignedGetUrl.ts","Hooks/User/useSignedPutAssetUrl.ts","Hooks/User/useCurrentUserGet.ts","Hooks/User/useProfileInfoUpdate.ts","Hooks/User/useSignerAvatars.ts","Hooks/User/useSignersAvatarsGet.ts","Hooks/User/useGoogleClientIdUpdate.ts","Hooks/Common/useGoogleClientIdGet.ts","Components/UIComponents/UISpinner.tsx","Interfaces/RoutePaths.ts","Routes/Components/Route.tsx","Hooks/Auth/usePrimarySignIn.ts","Hooks/Auth/useSignUp.ts","Hooks/Auth/useLogout.ts","Hooks/Auth/useGoogleLoginRenderButton.ts","Hooks/Auth/useGoogleIdentityServiceGet.ts","Hooks/Auth/useSignUpConversionSet.ts","Components/Avatar/Avatar.tsx","Components/AccountAvatar/AccountAvatar.tsx","Components/DropDownUser/DropDownUser.tsx","Components/UIComponents/UIButton.tsx","Components/DropDownMenu/Menu.tsx","Hooks/Common/useBodyScrollStop.ts","Components/DropDownMenu/DropDownMenu.tsx","Components/Header/BlackFridayBanner.tsx","Hooks/Common/useBlackFridayBanner.ts","Components/UIComponents/UIModal.tsx","Components/UIComponents/UICheckbox.tsx","Components/DropDownOptions/DropDownOptions.tsx","Hooks/Team/useTeamMembersGet.ts","Hooks/Team/useTeamMembersAdd.ts","Hooks/Team/useTeamMembersDelete.ts","Hooks/Team/useToAdminUpgrade.ts","Hooks/Team/useToUserDowngrade.ts","Pages/Team/components/TeamMemberItem.tsx","Pages/Documents/components/DocumentItem/DropDownOptionsMobile.tsx","Components/ConfirmModal/ConfirmModal.tsx","Components/DeleteModal/DeleteModal.tsx","Pages/Team/components/TeamMemberItemMobile.tsx","Components/UIComponents/UIAddButton.tsx","Components/UIComponents/UITextInput.tsx","Components/UIComponents/UISelect.tsx","Components/UIComponents/FormError.tsx","Components/FormFields/TeammatesArray/TeammateEmail/TeammateEmail.tsx","Components/FormFields/TeammatesArray/TeammateName/TeammateName.tsx","Components/FormFields/TeammatesArray/TeammateFieldArray.tsx","Pages/Team/components/TeamMembersAddModal.tsx","Components/EmptyTable/EmptyTable.tsx","Pages/Team/components/TeamMemberListMobileView.tsx","Pages/Team/components/TeamMembersList.tsx","Pages/Team/components/DeleteTeammateModal.tsx","Hooks/Billing/useInvoicesGet.ts","Hooks/Billing/usePlanChange.ts","Hooks/Billing/useCardGet.ts","Hooks/Billing/useCreateCard.ts","Hooks/Billing/useSubscriptionDataGet.ts","Hooks/Billing/useApiSubscriptionGet.ts","Hooks/Billing/useCardAttach.ts","Hooks/Billing/useLatestInvoiceGet.ts","Hooks/Billing/usePlanUpsell.ts","Hooks/Billing/useUpsellAllowedCheck.ts","Hooks/Billing/useLtdPlanDurationChange.ts","Hooks/Billing/usePaypalOrderCapture.ts","Hooks/Billing/useLtdTierGet.ts","Hooks/Billing/useLtdTiersGet.ts","Services/Integrations/GoogleApi.ts","Services/Integrations/DropboxApi.ts","Services/Integrations/OneDriveApi.ts","Services/Integrations/BoxContentPickerApi.ts","Pages/Settings/Billing/screens/BillingDefaultPlanScreen/planTableItems.ts","Services/Integrations/Analytics/FacebookPixel.ts","Services/Integrations/Analytics/DataLayerAnalytics.ts","Pages/Settings/Billing/components/InvoiceItem.tsx","Components/UIComponents/UIPaginator.tsx","Pages/Settings/Billing/components/InvoiceTable.tsx","Hooks/User/useSignedDownloadUrlGet.ts","Pages/Settings/Billing/components/SubscriptionInfoBlock.tsx","Components/FormFields/FieldTextInput/FieldTextInput.tsx","Components/FormFields/EmailRecipientsArray/RecipientFields/RecipientEmail.tsx","Components/FormFields/EmailRecipientsArray/EmailRecipientsField.tsx","Components/Tooltip/TooltipBlock.tsx","Components/Tooltip/Tooltip.tsx","Components/Tooltip/IndependentTooltip.tsx","Components/FormFields/FieldInput/FieldInput.tsx","Components/FormFields/FieldCheckbox/FieldCheckbox.tsx","Components/FormFields/FieldSelect/FieldSelect.tsx","Components/FormFields/FieldPasswordInput/FieldPasswordInput.tsx","Components/UIComponents/UITextArea.tsx","Pages/Settings/Billing/components/planTableItems.ts","Components/FormFields/FieldTextArea/FieldTextArea.tsx","Components/FormFields/MaskedTextInput/MaskedTextInput.tsx","Pages/Settings/Billing/components/BillingDetails.tsx","Pages/Settings/Billing/components/CodeInput.tsx","Pages/Settings/Billing/components/PromoCodeField.tsx","Pages/Settings/Billing/components/modals/AppSumoBillingSlider.tsx","Pages/Settings/Billing/components/AppSumoTableMobileView.tsx","Pages/Settings/Billing/components/AppSumoBillingTable.tsx","Hooks/Billing/useAppSumoUpgrade.ts","Pages/Settings/Billing/components/BillingPlanTableMobileView.tsx","Pages/Settings/Billing/components/BillingPlansSlider.tsx","Hooks/Billing/usePromotionCodeValidate.ts","Pages/Settings/Billing/components/PromoCodeModal.tsx","Pages/Settings/Billing/components/DowngradePlanModal.tsx","Pages/Settings/Billing/components/CurrentPlanInfo.tsx","Pages/Settings/Billing/components/PlanCostItem.tsx","Pages/Settings/Billing/components/LifeTimeDealInfoBlock.tsx","Pages/Settings/Billing/components/LifeTimeDealSlider.tsx","Pages/Settings/Billing/components/LifeTimeDealTableMobileView.tsx","Components/ApiPlansSection/constants.ts","Components/UpsellModal/UpsellModal.tsx","Pages/Settings/Billing/screens/BillingDefaultPlanScreen/BillingDefaultPlanScreen.tsx","Components/FormFields/ClearableTextInput/ClearableTextInput.tsx","Pages/Settings/Billing/screens/BillingDefaultPlanScreen/UpcomingInvoice.tsx","Components/PlanChangeModal/PlanChangeModal.tsx","Hooks/Billing/useUpcomingInvoiceGet.ts","Components/PlanChangeModal/LtdPlanChangeModal.tsx","Hooks/Billing/useLtdUpcomingInvoiceGet.ts","Pages/Settings/Billing/components/modals/LtdUpgradePlanModal.tsx","Pages/Team/components/AdditionalTeamMembersAddModal.tsx","Components/Header/AddTeamMemberButton.tsx","Components/Header/EndOfYearBanner.tsx","Hooks/Common/useEndOfYearBanner.ts","Components/Header/TrialBanner.tsx","Components/Header/Header.tsx","Components/Footer/Footer.tsx","Layouts/AuthenticatedWrapper.tsx","Layouts/SimplifiedWrapper.tsx","Components/SettingsNavigation/SettingsNavItems.ts","Components/SettingsNavigation/SettingsNavigation.tsx","Layouts/SettingsWrapper.tsx","Hooks/Common/useWootricSurvey.ts","Hooks/Document/useDocumentValidation.tsx","Components/FormFields/SignersArray/SignersArray.tsx","Interfaces/Integration.ts","Pages/Integrations/Integrations.tsx","Hooks/Integration/useAuthUrlGet.ts","Pages/Integrations/IntegrationItem.tsx","Hooks/Integration/useIntegrationDeactivate.ts","Hooks/Integration/useIntegrationConnect.ts","Components/BoxPicker/BoxPicker.tsx","Components/UIComponents/UIUploader/UIImportButton.tsx","Hooks/Integration/useAuthTokenGet.ts","Components/UIComponents/UIProgressBar.tsx","Components/UIComponents/UIUploader/UIUploader.tsx","Components/UIComponents/UICancelButton.tsx","Components/UIComponents/UIUploader/UIMultiUploader.tsx","Components/DocumentForm/FileField.tsx","Hooks/Document/useDocumentCreate.ts","Hooks/Document/useDocumentsDelete.ts","Hooks/Document/useDocumentPartsKeysGet.ts","Hooks/Document/useDocumentFilesGet.ts","Hooks/User/useSignedGetUrlBulk.ts","Hooks/Document/useDocumentUpload.ts","Hooks/Document/useDocumentUpdate.ts","Hooks/Document/useDocumentUpdateCancel.ts","Hooks/Document/useDocumentConvertionProgressWatcher.ts","Hooks/Document/useDocumentFileDataClean.ts","Hooks/Document/useDocumentGuard.ts","Hooks/Document/useDocumentGet.ts","Hooks/Requisite/useRequisitesGet.ts","Hooks/Requisite/useRequisitesCreate.ts","Hooks/Requisite/useDownloadFileByUrl.ts","Services/Fonts.ts","Hooks/Requisite/useBacketUploader.ts","Hooks/User/useSignedPutUrl.ts","Hooks/User/useRequisitePut.ts","Hooks/Requisite/useRequisitesPayloadCreation.ts","Hooks/Requisite/useImageFromTextCreation.ts","Hooks/Requisite/useRequisitePayloadGet.ts","Hooks/Requisite/useRequisiteTextRef.ts","Hooks/Common/useWindowSIze.ts","Hooks/DocumentFields/useDocumentFieldCreate.ts","Hooks/DocumentFields/useDocumentFieldDelete.ts","Hooks/DocumentFields/useDocumentFieldUpdate.ts","Hooks/DocumentFields/useDocumentFieldUpdateLocally.ts","Hooks/DocumentFields/useDocumentFieldsMetaChange.ts","Hooks/DocumentFields/useDocumentFieldSignerChange.ts","Hooks/DocumentFields/useDocumentFieldHistory.ts","Services/Interact.ts","Components/RequisiteComponents/RequisiteActionsDropdown/RequisiteActionsDropdown.tsx","Components/Interact/common/constants.ts","Components/Interact/common/utils.ts","Components/OverlaySpinner/OverlaySpinner.tsx","Components/RequisiteComponents/RequisiteItem/RequisiteItem.tsx","Components/RequisiteComponents/RequisiteDeleteModal/RequisiteDeleteModal.tsx","Hooks/Requisite/useRequisiteDelete.ts","Components/RequisiteComponents/RequisiteTabItem/RequisiteTabItem.tsx","Components/RequisiteComponents/RequisiteModal/components/RequisiteModalText.tsx","Components/RequisiteComponents/RequisiteModal/components/RequisiteModalDraw.tsx","Components/RequisiteComponents/RequisiteModal/components/RequisiteModalUpload.tsx","Components/RequisiteComponents/RequisiteModal/components/RequisiteFieldInput.tsx","Components/RequisiteComponents/RequisiteModal/RequisiteModal.tsx","Hooks/Requisite/useRequisitesUpdate.ts","Components/RequisiteComponents/RequisiteSelectModal/RequisiteListItem/RequisiteListItem.tsx","Components/RequisiteComponents/RequisiteSelectModal/RequisiteSelectModal.tsx","Components/RequisiteComponents/RequisiteAutoGenModal/RequisiteAutoGenModal.tsx","Components/Interact/components/FieldItem.tsx","Components/Interact/components/FieldTypes/CheckboxField.tsx","Components/Interact/components/FieldTypes/RequisiteField.tsx","Components/Interact/components/FieldTypes/DateField.tsx","Components/Interact/components/FieldTypes/TextFieldSign.tsx","Components/Interact/components/FieldTypes/NameField.tsx","Components/Interact/components/FieldItemView.tsx","Hooks/DocumentFields/useDocumentFieldColor.ts","Hooks/Document/useDocumentInteractInit.ts","Hooks/Document/useDocumentCopy.ts","Hooks/Document/useDocumentDownloadUrlGet.ts","Hooks/Document/useDocumentDownload.ts","Hooks/Document/useTemplateActivate.ts","Hooks/Document/useDocumentRevert.ts","Hooks/Document/useTemplateReplicate.ts","Hooks/Document/useTemplateMerge.ts","Hooks/Document/useTemplateAddToApi.ts","Hooks/Document/useTemplateRemoveFromApi.ts","Hooks/Document/useDocumentToggleNotification.ts","Hooks/Document/useAllTemplatesGet.ts","Hooks/Document/useAllTemplatesGetCancel.ts","Hooks/Document/useDocumentCreateByExistTemplate.ts","Hooks/Document/useDocumentDelete.ts","Hooks/Document/useEmbedDocumentFilesGet.ts","Hooks/User/useEmbedSignedUrlBulkGet.ts","Components/Interact/common/fieldShapes.ts","Components/UIComponents/UIOverlayLoader.tsx","Components/DocumentPage/DocumentPage.tsx","Components/DocumentPage/DocumentPreviewPage.tsx","Components/Interact/components/FieldBarItem.tsx","Components/Interact/components/FontSizeSelect.tsx","Components/Interact/components/FontFamilySelect.tsx","Components/Interact/components/FieldItemOptions.tsx","Components/Interact/common/scaleOptions.ts","Components/Interact/components/ScaleDropDown.tsx","Components/Interact/components/ModalHeader.tsx","Components/Interact/components/DocumentNavigationItem.tsx","Components/Interact/components/MeOptionModal.tsx","Components/Interact/InteractModalOld.tsx","Hooks/Document/useGetPdfMetadataFromDocumentPart.ts","Components/DocumentForm/DocumentForm.tsx","Hooks/DocumentSign/useDocumentSignInit.ts","Hooks/User/useСompatibleSignedGetUrl.ts","Hooks/DocumentFields/useDocumentFieldStyleSet.ts","Hooks/DocumentSign/useDocumentSendOut.ts","Hooks/DocumentSign/useDocumentConvertionStatusWatcher.ts","Hooks/DocumentSign/useDocumentSignPrint.ts","Hooks/DocumentSign/useSigningUrlGet.ts","Components/DocumentForm/SuccessSendModal.tsx","Components/DocumentForm/ValidationModal.tsx","Components/UIComponents/UIRadioBtn.tsx","Components/Interact/components/SelectActionForm.tsx","Components/Interact/components/Breadcrumbs.tsx","Components/Interact/components/ReadyToSignModal.tsx","Components/Interact/InteractModal.tsx","Components/WizardSignForm/TabItems.ts","Components/ActionStepBar/ActionStepBar.tsx","Components/ActionStepBar/ActionBarMobile.tsx","Components/UIComponents/UIDatePicker/components/DayElement/DayElement.tsx","Components/UIComponents/UIDatePicker/components/NavbarElement/NavbarElement.tsx","Components/UIComponents/UIDatePicker/UIDatePicker.tsx","Components/FormFields/FieldDatePicker/FieldDatePicker.tsx","Pages/Settings/Company/components/UpgradeDropdown.tsx","Pages/Settings/Company/components/Billet.tsx","Pages/Settings/Company/components/PreferencesFields.tsx","Pages/Settings/Company/components/modals/ReportPeriodModal.tsx","Pages/Settings/Company/components/ReportFields.tsx","Hooks/Document/useReportByEmailGet.ts","Components/WizardSignForm/FinishStep.tsx","Components/WizardSignForm/SingleFileField.tsx","Components/BulkSendForm/HeadersSelectModal.tsx","Components/BulkSendForm/BulkSendFields.tsx","Hooks/Common/useCsvParse.ts","Components/BulkSendForm/ValidationBulkSendModal.tsx","Components/BulkSendForm/BulkSendForm.tsx","Hooks/Document/useAllDocumentsGet.ts","Hooks/Document/useDocumentBulkSend.ts","Components/WizardSignForm/UploadFileStep.tsx","Components/WizardSignForm/WizardSignFormValues.tsx","Hooks/Document/useDocumentUpdateByExistTemplate.ts","Components/WizardSignForm/WizardSignForm.tsx","Pages/Sign/Dashboard/index.tsx","Components/UpgradeModal/UpgradeModal.tsx","Components/UpgradeModal/TemplateUpgradeModal.tsx","Pages/Sign/OnlyOthers/index.tsx","Components/DebounceInput/DebounceInput.tsx","Components/UIComponents/UIMultiSelect.tsx","Interfaces/SignatureRequest.ts","Interfaces/Folder.ts","Pages/Documents/components/DocumentSearch.tsx","Hooks/Grid/useGridGet.ts","Hooks/Grid/useGridItemsDelete.ts","Hooks/Grid/useGridItemsMoveToTrash.ts","Pages/Documents/components/DocumentItem/modals/ShareModal.tsx","Hooks/DocumentSign/useDocumentShareUrlGet.ts","Hooks/DocumentSign/useDocumentShare.ts","Pages/Documents/components/SignerItemLabel.tsx","Pages/Documents/components/DocumentItem/modals/ReminderModal.tsx","Hooks/DocumentSign/useRemindersSend.ts","Pages/Documents/components/DocumentItem/modals/SigningLinkModal.tsx","Hooks/DocumentSign/useSigningUrl.ts","Pages/Documents/components/DocumentItem/EditableTitle.tsx","Pages/Documents/components/DocumentItem/DropDownSigners.tsx","Pages/Documents/components/DocumentItem/DocumentItemMobileView.tsx","Pages/Documents/DocumentSeparatedFileKeyExtractor.ts","Pages/Documents/components/DocumentItem/DocumentItem.tsx","Hooks/Folders/useFolderCreate.ts","Pages/Documents/components/GridActionsDropdown.tsx","Hooks/Folders/useFolderInfoGet.ts","Pages/Documents/components/FolderItem/modals/DeleteFolderModal.tsx","Pages/Documents/components/FolderItem/FolderItemMobileView.tsx","Pages/Documents/components/FolderItem/modals/PermanentlyDeleteFolderModal.tsx","Pages/Documents/components/FolderItem/FolderItem.tsx","Pages/Documents/components/FolderItem/modals/CreateFolderModal.tsx","Components/FolderPermissionsMemberItem/FolderPermissionsMemberItem.tsx","Pages/Documents/components/FolderItem/modals/ChangePermissionsModal.tsx","Pages/Documents/components/modals/MoveToFolderModal.tsx","Hooks/Folders/useFoldersGet.ts","Pages/Documents/components/GridEmptyTable.tsx","Pages/Documents/components/GridPath/GridPath.tsx","Pages/Templates/TemplatesScreen/components/TemplateItem/EditableTitle.tsx","Pages/Templates/TemplatesScreen/components/TemplateItem/TemplateItemMobileView.tsx","Pages/Templates/TemplatesScreen/components/TemplateItem/TemplateItem.tsx","Components/UpgradeModal/ApiTemplateUpgradeModal.tsx","Hooks/Common/useApiUpgradeModal.tsx","Hooks/Document/useTemplateCreate.ts","Hooks/Common/useUpgradeModal.tsx","Pages/SignatureRequests/SignatureRequestsScreen/components/SignatureRequestItem/EmptySignatureRequestsTable.tsx","Pages/Trash/TrashScreen/components/TrashItem/EmptyTrashTable.tsx","Pages/SignatureRequests/SignatureRequestsScreen/components/SignatureRequestItem/SignatureRequestItemMobileView.tsx","Pages/SignatureRequests/SignatureRequestsScreen/components/SignatureRequestItem/SignatureRequestItem.tsx","Pages/Trash/TrashScreen/components/TrashItem/TrashItemMobileView.tsx","Pages/Trash/TrashScreen/components/TrashItem/TrashItem.tsx","Pages/Documents/components/GridMobile.tsx","Pages/Documents/components/DocumentItem/DropDownOptions.tsx","Pages/Documents/components/DocumentItem/DocumentItemActions.tsx","Pages/Documents/components/FolderItem/FolderItemActions.tsx","Pages/Templates/TemplatesScreen/components/TemplateItem/TemplateItemActions.tsx","Pages/SignatureRequests/SignatureRequestsScreen/components/SignatureRequestItem/SignatureRequestItemActions.tsx","Pages/Trash/TrashScreen/components/TrashItem/TrashItemActions.tsx","Pages/Documents/components/Grid.tsx","Hooks/Folders/useFolderChangePermissions.ts","Hooks/Folders/useFolderUpdate.ts","Hooks/Folders/useFoldersDelete.ts","Hooks/Grid/useGridItemsUpdate.ts","Hooks/SignatureRequest/useSignatureRequestDelete.ts","Hooks/Grid/useTrashEmpty.ts","Pages/Documents/DocumentFileKeyExtractor.ts","Pages/Documents/DocumentActivitiesFileKeyExtractor.ts","Pages/Documents/components/modals/DownloadModal.tsx","Hooks/Common/useBulkDownloadFiles.ts","Pages/Documents/Documents.tsx","Pages/Documents/UnkinkReminders.tsx","Hooks/Auth/useAccessTokenInit.tsx","Hooks/DocumentSign/useSigningReminderUnlink.ts","Pages/SignatureRequests/SignatureRequestsScreen/SignatureRequestsScreen.tsx","Hooks/Grid/useGridForSignatureRequestsGet.ts","Pages/Templates/TemplatesScreen/TemplatesScreen.tsx","Components/TemplateForm/TemplateForm.tsx","Pages/Templates/TemplateCreate/TemplateCreate.tsx","Pages/Templates/TemplateEdit/TemplateEdit.tsx","Pages/Settings/Company/components/LogoField/components/LogoPreviewModal.tsx","Pages/Settings/Company/components/LogoField/LogoField.tsx","Components/CropModal/CropModal.tsx","Pages/Settings/Company/components/BrandingFieldsMobileView.tsx","Pages/Settings/Company/components/BrandingFields.tsx","Pages/Settings/Company/Company.tsx","Hooks/User/useCompanyInfoUpdate.ts","Hooks/User/useCompanyLogoPut.ts","Pages/Settings/Profile/components/PhoneVerificationFieldMobileView.tsx","Pages/Settings/Profile/components/PhoneVerificationField.tsx","Pages/Settings/Profile/components/NotificationsFields.tsx","Pages/Settings/Profile/components/AvatarField.tsx","Pages/Settings/Profile/components/ChangeEmailFields.tsx","Hooks/User/useEmailUpdate.ts","Pages/Settings/Profile/components/ChangeEmailForm.tsx","Pages/Settings/Profile/components/PersonalFieldsMobileView.tsx","Pages/Settings/Profile/components/PersonalFields.tsx","Hooks/User/useAvatarPut.ts","Utils/timezones.ts","Pages/Settings/Profile/components/PreferencesFields.tsx","Pages/Settings/Profile/components/DeleteAccountModal.tsx","Interfaces/Profile.ts","Pages/Auth/TwoFactor/components/TwoFactorForm.tsx","Pages/Settings/Profile/components/PhoneVerificationUnsubscribe.tsx","Pages/Settings/Profile/Profile.tsx","Hooks/User/useTwillio2fa.ts","Hooks/User/useGoogleAuthenticator.ts","Hooks/User/useAccountDelete.ts","Pages/Settings/Api/components/ApiKeyModal/ApiKeyCreateContent.tsx","Hooks/ApiKeys/useApiKeyCreate.ts","Pages/Settings/Api/components/ApiKeyModal/ApiKeyShowContent.tsx","Pages/Settings/Api/components/ApiKeyModal/ApiKeyModal.tsx","Pages/Settings/Api/components/ApiKeyItem/ApiKeyItemMobile.tsx","Pages/Settings/Api/components/ApiKeyItem/ApiKeyItem.tsx","Hooks/ApiKeys/useApiKeyRevoke.ts","Hooks/ApiKeys/useApiKeyDelete.ts","Hooks/ApiKeys/useApiKeyRecover.ts","Pages/Settings/Api/components/ApiKeysList.tsx","Interfaces/RequestsHistory.ts","Components/DurationSwitcher/RadioButton.tsx","Components/DurationSwitcher/DurationSwitcher.tsx","Components/ApiPlanCard/ApiPlanCard.tsx","Components/CardForm/CardForm.tsx","Hooks/Billing/useSetupCheckoutCreate.ts","Components/Slider/components/Arrow/Arrow.tsx","Components/Slider/Slider.tsx","Components/ApiPlansSection/ApiPlansSection.tsx","Hooks/Billing/useApiPlanChange.ts","Pages/Settings/Api/Api.tsx","Hooks/ApiKeys/useApiKeysGet.ts","Pages/Settings/SignaturePage/SignatureItem/SignatureItem.tsx","Pages/Settings/SignaturePage/SignaturePage.tsx","Pages/Settings/RequestHistory/components/RequestHistoryTableItem/RequestHistoryTableItem.tsx","Pages/Settings/RequestHistory/components/RequestHistoryList.tsx","Pages/Settings/RequestHistory/RequestHistory.tsx","Hooks/RequestHistory/useRequestHistoryGet.ts","Pages/Settings/Billing/components/modals/AppSumoDowngradePlanModal.tsx","Pages/Settings/Billing/components/SubscriptionInfoBlockMobile.tsx","Components/PastDueForm/PastDueForm.tsx","Hooks/Billing/useChargeRetry.ts","Pages/Settings/Billing/screens/BillingMainScreen/BillingMainScreen.tsx","Hooks/Billing/usePlansGet.ts","Hooks/Billing/useBillingPortalCreate.ts","Hooks/Common/useUrlParamsGet.ts","Pages/Settings/Billing/screens/AppSumoActiveScreen/AppSumoActiveScreen.tsx","Pages/Settings/Billing/screens/LifeTimeDealScreen/LifeTimeDealScreen.tsx","Pages/Settings/Billing/screens/BillingPlan/BillingPlan.tsx","Pages/DocumentPreview/constants.ts","Pages/DocumentPreview/components/DocumentActivityItem.tsx","Pages/DocumentPreview/components/DocumentActivityItemMobile.tsx","Pages/DocumentPreview/components/HeaderButton.tsx","Pages/DocumentPreview/components/DocumentActivityListMobileView.tsx","Pages/DocumentPreview/components/DocumentActivityList.tsx","Hooks/Document/useDocumentActivitiesGet.ts","Hooks/Document/useDocumentActivitiesDownload.ts","Hooks/Document/useDocumentActivitiesDownloadUrlGet.ts","Hooks/Document/useDocumentSeparateDownload.ts","Hooks/Document/useDocumentSeparateDownloadUrlGet.ts","Pages/DocumentPreview/DocumentPreview.tsx","Hooks/Document/useDocumentSeparateSign.ts","Hooks/Document/useDocumentActivitiesSeparateSign.ts","Hooks/Document/useDocumentPrint.ts","Pages/Team/TeamScreenMobileView.tsx","Pages/Team/TeamScreen.tsx","Pages/Team/InviteAcceptPage.tsx","Hooks/Team/useInviteAccepting.ts","Hooks/Team/useTeamJoin.ts","Components/ForbiddenAccessTable/ForbiddenAccessTable.tsx","Components/Sidebar/SidebarItems.ts","Components/Sidebar/Sidebar.tsx","Layouts/sublayouts/SidebarSubLayout.tsx","Layouts/sublayouts/DocumentPreviewSubLayout.tsx","Components/ScrollToPop/ScrollToTop.tsx","Hooks/Common/useUpvotySurvey.ts","Services/Integrations/Analytics/Bing.ts","Components/PageTracker/PageTracker.tsx","Pages/FormRequests/FormRequestsScreen/components/modal/ShareFormModal.tsx","Pages/FormRequests/FormRequestsScreen/components/modal/SubmittedContractsMobileView.tsx","Pages/FormRequests/FormRequestsScreen/components/modal/SubmittedContractsModal.tsx","Hooks/Document/useFormRequestGetContracts.ts","Pages/FormRequests/FormRequestsScreen/components/FormRequestItem/EditableTitle.tsx","Pages/FormRequests/FormRequestsScreen/components/FormRequestItem/FormRequestItemMobile.tsx","Pages/FormRequests/FormRequestsScreen/components/FormRequestItem/FormRequestItem.tsx","Hooks/Document/useFormRequestDisable.ts","Hooks/Document/useFormRequestEnable.ts","Pages/FormRequests/FormRequestsScreen/components/FormRequestsMobile.tsx","Pages/FormRequests/FormRequestsScreen/components/FormRequests.tsx","Pages/FormRequests/FormRequestsScreen/FormRequestsScreen.tsx","Hooks/Document/useFormRequestsGet.ts","Components/FormRequestsForm/FormRequestForm.tsx","Pages/FormRequests/FormRequestCreate/FormRequestCreate.tsx","Pages/FormRequests/FormRequestEdit/FormRequestEdit.tsx","Pages/Upsell/Upsell.tsx","Routes/Components/CustomRedirect.tsx","Pages/Trash/TrashScreen/TrashScreen.tsx","Layouts/TrialGetWrapper.tsx","Pages/Auth/SignUp/components/SecondStepInfo/components/PlanSection.tsx","Pages/Auth/SignUp/components/SecondStepInfo/components/CouponDropDown.tsx","Pages/Auth/SignUp/components/SecondStepInfo/components/BillingInfo.tsx","Components/HoverTooltip/HoverTooltip.tsx","Pages/Auth/SignUp/components/SecondStepInfo/components/TrialInfo.tsx","Pages/Auth/SignUp/components/SecondStepInfo/components/PostBillingInfo.tsx","Pages/Auth/SignUp/components/SecondStepInfo/SecondStepInfo.tsx","Pages/Auth/SignUp/components/Tabs/components/Tab.tsx","Pages/Auth/SignUp/components/Tabs/Tabs.tsx","Pages/Auth/SignUp/TrialGetPage.tsx","Components/LifeTimeDeal/LTDActivateCodeForm/LTDActivateCodeForm.tsx","Components/LifeTimeDeal/components/TierInfo.tsx","Components/LifeTimeDeal/components/PaymentBlock.tsx","Components/LifeTimeDeal/LTDActivateCodeForm/RedeemCodeModal.tsx","Pages/LifeTimeDeal/LifeTimeDealActivateCode.tsx","Hooks/Billing/useLtdCodeValidate.ts","Hooks/Billing/useLtdCodeRedeem.ts","Pages/LifeTimeDeal/LifeTimeDealUpgrade.tsx","Hooks/Billing/useLtdPaymentCheckoutUpgrade.ts","Pages/LifeTimeDeal/LifeTimeDealSuccessPaymentPage.tsx","Layouts/LifeTimeDealWrapper.tsx","Pages/LifeTimeDeal/LifeTimeDealSuccessUpgradePage.tsx","Pages/Auth/TrialSuccess/TrialSuccess.tsx","Hooks/Auth/useShowTrialSuccessPageClear.ts","Routes/Components/AuthorizedRoutes.tsx","Layouts/GuestWrapper.tsx","Pages/Auth/ForgotPassword/components/ResetForm.tsx","Pages/Auth/ForgotPassword/components/CheckInbox.tsx","Pages/Auth/ForgotPassword/ForgotPassword.tsx","Hooks/Auth/usePasswordChangeEmailSend.ts","Components/AuthForm/GoogleLoginForm/GoogleLoginForm.tsx","Components/AuthForm/SignUpForm/SignUpForm.tsx","Pages/Auth/SignUp/components/TestimonialItem.tsx","Pages/Auth/SignUp/SignUpFirstStep.tsx","Components/AuthForm/LoginForm/LoginForm.tsx","Pages/Auth/Login/Login.tsx","Hooks/Common/useReferralTracking.ts","Pages/Auth/ChangePassword/ChangePassword.tsx","Components/DocumentSignModal/DocumentSignModal.tsx","Hooks/Auth/usePasswordChangeToken.ts","Hooks/Auth/usePasswordChange.ts","Pages/Auth/LandingSignUp/components/LandingDocumentForm.tsx","Hooks/User/useCompanyInfoGet.ts","Hooks/Auth/useSignUpTemporary.ts","Pages/Auth/LandingSignUp/components/LandingSetTitleForm.tsx","Pages/DocumentSign/components/TermsModal.tsx","Pages/DocumentSign/components/SigningButtonMobile.tsx","Pages/DocumentSign/components/DocumentSignView.tsx","Hooks/DocumentSign/useSubmitSignedDocument.ts","Components/DocumentSignModal/components/ModalHeader/ModalHeader.tsx","Components/DocumentSignModal/components/SignUpModal/components/PreviewDocumentSide/PreviewDocumentSide.tsx","Components/DocumentSignModal/components/SignUpModal/components/SignUpSide/SignUpSide.tsx","Components/DocumentSignModal/components/SignUpModal/SignUpModal.tsx","Components/DocumentSignModal/components/LoginModal/LoginModal.tsx","Pages/DocumentSign/components/DocumentSigningView.tsx","Hooks/DocumentSign/useSignerDocumentGet.ts","Hooks/DocumentSign/useCodeAccessSend.ts","Hooks/DocumentSign/useSignatoryOpenedSend.ts","Hooks/DocumentSign/useDeclineSigningRequest.ts","Pages/DocumentSign/components/SignerOptionItem.tsx","Pages/DocumentSign/components/SignerSelectModal.tsx","Pages/DocumentSign/components/ConfirmCodeModal.tsx","Pages/DocumentSign/components/DocumentDeclineModal.tsx","Pages/DocumentSign/common/documentStatusOptions.ts","Pages/DocumentSign/common/renderByAuth.ts","Pages/DocumentSign/components/DocumentStatus.tsx","Pages/Auth/LandingSignUp/components/LandingSignUpForm.tsx","Hooks/Billing/useTemporaryPlanChange.ts","Hooks/Auth/useSignUpFromTemporary.ts","Hooks/Auth/useConfirmTemporary.ts","Pages/Auth/LandingSignUp/components/LandingConfirmPage.tsx","Pages/Auth/LandingSignUp/components/LandingSignUpThanks.tsx","Pages/Auth/LandingSignUp/LandingSignUp.tsx","Pages/Auth/LandingSignUp/LandingSignDocument.tsx","Pages/Auth/LandingSignUp/LandingSignUpWrapper.tsx","Pages/Auth/LandingSignUp/LandingSignUpConfirm.tsx","Pages/Auth/TwoFactor/TwoFactor.tsx","Hooks/Auth/useTwillioSignIn.ts","Hooks/Auth/useGoogleAuthenticatorSignIn.ts","Pages/AboutSignaturely/components/AboutDashboardItem.tsx","Pages/AboutSignaturely/AboutSignaturely.tsx","Pages/Auth/SignUp/ConfirmPage.tsx","Hooks/Auth/useSendConfirmationEmail.ts","Pages/Auth/BuyNow/BuyNow.tsx","Hooks/Auth/useSignUpWithPlanPrepare.ts","Hooks/Auth/useSignUpWithConfrimCode.ts","Pages/Auth/LifeTimeDeal/components/TierOptions.tsx","Pages/Auth/LifeTimeDeal/components/FeedbackBadge.tsx","Pages/Auth/LifeTimeDeal/components/TierSection.tsx","Pages/Auth/LifeTimeDeal/LifeTimeDeal.tsx","Hooks/Billing/useLtdPaymentCheckoutCreate.ts","Pages/Auth/LifeTimeDeal/components/TiersSelectorItem.tsx","Pages/Auth/LifeTimeDeal/components/TiersSelectorItemMobile.tsx","Pages/Auth/LifeTimeDeal/LifeTimeDealSelectMobile.tsx","Pages/Auth/LifeTimeDeal/LifeTimeDealSelect.tsx","Pages/Auth/LifeTimeDeal/LifeTimeDealSignUp.tsx","Hooks/Auth/useLtdSignUp.ts","Routes/Components/UnauthorizedRoutes.tsx","Layouts/SignUpSecondStepWrapper.tsx","Pages/Auth/SignUp/SignUpSecondStep.tsx","Components/Interact/BaseInteractModal.tsx","Routes/Components/ActivateTrialRoutes.tsx","Pages/DocumentActivitiesDownload/DocumentActivitiesDownload.tsx","Components/Interact/EmbedInteractModal.tsx","Hooks/Document/useEmbedDocumentUpdate.ts","Hooks/Document/useEmbedDocumentUpdateCancel.ts","Hooks/Document/useEmbedDocumentGet.tsx","Hooks/DocumentSign/useEmbedDocumentSendOut.ts","Hooks/Document/useEmbedDocumentTokenInit.ts","Hooks/DocumentFields/useEmbedDocumentFieldCreate.ts","Hooks/DocumentFields/useEmbedDocumentFieldDelete.ts","Hooks/DocumentFields/useEmbedDocumentFieldUpdate.ts","Hooks/DocumentFields/useEmbedDocumentFieldHistory.ts","Hooks/Document/useEmbedDocumentInteractInit.ts","Hooks/Document/useFormRequestGet.ts","Pages/FormRequests/FormRequestShow/components/ThanksMessage/ThanksMessage.tsx","Pages/FormRequests/FormRequestShow/FormRequestShow.tsx","Hooks/Document/useDocumentCreateFromFormRequest.ts","Hooks/Document/useFormRequestGuard.ts","Pages/DocumentDownload/DocumentDownload.tsx","Hooks/Document/useGetDocumentByHash.ts","Pages/InvoiceDownload/InvoiceDownload.tsx","Hooks/Billing/useInvoiceDownloadLink.ts","Pages/Auth/ConfirmEmail/ConfirmEmail.tsx","Hooks/Auth/useEmailConfirmToken.ts","Hooks/Auth/useConfirmEmail.ts","Hooks/Auth/useConfirmEmailByTwilio.ts","Pages/DocumentSign/DocumentSign.tsx","Hooks/DocumentSign/useDocumentSigning.ts","Hooks/DocumentSign/useSigningDocumentGet.ts","Pages/AppSumo/AppSumoThanks.tsx","Pages/AppSumo/LoadingUserScreen.tsx","Hooks/Auth/useAppSumoSignIn.ts","Routes/Components/BaseRoutes.tsx","Routes/index.tsx","App.tsx","index.tsx"],"names":["module","exports","HttpStatus","DocumentFieldTypes","DocumentFieldLabels","FieldCreateType","success","message","toast","handleErrors","error","options","statusCode","UNAUTHORIZED","BAD_GATEWAY","SERVICE_UNAVAILABLE","GATEWAY_TIMEOUT","warn","isActive","toastId","dismiss","START_WATCH_PROMISIFIED_ACTION","STOP_WATCH_PROMISIFIED_ACTION","UserStatuses","DateFormats","UserRoles","WorkflowVersions","PlanTypes","PlanDurations","PlanIds","TeammateRoles","value","ADMIN","label","USER","API_URL","process","BASE_ASSETS_URL","MIME_TYPES","GOOGLE_MIME_TYPES","SENTRY_TRACES_SAMPLE_RATE","Number","REACT_APP_SENTRY_TRACES_SAMPLE_RATE","parseFloat","SENTRY_SAMPLE_RATE","REACT_APP_SENTRY_SAMPLE_RATE","VERSION","npmPackageMeta","CURRENT_YEAR","Date","getFullYear","DISABLE_SALE_PLAN_TYPES","REACT_APP_DISABLE_SALE_PLAN_TYPE","DISABLE_SALE_PLAN_DURATIONS","REACT_APP_DISABLE_SALE_PLAN_DURATION","ApiPlanTypes","AppSumoStatus","signatureLimitedPlans","FREE","PERSONAL","PERSONAL_ANNUALLY","PlanDurationAcronims","MONTHLY","ANNUALLY","InvoiceTypes","LtdTypes","discountByDuration","initialPlanPrices","BUSINESS","getTotalPrice","price","discount","defaultPlanPrices","discountPlanPrices","planTerms","title","cost","GOLD","PLATINUM","TITANIUM","promisifyAsyncAction","actionCreators","dispatch","payload","Promise","resolve","reject","type","meta","defer","taskId","uuid","parseCsvByStep","file","rowLimit","columnLimit","counter","results","Papa","parse","step","row","parser","Error","abort","data","length","push","complete","callActionAsync","action","actionPayload","a","loaderToggler","result","findOffsetParent","fromElement","predicate","elementsPath","anchor","offsetParent","nextElementsPath","composeValidators","validators","args","reduce","validator","undefined","isExpired","expirationDate","dayjs","isAfter","moveArrayItem","itemsArray","sourceIndex","destinationIndex","tempItemsArray","splice","sleep","ms","setTimeout","isNotEmpty","entity","isEmpty","base64ToFile","base64String","filename","arr","split","mime","match","bstr","atob","u8arr","Uint8Array","forEach","item","index","charCodeAt","File","openPopupCenter","url","width","height","left","window","screen","top","open","processSubmissionErrors","errors","Array","isArray","mapSubmissionErrors","property","children","Object","keys","constraints","map","key","join","FORM_ERROR","getCurrentDate","format","checkIfDateOrText","Name","Text","includes","isRequisite","Signature","Initials","maxValueMonth","formatOrder","SignAction","SignActionLabel","FinalStepButtonTitle","DocumentActions","DocumentStatuses","DocumentTypes","DocumentDownloadTypes","SearchTypeEnum","DocumentActivityTypes","handleCsvFileCrlf","values","signers","lastSigner","name","email","slice","resizeFile","errorMessage","URL","createObjectURL","canvas","document","createElement","ctx","getContext","img","Image","onerror","onload","drawImage","res","toDataURL","resizedFile","src","getWorkflowVersion","location","href","B","A","isNewTrialUser","user","plan","teamId","showTrialStep","disabledSalePlanTypes","disabledSalePlanDurations","isAvailablePlanForSale","duration","useState","isExecuting","setIsExecuting","useCallback","Component","inputs","isModalOpen","setIsModalOpen","useModal","showModal","hideModal","items","idKey","selectedItems","changeItemSelection","itemsSelection","useMemo","isSelected","find","selectedItem","toggleOne","targetItemId","newSelectedItems","newItem","filter","toggleMany","targetItemIds","newItems","every","toggleItemSelection","targetItem","clearSelection","initialState","state","setState","toggle","LocalStorage","localStorage","SessionStorage","sessionStorage","getItem","setItem","toString","removeItem","removeAccessToken","setAccessToken","getAccessToken","localAccessToken","sessionAccessToken","setRedirectRoutePath","getRedirectRoutePath","removeRedirectRoutePath","accessToken","optHeaders","token","workflowReferer","headers","workflow_referer","StorageService","authorization","axios","create","withCredentials","baseURL","ApiService","request","post","uri","config","httpClient","response","handleRequestError","put","patch","get","delete","isCancel","handleExpiredToken","errorData","refreshToken","tokenResponse","signIn","signInTwillio","signInGoogleAuthenticator","signOut","googleSignIn","workflowVersion","signUp","signUpTemporary","signUpFromTemporary","confirmTemporary","signUpWithPlanPrepare","signUpWithConfirmCode","confirmEmail","confirmEmailByTwilio","sendConformationEmail","sendPasswordChangeEmail","changePassword","getSignedGetUrl","getCompatibleSignedGetUrl","getSignedGetUrlHash","hash","params","getSignedGetUrlBulk","getSignedPutUrl","getSignedPutAssetUrl","getSignedDownloadUrl","appSumoSignIn","updateEmail","getEmbedSignedUrlBulk","ltdSignUp","Api","getUser","updateProfileInfo","updateCompanyInfo","verifyPhone","disableTwillio2fa","generateCode","phone","scope","recaptcha","verifyGoogleCode","disableGoogleAuthenticator","enableGoogleAuthenticator","responseType","deleteAccount","subscribeToAPIUpdates","unsubscribeFromAPIUpdates","getSignersAvatars","documentId","updateGoogleClientId","getCompanyInfo","client","connect","io","autoConnect","transports","upgrade","disconnect","connected","close","on","event","cb","emit","createSocketEventChannel","eventChannel","emitter","removeEventListener","createSocketEventWatcher","handlerActionCreator","watcherActionCreators","watchSocketEvent","bind","createSocketEventEmitter","emitSocketEvent","joinRoom","userId","errorHandler","err","off","call","this","socketEventChannel","take","cancelled","fork","channelizeSocketEvent","channelTask","getType","stop","cancel","failure","dataToEmit","successActionCreator","errorActionCreator","PrimarySignInActionTypes","TwillioSignInActionTypes","GoogleAuthenticatorSignInActionTypes","VerifyGoogleCodeActionTypes","DisableGoogleAuthenticatorActionTypes","EnableGoogleAuthenticatorActionTypes","SignUpActionTypes","SignUpTemporaryActionTypes","SignUpFromTemporaryActionTypes","ConfirmTemporaryActionTypes","LtdSignUpActionTypes","SignedGetUrlActionTypes","СompatibleSignedGetUrlActionTypes","SignedGetUrlActionTypesHash","SignedGetUrlBulkActionTypes","SignedGetDownloadUrlActionTypes","SignedPutUrlActionTypes","SignedPutAssetUrlActionTypes","CurrentUserGetActionTypes","RequisitePutActionTypes","UpdateProfileInfoActionTypes","UpdateEmailActionTypes","UpdateCompanyInfoActionTypes","GenerateCodeActionTypes","VerifyPhoneActionTypes","DisableTwoFactorActionTypes","DeleteAccountActionTypes","PutCompanyLogoActionTypes","PutAvatarActionTypes","SendPasswordChangeEmailActionTypes","ChangePasswordActionTypes","ConfirmEmailActionTypes","ConfirmEmailByTwilioActionTypes","SendEmailConfirmationActionTypes","SubscribeOnAPIUpdatesActionTypes","UnsubscribeFromAPIUpdatesActionTypes","SignInAppSumoUserActionTypes","SignersAvatarsGetActionTypes","SignUpWithPlanPrepareActionTypes","SignUpWithConfirmCodeActionTypes","UpdateGoogleClientIdActionTypes","isUserResponseData","isEmailConfirmationData","isEmailConfirmed","isTwoFactorResponseData","twoFactorToken","isCodeSend","codeSend","isDocumentWithSingleSigners","shouldOpenDocumentSignersModal","isDocumentWithMultipleSigners","status","COMPLETED","AWAITING","signer","isFinished","SignOutActionTypes","EmbedSignedUrlBulkGetActionTypes","RequestErrorTypes","UploadStatuses","OrderingDirection","PDFPageLayouts","createAction","createAsyncAction","$signOut","setTwoFactor","setIsEmailConfirmed","initAccessToken","finishInitAccessToken","signInPrimary","$signInPrimary","$signInTwillio","$signInGoogleAuthenticator","$verifyPhone","$verifyGoogleCode","$disableGoogleAuthenticator","$enableGoogleAuthenticator","$disableTwillio2fa","$generateCode","$signUp","$signUpTemporary","$signUpFromTemporary","$confirmTemporary","$ltdSignUp","getCurrentUser","$getCurrentUser","$getSignedGetUrl","$getCompatibleSignedGetUrl","$getSignedGetUrlHash","$getSignedGetUrlBulk","getSignedGetDownloadUrl","$getSignedGetDownloadUrl","$getSignedPutUrl","$getSignedPutAssetUrl","putRequisite","$updateProfileInfo","$updateEmail","$updateCompanyInfo","putCompanyLogo","$putCompanyLogo","putAvatar","$putAvatar","$deleteAccount","$sendPasswordChangeEmail","$confirmEmail","$confirmEmailByTwilio","$sendConformationEmail","$changePassword","subscribeOnAPIUpdates","$subscribeOnAPIUpdates","signInAppSumoUser","$signInAppSumoUser","$getSignersAvatars","$signUpWithPlanPrepare","$signUpWithConfirmCode","$getEmbedSignedUrlBulk","$updateGoogleClientId","$unsubscribeFromAPIUpdates","$putRequisite","setIntegration","setUnauthorized","logout","setEmailConfirmationData","clearIntegrationData","connectSocket","disconnectSocket","setPasswordToken","clearPasswordToken","setEmailToken","clearEmailToken","joinSocketRoom","applyAppSumoLink","clearShowTrialSuccessPage","RequisiteValueType","RequisiteType","putFile","CANCELLED","PlanFieldTypes","LtdTiersIds","defaultRequisiteTypesOrder","TEXT","DRAW","UPLOAD","LtdOptionNames","ltdIdByNumberMap","Map","B_TIER_1","B_TIER_2","B_TIER_3","B_TIER_4","B_TIER_5","tierNumberById","B_TIER_3_ARCHIVED","popularTiers","ltdOptions","USERS","API_REQUESTS","SIGNATURE_REQUESTS","TEMPLATES","BULK_SEND_REQUESTS","BOOLEAN","FORMS","GOOGLE_DRIVE_INTEGRATION","DROPBOX_INTEGRATION","ONE_DRIVE_INTEGRATION","BOX_INTEGRATION","NOTIFICATIONS_AND_REMINDERS","AUDIT_LOG_AND_HISTORY","TEAM_MANAGEMENT","CUSTOM_BUSINESS_BRANDING","additionalLtdOptions","PLAN","PRICING","shortLtdOptions","ALL_INTEGRATIONS","selectState","selectProps","props","selectUser","selectTwoFactorType","twoFactorType","selectUserIntegrations","integrations","selectProfileInfo","timezone","isReceivingReminders","isSendingToAllPartiesInOrderedDocument","isSubscribedOnProcessingToAwaitingConvert","isReceivingSignerSigned","dateFormat","isReceivingSigned","isReceivingOpenedSigning","isReceivingCompletedDocument","isSendingCompletedDocument","isReceivingSignatureRequestsDailyReport","selectAvatarInfo","avatarUrl","selectSignToken","signToken","selectEmbedToken","embedToken","selectEmailToken","emailToken","selectTwoFactorToken","selectPasswordToken","passwordToken","selectAuthStatus","authStatus","selectShowTrialSuccessPage","showTrialSuccessPage","selectUserPlan","selectSubscriptionInfo","subscriptionData","billing","addOn","addOns","discounts","amount","userQuantity","quantity","discountAmount","discountQuantity","discountPercent","percent","nextBillingDate","neverExpires","trialEnd","selectLtdTier","ltdTier","tierNumber","id","selectApiSubscriptionInfo","apiSubscription","apiPlan","selectApiPlan","selectInvoices","invoices","selectInvoicesPaginationData","selectRequisites","requisite","selectDocument","createSelector","selectDocumentWithCompany","selectDocumentSigner","signerId","selectDocumentSignerOptions","isPreparerSigner","isPreparer","TEMPLATE","FORM_REQUEST","role","selectDocumentsPaginationData","documents","selectTemplates","selectActiveTemplates","ACTIVE","selectFormRequests","selectOneRoleTemplates","templates","template","selectDocumentFieldsMeta","documentField","selectDocumentFields","orderBy","fields","field","style","selectCompanyData","company","tagline","companyEmail","emailTemplate","companyName","companyLogoKey","industry","redirectionPage","signatureTypesPreferences","signerAccessCodesPreferences","enableDownloadOriginalDocumentForSigners","enableIndependentRequests","enableIndependentActivity","selectAvailableSignatureTypes","isDrawnSignaturesAvailable","isTypedSignaturesAvailable","isUploadedSignaturesAvailable","Boolean","selectBillingData","selectCardFormValues","card","number","cvv","postalCode","selectRequisite","requisiteId","selectSignatures","requisites","SIGN","deletedAt","selectInitials","INITIAL","selectTeamMembers","team","selectIsAppSumoLinkUsed","isAppSumoLinkUsed","selectApiKeysPaginationData","apiKeys","selectApiKeys","apiKey","selectRequestHistoryPaginationData","requestHistory","selectRequestHistory","selectFormRequestsContracts","contracts","selectApiTemplatesCount","API","selectCommonTemplatesCount","selectIsEmailConfirmed","selectFolderInfo","folderId","folder","selectFolders","selectGrid","grid","selectGridPaginationData","handleSignIn","handleAppSumoSignIn","handleSignInPrimary","handleSignInTwillio","handleSignInGoogleAuthenticator","handleSignUp","handleSignUpTemporary","handleSignUpFromTemporary","handleConfirmTemporary","handleEmailConfirm","handleEmailConfirmByTwilio","handleConfirmationEmailSend","handleLogout","handleLogoutRequest","handleCurrentUserGet","handleSignedGetUrlGet","handleCompatibleSignedUrlGet","handleSignedGetUrlGetHash","handleSignedGetUrlBulkGet","handleSignedGetDownloadUrlGet","handleSignedPutUrlGet","handleSignedPutAssetUrlGet","handleRequisitePut","handleCompanyLogoPut","handleAvatarPut","handleProfileInfoUpdate","handleCompanyInfoUpdate","handleAccountDelete","handleCodeGenerate","handlePhoneVerify","handleTwillioDisable","handleGoogleAuthenticatorDisable","handleGoogleCodeVerify","handleGoogleAuthenticatorEnable","handlePasswordChangeEmailSend","handleEmailUpdate","handlePasswordChange","handleSocketConnect","handleSocketDisconnect","handleSocketRoomJoin","handleAPIUpdatesSubscribeOn","handleAPIUpdatesUnsubscribeFrom","handleSignersAvatarsGet","handleSignUpPrepare","handleSignUpWithConfrimCode","handleGoogleClientIdUpdate","handleEmbedSignedUrlBulkGet","handleLtdSignUp","AuthApiService","isLeading","id_token","select","UserApiService","AWS","UPLOADED","qrCode","SocketService","onConnect","onReconnect","console","userAvatars","normalizedAvatars","lodash","keyBy","confirmCode","AuthStatuses","TwoFactorTypes","DownloadOption","GetCardActionTypes","GetBillingDataActionTypes","UpdateCardActionTypes","AttachCardActionTypes","GetInvoicesActionTypes","GetPlansActionTypes","ChangePLanActionTypes","ChangeApiPLanActionTypes","RemoveApiPlanActionTypes","UpgradeAppSumoActionTypes","GetSubscriptionDataActionTypes","GetApiSubscriptionActionTypes","RetryChargeActionTypes","UpsellPlanActionTypes","ValidatePromotionCodeActionTypes","GetLastestInvoiceActionTypes","CreateSetupCheckoutSession","CreateSubscriptionCheckout","CheckUpsellAllowed","CreateBillingPortal","GetUpcomingInvoice","GetLtdUpcomingInvoice","GetInvoiceDownloadLink","ChangeLtdPlanDurationTypes","CreateLtdPaymentCheckout","UpgradeLtdPaymentCheckout","CapturePaypalOrder","GetLtdTier","GetLtdTiers","ValidateLtdCode","RedeemLtdCode","TemporaryChangePlanActionTypes","takeLeading","takeEvery","takeLatest","DocumentCreateActionTypes","DocumentCreateByExistTemplateTypes","DocumentUpdateByExistTemplateTypes","FormRequestsGetActionTypes","DocumentsDeleteActionTypes","DocumentGetActionTypes","DocumentGetByHashActionTypes","DocumentUploadActionTypes","DocumentFileCleanActionTypes","DocumentUpdateActionTypes","SendReminderActionTypes","DocumentConvertionActionTypes","DocumentsAllGetActionTypes","DocumentCopyActionTypes","DocumentDownloadUrlGetActionTypes","TemplateActivateActionTypes","TemplateReplicateActionTypes","TemplateMergeActionTypes","TemplateAddToApiActionTypes","TemplateRemoveFromApiActionTypes","DocumentRevertActionTypes","DocumentBulkSendActionTypes","DocumentConvertionStatusGetActionTypes","DocumentActivitiesGetActionTypes","DocumentCreateFromFormRequestActionTypes","FormRequestGetActionTypes","FormRequestDisableActionTypes","FormRequestEnableActionTypes","ToggleEmailNotificationActionTypes","GetAllTemplatesActionTypes","DocumentActivitiesUrlGetActionTypes","DocumentSeparateSignActionTypes","DocumentSeparateDownloadUrlGetActionTypes","DocumentActivitiesSeparateSignActionTypes","DocumentDeleteActionTypes","EmbedDocumentGetActionTypes","EmbedDocumentUpdateActionTypes","GetReportByEmailActionTypes","getCard","$getCard","updateCard","$updateCard","attachCard","$attachCard","getInvoices","$getInvoices","getPlans","$getPlans","changePLan","$changePLan","changeApiPlan","$changeApiPlan","removeApiPlan","$removeApiPlan","upgradeAppSumo","$upgradeAppSumo","getSubscriptionData","$getSubscriptionData","getApiSubscription","$getApiSubscription","retryCharge","$retryCharge","upsellPlan","$upsellPlan","validatePromotionCode","$validatePromotionCode","getLatestInvoice","$getLatestInvoice","creatSetupCheckoutSession","$creatSetupCheckoutSession","createSubscriptionCheckout","$createSubscriptionCheckout","checkUpsellAllowed","$checkUpsellAllowed","createBillingPortal","$createBillingPortal","getUpcomingInvoice","$getUpcomingInvoice","getLtdUpcomingInvoice","$getLtdUpcomingInvoice","getInvoiceDownloadLink","$getInvoiceDownloadLink","changeLtdPlanDuration","$changeLtdPlanDuration","createLtdPaymentCheckout","$createLtdPaymentCheckout","upgradeLtdPaymentCheckout","$upgradeLtdPaymentCheckout","capturePaypalOrder","$capturePaypalOrder","getLtdTier","$getLtdTier","getLtdTiers","$getLtdTiers","validateLtdCode","$validateLtdCode","redeemLtdCode","$redeemLtdCode","temporaryChangePlan","$temporaryChangePlan","SignerDocumentGetTypes","SigningDocumentGetTypes","AvailableSignersOptionsGetTypes","SubmitSignedDocumentTypes","DeclineSigningRequestTypes","DocumentSendOutActionTypes","RemindersSendActionTypes","SignatoryOpenedSendActionTypes","DocumentPreviewPagesGetActionTypes","DocumentConvertionStatusActionTypes","DocumentShareUrlGetActionTypes","DocumentShareActionTypes","DocumentSendCodeAccessActionTypes","SigningUrlGetActionTypes","SigningRemindersUnlinkTypes","EmbedDocumentSendOutTypes","EmbedDocumentPreviewPagesGetActionTypes","createDocument","$createDocument","createDocumentByExistTemplate","$createDocumentByExistTemplate","updateDocumentByExistTemplate","$updateDocumentByExistTemplate","getFormRequests","$getFormRequests","getDocument","$getDocument","getDocumentByHash","$getDocumentByHash","uploadDocument","$uploadDocument","updateDocument","$updateDocument","deleteDocuments","$deleteDocuments","sendReminder","$sendReminder","watchDocumentConvertionProgress","start","getAllDocuments","$getAllDocuments","cleanFileData","$cleanFileData","copyDocument","$copyDocument","getDocumentDownloadUrl","$getDocumentDownloadUrl","getDocumentActivitiesDownloadUrl","$getDocumentActivitiesDownloadUrl","activateTemplate","$activateTemplate","addTemplateToApi","$addTemplateToApi","removeTemplateFromApi","$removeTemplateFromApi","replicateTemplate","$replicateTemplate","mergeTemplate","$mergeTemplate","revertDocument","$revertDocument","sendDocumentBulk","$sendDocumentBulk","getDocumentConvertionStatus","getDocumentActivities","$getDocumentActivities","createDocumentFromFormRequest","$createDocumentFromFormRequest","getFormRequest","$getFormRequest","disableForm","$disableForm","enableForm","$enableForm","toggleEmailNotification","$toggleEmailNotification","getAllTemplates","$getAllTemplates","signSeparateDocument","$signSeparateDocument","getSeparateDocumentDownloadUrl","$getSeparateDocumentDownloadUrl","signSeparateDocumentActivities","$signSeparateDocumentActivities","deleteDocument","$deleteDocument","getEmbedDocument","$getEmbedDocument","updateEmbedDocument","$updateEmbedDocument","initEmbedDocumentToken","removeEmbedDocumenToken","getReportByEmail","$getReportByEmail","IntegrationAuthUrlGetActionTypes","IntegrationAuthTokenGetActionTypes","IntegrationDeactivateActionTypes","sendDocumentOut","$sendDocumentOut","initDocumentSigning","finishDocumentSigning","getSignerDocument","$getSignerDocument","getSigningDocument","$getSigningDocument","getAvailableSignersOptions","$getAvailableSignersOptions","submitSignedDocument","$submitSignedDocument","declineSigningRequest","$declineSigningRequest","sendReminders","$sendReminders","sendSignatoryOpened","$sendSignatoryOpened","getDocumentPreviewPages","$getDocumentPreviewPages","getDocumentShareUrl","$getDocumentShareUrl","shareDocument","$shareDocument","$getDocumentConvertionStatus","sendCodeAccess","$sendCodeAccess","getSigningUrl","$getSigningUrl","unlinkSigningReminders","$unlinkSigningReminders","sendOutEmbedDocument","$sendOutEmbedDocument","getEmbedDocumentPreviewPages","$getEmbedDocumentPreviewPages","TeamMembersGetTypes","TeamMembersDeleteTypes","TeamMembersAddActionTypes","InviteAcceptActionTypes","UpgradeTeamMemberToAdminActionTypes","DowngradeTeamMemberToUserActionTypes","getAuthUrl","$getAuthUrl","getAuthToken","$getAuthToken","deactivate","$deactivate","initInviteAccepting","finishInviteAccepting","getTeamMembers","$getTeamMembers","deleteTeamMembers","$deleteTeamMembers","addTeamMembers","$addTeamMembers","acceptInvite","$acceptInvite","upgradeToAdmin","$upgradeToAdmin","downgradeToUser","$downgradeToUser","sagas","reducer","createReducer","handleAction","TRIAL","AUTHORIZED","deactivateIntegration","integration","signatureCounterIncrement","personalDocumentsUsed","freeDocumentsUsed","actions","$actions","updateGoolgeClientId","createTemplate","createForm","getUploadDocumentSignedLink","uploadFile","signedUrl","formData","FormData","append","updateTemplate","updateForm","documentIds","ids","userIds","sourceTemplateId","templateId","getDocumentConvertionData","createFormRequestDocument","getFormRequestContracts","disableFormRequest","enableFormRequest","updatePayload","year","sendOutDocument","updateFields","getDownloadUrlByHash","getActivitiesDownloadUrlByHash","getDownloadUrlByJWT","getActivitiesDownloadUrlByJWT","signSeparateDocumentActivitiesByJWT","signSeparateDocumentByJWT","getSeparateDocumentDownloadUrlByJWT","signersIds","disableSigningReminders","disableReminders","recipients","codeAccess","getSignigUrl","handleDocumentCreate","handleDocumentCreateByExistTemplate","handleDocumentUpdateByExistTemplate","handleFormRequestsGet","handleDocumentGet","handleDocumentByHash","handleDocumentUpload","handleDocumentUpdate","handleDocumentsDelete","handleReminderSend","handleAllDocumentsGet","handleAllTemplatesGet","handleFileDataClean","handleDocumentCopy","handleDocumentDownloadUrlGet","handleDocumentActivitiesDownloadUrlGet","handleTemplateActivate","handleTemplateRemoveFromApi","handleTemplateAddToApi","handleDocumentRevert","handleTemplateReplicate","handleTemplateMerge","handleDocumentsBulkSend","handleDocumentConvertionStatusGet","watchDocumentConvertion","handleDocumentActivitiesGet","handleDocumentCreateFromFormRequest","handleFormRequestGet","handleFormRequestDisable","handleFormRequestEnable","handleDocumentSeparateSign","handleSeparateDocumentDownloadUrlGet","handleDocumentActivitiesSeparateSign","handleDocumentDelete","handleEmbedDocumentGet","handleEmbedDocumentUpdate","handleReportByEmailGet","createEndpoint","DocumentApiService","withConvertedDate","cancelToken","Axios","CancelToken","source","totalItems","totalPages","itemCount","normalizedDocuments","paginationData","pageCount","itemsCount","body","fileUploadLinkResponse","signed_url","updateEndpoint","isHash","DocumentSignApi","convertionData","race","throttle","delay","documentActivities","isLocalDelete","DocumentFieldCreateActionTypes","DocumentFieldUpdateActionTypes","DocumentFieldDeleteActionTypes","deleteId","newState","getDocuments","DocumentFieldHistoryRedoType","DocumentFieldHistoryUndoType","DocumentFieldMetaActionTypes","EmbedDocumentFieldHistoryRedoType","EmbedDocumentFieldHistoryUndoType","EmbedDocumentFieldMetaActionTypes","EmbedDocumentFieldCreateActionTypes","EmbedDocumentFieldUpdateActionTypes","EmbedDocumentFieldDeleteActionTypes","updateDocumentFieldLocally","createDocumentField","updateDocumentField","deleteDocumentField","setDocumentFields","changeDocumentFieldsMeta","set","clear","pushToDocumentFieldsHistory","undoDocumentFieldsHistory","redoDocumentFieldsHistory","CRUDRequestActionCreatorsByTypes","CRUDSuccessCreatorsByRequests","changeEmbedDocumentFieldsMeta","pushToEmbedDocumentFieldsHistory","undoEmbedDocumentFieldsHistory","redoEmbedDocumentFieldsHistory","createEmbedDocumentField","updateEmbedDocumentField","deleteEmbedDocumentField","CRUDEmbedRequestActionCreatorsByTypes","CRUDEmbedSuccessCreatorsByRequests","handleDocumentFieldsUpdate","handleDocumentFieldsChanges","handleDocumentFieldsMetaSet","handleDocumentFieldsActionRequests","handleDocumentFieldHistoryUndo","handleDocumentFieldHistoryRedo","handleEmbedDocumentFieldsUpdate","handleEmbedDocumentFieldsChanges","handleEmbedDocumentFieldsActionRequests","handleEmbedDocumentFieldHistoryUndo","handleEmbedDocumentFieldHistoryRedo","documentFieldsMeta","currentDocumentId","changedDocumentFields","documentUpdateValues","_","saveAction","normalizedDocumentFields","log","pushToHistory","actionType","history","historyActions","historyCursor","cursor","currentAction","prev","currentActionCreator","next","stateField","isFieldSigned","fieldType","Checkbox","getFieldValueKeyByType","signed","historyItem","getCreditCard","changePlan","cancelSubscription","validatePromotionCodeUnauthorized","createSetupCheckout","invoiceId","orderId","ltdId","handleGetCard","handleUpdateCard","handleAppSumoUpgrade","handleAttachCard","handleRemoveApiPlan","handleGetInvoices","handlePlansGet","handleSubscriptionDataGet","handleApiSubscriptionGet","handleChangePlan","handleChangeApiPlan","handleChargeRetry","handleUpsellPlan","handleValidatePromotionCode","handleGetLatestInvoice","handleCreateCheckout","handleCreateSubscriptionCheckout","handleCheckUpsellAllowed","handleCreateBillingPortal","handleGetUpcomingInvoice","handleGetLtdUpcomingInvoice","handleGetInvoiceDownloadLink","handleChangeLtdPlanDuration","handleCreateLtdPaymentCheckout","handleUpgradeLtdPaymentCheckout","handleCapturePaypalOrder","handleGetLtdTier","handleGetLtdTiers","handleValidateLtdCode","handleRedeemLtdCode","handleTemporaryChangePlan","BillingApiService","normalizedInvoices","plans","updatedUser","authorized","invoiceItems","temporaryChangePLan","teamMemberIds","handleTeamMembersGet","handleDeleteTeamMembers","handleAddTeamMembers","handleInviteAccept","handleToAdminUpgrade","handleToUserDonwgrade","TeamApiService","members","normalizedTeamMembers","teamMembers","teamMembersIds","teamMember","baseUrl","handleAuthUrlGet","handleAuthTokenGet","handleIntegrationDeactivate","IntegrationService","DeleteRequisiteActionTypes","GetRequisitesActionTypes","CreateRequisitesActionTypes","UpdateRequisitesActionTypes","DownloadFileByUrlActionTypes","getRequisites","createRequisites","updateRequisites","deleteRequisite","$deleteRequisite","$getRequisites","$createRequisites","$updateRequisites","downloadFileByUrl","$downloadFileByUrl","handleRequisitesGet","handleRequisiteDelete","handleRequisitesCreate","handleRequisitesUpdate","handleDownloadFileByUrl","RequisiteApiService","withDeleted","requisitesList","normalizedRequisites","downloadFile","handleAvailableSignersOptionsGet","handleSignerDocumentGet","handleSigningDocumentGet","handleSubmitSignedDocument","handleDeclineSigningRequest","handleDocumentSendOut","handleRemindersSend","handleSignatoryOpenedSend","handleDocumentPreviewPagesGet","handleDocumentShareUrlGet","handleDocumentShare","handleCodeAccessSend","handleSigningUrlGet","handleSigningRemindersUnlink","watchDocumentConvertionStatus","handleDisableSiginigReminders","handleEmbedDocumentSendOut","handleEmbedDocumentPreviewPagesGet","DocumentSignApiService","entityId","RequestHistoryGetActionTypes","getRequestHistory","$getRequestHistory","apiKeyId","handleRequestHistoryGet","restParams","RequestHistoryApi","normalizedRequestHistory","ApiKeyCreateActionTypes","ApiKeysGetActionTypes","ApiKeysDeleteActionTypes","ApiKeyDeleteActionTypes","ApiKeyRevokeActionTypes","ApiKeyRecoverActionTypes","ApiKeyGetActionTypes","createApiKey","$createApiKey","getApiKeys","$getApiKeys","getApiKey","$getApiKey","deleteApiKeys","$deleteApiKeys","deleteApiKey","$deleteApiKey","revokeApiKey","$revokeApiKey","recoverApiKey","$recoverApiKey","apiKeyIds","handleApiKeysGet","handleApiKeyGet","handleApiKeyCreate","handleApiKeysDelete","handleApiKeyDelete","handleApiKeyRevoke","handleApiKeyRecover","ApiKeyApiService","normalizedApiKeys","GridGetActionTypes","GridGetForSignatureRequestsActionTypes","GridUpdateActionTypes","GridItemsDeleteActionTypes","GridItemsMoveToTrashActionTypes","EmptyTrashActionTypes","GetCompanyInfoActionTypes","getGrid","$getGrid","getGridForSignatureRequests","$getGridForSignatureRequests","setCurrentFolderId","updateGrid","$updateGrid","deleteGridItems","$deleteGridItems","moveToTrashGridItems","$moveToTrashGridItems","emptyTrash","$emptyTrash","currentFolderId","redirectToBilling","$getCompanyInfo","isRedirect","handleCompanyInfoGet","handletCompanyInfoGetForcedly","DocumentGetFormRequestContractsActionTypes","$getFormRequestContracts","handleFormRequestContractsGet","FolderCreateActionTypes","FolderUpdateActionTypes","FoldersDeleteActionTypes","FolderInfoGetActionTypes","FolderGetActionTypes","FolderChangePermissionActionTypes","createFolder","$createFolder","changePermissions","$changePermissions","updateFolder","$updateFolder","deleteFolders","$deleteFolders","getFolderInfo","$getFolderInfo","getFolder","$getFolder","gridId","folderIds","handleFolderCreate","handleFolderChangePermission","handleFolderUpdate","handleFoldersDelete","handleFolderInfoGet","handleFolderGet","FolderApi","folderInfo","folders","normalizedFolders","GridEntityType","entityIds","handleGridGet","handleGridGetForSignatureRequests","handleGridUpdate","handleGridItemsDelete","handleGridItemsMoveToTrash","handleTrashEmpty","GridApi","normalizedGrid","signatureRequestItems","entityType","SIGNATURE_REQUEST","signatureRequests","SigntureRequestsDeleteActionTypes","deleteSignatureRequests","$deleteSignatureRequests","signatureRequestIds","handleSignatureRequestsDelete","SignatureRequestApiService","rootSagas","appReducer","combineReducers","apiKeyDuck","requestHistoryDuck","userDuck","documentDuck","documentFieldDuck","companyDuck","billingDuck","teamDuck","requisiteDuck","metaDuck","contractsDuck","folderDuck","gridDuck","signatureRequest","signatureRequestDuck","rootActions","intergrationDuck","documentSign","$requestHistoryActions","$apiKeyActions","$userActions","$documentActions","$documentFieldActions","$companyActions","$billingActions","$teamActions","$integrationActions","$requisiteActions","$documentSignAction","$contractsActions","$folderActions","$gridActions","$signatureRequestActions","all","paginationSelector","itemsLimit","initialPage","pageNumber","setPageNumber","useSelector","orderingConfig","setOrderingConfig","orderedItems","direction","requestOrdering","ASC","DESC","extend","customParseFormat","emailRegExp","digitsAndCharsAndSpecialSymbolsRegExp","atLeastDigitRegexp","atLeastOneUppercaseAndOneLowercaseRegExp","atLeastOneSpecialCharacterRegExp","urlRegExp","webRegExp","emptyCharactersRegExp","RegExp","required","isNaN","maxLength","maxLength100","maxLength50","notOnlySpaces","trim","atLeastDigit","test","atLeastOneUppercaseAndOneLowercase","atLeastOneSpecialCharacter","passwordLength","onlyDigitsAndCharsAndSpecialSymbols","password","validationErrors","confirmPassword","formValues","urlProtocol","titleNotUrlProtocol","messageNotUrlProtocol","phoneNumberLength","lessThan10MB","bytes","byteToMB","lessThan40MB","lessThan100MB","multipleFilesConstaint","files","filesLimit","totalSize","size","sizeError","filesNumberError","multipleAttachingMailFilesConstaint","newFile","documentPart","multipleAttachingMailFilesConstaintOnCancel","removedFileSize","monthNames","formatDate","dateString","date","day","getDate","monthIndex","getMonth","removeEmptyCharacters","replace","toLowerCaseAndRemoveEmptyCharacters","toLowerCase","capitalize","str","toUpperCase","phoneNumberMaskedProps","mask","phoneCodeMaskedProps","postalCodeMask","dateFormatMasks","DD_MM_YYYY","MM_DD_YYYY","YYYY_MM_DD","DD_MM_YY","MM_DD_YY","formatDateStringToStartDay","startOf","toDate","formatDateStringToEndDay","endOf","formatDateToIsoString","toISOString","formatDateToHumanString","onlyDate","formatDateToStringForTrialInfo","daysToDate","currentDate","diff","formatDocumentName","formatFolderName","getFirstCapital","string","charAt","getInitials","namePart","formatFileName","fileName","forbidden","char","planTypeToName","fileExtractors","useDispatch","downloadFiles","zip","JSZip","filesInfo","fileExtractor","getTime","getTimezoneOffset","fileInfo","fileKey","itemName","parsePath","JSZipUtils","getBinaryContent","Toast","generateAsync","blob","saveAs","useAsyncAction","cancelSource","setCancelSource","newCancelSource","isLoading","shadowIFrame","setShadowIFrame","useEffect","iframe","appendChild","display","createShadowIFrame","remove","shadowIframe","useShadowIframe","focus","contentWindow","print","shadowLink","setShadowLink","link","createShadowLink","useShadowLink","click","finishTask","handleRoutineAction","handlePromisyAction","routinePromiseWatcherSaga","getPayload","cancelAction","stopWatching","actionsTaken","handleFailureAction","routineFailureWatcherSaga","failureRegex","failurePattern","sagaMiddleware","createSagaMiddleware","middlewares","store","createStore","composeWithDevTools","applyMiddleware","persistStore","actionPromisifyWatcher","failureWatcher","saga","run","setBeaconContainerStatus","beaconContainer","getElementById","hideBeacon","isSuccessful","beacon","Beacon","addEventListener","showBeacon","target","createBrowserHistory","useMediaQuery","query","setUserAvatars","useSignersAvatarsGet","avatars","clientId","GoogleAnalyticsObject","ga","getAll","useGoogleClientIdGet","UISpinner","className","wrapperClassName","classNames","viewBox","xmlns","fill","strokeWidth","strokeLinecap","cx","cy","r","addPrefix","path","RoutePaths","BASE_PATH","APPSUMO_THANKS","RESET","CONFIRM_EMAIL","DOCUMENT_SIGN","DOCUMENT_STATUS","EMBED_DOCUMENT","ACCEPT_INVITE","REMINDERS_UNLINK","INVOICE_DOWNLOAD","SIGNER_DOCUMENT_DOWNLOAD","SEPARATED_DOCUMENT_DOWNLOAD","DOCUMENT_ACTIVITIES_DOWNLOAD","DOCUMENT_DOWNLOAD","ORIGINAL_DOCUMENT_DOWNLOAD","FORM_REQUESTS_SEND","LANDING_SIGNUP","LANDING_SIGNUP_CONFIRM","LANDING_SIGNUP_THANKS","AuthorizedRoutePaths","UPSELL","DOCUMENT_PREVIEW","ONLY_ME","BULK_SEND","ME_AND_OTHERS","ONLY_OTHERS","DOCUMENTS","RECEIVED_DOCUMENTS","TRASH","DOCUMENTS_STATUS","DOCUMENTS_EDIT","TEMPLATES_ACTIVE","TEMPLATES_CREATE","TEMPLATES_EDIT","TEMPLATES_STATUS","FORM_REQUESTS","FORM_REQUESTS_CREATE","FORM_REQUESTS_STATUS","FORM_REQUESTS_EDIT","INTEGRATIONS","TEAM","SETTINGS","SETTINGS_COMPANY","SETTINGS_PROFILE","SETTINGS_REQUEST_HISTORY","SETTINGS_API","SETTINGS_EDIT_SIGNATURE","SETTINGS_BILLING","SETTINGS_BILLING_PLAN","ACTIVATE_TRIAL","TRY_TRIAL","REDEEM_LTD_CODE","LTD_UPGRADE","LTD_UPGRADE_SUCCESS","TRIAL_SUCCESS","UnauthorizedRoutePaths","SIGN_UP","CONFIRM_ACCOUNT","CHANGE_PASSWORD","LOGIN","SIGN_UP_FREE","SIGN_UP_BUSINESS","SIGN_UP_PERSONAL","SIGN_UP_LTD","LIFE_TIME_DEAL","LIFE_TIME_DEAL_TIER","LTD_PAYMENT_SUCCESS","TWO_FACTOR","ABOUT","PassThrough","Forbidden","to","Route","layout","Layout","component","forbiddenComponent","ForbiddenComponent","subLayout","SubLayout","layoutProps","isForbidden","rest","LayoutComponent","render","pathname","logoutAction","gis","onSubmit","setGis","initGis","google","accounts","initialize","client_id","callback","prompt","useGoogleIdentityServiceGet","ref","renderButton","gtag","send_to","Avatar","isMobile","useIsMobile","mobile","alt","getAvatarContent","AccountAvatar","LINKS","icon","CompanyIcon","TeamIcon","EditIcon","freeUrl","BillingIcon","REDIRECT_LINK","FeedbackIcon","StarIcon","DropDownUser","isActionHidden","useDropdown","containerRef","isOpen","onClick","ArrowIcon","rel","LogoutIcon","UIButton","priority","disabled","ariaDisabled","handleClick","leftIcon","rightIcon","primary","secondary","red","white","aria-disabled","SignIcon","DocumentsIcon","subMenu","TemplatesIcon","FormsIcon","IntegrationsIcon","SettingsIcon","LabelsWithArrow","Menu","isSignaturesLimited","activeItem","setActiveItem","isUserDropDown","setUserDropDown","stopScroll","classList","add","resetScroll","useBodyScrollStop","useBeaconRemove","freeDocumentsUsedLimit","personalDocumentsUsedLimit","signatureCounterByType","handleLinkClick","handleUserClick","active","sublink","HelpIcon","DropDownMenu","CloseIcon","MenuIcon","BlackFridayBanner","isAuthorizedPage","isShowBanner","setShowBanner","closeBanner","useBlackFridayBanner","isShowRedirect","History","handleRedirect","UIModal","onClose","overlayClassName","isOverlayTransparent","hideCloseIcon","shouldCloseOnOverlayClick","onRequestClose","UICheckbox","check","handleCheckboxClick","disabledClassName","Icon","DropDownOptions","anchorClassName","isPlaceOnTop","setIsPlaceOnTop","dropdownListRef","useRef","current","contains","containerHeight","clientHeight","offsetTop","offsetsSum","accum","element","dropdownListHeight","IconSelectArrow","option","hidden","classNameText","iconClassName","TeamMemberItem","isSelectable","isChangingRoleEnabled","isEditEnabled","toggleSelect","useToAdminUpgrade","isUpgradingToAdmin","useToUserDowngrade","isDowngradeToUser","handleToUserDowngrade","handleSelectionToggle","KeyIcon","hasActions","DropDownOptionsMobile","classNameIcon","ConfirmModal","onConfirm","onCancel","confirmText","cancelText","confirmButtonProps","cancelButtonProps","ConfirmComponent","confirmComponent","CancelComponent","cancelComponent","buttonsBlockClassName","isCancellable","footer","modalProps","DeleteModal","deleteTitle","cancelTitle","TeamMemberItemMobile","useTeamMembersDelete","isTeamMemberDeleting","handleDeleteTeamMember","hideDeleteModal","showDeleteModal","RemoveIcon","OWNER","UIAddButton","labelClassName","CircleAdd","React","forwardRef","onBlur","onFocus","onChange","onKeyUp","onKeyDown","placeholder","min","autofocus","inputClassName","readOnly","onIconFocus","iconFocusState","autoComplete","form__input","autoFocus","onMouseEnter","onMouseLeave","UISelect","contentWrapperClassName","handleSelect","emptyText","isClearable","isSearchable","searchInputPlaceholder","searchWrapperClassName","selectedOption","filteredOptions","setFilteredOptions","toggleDropdown","handleFilterOptions","searchString","currentTarget","searchOptions","indexOf","isNotEmptyOptions","isNoSearchOptions","e","stopPropagation","onClear","SelectIcon","preventDefault","IconSearch","optionLabel","addItem","FormError","submitError","inputErrors","TeammateEmail","input","isDeletable","onDelete","touched","dirtySinceLastSubmit","isError","CircleClose","TeammateName","TeammateFieldArray","addLabel","isAddable","isItemsDeletable","isRoleSelectable","isItemDeletablePredicate","handleAddTeammate","itemIndex","validate","nameValidator","update","formInitialValues","TeamMembersAddModal","sendDocument","subscriptionInfo","userRole","appSumoStatus","teamSize","subscriptionPrice","handleSendDocument","initialValues","mutators","arrayMutators","handleSubmit","submitting","STANDARD","toFixed","EmptyTable","headerText","description","buttonText","buttonClassName","classnames","TeamMemberListMobileView","isOwnerOrAdmin","openDeleteModal","IconRemove","TeamMembersList","isDeleteModalOpen","isBusinessPlan","isTableEmpty","emptyTableProps","IconSort","DeleteTeammateModal","onDeleteTeammate","stripe","useStripe","elements","useElements","billingDetails","cardNumber","getElement","createPaymentMethod","billing_details","address","postal_code","cardholderName","paymentMethod","loadScript","gapi","load","LinkTypes","initGoogleDrivePicker","acceptableFormats","onPick","onError","picker","DocsView","PickerBuilder","Action","docsView","setParent","setIncludeFolders","setMimeTypes","addView","setOAuthToken","setDeveloperKey","setCallback","PICKED","docs","mimeType","sizeBytes","standardMimeType","exportPickedFile","getFileNameByMimeType","downloadPickedFile","build","setVisible","remoteFileExt","pathParse","ext","Authorization","exportMimeType","attrs","ActionTypes","openPicker","extensions","Dropbox","choose","currFileMeta","folderselect","multiselect","linkType","sizeLimit","fileBlob","BoxStorageKeys","launchOneDrivePicker","OneDrive","extentions","oneDriveOptions","openInNewWindow","DOWNLOAD","multiSelect","advanced","redirectUri","origin","fileMeta","show","filePicker","Box","FilePicker","addListener","is_download_available","authenticated_download_url","maxSelectable","canUpload","canSetShareAccess","canCreateNewFolder","container","fireRegistrationEvent","fbq","firePlanChangeEvent","planTerm","toPrecision","currency","predicted_ltv","dataLayer","fireUnconfirmedRegistrationEvent","CreateFreeAccount","fireAppSumoRegistrationEvent","RegistrationAppSumo","fireConfirmedRegistrationEvent","ConfirmedAccount","fireGoogleRegistrationEvent","fireUserIdEvent","registrationDate","createdAt","userType","billingPeriod","appSumo","fireSubscriptionEvent","planName","transactionId","PricingPlanName","transactionID","firePurchaseEvent","transaction_id","previous_plan_name","count_of_docs_saved","ecommerce","affiliation","item_brand","fireTrialSignUpEvent","headerItems","header","planInformationItems","freeValue","personalValue","businessValue","InvoiceItem","invoice","pdfKey","onDownload","DownloadIcon","Paginator","onPageChange","pageRangeDisplayed","marginPagesDisplayed","previousLabel","nextLabel","forcePage","containerClassName","breakClassName","pageClassName","activeClassName","InvoiceTable","paginationProps","useSignedDownloadUrlGet","getSignedUrl","useAttachmentDownload","downloadInvoice","handleDownloadInvoice","handleChangePage","page","selected","UIPaginator","subscriptionPlanNames","convertToMoneyFormat","toLocaleString","useGrouping","minimumFractionDigits","FieldTextInput","renderInput","RecipientEmail","EmailRecipientsArray","ContentPosition","handleSetRecipientsValues","handleRecipientsAdd","checkLimit","isTrialSubscription","TooltipBlock","contentPosition","TOP","disabledMobile","BOTTOM","LEFT","RIGHT","Tooltip","blockProps","TooltipIcon","IndependentTooltip","content","isVisible","setIsVisible","FieldInput","componentProps","isFocusedError","setFocusedError","handleBlur","handleFocus","form__field","ErrorIcon","FieldCheckbox","checkboxProps","isOrdered","FieldSelect","restProps","inputProps","FieldPasswordInput","useToggler","currentIcon","EyeIcon","CrossedEyeIcon","FieldTextArea","MaskedTextInput","fieldProps","guide","maskedProps","restInput","BillingDetails","taxId","useProfileInfoUpdate","updateBillingDetails","handleUpdateDetails","pristine","hasValidationErrors","CodeInput","onUpgrade","buttonTitle","succeeded","code","setCode","handleUpgrade","handleValueChange","PromoCodeStatuses","oneCodeValue","twoCodeValue","AppSumoBillingSlider","userAppSumoStatus","currentDisplayedAppSumoStatus","handleChangeCurrentDisplayedStatus","isUpgradeLoading","FULL","AppSumoTableMobileView","currentDisplayedStatus","renderCell","getCurrentPlanItemValue","ArrowCircleIcon","AppSumoBillingTable","isAlignLeftTitle","setCurrentDisplayedStatus","useAppSumoUpgrade","BillingPlanTableMobileView","currentDisplayedPlan","BillingPlansSlider","userPlanPriority","planPriorityByDuration","openModal","handleChangeCurrentPlan","onRenewPlan","headerItem","PromoCodeField","onUpdateCoupon","isDisabledWasteText","inputText","setInputText","currentUser","promotionCode","setPromotionCode","promoCodeStatus","setPromoCodeStatus","appliedCoupon","setAppliedCoupon","usePromotionCodeValidate","isPromotionCodeValidating","handleApplyCoupon","coupon","INVALID","VALID","handleSetPromotionCode","text","percentOff","PromoCodeModal","DowngradePlanModal","onDowngrade","toDateString","CurrentPlanInfo","currentPlan","totalPrice","showInfoContent","targetByPlanType","PlanCostItem","defaultPrice","LifeTimeDealInfoBlock","useLtdTierGet","isGettingLtdTier","currentLtd","isDisabledForUpgrade","shortLtdAdditionalOptions","teammatesLimit","handleUpgradeClick","planType","LifeTimeDealSlider","tiers","userTierPriority","onSelectTierToUpgrade","currentDisplayedTier","handleChangeCurrentTier","tier","LifeTimeDealTableMobileView","fullTiersOptions","apiPlanPriorityByDuration","FOREVER","apiPlanPrices","apiPlanItems","nonPayedPlansDescription","APPSUMO_STANDARD","APPSUMO_FULL","UpsellModal","isApiPlan","handleConfirm","monthlyUpsellPrice","annuallyUpsellPrice","PresentIcon","planMonthlyInformationItems","planAnnuallyInformationItems","BillingDefaultPlanScreen","userPlan","cardInitialValues","usePlanChange","isChangePlanLoading","useSubscriptionDataGet","usePlanUpsell","isUpsellingPlan","useUpsellAllowedCheck","useLatestInvoiceGet","useCardGet","setCurrentDisplayedPlan","selectedPlanDuration","setSelectedPlanDuration","planToChange","setPlanToUpgrade","currentHeaderItems","hideUpsellModal","showUpsellModal","couponId","latestInvoice","FacebookPixel","DataLayerAnalytics","handleRenewPlan","handlePlanDurationChange","newPlan","handlePlanDurationTogglerChange","checked","handleUpdateCoupon","handleClearCoupon","hidePromoCodeModal","showPromoCodeModal","hideDowngradePlanModal","showDowngradePlanModal","onChangePlan","targetPlan","sourcePlan","onPromoAdd","onPromoClear","hideUpgradePlanModal","onSelectedDurationChange","appliedCouponId","showUpgradePlanModal","checkIfDowngrade","isDowngrade","NOT_FOUND","FREEZE","icons","ClearableTextInput","inputComponent","InputComponent","UpcomingInvoice","onCouponAdd","onCouponClear","onGetInvoice","isLoadingUpcomingInvoice","upcomingInvoice","setUpcomingInvoice","ltdType","TIER","APPSUMO","NONE","handleUpcomingInvoiceGet","unusedTime","Math","max","total","showIcon","getAnnuallyDiscount","annuallyDiscount","PlanChangeModal","createCard","useCreateCard","useCardAttach","useUpcomingInvoiceGet","isNewPlanSame","item_id","item_name","item_category","item_list_id","item_list_name","item_variant","color","fontWeight","priceMonth","priceYear","renderChangeModalText","discountedAmount","nextInvoiceDate","LtdPlanChangeModal","isUpgradingPlan","useLtdUpcomingInvoiceGet","isLoadingLtdUpcomingInvoice","discountedPriceMonth","discountedPriceYear","LtdUpgradePlanModal","useLtdPlanDurationChange","isChangeLtdPlanDurationLoading","LtdSubtitleMap","AdditionalTeamMembersAddModal","onSetFutureTeamMembers","showBillingModal","teamLimit","handleContinue","AddTeamMemberButton","isSubscriptionDataLoading","useTeamMembersAdd","useCurrentUserGet","futureTeamMembers","setFutureTeamMembers","handleSubscriptionInfoGet","ltdTierId","handleAddAppSumoTeamMembersSubmit","hideLtdUpgradePlanModal","showLtdUpgradePlanModal","hidePlanUpgradeModal","showPlanUpgradeModal","handleAddTeamMembersSubmit","hideAddMemberModal","showAddMemberModal","handleTeamMembersAdd","subscriptionId","EndOfYearBanner","useEndOfYearBanner","TrialBanner","Header","headerClassName","useLogout","isTrialUsed","isTrialAvailable","isSomeSale","Logo","Footer","currentYear","AuthenticatedWrapper","SimplifiedWrapper","settingsNavItems","classNameMod","SettingsNavigation","startsWith","SettingsWrapper","timestamp","floor","setupScript","async","innerHTML","wootric","checkForSignersDuplicates","partialSigners","difference","uniqWith","isEqual","checkForFileAttachment","parts","part","filesUploaded","checkForDocumentFields","documentType","checkForEmptyTextbox","findIndex","checkForDocumentRequiredField","ME","requiredFields","checkForCurrentUserPresents","isCurrentUserPresent","isTemporary","checkForCurrentUserFields","checkForOtherSignersFieldsAssign","unusedSigner","checkForUnusedSigners","subjectType","subject","checkForUnattachedFields","unattachedField","navigateToOnlyMe","getDocumentValidationMeta","ME_AND_OTHER","minLength","showMessage","textDecoration","closeOnClick","checkSigners","prevSigner","validateEmail","useBulkSendValidation","checkForEmptyNameField","useDocumentValidation","validationalDocument","documentWithTemplateErrors","otherValidationErrors","SignersArray","IntegrationTypes","withRoles","isAdditionDisabled","isRemoveDisabled","isOrderedDisabled","renderFields","skipFirst","skipPreparer","handleSetSignersValues","isAloneSigner","order","maxBy","handleSignerAdd","handleSignerRemove","i","handleDragEnd","destination","onDragEnd","droppableId","droppableProvided","innerRef","droppableProps","draggableId","isDragDisabled","draggableProvided","snapshot","draggableProps","dragHandleProps","DraggableIcon","isDragging","draggable","IntegrationActivationStatuses","IntegrationItem","isActivate","useAuthUrlGet","isGettingAuthUrl","useIntegrationDeactivate","isDeactivatingIntegration","ONE_DRIVE","DROPBOX","integrationsList","GOOGLE_DRIVE","GoogleDriveIcon","DropBoxIcon","OneDriveIcon","BOX","BoxIcon","Integrations","userIntegrations","useLayoutEffect","searchParams","URLSearchParams","search","errorDescription","replaceState","ERROR","opener","postMessage","integrationStatus","SUCCESS","integrationTitle","userIntegration","BoxPicker","BoxContentPickerApi","then","hide","serviceDataByType","GoogleDrive","UIImportButton","integrated","boxToken","setBoxToken","useAuthTokenGet","isGettingAuthToken","openPopup","onmessage","integartion","useIntegrationConnect","closeBoxPicker","openBoxPicker","handleIntegrationConnect","DropboxApi","tokenPayload","GoogleApi","OneDriveApi","stages","UIProgressBar","withStaging","dynamicalProgress","setDynamicalProgress","handleSetDynamicalProgress","offset","setProgress","defaultFormats","UIUploader","importServices","onUpload","progress","headerTitle","uploadTitle","isCancelled","initialFileName","uploadProgress","setUploadProgress","setFilename","onDrop","acceptedFiles","timer","clearTimeout","handleCloudFilePick","handleCancel","useDropzone","accept","getRootProps","getInputProps","isDragReject","serviceType","FileSVG","Cancel","useSpinnerClasses","makeStyles","wrapper","borderRadius","UICancelButton","spinnerClasses","uniq","UIMultiUploader","onFileReorder","disableReorder","isCleanFileData","documentFiles","singleFileConstaint","newOrders","fileItem","errorText","FileField","submitButtonTitle","editButtonTitle","onUploadCancel","onFileUpload","onEditTemplate","isFileProcessed","onUploadSuccess","onUploadFailure","isBasedOnTemplate","isShowWarning","uploadError","setUploadError","handleFileUpload","Arrow","pdfFileKey","useSignedGetUrlBulk","getPresignedGetUrlBulk","getDocumentPageKeys","useDocumentPageKeysGet","DRAFT","pageKeys","downloadType","MERGED","resultPdfFileKey","resultDocumentPdfFileKey","documentFilesKeys","presignedUrls","presignedPagesUrls","useFileUpload","onFailure","onSuccess","useDocumentGet","isGettingDocument","isCheckingDocument","setIsCheckingDocument","checkDocument","checkedDocument","requisitesPayload","fontFamilyByValue","arial","calibri","cambria","courier","georgia","timesNewRoman","trebuchet","verdana","openSans","roboto","sacramento","kalam","laBelleAurore","gochiHand","caveat","marckScript","handlee","nothingYouCouldDo","coveredByYourGrace","justAnotherHand","shadowsIntoLight","badScript","yellowtail","dancingScript","greatVibes","qwigley","bilboSwashCaps","stalemate","availableFontFamilyOptions","requisiteFontFamilyOptions","fontFamilyOptions","fontSizeOptions","useSignedPutUrl","isPutUrlLoading","useRequisitePut","isPutRequisiteLoading","fileExt","putUrl","fontStyle","requisiteValueType","createImageFromText","textFontSize","fontFamilyType","typeCanvasSize","createTypeCanvas","typeCanvas","context","font","textSize","measureText","coordinateX","fillText","trimCanvas","useImageFromTextCreation","useBacketUploader","uploadToBacket","isCreating","setIsCreating","createRequisitePayload","siblingId","convertedImage","valueType","fontFamily","fontSize","requisitesCreationPayload","defaultValue","useSignedGetUrl","useDownloadFileByUrl","isDownloading","canvasRef","drawnFile","setDrawnFile","imageFile","setImageFile","requisiteValue","setRequisiteValue","isInitialImage","setIsInitialImage","setImageToCanvas","signedUrlData","imageData","handleDrawOnCanvas","signaturePad","requisiteFile","ratio","devicePixelRatio","offsetWidth","offsetHeight","scale","signPad","SignaturePad","imageUrl","fromDataURL","onEnd","textValue","setSize","updateSize","innerWidth","innerHeight","useWindowSize","heigth","resizeFont","parentElement","fieldWidth","clientWidth","containerWidth","interval","setInterval","clearInterval","userName","availableSignatureTypes","nextSigner","isChangedToPreparer","isChangedFromPreparer","documentFieldsHistory","isNextAvailable","isPrevAvailable","Interact","node","resizeParentNode","dragParentNode","getInteractable","interact","interacting","inertia","modifiers","restrict","restriction","elementRect","bottom","right","draggableOptions","resizable","restrictEdges","outer","edges","resizableOptions","shadowElement","initialFontSize","maxFontSize","minFontSize","checkHeight","checkWidth","isAsync","isFixedFontSize","parent","getNodeCoords","x","getAttribute","y","getNodeFontSize","parseInt","getNodeSize","setNodeCoords","setAttribute","setNodeSize","dragMoveListener","documentScale","dx","dy","coordX","coordY","resizeMoveListener","deltaRect","dWidth","dHeight","rect","rectWidth","rectHeight","widthSize","heightSize","setNodeFontSize","rearrangeFontSizeAsync","shadowParent","firstChild","getRearrangedFontSize","newFontSize","RequisiteActionTypes","INTERACT_SIZES","calculateSizeRatio","pdfPageMeta","fieldHasValue","fieldValues","OverlaySpinner","spinnerProps","RequisiteItem","requisiteItem","imgRef","isLoadingImg","setIsLoadingImg","onLoad","RequisiteDeleteModal","closeModal","useRequisiteDelete","isDeleteLoading","requisiteTypeName","handleDeleteRequisite","iconsByActionType","EDIT","DELETE","RequisiteActionsDropdown","RequisiteTabItem","RequisiteModalText","handleOnChange","signatureValue","initialsValue","signatureRef","useRequisiteTextRef","initialsRef","isRequired","whiteSpace","RequisiteModalDraw","handleOnClearRequisite","canvasSignRef","canvasInitialsRef","RequisiteModalUpload","imageSignFile","imageInitialFile","handleOnClearFile","handleChangeFile","handleOnClearFiles","htmlFor","UploadIcon","RequisiteFieldInput","setActive","setTouched","setLeft","visited","RequisiteModal","siblingRequisiteItem","onSuccessfulSubmit","requisiteType","defaultValues","defaultFontFamilyType","activeTab","setActiveTab","setFontFamilyType","signRequisite","initialRequisite","useRequisitesUpdate","isRequisiteUploading","useRequisitesCreate","isRequisitesCreating","useRequisitePayloadGet","setImageSignFile","drawnSignFile","requisiteSignValue","setRequisiteSignValue","isSignDownloading","canvasInitialRef","setImageInitialFile","drawnInitialFile","requisiteInitialValue","setRequisiteInitialValue","isInitialDownloading","isTermsAccepted","toggleTermsAccepted","useRequisitesPayloadCreation","createRequisitesPayload","isPayloadCreating","checkIsTabContentEmpty","initialId","signId","signValue","initialValue","resultRequisites","currentRequisite","resizeImage","FileResizer","imageFileResizer","val","handleOnChangeValue","tabType","getContent","RequisiteListItem","onItemClick","onItemDoubleClick","onItemEdit","handleItemClick","handleItemDoubleClick","handleItemEdit","closeDeleteModal","onDoubleClick","RequisiteSelectModal","onSelect","requisiteValues","setRequisiteValues","selectedRequisite","setSelectedRequisite","isInItemView","setIsInItemView","isCustomCreate","setIsCustomCreate","requisitesSelector","filteredRequisites","siblingRequisite","requisiteAddTitle","closeItemView","onCreateClick","onCreateCustomClick","onChangeValue","prevState","newRequisiteValues","siblingRequisiteValue","toLocaleLowerCase","onClickCustomCreate","shadowed","RequisiteAutoGenModal","InteractModes","FieldModalPosition","fieldName","CheckboxField","fieldColor","ArrowCheck","RequisiteField","updateField","createType","SIGNATURE","INITIALS","shadowRef","ADD","dangerouslySetInnerHTML","__html","InIcon","DateField","onFieldDataChange","isInsertable","datePipeOptions","changeTextValue","datePipe","minYYYY","maxYYYY","minYY","maxYY","isSameOrFuture","dateFormatArray","sort","b","conformedValue","dateValue","todayDate","now","isValid","isBefore","indexesOfPipedChars","maxValue","DD","MM","YY","YYYY","minValue","conformedValueArr","position","maxFirstDigit","substr","month","some","maxValueForFormat","scopedMaxValue","substring","createAutoCorrectedDatePipe","disabled_pointer_event","pipe","keepCharPositions","DateIcon","signerName","prevValue","formattedValue","NameField","endsWith","NameIcon","inFocus","renderFieldTrigger","renderFieldMenu","dropdownClassName","dropdownMenuRef","isMenuOpen","isResizable","isFilled","selectedScale","fieldModalPosition","fieldColorClassName","FieldColorNames","EMPTY","translateModalX","TOP_LEFT","translateModalY","defaultFieldTriggerRender","TextFieldSign","tabIndex","field-type","coord-x","coord-y","size-width","size-height","transform","FieldItem","signersOptions","onChangeSigner","interactMode","PREPARING","onInteract","onDocumentFieldUpdate","lastSelectedSignature","setLastSelectedSignature","isFontResize","fixedFontSize","minimizeWidth","isRequisiteType","isCheckboxType","isCheckbox","openMenu","textFieldRef","setIsDragging","changeDocumentFieldSigner","useDocumentFieldSignerChange","dropdownMenuClassName","setDropdownMenuClassName","setFieldModalPosition","getRelatedPage","parentNode","childNodes","updateDocumentRequisiteField","offsetLeft","useDocumentFieldColor","viewStyles","textStyles","handleRequisiteAssign","closeRequisiteSelectModal","openRequisiteSelectModal","modifyDropDownMenu","containerRect","getElementRect","triggerRect","dropdownMenuRect","escapeRight","escapeBottom","isOverflowX","isOverflowY","isOverflow","handleInteraction","toggleFieldChecked","setPrepareInteracting","fieldContainer","draggableContainer","relatedPage","minimumSize","getMinSize","interactable","interactingOptions","aspectRatio","equalDelta","restrictSize","allowFrom","coordinateY","rate","naturalWidth","naturalHeight","minimizedWidth","handleUpdateRequisisteField","setSignInteracting","interactListeners","unset","SIGNING","fieldRef","renderPartisipantsList","isCheckable","signerOption","changePayload","changeFontFamily","changeFieldRequirety","renderStyleSelectors","renderRequired","renderDefaultChecked","signerFieldColors","ORANGE","GREEN","TURQUOISE","BLUE","RED","LIGHT_GREEN","VIOLET","YELLOW","DARK_BLUE","DARK_VIOLET","colorIndex","useDocumentFilesGet","getConvertedDocument","useRequisitesGet","getUserRequisites","useDocumentFieldsMetaChange","setDocumentFieldsMeta","cleanDocumentFieldsMeta","flat","useDocumentDownloadUrlGet","isGettingDocumentDownloadUrl","downloadAttachment","isReady","signedUrlResponse","useEmbedSignedUrlBulkGet","pickPreviews","fieldShapes","NAME","iconType","DATE","TextIcon","CHECKBOX","CheckboxIcon","defaultSizesByFieldType","UIOverlayLoader","DocumentIcon","DocumentPage","onTap","renderAnnotationLayer","isTablet","useIsTablet","renderMode","setRenderMode","toggleIsLoading","pageRef","dropzone","enabled","overlap","ondrop","handleLoad","getOperatorList","operatorList","fnArray","fn","pdfjs","OPS","paintImageXObject","paintJpegXObject","onLoadSuccess","renderTextLayer","DocumentPreviewPage","documentPageProps","marginBottom","transformOrigin","FieldBarItem","selectedFieldType","fieldShape","onCursorMove","fieldTypeItemRef","isPointerCaptured","setIsPointerCaptured","interactableListItem","FontSizeSelect","FontFamilySelect","FieldItemOptions","partisipantOptions","onUpdate","onStartInputTyping","onStopInputTyping","validateTag","onApplyFontToEachField","isTagInvalid","setIsTagInvalid","getFieldSignerUpdateData","isDateOrText","removeCurrentField","changeCurrentFieldData","handleFieldRequiretyChange","handleFieldCheckedChange","handleFieldMinimizeWidthChange","handleTagFieldChange","tag","changeFontSize","stopFontAutoSize","handlePlaceholderChange","newPlaceholderValue","handleSignerSelect","updateData","showTagHint","handleApplyToDocumentButton","scaleOptions","ScaleDropDown","changeScale","onScale","ModalHeader","handleClose","onScaleChange","isSubmitting","onCopy","onPaste","SEND","isForm","isDisableCancelButton","redoDocumentFieldAction","undoDocumentFieldAction","NavigateIconLeft","NavigateIconRight","CopyIcon","PasteIcon","DocumentFieldPreviewItem","yScale","xScale","DocumentNavigationItem","navigateToPage","pageMeta","fieldsXScale","setFieldsXScale","fieldsYScale","setFieldsYScale","pageWidth","pageHeight","MeOptionModal","DocumentFieldActions","currentDocument","mergedMetadata","metadatas","pdfMetadata","partMetadata","v","GlobalWorkerOptions","workerSrc","version","InteractModalOld","buttonSendTitle","useDocumentFieldHistory","useGetPdfMetadataFromDocumentPart","greaterWidthMetadata","greaterWidth","pageMetadata","sizeRatio","setSelectedScale","documentFields","setDocumentScale","pagesPerDocument","setPagesPerDocument","pdfDocumentFiles","setPdfDocumentFiles","loadedPagesCount","setLoadedPagesCount","renderedPages","setRenderedPages","setSelectedFieldType","lastInteractedFieldId","setLastInteractedFieldId","focusedFieldId","setFocusedFieldId","currentFieldAction","setCurrentFieldAction","meOptionSelected","setMeOptionSelected","isFieldShapeExist","setFieldShapeExist","documentOffset","absolutePageNumber","closeMeOptionModal","openMeOptionModal","isAbleToDeleteLastInteractedField","setIsAbleDeleteLastInteractedField","unblockHistoryCallback","clipboard","setClipboard","useDocumentInteractInit","initDocumentInteract","isDocumentInteractLoading","useDocumentFieldCreate","useDocumentFieldDelete","useDocumentFieldUpdate","useDocumentFieldUpdateLocally","cancelDocumentUpdate","useDocumentUpdateCancel","useDocumentUpdate","pagesContainerRef","documentViewRef","enableResizeFont","setEnableResizeFont","lastInteractedField","lastInteractedFieldSigner","block","totalPagesCount","setConvertedDocument","pdfUrls","getFieldPageComponent","newFieldSigner","accumSigner","setFieldCreateAction","fieldData","defaultSizes","fieldPageComponent","fontStyles","newField","maxWidth","maxHeight","CREATE","setFieldUpdateAction","sizePayload","newWidth","UPDATE","addField","executeCurrentFieldAction","fieldSigner","isAllPdfFilesLoaded","pdfFile","isAllPagesRendered","recalculateDocumentFieldStyles","pagesContainerComponent","pageOffset","updatedField","handleDocumentScaleChange","nextDocumentScale","scrollTop","round","scrollIntoView","behavior","changeFieldPositionInvalidity","invalidPosition","targetFieldNode","dragEvent","handleFieldDropOnPageContainer","targetFieldId","targetDocumentField","targetFieldStyles","handleFieldDropOnPage","targetPage","fieldRect","dropzoneRect","isClone","documentView","offsetX","abs","offsetY","positioning","targetField","handleFieldBarItemCursorMove","interaction","pointerIsDown","pointerX","pointerY","ReactDOM","clone","userSelect","dragStartEvent","PointerEvent","bubbles","dispatchEvent","draggableFieldItem","onmove","listeners","ondragenter","ondragleave","handleSignerChange","handleDocumentFieldsSubmit","updateValues","handlePageTap","handlePageRendered","isPreparingInteract","percentageLoadedPages","lowScale","copyDocumentField","activeField","deleteLastInteractedField","getPagesRects","getDocumentViewCenter","documentViewRect","findPageClosestToCenter","pagesRects","pagesCenters","pageRect","center","documentViewCenter","minBy","pasteDocumentField","closestPage","pageComponent","pageCenterX","pageCenterY","COPY","handleKeydown","metaKey","ctrlKey","shiftKey","fieldShapeContainerRef","handleRemoveFieldShape","unmountComponentAtNode","handleCreateFieldShape","renderShape","clientY","clientX","handleMouseMoveWithFieldShape","handleUndoDocumentFieldAction","handleRedoDocumentFieldAction","handlePdfDocumentLoadSuccess","pdfDocumentFile","pdfDocumentProxy","pagesNumbers","numPages","getPreviousPagesCount","currentPdfDocumentFileIdx","getAbsolutePageNumber","pdfDocumentFileIdx","pdfDocumentFilesCount","zIndex","pointerEvents","handleSelectField","margin","loading","proxy","DocumentForm","form","onDocumentCreate","onTemplateSelect","isDocumentsLoading","useDocumentCreate","fileSubmitting","setFileSubmitting","isDocumentUpdating","setIsFileProcessed","useDocumentCreateByExistTemplate","isConverting","setIsConverting","useDocumentConvertionProgressWatcher","startWatchDocumentConvertionProgress","stopWatchDocumentConvertionProgress","useDocumentFileDataClean","initialDocumentFiles","fileItems","originalFileName","isUploaded","setFiles","tokenInUploading","setTokenInUploading","setShowWarning","useDocumentUpload","cancelUpload","isUploading","isDocumentContainRestrictedUrl","isTemplate","isEdit","isWithOthers","OTHERS","isSignersVisible","isMeAndOthersType","isOnlyMeType","initialType","closeInteractModal","SAVE","showInteractModal","selectableOptions","filterFormEmptyLists","getFieldState","valid","recipient","nextProgress","pages","isFilesProcessed","handleUploadCancelAll","handleUploadError","handleTemplateSelect","currentTemplate","change","storeSigners","templateSigners","mergedSigners","storedSigners","signersWithoutRole","requiredSignersCount","uploadDocumentPart","doc","uploadResponse","isLimitAttachedMailFiles","newFileItem","concat","handleFileUploadFailure","handleFilesReorder","newOrdered","reorderedDocumentParts","newOrderedItem","orderItem","handleUploadCancel","updatedDocument","documentPartId","nextUploadItem","documentPrepareValidationMeta","handleDocumentPrepare","getState","hasSubmitErrors","submit","documentButtonTitle","defaultSubmitButtonTitle","titlePlaceholder","messagePlaceholder","firstSignerIndex","signerIndex","handleFileSubmit","handleTemplateEditPrepare","handleTemplateEdit","useCompatibleSignedGetUrl","setDocumentFieldStyle","documentMetadata","useDocumentFieldStyleSet","documentItem","isDocumentUpdated","setIsDocumentUpdated","pdfUrl","setPdfUrl","printFile","usePrint","handleGetUrl","SuccessSendModal","isDisableActionPanel","useDocumentSignPrint","printPdf","isPdfLoading","useDocumentDownload","downloadDocument","isDownloadingDocument","isDownloadReady","useDocumentConvertionStatusWatcher","watchDocumentConvertionStatusCancel","isWatcherExecuting","preparer","s","navigateToDocuments","handleDocumentDownload","handleWatchDocumentConvertionStatus","CircleSuccessIcon","PrintIcon","ValidationModal","UIRadioBtn","handleCheck","isChecked","isDisabled","getSignType","SignDocument","SignAndSend","Send","getActionType","SelectActionForm","setCurrentDocumentType","isChooseActionDisabled","tooltipRef","selectedAction","setSelectedAction","extraValues","setExtraValues","handleRadioButtonClick","hasOtherSigners","confirm","minimalOrder","curr","handleMouseEnter","getElementsByClassName","innerText","SIGN_DOCUMENT","SIGN_AND_SEND","handleMouseLeave","handleSetExtraValues","Breadcrumbs","currentStep","onChooseStep","getSignAction","ReadyToSignModal","onSign","onContinue","ApplyFontTexts","InteractModal","TabTypes","documentInitialValues","wizardFormStep","onChangeWizardFormStep","disableTooltip","isDisableTooltip","isDisablePreparerSigner","setDisablePreparerSigner","availableDocumentFields","currentDocumentType","validateDocument","DocumentValidators","setValidationErrors","defaultFontFamily","setDefaultFontFamily","defaultFontSize","setDefaultFontSize","isPageRendered","mainFieldProps","setMainFieldProps","isUpdatingDocument","isDisabledForm","setDisabledForm","setUpdatedDocument","signatureRequestsSent","isFirstDocument","closeValidationModal","openValidationModal","documentValidationErrors","handleFirstStepSubmit","Event","handleSendViaEmail","handleSignNow","reorderingSigners","closeReadyToSignModal","openReadyToSignModal","handleCheckSigners","signerWithEmailDuplicate","closeApplyFontsModal","openApplyFontsModal","handleChangeDocumentType","handleTooltipSubmit","handleChooseStep","availableDocumentField","tabItems","UPLOAD_FILE","ActionStepBar","onChoose","handleStepChoose","FirstStepIcon","CheckCircle","MiddleStepIcon","LastStepIcon","ActionStepBarMobile","DayElement","from","highlighted","sunday","saturday","inRange","selectedRange","isSame","isFirst","currentMonth","lastDay","isLast","saturdayInRange","sundayInRange","topRight","bottomRight","topLeft","bottomLeft","isLeftSide","isRightSide","isBothSides","NavbarElement","onPreviousClick","onNextClick","weekdaysShort","isDate","UIDatePicker","onDateSelect","onDateRangeSelect","disabledDays","fromMonth","selectedDate","setSelectedDate","selectedDateRange","setSelectedDateRange","handleDayClick","range","DateUtils","addDayToRange","currentValue","toLocaleDateString","rangeDays","daysOfWeek","DatePickerIcon","renderDay","navbarElement","onDayClick","FieldDatePicker","diffDays","ceil","hour","getHours","minute","getMinutes","second","getSeconds","UpgradeDropdown","Billet","LockIcon","PreferencesFields","openUpgradeModal","handleBusinessPlanCheck","enableDocumentCodeAccess","enableTemplateCodeAccess","enableFormRequestCodeAccess","ReportPeriodModal","setYear","years","array","handleConfirmSelectedYear","ReportFields","useReportByEmailGet","closeSuccessModal","openSuccessModal","handleGetReportByEmail","closeReportPeriodModal","openReportPeriodModal","FinishStep","onChooseAction","isBaseOnTemplate","onUpdateFinishFields","setTitle","setMessage","setExpirationDate","isBreadcrumbsBan","handleChangeAction","handleChangeTitleOrMessage","handleChangeDateFilter","handleCancelDateFilter","isDisableExpirationDatePicker","disabledExpirationDates","SingleFileField","disableImportServices","isSomeErrorFile","HeadersSelectModal","onSignersChange","signerRows","buttonDisabled","columnIndexes","setColumnIndexes","selectableColumns","column","BulkSendFields","rowParsingLimit","columnParsingLimit","parsedFileData","setParsedFileData","parseFile","rows","handleSignersChange","closeHeadersSelectModal","showHeadersSelectModal","ValidationBulkSendModal","BulkSendForm","isShowLimitationModal","setShowLimitationModal","useAllDocumentsGet","useDocumentBulkSend","validateBulkSendValues","selectedTemplateId","setSelectedTemplateId","selectedTemplate","handleCloseLimitationModal","closeLimitationModal","openLimitationModal","bulkSendValues","handleGetAllDocuments","withTeammateTemplates","renderProps","UploadFileStep","setTabType","isEditMode","isCleaning","setTabIndex","isDisabledTabs","setDisabledTabs","isFilesComplete","showTabContent","handleSetTab","inactive","WizardSignFormValues","setDocumentId","isTemplatesLoading","handleSetTabType","handleSubmitForm","isUploadedFile","getFinalStepButtonTitle","formattedInitialValues","isSendingDocument","handleChooseActionStep","handleUpdateDocument","setFirstCurrentStep","useDocumentUpdateByExistTemplate","handleSetSelectedTemplate","fullscreen","WizardSignForm","initialStep","setCurrentStep","setIsBreadcrumbsBan","isTemplateNotEdited","setIsTemplateNotEdited","useDocumentSendOut","useAllTemplatesGet","cancelAllTemplatesLoading","useAllTemplatesGetCancel","isDisableInteractTooltip","disableInteractTooltip","handleGetAllTemplates","mergeSigners","documentSigners","restDocument","handleCloseModal","scopedDocument","handleOpenInteract","getSignersMinLength","Dashboard","useLocation","useWootricSurvey","useDocumentGuard","successRequired","UpgradeModal","onUpgradeClick","TemplateUpgradeModal","OnlyOthers","debounce","func","DebounceInput","setValue","handleChangeValue","UIMultiSelect","SignatureRequestStatuses","filterOption","closeMenuOnSelect","isMulti","classNamePrefix","components","DropdownIndicator","innerProps","ClearIndicator","IndicatorSeparator","unstyled","FolderTypes","SignatureRequestStatuseLabels","awaiting_others","awaiting_you","completed","declined","expired","searchTypeOptions","SIGNERS","CREATORS","statusFilterOptions","signatureRequestStatusFilterOptions","DocumentSearch","changeDocumentNameFilter","handleChangeFilterStatus","setSearchType","selectedDates","searchType","isSignatureRequestPage","setSignatureRequestStatus","hideElements","handleMultiSelectOnChange","useTeamMembersGet","teamMemberValues","setTeamMemberValues","handleGetTeamMembersOptions","inputValue","ShareModal","isCopied","setIsCopied","shareUrl","setShareUrl","useDocumentShareUrlGet","isGettingShareUrl","useDocumentShare","handleShareUrlCopy","navigator","writeText","IconCopy","SignerItemLabel","ReminderModal","isSignersOrdered","useRemindersSend","useSignerAvatars","orderedSigners","firstUnfinishedSigner","isDeclined","useSelectableItem","selectableSigners","toggleSignerSelection","selectedSigners","hideUpgradeModal","showUpgradeModal","selectedSignersIds","QUOTA_EXCEEDED","selectableSigner","SigningLinkModal","useSigningUrlGet","signingUrls","setSigningUrls","handleCopyInClipboard","signingUrl","useSigningUrl","CopyClipboardIcon","EditableTitle","documentTitle","DropDownSigners","IconArrowCircle","IconCancel","DocumentItemMobileView","isActiveEditForm","chunkIndex","resultActivitiesPdfFileKey","DocumentItem","onDeleteDocument","onUpdateDocument","openMoveToFolderModal","setSelectedEntitiesIds","setRenamingDocumentId","isSetRenamingDocumentId","useDocumentToggleNotification","toggleDocumentNotification","useDocumentRevert","isReverting","DocumentSeparatedFileKeyExtractor","documentSeparatedFileKeyExtractorForDocument","documentSeparatedFileKeyExtractorForDocumentActivities","useDownloadFiles","downloadSeparatedDocument","remindableSigners","filteredSigners","handleClickDocumentRename","navigateToPreview","HistoryService","closeShareModal","openShareModal","closeReminderModal","openReminderModal","closeSigningLinkModal","openSigningLinkModal","navigateToDocumentEdit","closeRevertModal","openRevertModal","handleEditAndResend","handleCopyCodeAccess","handleChangeNotificationStatus","handleDownload","handleSeparatedDocumentDownload","handleMoveToClick","isHiddenDocumentOwnerOption","isHiddenTeamOption","isHiddenDeleteButton","isHiddenDeclinedDocumentOption","DECLINED","IconPencil","IconEye","IconFolder","IconShare","IconDocWithPencil","EXPIRED","IconActivity","NotificationIcon","DeleteIcon","SEPARATED","IconDocument","ActivityIcon","GridActionTypes","getItemsTypeByFolderType","DOCUMENT","DeleteFolderModal","folderType","useFolderInfoGet","foldersCount","documentsCount","FolderItemMobileView","handleOpenFolder","handleUpdateFolder","permissions","PermanentlyDeleteFolderModal","FolderItem","onUpdateFolder","onDeleteFolder","openChangePermissionsModal","setRenamingFolderId","isSetRenamingFolderId","isNotSignatureRequestFolder","handleClickFolderRename","handleUpdatePermissionsClick","daysRemaining","deletedDate","setDate","CreateFolderModal","FolderPermissionsMemberItem","member","ChangePermissionsModal","parentPermissions","isCheckboxDisabled","memberIds","permission","MoveToFolderModal","setSelectedFolder","selectedFolder","openCreateFolderModal","selectedEntitiesIds","initialFolderId","initialOpenedFolders","foldersType","showWarning","useFoldersGet","getFolders","availableFolders","openedFolders","setOpenedFolders","isFoldersListDisplayed","setFoldersListDisplayed","foldersArray","o","SkipDotsIcon","IconCreateFolder","GridEmptyTableType","MOVE_TO","GridActionsDropdown","GridPath","isHiddenFoldersDisplayed","setHiddenFolderDisplayed","renderHiddenFolders","hiddenFolders","firstFolder","lastFolder","templateTitle","TemplateItemMobileView","handleUpdateTemplate","TemplateItem","onDeleteTemplate","onTemplateCopy","onUpdateTemplate","setRenamingTemplateId","isSetRenamingTemplateId","useTemplateAddToApi","useTemplateRemoveFromApi","closeUpgradeModal","apiTemplatesCount","commonTemplatesCount","handleClickRenameTemplate","navigateToTemplateEdit","templateLimit","handleTemplateCopy","handleDelete","closeTemplateCopyModal","openTemplateCopyModal","PencilIcon","ApiTemplateUpgradeModal","LTD_API_PLAN","closeApiUpgradeModal","openApiUpgradeModal","useUpgradeModal","useApiUpgradeModal","EmptySignatureRequestsTable","EmptyTrashTable","GridEmptyTable","isSetSearchFilter","handlePathnameInclude","emptyTableType","templateType","useTemplateCreate","handleTemplateCreateClick","emptyTemplatesTableProps","emptyDocumentsTableProps","emptySignatureRequestsTableProps","emptyTrashTableProps","SignatureRequestItemMobileView","SignatureRequestItem","onDeleteSignatureRequest","signDocument","handleSignatureRequestDelete","AWAITING_YOU","TrashItemMobileView","TrashItem","remainingDays","GridMobile","grids","openFolderPermissionsModal","handleFolderDelete","setGridToChangePermission","rootFolderName","setRenamingItemId","renamingItemId","isTrash","onEmptyTrash","FOLDER","entitiesIds","DocumentItemActions","FolderItemActions","TemplateItemActions","SignatureRequestItemActions","TrashItemActions","defaultPaginationProps","Grid","handleGetGrid","setFolderId","useFolderChangePermissions","isLoadingChangePermissions","useFolderCreate","isLoadingCreateFolder","useFolderUpdate","useFoldersDelete","deleteFolder","useGridItemsUpdate","updateGridItems","useDocumentDelete","useSignatureRequestDelete","useDocumentCopy","copyTemplate","gridToChangePermission","setIsShowWarning","allSelected","setAllSelected","isAllSelectedChecked","useGridItemsMoveToTrash","moveToTrash","useTrashEmpty","isSignatureRequest","getFolderType","handleCreateFolder","parentId","permanently","signatureRequestId","hideCreateFolderModal","showCreateFolderModal","handlePermissionsUpdate","hideChangePermissionsModal","showChangePermissionsModal","orderingKey","orderingDirection","handleMoveTo","hideMoveToFolderModal","showMoveToFolderModal","dropdownOptions","handleSelectGridItem","handleSelectAll","gridIds","isAllToggledAlready","handleEmptyTrash","hideEmptyTrashModal","showEmptyTrashModal","trash","DownloadModal","DocumentFileKeyExtractor","documentFileKeyExtractorForGrid","documentSeparatedFileKeyExtractor","DocumentActivitiesFileKeyExtractor","documentActivitiesFileKeyExtractor","initialChunks","chunk","chunks","setChunks","downloadDocuments","wait","filesInfoArray","filesCounter","chunkCounter","filesInfoChunk","useBulkDownloadFiles","percentageInput","percentage","gridItem","validStatuses","voidedStatuses","DocumentsScreen","useGridGet","isFetching","usePagination","setSelectedDates","selectedShowType","useDataOrdering","selectableGridItems","documentNameFilter","setDocumentNameFilter","closeExtraDownloadModal","showExtraDownloadModal","closeExtraDownloadConfirmModal","showExtraDownloadConfirmModal","handleDownloads","VOIDED","currentStatus","limit","searchTerm","dateFrom","dateTo","showType","deleted","handleDeleteGrids","renderDeleteModalMessage","UnlinkRemindersPage","useAccessTokenInit","useSigningRemindersUnlink","unlinkReminders","navigateToRoot","handleUnlinkReminders","validSignatureRequestStatuses","AWAITING_OTHERS","SIGNED","SignatureRequestsScreen","useGridForSignatureRequestsGet","useGridItemsDelete","deleteGrids","signatureRequestStatus","String","handleSetSignatureRequestStatus","TemplatesScreen","useApiSubscriptionGet","isApiSubscriptionLoading","templateNameFilter","setTemplateNameFilter","changeTemplateNameFilter","statuses","TemplateForm","useTemplateActivate","useTemplateMerge","isReplica","navigateToTemplates","isApiTemplate","keepDirtyOnReinitialize","TemplateCreate","TemplateEdit","useTemplateReplicate","isReplicateLoading","setTemplateId","sourceTemplate","handleTemplateCheckFailure","handleTemplateCheckSuccess","updatingTemplate","restTemplate","LogoPreviewModal","onCloseModal","logoUrl","logoFile","fileDataUrl","setFileDataUrl","companyOwnerAvatar","companyOwnerEmail","companyOwnerName","companyOwnerInitials","loadImage","fr","FileReader","onloadend","readAsDataURL","backgroundImage","LogoField","companyLogoName","isCropCancelled","hidePreviewModal","showPreviewModal","handlePreviewClick","beforeInjection","svg","CropModal","setImageUrl","cropper","setCropper","handleSaveCroppedImage","resultFile","getCroppedCanvas","minHeight","zoomable","guides","onInitialized","instance","BrandingFieldsMobileView","isLogoProcessed","companyLogoFormValue","isPageFieldEnabled","formatOnBlur","BrandingFields","isDropdownOpen","setIsDropdownOpen","setLogoFile","initialRedirectionPage","setIsPageFieldEnabled","setIsLogoProcessed","logo","setLogo","setIsCropCancelled","handleCloseDropdown","handleUploadLogo","logoId","closeCropModal","openCropModal","CompanyPage","initialCompanyData","useCompanyInfoUpdate","isUpdateLoading","useSignedPutAssetUrl","useCompanyLogoPut","PhoneVerificationFieldMobileView","handleVerify","sitekey","PhoneVerificationField","onNumberSend","NotificationsFields","AvatarField","isHasAvatarUrl","fileUploader","ChangeEmailFields","isFieldDisabled","emailValue","isAppSumo","captchaKey","setCaptchaKey","closeSupportModal","showSupportModal","lock","emailValidator","ChangeEmailForm","isUser","useEmailUpdate","isEmailUpdating","handleUpdateEmail","PersonalFieldsMobileView","isReadOnlyField","setReadOnlyField","handleAvatarDelete","isAvatarUploading","PersonalFields","useAvatarPut","avatar","setAvatar","handleAvatarUploadCancel","handleAvatarUpload","avatarId","timezones","dateFormatOptions","DeletionSteps","CodeScopeType","DeleteAccountModal","onDeleteAccount","handleDowngradeToFreePlan","handleDeleteAccount","isTeammate","deletePlanTypes","getDeleteAccountModalTitle","isCanceled","endPeriodDate","TwoFactorForm","formClassName","imageSrc","TWILLIO","PhoneVerificationUnsubscribe","phoneNumber","handleDisablingCodeGenerate","DISABLE","Profile","setQrCode","disable","isDisableLoading","enable","isEnableLoading","verify","isVerifyLoading","useTwillio2fa","isTwillioLoading","useGoogleAuthenticator","isGoogleAuthenticatorLoading","phoneToVerify","setPhoneToVerify","useAccountDelete","profileInitialValues","isTwillio2fa","isGoogle2fa","handlAccounteDelete","restValues","closeVerifyModal","phoneCode","showVerifyModal","closeGoogleAuthenticatorModal","GOOGLE","showGoogleAuthenticatorModal","handleGoogleAuthenticator","fileURL","VERIFY","ApiKeyCreateContent","onApiKeyGenerate","useApiKeyCreate","ApiKeyShowContent","handleApKeyCopy","ApiKeyModal","onSuccessGenerate","setApiKey","handleApiKeySuccessGenerate","ApiKeyItemMobile","prefix","requests","ApiKeyItem","onDeleteSuccess","useApiKeyRevoke","useApiKeyDelete","useApiKeyRecover","CrossInCircle","ApiKeysList","RequestTypes","onApiKeyDelete","ApiIcon","RadioButton","DurationSwitcher","discountText","ApiPlanCard","requestsUsed","testRequestsMonthlyUsed","templatesUsed","isCurrent","presentRequestUsage","presentTestRequestUsage","presentTemplateUsage","handleRenew","isRecuringStoped","isTitaniumCustom","contentItem","CardForm","disableButton","isGettingCard","useSetupCheckoutCreate","createCheckout","isCreatingCheckout","useNewTabOpen","openNewTab","handleCardGet","handleCardCreate","checkoutUrl","filled","ArrowButton","orientation","settings","dots","infinite","speed","slidesToShow","slidesToScroll","arrowsSettings","nextArrow","prevArrow","Slider","hideArrows","sliderSettings","ApiPlansSection","useInvoicesGet","isInvoicesLoading","useApiPlanChange","isApiPlanChanging","userApiSubscription","userApiPlan","isLtd","isAppSumoOrFree","currentPlanItems","userApiPlanPriority","handleInvoicesGet","types","hideChangePlanModal","showChangeApiPlanModal","handleUpgradeApiPlanClick","requestLimit","requestsMonthlyUsed","templatesCount","useApiKeysGet","isApiKeysLoading","isGettingApiDataLoading","handleGetApiKeys","handleGetApiKeysFromFirstPage","closeGenerateApiKeyModal","openGenerateApiKeyModal","SignatureItem","signatureItem","closeRequisiteModal","showEditModal","SignaturePage","signatures","handleGetRequisites","showRequisiteModal","signature","requestTypeDescription","SIGN_REQUEST","GET_RECENT_DOCUMENT","WEBHOOK_SUBSCRIBE","WEBHOOK_UNSUBSCRIBE","GET_DOCUMENTS","GET_DOCUMENT_SIGNERS","GET_USER","RequestHistoryItemItem","requestHistoryItem","RequestHistoryList","RequestHistoryTableItem","RequestHistory","useRequestHistoryGet","isRequestHistoryLoading","handleGetRequestHistory","LtdDowngradePlanModal","SubscriptionInfoBlock","pastDue","isFreezed","assignedTeamMembers","additionalTeamMembers","AppSumoDowngradePlanModal","hideAppSumoDowngradePlanModal","showAppSumoDowngradePlanModal","showAppSumoModalByDuration","isSubscribed","totalDiscount","billingDurationType","totalDurationType","getUpdateButtonTitle","getAppSumoUpdateButtonTitle","getNextInvoiceTitle","PastDueForm","useChargeRetry","isRetryingCharge","handleRetryCharge","BillingMainScreen","usePlansGet","isChangingPlan","isGettingSubscriptionData","useBillingPortalCreate","isCreatingBillingPortal","urlParams","paramStr","success_payment","handleSubscriptionCancel","DEFAULT","LTD","hideSubscriptionCancelModal","showSubscriptionCancelModal","handleOpenBillingPortal","SubscriptionInfoBlockMobile","AppSumoActiveScreen","LifeTimeDealScreen","useLtdTiersGet","isGettingLtdTiers","setCurrentDisplayedTier","setTiers","bulkSendLimit","formsLimit","handleUpgradeTier","newTierId","tierId","BillingPlan","documentActivityContentByType","CreatedIcon","UpdatedIcon","SendIcon","VIEW","ViewIcon","COMPLETE","CompleteIcon","REVERT","RevertedIcon","DECLINE","DeclinedIcon","EXPIRE","ExpiredIcon","NOT_SIGN","DocumentActivityItem","documentActivity","sourceIP","HeaderButton","DocumentActivityListMobileView","isLoadingDocumentActivities","canDownloadActivities","handleDocumentActivitiesDownload","DocumentActivityItemMobile","DocumentActivityList","isDocumentCompleted","useDocumentActivitiesGet","setDocumentActivities","isDownloadingEnable","activities","targetId","targetElement","inline","useDocumentActivitiesDownloadUrlGet","isGettingDocumentActivitiesDownloadUrl","useDocumentSeparateDownloadUrlGet","isGettingSeparateDocumentDownloadUrl","sizes","DocumentPreview","documentFileKeyExtractorForDocument","isDownloadEnable","isPrintEnable","useDocumentSeparateSign","useDocumentSeparateDownload","downloadSeparateDocument","useDocumentActivitiesSeparateSign","isSigningSeparateDocumentActivities","useDocumentActivitiesDownload","downloadDocumentActivities","documentFileKey","Blob","useDocumentPrint","isDocumentInteractInitializing","setPages","countOfPages","mainRef","getPdfMetadata","pdfMeta","isDownloadActivitiesEnable","contentWidth","setPagesInLoadingCount","setOffset","scaleCoefficient","setScaleCoefficient","handleDocumentNotFound","handleSeparateDocumentDownload","handleGetConvertedDocument","calculateDocumentFieldStyles","handlePdfLoadSuccess","fileUrl","initialDocumentWidth","externalLinkTarget","pageIndex","TeamScreenMobileView","isBusiness","onAddTeamMember","TeamScreen","isFetchLoading","selectableTeamMembers","InviteAcceptPage","useInviteAccepting","useTeamJoin","parsedToken","jwt_decode","sub","ForbiddenAccessTable","sidebarItems","subLinks","subPath","freePlanSubPath","externalUrl","Sidebar","isExpanded","isSubLinks","expanded","titleClassName","expandedClassName","SidebarSubLayout","DocumentPreviewSubLayout","ScrollToTop","scrollTo","uetq","event_category","event_label","firePageChangeEvent","page_path","PageTracker","Bing","ShareFormModal","subtitle","SubmittedContractsMobileView","contract","IconKey","SubmittedContractsModal","useFormRequestGetContracts","isGettingContracts","useDocumentsDelete","deleteDocumentId","setDeleteDocumentId","handleDeleteDocuments","FormRequestItemMobile","setIsEditFormActive","FormRequestItem","handleGetForms","useFormRequestDisable","useFormRequestEnable","deleteForm","handleDisableForm","handleEnableForm","closeRegisteredUsersModal","openRegisteredUsersModal","handleDeleteForm","IconUser","IconPause","IconPlay","RemovePencil","FormRequestsMobile","handleFormDelete","FromRequests","FormRequestsScreen","useFormRequestsGet","deleteTemplates","forms","selectableTemplates","handleDeleteTemplates","formIds","handleGetTemplates","isAvailablePlan","FormRequests","onTemplateCreateClick","FormRequestForm","FormRequestCreate","FormRequestEdit","formRequestId","Upsell","isPlanUpselling","isCheckingUpsellAllowed","handleUpsell","handleUpsellAllowedCheck","customRedirectionMap","CustomRedirect","isAuth","redirectRoute","pathName","route","customRedirectionPath","TrashScreen","TrialGetWrapper","features","PlanSection","feature","planTitles","CouponDropDown","onSetOpen","BillingInfo","isAttachingCard","isOpenCouponDropDown","setOpenCouponDropDown","trial","handleSetOpenCouponDropDown","base","openDropDown","HoverTooltip","advancedFormat","steps","checkIcon","unlockIcon","bellIcon","tooltipInfo","tooltipPosition","starIcon","Step","isLastStep","isFirstStep","AlertIcon","TrialInfo","PostBillingInfo","isCurrentCardFlow","setIsCurrentCardFlow","navigateToBilling","showCurrentCardBlock","showNewCardBlock","SecondStepInfo","Tab","tubNumber","isNextTab","tabs","Tabs","tab","TrialGetPage","LTDActivateCodeForm","fieldClassName","submitButtonClassName","TierInfo","billetText","billetClassName","needPricing","PaypalButton","paypal","Buttons","driver","PaymenBlock","openStripeCheckout","createPaypalOrder","approvePaypalPayment","paymentButtonText","footerContainerClassName","policyClassName","shape","outerHeight","createOrder","onApprove","RedeemCodeModal","LifeTimeDealActivateCode","useLtdCodeValidate","isValidateLtdCode","useLtdCodeRedeem","isRedeemLtdCode","ltdCode","setLtdCode","setTier","handleRedeemCode","closeRedeemCodeModal","openRedeemCodeModal","handleCheckCode","LifeTimeDealUpgrade","usePaymentCheckoutUpgrade","isUpgradeLtdPaymentCheckout","usePaypalOrderCapture","showCheckoutButton","setShowCheckoutButton","checkoutResponse","setCheckoutResponse","handleOpenStripeCheckout","stripeCheckoutUrl","handleOpenPaypalCheckout","paypalOrderId","handleGetUpgradeCheckout","successUrl","cancelUrl","currentTier","newTier","PaymentBlock","LifeTimeDealSuccessPaymentPage","handleReloadPage","reloadCount","reload","LifeTimeDealWrapper","TrialSuccess","useShowTrialSuccessPageClear","AuthorizedRoutes","isOwner","isAdmin","useGoogleClientIdUpdate","upvoty","publicKey","init","useUpvotySurvey","BaseRoutes","LifeTimeDealSuccessUpgradePage","exact","Sign","Trash","SignatureRequests","Documents","Templates","TeamPages","Settings","GuestWrapper","isShowFooter","isShowHeaderBorder","LogoMobile","ResetForm","CheckInbox","ForgotPassword","isSubmitted","toggleIsSubmitted","usePasswordChangeEmailSend","GoogleLoginForm","setInitializationSuccess","handleSuccess","parseToken","credential","gisRenderButton","useGoogleLoginRenderButton","details","theme","data-context","data-auto_select","SignUpForm","TestimonialsViewMode","onSignInClick","needGoogleAuth","navigateToSignIn","BuyNowView","SignUpView","TestimonialItem","viewMode","SIGNUP","buynow","signup","testimonials","LeeIcon","MahaIcon","QuinnIcon","LulianIcon","SignUpFirstStep","isFreeSignUp","useSignUp","callSignUp","signUpConversionSet","useSignUpConversionSet","free","confirmationRequired","isNewUser","Helmet","testimonial","LoginForm","onSignUpClick","navigateToSignUp","Login","usePrimarySignIn","callSignIn","referralTracking","$FPROM","trackSignup","uid","customerId","ChangePassword","ModalType","usePasswordChangeToken","setToken","clearToken","usePasswordChange","LandingDocumentForm","useCompanyInfoGet","useSignUpTemporary","handleGetUserInfo","LandingSetTitleForm","TermsModal","documentName","isConfirmLoading","SigningButtonMobile","sortFieldPredicate","firstField","secondField","pageDiff","DocumentSignView","isAutoUpdated","setIsAutoUpdated","pagesInLoadingCount","currentFieldId","setCurrentFieldId","nextStepButtonTitle","setNextStepButtonTitle","useSubmitSignedDocument","submitDocument","isSubmitLoading","handleDocumentFieldUpdate","useDocumentSignInit","initDocument","isInitializingDocument","pagesIsLoaded","contentRef","pageStyle","requiredUnsignedFields","requiredUnsignedFieldsCount","handleFocusNextField","currentIndex","handleTabKeydown","handleSubmitDocument","hideTermsModal","showTermsModal","hideTestModeModal","showTestModeModal","handleDocumentInit","documentPdf","testMode","decreasePagesInLoadingCount","PreviewDocumentSide","onClickDownload","onClickPrint","SignUpSide","SignUpModal","LoginModal","DocumentSignModal","isAuthorizedUser","dataString","JSON","parseJwtToken","modalType","setModalType","handleCloseSignUp","isSignUpClose","DocumentSigningView","declineImmediately","signerDocument","setSignerDocument","useSignerDocumentGet","useCodeAccessSend","isCodeSending","useSignatoryOpenedSend","useDeclineSigningRequest","isDeclineLoading","closeSuccessfulSignModal","openSuccessfulSignModal","closeSuccessfulDeclineModal","openSuccessfulDeclineModal","closeCodeConfirmationModal","isSending","sendCode","openCodeConfirmationModal","hideDeclineConfirmModal","showDeclineConfirmModal","isNeedCodeAccess","Sentry","extra","SignerOptionItem","SignerSelectModal","signerOptions","onSignerSelect","selectedSigner","setSelectedSigner","handleConfirmSelection","ConfirmCodeModal","resendCode","codeLength","setCodeAccess","handleCodeAccessChange","handleResendCode","DocumentDeclineModal","IconDeclined","documentStatusOptions","unavailable","DocumentUnavailableIcon","actionButtonText","awaiting","DocumentSignedIcon","unauthorized","DocumentCompletedSigningIcon","renderByAuth","stringOrObject","DocumentStatus","documentStatusOption","handleActionButtonClick","LandingSignUpForm","setFormValues","useTemporaryPlanChange","useSignUpFromTemporary","isPreparing","useConfirmTemporary","isConfirmingTemporary","navigateToConfirmPage","handleStartTrial","confirmCodeSend","LandingConfirmPage","onFinish","handleDownloadNow","NOW","handleDownloadLater","LATER","LandingSignUpThanks","paragraph_1","paragraph_2","redirectPath","postText","SignaturelyLogo","LandingSignUp","StepType","LandingSignDocument","setStepType","LandingSignUpWrapper","stepType","LandingSignUpConfirm","TwoFactor","useTwillioSignIn","callSignInTwillio","useGoogleAuthenticatorSignIn","callSignInGoogleAuthenticator","AboutDashboardItem","desc","dashboardItems","CollaborationIcon","TimeSaveIcon","LegalIcon","ReminderIcon","ManagementIcon","PaperlessIcon","AboutSignaturely","SignUpConfirm","useSendEmailConfirmation","SignUpConfirmImg","buynowPathRegEx","BuyNow","useSignUpWithPlanPrepare","prepareSignUp","useSignUpWithConfrimCode","sendConfrimCode","setUser","selectedDuration","setSelectedDuration","planPaths","handleConfirmCodeSend","sendConfirmCode","openCheckoutSession","business","Check","Leaf","BUYNOW","TierOptions","selectedOptions","ltdAdditionalOptions","getOptionValue","FeedbackBadge","PrimeClubIcon","TierSection","lifeTimeDealPathRegEx","LifeTimeDeal","usePaymentCheckoutCreate","isCreatingLtdPaymentCheckout","TiersSelectorItem","isPopularTier","popular","TiersSelectorItemMobile","learnMore","setLearnMore","LifeTimeDealSelectMobile","ltdTiers","setCurrentLtd","LifeTimeDealSelect","setLtdTiers","firstTier","LifeTimeDealSignUp","useLtdSignUp","UnauthorizedRoutes","SignUp","SignUpSecondStepWrapper","SignUpSecondStep","ActivateTrialRoutes","DocumentActivitiesDownload","BaseInteractModal","enableFullscreen","getPdfPageMeta","handleDefaultFontSizeChange","handleDefaultFontFamilyChange","recalculateFieldStyle","EmbedInteractModal","useEmbedDocumentUpdate","cancelEmbedDocumentUpdate","useEmbedDocumentUpdateCancel","useEmbedDocumentGet","useEmbedDocumentSendOut","sendEmbedDocument","finishEmbedDocumenToken","useEmbedDocumentTokenInit","removeEmbedDocumentToken","useEmbedDocumentFieldCreate","useEmbedDocumentFieldDelete","useEmbedDocumentFieldUpdate","useEmbedDocumentFieldHistory","redoEmbedDocumentFieldAction","undoEmbedDocumentFieldAction","useEmbedDocumentFilesGet","useEmbedDocumentInteractInit","initEmbedDocumentInteract","isEmbedDocumentInteractLoading","setCurrentDocument","handleUpdateEmbedDocument","handleCreateEmbedDocumentField","handleDeleteEmbedDocumentField","handleUpdateEmbedDocumentField","handleUndoEmbedDocumentFieldAction","handleRedoEmbedDocumentFieldAction","handleCancelEmbedDocumentUpdate","handleInitDocumentInteract","paylaod","handleSetToken","handleEmbedInteractInitialize","ThanksMessage","companyLogo","FormRequestShow","useFormRequestGet","useDocumentCreateFromFormRequest","thanksMessage","setThanksMessage","shareLink","useFormRequestGuard","DocumentDownload","documentByHash","setDocumentByHash","useGetDocumentByHash","isDownloadingDocuments","InvoiceDownload","useGetInvoiceDownloadLink","ConfirmEmail","useEmailConfirmToken","useConfirmEmail","useConfirmEmailByTwilio","isConfirmByTwilioLoading","redirect","targetEmail","redirectUrl","handleConfirmContinue","isSubscriptionRecover","closeTwoFactorModal","showTwoFactorModal","DocumentSign","signingDocument","setSigningDocument","currentSigner","setCurrentSigner","signerOptionsRef","useDocumentSigning","useSigningDocumentGet","isGettingSigningDocument","closeSignerOptionModal","openSignerOptionModal","isCurrentSignerUserAuthorized","isAuthorized","owner","AppSumoThanks","PlusLogo","AppSumoLogo","LoadingUserScreen","useAppSumoSignIn","appSumoToken","AppRouter","setIsLoading","stripePromise","loadStripe","locale","App","Modal","setAppElement","closeButton","IconClose","autoClose","draggablePercent","newestOnTop","dsn","tracesSampleRate","sampleRate","environment","BrowserTracing","release"],"mappings":"4GAAAA,EAAOC,QAAU,IAA0B,yC,2BCA3CD,EAAOC,QAAU,IAA0B,0C,mBCA3CD,EAAOC,QAAU,IAA0B,kC,mBCA3CD,EAAOC,QAAU,IAA0B,+C,mBCA3CD,EAAOC,QAAU,IAA0B,wC,gBCA3CD,EAAOC,QAAU,IAA0B,2C,gBCA3CD,EAAOC,QAAU,IAA0B,sC,iBCA3CD,EAAOC,QAAU,IAA0B,4C,kBCA3CD,EAAOC,QAAU,IAA0B,kC,kBCA3CD,EAAOC,QAAU,IAA0B,uC,gBCA3CD,EAAOC,QAAU,IAA0B,uC,gBCA3CD,EAAOC,QAAU,IAA0B,oC,kBCA3CD,EAAOC,QAAU,IAA0B,2C,sBCA3CD,EAAOC,QAAU,IAA0B,0C,iBCA3CD,EAAOC,QAAU,IAA0B,4C,gBCA3CD,EAAOC,QAAU,IAA0B,kC,gBCA3CD,EAAOC,QAAU,IAA0B,sC,kBCA3CD,EAAOC,QAAU,IAA0B,+C,oBCA3CD,EAAOC,QAAU,IAA0B,yC,mBCA3CD,EAAOC,QAAU,IAA0B,6C,mBCA3CD,EAAOC,QAAU,IAA0B,uC,gBCA3CD,EAAOC,QAAU,IAA0B,oC,gBCA3CD,EAAOC,QAAU,IAA0B,+C,iBCA3CD,EAAOC,QAAU,IAA0B,2C,mBCA3CD,EAAOC,QAAU,IAA0B,uC,gBCA3CD,EAAOC,QAAU,IAA0B,0C,0BCA3CD,EAAOC,QAAU,IAA0B,4C,0BCA3CD,EAAOC,QAAU,IAA0B,0C,gBCA3CD,EAAOC,QAAU,IAA0B,0C,kBCA3CD,EAAOC,QAAU,IAA0B,oC,gBCA3CD,EAAOC,QAAU,IAA0B,wC,gBCA3CD,EAAOC,QAAU,IAA0B,wC,gBCA3CD,EAAOC,QAAU,IAA0B,wC,kBCA3CD,EAAOC,QAAU,IAA0B,8C,6CCA3CD,EAAOC,QAAU,IAA0B,yC,gBCA3CD,EAAOC,QAAU,IAA0B,uC,gBCA3CD,EAAOC,QAAU,IAA0B,2C,gBCA3CD,EAAOC,QAAU,IAA0B,wC,gBCA3CD,EAAOC,QAAU,IAA0B,6C,gBCA3CD,EAAOC,QAAU,IAA0B,qC,iBCA3CD,EAAOC,QAAU,IAA0B,qC,gBCA3CD,EAAOC,QAAU,IAA0B,uC,gBCA3CD,EAAOC,QAAU,IAA0B,uC,gBCA3CD,EAAOC,QAAU,IAA0B,6C,gBCA3CD,EAAOC,QAAU,IAA0B,8C,gBCA3CD,EAAOC,QAAU,IAA0B,+C,gBCA3CD,EAAOC,QAAU,IAA0B,sC,gBCA3CD,EAAOC,QAAU,IAA0B,sC,gBCA3CD,EAAOC,QAAU,IAA0B,mC,mBCA3CD,EAAOC,QAAU,IAA0B,0C,+BCA3CD,EAAOC,QAAU,IAA0B,yC,iBCA3CD,EAAOC,QAAU,IAA0B,6C,gBCA3CD,EAAOC,QAAU,IAA0B,2C,8JCA3CD,EAAOC,QAAU,IAA0B,uC,gBCA3CD,EAAOC,QAAU,IAA0B,2C,gBCA3CD,EAAOC,QAAU,IAA0B,kC,gBCA3CD,EAAOC,QAAU,IAA0B,4C,gBCA3CD,EAAOC,QAAU,IAA0B,6C,iBCA3CD,EAAOC,QAAU,IAA0B,mC,gBCA3CD,EAAOC,QAAU,IAA0B,0C,gBCA3CD,EAAOC,QAAU,IAA0B,iC,gBCA3CD,EAAOC,QAAU,IAA0B,yC,gBCA3CD,EAAOC,QAAU,IAA0B,sC,gBCA3CD,EAAOC,QAAU,IAA0B,4C,kBCA3CD,EAAOC,QAAU,IAA0B,+C,gBCA3CD,EAAOC,QAAU,IAA0B,2C,gBCA3CD,EAAOC,QAAU,IAA0B,4C,gBCA3CD,EAAOC,QAAU,IAA0B,sC,gBCA3CD,EAAOC,QAAU,IAA0B,qC,gBCA3CD,EAAOC,QAAU,IAA0B,0C,gBCA3CD,EAAOC,QAAU,IAA0B,uC,gBCA3CD,EAAOC,QAAU,IAA0B,iC,kBCA3CD,EAAOC,QAAU,IAA0B,qD,gBCA3CD,EAAOC,QAAU,IAA0B,uC,gBCA3CD,EAAOC,QAAU,IAA0B,2C,gBCA3CD,EAAOC,QAAU,IAA0B,sC,gBCA3CD,EAAOC,QAAU,IAA0B,gD,gBCA3CD,EAAOC,QAAU,IAA0B,iD,gBCA3CD,EAAOC,QAAU,IAA0B,wC,gBCA3CD,EAAOC,QAAU,IAA0B,wC,gBCA3CD,EAAOC,QAAU,IAA0B,+C,gBCA3CD,EAAOC,QAAU,IAA0B,gD,gBCA3CD,EAAOC,QAAU,IAA0B,uC,oBCA3CD,EAAOC,QAAU,IAA0B,0C,gBCA3CD,EAAOC,QAAU,IAA0B,0C,gBCA3CD,EAAOC,QAAU,IA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cAOAC,K,uCAAAA,E,uCAAAA,E,uCAAAA,E,sCAAAA,Q,cAOAC,K,oDAAAA,E,oDAAAA,E,oDAAAA,E,mDAAAA,Q,cAOAC,K,0CAAAA,E,0CAAAA,E,0CAAAA,E,yCAAAA,Q,cAOAC,K,0CAAAA,E,0CAAAA,E,0CAAAA,E,yCAAAA,Q,cAOAC,K,yCAAAA,E,yCAAAA,E,yCAAAA,E,wCAAAA,Q,cAOAC,K,+BAAAA,E,+BAAAA,E,+BAAAA,E,8BAAAA,Q,cAOAC,K,yCAAAA,E,yCAAAA,E,yCAAAA,E,wCAAAA,Q,cAOAC,K,8CAAAA,E,8CAAAA,E,8CAAAA,E,6CAAAA,Q,cAOAC,K,yCAAAA,E,yCAAAA,E,yCAAAA,E,wCAAAA,Q,cAOAC,K,mCAAAA,E,mCAAAA,E,mCAAAA,E,kCAAAA,Q,cAOAC,K,0CAAAA,E,0CAAAA,E,0CAAAA,E,yCAAAA,Q,cAOAC,K,qDAAAA,E,qDAAAA,E,qDAAAA,E,oDAAAA,Q,cAOAC,K,+CAAAA,E,+CAAAA,E,+CAAAA,E,8CAAAA,Q,cAOAC,K,+CAAAA,E,+CAAAA,E,+CAAAA,E,8CAAAA,Q,cAOAC,K,mDAAAA,E,mDAAAA,E,mDAAAA,E,kDAAAA,Q,cAOAC,K,0CAAAA,E,0CAAAA,E,0CAAAA,E,yCAAAA,Q,cAOAC,K,gDAAAA,E,gDAAAA,E,gDAAAA,E,+CAAAA,Q,cAOAC,K,wCAAAA,E,wCAAAA,E,wCAAAA,E,uCAAAA,Q,cAOAC,K,qCAAAA,E,qCAAAA,E,qCAAAA,E,oCAAAA,Q,cAOAC,K,2CAAAA,E,2CAAAA,E,2CAAAA,E,0CAAAA,Q,cAOAC,K,oCAAAA,E,oCAAAA,E,oCAAAA,E,mCAAAA,Q,cAOAC,K,2CAAAA,E,2CAAAA,E,2CAAAA,E,0CAAAA,Q,cAOAC,K,qCAAAA,E,qCAAAA,E,qCAAAA,E,oCAAAA,Q,cAOAC,K,oCAAAA,E,oCAAAA,E,oCAAAA,E,mCAAAA,Q,cAOAC,K,0CAAAA,E,0CAAAA,E,0CAAAA,E,yCAAAA,Q,cAOAC,K,sCAAAA,E,sCAAAA,E,sCAAAA,E,qCAAAA,Q,cAOAC,K,wCAAAA,E,wCAAAA,E,wCAAAA,E,uCAAAA,Q,cAOAC,K,kCAA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6CAAAA,E,6CAAAA,E,4CAAAA,Q,cAOAC,K,4CAAAA,E,4CAAAA,E,4CAAAA,E,2CAAAA,Q,cAOAC,K,wCAAAA,E,wCAAAA,E,wCAAAA,E,uCAAAA,Q,cAOAC,K,gDAAAA,E,gDAAAA,E,gDAAAA,E,+CAAAA,Q,cAOAC,K,kCAAAA,E,kCAAAA,E,kCAAAA,E,iCAAAA,Q,cAOAC,K,2CAAAA,E,2CAAAA,E,2CAAAA,E,0CAAAA,Q,cAOAC,K,2CAAAA,E,2CAAAA,E,2CAAAA,E,0CAAAA,Q,cAOAC,K,yCAAAA,E,yCAAAA,E,yCAAAA,E,wCAAAA,Q,cAOAC,K,2CAAAA,E,yCAAAA,E,gDAAAA,Q,cAMAC,K,6CAAAA,E,6CAAAA,E,6CAAAA,E,4CAAAA,Q,cAOAC,K,yCAAAA,E,yCAAAA,E,yCAAAA,E,wCAAAA,Q,cAOAC,K,qDAAAA,E,qDAAAA,E,qDAAAA,E,qDAAAA,Q,cAOAC,K,6CAAAA,E,6CAAAA,E,6CAAAA,E,4CAAAA,Q,cAMAC,K,8CAAAA,E,8CAAAA,E,8CAAAA,E,6CAAAA,Q,cAOAC,K,0CAAAA,E,0CAAAA,E,0CAAAA,E,yCAAAA,Q,cAOAC,K,+CAAAA,E,+CAAAA,E,+CAAAA,E,8CAAAA,Q,cAOAC,K,oDAAAA,E,oDAAAA,E,oDAAAA,E,mDAAAA,Q,cAOAC,K,2CAAAA,E,2CAAAA,E,2CAAAA,E,0CAAAA,Q,cAOAC,K,qCAAAA,E,qCAAAA,E,qCAAAA,E,oCAAAA,Q,cAOAC,K,iDAAAA,E,iDAAAA,E,iDAAAA,E,gDAAAA,Q,cAOAC,K,0CAAAA,E,0CAAAA,E,0CAAAA,E,yCAAAA,Q,cAMAC,K,+CAAAA,E,+CAAAA,E,+CAAAA,E,8CAAAA,Q,cAOAC,K,4CAAAA,E,4CAAAA,E,4CAAAA,E,2CAAAA,Q,cAOAC,K,gDAAAA,E,gDAAAA,E,gDAAAA,E,+CAAAA,Q,cAOAC,K,+CAAAA,E,+CAAAA,E,+CAAAA,E,8CAAAA,Q,cAOAC,K,qDAAAA,E,qDAAAA,E,qDAAAA,E,oDAAAA,Q,cAOAC,K,4CAAAA,E,4CAAAA,E,4CAAAA,E,2CAAAA,Q,cAOAC,K,gEAAAA,E,gEAAAA,E,gEAAAA,E,+DA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","file":"static/js/main.b9e8f400.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/remove-icon.370c64bd.svg\";","module.exports = __webpack_public_path__ + \"static/media/folder-icon2.7ee9f2d6.svg\";","module.exports = __webpack_public_path__ + \"static/media/sort.67476ddb.svg\";","module.exports = __webpack_public_path__ + \"static/media/select-arrow-icon.20ce900e.svg\";","module.exports = __webpack_public_path__ + \"static/media/close-icon.9052da34.svg\";","module.exports = __webpack_public_path__ + \"static/media/download-icon.47040503.svg\";","module.exports = __webpack_public_path__ + \"static/media/key-icon.dfc34cf8.svg\";","module.exports = __webpack_public_path__ + \"static/media/documents-icon.e923b382.svg\";","module.exports = __webpack_public_path__ + \"static/media/logo.9478f7e8.svg\";","module.exports = __webpack_public_path__ + \"static/media/sign-icon.3cc326ef.svg\";","module.exports = __webpack_public_path__ + \"static/media/copy-icon.4db180ef.svg\";","module.exports = __webpack_public_path__ + \"static/media/pencil.ffd1afc4.svg\";","module.exports = __webpack_public_path__ + \"static/media/activity-icon.a07aa191.svg\";","module.exports = __webpack_public_path__ + \"static/media/arrow-circle.d06ac0dc.svg\";","module.exports = __webpack_public_path__ + \"static/media/circle-success.5badbdf8.svg\";","module.exports = __webpack_public_path__ + \"static/media/lock.9a2978af.svg\";","module.exports = __webpack_public_path__ + \"static/media/eye-icon.5790b882.svg\";","module.exports = __webpack_public_path__ + \"static/media/integrations-icon.85f0d0f7.svg\";","module.exports = __webpack_public_path__ + \"static/media/angle-arrow.c134c5d9.svg\";","module.exports = __webpack_public_path__ + \"static/media/doc-pencil-icon.1cf20499.svg\";","module.exports = __webpack_public_path__ + \"static/media/team-icon.ff407a4b.svg\";","module.exports = __webpack_public_path__ + \"static/media/search.e297cabd.svg\";","module.exports = __webpack_public_path__ + \"static/media/doc-download-icon.a377e4c3.svg\";","module.exports = __webpack_public_path__ + \"static/media/document-icon.0112fdb2.svg\";","module.exports = __webpack_public_path__ + \"static/media/edit-icon.e5f2ee62.svg\";","module.exports = __webpack_public_path__ + \"static/media/circle-close.9f705f7d.svg\";","module.exports = __webpack_public_path__ + \"static/media/templates-icon.bc85c337.svg\";","module.exports = __webpack_public_path__ + \"static/media/company-icon.91dbad90.svg\";","module.exports = __webpack_public_path__ + \"static/media/billing-icon.83450102.svg\";","module.exports = __webpack_public_path__ + \"static/media/cancel.7a4fd1bc.svg\";","module.exports = __webpack_public_path__ + \"static/media/print-icon.32d391e1.svg\";","module.exports = __webpack_public_path__ + \"static/media/share-icon.88023d6c.svg\";","module.exports = __webpack_public_path__ + \"static/media/alert-icon.260b1b39.svg\";","module.exports = __webpack_public_path__ + \"static/media/middle-step-icon.e0d0a07a.svg\";","module.exports = __webpack_public_path__ + \"static/media/logout-icon.6bce9796.svg\";","module.exports = __webpack_public_path__ + \"static/media/help-icon.3a984a56.svg\";","module.exports = __webpack_public_path__ + \"static/media/settings-icon.f568cdd4.svg\";","module.exports = __webpack_public_path__ + \"static/media/forms-icon.42e38ff9.svg\";","module.exports = __webpack_public_path__ + \"static/media/team-empty-icon.765b8643.svg\";","module.exports = __webpack_public_path__ + \"static/media/present.a417ab28.svg\";","module.exports = __webpack_public_path__ + \"static/media/in-icon.c5aacca6.svg\";","module.exports = __webpack_public_path__ + \"static/media/date-icon.de2be009.svg\";","module.exports = __webpack_public_path__ + \"static/media/name-icon.05fa6ef0.svg\";","module.exports = __webpack_public_path__ + \"static/media/first-step-icon.1961081c.svg\";","module.exports = __webpack_public_path__ + \"static/media/finish-step-icon.6f1ad129.svg\";","module.exports = __webpack_public_path__ + \"static/media/notification-bell.7c552837.svg\";","module.exports = __webpack_public_path__ + \"static/media/api-icon.3ed3ff0d.svg\";","module.exports = __webpack_public_path__ + \"static/media/check-v2.5c876863.svg\";","module.exports = __webpack_public_path__ + \"static/media/check.3f3e16d9.svg\";","module.exports = __webpack_public_path__ + \"static/media/check-circle.866f0b99.svg\";","module.exports = __webpack_public_path__ + \"static/media/upload-icon.beaad7f7.svg\";","module.exports = __webpack_public_path__ + \"static/media/cross-in-circle.416b3bcf.svg\";","module.exports = __webpack_public_path__ + \"static/media/declined-icon.c157873f.svg\";","module.exports = __webpack_public_path__ + \"static/media/star-icon.3623387d.svg\";","module.exports = __webpack_public_path__ + \"static/media/feedback-icon.69becf39.svg\";","module.exports = __webpack_public_path__ + \"static/media/menu.273656a4.svg\";","module.exports = __webpack_public_path__ + \"static/media/checkbox-arrow.91b41c52.svg\";","module.exports = __webpack_public_path__ + \"static/media/circle-add-icon.608b44ab.svg\";","module.exports = __webpack_public_path__ + \"static/media/error.5652a3ed.svg\";","module.exports = __webpack_public_path__ + \"static/media/tooltip-icon.62cbeadf.svg\";","module.exports = __webpack_public_path__ + \"static/media/eye.ef6b6287.svg\";","module.exports = __webpack_public_path__ + \"static/media/crossed-eye.51520e6f.svg\";","module.exports = __webpack_public_path__ + \"static/media/bag-icon.659219a9.svg\";","module.exports = __webpack_public_path__ + \"static/media/draggable-icon.3a161280.svg\";","module.exports = __webpack_public_path__ + \"static/media/google-drive-icon.45590804.svg\";","module.exports = __webpack_public_path__ + \"static/media/drop-box-icon.954959d6.svg\";","module.exports = __webpack_public_path__ + \"static/media/one-drive-icon.99268ac3.svg\";","module.exports = __webpack_public_path__ + \"static/media/box-icon.bce33133.svg\";","module.exports = __webpack_public_path__ + \"static/media/dropbox.b08c8faf.svg\";","module.exports = __webpack_public_path__ + \"static/media/google-drive.f31dc716.svg\";","module.exports = __webpack_public_path__ + \"static/media/one-drive.57e53c01.svg\";","module.exports = __webpack_public_path__ + \"static/media/box.7ae62c73.svg\";","module.exports = __webpack_public_path__ + \"static/media/checkbox-arrow-document.4d595d4a.svg\";","module.exports = __webpack_public_path__ + \"static/media/text-icon.7c62b5fc.svg\";","module.exports = __webpack_public_path__ + \"static/media/checkbox-icon.359c191a.svg\";","module.exports = __webpack_public_path__ + \"static/media/document.59318b15.svg\";","module.exports = __webpack_public_path__ + \"static/media/navigate-icon-left.c97fbc4a.svg\";","module.exports = __webpack_public_path__ + \"static/media/navigate-icon-right.de31fea7.svg\";","module.exports = __webpack_public_path__ + \"static/media/paste-icon.82a3741d.svg\";","module.exports = __webpack_public_path__ + \"static/media/datepicker.3eb86dac.svg\";","module.exports = __webpack_public_path__ + \"static/media/select-cross-icon.1937b563.svg\";","module.exports = __webpack_public_path__ + \"static/media/create-folder-icon.1d060506.svg\";","module.exports = __webpack_public_path__ + \"static/media/skip-dots.a789f2cc.svg\";","module.exports = __webpack_public_path__ + \"static/media/created-icon.6fdf1c5d.svg\";","module.exports = __webpack_public_path__ + \"static/media/updated-icon.68ed84e0.svg\";","module.exports = __webpack_public_path__ + \"static/media/sent-icon.0f694ce1.svg\";","module.exports = __webpack_public_path__ + \"static/media/viewed-icon.14a55671.svg\";","module.exports = __webpack_public_path__ + \"static/media/signed-icon.fbbfba82.svg\";","module.exports = __webpack_public_path__ + \"static/media/completed-icon.ba5eebec.svg\";","module.exports = __webpack_public_path__ + \"static/media/reverted-icon.a50010f0.svg\";","module.exports = __webpack_public_path__ + \"static/media/expired-icon.60851921.svg\";","module.exports = __webpack_public_path__ + \"static/media/pause.4c15f622.svg\";","module.exports = __webpack_public_path__ + \"static/media/play.9e8fbad5.svg\";","module.exports = __webpack_public_path__ + \"static/media/user.f2732091.svg\";","module.exports = __webpack_public_path__ + \"static/media/check-in-circle.b7b9e617.svg\";","module.exports = __webpack_public_path__ + \"static/media/unlock-icon.b5544afe.svg\";","module.exports = __webpack_public_path__ + \"static/media/bell-icon.b24c42b3.svg\";","module.exports = __webpack_public_path__ + \"static/media/star-icon-v2.85ae2798.svg\";","module.exports = __webpack_public_path__ + \"static/media/logoMobile.a39a1827.svg\";","module.exports = __webpack_public_path__ + \"static/media/google-icon.ab3cfb3c.svg\";","module.exports = __webpack_public_path__ + \"static/media/lee.a9044dbc.jpg\";","module.exports = __webpack_public_path__ + \"static/media/maha.1e9ac396.jpg\";","module.exports = __webpack_public_path__ + \"static/media/quinn.f599f9b3.jpg\";","module.exports = __webpack_public_path__ + \"static/media/lulian.3d002375.jpg\";","module.exports = __webpack_public_path__ + \"static/media/logoWhite.09ef583c.svg\";","module.exports = __webpack_public_path__ + \"static/media/circle-declined.68989da2.svg\";","module.exports = __webpack_public_path__ + \"static/media/document-completed-signing-icon.0d989436.svg\";","module.exports = __webpack_public_path__ + \"static/media/document-signed-icon.1931d13a.svg\";","module.exports = __webpack_public_path__ + \"static/media/document-unavailable-icon.09ee8143.svg\";","module.exports = __webpack_public_path__ + \"static/media/collaboration-icon.26cad63e.svg\";","module.exports = __webpack_public_path__ + \"static/media/time-save-icon.c9632956.svg\";","module.exports = __webpack_public_path__ + \"static/media/legal-icon.10837804.svg\";","module.exports = __webpack_public_path__ + \"static/media/reminder-icon.3a4ddc6e.svg\";","module.exports = __webpack_public_path__ + \"static/media/management-icon.c175035f.svg\";","module.exports = __webpack_public_path__ + \"static/media/paperless-icon.c895c329.svg\";","module.exports = __webpack_public_path__ + \"static/media/signUpConfirm.ccbe7920.svg\";","module.exports = __webpack_public_path__ + \"static/media/leaf.afdff21f.svg\";","module.exports = __webpack_public_path__ + \"static/media/prime-club.676a1ca5.svg\";","module.exports = __webpack_public_path__ + \"static/media/undermaintenance-icon.49792704.svg\";","module.exports = __webpack_public_path__ + \"static/media/plus.5e901602.svg\";","module.exports = __webpack_public_path__ + \"static/media/appsumo.b80deed6.svg\";","export enum HttpStatus {\n CONTINUE = 100,\n SWITCHING_PROTOCOLS = 101,\n PROCESSING = 102,\n OK = 200,\n CREATED = 201,\n ACCEPTED = 202,\n NON_AUTHORITATIVE_INFORMATION = 203,\n NO_CONTENT = 204,\n RESET_CONTENT = 205,\n PARTIAL_CONTENT = 206,\n AMBIGUOUS = 300,\n MOVED_PERMANENTLY = 301,\n FOUND = 302,\n SEE_OTHER = 303,\n NOT_MODIFIED = 304,\n TEMPORARY_REDIRECT = 307,\n PERMANENT_REDIRECT = 308,\n BAD_REQUEST = 400,\n UNAUTHORIZED = 401,\n PAYMENT_REQUIRED = 402,\n FORBIDDEN = 403,\n NOT_FOUND = 404,\n METHOD_NOT_ALLOWED = 405,\n NOT_ACCEPTABLE = 406,\n PROXY_AUTHENTICATION_REQUIRED = 407,\n REQUEST_TIMEOUT = 408,\n CONFLICT = 409,\n GONE = 410,\n LENGTH_REQUIRED = 411,\n PRECONDITION_FAILED = 412,\n PAYLOAD_TOO_LARGE = 413,\n URI_TOO_LONG = 414,\n UNSUPPORTED_MEDIA_TYPE = 415,\n REQUESTED_RANGE_NOT_SATISFIABLE = 416,\n EXPECTATION_FAILED = 417,\n I_AM_A_TEAPOT = 418,\n UNPROCESSABLE_ENTITY = 422,\n FAILED_DEPENDENCY = 424,\n TOO_MANY_REQUESTS = 429,\n INTERNAL_SERVER_ERROR = 500,\n NOT_IMPLEMENTED = 501,\n BAD_GATEWAY = 502,\n SERVICE_UNAVAILABLE = 503,\n GATEWAY_TIMEOUT = 504,\n HTTP_VERSION_NOT_SUPPORTED = 505,\n}\n","import { CSSProperties } from 'react';\nimport {\n DocumentFieldCreateActionTypes,\n DocumentFieldUpdateActionTypes,\n DocumentFieldDeleteActionTypes,\n EmbedDocumentFieldCreateActionTypes,\n EmbedDocumentFieldUpdateActionTypes,\n EmbedDocumentFieldDeleteActionTypes,\n} from 'Store/ducks/documentField/actionTypes';\nimport { EntityDates, NormalizedEntity } from './Common';\nimport { Document, Signer } from './Document';\nimport { DateFormats } from './User';\nimport { RequisiteValueType } from './Requisite';\n\nexport enum DocumentFieldTypes {\n Name = 'name',\n Signature = 'sign',\n Initials = 'initial',\n Date = 'date',\n Text = 'text',\n Checkbox = 'checkbox',\n}\n\nexport enum DocumentFieldLabels {\n NAME = 'Name',\n SIGNATURE = 'Signature',\n INITIALS = 'Initial',\n DATE = 'Date',\n TEXT = 'Text',\n CHECKBOX = 'Checkbox',\n}\n\nexport interface DocumentFieldShape {\n label: DocumentFieldLabels;\n type: DocumentFieldTypes;\n icon: string;\n iconType: string;\n}\n\nexport interface DocumentField extends EntityDates {\n readonly id: string;\n readonly document?: Document;\n dateFormat?: DateFormats | null;\n availableSignatureTypes?: RequisiteValueType[] | null;\n documentId: Document['id'];\n type: DocumentFieldTypes;\n required: boolean;\n signerId: Required['id'] | null;\n coordinateX: number;\n coordinateY: number;\n pageNumber: number;\n fileKey?: string;\n text?: string | null;\n placeholder?: string;\n signed?: boolean;\n width?: number;\n height?: number;\n value?: string | null;\n signerName?: string;\n fontSize?: number | null;\n fixedFontSize?: boolean;\n fontFamily?: string | null;\n requisiteId?: string | null;\n style?: CSSProperties;\n checked?: boolean | null;\n minimizeWidth?: boolean | null;\n createType: FieldCreateType;\n tag?: string;\n}\n\nexport interface DocumentFieldsGetPayload {\n documentId: Document['id'];\n}\n\nexport interface DocumentFieldsGetResult {\n fields: NormalizedEntity;\n documentId: Document['id'];\n}\n\nexport interface DocumentFieldDeletePayload {\n id: DocumentField['id'];\n}\n\nexport enum FieldCreateType {\n ADD = 'add',\n COPY = 'copy',\n}\n\nexport type DocumentFieldAddType = Omit;\n\nexport type DocumentFieldUpdatePayload = Pick &\n Partial;\n\nexport interface DocumentFieldHistoryActionItem {\n actionType:\n | typeof DocumentFieldCreateActionTypes.request\n | typeof DocumentFieldUpdateActionTypes.request\n | typeof DocumentFieldDeleteActionTypes.request;\n actionPayload: DocumentField;\n}\n\nexport interface DocumentFieldHistoryItem {\n next: DocumentFieldHistoryActionItem;\n prev: DocumentFieldHistoryActionItem;\n}\n\nexport interface DocumentFieldHistory {\n cursor: number;\n actions: DocumentFieldHistoryItem[];\n}\n\nexport interface DocumentFieldsState {\n meta: {\n currentDocumentId?: Document['id'];\n history: DocumentFieldHistory;\n };\n fields: NormalizedEntity;\n}\n\nexport interface DocumentFieldsCRUDMeta {\n pushToHistory: boolean;\n stopFontAutoSize?: boolean;\n}\n\nexport interface DocumentFieldsCRUDPayload {\n payload: TPayload;\n meta: DocumentFieldsCRUDMeta;\n}\n\nexport interface EmbedDocumentFieldHistoryActionItem {\n actionType:\n | typeof EmbedDocumentFieldCreateActionTypes.request\n | typeof EmbedDocumentFieldUpdateActionTypes.request\n | typeof EmbedDocumentFieldDeleteActionTypes.request;\n actionPayload: DocumentField;\n}\n\nexport interface EmbedDocumentFieldHistoryItem {\n next: EmbedDocumentFieldHistoryActionItem;\n prev: EmbedDocumentFieldHistoryActionItem;\n}\n","import { toast, ToastId, ToastOptions, ToastContent } from 'react-toastify';\nimport { HttpStatus } from 'Interfaces/HttpStatusEnum';\n\nclass Toast {\n success = (message: ToastContent) => toast.success(message);\n\n handleErrors = (error, options?: ToastOptions) => {\n if (error.statusCode === HttpStatus.UNAUTHORIZED) return;\n\n if (error.statusCode === HttpStatus.BAD_GATEWAY) {\n return this.error('502 Bad Gateway, Please try in again in a few minutes', options);\n }\n\n if (error.statusCode === HttpStatus.SERVICE_UNAVAILABLE) {\n return this.error(\n '503 Service Temporary Unavailable, Please try in again in a few minutes',\n options,\n );\n }\n\n if (error.statusCode === HttpStatus.GATEWAY_TIMEOUT) {\n return this.error(\n '504 Gateway timeout, Please try in again in a few minutes',\n options,\n );\n }\n\n return this.error(error.message, options);\n };\n\n error = (message?: ToastContent, options?: ToastOptions) =>\n toast.error(message || 'Something went wrong', options);\n\n warn = (message: ToastContent, options?: ToastOptions) => toast.warn(message, options);\n\n isActive = (toastId: ToastId) => toast.isActive(toastId);\n\n dismiss = (toastId: ToastId) => toast.dismiss(toastId);\n}\n\nexport default new Toast();\n","export const PROMISIFY_WATCHER_PREFIX = `@@PROMISIFY_ACTION`;\nexport const START_WATCH_PROMISIFIED_ACTION = `${PROMISIFY_WATCHER_PREFIX}/START_WATCH`;\nexport const STOP_WATCH_PROMISIFIED_ACTION = `${PROMISIFY_WATCHER_PREFIX}/STOP_WATCH`;\n","import { AuthStatuses } from './Auth';\nimport { ApiSubscription, AppSumoStatus, LtdTier, PlanDetails } from './Billing';\nimport { Integration } from './Integration';\n\nexport interface SignatureTypesPreferences {\n isDrawnSignaturesAvailable?: boolean;\n isTypedSignaturesAvailable?: boolean;\n isUploadedSignaturesAvailable?: boolean;\n}\n\nexport interface SignerAccessCodesPreferences {\n enableDocumentCodeAccess: boolean;\n enableTemplateCodeAccess: boolean;\n enableFormRequestCodeAccess: boolean;\n}\n\nexport interface Company {\n companyLogoKey?: string | null;\n companyName?: string | null;\n companyEmail?: string | null;\n tagline?: string | null;\n redirectionPage?: string | null;\n emailTemplate?: string | null;\n industry?: string | null;\n signatureTypesPreferences?: SignatureTypesPreferences;\n signerAccessCodesPreferences?: SignerAccessCodesPreferences;\n enableDownloadOriginalDocumentForSigners?: boolean;\n enableIndependentRequests?: boolean;\n enableIndependentActivity?: boolean;\n}\n\nexport type AvatarUrl = string | null;\n\nexport interface Avatar {\n avatarUrl: AvatarUrl;\n}\n\nexport interface UserNotifications {\n isReceivingReminders: boolean;\n isSendingToAllPartiesInOrderedDocument: boolean;\n isSubscribedOnProcessingToAwaitingConvert: boolean;\n isReceivingSignerSigned: boolean;\n isReceivingSigned: boolean;\n isReceivingOpenedSigning: boolean;\n isReceivingCompletedDocument: boolean;\n isSendingCompletedDocument: boolean;\n isReceivingSignatureRequestsDailyReport: boolean;\n}\n\nexport interface User extends UserNotifications, Company, Avatar {\n id: string;\n name?: string;\n email?: string;\n createdAt?: Date;\n updatedAt?: Date;\n image?: string;\n dateFormat: DateFormats;\n billingDetails: string | null;\n taxId: string | null;\n role: UserRoles;\n last4: string;\n isTwillio2fa: boolean;\n isGoogle2fa: boolean;\n phoneNumber: string | null;\n integrations: Integration[];\n plan: PlanDetails;\n apiSubscription: ApiSubscription;\n teamId: string;\n subscriptionId: string;\n freeDocumentsUsed: number;\n personalDocumentsUsed: number;\n appSumoStatus: AppSumoStatus;\n freeDocumentsUsedLimit: number;\n personalDocumentsUsedLimit: number;\n isSubscribedOnAPIUpdates: boolean;\n isEmailConfirmed: boolean;\n isAuthorized: boolean;\n authStatus?: AuthStatuses;\n paymentSurveyAnswer: string;\n status: UserStatuses;\n customerId: string;\n clientId?: string;\n signatureRequestsSent: number;\n isTrialUsed: boolean;\n isTrialSubscription: boolean;\n showTrialStep: boolean;\n ltdTierId: LtdTier['id'];\n isTemporary: boolean;\n}\n\nexport enum UserStatuses {\n ACTIVE = 'active',\n FREEZE = 'freeze',\n}\n\nexport type UserAvatar = Pick;\n\nexport enum DateFormats {\n MM_DD_YYYY = 'MM/DD/YYYY',\n DD_MM_YYYY = 'DD/MM/YYYY',\n YYYY_MM_DD = 'YYYY/MM/DD',\n MM_DD_YY = 'MM/DD/YY',\n DD_MM_YY = 'DD/MM/YY',\n}\n\nexport enum UserRoles {\n OWNER = 'owner',\n ADMIN = 'admin',\n USER = 'user',\n}\n\nexport interface TokenPayload {\n token: string;\n}\n\nexport interface TokenizedPayload extends Partial {\n payload: T;\n}\n\nexport interface UserIdPayload {\n userId: User['id'];\n}\n\nexport enum WorkflowVersions {\n A = 'a',\n B = 'b',\n}\n\nexport const TeammateRoles = [\n { value: UserRoles.ADMIN, label: 'Admin' },\n { value: UserRoles.USER, label: 'User' },\n];\n","import { IS_BLACK_FRIDAY, IS_END_OF_YEAR } from 'Utils/constants';\nimport {\n NormalizedEntity,\n EntityDates,\n PaginationData,\n PaginationParams,\n OrderingParams,\n} from './Common';\nimport { LtdTiersIds } from 'Pages/Settings/Billing/screens/LifeTimeDealScreen/planTableItems';\n\nexport interface CardFormValues {\n number: string;\n expirationDate: string;\n cvv: string;\n cardholderName: string;\n postalCode: string;\n}\n\nexport interface CardPayload {\n token: string;\n}\n\nexport interface Card {\n number: string;\n expirationDate: string;\n}\n\nexport interface Invoice {\n id: string;\n createdAt: string;\n pdfKey: string;\n amount: string;\n}\n\nexport enum PlanTypes {\n FREE = 'free',\n PERSONAL = 'personal',\n BUSINESS = 'business',\n}\n\nexport enum PlanDurations {\n MONTHLY = 'monthly',\n ANNUALLY = 'annually',\n FOREVER = 'forever',\n}\n\nexport enum PlanIds {\n BUSINESS = 'mqfm',\n BUSINNES_ANNUALLY = 'dbz2',\n PERSONAL = 'gpfc',\n PERSONAL_ANNUALLY = 'mb88',\n FREE = 'free',\n PERSONAL_ARCHIVED = 'cfpg',\n PERSONAL_ANNUALLY_ARCHIVED = 'mb66',\n}\n\nexport const signatureLimitedPlans = [\n PlanIds.FREE,\n PlanIds.PERSONAL,\n PlanIds.PERSONAL_ANNUALLY,\n];\n\nexport const PlanDurationAcronims = {\n [PlanDurations.MONTHLY]: 'mo',\n [PlanDurations.ANNUALLY]: 'year',\n};\n\nexport type ApiPlanItem = {\n header: string;\n title: string;\n price: string;\n type: ApiPlanTypes;\n duration: PlanDurations;\n content: string[];\n};\n\nexport enum ApiPlanTypes {\n FREE = 'free',\n GOLD = 'gold',\n PLATINUM = 'platinum',\n TITANIUM = 'titanium',\n APPSUMO_STANDARD = 'appsumo_standard',\n APPSUMO_FULL = 'appsumo_full',\n LTD_API_PLAN = 'ltd_api_plan',\n}\n\nexport interface Plan {\n type: PlanTypes;\n duration: PlanDurations;\n title?: string;\n id?: string;\n quantity?: number;\n}\n\nexport interface ApiPlan {\n type: ApiPlanTypes;\n duration: PlanDurations;\n title: string;\n id?: string;\n requestLimit?: number;\n}\n\nexport interface UpcomingInvoiceTypes {\n amount: number;\n quantity: number;\n currency: string;\n plan: {\n name: string;\n type: string;\n duration: string;\n price: string;\n };\n discountedAmount: number;\n discount: number;\n total: number;\n nextInvoiceDate: string;\n}\n\nexport interface ApiPlanInfo extends ApiPlan {\n requestLimit: number;\n templateLimit: number;\n name: string;\n}\n\nexport enum AppSumoStatus {\n STANDARD = 'standard',\n FULL = 'full',\n}\n\nexport interface PlanDetails extends EntityDates {\n id: string;\n name: string;\n description: string;\n price: string;\n type: PlanTypes;\n duration: PlanDurations;\n}\n\nexport interface CreateSubscriptionCheckoutPayload {\n type: PlanTypes | ApiPlanTypes;\n duration: PlanDurations;\n couponId?: string;\n}\n\nexport interface CheckoutSessionUrl {\n checkoutUrl: string;\n}\n\nexport interface ApiSubscription {\n requestsMonthlyUsed: number;\n testRequestsMonthlyUsed: number;\n templatesCount: number;\n apiPlan: PlanDetails;\n nextBillingDate: Date;\n neverExpires: boolean;\n requestLimit: number;\n}\n\nexport interface AddOn {\n id: string;\n amount: string;\n quantity: number;\n name: string;\n currentBillingCycle: number;\n}\n\nexport interface SubscriptionData {\n addOns: AddOn[];\n planId: string;\n}\n\nexport interface ValidatePromotionCodePayload {\n code: string;\n plan: Plan | ApiPlan;\n authorized: boolean;\n}\n\nexport interface DiscountData {\n id: string;\n name: string;\n percentOff: number;\n isValid: boolean;\n}\n\nexport interface SubscriptionInfo {\n userQuantity: number;\n amount: number;\n discountQuantity: number;\n discountAmount: number;\n discountPercent: number;\n nextBillingDate: string;\n price?: number;\n neverExpires: boolean;\n trialEnd?: string;\n}\n\nexport interface ApiSubscriptionInfo {\n nextBillingDate: string;\n price?: number;\n}\n\nexport interface BillingData {\n plans: PlanDetails[];\n subscriptionData: SubscriptionData;\n apiSubscription: ApiSubscription | null;\n apiPlans: PlanDetails[];\n card: Card;\n invoiceItems: NormalizedEntity;\n}\n\nexport interface BillingDetailsUpdatePayload {\n billingDetails: string | null;\n taxId: string | null;\n}\n\nexport interface DownloadInvoicePayload {\n invoiceId: string;\n}\n\nexport interface PlanChangePayload {\n type: PlanTypes | ApiPlanTypes;\n duration: PlanDurations;\n paymentSurveyAnswer?: string;\n couponId?: string;\n trial?: boolean;\n}\n\nexport interface ApiPlanChangePayload {\n type: ApiPlanTypes;\n duration: PlanDurations;\n couponId?: string;\n}\n\nexport interface AppSumoUpgradePayload {\n code: string;\n}\n\nexport interface GetLatestInvoicePayload {\n subscriptionId: string;\n transactionId: string;\n amount: number;\n currency: string;\n}\n\nexport interface GetUpcomingInvoicePayload {\n amount: number;\n total: number;\n discount: number;\n currency: string;\n quantity: number;\n unusedTime: number;\n}\n\nexport const DefaultAnnuallyDiscount = 20;\nexport const AnnuallyDiscount = IS_BLACK_FRIDAY\n ? 40\n : IS_END_OF_YEAR\n ? 35\n : DefaultAnnuallyDiscount;\nexport const MonthlyDiscount = IS_BLACK_FRIDAY ? 20 : IS_END_OF_YEAR ? 15 : 0;\nexport const DefaultUpsellDiscount = 30;\nexport const LtdStandardDiscount = 30;\n\nexport const discountByDuration = {\n [PlanDurations.MONTHLY]: MonthlyDiscount,\n [PlanDurations.ANNUALLY]: AnnuallyDiscount,\n};\n\n// Initial plan prices\nconst initialPlanPrices = {\n [PlanTypes.BUSINESS]: {\n [PlanDurations.MONTHLY]: 50,\n [PlanDurations.ANNUALLY]: 600,\n },\n [PlanTypes.PERSONAL]: {\n [PlanDurations.MONTHLY]: 25,\n [PlanDurations.ANNUALLY]: 300,\n },\n};\n\nexport const getTotalPrice = (price: number, discount: number) => {\n return price * (1 - discount / 100);\n};\n\nexport const defaultPlanPrices = {\n [PlanTypes.BUSINESS]: {\n [PlanDurations.MONTHLY]: initialPlanPrices[PlanTypes.BUSINESS][PlanDurations.MONTHLY],\n [PlanDurations.ANNUALLY]:\n getTotalPrice(\n initialPlanPrices[PlanTypes.BUSINESS][PlanDurations.ANNUALLY],\n DefaultAnnuallyDiscount,\n ) / 12,\n },\n [PlanTypes.PERSONAL]: {\n [PlanDurations.MONTHLY]: initialPlanPrices[PlanTypes.PERSONAL][PlanDurations.MONTHLY],\n [PlanDurations.ANNUALLY]:\n getTotalPrice(\n initialPlanPrices[PlanTypes.PERSONAL][PlanDurations.ANNUALLY],\n DefaultAnnuallyDiscount,\n ) / 12,\n },\n};\n\nexport const discountPlanPrices = {\n [PlanTypes.BUSINESS]: {\n [PlanDurations.MONTHLY]: getTotalPrice(\n initialPlanPrices[PlanTypes.BUSINESS][PlanDurations.MONTHLY],\n MonthlyDiscount,\n ),\n [PlanDurations.ANNUALLY]:\n getTotalPrice(\n initialPlanPrices[PlanTypes.BUSINESS][PlanDurations.ANNUALLY],\n AnnuallyDiscount,\n ) / 12,\n },\n [PlanTypes.PERSONAL]: {\n [PlanDurations.MONTHLY]: getTotalPrice(\n initialPlanPrices[PlanTypes.PERSONAL][PlanDurations.MONTHLY],\n MonthlyDiscount,\n ),\n [PlanDurations.ANNUALLY]:\n getTotalPrice(\n initialPlanPrices[PlanTypes.PERSONAL][PlanDurations.ANNUALLY],\n AnnuallyDiscount,\n ) / 12,\n },\n};\n\n// constant for Facebook\nexport const planTerms = {\n [PlanTypes.PERSONAL]: {\n [PlanDurations.MONTHLY]: {\n title: 'PersonalMonthly',\n cost: defaultPlanPrices[PlanTypes.PERSONAL][PlanDurations.MONTHLY],\n },\n [PlanDurations.ANNUALLY]: {\n title: 'PersonalAnnual',\n cost: discountPlanPrices[PlanTypes.PERSONAL][PlanDurations.ANNUALLY],\n },\n },\n [PlanTypes.BUSINESS]: {\n [PlanDurations.MONTHLY]: {\n title: 'BusinessMonthly',\n cost: defaultPlanPrices[PlanTypes.BUSINESS][PlanDurations.MONTHLY],\n },\n [PlanDurations.ANNUALLY]: {\n title: 'BusinessAnnual',\n cost: discountPlanPrices[PlanTypes.BUSINESS][PlanDurations.ANNUALLY],\n },\n },\n};\n\n// constant for Google Analytics\nexport const dataLayerPlanNames = {\n [PlanTypes.PERSONAL]: {\n [PlanDurations.MONTHLY]: {\n title: 'Paid Personal Plan Monthly',\n cost: defaultPlanPrices[PlanTypes.PERSONAL][PlanDurations.MONTHLY],\n },\n [PlanDurations.ANNUALLY]: {\n title: 'Paid Personal Plan Annually',\n cost: defaultPlanPrices[PlanTypes.PERSONAL][PlanDurations.ANNUALLY],\n },\n },\n [PlanTypes.BUSINESS]: {\n [PlanDurations.MONTHLY]: {\n title: 'Paid Business Plan Monthly',\n cost: defaultPlanPrices[PlanTypes.BUSINESS][PlanDurations.MONTHLY],\n },\n [PlanDurations.ANNUALLY]: {\n title: 'Paid Business Plan Annually',\n cost: defaultPlanPrices[PlanTypes.BUSINESS][PlanDurations.ANNUALLY],\n },\n },\n [ApiPlanTypes.GOLD]: {\n [PlanDurations.MONTHLY]: {\n title: 'Paid Gold Plan Monthly',\n cost: 49,\n },\n [PlanDurations.ANNUALLY]: {\n title: 'Paid Gold Plan Annually',\n cost: 470,\n },\n },\n [ApiPlanTypes.PLATINUM]: {\n [PlanDurations.MONTHLY]: {\n title: 'Paid Platinum Plan Monthly',\n cost: 99,\n },\n [PlanDurations.ANNUALLY]: {\n title: 'Paid Platinum Plan Annually',\n cost: 950,\n },\n },\n [ApiPlanTypes.TITANIUM]: {\n [PlanDurations.MONTHLY]: {\n title: 'Paid Titanium Plan Monthly',\n cost: 199,\n },\n [PlanDurations.ANNUALLY]: {\n title: 'Paid Titanium Plan Annually',\n cost: 1910,\n },\n },\n};\n\nexport enum InvoiceTypes {\n API = 'api',\n DEFAULT = 'default',\n LTD = 'ltd',\n}\n\nexport interface InvoicesRequest extends PaginationParams, OrderingParams {\n types: InvoiceTypes[];\n}\n\nexport interface InvoicesData {\n invoices: NormalizedEntity;\n paginationData: PaginationData;\n}\n\nexport type Coupon = DiscountData;\n\nexport interface InvoiceDownloadLink {\n invoiceId: Invoice['id'];\n hash: string;\n}\n\nexport interface InvoiceDownloadLinkPayload {\n result: string;\n}\n\nexport interface ChangeLtdPlanDurationPayload {\n duration: PlanDurations;\n}\n\nexport interface LtdPaymentCheckoutPayload {\n successUrl: string;\n cancelUrl: string;\n ltdId: string;\n}\n\nexport interface CreateLtdPaymentCheckoutPayload extends LtdPaymentCheckoutPayload {\n email: string;\n}\n\nexport interface LtdCheckoutResponse {\n stripeCheckoutUrl: string;\n paypalOrderId: string;\n amount: number;\n discountAmount: number;\n total: number;\n}\n\nexport interface LtdCheckoutUpgradeResponse extends LtdCheckoutResponse {\n currentTier: LtdTier;\n newTier: LtdTier;\n}\n\nexport interface CapturePaypalOrderPayload {\n orderId: string;\n}\n\nexport interface LtdTier {\n id: LtdTiersIds;\n name: string;\n teammatesLimit: number;\n formsLimit: number;\n bulkSendLimit: number;\n plan: Plan;\n apiPlan: ApiPlanInfo;\n price: number;\n tierNumber?: number;\n planType: PlanTypes;\n}\n\nexport interface GetLtdTierPayload {\n ltdId: string;\n}\n\nexport interface CapturePaypalOrderPayload {\n orderId: string;\n}\n\nexport interface LtdCodePayload {\n code: string;\n}\n\nexport enum LtdTypes {\n APPSUMO = 'appsumo',\n TIER = 'tier',\n NONE = 'none',\n}\n","import * as npmPackageMeta from '../../package.json';\n\nexport const API_BASE_URL = process.env.REACT_APP_API_BASE_URL as string;\nexport const API_GLOBAL_PREFIX = process.env.REACT_APP_API_GLOBAL_PREFIX as string;\nexport const API_VERSION = process.env.REACT_APP_API_VERSION as string;\nexport const API_URL = `${API_BASE_URL}/${API_GLOBAL_PREFIX}/${API_VERSION}`;\nexport const REACT_APP_GOOGLE_RECAPTCHA_SITEKEY = process.env\n .REACT_APP_GOOGLE_RECAPTCHA_SITEKEY as string;\n\nexport const FRONTEND_URL = process.env.REACT_APP_FRONTEND_URL as string;\nexport const FRONTEND_URL_VERSION_B = process.env\n .REACT_APP_FRONTEND_URL_VERSION_B as string;\n\nexport const GOOGLE_SDK_URL = 'https://apis.google.com/js/api.js';\nexport const GOOGLE_DRIVE_API_URL = 'https://www.googleapis.com/drive/v2';\nexport const BASE_ASSETS_URL = 'https://signaturely-assets.s3-us-west-2.amazonaws.com/';\nexport const GOOGLE_CLIENT_ID = process.env.REACT_APP_GOOGLE_CLIENT_ID as string;\nexport const GOOGLE_API_KEY = process.env.REACT_APP_GOOGLE_API_KEY as string;\nexport const GA_TRACKER_ID = process.env.REACT_APP_GA_TRACKER_ID as string;\nexport const WOOTRIC_ID = process.env.REACT_APP_WOOTRIC_ID as string;\nexport const UPVOTY_PUBLIC_KEY = process.env.REACT_APP_UPVOTY_PUBLIC_KEY as string;\n\nconst isUnderMaintenance = process.env.REACT_APP_UNDER_MAINTENANCE as string | boolean;\nexport const UNDER_MAINTENANCE = !!(\n isUnderMaintenance &&\n (isUnderMaintenance === 'true' || isUnderMaintenance === true)\n);\n\nexport const GOOGLE_PIXEL_ID = process.env.REACT_APP_FB_PIXEL_ID as string;\n\nexport const DROPBOX_SDK_URL = 'https://www.dropbox.com/static/api/2/dropins.js';\nexport const DROPBOX_APP_KEY = process.env.REACT_APP_DROPBOX_APP_KEY as string;\n\nexport const ONEDRIVE_SDK_URL = 'https://js.live.net/v7.2/OneDrive.js';\nexport const ONEDRIVE_APP_ID = process.env.REACT_APP_ONEDRIVE_APP_ID as string;\n\nexport const MAX_FILE_SIZE_MB = 40;\nexport const MAX_TOTAL_FILE_SIZE_MB = 100;\n\nexport const MIME_TYPES = {\n '.png': 'image/png',\n '.bmp': 'image/bmp',\n '.gif': 'image/gif',\n '.jpeg': 'image/jpeg',\n '.jpg': 'image/jpeg',\n '.htm': 'text/html',\n '.html': 'text/html',\n '.csv': 'text/csv',\n '.rtf': 'application/rtf',\n '.txt': 'text/plain',\n '.pdf': 'application/pdf',\n '.doc': 'application/msword',\n '.xls': 'application/vnd.ms-excel',\n '.ppt': 'application/vnd.ms-powerpoint',\n '.odt': 'application/vnd.oasis.opendocument.text',\n '.xlsx': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n '.ppsx': 'application/vnd.openxmlformats-officedocument.presentationml.slideshow',\n '.docx': 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n '.pptx': 'application/vnd.openxmlformats-officedocument.presentationml.presentation',\n};\n\nexport const GOOGLE_MIME_TYPES = {\n 'application/vnd.google-apps.document': MIME_TYPES['.pdf'],\n 'application/vnd.google-apps.spreadsheet': MIME_TYPES['.pdf'],\n 'application/vnd.google-apps.presentation': MIME_TYPES['.pdf'],\n};\n\nexport const FREE_DOCUMENTS_PER_MONTH = 3;\n\nexport const DEFAULT_CANVAS_FONTSIZE = 46;\nexport const DEFAULT_CANVAS_TEXT_WIDTH = 300;\nexport const CONFIRMATION_CODE_LENGTH = 8;\nexport const IDLE_TIMEOUT_MINUTES = Number(process.env.REACT_APP_IDLE_TIMEOUT_MINUTES);\nexport const UNDER_MAINTENANCE_START = process.env.REACT_APP_UNDER_MAINTENANCE_START;\nexport const UNDER_MAINTENANCE_STOP = process.env.REACT_APP_UNDER_MAINTENANCE_STOP;\nexport const STRIPE_PUBLIC_KEY = process.env.REACT_APP_STRIPE_PUBLIC_KEY as string;\nexport const IS_BLACK_FRIDAY = process.env.REACT_APP_IS_BLACK_FRIDAY === 'true';\nexport const IS_END_OF_YEAR = process.env.REACT_APP_IS_END_OF_YEAR === 'true';\n\nexport const NODE_ENV = process.env.NODE_ENV;\nexport const SENTRY_DSN = process.env.REACT_APP_SENTRY_DSN;\n\nexport const SENTRY_TRACES_SAMPLE_RATE = process.env.REACT_APP_SENTRY_TRACES_SAMPLE_RATE\n ? Number.parseFloat(process.env.REACT_APP_SENTRY_TRACES_SAMPLE_RATE)\n : 0.1;\nexport const SENTRY_SAMPLE_RATE = process.env.REACT_APP_SENTRY_SAMPLE_RATE\n ? Number.parseFloat(process.env.REACT_APP_SENTRY_SAMPLE_RATE)\n : 0.1;\n\nexport const VERSION = npmPackageMeta.version;\nexport const WORKFLOW_PREFIX = process.env.REACT_APP_WORKFLOW_PREFIX as string;\n\nexport const START_YEAR = 2020;\nexport const CURRENT_YEAR = new Date().getFullYear();\n\nexport const DISABLE_SALE_PLAN_TYPES = process.env.REACT_APP_DISABLE_SALE_PLAN_TYPE;\nexport const DISABLE_SALE_PLAN_DURATIONS =\n process.env.REACT_APP_DISABLE_SALE_PLAN_DURATION;\n\nexport const ZIP_ARCHIVE_DOCUMENT_COUNT = 100;\n\nexport const FREE_SIGNERS_LIMIT = 15;\nexport const FREE_VIEWERS_LIMIT = 15;\n\nexport const APPSUMO_STANDARD_TEAM_LIMIT = 3;\n","import { Dispatch } from 'redux';\nimport { FieldValidator, FORM_ERROR } from 'final-form';\nimport uuid from 'uuid/v4';\nimport dayjs from 'dayjs';\nimport { START_WATCH_PROMISIFIED_ACTION } from 'Store/actionTypes';\nimport { Action, DatePipeOptions } from 'Interfaces/Common';\nimport { AsyncActionCreator } from 'Interfaces/ActionCreators';\nimport { isEmpty, isArray } from 'lodash';\nimport { DocumentFieldTypes } from 'Interfaces/DocumentFields';\nimport Papa from 'papaparse';\nimport { User, UserRoles, WorkflowVersions } from 'Interfaces/User';\nimport { DocumentBulkSendValues } from 'Interfaces/Document';\nimport {\n DISABLE_SALE_PLAN_DURATIONS,\n DISABLE_SALE_PLAN_TYPES,\n FRONTEND_URL_VERSION_B,\n WORKFLOW_PREFIX,\n} from './constants';\nimport { ApiPlanTypes, PlanDurations, PlanTypes } from 'Interfaces/Billing';\n\nexport const fakeRequest = (data: T, delay = 1500) =>\n new Promise(resolve => {\n setTimeout(() => {\n resolve(data);\n }, delay);\n });\n\nexport const checkPermission = (\n userRole: UserRoles,\n allowedRoles?: Array | UserRoles,\n): boolean => {\n return isArray(allowedRoles)\n ? allowedRoles.includes(userRole)\n : allowedRoles === undefined || userRole === allowedRoles;\n};\n\nexport const promisifyAsyncAction = <\n TAsyncActionCreator extends AsyncActionCreator,\n TRequest = ReturnType['payload'],\n TSuccess = ReturnType['payload']\n>(\n actionCreators: TAsyncActionCreator,\n) => (dispatch: Dispatch, payload?: TRequest): Promise =>\n new Promise((resolve, reject) =>\n dispatch({\n type: START_WATCH_PROMISIFIED_ACTION,\n payload,\n meta: {\n defer: { resolve, reject },\n taskId: uuid(),\n actionCreators,\n },\n }),\n );\n\nexport const parseJwtToken = (token: string) => {\n const dataString = atob(token.split('.')[1]);\n return JSON.parse(dataString);\n};\n\nexport const parseCsvByStep = (file: File, rowLimit?: number, columnLimit?: number) => {\n let counter = 0;\n const results: string[][] = [];\n\n return new Promise((resolve, reject) => {\n Papa.parse(file, {\n step: (row, parser) => {\n if (rowLimit && counter > rowLimit) {\n reject(new Error(`Maximum number of rows is ${rowLimit}`));\n parser.abort();\n }\n if (columnLimit && row.data.length > columnLimit) {\n reject(new Error(`Maximum number of columns is ${columnLimit}`));\n parser.abort();\n }\n\n results.push(row.data);\n counter++;\n },\n\n complete: () => resolve(results),\n });\n });\n};\n\nexport const callActionAsync = async (\n action: Action,\n actionPayload: TPayload,\n loaderToggler: Function = () => {},\n): Promise => {\n let result;\n\n try {\n loaderToggler(true);\n result = await action(actionPayload);\n } finally {\n loaderToggler(false);\n }\n\n return result;\n};\n\nexport const findOffsetParent = (\n fromElement: HTMLElement | null,\n predicate: (offsetParent: HTMLElement | null) => boolean,\n elementsPath: HTMLElement[] = [],\n): {\n anchor: Element | null;\n elementsPath: HTMLElement[];\n} => {\n if (!fromElement) return { anchor: fromElement, elementsPath };\n\n const offsetParent = fromElement.offsetParent as HTMLElement;\n\n if (predicate(offsetParent)) {\n return {\n anchor: offsetParent,\n elementsPath,\n };\n }\n\n const nextElementsPath = [...elementsPath, offsetParent];\n\n return findOffsetParent(offsetParent, predicate, nextElementsPath);\n};\n\nexport const composeValidators = (\n ...validators: FieldValidator[]\n) => (...args: Parameters>) =>\n validators.reduce((error, validator) => error || validator(...args), undefined);\n\nexport const isExpired = (expirationDate?: string | number) =>\n dayjs().isAfter(dayjs(expirationDate));\n\nexport const moveArrayItem = (\n itemsArray: T[],\n sourceIndex: number,\n destinationIndex: number,\n): T[] => {\n const tempItemsArray = [...itemsArray];\n\n tempItemsArray.splice(destinationIndex, 0, tempItemsArray.splice(sourceIndex, 1)[0]);\n\n return tempItemsArray;\n};\n\nexport const sleep = (ms: number) => new Promise(resolve => setTimeout(resolve, ms));\n\nexport const isNotEmpty = (entity: {} | T): entity is T => {\n return !isEmpty(entity);\n};\n\nexport const base64ToFile = (base64String: string, filename: string) => {\n const arr = base64String.split(',');\n const mime = (arr[0].match(/:(.*?);/) as string[])[1];\n const bstr = atob(arr[1]);\n const u8arr = new Uint8Array(bstr.length);\n\n u8arr.forEach((item, index) => {\n u8arr[index] = bstr.charCodeAt(index);\n });\n\n return new File([u8arr], filename, { type: mime });\n};\n\nexport const openPopupCenter = (\n url: string,\n title: string,\n width: number,\n height: number,\n) => {\n const left = window.screen.width / 2 - width / 2;\n const top = window.screen.height / 2 - height / 2;\n\n return window.open(\n url,\n title,\n `\n toolbar=no,\n location=no,\n directories=no,\n status=no,\n menubar=no,\n scrollbars=no,\n resizable=no,\n copyhistory=no,\n width=${width},\n height=${height},\n top=${top},\n left=${left},\n `,\n ) as Window;\n};\n\nexport const mapSubmissionErrors = errors => {\n let result = {};\n errors.forEach(error => {\n result = {\n ...result,\n [error.property]:\n error.children && error.children.length\n ? mapSubmissionErrors(error.children)\n : Object.keys(error.constraints)\n .map(key => error.constraints[key])\n .join(' '),\n };\n });\n return result;\n};\n\nexport const processSubmissionErrors = error => {\n if (error.errors && Array.isArray(error.errors)) {\n return mapSubmissionErrors(error.errors);\n }\n\n if (error.message) {\n return { [FORM_ERROR]: error.message };\n }\n\n return { [FORM_ERROR]: 'Something went wrong' };\n};\n\nexport const maxLengthArray = (arrayA: T1[], arrayB: T2[]) =>\n arrayA.length >= arrayB.length ? arrayA : arrayB;\n\nexport const getCurrentDate = (format = 'MM/DD/YYYY') => dayjs().format(format);\n\nexport const checkIfDateOrText = (type: DocumentFieldTypes) =>\n [DocumentFieldTypes.Name, DocumentFieldTypes.Text, DocumentFieldTypes.Date].includes(\n type,\n );\n\nexport const isCheckbox = (type: DocumentFieldTypes) =>\n type === DocumentFieldTypes.Checkbox;\n\nexport const isRequisite = (type: DocumentFieldTypes) =>\n [DocumentFieldTypes.Signature, DocumentFieldTypes.Initials].includes(type);\n\nconst maxValueMonth = [31, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\nconst formatOrder = ['YYYY', 'YY', 'MM', 'DD'];\n\nexport function createAutoCorrectedDatePipe(\n dateFormat = 'MM DD YYYY',\n {\n minYYYY = 1,\n maxYYYY = 9999,\n minYY = 0,\n maxYY = 99,\n isSameOrFuture = false,\n }: DatePipeOptions = {},\n) {\n const dateFormatArray = dateFormat\n .split(/[^DMY]+/)\n .sort((a, b) => formatOrder.indexOf(a) - formatOrder.indexOf(b));\n\n return function(conformedValue) {\n const dateValue = dayjs(conformedValue);\n const todayDate = dayjs(dayjs(Date.now()).format(dateFormat));\n\n if (isSameOrFuture && dateValue.isValid() && dateValue.isBefore(todayDate)) {\n return false;\n }\n\n const indexesOfPipedChars = [];\n const maxValue = { DD: 31, MM: 12, YY: maxYY, YYYY: maxYYYY };\n const minValue = { DD: 1, MM: 1, YY: minYY, YYYY: minYYYY };\n const conformedValueArr = conformedValue.split('');\n // Check first digit\n dateFormatArray.forEach(format => {\n const position = dateFormat.indexOf(format);\n const maxFirstDigit = parseInt(maxValue[format].toString().substr(0, 1), 10);\n\n if (parseInt(conformedValueArr[position], 10) > maxFirstDigit) {\n conformedValueArr[position + 1] = conformedValueArr[position];\n conformedValueArr[position] = 0;\n //@ts-ignore\n indexesOfPipedChars.push(position);\n }\n });\n\n // Check for invalid date\n let month = 0;\n\n const isInvalid = dateFormatArray.some(format => {\n const position = dateFormat.indexOf(format);\n const length = format.length;\n const textValue = conformedValue.substr(position, length).replace(/\\D/g, '');\n const value = parseInt(textValue, 10);\n\n if (format === 'MM') {\n month = value || 0;\n }\n\n const maxValueForFormat = format === 'DD' ? maxValueMonth[month] : maxValue[format];\n\n if (format === 'YYYY' || format === 'YY') {\n const scopedMaxValue = parseInt(\n maxValue[format].toString().substring(0, textValue.length),\n 10,\n );\n const scopedMinValue = parseInt(\n minValue[format].toString().substring(0, textValue.length),\n 10,\n );\n return value < scopedMinValue || value > scopedMaxValue;\n }\n return (\n value > maxValueForFormat ||\n (textValue.length === length && value < minValue[format])\n );\n });\n\n if (isInvalid) {\n return false;\n }\n\n return {\n value: conformedValueArr.join(''),\n indexesOfPipedChars,\n };\n };\n}\n\nexport const handleCsvFileCrlf = (values: DocumentBulkSendValues) => {\n const signers = values.signers;\n\n if (!signers) {\n return values;\n }\n\n const lastSigner = signers[signers.length - 1];\n const isCRLF = lastSigner && !lastSigner.name && !lastSigner.email;\n\n return isCRLF ? { ...values, signers: signers.slice(0, signers.length - 1) } : values;\n};\n\nexport const resizeFile = (\n file: File,\n width: number,\n height: number,\n errorMessage?: string,\n): Promise =>\n new Promise((resolve, reject) => {\n const url = URL.createObjectURL(file);\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n const img = new Image();\n\n canvas.width = width;\n canvas.height = height;\n\n img.onerror = () => reject(errorMessage || 'Something went wrong');\n img.onload = function() {\n ctx && ctx.drawImage(img, 0, 0, width, height);\n\n const res = canvas.toDataURL();\n const resizedFile = base64ToFile(res, file.name);\n resolve(resizedFile);\n };\n\n img.src = url;\n });\n\nexport const getWorkflowVersion = () => {\n const currentUrl = window.location.href;\n const prefix = WORKFLOW_PREFIX === '/' ? '' : WORKFLOW_PREFIX.split('/')[1];\n\n const match = currentUrl.match(`(?:http(s)?://)[a-zA-Z.0-9-:]+/${prefix}`);\n const referrerHost = match && match[0];\n\n return referrerHost === FRONTEND_URL_VERSION_B\n ? WorkflowVersions.B\n : WorkflowVersions.A;\n};\n\nexport const isNewTrialUser = (user: User) =>\n user.plan.type === PlanTypes.FREE && !user.teamId && user.showTrialStep;\n\nexport const disabledSalePlanTypes = DISABLE_SALE_PLAN_TYPES\n ? (DISABLE_SALE_PLAN_TYPES.split(',') as PlanTypes[])\n : [];\nexport const disabledSalePlanDurations = DISABLE_SALE_PLAN_DURATIONS\n ? (DISABLE_SALE_PLAN_DURATIONS.split(',') as PlanDurations[])\n : [];\n\nexport const isAvailablePlanForSale = (\n type: PlanTypes | ApiPlanTypes,\n duration: PlanDurations,\n) =>\n !disabledSalePlanTypes.includes(type as PlanTypes) &&\n !disabledSalePlanDurations.includes(duration);\n","import { AxiosRequestConfig } from 'axios';\nimport {\n EntityDates,\n NormalizedEntity,\n OrderingParams,\n PDFMetadata,\n PaginationData,\n PaginationParams,\n RecursivePartial,\n} from './Common';\nimport { DocumentField } from './DocumentFields';\nimport { GridItem } from './Grid';\nimport { TeamOwner } from './Team';\nimport { User, UserRoles } from './User';\n\nexport enum SignAction {\n SignDocument = 'signDocument',\n SignAndSend = 'signAndSend',\n Send = 'send',\n}\n\nexport enum SignActionLabel {\n SIGN_DOCUMENT = 'Sign a Document',\n SIGN_AND_SEND = 'Sign & Send for Signature',\n SEND = 'Send for Signature',\n}\n\nexport enum FinalStepButtonTitle {\n SIGN_DOCUMENT = 'Sign Document',\n SIGN_AND_SEND = 'Sign Document and Send for Signature',\n SEND = 'Send for Signature',\n}\n\nexport enum DocumentActions {\n SEND = 'Send',\n SAVE = 'Save',\n CREATE = 'Create',\n UPDATE = 'Update',\n}\n\nexport enum DocumentStatuses {\n API = 'api',\n DRAFT = 'draft',\n AWAITING = 'awaiting',\n COMPLETED = 'completed',\n ACTIVE = 'active',\n REPLICA = 'replica',\n PREPARING = 'preparing',\n DECLINED = 'declined',\n EXPIRED = 'expired',\n VOIDED = 'voided',\n}\n\nexport enum DocumentTypes {\n ME = 'me',\n ME_AND_OTHER = 'me_and_other',\n OTHERS = 'others',\n TEMPLATE = 'template',\n FORM_REQUEST = 'form_request',\n}\n\nexport enum DocumentDownloadTypes {\n MERGED = 'merged',\n SEPARATED = 'separated',\n}\n\nexport interface EmailRecipient {\n email: string;\n}\n\nexport interface TeammateField {\n email: string;\n name: string;\n role: UserRoles;\n}\n\nexport interface Signer extends EmailRecipient {\n id: string;\n name: string;\n role?: string;\n userId: string;\n isPreparer: boolean;\n isFinished: boolean;\n isDeclined: boolean;\n order: number;\n}\n\nexport interface BulkSendSigner extends EmailRecipient {\n name: string;\n}\n\nexport interface SignerColumnIndexes {\n name?: number;\n email?: number;\n}\n\nexport interface Role {\n id: string;\n name: string;\n userId: string;\n isPreparer: boolean;\n order: number;\n}\n\nexport interface DocumentPageFile {\n id: string;\n fileKey: string;\n order: string;\n}\n\nexport interface DocumentPart {\n id: string;\n name: string;\n order: number;\n files: DocumentPageFile[] | null;\n pdfMetadata: PDFMetadata | null;\n pdfFileKey: string;\n filesUploaded: boolean;\n originalFileName: string;\n originalFileUrl: string;\n errorText?: string;\n}\n\nexport interface Document extends Partial {\n userId?: string;\n id: string;\n title: string;\n templateId: string | null;\n message: string | null;\n fileUrl: string | null;\n shareLink: string | null;\n pdfMetadata: PDFMetadata | null;\n type: DocumentTypes;\n status: DocumentStatuses;\n pdfFileKey: string | null;\n resultDocumentPdfFileKey: string | null;\n resultPdfFileKey: string | null;\n resultActivitiesPdfFileKey: string;\n recipients: EmailRecipient[] | null;\n signers: Signer[];\n fields: DocumentField[];\n isOrdered?: boolean;\n codeAccess?: string;\n errorText?: string;\n entityType: string;\n entityId: string;\n documents: Document;\n folders: any;\n parts: DocumentPart[];\n files: DocumentPageFile[] | null;\n isFromFormRequest: boolean | null;\n deletedAt: string | null;\n testMode?: boolean;\n disableReminders: boolean;\n user: User;\n downloadType: DocumentDownloadTypes;\n expirationDate?: Date;\n}\n\nexport interface DocumentForSigners extends Omit {\n user: Document['user'] & {\n team: { id: string; owner: TeamOwner };\n };\n redirectionPage: string;\n isNeedCodeAccess?: boolean;\n}\n\nexport interface DocumentForSigning extends Omit {\n signers: SignerOption[];\n user: Document['user'] & {\n team: { id: string; owner: TeamOwner };\n };\n}\n\nexport interface DocumentsData {\n documents: NormalizedEntity;\n paginationData: PaginationData;\n}\n\ntype SlicedDocument = Pick;\n\nexport type PartialSlicedDocument = Partial>;\n\ntype DeepPartialSlicedDocument = RecursivePartial<\n SlicedDocument\n>;\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface DocumentValuesBase\n extends PartialSlicedDocument<\n | 'id'\n | 'title'\n | 'message'\n | 'isOrdered'\n | 'status'\n | 'isFromFormRequest'\n | 'expirationDate'\n > {}\n\nexport interface DocumentSignValues\n extends DocumentValuesBase,\n SlicedDocument<'type'>,\n PartialSlicedDocument<'templateId'> {}\n\nexport interface DocumentBulkSendValues\n extends SlicedDocument<'templateId' | 'title'>,\n PartialSlicedDocument<'message'>,\n DeepPartialSlicedDocument<'signers'> {}\n\nexport interface CsvEmailError {\n email?: string;\n message?: string;\n index: number;\n}\nexport interface BulkSendValidation {\n errors: CsvEmailError[];\n}\n\nexport interface OnlyMeDocumentValues\n extends DocumentSignValues,\n DeepPartialSlicedDocument<'recipients'> {}\n\nexport type DocumentValues = OnlyMeDocumentValues &\n DocumentSignValues &\n DeepPartialSlicedDocument<'signers' | 'parts'> & { isApiTemplate?: boolean };\n\nexport interface DocumentValuesPayload {\n values: DocumentValues;\n}\n\nexport interface DocumentFileUploadRequest {\n filename: string;\n}\n\nexport interface DocumentFileUploadResponse {\n signed_url: string;\n document: Pick;\n documentPart: DocumentPart;\n}\n\nexport interface DateFilter {\n dateFrom?: string;\n dateTo?: string;\n}\n\nexport enum SearchTypeEnum {\n DOCUMENTS = 'documents',\n SIGNERS = 'signers',\n CREATORS = 'creators',\n}\nexport interface FormRequestsGetPayload\n extends PaginationParams,\n DateFilter,\n OrderingParams {\n status?: DocumentStatuses[];\n searchTerm?: string | string[];\n searchType?: SearchTypeEnum;\n showType?: string;\n}\n\nexport interface DocumentIdPayload {\n documentId: Document['id'];\n}\n\nexport interface DocumentDeletePayload {\n documentId: Document['id'];\n isLocalDelete?: boolean;\n}\nexport interface DocumentIdHashPayload extends DocumentIdPayload {\n hash: string;\n}\n\nexport interface DocumentPartIdPayload {\n documentPartId?: DocumentPart['id'];\n documentId: Document['id'];\n}\n\nexport interface SignerIdPayload {\n signerId: Signer['id'];\n}\n\nexport interface TemplateMergePayload {\n templateId: Document['id'];\n sourceTemplateId: Document['id'];\n}\n\nexport interface DocumentDownloadPayload {\n documentId: Document['id'];\n signerId?: Signer['id'];\n hash?: string;\n}\n\nexport interface DocumentActivitiesDownloadPayload {\n documentId: Document['id'];\n}\n\nexport interface DocumentUpdate\n extends Pick,\n PartialSlicedDocument<\n 'title' | 'message' | 'templateId' | 'fields' | 'expirationDate'\n >,\n DeepPartialSlicedDocument<'signers' | 'recipients' | 'parts'> {\n documentId: Document['id'];\n type?: DocumentTypes;\n}\n\nexport interface DocumentUpdateQuery {\n log: boolean;\n}\n\nexport interface DocumentUpdatePayload {\n values: DocumentUpdate;\n query?: DocumentUpdateQuery;\n}\n\nexport interface DocumentDisableRemindersPayload {\n grid: GridItem;\n disableReminders: boolean;\n}\n\nexport interface DocumentDisableRemindersRequest {\n documentId: Document['id'];\n disableReminders: boolean;\n}\n\nexport interface SelectableDocument extends Document {\n isSelected: boolean;\n}\n\nexport interface DocumentUploadPayload {\n documentId: Document['id'];\n file: File;\n options?: AxiosRequestConfig;\n}\n\nexport type DocumentsAllGetPayload =\n | {\n status?: DocumentStatuses;\n type?: DocumentTypes;\n withTeammateTemplates?: boolean;\n }\n | undefined;\n\nexport type TemplatesAllGetPayload =\n | {\n withTeammateTemplates?: boolean;\n }\n | undefined;\n\nexport interface SignerDocumentIdPayload extends DocumentIdPayload {\n signerId: Signer['id'];\n}\n\nexport interface DocumentSubmitPayload extends SignerDocumentIdPayload {\n fields: DocumentField[];\n}\n\nexport interface CodeAccessPayload {\n codeAccess: string;\n documentId: Document['id'];\n signerId: Signer['id'];\n}\n\nexport interface SigningUrlGetPayload {\n documentId: Document['id'];\n userId: Signer['id'];\n}\n\nexport interface SigningUrlPayload {\n signingUrl: string;\n}\n\nexport type SignerOption = Pick<\n Signer,\n 'id' | 'name' | 'order' | 'role' | 'isFinished' | 'isPreparer' | 'isDeclined'\n> & {\n user:\n | (Pick & {\n plan: Pick;\n })\n | null;\n};\n\nexport interface DocumentSendPayload extends DocumentIdPayload {\n isTemplate?: boolean;\n}\n\nexport type DocumentConvertionData = SlicedDocument<'id' | 'pdfMetadata' | 'parts'>;\n\nexport interface RemindersSendPayload extends DocumentIdPayload {\n signersIds: Signer['id'][];\n}\n\nexport interface DocumentConvertionStatusPayload {\n isFinished: boolean;\n}\n\nexport type DocumentPreviewPagesPayload = SlicedDocument<\n 'id' | 'pdfMetadata' | 'files' | 'status'\n>;\n\nexport enum DocumentActivityTypes {\n CREATE = 'create',\n UPDATE = 'update',\n SEND = 'send',\n VIEW = 'view',\n SIGN = 'sign',\n COMPLETE = 'complete',\n REVERT = 'revert',\n DECLINE = 'decline',\n EXPIRE = 'expire',\n NOT_SIGN = 'not_sign',\n}\n\nexport interface DocumentActivity {\n id: string;\n type: DocumentActivityTypes;\n sourceIP: string | null;\n signers: Pick[] | null;\n documentId: Document['id'];\n createdAt: string;\n}\n\nexport type DocumentSharePayload = NonNullable> &\n DocumentIdPayload;\n\nexport interface FormRequestDocumentValues {\n templateId: Document['id'];\n signer: Pick | null;\n}\nexport interface FormRequestDocumentValuesPayload {\n values: FormRequestDocumentValues;\n}\n\nexport interface DocumentWithCompany extends Document {\n company: {\n name: string | null;\n logo: string;\n };\n}\n\nexport interface TemplateActivatePayload {\n documentId: Document['id'];\n status?: DocumentStatuses;\n}\n\nexport interface SigningRemindersUnlinkPayload {\n signerId: Signer['id'];\n}\n\nexport interface DocumentSeparateSignPayload {\n documentId: Document['id'];\n hash?: string;\n}\n\nexport interface InteractExtraValues {\n signers?: Signer[];\n isOrdered?: boolean;\n recipients?: EmailRecipient[];\n}\n\nexport interface GetReportByEmailPayload {\n year: number;\n}\n\nexport type DocumentStatusOption = 'awaiting' | 'unavailable' | 'completed';\n","import { useState, useCallback } from 'react';\nimport { callActionAsync } from 'Utils/functions';\nimport { Action } from 'Interfaces/Common';\n\nexport interface ExecuteAction {\n (actionPayload: TPayload): Promise;\n}\n\ntype isExecuting = {} & boolean;\n\nexport default (action: Action) => {\n const [isExecuting, setIsExecuting] = useState(false);\n const execute: ExecuteAction = useCallback(\n (actionPayload: TPayload) =>\n callActionAsync(action, actionPayload, setIsExecuting),\n [action],\n );\n\n return [execute, isExecuting] as const;\n};\n","import { useState } from 'react';\nimport { useModal } from 'react-modal-hook';\n\ninterface OpenModal {\n (): void;\n}\n\ninterface CloseModal {\n (): void;\n}\n\ntype IsOpen = {} & boolean;\n\nexport default (Component: React.FunctionComponent, inputs?: any[]) => {\n const [isModalOpen, setIsModalOpen] = useState(false);\n const [showModal, hideModal] = useModal(Component, inputs);\n\n const openModal: OpenModal = () => {\n showModal();\n setIsModalOpen(true);\n };\n\n const closeModal: CloseModal = () => {\n hideModal();\n setIsModalOpen(false);\n };\n\n return [openModal, closeModal, isModalOpen] as const;\n};\n","import { useState, useCallback, useMemo } from 'react';\n\ntype SelectableItem = T & { isSelected: boolean };\n\ninterface ToggleSelectableItem {\n (targetItemId: TItem[Key] | TItem[Key][]): void;\n}\n\ninterface ToggleSelectableItemOne {\n (targetItemId: TItem[Key]): void;\n}\n\ninterface ToggleSelectableItemMany {\n (targetItemId: TItem[Key][]): void;\n}\n\ninterface ClearSelection {\n (): void;\n}\n\nexport default (items: TItem[], idKey: Key) => {\n const [selectedItems, changeItemSelection] = useState[]>([]);\n\n const itemsSelection = useMemo(() => {\n return items.map(item => {\n const isSelected = !!selectedItems.find(\n selectedItem => selectedItem[idKey] === item[idKey],\n );\n return { ...item, isSelected };\n });\n }, [items, selectedItems, idKey]);\n\n const toggleOne: ToggleSelectableItemOne = useCallback(\n (targetItemId: TItem[Key]) => {\n const newItem = items.find(item => item[idKey] === targetItemId);\n\n let newSelectedItems;\n\n const existsSelectedItems = selectedItems.filter(\n item => item[idKey] === targetItemId,\n );\n if (existsSelectedItems.length) {\n newSelectedItems = selectedItems.filter(item => item[idKey] !== targetItemId);\n } else {\n newSelectedItems = [...selectedItems, newItem];\n }\n changeItemSelection(newSelectedItems);\n },\n [idKey, items, selectedItems],\n );\n\n const toggleMany: ToggleSelectableItemMany = useCallback(\n (targetItemIds: TItem[Key][]) => {\n const newItems = items.filter(item =>\n targetItemIds.find(targetItemId => item[idKey] === targetItemId),\n );\n\n let newSelectedItems;\n\n const isAllSelected = targetItemIds.every(targetItemId =>\n selectedItems.find(item => item[idKey] === targetItemId),\n );\n\n if (isAllSelected) {\n newSelectedItems = selectedItems.filter(\n item => !targetItemIds.find(targetItemId => targetItemId === item[idKey]),\n );\n } else {\n newSelectedItems = [...selectedItems, ...newItems];\n }\n changeItemSelection(newSelectedItems);\n },\n [idKey, items, selectedItems],\n );\n\n const toggleItemSelection: ToggleSelectableItem = useCallback(\n (targetItem: TItem[Key] | TItem[Key][]) => {\n if (Array.isArray(targetItem)) {\n toggleMany(targetItem);\n } else {\n toggleOne(targetItem);\n }\n },\n [toggleMany, toggleOne],\n );\n\n const clearSelection: ClearSelection = useCallback(() => {\n changeItemSelection([]);\n }, []);\n\n return [itemsSelection, toggleItemSelection, selectedItems, clearSelection] as const;\n};\n","import { useState, useCallback } from 'react';\n\ntype Toggleable = {} & boolean;\n\ninterface Toggle {\n (): void;\n}\n\nexport default (initialState: Toggleable) => {\n const [state, setState] = useState(initialState);\n\n const toggle: Toggle = useCallback(() => {\n setState(!state);\n }, [state]);\n\n return [state, toggle] as const;\n};\n","const LocalStorage = window.localStorage;\nconst SessionStorage = window.sessionStorage;\n\nconst ACCESS_TOKEN_NAME = 'accessToken';\nconst REDIRECT_ROUTER_PATH = 'redirectRouterPath';\n\nclass StorageService {\n getItem = key => {\n const item = LocalStorage.getItem(key);\n return item;\n };\n setItem = (key: string, value) => {\n LocalStorage.setItem(key, value.toString());\n };\n removeItem = (key: string) => {\n LocalStorage.removeItem(key);\n };\n\n removeAccessToken = () => {\n LocalStorage.removeItem(ACCESS_TOKEN_NAME);\n SessionStorage.removeItem(ACCESS_TOKEN_NAME);\n };\n\n setAccessToken = value => {\n LocalStorage.setItem(ACCESS_TOKEN_NAME, value.toString());\n SessionStorage.setItem(ACCESS_TOKEN_NAME, value.toString());\n };\n\n getAccessToken = () => {\n const localAccessToken = LocalStorage.getItem(ACCESS_TOKEN_NAME);\n const sessionAccessToken = SessionStorage.getItem(ACCESS_TOKEN_NAME);\n\n if (localAccessToken && !sessionAccessToken) {\n SessionStorage.setItem(ACCESS_TOKEN_NAME, localAccessToken);\n\n return localAccessToken;\n }\n\n if (!localAccessToken || localAccessToken !== sessionAccessToken) return undefined;\n\n return localAccessToken;\n };\n\n setRedirectRoutePath = (value: string) => {\n SessionStorage.setItem(REDIRECT_ROUTER_PATH, value);\n };\n\n getRedirectRoutePath = () => {\n return SessionStorage.getItem(REDIRECT_ROUTER_PATH);\n };\n\n removeRedirectRoutePath = () => {\n SessionStorage.removeItem(REDIRECT_ROUTER_PATH);\n };\n}\n\nexport default new StorageService();\n","import axios from 'axios';\nimport StorageService from 'Services/Storage';\nimport { API_URL } from 'Utils/constants';\n\nexport default async (accessToken, optHeaders = {}) => {\n let token = accessToken;\n const workflowReferer = window.location.href;\n const headers: Record = {\n ...optHeaders,\n workflow_referer: workflowReferer,\n };\n\n // fallback to JWT for old users\n if (!token) {\n token = StorageService.getAccessToken();\n }\n\n if (token) {\n headers.authorization = `Bearer ${token}`;\n }\n\n return axios.create({\n headers,\n withCredentials: true,\n baseURL: API_URL,\n });\n};\n","import httpClient from 'Services/HttpClient';\nimport StorageService from 'Services/Storage';\nimport { UserResponseData } from 'Interfaces/Auth';\nimport axios, { AxiosRequestConfig } from 'axios';\n\nclass ApiService {\n protected request = {\n post: (token?: string) => async (\n uri: string,\n data?: TData,\n config?: AxiosRequestConfig,\n ): Promise => {\n try {\n const request = await httpClient(token);\n const response = await request.post(uri, data, config);\n\n return response.data;\n } catch (error) {\n return this.handleRequestError(token, uri, error);\n }\n },\n put: (token?: string) => async (\n uri: string,\n data: TData,\n config?: AxiosRequestConfig,\n ): Promise => {\n try {\n const request = await httpClient(token);\n const response = await request.put(uri, data, config);\n\n return response.data;\n } catch (error) {\n return this.handleRequestError(token, uri, error);\n }\n },\n patch: (token?: string) => async (\n uri: string,\n data?: TData,\n config?: AxiosRequestConfig,\n ): Promise => {\n try {\n const request = await httpClient(token);\n const response = await request.patch(uri, data, config);\n\n return response.data;\n } catch (error) {\n return this.handleRequestError(token, uri, error);\n }\n },\n get: (token?: string) => async (\n uri: string,\n config?: AxiosRequestConfig,\n ): Promise => {\n try {\n const request = await httpClient(token);\n const response = await request.get(uri, config);\n\n return response.data;\n } catch (error) {\n return this.handleRequestError(token, uri, error);\n }\n },\n delete: (token?: string) => async (\n uri: string,\n config?: AxiosRequestConfig,\n ): Promise => {\n try {\n const request = await httpClient(token);\n const response = await request.delete(uri, config);\n\n return response.data;\n } catch (error) {\n return this.handleRequestError(token, uri, error);\n }\n },\n };\n\n protected handleRequestError = (token, uri, error) => {\n if (axios.isCancel(error)) {\n return {} as TResponse;\n }\n\n if (error.response && error.response.data) {\n return this.handleExpiredToken(\n error.response.data,\n this.request.delete,\n token,\n uri,\n );\n }\n\n throw error;\n };\n\n protected handleExpiredToken = async (errorData, action, token, ...args) => {\n if (errorData.statusCode === 403 && errorData.message === 'Token expired!') {\n return this.refreshToken(action, token, ...args);\n }\n\n throw typeof errorData === 'string' ? new Error(errorData) : errorData;\n };\n\n protected refreshToken = async (action, token, ...args) => {\n const tokenResponse = await this.request.get(token)(\n 'auth/refresh-token',\n );\n\n if (!token) {\n await StorageService.setAccessToken(tokenResponse.accessToken);\n }\n\n return action(token ? tokenResponse.accessToken : null)(...args);\n };\n\n static async uploadFile(url: string, data: any, config?: AxiosRequestConfig) {\n return axios.put(url, data, config);\n }\n\n static async downloadFile(url: string, config?: AxiosRequestConfig) {\n return axios.request({ ...config, url });\n }\n}\n\nexport default ApiService;\n","import Api from './Api';\nimport {\n AuthData,\n AuthResponseData,\n UserResponseData,\n TwillioAuthData,\n PasswordChangeData,\n SignUpWithConfrimCode,\n AuthStatuses,\n UserAccessResponseData,\n TwillioEmailConfirmData,\n SignUpData,\n SignUpWithConfirmCodeTemporary,\n} from 'Interfaces/Auth';\nimport {\n SignedUrlPayload,\n SignedUrlResponse,\n BulkSignedUrlPayload,\n BulkSignedUrlResponse,\n SignedUrlHashPayload,\n CompatibleSignedUrlPayload,\n} from 'Interfaces/Common';\nimport { TokenizedPayload, User } from 'Interfaces/User';\nimport { CodePayload, UpdateEmailPayload } from 'Interfaces/Profile';\nimport { EmailPayload } from 'Interfaces/Auth';\nimport { getWorkflowVersion } from 'Utils/functions';\n\nclass AuthApi extends Api {\n signIn = (payload: AuthData) =>\n this.request.post()('auth/sign_in', payload);\n\n signInTwillio = ({ token, payload }: TokenizedPayload) =>\n this.request.post(token)('auth/sign_in/twillio', payload);\n\n signInGoogleAuthenticator = ({ token, payload }: TokenizedPayload) =>\n this.request.post(token)(\n 'auth/sign_in/google_authenticator',\n payload,\n );\n\n signOut = () => this.request.delete()('auth/sign_out');\n\n googleSignIn = (payload: AuthData) =>\n this.request.post()('auth/google_sign_in', {\n ...payload,\n workflowVersion: getWorkflowVersion(),\n });\n\n signUp = (payload: AuthData) =>\n this.request.post()('auth/sign_up', {\n ...payload,\n workflowVersion: getWorkflowVersion(),\n });\n\n signUpTemporary = () => this.request.post()('auth/sign_up/temporary');\n\n signUpFromTemporary = (payload: SignUpData) =>\n this.request.post()('auth/sign_up/from_temporary', {\n ...payload,\n workflowVersion: getWorkflowVersion(),\n });\n\n confirmTemporary = (payload: SignUpWithConfirmCodeTemporary) =>\n this.request.post()('auth/sign_up/from_temporary/confirm', payload);\n\n signUpWithPlanPrepare = (payload: AuthData) =>\n this.request.post()('auth/sign_up/prepare', {\n ...payload,\n workflowVersion: getWorkflowVersion(),\n });\n\n signUpWithConfirmCode = (payload: SignUpWithConfrimCode) =>\n this.request.post()('auth/sign_up/with_code', payload);\n\n confirmEmail = (token?: string) =>\n this.request.post(token)('auth/confirm_email/confirm');\n\n confirmEmailByTwilio = ({\n token,\n payload,\n }: TokenizedPayload) =>\n this.request.post(token)('auth/confirm_email/twilio', payload);\n\n sendConformationEmail = (payload: EmailPayload) =>\n this.request.post()('auth/confirm_email/send', payload);\n\n sendPasswordChangeEmail = async (payload: EmailPayload) =>\n this.request.post()(`auth/change_password/send_mail`, payload);\n\n changePassword = async ({ token, payload }: TokenizedPayload) =>\n this.request.post(token)(`auth/change_password/change`, payload);\n\n getSignedGetUrl = ({ token, payload }: TokenizedPayload) => {\n return this.request.post(token)('auth/get_signed_url', payload);\n };\n\n getCompatibleSignedGetUrl = ({\n token,\n payload,\n }: TokenizedPayload) => {\n return this.request.post(token)(\n 'auth/get_compatible_signed_url',\n payload,\n );\n };\n\n getSignedGetUrlHash = ({ hash, ...payload }: SignedUrlHashPayload) => {\n return this.request.post()('auth/get_signed_url/hash', payload, {\n params: { hash },\n });\n };\n\n getSignedGetUrlBulk = ({ token, payload }: TokenizedPayload) => {\n return this.request.post(token)(\n 'auth/get_signed_url/bulk',\n payload,\n );\n };\n\n getSignedPutUrl = ({ token, payload }: TokenizedPayload) =>\n this.request.post(token)('auth/put_signed_url', payload);\n\n getSignedPutAssetUrl = (payload: SignedUrlPayload) =>\n this.request.post()('auth/put_signed_asset_url', payload);\n\n getSignedDownloadUrl = ({ token, payload }: TokenizedPayload) => {\n return this.request.post(token)(\n 'auth/get_signed_download_url',\n payload,\n );\n };\n\n appSumoSignIn = (token: string) => {\n return this.request.post(token)('auth/sign_in/appsumo');\n };\n\n updateEmail = (payload: UpdateEmailPayload) => {\n return this.request.post()('auth/email/change', payload);\n };\n\n getEmbedSignedUrlBulk = ({\n token,\n payload,\n }: TokenizedPayload) => {\n return this.request.post(token)(\n 'auth/embed/get_signed_url/bulk',\n payload,\n );\n };\n\n ltdSignUp = (payload: AuthData) =>\n this.request.post()('auth/sign_up/ltd', {\n ...payload,\n workflowVersion: getWorkflowVersion(),\n });\n}\n\nexport default new AuthApi();\n","import { User, Company, UserAvatar } from 'Interfaces/User';\nimport Api from './Api';\nimport {\n PhoneVerifyPayload,\n CodePayload,\n PhoneCodePayload,\n CodeGeneratePayload,\n ProfileInfoPayload,\n} from 'Interfaces/Profile';\nimport { AxiosRequestConfig } from 'axios';\nimport { DocumentIdPayload } from 'Interfaces/Document';\nimport { UpdateGoogleClientId } from 'Interfaces/Auth';\nimport { getWorkflowVersion } from 'Utils/functions';\n\nclass UserApi extends Api {\n getUser = () => this.request.get()('user');\n\n updateProfileInfo = async (values: ProfileInfoPayload) =>\n this.request.patch()(`user/profile`, values);\n\n updateCompanyInfo = async (values: Company) =>\n this.request.patch()(`user/company`, values);\n\n verifyPhone = async (payload: PhoneVerifyPayload) =>\n this.request.post()(`user/verify_phone`, payload);\n\n disableTwillio2fa = async (payload: PhoneCodePayload) =>\n this.request.post()(`user/disable_twillio`, payload);\n\n generateCode = async (payload: CodeGeneratePayload) => {\n const { phone, scope, recaptcha } = payload;\n const params: AxiosRequestConfig['params'] = { scope };\n\n return this.request.post()(\n `user/generate_twillio_code`,\n { phone, recaptcha },\n { params },\n );\n };\n\n verifyGoogleCode = async (payload: CodePayload) =>\n this.request.post()(`user/verify_google_code`, payload);\n\n disableGoogleAuthenticator = async (payload: CodePayload) =>\n this.request.post()(`user/disable_google_authenticator`, payload);\n\n enableGoogleAuthenticator = async () => {\n return this.request.post()(`user/enable_google_authenticator`, undefined, {\n responseType: 'blob',\n });\n };\n\n deleteAccount = async () => this.request.delete()(`user`);\n\n subscribeToAPIUpdates = () => {\n return this.request.post()('user/api_updates/subscribe');\n };\n\n unsubscribeFromAPIUpdates = () => {\n return this.request.post()('user/api_updates/unsubscribe');\n };\n\n getSignersAvatars = (payload: DocumentIdPayload) => {\n return this.request.get()(`user/signers_avatars/${payload.documentId}`);\n };\n\n updateGoogleClientId = (payload: UpdateGoogleClientId) => {\n return this.request.patch()('user/google_client_id/update', {\n ...payload,\n workflowVersion: getWorkflowVersion(),\n });\n };\n\n getCompanyInfo = () => this.request.get()('user/company_info');\n}\n\nexport default new UserApi();\n","import io from 'socket.io-client';\nimport { eventChannel } from 'redux-saga';\nimport { getType, EmptyActionCreator, PayloadAction, Action } from 'typesafe-actions';\nimport { call, take, put, cancelled, fork, cancel } from 'redux-saga/effects';\nimport { API_BASE_URL } from 'Utils/constants';\nimport { User } from 'Interfaces/User';\nimport StorageService from './Storage';\n\ninterface WatcherActionCreators {\n stop: EmptyActionCreator;\n failure: (error) => PayloadAction;\n}\n\ninterface SocketEventEmitter {\n (\n event: string,\n dataToEmit,\n successActionCreator: (data) => Action,\n errorActionCreator: (error) => Action,\n ): void;\n}\n\nexport class SocketService {\n client: SocketIOClient.Socket | null = null;\n\n connect = () => {\n if (!this.client) {\n this.client = io(API_BASE_URL, {\n autoConnect: false,\n transports: ['websocket'],\n upgrade: false,\n });\n this.client.open();\n }\n };\n\n disconnect = () => {\n if (this.client?.connected) {\n this.client.close();\n this.client = null;\n }\n };\n\n on = (event: string, cb: (data) => void) => {\n this.client?.on(event, cb);\n };\n\n emit = (event: string, data, cb: (data) => void) => {\n this.client?.emit(event, data, cb);\n };\n\n private createSocketEventChannel = (event: string, data?: any) =>\n eventChannel(emitter => {\n if (data) {\n this.emit(event, data, emitter);\n\n return () => {};\n }\n\n this.on(event, emitter);\n\n return () => this.client?.removeEventListener(event);\n });\n\n private *channelizeSocketEvent(event: string, handlerActionCreator) {\n const socketEventChannel = yield call(this.createSocketEventChannel, event);\n\n try {\n while (true) {\n const data = yield take(socketEventChannel);\n\n yield put(handlerActionCreator(data));\n }\n } finally {\n if (yield cancelled()) {\n socketEventChannel.close();\n }\n }\n }\n\n private *watchSocketEvent<\n THandlerActionCreator,\n TWatcherActionCreators extends WatcherActionCreators\n >(\n event: string,\n handlerActionCreator: THandlerActionCreator,\n watcherActionCreators: TWatcherActionCreators,\n ) {\n try {\n const channelTask = yield fork(\n this.channelizeSocketEvent.bind(this),\n event,\n handlerActionCreator,\n );\n\n yield take(getType(watcherActionCreators.stop));\n\n yield cancel(channelTask);\n } catch (error) {\n yield put(watcherActionCreators.failure(error));\n }\n }\n\n createSocketEventWatcher = <\n THandlerActionCreator,\n TWatcherActionCreators extends WatcherActionCreators\n >(\n event: string,\n handlerActionCreator: THandlerActionCreator,\n watcherActionCreators: TWatcherActionCreators,\n ) =>\n this.watchSocketEvent.bind(this, event, handlerActionCreator, watcherActionCreators);\n\n private *emitSocketEvent(...args: Parameters) {\n const [event, dataToEmit, successActionCreator, errorActionCreator] = args;\n\n const socketEventChannel = yield call(\n this.createSocketEventChannel,\n event,\n dataToEmit,\n );\n\n try {\n const data = yield take(socketEventChannel);\n\n yield put(successActionCreator(data));\n } catch (error) {\n yield put(errorActionCreator(error));\n } finally {\n socketEventChannel.close();\n }\n }\n\n createSocketEventEmitter = (...args: Parameters) =>\n this.emitSocketEvent.bind(this, ...args);\n\n joinRoom = async (userId: User['id']) => {\n const accessToken = await StorageService.getAccessToken();\n\n return new Promise((resolve, reject) => {\n const errorHandler = err => {\n this.client?.off('exception', errorHandler);\n this.client?.off('disconnect', errorHandler);\n reject(err);\n };\n\n this.on('exception', errorHandler);\n this.on('disconnect', errorHandler);\n this.emit(\n 'join',\n {\n userId,\n headers: { authorization: `Bearer ${accessToken}` },\n },\n data => {\n this.client?.off('exception', errorHandler);\n this.client?.off('disconnect', errorHandler);\n resolve(data);\n },\n );\n });\n };\n}\n\nexport default new SocketService();\n","import {\n AuthResponseData,\n UserResponseData,\n TwoFactorResponseData,\n EmailConfirmationData,\n SignUpWithPlanResponseData,\n CodeConfirmationData,\n} from 'Interfaces/Auth';\nimport {\n DocumentForSigners,\n DocumentForSigning,\n DocumentStatuses,\n} from 'Interfaces/Document';\nimport { isNotEmpty } from './functions';\n\nexport const isUserResponseData = (data: AuthResponseData): data is UserResponseData => {\n return (data as UserResponseData).user !== undefined;\n};\n\nexport const isEmailConfirmationData = (\n data: AuthResponseData,\n): data is EmailConfirmationData => {\n return (data as EmailConfirmationData).isEmailConfirmed !== undefined;\n};\n\nexport const isTwoFactorResponseData = (\n data: AuthResponseData,\n): data is TwoFactorResponseData => {\n return (data as TwoFactorResponseData).twoFactorToken !== undefined;\n};\n\nexport const isCodeSend = (\n data: SignUpWithPlanResponseData,\n): data is CodeConfirmationData => {\n return (data as CodeConfirmationData).codeSend;\n};\n\nexport const isDocumentAccessRequired = (\n data: DocumentForSigners,\n): data is DocumentForSigners => {\n return (data as DocumentForSigners).isNeedCodeAccess !== undefined;\n};\n\nexport const isDocumentWithSingleSigners = (\n data: DocumentForSigning | {},\n): data is DocumentForSigning =>\n isNotEmpty(data) && isNotEmpty(data.signers) && data.signers.length === 1;\n\nexport const isDocumentWithMultipleSigners = (\n data: DocumentForSigning | {},\n): data is DocumentForSigning =>\n isNotEmpty(data) && isNotEmpty(data.signers) && data.signers.length > 1;\n\nexport const shouldOpenDocumentSignersModal = (\n data: DocumentForSigning | {},\n): data is DocumentForSigning =>\n isDocumentWithMultipleSigners(data) &&\n data.status !== DocumentStatuses.COMPLETED &&\n (data.status !== DocumentStatuses.AWAITING ||\n !data.signers.every(signer => signer.isFinished));\n","export const SignInActionType = 'user/SIGN_IN';\n\nexport const TwoFactorStepActionType = 'user/TWO_FACTOR_STEP';\n\nexport const SetEmailConfirmedActionType = 'user/SET_EMAIL_CONFIRMED';\n\nexport const InitAccessTokenType = 'user/INIT_ACCESS_TOKEN';\n\nexport const InitAccessTokenFinishType = 'user/INIT_ACCESS_TOKEN_FINISH';\n\nexport enum PrimarySignInActionTypes {\n request = 'user/SIGN_IN_PRIMARY/REQUEST',\n success = 'user/SIGN_IN_PRIMARY/SUCCESS',\n failure = 'user/SIGN_IN_PRIMARY/FAILURE',\n cancel = 'user/SIGN_IN_PRIMARY/CANCEL',\n}\n\nexport enum TwillioSignInActionTypes {\n request = 'user/SIGN_IN_TWILLIO/REQUEST',\n success = 'user/SIGN_IN_TWILLIO/SUCCESS',\n failure = 'user/SIGN_IN_TWILLIO/FAILURE',\n cancel = 'user/SIGN_IN_TWILLIO/CANCEL',\n}\n\nexport enum GoogleAuthenticatorSignInActionTypes {\n request = 'user/SIGN_IN_GOOGLE_AUTHENTICATOR/REQUEST',\n success = 'user/SIGN_IN_GOOGLE_AUTHENTICATOR/SUCCESS',\n failure = 'user/SIGN_IN_GOOGLE_AUTHENTICATOR/FAILURE',\n cancel = 'user/SIGN_IN_GOOGLE_AUTHENTICATOR/CANCEL',\n}\n\nexport enum VerifyGoogleCodeActionTypes {\n request = 'user/VERIFY_GOOGLE_CODE/REQUEST',\n success = 'user/VERIFY_GOOGLE_CODE/SUCCESS',\n failure = 'user/VERIFY_GOOGLE_CODE/FAILURE',\n cancel = 'user/VERIFY_GOOGLE_CODE/CANCEL',\n}\n\nexport enum DisableGoogleAuthenticatorActionTypes {\n request = 'user/DISABLE_GOOGLE_2FA/REQUEST',\n success = 'user/DISABLE_GOOGLE_2FA/SUCCESS',\n failure = 'user/DISABLE_GOOGLE_2FA/FAILURE',\n cancel = 'user/DISABLE_GOOGLE_2FA/CANCEL',\n}\n\nexport enum EnableGoogleAuthenticatorActionTypes {\n request = 'user/ENABLE_GOOGLE_2FA/REQUEST',\n success = 'user/ENABLE_GOOGLE_2FA/SUCCESS',\n failure = 'user/ENABLE_GOOGLE_2FA/FAILURE',\n cancel = 'user/ENABLE_GOOGLE_2FA/CANCEL',\n}\n\nexport enum SignUpActionTypes {\n request = 'user/SIGN_UP/REQUEST',\n success = 'user/SIGN_UP/SUCCESS',\n failure = 'user/SIGN_UP/FAILURE',\n cancel = 'user/SIGN_UP/CANCEL',\n}\n\nexport enum SignUpTemporaryActionTypes {\n request = 'user/SIGN_UP_TEMPORARY/REQUEST',\n success = 'user/SIGN_UP_TEMPORARY/SUCCESS',\n failure = 'user/SIGN_UP_TEMPORARY/FAILURE',\n cancel = 'user/SIGN_UP_TEMPORARY/CANCEL',\n}\n\nexport enum SignUpFromTemporaryActionTypes {\n request = 'user/SIGN_UP_FROM_TEMPORARY/REQUEST',\n success = 'user/SIGN_UP_FROM_TEMPORARY/SUCCESS',\n failure = 'user/SIGN_UP_FROM_TEMPORARY/FAILURE',\n cancel = 'user/SIGN_UP_FROM_TEMPORARY/CANCEL',\n}\n\nexport enum ConfirmTemporaryActionTypes {\n request = 'user/CONFIRM_TEMPORARY/REQUEST',\n success = 'user/CONFIRM_TEMPORARY/SUCCESS',\n failure = 'user/CONFIRM_TEMPORARY/FAILURE',\n cancel = 'user/CONFIRM_TEMPORARY/CANCEL',\n}\n\nexport enum LtdSignUpActionTypes {\n request = 'user/LTD_SIGN_UP/REQUEST',\n success = 'user/LTD_SIGN_UP/SUCCESS',\n failure = 'user/LTD_SIGN_UP/FAILURE',\n cancel = 'user/LTD_SIGN_UP/CANCEL',\n}\n\nexport enum SignedGetUrlActionTypes {\n request = 'document/SIGNED_GET_URL/REQUEST',\n success = 'document/SIGNED_GET_URL/SUCCESS',\n failure = 'document/SIGNED_GET_URL/FAILURE',\n cancel = 'document/SIGNED_GET_URL/CANCEL',\n}\n\nexport enum СompatibleSignedGetUrlActionTypes {\n request = 'document/COMPATIBLE_SIGNED_GET_URL/REQUEST',\n success = 'document/COMPATIBLE_SIGNED_GET_URL/SUCCESS',\n failure = 'document/COMPATIBLE_SIGNED_GET_URL/FAILURE',\n cancel = 'document/COMPATIBLE_SIGNED_GET_URL/CANCEL',\n}\n\nexport enum SignedGetUrlActionTypesHash {\n request = 'document/SIGNED_GET_URL_HASH/REQUEST',\n success = 'document/SIGNED_GET_URL_HASH/SUCCESS',\n failure = 'document/SIGNED_GET_URL_HASH/FAILURE',\n cancel = 'document/SIGNED_GET_URL_HASH/CANCEL',\n}\n\nexport enum SignedGetUrlBulkActionTypes {\n request = 'document/SIGNED_GET_URL_BULK/REQUEST',\n success = 'document/SIGNED_GET_URL_BULK/SUCCESS',\n failure = 'document/SIGNED_GET_URL_BULK/FAILURE',\n cancel = 'document/SIGNED_GET_URL_BULK/CANCEL',\n}\n\nexport enum SignedGetDownloadUrlActionTypes {\n request = 'document/SIGNED_GET_DOWNLOAD_URL/REQUEST',\n success = 'document/SIGNED_GET_DOWNLOAD_URL/SUCCESS',\n failure = 'document/SIGNED_GET_DOWNLOAD_URL/FAILURE',\n cancel = 'document/SIGNED_GET_DOWNLOAD_URL/CANCEL',\n}\n\nexport enum SignedPutUrlActionTypes {\n request = 'document/SIGNED_PUT_URL/REQUEST',\n success = 'document/SIGNED_PUT_URL/SUCCESS',\n failure = 'document/SIGNED_PUT_URL/FAILURE',\n cancel = 'document/SIGNED_PUT_URL/CANCEL',\n}\n\nexport enum SignedPutAssetUrlActionTypes {\n request = 'document/SIGNED_PUT_ASSET_URL/REQUEST',\n success = 'document/SIGNED_PUT_ASSET_URL/SUCCESS',\n failure = 'document/SIGNED_PUT_ASSET_URL/FAILURE',\n cancel = 'document/SIGNED_PUT_ASSET_URL/CANCEL',\n}\n\nexport enum CurrentUserGetActionTypes {\n request = 'user/GET_CURRENT_USER/REQUEST',\n success = 'user/GET_CURRENT_USER/SUCCESS',\n failure = 'user/GET_CURRENT_USER/FAILURE',\n cancel = 'user/GET_CURRENT_USER/CANCEL',\n}\n\nexport enum RequisitePutActionTypes {\n request = 'user/PUT_REQUISITE/REQUEST',\n success = 'user/PUT_REQUISITE/SUCCESS',\n failure = 'user/PUT_REQUISITE/FAILURE',\n cancel = 'user/PUT_REQUISITE/CANCEL',\n}\n\nexport enum UpdateProfileInfoActionTypes {\n request = 'user/UPDATE_PROFILE_INFO/REQUEST',\n success = 'user/UPDATE_PROFILE_INFO/SUCCESS',\n failure = 'user/UPDATE_PROFILE_INFO/FAILURE',\n cancel = 'user/UPDATE_PROFILE_INFO/CANCEL',\n}\n\nexport enum UpdateEmailActionTypes {\n request = 'user/UPDATE_EMAIL/REQUEST',\n success = 'user/UPDATE_EMAIL/SUCCESS',\n failure = 'user/UPDATE_EMAIL/FAILURE',\n cancel = 'user/UPDATE_EMAIL/CANCEL',\n}\n\nexport enum UpdateCompanyInfoActionTypes {\n request = 'user/UPDATE_COMPANY_INFO/REQUEST',\n success = 'user/UPDATE_COMPANY_INFO/SUCCESS',\n failure = 'user/UPDATE_COMPANY_INFO/FAILURE',\n cancel = 'user/UPDATE_COMPANY_INFO/CANCEL',\n}\n\nexport enum GenerateCodeActionTypes {\n request = 'user/GENERATE_CODE/REQUEST',\n success = 'user/GENERATE_CODE/SUCCESS',\n failure = 'user/GENERATE_CODE/FAILURE',\n cancel = 'user/GENERATE_CODE/CANCEL',\n}\n\nexport enum VerifyPhoneActionTypes {\n request = 'user/VERIFY_PHONE/REQUEST',\n success = 'user/VERIFY_PHONE/SUCCESS',\n failure = 'user/VERIFY_PHONE/FAILURE',\n cancel = 'user/VERIFY_PHONE/CANCEL',\n}\n\nexport enum DisableTwoFactorActionTypes {\n request = 'user/DISABLE_TWO_FACTOR/REQUEST',\n success = 'user/DISABLE_TWO_FACTOR/SUCCESS',\n failure = 'user/DISABLE_TWO_FACTOR/FAILURE',\n cancel = 'user/DISABLE_TWO_FACTOR/CANCEL',\n}\n\nexport enum DeleteAccountActionTypes {\n request = 'user/DELETE_ACCOUNT/REQUEST',\n success = 'user/DELETE_ACCOUNT/SUCCESS',\n failure = 'user/DELETE_ACCOUNT/FAILURE',\n cancel = 'user/DELETE_ACCOUNT/CANCEL',\n}\n\nexport enum PutCompanyLogoActionTypes {\n request = 'user/PUT_COMPANY_LOGO/REQUEST',\n success = 'user/PUT_COMPANY_LOGO/SUCCESS',\n failure = 'user/PUT_COMPANY_LOGO/FAILURE',\n cancel = 'user/PUT_COMPANY_LOGO/CANCEL',\n}\n\nexport enum PutAvatarActionTypes {\n request = 'user/PUT_AVATAR/REQUEST',\n success = 'user/PUT_AVATAR/SUCCESS',\n failure = 'user/PUT_AVATAR/FAILURE',\n cancel = 'user/PUT_AVATAR/CANCEL',\n}\n\nexport enum SendPasswordChangeEmailActionTypes {\n request = 'user/RESET_PASSWORD_LOGO/REQUEST',\n success = 'user/RESET_PASSWORD_LOGO/SUCCESS',\n failure = 'user/RESET_PASSWORD_LOGO/FAILURE',\n cancel = 'user/RESET_PASSWORD_LOGO/CANCEL',\n}\n\nexport enum ChangePasswordActionTypes {\n request = 'user/CHANGE_PASSWORD/REQUEST',\n success = 'user/CHANGE_PASSWORD/SUCCESS',\n failure = 'user/CHANGE_PASSWORD/FAILURE',\n cancel = 'user/CHANGE_PASSWORD/CANCEL',\n}\n\nexport enum ConfirmEmailActionTypes {\n request = 'user/EMAIL_CONFIRM/REQUEST',\n success = 'user/EMAIL_CONFIRM/SUCCESS',\n failure = 'user/EMAIL_CONFIRM/FAILURE',\n cancel = 'user/EMAIL_CONFIRM/CANCEL',\n}\n\nexport enum ConfirmEmailByTwilioActionTypes {\n request = 'user/EMAIL_CONFIRM_BY_TWILIO/REQUEST',\n success = 'user/EMAIL_CONFIRM_BY_TWILIO/SUCCESS',\n failure = 'user/EMAIL_CONFIRM_BY_TWILIO/FAILURE',\n cancel = 'user/EMAIL_CONFIRM_BY_TWILIO/CANCEL',\n}\n\nexport enum SendEmailConfirmationActionTypes {\n request = 'user/SEND_EMAIL_CONFIRMATION/REQUEST',\n success = 'user/SEND_EMAIL_CONFIRMATION/SUCCESS',\n failure = 'user/SEND_EMAIL_CONFIRMATION/FAILURE',\n cancel = 'user/SEND_EMAIL_CONFIRMATION/CANCEL',\n}\n\nexport enum SubscribeOnAPIUpdatesActionTypes {\n request = 'user/SUBSCRIBE_ON_API_UPDATES/REQUEST',\n success = 'user/SUBSCRIBE_ON_API_UPDATES/SUCCESS',\n failure = 'user/SUBSCRIBE_ON_API_UPDATES/FAILURE',\n cancel = 'user/SUBSCRIBE_ON_API_UPDATES/CANCEL',\n}\n\nexport enum UnsubscribeFromAPIUpdatesActionTypes {\n request = 'user/UNSUBSCRIBE_FROM_API_UPDATES/REQUEST',\n success = 'user/UNSUBSCRIBE_FROM_API_UPDATES/SUCCESS',\n failure = 'user/UNSUBSCRIBE_FROM_API_UPDATES/FAILURE',\n cancel = 'user/UNSUBSCRIBE_FROM_API_UPDATES/CANCEL',\n}\n\nexport enum SignInAppSumoUserActionTypes {\n request = 'user/SIGN_IN_APPSUMO_USER/REQUEST',\n success = 'user/SIGN_IN_APPSUMO_USER/SUCCESS',\n failure = 'user/SIGN_IN_APPSUMO_USER/FAILURE',\n cancel = 'user/SIGN_IN_APPSUMO_USER/CANCEL',\n}\n\nexport enum SignersAvatarsGetActionTypes {\n request = 'user/GET_SIGNERS_AVATARS/REQUEST',\n success = 'user/GET_SIGNERS_AVATARS/SUCCESS',\n failure = 'user/GET_SIGNERS_AVATARS/FAILURE',\n cancel = 'user/GET_SIGNERS_AVATARS/CANCEL',\n}\n\nexport enum SignUpWithPlanPrepareActionTypes {\n request = 'user/SIGN_UP_WITH_PLAN_PREPARE/REQUEST',\n success = 'user/SIGN_UP_WITH_PLAN_PREPARE/SUCCESS',\n failure = 'user/SIGN_UP_WITH_PLAN_PREPARE/FAILURE',\n cancel = 'user/SIGN_UP_WITH_PLAN_PREPARE/CANCEL',\n}\n\nexport enum SignUpWithConfirmCodeActionTypes {\n request = 'user/SIGN_UP_WITH_CONFIRM_CODE/REQUEST',\n success = 'user/SIGN_UP_WITH_CONFIRM_CODE/SUCCESS',\n failure = 'user/SIGN_UP_WITH_CONFIRM_CODE/FAILURE',\n cancel = 'user/SIGN_UP_WITH_CONFIRM_CODE/CANCEL',\n}\n\nexport enum UpdateGoogleClientIdActionTypes {\n request = 'user/UPDATE_GOOGLE_CLIENT_ID/REQUEST',\n success = 'user/UPDATE_GOOGLE_CLIENT_ID/SUCCESS',\n failure = 'user/UPDATE_GOOGLE_CLIENT_ID/FAILURE',\n cancel = 'user/UPDATE_GOOGLE_CLIENT_ID/CANCEL',\n}\n\nexport const LogoutActionType = 'user/LOGOUT';\n\nexport enum SignOutActionTypes {\n request = 'user/LOGOUT/REQUEST',\n success = 'user/LOGOUT/SUCCESS',\n failure = 'user/LOGOUT/FAILURE',\n cancel = 'user/LOGOUT/CANCEL',\n}\n\nexport enum EmbedSignedUrlBulkGetActionTypes {\n request = 'document/GET_EMBED_SIGNED_URL_BULK/REQUEST',\n success = 'document/GET_EMBED_SIGNED_URL_BULK/SUCCESS',\n failure = 'document/GET_EMBED_SIGNED_URL_BULK/FAILURE',\n cancel = 'document/GET_EMBED_SIGNED_URL_BULK/CANCEL',\n}\n\nexport const setIntegrationActionType = 'user/SET_INTEGRATION';\n\nexport const setUnauthorizedActionType = 'user/SET_UNAUTHORIZED';\n\nexport const setEmailConfirmationDataType = 'user/SET_EMAIL_CONFIRMATION_DATA';\n\nexport const SetPasswordTokenType = 'user/SET_PASSWORD_RESET_TOKEN/SET';\n\nexport const ClearPasswordTokenType = 'user/SET_PASSWORD_RESET_TOKEN/CLEAR';\n\nexport const ApplyAppSumoLinkType = 'user/APPSUMO_LINK_APPLY/CLEAR';\n\nexport const SetEmailTokenType = 'user/SET_EMAIL_RESET_TOKEN/SET';\n\nexport const ClearEmailTokenType = 'user/SET_EMAIL_RESET_TOKEN/CLEAR';\n\nexport const SocketConnectActionType = 'user/CONNECT_SOCKET';\n\nexport const SocketDisconnectActionType = 'user/DISCONNECT_SOCKET';\n\nexport const SocketJoinRoom = 'user/JOIN_SOCKET_ROOM';\n\nexport const ClearIntegrationDataType = 'user/CLEAR_INTEGRATION_DATA';\n\nexport const ClearShowTrialSuccessPageType = 'user/SHOW_TRIAL_SUCCESS_MODAL/CLEAR';\n","import { Location } from 'history';\nimport { Document } from 'Interfaces/Document';\n\nexport interface Action {\n (arg: TPayload): TResponse;\n}\n\nexport enum RequestErrorTypes {\n QUOTA_EXCEEDED = 'QuotaExceeded',\n}\n\nexport interface RequestError {\n type: RequestErrorTypes;\n message: string;\n}\n\nexport interface PaginationParams {\n page: number;\n limit: number;\n}\n\nexport interface OrderingParams {\n orderingKey: string;\n orderingDirection: string;\n}\n\nexport interface SelectableOption {\n value: TValue;\n label: string;\n}\n\nexport interface PaginationData {\n pageCount: number;\n totalItems: number;\n itemsCount: number;\n}\n\nexport interface TablePaginationProps extends PaginationData {\n itemsLimit: number;\n pageNumber: number;\n}\n\nexport enum UploadStatuses {\n UPLOADED = 'uploaded',\n CANCELLED = 'cancelled',\n ERROR = 'ERROR',\n}\n\nexport interface SignedUrlPayload {\n key: string;\n}\n\nexport interface CompatibleSignedUrlPayload extends SignedUrlPayload {\n pdfFileKey: Document['pdfFileKey'];\n}\n\nexport interface SignedUrlHashPayload {\n key: string;\n hash: string;\n documentId: string;\n}\n\nexport interface SignedUrlResponse {\n result: string;\n}\n\nexport interface SignedPartDocumentUrlResponse {\n resultDocumentPdfFileKey: string;\n id: string;\n}\n\nexport interface SignedPartDocumentActivityUrlResponse {\n resultActivitiesPdfFileKey: string;\n id: string;\n}\n\nexport interface BulkSignedUrlPayload {\n keys: string[];\n}\n\nexport interface BulkSignedUrlResponse {\n [key: string]: string;\n}\n\nexport interface NormalizedEntity {\n [key: string]: T;\n}\n\nexport interface EntityDates {\n createdAt?: string;\n updatedAt?: string;\n}\n\nexport enum OrderingDirection {\n ASC = 'asc',\n DESC = 'desc',\n}\n\nexport enum PDFPageLayouts {\n PORTRAIT = 'portrait',\n}\n\nexport interface PDFPageMetadata {\n width: number;\n height: number;\n layout: PDFPageLayouts;\n rotate: number;\n offsetX: number;\n offsetY: number;\n size: [this['width'], this['height']];\n mediaBox: [this['offsetX'], this['offsetY'], this['width'], this['height']];\n pageNumber: number;\n}\n\nexport interface PDFMetadata {\n [key: number]: PDFPageMetadata;\n pages: number;\n}\n\nexport type SelectableItem = T & { isSelected: boolean };\n\nexport type RecursivePartial = {\n [K in keyof T]?: RecursivePartial;\n};\n\nexport interface WrapperProps {\n location: Location;\n children: React.ReactNode;\n}\n\nexport interface ParsedCsvData {\n headers?: string[];\n rows: string[][];\n}\n\nexport interface SocketConnectPayload {\n onConnect?: () => any;\n onReconnect?: () => any;\n}\n\nexport interface DatePipeOptions {\n minYYYY?: number;\n maxYYYY?: number;\n minYY?: number;\n maxYY?: number;\n isSameOrFuture?: boolean;\n}\n\nexport interface FileItem {\n id?: string;\n token: string;\n filename: string;\n progress?: number;\n isUploaded?: boolean;\n isFinished?: boolean;\n order?: number;\n errorText?: string;\n file?: File;\n}\n\nexport type DocumentItem = FileItem & { file?: File };\n","import { User, Company, UserAvatar } from 'Interfaces/User';\nimport {\n AppSumoPayload,\n EmailConfirmationData,\n EmailPayload,\n PasswordChangeData,\n SignUpData,\n SignUpWithConfirmCodeTemporary,\n SignUpWithConfrimCode,\n SignUpWithPlanResponseData,\n TemporaryUserResponseData,\n TwillioEmailConfirmData,\n UpdateGoogleClientId,\n UserAccessResponseData,\n UserResponseData,\n} from 'Interfaces/Auth';\nimport { createAsyncAction, createAction } from 'typesafe-actions';\nimport { PromisifiedActionMeta, ActionError } from 'Interfaces/ActionCreators';\nimport { promisifyAsyncAction } from 'Utils/functions';\nimport {\n SignUpActionTypes,\n LogoutActionType,\n ApplyAppSumoLinkType,\n SignedGetUrlActionTypes,\n SignedGetUrlActionTypesHash,\n SignedPutUrlActionTypes,\n SocketConnectActionType,\n SocketDisconnectActionType,\n CurrentUserGetActionTypes,\n setUnauthorizedActionType,\n RequisitePutActionTypes,\n UpdateProfileInfoActionTypes,\n DeleteAccountActionTypes,\n PrimarySignInActionTypes,\n SocketJoinRoom,\n SignedGetDownloadUrlActionTypes,\n SendEmailConfirmationActionTypes,\n PutCompanyLogoActionTypes,\n UpdateCompanyInfoActionTypes,\n SignInActionType,\n TwoFactorStepActionType,\n TwillioSignInActionTypes,\n DisableTwoFactorActionTypes,\n VerifyPhoneActionTypes,\n GenerateCodeActionTypes,\n GoogleAuthenticatorSignInActionTypes,\n VerifyGoogleCodeActionTypes,\n DisableGoogleAuthenticatorActionTypes,\n SendPasswordChangeEmailActionTypes,\n EnableGoogleAuthenticatorActionTypes,\n ChangePasswordActionTypes,\n SetPasswordTokenType,\n ClearPasswordTokenType,\n SignedGetUrlBulkActionTypes,\n SubscribeOnAPIUpdatesActionTypes,\n UnsubscribeFromAPIUpdatesActionTypes,\n ClearEmailTokenType,\n SetEmailTokenType,\n ConfirmEmailActionTypes,\n setEmailConfirmationDataType,\n SignInAppSumoUserActionTypes,\n setIntegrationActionType,\n SignedPutAssetUrlActionTypes,\n PutAvatarActionTypes,\n SignersAvatarsGetActionTypes,\n SignUpWithConfirmCodeActionTypes,\n SignUpWithPlanPrepareActionTypes,\n UpdateEmailActionTypes,\n SetEmailConfirmedActionType,\n InitAccessTokenType,\n InitAccessTokenFinishType,\n UpdateGoogleClientIdActionTypes,\n SignOutActionTypes,\n EmbedSignedUrlBulkGetActionTypes,\n ClearIntegrationDataType,\n СompatibleSignedGetUrlActionTypes,\n ConfirmEmailByTwilioActionTypes,\n LtdSignUpActionTypes,\n SignUpTemporaryActionTypes,\n SignUpFromTemporaryActionTypes,\n ConfirmTemporaryActionTypes,\n ClearShowTrialSuccessPageType,\n} from './actionTypes';\n\nimport {\n AuthActionPayload,\n SignUpActionPayload,\n GoogleAuthenticatorData,\n TwillioAuthData,\n TwoFactorResponseData,\n AuthResponseData,\n} from 'Interfaces/Auth';\nimport { TokenPayload } from 'Interfaces/User';\nimport {\n SignedUrlPayload,\n SignedUrlHashPayload,\n SignedUrlResponse,\n SocketConnectPayload,\n UploadStatuses,\n BulkSignedUrlPayload,\n BulkSignedUrlResponse,\n NormalizedEntity,\n CompatibleSignedUrlPayload,\n} from 'Interfaces/Common';\nimport { FilePutPayload } from 'Services/AWS';\nimport {\n PhoneVerifyPayload,\n CodePayload,\n CodeGeneratePayload,\n ProfileInfoPayload,\n PhoneCodePayload,\n UpdateEmailPayload,\n} from 'Interfaces/Profile';\nimport { IntegrationActionPayload } from 'Interfaces/Integration';\nimport { DocumentIdPayload } from 'Interfaces/Document';\n\nexport const signIn = createAction(SignInActionType, (payload: User) => payload)();\n\nexport const signOut = createAsyncAction(\n SignOutActionTypes.request,\n SignOutActionTypes.success,\n SignOutActionTypes.failure,\n SignOutActionTypes.cancel,\n)<\n [undefined, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $signOut = promisifyAsyncAction(signOut);\n\nexport const setTwoFactor = createAction(\n TwoFactorStepActionType,\n (payload: TwoFactorResponseData) => payload,\n)();\n\nexport const setIsEmailConfirmed = createAction(\n SetEmailConfirmedActionType,\n (payload: boolean) => payload,\n)();\n\nexport const initAccessToken = createAction(\n InitAccessTokenType,\n (payload: TokenPayload) => payload,\n)();\n\nexport const finishInitAccessToken = createAction(InitAccessTokenFinishType)();\n\nexport const signInPrimary = createAsyncAction(\n PrimarySignInActionTypes.request,\n PrimarySignInActionTypes.success,\n PrimarySignInActionTypes.failure,\n PrimarySignInActionTypes.cancel,\n)<\n [AuthActionPayload, PromisifiedActionMeta],\n [AuthResponseData, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $signInPrimary = promisifyAsyncAction(signInPrimary);\n\nexport const signInTwillio = createAsyncAction(\n TwillioSignInActionTypes.request,\n TwillioSignInActionTypes.success,\n TwillioSignInActionTypes.failure,\n TwillioSignInActionTypes.cancel,\n)<\n [TwillioAuthData, PromisifiedActionMeta],\n [AuthResponseData, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $signInTwillio = promisifyAsyncAction(signInTwillio);\n\nexport const signInGoogleAuthenticator = createAsyncAction(\n GoogleAuthenticatorSignInActionTypes.request,\n GoogleAuthenticatorSignInActionTypes.success,\n GoogleAuthenticatorSignInActionTypes.failure,\n GoogleAuthenticatorSignInActionTypes.cancel,\n)<\n [GoogleAuthenticatorData, PromisifiedActionMeta],\n [AuthResponseData, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $signInGoogleAuthenticator = promisifyAsyncAction(signInGoogleAuthenticator);\n\nexport const verifyPhone = createAsyncAction(\n VerifyPhoneActionTypes.request,\n VerifyPhoneActionTypes.success,\n VerifyPhoneActionTypes.failure,\n VerifyPhoneActionTypes.cancel,\n)<\n [PhoneVerifyPayload, PromisifiedActionMeta],\n [User, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $verifyPhone = promisifyAsyncAction(verifyPhone);\n\nexport const verifyGoogleCode = createAsyncAction(\n VerifyGoogleCodeActionTypes.request,\n VerifyGoogleCodeActionTypes.success,\n VerifyGoogleCodeActionTypes.failure,\n VerifyGoogleCodeActionTypes.cancel,\n)<\n [CodePayload, PromisifiedActionMeta],\n [User, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $verifyGoogleCode = promisifyAsyncAction(verifyGoogleCode);\n\nexport const disableGoogleAuthenticator = createAsyncAction(\n DisableGoogleAuthenticatorActionTypes.request,\n DisableGoogleAuthenticatorActionTypes.success,\n DisableGoogleAuthenticatorActionTypes.failure,\n DisableGoogleAuthenticatorActionTypes.cancel,\n)<\n [CodePayload, PromisifiedActionMeta],\n [User, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $disableGoogleAuthenticator = promisifyAsyncAction(\n disableGoogleAuthenticator,\n);\n\nexport const enableGoogleAuthenticator = createAsyncAction(\n EnableGoogleAuthenticatorActionTypes.request,\n EnableGoogleAuthenticatorActionTypes.success,\n EnableGoogleAuthenticatorActionTypes.failure,\n EnableGoogleAuthenticatorActionTypes.cancel,\n)<\n [undefined, PromisifiedActionMeta],\n [Blob, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $enableGoogleAuthenticator = promisifyAsyncAction(enableGoogleAuthenticator);\n\nexport const disableTwillio2fa = createAsyncAction(\n DisableTwoFactorActionTypes.request,\n DisableTwoFactorActionTypes.success,\n DisableTwoFactorActionTypes.failure,\n DisableTwoFactorActionTypes.cancel,\n)<\n [PhoneCodePayload, PromisifiedActionMeta],\n [User, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $disableTwillio2fa = promisifyAsyncAction(disableTwillio2fa);\n\nexport const generateCode = createAsyncAction(\n GenerateCodeActionTypes.request,\n GenerateCodeActionTypes.success,\n GenerateCodeActionTypes.failure,\n GenerateCodeActionTypes.cancel,\n)<\n [CodeGeneratePayload, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $generateCode = promisifyAsyncAction(generateCode);\n\nexport const signUp = createAsyncAction(\n SignUpActionTypes.request,\n SignUpActionTypes.success,\n SignUpActionTypes.failure,\n SignUpActionTypes.cancel,\n)<\n [SignUpActionPayload, PromisifiedActionMeta],\n [AuthResponseData, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $signUp = promisifyAsyncAction(signUp);\n\nexport const signUpTemporary = createAsyncAction(\n SignUpTemporaryActionTypes.request,\n SignUpTemporaryActionTypes.success,\n SignUpTemporaryActionTypes.failure,\n SignUpTemporaryActionTypes.cancel,\n)<\n [undefined, PromisifiedActionMeta],\n [TemporaryUserResponseData, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $signUpTemporary = promisifyAsyncAction(signUpTemporary);\n\nexport const signUpFromTemporary = createAsyncAction(\n SignUpFromTemporaryActionTypes.request,\n SignUpFromTemporaryActionTypes.success,\n SignUpFromTemporaryActionTypes.failure,\n SignUpFromTemporaryActionTypes.cancel,\n)<\n [SignUpData, PromisifiedActionMeta],\n [TemporaryUserResponseData, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $signUpFromTemporary = promisifyAsyncAction(signUpFromTemporary);\n\nexport const confirmTemporary = createAsyncAction(\n ConfirmTemporaryActionTypes.request,\n ConfirmTemporaryActionTypes.success,\n ConfirmTemporaryActionTypes.failure,\n ConfirmTemporaryActionTypes.cancel,\n)<\n [SignUpWithConfirmCodeTemporary, PromisifiedActionMeta],\n [User, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $confirmTemporary = promisifyAsyncAction(confirmTemporary);\n\nexport const ltdSignUp = createAsyncAction(\n LtdSignUpActionTypes.request,\n LtdSignUpActionTypes.success,\n LtdSignUpActionTypes.failure,\n LtdSignUpActionTypes.cancel,\n)<\n [SignUpActionPayload, PromisifiedActionMeta],\n [AuthResponseData, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $ltdSignUp = promisifyAsyncAction(ltdSignUp);\n\nexport const getCurrentUser = createAsyncAction(\n CurrentUserGetActionTypes.request,\n CurrentUserGetActionTypes.success,\n CurrentUserGetActionTypes.failure,\n CurrentUserGetActionTypes.cancel,\n)<\n [undefined, PromisifiedActionMeta],\n [User, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $getCurrentUser = promisifyAsyncAction(getCurrentUser);\n\nexport const getSignedGetUrl = createAsyncAction(\n SignedGetUrlActionTypes.request,\n SignedGetUrlActionTypes.success,\n SignedGetUrlActionTypes.failure,\n SignedGetUrlActionTypes.cancel,\n)<\n [SignedUrlPayload, PromisifiedActionMeta],\n [SignedUrlResponse, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $getSignedGetUrl = promisifyAsyncAction(getSignedGetUrl);\n\nexport const getCompatibleSignedGetUrl = createAsyncAction(\n СompatibleSignedGetUrlActionTypes.request,\n СompatibleSignedGetUrlActionTypes.success,\n СompatibleSignedGetUrlActionTypes.failure,\n СompatibleSignedGetUrlActionTypes.cancel,\n)<\n [CompatibleSignedUrlPayload, PromisifiedActionMeta],\n [SignedUrlResponse, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $getCompatibleSignedGetUrl = promisifyAsyncAction(getCompatibleSignedGetUrl);\n\nexport const getSignedGetUrlHash = createAsyncAction(\n SignedGetUrlActionTypesHash.request,\n SignedGetUrlActionTypesHash.success,\n SignedGetUrlActionTypesHash.failure,\n SignedGetUrlActionTypesHash.cancel,\n)<\n [SignedUrlHashPayload, PromisifiedActionMeta],\n [SignedUrlResponse, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $getSignedGetUrlHash = promisifyAsyncAction(getSignedGetUrlHash);\n\nexport const getSignedGetUrlBulk = createAsyncAction(\n SignedGetUrlBulkActionTypes.request,\n SignedGetUrlBulkActionTypes.success,\n SignedGetUrlBulkActionTypes.failure,\n SignedGetUrlBulkActionTypes.cancel,\n)<\n [BulkSignedUrlPayload, PromisifiedActionMeta],\n [BulkSignedUrlResponse, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $getSignedGetUrlBulk = promisifyAsyncAction(getSignedGetUrlBulk);\n\nexport const getSignedGetDownloadUrl = createAsyncAction(\n SignedGetDownloadUrlActionTypes.request,\n SignedGetDownloadUrlActionTypes.success,\n SignedGetDownloadUrlActionTypes.failure,\n SignedGetDownloadUrlActionTypes.cancel,\n)<\n [SignedUrlPayload, PromisifiedActionMeta],\n [SignedUrlResponse, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $getSignedGetDownloadUrl = promisifyAsyncAction(getSignedGetDownloadUrl);\n\nexport const getSignedPutUrl = createAsyncAction(\n SignedPutUrlActionTypes.request,\n SignedPutUrlActionTypes.success,\n SignedPutUrlActionTypes.failure,\n SignedPutUrlActionTypes.cancel,\n)<\n [SignedUrlPayload, PromisifiedActionMeta],\n [SignedUrlResponse, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $getSignedPutUrl = promisifyAsyncAction(getSignedPutUrl);\n\nexport const getSignedPutAssetUrl = createAsyncAction(\n SignedPutAssetUrlActionTypes.request,\n SignedPutAssetUrlActionTypes.success,\n SignedPutAssetUrlActionTypes.failure,\n SignedPutAssetUrlActionTypes.cancel,\n)<\n [SignedUrlPayload, PromisifiedActionMeta],\n [SignedUrlResponse, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $getSignedPutAssetUrl = promisifyAsyncAction(getSignedPutAssetUrl);\n\nexport const putRequisite = createAsyncAction(\n RequisitePutActionTypes.request,\n RequisitePutActionTypes.success,\n RequisitePutActionTypes.failure,\n RequisitePutActionTypes.cancel,\n)<\n [FilePutPayload, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const updateProfileInfo = createAsyncAction(\n UpdateProfileInfoActionTypes.request,\n UpdateProfileInfoActionTypes.success,\n UpdateProfileInfoActionTypes.failure,\n UpdateProfileInfoActionTypes.cancel,\n)<\n [ProfileInfoPayload, PromisifiedActionMeta],\n [User, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $updateProfileInfo = promisifyAsyncAction(updateProfileInfo);\n\nexport const updateEmail = createAsyncAction(\n UpdateEmailActionTypes.request,\n UpdateEmailActionTypes.success,\n UpdateEmailActionTypes.failure,\n UpdateEmailActionTypes.cancel,\n)<\n [UpdateEmailPayload, PromisifiedActionMeta],\n [User, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $updateEmail = promisifyAsyncAction(updateEmail);\n\nexport const updateCompanyInfo = createAsyncAction(\n UpdateCompanyInfoActionTypes.request,\n UpdateCompanyInfoActionTypes.success,\n UpdateCompanyInfoActionTypes.failure,\n UpdateCompanyInfoActionTypes.cancel,\n)<\n [Company, PromisifiedActionMeta],\n [User, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $updateCompanyInfo = promisifyAsyncAction(updateCompanyInfo);\n\nexport const putCompanyLogo = createAsyncAction(\n PutCompanyLogoActionTypes.request,\n PutCompanyLogoActionTypes.success,\n PutCompanyLogoActionTypes.failure,\n PutCompanyLogoActionTypes.cancel,\n)<\n [FilePutPayload, PromisifiedActionMeta],\n [UploadStatuses, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $putCompanyLogo = promisifyAsyncAction(putCompanyLogo);\n\nexport const putAvatar = createAsyncAction(\n PutAvatarActionTypes.request,\n PutAvatarActionTypes.success,\n PutAvatarActionTypes.failure,\n PutAvatarActionTypes.cancel,\n)<\n [FilePutPayload, PromisifiedActionMeta],\n [UploadStatuses, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $putAvatar = promisifyAsyncAction(putAvatar);\n\nexport const deleteAccount = createAsyncAction(\n DeleteAccountActionTypes.request,\n DeleteAccountActionTypes.success,\n DeleteAccountActionTypes.failure,\n DeleteAccountActionTypes.cancel,\n)<\n [undefined, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $deleteAccount = promisifyAsyncAction(deleteAccount);\n\nexport const sendPasswordChangeEmail = createAsyncAction(\n SendPasswordChangeEmailActionTypes.request,\n SendPasswordChangeEmailActionTypes.success,\n SendPasswordChangeEmailActionTypes.failure,\n SendPasswordChangeEmailActionTypes.cancel,\n)<\n [EmailPayload, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $sendPasswordChangeEmail = promisifyAsyncAction(sendPasswordChangeEmail);\n\nexport const confirmEmail = createAsyncAction(\n ConfirmEmailActionTypes.request,\n ConfirmEmailActionTypes.success,\n ConfirmEmailActionTypes.failure,\n ConfirmEmailActionTypes.cancel,\n)<\n [undefined, PromisifiedActionMeta],\n [AuthResponseData, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $confirmEmail = promisifyAsyncAction(confirmEmail);\n\nexport const confirmEmailByTwilio = createAsyncAction(\n ConfirmEmailByTwilioActionTypes.request,\n ConfirmEmailByTwilioActionTypes.success,\n ConfirmEmailByTwilioActionTypes.failure,\n ConfirmEmailByTwilioActionTypes.cancel,\n)<\n [TwillioEmailConfirmData, PromisifiedActionMeta],\n [AuthResponseData, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $confirmEmailByTwilio = promisifyAsyncAction(confirmEmailByTwilio);\n\nexport const sendConformationEmail = createAsyncAction(\n SendEmailConfirmationActionTypes.request,\n SendEmailConfirmationActionTypes.success,\n SendEmailConfirmationActionTypes.failure,\n SendEmailConfirmationActionTypes.cancel,\n)<\n [EmailPayload, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $sendConformationEmail = promisifyAsyncAction(sendConformationEmail);\n\nexport const changePassword = createAsyncAction(\n ChangePasswordActionTypes.request,\n ChangePasswordActionTypes.success,\n ChangePasswordActionTypes.failure,\n ChangePasswordActionTypes.cancel,\n)<\n [PasswordChangeData, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $changePassword = promisifyAsyncAction(changePassword);\n\nexport const subscribeOnAPIUpdates = createAsyncAction(\n SubscribeOnAPIUpdatesActionTypes.request,\n SubscribeOnAPIUpdatesActionTypes.success,\n SubscribeOnAPIUpdatesActionTypes.failure,\n SubscribeOnAPIUpdatesActionTypes.cancel,\n)<\n [undefined, PromisifiedActionMeta],\n [User, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $subscribeOnAPIUpdates = promisifyAsyncAction(subscribeOnAPIUpdates);\n\nexport const unsubscribeFromAPIUpdates = createAsyncAction(\n UnsubscribeFromAPIUpdatesActionTypes.request,\n UnsubscribeFromAPIUpdatesActionTypes.success,\n UnsubscribeFromAPIUpdatesActionTypes.failure,\n UnsubscribeFromAPIUpdatesActionTypes.cancel,\n)<\n [undefined, PromisifiedActionMeta],\n [User, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const signInAppSumoUser = createAsyncAction(\n SignInAppSumoUserActionTypes.request,\n SignInAppSumoUserActionTypes.success,\n SignInAppSumoUserActionTypes.failure,\n SignInAppSumoUserActionTypes.cancel,\n)<\n [AppSumoPayload, PromisifiedActionMeta],\n [AuthResponseData, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $signInAppSumoUser = promisifyAsyncAction(signInAppSumoUser);\n\nexport const getSignersAvatars = createAsyncAction(\n SignersAvatarsGetActionTypes.request,\n SignersAvatarsGetActionTypes.success,\n SignersAvatarsGetActionTypes.failure,\n SignersAvatarsGetActionTypes.cancel,\n)<\n [DocumentIdPayload, PromisifiedActionMeta],\n [NormalizedEntity, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $getSignersAvatars = promisifyAsyncAction(getSignersAvatars);\n\nexport const signUpWithPlanPrepare = createAsyncAction(\n SignUpWithPlanPrepareActionTypes.request,\n SignUpWithPlanPrepareActionTypes.success,\n SignUpWithPlanPrepareActionTypes.failure,\n SignUpWithPlanPrepareActionTypes.cancel,\n)<\n [SignUpActionPayload, PromisifiedActionMeta],\n [SignUpWithPlanResponseData, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $signUpWithPlanPrepare = promisifyAsyncAction(signUpWithPlanPrepare);\n\nexport const signUpWithConfirmCode = createAsyncAction(\n SignUpWithConfirmCodeActionTypes.request,\n SignUpWithConfirmCodeActionTypes.success,\n SignUpWithConfirmCodeActionTypes.failure,\n SignUpWithConfirmCodeActionTypes.cancel,\n)<\n [SignUpWithConfrimCode, PromisifiedActionMeta],\n [UserResponseData, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $signUpWithConfirmCode = promisifyAsyncAction(signUpWithConfirmCode);\n\nexport const updateGoogleClientId = createAsyncAction(\n UpdateGoogleClientIdActionTypes.request,\n UpdateGoogleClientIdActionTypes.success,\n UpdateGoogleClientIdActionTypes.failure,\n UpdateGoogleClientIdActionTypes.cancel,\n)<\n [UpdateGoogleClientId, PromisifiedActionMeta],\n [User, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const getEmbedSignedUrlBulk = createAsyncAction(\n EmbedSignedUrlBulkGetActionTypes.request,\n EmbedSignedUrlBulkGetActionTypes.success,\n EmbedSignedUrlBulkGetActionTypes.failure,\n EmbedSignedUrlBulkGetActionTypes.cancel,\n)<\n [BulkSignedUrlPayload, PromisifiedActionMeta],\n [BulkSignedUrlResponse, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $getEmbedSignedUrlBulk = promisifyAsyncAction(getEmbedSignedUrlBulk);\n\nexport const $updateGoogleClientId = promisifyAsyncAction(updateGoogleClientId);\n\nexport const $unsubscribeFromAPIUpdates = promisifyAsyncAction(unsubscribeFromAPIUpdates);\n\nexport const $putRequisite = promisifyAsyncAction(putRequisite);\n\nexport const setIntegration = createAction(\n setIntegrationActionType,\n (payload: IntegrationActionPayload) => payload,\n)();\n\nexport const setUnauthorized = createAction(setUnauthorizedActionType)();\n\nexport const logout = createAction(LogoutActionType)();\n\nexport const setEmailConfirmationData = createAction(\n setEmailConfirmationDataType,\n (payload: EmailConfirmationData) => payload,\n)();\n\nexport const clearIntegrationData = createAction(\n ClearIntegrationDataType,\n (payload: IntegrationActionPayload) => payload,\n)();\n\nexport const connectSocket = createAction(\n SocketConnectActionType,\n (payload: SocketConnectPayload) => payload,\n)();\n\nexport const disconnectSocket = createAction(SocketDisconnectActionType)();\n\nexport const setPasswordToken = createAction(\n SetPasswordTokenType,\n (payload: TokenPayload) => payload,\n)();\n\nexport const clearPasswordToken = createAction(ClearPasswordTokenType)();\n\nexport const setEmailToken = createAction(\n SetEmailTokenType,\n (payload: TokenPayload) => payload,\n)();\n\nexport const clearEmailToken = createAction(ClearEmailTokenType)();\n\nexport const joinSocketRoom = createAction(SocketJoinRoom)();\n\nexport const applyAppSumoLink = createAction(ApplyAppSumoLinkType)();\n\nexport const clearShowTrialSuccessPage = createAction(ClearShowTrialSuccessPageType)();\n","export enum RequisiteValueType {\n TEXT = 'text',\n DRAW = 'draw',\n UPLOAD = 'upload',\n}\n\nexport enum RequisiteType {\n SIGN = 'sign',\n INITIAL = 'initial',\n}\n\nexport interface Requisite {\n id: string;\n siblingId: string;\n type: RequisiteType;\n valueType: RequisiteValueType;\n fileKey: string;\n text: string;\n fontSize: number;\n fontFamily: string;\n userId: string;\n createdAt: string;\n updatedAt: string;\n deletedAt: string;\n url: string;\n}\n\nexport type RequisitePayload = Pick<\n Requisite,\n 'id' | 'siblingId' | 'type' | 'valueType' | 'fileKey'\n> &\n Partial>;\n\nexport type RequisitesPayload = [RequisitePayload, RequisitePayload];\n\nexport type RequisiteSiblings = [Requisite, Requisite];\n\nexport type RequisiteDeletePayload = Pick;\n\nexport const defaultRequisiteTypesOrder = [\n RequisiteValueType.TEXT,\n RequisiteValueType.DRAW,\n RequisiteValueType.UPLOAD,\n];\n\nexport interface RequisiteSiblingValues {\n signatureValue: Requisite['text'];\n initialsValue: Requisite['text'];\n}\n\nexport interface SelectedSignature {\n id: Requisite['id'];\n siblingId: Requisite['id'];\n}\n","import axios, { AxiosRequestConfig } from 'axios';\nimport { UploadStatuses } from 'Interfaces/Common';\n\nexport interface FilePutPayload {\n url: string;\n file: File;\n options?: AxiosRequestConfig;\n}\n\nclass AWS {\n putFile = async ({ url, file, options }: FilePutPayload) => {\n try {\n return await axios.put(url, file, {\n ...options,\n headers: {\n 'Content-Type': file.type,\n },\n });\n } catch (error) {\n if (axios.isCancel(error)) {\n return { status: UploadStatuses.CANCELLED };\n }\n\n throw typeof error === 'string' ? new Error(error) : error;\n }\n };\n}\n\nexport default new AWS();\n","export enum PlanFieldTypes {\n TEXT = 'text',\n BOOLEAN = 'boolean',\n}\n\nexport enum LtdTiersIds {\n B_TIER_1 = 'prdg',\n B_TIER_2 = 'hmd5',\n B_TIER_3 = '3wt4',\n B_TIER_4 = 'g56t',\n B_TIER_5 = '34mp',\n B_TIER_3_ARCHIVED = 'gm43',\n}\n\nexport const ltdIdByNumberMap = new Map([\n [1, LtdTiersIds.B_TIER_1],\n [2, LtdTiersIds.B_TIER_2],\n [3, LtdTiersIds.B_TIER_3],\n [4, LtdTiersIds.B_TIER_4],\n [5, LtdTiersIds.B_TIER_5],\n]);\n\nexport const tierNumberById = {\n [LtdTiersIds.B_TIER_1]: 1,\n [LtdTiersIds.B_TIER_2]: 2,\n [LtdTiersIds.B_TIER_3]: 3,\n [LtdTiersIds.B_TIER_4]: 4,\n [LtdTiersIds.B_TIER_5]: 5,\n [LtdTiersIds.B_TIER_3_ARCHIVED]: 2.1,\n};\n\nexport const popularTiers = [LtdTiersIds.B_TIER_3];\n\nexport enum LtdOptionNames {\n USERS = 'Users',\n API_REQUESTS = 'API Requests',\n SIGNATURE_REQUESTS = 'Signature Requests',\n TEMPLATES = 'Templates',\n BULK_SEND_REQUESTS = 'Bulk Send Requests',\n FORMS = 'Forms',\n GOOGLE_DRIVE_INTEGRATION = 'Google Drive Integration',\n DROPBOX_INTEGRATION = 'Dropbox Integration',\n ONE_DRIVE_INTEGRATION = 'One Drive Integration',\n BOX_INTEGRATION = 'Box Integration',\n NOTIFICATIONS_AND_REMINDERS = 'Notifications and reminders',\n AUDIT_LOG_AND_HISTORY = 'Audit log and history',\n TEAM_MANAGEMENT = 'Team management',\n CUSTOM_BUSINESS_BRANDING = 'Custom business branding',\n ALL_INTEGRATIONS = 'All integrations',\n PLAN = 'Plan',\n PRICING = 'Pricing',\n}\n\nexport interface LtdOptions {\n name: LtdOptionNames;\n value: string | number | boolean;\n type: PlanFieldTypes;\n}\n\nexport const ltdOptions: LtdOptions[] = [\n {\n name: LtdOptionNames.USERS,\n value: '',\n type: PlanFieldTypes.TEXT,\n },\n {\n name: LtdOptionNames.API_REQUESTS,\n value: '',\n type: PlanFieldTypes.TEXT,\n },\n {\n name: LtdOptionNames.SIGNATURE_REQUESTS,\n value: 'Unlimited',\n type: PlanFieldTypes.TEXT,\n },\n {\n name: LtdOptionNames.TEMPLATES,\n value: 'Unlimited',\n type: PlanFieldTypes.TEXT,\n },\n {\n name: LtdOptionNames.BULK_SEND_REQUESTS,\n value: true,\n type: PlanFieldTypes.BOOLEAN,\n },\n {\n name: LtdOptionNames.FORMS,\n value: true,\n type: PlanFieldTypes.BOOLEAN,\n },\n {\n name: LtdOptionNames.GOOGLE_DRIVE_INTEGRATION,\n value: true,\n type: PlanFieldTypes.BOOLEAN,\n },\n {\n name: LtdOptionNames.DROPBOX_INTEGRATION,\n value: true,\n type: PlanFieldTypes.BOOLEAN,\n },\n {\n name: LtdOptionNames.ONE_DRIVE_INTEGRATION,\n value: true,\n type: PlanFieldTypes.BOOLEAN,\n },\n {\n name: LtdOptionNames.BOX_INTEGRATION,\n value: true,\n type: PlanFieldTypes.BOOLEAN,\n },\n {\n name: LtdOptionNames.NOTIFICATIONS_AND_REMINDERS,\n value: true,\n type: PlanFieldTypes.BOOLEAN,\n },\n {\n name: LtdOptionNames.AUDIT_LOG_AND_HISTORY,\n value: true,\n type: PlanFieldTypes.BOOLEAN,\n },\n {\n name: LtdOptionNames.TEAM_MANAGEMENT,\n value: true,\n type: PlanFieldTypes.BOOLEAN,\n },\n {\n name: LtdOptionNames.CUSTOM_BUSINESS_BRANDING,\n value: true,\n type: PlanFieldTypes.BOOLEAN,\n },\n];\n\nexport const additionalLtdOptions: LtdOptions[] = [\n {\n name: LtdOptionNames.PLAN,\n value: '',\n type: PlanFieldTypes.TEXT,\n },\n {\n name: LtdOptionNames.PRICING,\n value: '',\n type: PlanFieldTypes.TEXT,\n },\n ...ltdOptions,\n];\n\nexport const shortLtdOptions: LtdOptions[] = [\n {\n name: LtdOptionNames.USERS,\n value: '',\n type: PlanFieldTypes.TEXT,\n },\n {\n name: LtdOptionNames.SIGNATURE_REQUESTS,\n value: 'Unlimited',\n type: PlanFieldTypes.TEXT,\n },\n {\n name: LtdOptionNames.TEMPLATES,\n value: 'Unlimited',\n type: PlanFieldTypes.TEXT,\n },\n {\n name: LtdOptionNames.ALL_INTEGRATIONS,\n value: '',\n type: PlanFieldTypes.TEXT,\n },\n {\n name: LtdOptionNames.NOTIFICATIONS_AND_REMINDERS,\n value: '',\n type: PlanFieldTypes.TEXT,\n },\n {\n name: LtdOptionNames.AUDIT_LOG_AND_HISTORY,\n value: '',\n type: PlanFieldTypes.TEXT,\n },\n];\n","import { RootState } from 'typesafe-actions';\nimport { isEmpty, orderBy, values } from 'lodash';\nimport { createSelector } from 'reselect';\nimport { UserReducerState } from 'Store/ducks/user/reducer';\nimport {\n Document,\n DocumentStatuses,\n DocumentTypes,\n DocumentWithCompany,\n Signer,\n} from 'Interfaces/Document';\nimport { Company, User } from 'Interfaces/User';\nimport { PaginationData, SelectableOption } from 'Interfaces/Common';\nimport { DocumentField, DocumentFieldsState } from 'Interfaces/DocumentFields';\nimport { AuthStatuses, TwoFactorTypes } from 'Interfaces/Auth';\nimport {\n ApiPlanInfo,\n ApiPlanTypes,\n ApiSubscription,\n BillingData,\n CardFormValues,\n Invoice,\n LtdTier,\n PlanDetails,\n PlanDurations,\n SubscriptionInfo,\n} from 'Interfaces/Billing';\nimport { TeamMember } from 'Interfaces/Team';\nimport { Requisite, RequisiteType, RequisiteValueType } from 'Interfaces/Requisite';\nimport { isNotEmpty } from './functions';\nimport { ProfileInfo } from 'Interfaces/Profile';\nimport { ApiKey } from 'Interfaces/ApiKey';\nimport { RequestHistoryItem } from 'Interfaces/RequestsHistory';\nimport { Contract } from 'Interfaces/Contract';\nimport { FolderInfo, FolderTypes } from 'Interfaces/Folder';\nimport { GridItem } from 'Interfaces/Grid';\nimport { tierNumberById } from 'Pages/Settings/Billing/screens/LifeTimeDealScreen/planTableItems';\n\ninterface Reselector {\n (state, props): ReturnType;\n}\n\nexport const selectState = (state: RootState) => state;\n\nexport const selectProps = (state: RootState, props) => props;\n\nexport const selectUser = (state: RootState): User => state.user;\n\nexport const selectTwoFactorType = (state: RootState): TwoFactorTypes =>\n state.user.twoFactorType;\n\nexport const selectUserIntegrations = (state: RootState) => {\n return state.user.integrations;\n};\n\nexport const selectProfileInfo = (state: RootState) => {\n const {\n name,\n timezone,\n isReceivingReminders,\n isSendingToAllPartiesInOrderedDocument,\n isSubscribedOnProcessingToAwaitingConvert,\n isReceivingSignerSigned,\n dateFormat,\n isReceivingSigned,\n isReceivingOpenedSigning,\n isReceivingCompletedDocument,\n isSendingCompletedDocument,\n isReceivingSignatureRequestsDailyReport,\n } = state.user;\n\n return {\n name,\n timezone,\n isReceivingReminders,\n isSendingToAllPartiesInOrderedDocument,\n isSubscribedOnProcessingToAwaitingConvert,\n isReceivingSignerSigned,\n dateFormat,\n isReceivingSigned,\n isReceivingOpenedSigning,\n isReceivingCompletedDocument,\n isSendingCompletedDocument,\n isReceivingSignatureRequestsDailyReport,\n } as ProfileInfo;\n};\n\nexport const selectAvatarInfo = (state: RootState) => {\n const { name, email, avatarUrl } = state.user;\n\n return { name, email, avatarUrl };\n};\n\nexport const selectSignToken = (state: RootState): UserReducerState['signToken'] =>\n state.user.signToken;\n\nexport const selectEmbedToken = (state: RootState): UserReducerState['embedToken'] =>\n state.user.embedToken;\n\nexport const selectEmailToken = (state: RootState): UserReducerState['emailToken'] =>\n state.user.emailToken;\n\nexport const selectTwoFactorToken = (\n state: RootState,\n): UserReducerState['twoFactorToken'] => state.user.twoFactorToken;\n\nexport const selectPasswordToken = (\n state: RootState,\n): UserReducerState['passwordToken'] => state.user.passwordToken;\n\nexport const selectAuthStatus = (state: RootState): AuthStatuses => state.user.authStatus;\n\nexport const selectShowTrialSuccessPage = (state: RootState): boolean =>\n state.user.showTrialSuccessPage;\n\nexport const selectIsSecondStepCompleted = (state: RootState): boolean =>\n state.user.isSecondStepCompleted;\n\nexport const selectUserPlan = (state: RootState) => state.user.plan as PlanDetails;\n\nexport const selectSubscriptionInfo = (state: RootState): SubscriptionInfo => {\n const { subscriptionData } = state.billing;\n\n if (isEmpty(subscriptionData)) return {} as SubscriptionInfo;\n\n const addOn = subscriptionData.addOns ? subscriptionData.addOns[0] : {};\n const discount = subscriptionData.discounts?.length\n ? subscriptionData.discounts[0]\n : {};\n\n const { amount, quantity: userQuantity } = addOn;\n const {\n amount: discountAmount,\n quantity: discountQuantity,\n percent: discountPercent,\n } = discount;\n\n return {\n amount,\n discountAmount: discountAmount || 0,\n discountQuantity: discountQuantity || 0,\n discountPercent: discountPercent || 0,\n userQuantity,\n nextBillingDate: subscriptionData.nextBillingDate,\n neverExpires: subscriptionData.neverExpires,\n trialEnd: subscriptionData.trialEnd ? subscriptionData.trialEnd : undefined,\n };\n};\n\nexport const selectLtdTier = (state: RootState): LtdTier => {\n const { ltdTier } = state.billing;\n\n if (isEmpty(ltdTier)) return {} as LtdTier;\n\n const tierNumber = tierNumberById[ltdTier.id];\n\n return {\n ...ltdTier,\n tierNumber,\n } as LtdTier;\n};\n\nexport const selectApiSubscriptionInfo = (\n state: RootState,\n): ApiSubscription | undefined => {\n const { apiSubscription } = state.billing;\n\n if (apiSubscription) {\n const { apiPlan, ...apiSubscriptionInfo } = apiSubscription;\n return apiSubscriptionInfo;\n }\n};\n\nexport const selectApiPlan = (state: RootState): ApiPlanInfo => {\n const { apiSubscription } = state.billing;\n\n return apiSubscription\n ? apiSubscription.apiPlan\n : {\n type: ApiPlanTypes.FREE,\n duration: PlanDurations.MONTHLY,\n };\n};\n\nexport const selectDocuments = (state: RootState): Document[] => {\n const documents = values(state.document) || [];\n return documents.filter(document => document.type !== DocumentTypes.TEMPLATE);\n};\n\nexport const selectInvoices = (state: RootState): Invoice[] =>\n values(state.billing.invoices) || [];\n\nexport const selectInvoicesPaginationData = (state: RootState): PaginationData =>\n state.meta.invoices;\n\nexport const selectRequisites = (state: RootState): Requisite[] =>\n values(state.requisite) || [];\n\nexport const selectDocument = createSelector(\n [selectState, selectProps],\n (state: RootState, props: { documentId: Document['id'] }): Document | undefined => {\n const documentId = props.documentId;\n\n return state.document[documentId];\n },\n) as Reselector;\n\nexport const selectDocumentWithCompany = createSelector(\n [selectState, selectProps],\n (state: RootState, props: { documentId: Document['id'] }): Document | undefined => {\n const documentId = props.documentId;\n\n return state.document[documentId];\n },\n) as Reselector;\n\nexport const selectDocumentSigner = createSelector(\n [selectDocument, selectProps],\n (document: Document | undefined, props: { signerId?: Signer['id'] }) => {\n const signerId = props.signerId;\n\n return document?.signers.find(signer => signer.id === signerId);\n },\n);\n\nexport const selectDocumentSignerOptions = createSelector(\n [selectDocument, selectUser, selectProps],\n (\n document,\n user: User,\n props: { isPreparerSigner?: boolean },\n ): SelectableOption[] => {\n if (document) {\n return document.signers\n .filter(signer => props.isPreparerSigner || !signer.isPreparer)\n .map(signer => ({\n value: signer.id,\n label:\n document.type === DocumentTypes.TEMPLATE ||\n document.type === DocumentTypes.FORM_REQUEST\n ? (signer.role as string)\n : `${signer.name}${\n signer.email === user.email && !signer.isPreparer\n ? ' (Send via email)'\n : ''\n }`,\n }));\n }\n\n return [];\n },\n) as Reselector[]>;\n\nexport const selectDocumentsPaginationData = (state: RootState): PaginationData =>\n state.meta.documents;\n\nexport const selectTemplates = (state: RootState): Document[] => {\n const documents = values(state.document) || [];\n return documents.filter(document => document.type === DocumentTypes.TEMPLATE);\n};\n\nexport const selectActiveTemplates = (state: RootState): Document[] => {\n const documents = values(state.document) || [];\n return documents.filter(\n document =>\n document.type === DocumentTypes.TEMPLATE &&\n document.status === DocumentStatuses.ACTIVE,\n );\n};\n\nexport const selectFormRequests = (state: RootState): Document[] => {\n const documents = values(state.document) || [];\n return documents.filter(document => document.type === DocumentTypes.FORM_REQUEST);\n};\n\nexport const selectActiveFormRequests = (state: RootState): Document[] => {\n const documents = values(state.document) || [];\n return documents.filter(\n document =>\n document.type === DocumentTypes.FORM_REQUEST &&\n document.status === DocumentStatuses.ACTIVE,\n );\n};\n\nexport const selectOneRoleTemplates = createSelector(selectActiveTemplates, templates =>\n templates.filter(template => template.signers.length === 2),\n);\n\nexport const selectDocumentFieldsMeta = (state: RootState): DocumentFieldsState['meta'] =>\n state.documentField.meta;\n\n//@ts-ignore\nexport const selectDocumentFields = (state: RootState): DocumentField[] =>\n orderBy(values(state.documentField.fields) || [], 'createdAt', 'asc').map(field => ({\n ...field,\n style: field.style || {},\n }));\n\nexport const selectIsCompanyRedirect = (state: RootState): boolean =>\n state.company.isRedirect;\n\nexport const selectCompanyData = (state: RootState): Company => {\n const {\n tagline,\n companyEmail,\n emailTemplate,\n companyName,\n companyLogoKey,\n industry,\n redirectionPage,\n signatureTypesPreferences,\n signerAccessCodesPreferences,\n enableDownloadOriginalDocumentForSigners,\n enableIndependentRequests,\n enableIndependentActivity,\n } = state.company;\n\n return {\n tagline,\n companyEmail,\n emailTemplate,\n companyName,\n companyLogoKey,\n industry,\n redirectionPage,\n signatureTypesPreferences,\n signerAccessCodesPreferences,\n enableDownloadOriginalDocumentForSigners,\n enableIndependentRequests,\n enableIndependentActivity,\n };\n};\n\nexport const selectAvailableSignatureTypes = (state: RootState): RequisiteValueType[] => {\n const {\n isDrawnSignaturesAvailable,\n isTypedSignaturesAvailable,\n isUploadedSignaturesAvailable,\n } = state.company.signatureTypesPreferences;\n\n const availableSignatureTypes = [\n isTypedSignaturesAvailable && RequisiteValueType.TEXT,\n isDrawnSignaturesAvailable && RequisiteValueType.DRAW,\n isUploadedSignaturesAvailable && RequisiteValueType.UPLOAD,\n ].filter(Boolean);\n\n return availableSignatureTypes;\n};\n\nexport const selectBillingData = (state: RootState): BillingData => state.billing;\n\nexport const selectCardFormValues = (state: RootState): CardFormValues | undefined => {\n const { card } = state.billing;\n\n if (isNotEmpty(card)) {\n const { expirationDate, number } = card;\n\n return {\n number,\n cvv: '****',\n postalCode: '*****',\n expirationDate,\n } as CardFormValues;\n }\n};\n\nexport const selectCardType = (state: RootState) => {\n const { card } = state.billing;\n\n if (isNotEmpty(card)) {\n return card.cardType;\n }\n};\n\nexport const selectRequisite = (\n state: RootState,\n props: { requisiteId: Requisite['id'] },\n): Requisite | undefined => state.requisite[props.requisiteId];\n\nexport const selectSignatures = createSelector(selectRequisites, requisites =>\n requisites.filter(\n requisite => requisite.type === RequisiteType.SIGN && !requisite.deletedAt,\n ),\n);\n\nexport const selectInitials = createSelector(selectRequisites, requisites =>\n requisites.filter(\n requisite => requisite.type === RequisiteType.INITIAL && !requisite.deletedAt,\n ),\n);\n\nexport const selectTeamMembers = (state: RootState): TeamMember[] =>\n values(state.team) || [];\n\nexport const selectTeamMembersPaginationData = (state: RootState): PaginationData =>\n state.meta.teamMembers;\n\nexport const selectFreeDocumentsUsed = (state: RootState): number =>\n state.user.freeDocumentsUsed;\n\nexport const selectIsAppSumoLinkUsed = (state: RootState): boolean =>\n state.user.isAppSumoLinkUsed;\n\nexport const selectApiKeysPaginationData = (state: RootState): PaginationData =>\n state.meta.apiKeys;\n\nexport const selectApiKeys = (state: RootState): ApiKey[] => {\n const apiKeys = values(state.apiKey) || [];\n return apiKeys;\n};\n\nexport const selectRequestHistoryPaginationData = (state: RootState): PaginationData =>\n state.meta.requestHistory;\n\nexport const selectRequestHistory = (state: RootState): RequestHistoryItem[] => {\n const requestHistory = values(state.requestHistory) || [];\n return requestHistory;\n};\n\nexport const selectFormRequestsContracts = (state: RootState): Contract[] => {\n return values(state.contracts) || [];\n};\n\nexport const selectApiTemplatesCount = createSelector(\n selectTemplates,\n templates =>\n templates.filter(template => template.status === DocumentStatuses.API).length,\n);\n\nexport const selectCommonTemplatesCount = createSelector(\n selectTemplates,\n templates =>\n templates.filter(template => template.status !== DocumentStatuses.API).length,\n);\n\nexport const selectIsEmailConfirmed = (state: RootState) => state.meta.isEmailConfirmed;\n\nexport const selectFolderInfo = createSelector(\n [selectState, selectProps],\n (state: RootState, props: { folderId: string }): FolderInfo | undefined => {\n const folderId = props.folderId;\n\n return state.folder[folderId];\n },\n) as Reselector;\n\nexport const selectFolders = (state: RootState) => values(state.folder) || [];\n\nexport const selectFoldersByType = (type: FolderTypes) =>\n createSelector(selectFolders, folders =>\n folders.filter(folder => folder.type === type),\n );\n\nexport const selectGrid = (state: RootState): GridItem[] => {\n return values(state.grid) || [];\n};\n\nexport const selectGridPaginationData = (state: RootState): PaginationData =>\n state.meta.grid;\n\nexport const selectCurrentFolderId = (state: RootState): string | undefined =>\n state.meta.currentFolderId;\n\nexport const selectGridChildren = (gridId?: string) => (state: RootState) =>\n values(state.grid).filter(value =>\n gridId ? value.parentId === gridId : value.parentId === null,\n );\n","import {\n put,\n call,\n select,\n takeLeading,\n cancelled,\n takeEvery,\n takeLatest,\n cancel,\n} from 'redux-saga/effects';\nimport lodash from 'lodash';\nimport AuthApiService from 'Services/Api/Auth';\nimport UserApiService from 'Services/Api/User';\nimport StorageService from 'Services/Storage';\nimport SocketService from 'Services/Socket';\nimport {\n AuthResponseData,\n CodeConfirmationData,\n TemporaryUserResponseData,\n} from 'Interfaces/Auth';\nimport {\n isEmailConfirmationData,\n isTwoFactorResponseData,\n isUserResponseData,\n} from 'Utils/typeGuards';\nimport {\n signIn,\n signInPrimary,\n signInGoogleAuthenticator,\n signUp,\n logout,\n getSignedGetUrl,\n getSignedGetUrlHash,\n getSignedGetUrlBulk,\n getSignedPutUrl,\n connectSocket,\n disconnectSocket,\n getCurrentUser,\n putRequisite,\n updateProfileInfo,\n deleteAccount,\n verifyPhone,\n generateCode,\n joinSocketRoom,\n disableTwillio2fa,\n getSignedGetDownloadUrl,\n updateCompanyInfo,\n putCompanyLogo,\n signInTwillio,\n setTwoFactor,\n disableGoogleAuthenticator,\n verifyGoogleCode,\n enableGoogleAuthenticator,\n sendPasswordChangeEmail,\n changePassword,\n subscribeOnAPIUpdates,\n unsubscribeFromAPIUpdates,\n confirmEmail,\n setEmailConfirmationData,\n sendConformationEmail,\n signInAppSumoUser,\n getSignedPutAssetUrl,\n putAvatar,\n getSignersAvatars,\n signUpWithPlanPrepare,\n signUpWithConfirmCode,\n updateEmail,\n setIsEmailConfirmed,\n updateGoogleClientId,\n signOut,\n setUnauthorized,\n getEmbedSignedUrlBulk,\n getCompatibleSignedGetUrl,\n confirmEmailByTwilio,\n ltdSignUp,\n signUpTemporary,\n signUpFromTemporary,\n confirmTemporary,\n} from './actionCreators';\nimport { User, UserAvatar } from 'Interfaces/User';\nimport {\n SignedUrlResponse,\n UploadStatuses,\n BulkSignedUrlResponse,\n} from 'Interfaces/Common';\nimport AWS from 'Services/AWS';\nimport { UserReducerState } from './reducer';\nimport {\n selectSignToken,\n selectEmailToken,\n selectUser,\n selectTwoFactorToken,\n selectPasswordToken,\n selectEmbedToken,\n} from 'Utils/selectors';\nimport { isNotEmpty } from 'Utils/functions';\n\nfunction* handleSignIn(response: AuthResponseData) {\n if (isUserResponseData(response)) {\n const { user } = response;\n\n yield put(signIn(user));\n } else if (isEmailConfirmationData(response)) {\n yield put(setEmailConfirmationData(response));\n } else {\n yield put(setTwoFactor(response));\n }\n}\n\nfunction* handleAppSumoSignIn({\n payload,\n meta,\n}: ReturnType) {\n const { token } = payload;\n\n try {\n const res = yield call(AuthApiService.appSumoSignIn, token);\n yield call(handleSignIn, res);\n yield put(signInAppSumoUser.success(res, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(signInAppSumoUser.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(signInAppSumoUser.cancel(undefined, { ...meta, isLeading: true }));\n }\n }\n}\n\nfunction* handleSignInPrimary({\n payload,\n meta,\n}: ReturnType) {\n const { values } = payload;\n\n try {\n let res: AuthResponseData;\n\n if (values.id_token) {\n res = yield call(AuthApiService.googleSignIn, values);\n } else {\n res = yield call(AuthApiService.signIn, values);\n }\n\n yield call(handleSignIn, res);\n yield put(signInPrimary.success(res, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(signInPrimary.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(signInPrimary.cancel(undefined, { ...meta, isLeading: true }));\n }\n }\n}\n\nfunction* handleSignInTwillio({\n payload,\n meta,\n}: ReturnType) {\n try {\n const token: UserReducerState['twoFactorToken'] = yield select(selectTwoFactorToken);\n const res: AuthResponseData = yield call(AuthApiService.signInTwillio, {\n payload,\n token,\n });\n\n yield call(handleSignIn, res);\n yield put(signInTwillio.success(res, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(signInTwillio.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(signInTwillio.cancel(undefined, { ...meta, isLeading: true }));\n }\n }\n}\n\nfunction* handleSignInGoogleAuthenticator({\n payload,\n meta,\n}: ReturnType) {\n try {\n const token: UserReducerState['twoFactorToken'] = yield select(selectTwoFactorToken);\n\n const res: AuthResponseData = yield call(AuthApiService.signInGoogleAuthenticator, {\n payload,\n token,\n });\n\n yield call(handleSignIn, res);\n yield put(signInGoogleAuthenticator.success(res, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(signInGoogleAuthenticator.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(\n signInGoogleAuthenticator.cancel(undefined, { ...meta, isLeading: true }),\n );\n }\n }\n}\n\nfunction* handleSignUp({ payload, meta }: ReturnType) {\n const { values } = payload;\n\n try {\n let res: AuthResponseData;\n\n if (values.id_token) {\n res = yield call(AuthApiService.googleSignIn, values);\n } else {\n res = yield call(AuthApiService.signUp, values);\n }\n yield call(handleSignIn, res);\n yield put(signUp.success(res, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(signUp.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(signUp.cancel(undefined, { ...meta, isLeading: true }));\n }\n }\n}\n\nfunction* handleSignUpTemporary({ meta }: ReturnType) {\n try {\n const res: TemporaryUserResponseData = yield call(AuthApiService.signUpTemporary);\n\n StorageService.setAccessToken(res.accessToken);\n\n yield put(signUpTemporary.success(res, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(signUpTemporary.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(signUpTemporary.cancel(undefined, { ...meta, isLeading: true }));\n }\n }\n}\n\nfunction* handleSignUpFromTemporary({\n payload,\n meta,\n}: ReturnType) {\n try {\n const res: TemporaryUserResponseData = yield call(\n AuthApiService.signUpFromTemporary,\n payload,\n );\n\n if (res.accessToken) {\n StorageService.setAccessToken(res.accessToken);\n }\n\n yield put(signUpFromTemporary.success(res, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(signUpFromTemporary.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(signUpFromTemporary.cancel(undefined, { ...meta, isLeading: true }));\n }\n }\n}\n\nfunction* handleConfirmTemporary({\n payload,\n meta,\n}: ReturnType) {\n try {\n const res: User = yield call(AuthApiService.confirmTemporary, payload);\n\n StorageService.removeAccessToken();\n\n yield put(confirmTemporary.success(res, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(confirmTemporary.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(confirmTemporary.cancel(undefined, { ...meta, isLeading: true }));\n }\n }\n}\n\nfunction* handleEmailConfirm({ meta }: ReturnType) {\n try {\n const token: UserReducerState['emailToken'] = yield select(selectEmailToken);\n\n const res: AuthResponseData = yield call(AuthApiService.confirmEmail, token);\n\n if (isNotEmpty(res) && !isTwoFactorResponseData(res)) {\n yield put(setIsEmailConfirmed(true));\n }\n\n yield call(handleSignIn, res);\n yield put(confirmEmail.success(res, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(confirmEmail.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(confirmEmail.cancel(undefined, { ...meta, isLeading: true }));\n }\n }\n}\n\nfunction* handleEmailConfirmByTwilio({\n payload,\n meta,\n}: ReturnType) {\n try {\n const token: UserReducerState['twoFactorToken'] = yield select(selectTwoFactorToken);\n\n const res: AuthResponseData = yield call(AuthApiService.confirmEmailByTwilio, {\n payload,\n token,\n });\n\n yield put(setIsEmailConfirmed(true));\n yield call(handleSignIn, res);\n yield put(confirmEmailByTwilio.success(res, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(confirmEmailByTwilio.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(confirmEmailByTwilio.cancel(undefined, { ...meta, isLeading: true }));\n }\n }\n}\n\nfunction* handleConfirmationEmailSend({\n meta,\n payload,\n}: ReturnType) {\n try {\n yield call(AuthApiService.sendConformationEmail, payload);\n\n yield put(sendConformationEmail.success(undefined, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(sendConformationEmail.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(sendConformationEmail.cancel(undefined, { ...meta, isLeading: true }));\n }\n }\n}\n\nfunction* handleLogout() {\n yield StorageService.removeAccessToken();\n}\n\nfunction* handleLogoutRequest({ meta }: ReturnType) {\n try {\n yield call(AuthApiService.signOut);\n\n yield put(signOut.success(undefined, { ...meta, isLeading: true }));\n yield put(setUnauthorized());\n } catch (error) {\n yield put(signOut.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(signOut.cancel(undefined, { ...meta, isLeading: true }));\n }\n }\n}\n\nfunction* handleCurrentUserGet({ meta }: ReturnType) {\n try {\n const result: User = yield call(UserApiService.getUser);\n yield put(getCurrentUser.success(result, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(getCurrentUser.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(getCurrentUser.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleSignedGetUrlGet({\n payload,\n meta,\n}: ReturnType) {\n try {\n const token: UserReducerState['signToken'] = yield select(selectSignToken);\n\n const data: SignedUrlResponse = yield call(AuthApiService.getSignedGetUrl, {\n token,\n payload,\n });\n\n yield put(getSignedGetUrl.success(data, meta));\n } catch (error) {\n yield put(getSignedGetUrl.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(getSignedGetUrl.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleCompatibleSignedUrlGet({\n payload,\n meta,\n}: ReturnType) {\n try {\n const token: UserReducerState['signToken'] = yield select(selectSignToken);\n\n const data: SignedUrlResponse = yield call(AuthApiService.getCompatibleSignedGetUrl, {\n token,\n payload,\n });\n\n yield put(getCompatibleSignedGetUrl.success(data, meta));\n } catch (error) {\n yield put(getCompatibleSignedGetUrl.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(getCompatibleSignedGetUrl.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleSignedGetUrlGetHash({\n payload,\n meta,\n}: ReturnType) {\n try {\n const data: SignedUrlResponse = yield call(\n AuthApiService.getSignedGetUrlHash,\n payload,\n );\n\n yield put(getSignedGetUrlHash.success(data, meta));\n } catch (error) {\n yield put(getSignedGetUrlHash.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(getSignedGetUrlHash.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleSignedGetUrlBulkGet({\n payload,\n meta,\n}: ReturnType) {\n try {\n const token: UserReducerState['signToken'] = yield select(selectSignToken);\n\n const data: BulkSignedUrlResponse = yield call(AuthApiService.getSignedGetUrlBulk, {\n token,\n payload,\n });\n\n yield put(getSignedGetUrlBulk.success(data, meta));\n } catch (error) {\n yield put(getSignedGetUrlBulk.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(getSignedGetUrlBulk.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleSignedGetDownloadUrlGet({\n payload,\n meta,\n}: ReturnType) {\n try {\n const token: UserReducerState['signToken'] = yield select(selectSignToken);\n\n const data: SignedUrlResponse = yield call(AuthApiService.getSignedDownloadUrl, {\n token,\n payload,\n });\n\n yield put(getSignedGetDownloadUrl.success(data, meta));\n } catch (error) {\n yield put(getSignedGetDownloadUrl.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(getSignedGetDownloadUrl.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleSignedPutUrlGet({\n payload,\n meta,\n}: ReturnType) {\n try {\n const token: UserReducerState['signToken'] = yield select(selectSignToken);\n const data: SignedUrlResponse = yield call(AuthApiService.getSignedPutUrl, {\n token,\n payload,\n });\n\n yield put(getSignedPutUrl.success(data, meta));\n } catch (error) {\n yield put(getSignedPutUrl.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(getSignedPutUrl.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleSignedPutAssetUrlGet({\n payload,\n meta,\n}: ReturnType) {\n try {\n const data: SignedUrlResponse = yield call(\n AuthApiService.getSignedPutAssetUrl,\n payload,\n );\n\n yield put(getSignedPutAssetUrl.success(data, meta));\n } catch (error) {\n yield put(getSignedPutAssetUrl.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(getSignedPutAssetUrl.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleRequisitePut({ payload, meta }: ReturnType) {\n try {\n yield call(AWS.putFile, payload);\n yield put(putRequisite.success(undefined, meta));\n } catch (error) {\n yield put(putRequisite.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(putRequisite.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleCompanyLogoPut({\n payload,\n meta,\n}: ReturnType) {\n try {\n const result = yield call(AWS.putFile, payload);\n\n if (result && result.status === UploadStatuses.CANCELLED) {\n yield cancel();\n }\n\n yield put(putCompanyLogo.success(UploadStatuses.UPLOADED, meta));\n } catch (error) {\n yield put(putCompanyLogo.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(putCompanyLogo.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleAvatarPut({ payload, meta }: ReturnType) {\n try {\n const result = yield call(AWS.putFile, payload);\n\n if (result && result.status === UploadStatuses.CANCELLED) {\n yield cancel();\n }\n\n yield put(putAvatar.success(UploadStatuses.UPLOADED, meta));\n } catch (error) {\n yield put(putAvatar.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(putAvatar.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleProfileInfoUpdate({\n payload,\n meta,\n}: ReturnType) {\n try {\n const result: User = yield call(UserApiService.updateProfileInfo, payload);\n\n yield put(updateProfileInfo.success(result, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(updateProfileInfo.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(updateProfileInfo.cancel(undefined, { ...meta, isLeading: true }));\n }\n }\n}\n\nfunction* handleCompanyInfoUpdate({\n payload,\n meta,\n}: ReturnType) {\n try {\n const result: User = yield call(UserApiService.updateCompanyInfo, payload);\n\n yield put(updateCompanyInfo.success(result, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(updateCompanyInfo.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(updateCompanyInfo.cancel(undefined, { ...meta, isLeading: true }));\n }\n }\n}\n\nfunction* handleAccountDelete({ meta }: ReturnType) {\n try {\n yield call(UserApiService.deleteAccount);\n\n yield put(deleteAccount.success(undefined, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(deleteAccount.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(deleteAccount.cancel(undefined, { ...meta, isLeading: true }));\n }\n }\n}\n\nfunction* handleCodeGenerate({ meta, payload }: ReturnType) {\n try {\n yield call(UserApiService.generateCode, payload);\n\n yield put(generateCode.success(undefined, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(generateCode.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(generateCode.cancel(undefined, { ...meta, isLeading: true }));\n }\n }\n}\n\nfunction* handlePhoneVerify({ meta, payload }: ReturnType) {\n try {\n const user: User = yield call(UserApiService.verifyPhone, payload);\n\n yield put(verifyPhone.success(user, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(verifyPhone.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(verifyPhone.cancel(undefined, { ...meta, isLeading: true }));\n }\n }\n}\n\nfunction* handleTwillioDisable({\n meta,\n payload,\n}: ReturnType) {\n try {\n const user: User = yield call(UserApiService.disableTwillio2fa, payload);\n\n yield put(disableTwillio2fa.success(user, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(disableTwillio2fa.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(disableTwillio2fa.cancel(undefined, { ...meta, isLeading: true }));\n }\n }\n}\n\nfunction* handleGoogleAuthenticatorDisable({\n meta,\n payload,\n}: ReturnType) {\n try {\n const user: User = yield call(UserApiService.disableGoogleAuthenticator, payload);\n\n yield put(disableGoogleAuthenticator.success(user, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(disableGoogleAuthenticator.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(\n disableGoogleAuthenticator.cancel(undefined, { ...meta, isLeading: true }),\n );\n }\n }\n}\n\nfunction* handleGoogleCodeVerify({\n meta,\n payload,\n}: ReturnType) {\n try {\n const user: User = yield call(UserApiService.verifyGoogleCode, payload);\n\n yield put(verifyGoogleCode.success(user, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(verifyGoogleCode.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(verifyGoogleCode.cancel(undefined, { ...meta, isLeading: true }));\n }\n }\n}\n\nfunction* handleGoogleAuthenticatorEnable({\n meta,\n}: ReturnType) {\n try {\n const qrCode: Blob = yield call(UserApiService.enableGoogleAuthenticator);\n\n yield put(enableGoogleAuthenticator.success(qrCode, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(enableGoogleAuthenticator.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(\n enableGoogleAuthenticator.cancel(undefined, { ...meta, isLeading: true }),\n );\n }\n }\n}\n\nfunction* handlePasswordChangeEmailSend({\n payload,\n meta,\n}: ReturnType) {\n try {\n yield call(AuthApiService.sendPasswordChangeEmail, payload);\n\n yield put(sendPasswordChangeEmail.success(undefined, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(sendPasswordChangeEmail.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(sendPasswordChangeEmail.cancel(undefined, { ...meta, isLeading: true }));\n }\n }\n}\n\nfunction* handleEmailUpdate({ payload, meta }: ReturnType) {\n try {\n const user: User = yield call(AuthApiService.updateEmail, payload);\n\n yield put(updateEmail.success(user, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(updateEmail.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(updateEmail.cancel(undefined, { ...meta, isLeading: true }));\n }\n }\n}\n\nfunction* handlePasswordChange({\n payload,\n meta,\n}: ReturnType) {\n try {\n const token: UserReducerState['passwordToken'] = yield select(selectPasswordToken);\n yield call(AuthApiService.changePassword, { token, payload });\n yield put(changePassword.success(undefined, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(changePassword.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(changePassword.cancel(undefined, { ...meta, isLeading: true }));\n }\n }\n}\n\nfunction* handleSocketConnect({ payload }: ReturnType) {\n yield call(SocketService.connect);\n\n if (payload.onConnect) {\n yield call(payload.onConnect);\n }\n\n if (payload.onReconnect) {\n yield call(SocketService.on, 'reconnect', payload.onReconnect);\n }\n}\n\nfunction* handleSocketDisconnect() {\n yield call(SocketService.disconnect);\n}\n\nfunction* handleSocketRoomJoin() {\n try {\n const user: User = yield select(selectUser);\n\n yield call(SocketService.joinRoom, user.id);\n } catch (err) {\n console.error('Socket room join error', err);\n }\n}\n\nfunction* handleAPIUpdatesSubscribeOn({\n meta,\n}: ReturnType) {\n try {\n const user: User = yield call(UserApiService.subscribeToAPIUpdates);\n\n yield put(subscribeOnAPIUpdates.success(user, { isLeading: true, ...meta }));\n } catch (err) {\n yield put(subscribeOnAPIUpdates.failure(err, { isLeading: true, ...meta }));\n }\n}\n\nfunction* handleAPIUpdatesUnsubscribeFrom({\n meta,\n}: ReturnType) {\n try {\n const user: User = yield call(UserApiService.unsubscribeFromAPIUpdates);\n\n yield put(unsubscribeFromAPIUpdates.success(user, { isLeading: true, ...meta }));\n } catch (err) {\n yield put(unsubscribeFromAPIUpdates.failure(err, { isLeading: true, ...meta }));\n }\n}\n\nfunction* handleSignersAvatarsGet({\n payload,\n meta,\n}: ReturnType) {\n try {\n const userAvatars: UserAvatar[] = yield call(\n UserApiService.getSignersAvatars,\n payload,\n );\n\n const normalizedAvatars = lodash.keyBy(userAvatars, 'id');\n\n yield put(getSignersAvatars.success(normalizedAvatars, { isLeading: true, ...meta }));\n } catch (err) {\n yield put(getSignersAvatars.failure(err, { isLeading: true, ...meta }));\n }\n}\n\nfunction* handleSignUpPrepare({\n payload,\n meta,\n}: ReturnType) {\n const { values } = payload;\n\n try {\n const res: CodeConfirmationData = yield call(\n AuthApiService.signUpWithPlanPrepare,\n values,\n );\n\n yield put(signUpWithPlanPrepare.success(res, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(signUpWithPlanPrepare.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(signUpWithPlanPrepare.cancel(undefined, { ...meta, isLeading: true }));\n }\n }\n}\n\nfunction* handleSignUpWithConfrimCode({\n payload,\n meta,\n}: ReturnType) {\n const { confirmCode, userId } = payload;\n\n try {\n const res = yield call(AuthApiService.signUpWithConfirmCode, {\n confirmCode,\n userId,\n });\n\n yield put(signUpWithConfirmCode.success(res, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(signUpWithConfirmCode.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(signUpWithConfirmCode.cancel(undefined, { ...meta, isLeading: true }));\n }\n }\n}\n\nfunction* handleGoogleClientIdUpdate({\n payload,\n meta,\n}: ReturnType) {\n try {\n const user: User = yield call(UserApiService.updateGoogleClientId, payload);\n yield put(updateGoogleClientId.success(user, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(updateGoogleClientId.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(updateGoogleClientId.cancel(undefined, { ...meta, isLeading: true }));\n }\n }\n}\n\nfunction* handleEmbedSignedUrlBulkGet({\n payload,\n meta,\n}: ReturnType) {\n try {\n const token: UserReducerState['embedToken'] = yield select(selectEmbedToken);\n\n const data: BulkSignedUrlResponse = yield call(AuthApiService.getSignedGetUrlBulk, {\n token,\n payload,\n });\n\n yield put(getEmbedSignedUrlBulk.success(data, meta));\n } catch (error) {\n yield put(getEmbedSignedUrlBulk.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(getEmbedSignedUrlBulk.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleLtdSignUp({ payload, meta }: ReturnType) {\n const { values } = payload;\n\n try {\n const response: AuthResponseData = yield call(AuthApiService.ltdSignUp, values);\n\n yield call(handleSignIn, response);\n yield put(ltdSignUp.success(response, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(ltdSignUp.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(ltdSignUp.cancel(undefined, { ...meta, isLeading: true }));\n }\n }\n}\n\nexport default [\n takeLeading(signInPrimary.request, handleSignInPrimary),\n takeLeading(signInAppSumoUser.request, handleAppSumoSignIn),\n takeLeading(signInTwillio.request, handleSignInTwillio),\n takeLeading(signInGoogleAuthenticator.request, handleSignInGoogleAuthenticator),\n takeLeading(getSignersAvatars.request, handleSignersAvatarsGet),\n takeLeading(signUp.request, handleSignUp),\n takeLeading(signUpTemporary.request, handleSignUpTemporary),\n takeLeading(signUpFromTemporary.request, handleSignUpFromTemporary),\n takeLeading(confirmTemporary.request, handleConfirmTemporary),\n takeLeading(ltdSignUp.request, handleLtdSignUp),\n takeLeading(confirmEmail.request, handleEmailConfirm),\n takeLeading(confirmEmailByTwilio.request, handleEmailConfirmByTwilio),\n takeLeading(sendConformationEmail.request, handleConfirmationEmailSend),\n takeLeading(logout, handleLogout),\n takeLeading(signOut.request, handleLogoutRequest),\n takeLeading(getCurrentUser.request, handleCurrentUserGet),\n takeEvery(getSignedGetUrl.request, handleSignedGetUrlGet),\n takeEvery(getCompatibleSignedGetUrl.request, handleCompatibleSignedUrlGet),\n takeEvery(getSignedGetUrlHash.request, handleSignedGetUrlGetHash),\n takeEvery(getSignedGetUrlBulk.request, handleSignedGetUrlBulkGet),\n takeEvery(getSignedGetDownloadUrl.request, handleSignedGetDownloadUrlGet),\n takeEvery(getSignedPutUrl.request, handleSignedPutUrlGet),\n takeEvery(getSignedPutAssetUrl.request, handleSignedPutAssetUrlGet),\n takeEvery(putRequisite.request, handleRequisitePut),\n takeEvery(putCompanyLogo.request, handleCompanyLogoPut),\n takeEvery(putAvatar.request, handleAvatarPut),\n takeLatest(connectSocket, handleSocketConnect),\n takeLatest(disconnectSocket, handleSocketDisconnect),\n takeLatest(joinSocketRoom, handleSocketRoomJoin),\n takeLeading(updateProfileInfo.request, handleProfileInfoUpdate),\n takeLeading(updateEmail.request, handleEmailUpdate),\n takeLeading(updateCompanyInfo.request, handleCompanyInfoUpdate),\n takeLeading(generateCode.request, handleCodeGenerate),\n takeLeading(verifyPhone.request, handlePhoneVerify),\n takeLeading(disableGoogleAuthenticator.request, handleGoogleAuthenticatorDisable),\n takeLeading(enableGoogleAuthenticator.request, handleGoogleAuthenticatorEnable),\n takeLeading(verifyGoogleCode.request, handleGoogleCodeVerify),\n takeLeading(disableTwillio2fa.request, handleTwillioDisable),\n takeLeading(deleteAccount.request, handleAccountDelete),\n takeLeading(sendPasswordChangeEmail.request, handlePasswordChangeEmailSend),\n takeLeading(changePassword.request, handlePasswordChange),\n takeLeading(subscribeOnAPIUpdates.request, handleAPIUpdatesSubscribeOn),\n takeLeading(unsubscribeFromAPIUpdates.request, handleAPIUpdatesUnsubscribeFrom),\n takeLeading(signUpWithPlanPrepare.request, handleSignUpPrepare),\n takeLeading(signUpWithConfirmCode.request, handleSignUpWithConfrimCode),\n takeLeading(updateGoogleClientId.request, handleGoogleClientIdUpdate),\n takeEvery(getEmbedSignedUrlBulk.request, handleEmbedSignedUrlBulkGet),\n];\n","import { CardFormValues } from './Billing';\nimport { User } from './User';\n\nexport interface RecaptchaPayload {\n recaptcha: string;\n}\n\nexport interface AuthData {\n email: string;\n password?: string;\n id_token?: string;\n}\n\nexport interface EmailPayload {\n email: string;\n}\n\nexport interface ResetPasswordPayload extends EmailPayload, RecaptchaPayload {}\n\nexport interface PasswordChangeData {\n password: string;\n passwordConfirmation: string;\n}\n\nexport interface TwillioAuthData {\n code: number;\n}\n\nexport interface AppSumoPayload {\n token: string;\n}\n\nexport interface GoogleAuthenticatorData {\n code: string;\n}\n\nexport interface SignUpData extends AuthData {\n name: string;\n free?: boolean;\n}\n\nexport interface SignUpWithConfrimCode {\n confirmCode: string;\n userId: string;\n}\n\nexport type SignUpWithConfirmCodeTemporary = Omit;\n\nexport interface AuthActionPayload {\n values: AuthData;\n}\n\nexport interface SignUpActionPayload {\n values: SignUpData;\n}\n\nexport interface UserResponseData {\n accessToken: string;\n user: User;\n isNewUser?: boolean;\n}\n\nexport interface TemporaryUserResponseData {\n accessToken: string;\n user: User;\n}\n\nexport interface TwoFactorResponseData {\n twoFactorToken: string;\n twoFactorType: TwoFactorTypes;\n}\n\nexport interface CodeConfirmationData extends User {\n codeSend: boolean;\n}\n\nexport type AuthResponseData = { isSubscriptionRecover?: boolean; user?: User } & (\n | UserResponseData\n | TwoFactorResponseData\n | EmailConfirmationData\n);\n\nexport interface EmailConfirmationData {\n email: string;\n isEmailConfirmed: boolean;\n userId: string;\n}\n\nexport type SignUpWithPlanResponseData = CodeConfirmationData;\n\nexport enum AuthStatuses {\n AUTHORIZED = 'authorized',\n UNAUTHORIZED = 'unauthorized',\n TRIAL = 'trial',\n}\n\nexport enum TwoFactorTypes {\n GOOGLE = 'google',\n TWILLIO = 'twillio',\n}\n\nexport interface UpdateGoogleClientId {\n clientId: string;\n}\n\nexport interface UserAccessResponseData {\n authStatus: AuthStatuses;\n}\n\nexport interface TwillioEmailConfirmData extends TwillioAuthData {\n email: string;\n}\n\nexport interface LandingSignUpData extends SignUpData, CardFormValues {}\n\nexport enum DownloadOption {\n NOW = 'now',\n LATER = 'later',\n}\n","export enum GetCardActionTypes {\n request = 'billing/GET_CARD_CREDITALS/REQUEST',\n success = 'billing/GET_CARD_CREDITALS/SUCCESS',\n failure = 'billing/GET_CARD_CREDITALS/FAILURE',\n cancel = 'billing/GET_CARD_CREDITALS/CANCEL',\n}\n\nexport enum GetBillingDataActionTypes {\n request = 'billing/GET_BILLING_DATA/REQUEST',\n success = 'billing/GET_BILLING_DATA/SUCCESS',\n failure = 'billing/GET_BILLING_DATA/FAILURE',\n cancel = 'billing/GET_BILLING_DATA/CANCEL',\n}\n\nexport enum UpdateCardActionTypes {\n request = 'billing/UPDATE_CARD/REQUEST',\n success = 'billing/UPDATE_CARD/SUCCESS',\n failure = 'billing/UPDATE_CARD/FAILURE',\n cancel = 'billing/UPDATE_CARD/CANCEL',\n}\n\nexport enum AttachCardActionTypes {\n request = 'billing/CREATE_CARD/REQUEST',\n success = 'billing/CREATE_CARD/SUCCESS',\n failure = 'billing/CREATE_CARD/FAILURE',\n cancel = 'billing/CREATE_CARD/CANCEL',\n}\n\nexport enum GetInvoicesActionTypes {\n request = 'billing/GET_INVOICES/REQUEST',\n success = 'billing/GET_INVOICES/SUCCESS',\n failure = 'billing/GET_INVOICES/FAILURE',\n cancel = 'billing/GET_INVOICES/CANCEL',\n}\n\nexport enum GetPlansActionTypes {\n request = 'billing/GET_PLANS/REQUEST',\n success = 'billing/GET_PLANS/SUCCESS',\n failure = 'billing/GET_PLANS/FAILURE',\n cancel = 'billing/GET_PLANS/CANCEL',\n}\n\nexport enum ChangePLanActionTypes {\n request = 'billing/CHANGE_PLAN/REQUEST',\n success = 'billing/CHANGE_PLAN/SUCCESS',\n failure = 'billing/CHANGE_PLAN/FAILURE',\n cancel = 'billing/CHANGE_PLAN/CANCEL',\n}\n\nexport enum ChangeApiPLanActionTypes {\n request = 'billing/CHANGE_API_PLAN/REQUEST',\n success = 'billing/CHANGE_API_PLAN/SUCCESS',\n failure = 'billing/CHANGE_API_PLAN/FAILURE',\n cancel = 'billing/CHANGE_API_PLAN/CANCEL',\n}\n\nexport enum RemoveApiPlanActionTypes {\n request = 'billing/REMOVE_API_PLAN/REQUEST',\n success = 'billing/REMOVE_API_PLAN/SUCCESS',\n failure = 'billing/REMOVE_API_PLAN/FAILURE',\n cancel = 'billing/REMOVE_API_PLAN/CANCEL',\n}\n\nexport enum UpgradeAppSumoActionTypes {\n request = 'billing/UPGRADE_APPSUMO/REQUEST',\n success = 'billing/UPGRADE_APPSUMO/SUCCESS',\n failure = 'billing/UPGRADE_APPSUMO/FAILURE',\n cancel = 'billing/UPGRADE_APPSUMO/CANCEL',\n}\n\nexport enum GetSubscriptionDataActionTypes {\n request = 'billing/GET_SUBSCRIPTION_DATA/REQUEST',\n success = 'billing/GET_SUBSCRIPTION_DATA/SUCCESS',\n failure = 'billing/GET_SUBSCRIPTION_DATA/FAILURE',\n cancel = 'billing/GET_SUBSCRIPTION_DATA/CANCEL',\n}\n\nexport enum GetApiSubscriptionActionTypes {\n request = 'billing/GET_API_SUBSCRIPTION_DATA/REQUEST',\n success = 'billing/GET_API_SUBSCRIPTION_DATA/SUCCESS',\n failure = 'billing/GET_API_SUBSCRIPTION_DATA/FAILURE',\n cancel = 'billing/GET_API_SUBSCRIPTION_DATA/CANCEL',\n}\n\nexport enum RetryChargeActionTypes {\n request = 'billing/RETRY_CHARGE/REQUEST',\n success = 'billing/RETRY_CHARGE/SUCCESS',\n failure = 'billing/RETRY_CHARGE/FAILURE',\n cancel = 'billing/RETRY_CHARGE/CANCEL',\n}\n\nexport enum UpsellPlanActionTypes {\n request = 'billing/UPSELL_PLAN/REQUEST',\n success = 'billing/UPSELL_PLAN/SUCCESS',\n failure = 'billing/UPSELL_PLAN/FAILURE',\n cancel = 'billing/UPSELL_PLAN/CANCEL',\n}\n\nexport enum ValidatePromotionCodeActionTypes {\n request = 'billing/VALIDATE_PROMOTION_CODE/REQUEST',\n success = 'billing/VALIDATE_PROMOTION_CODE/SUCCESS',\n failure = 'billing/VALIDATE_PROMOTION_CODE/FAILURE',\n cancel = 'billing/VALIDATE_PROMOTION_CODE/CANCEL',\n}\n\nexport enum GetLastestInvoiceActionTypes {\n request = 'billing/GET_LATEST_INVOICE/REQUEST',\n success = 'billing/GET_LATEST_INVOICE/SUCCESS',\n failure = 'billing/GET_LATEST_INVOICE/FAILURE',\n cancel = 'billing/GET_LATEST_INVOICE/CANCEL',\n}\n\nexport enum CreateSetupCheckoutSession {\n request = 'billing/CREATE_SETUP_CHECKOUT/REQUEST',\n success = 'billing/CREATE_SETUP_CHECKOUT/SUCCESS',\n failure = 'billing/CREATE_SETUP_CHECKOUT/FAILURE',\n cancel = 'billing/CREATE_SETUP_CHECKOUT/CANCEL',\n}\n\nexport enum CreateSubscriptionCheckout {\n request = 'billing/CREATE_SUBSCRIPTION_CHECKOUT/REQUEST',\n success = 'billing/CREATE_SUBSCRIPTION_CHECKOUT/SUCCESS',\n failure = 'billing/CREATE_SUBSCRIPTION_CHECKOUT/FAILURE',\n cancel = 'billing/CREATE_SUBSCRIPTION_CHECKOUT/CANCEL',\n}\n\nexport enum CheckUpsellAllowed {\n request = 'billing/CHECK_UPSELL_ALLOWED/REQUEST',\n success = 'billing/CHECK_UPSELL_ALLOWED/SUCCESS',\n failure = 'billing/CHECK_UPSELL_ALLOWED/FAILURE',\n cancel = 'billing/CHECK_UPSELL_ALLOWED/CANCEL',\n}\n\nexport enum CreateBillingPortal {\n request = 'billing/CREATE_BILLING_PORTAL/REQUEST',\n success = 'billing/CREATE_BILLING_PORTAL/SUCCESS',\n failure = 'billing/CREATE_BILLING_PORTAL/FAILURE',\n cancel = 'billing/CREATE_BILLING_PORTAL/CANCEL',\n}\n\nexport enum GetUpcomingInvoice {\n request = 'billing/GET_UPCOMING_INVOICE/REQUEST',\n success = 'billing/GET_UPCOMING_INVOICE/SUCCESS',\n failure = 'billing/GET_UPCOMING_INVOICE/FAILURE',\n cancel = 'billing/GET_UPCOMING_INVOICE/CANCEL',\n}\n\nexport enum GetLtdUpcomingInvoice {\n request = 'billing/GET_LTD_UPCOMING_INVOICE/REQUEST',\n success = 'billing/GET_LTD_UPCOMING_INVOICE/SUCCESS',\n failure = 'billing/GET_LTD_UPCOMING_INVOICE/FAILURE',\n cancel = 'billing/GET_LTD_UPCOMING_INVOICE/CANCEL',\n}\n\nexport enum GetInvoiceDownloadLink {\n request = 'billing/GET_INVOICE_DONWLOAD_LINK/REQUEST',\n success = 'billing/GET_INVOICE_DONWLOAD_LINK/SUCCESS',\n failure = 'billing/GET_INVOICE_DONWLOAD_LINK/FAILURE',\n cancel = 'billing/GET_INVOICE_DONWLOAD_LINK/CANCEL',\n}\n\nexport enum ChangeLtdPlanDurationTypes {\n request = 'billing/CHANGE_LTD_PLAN_DURATION/REQUEST',\n success = 'billing/CHANGE_LTD_PLAN_DURATION/SUCCESS',\n failure = 'billing/CHANGE_LTD_PLAN_DURATION/FAILURE',\n cancel = 'billing/CHANGE_LTD_PLAN_DURATION/CANCEL',\n}\n\nexport enum CreateLtdPaymentCheckout {\n request = 'billing/CREATE_LTD_PAYMENT_CHECKOUT/REQUEST',\n success = 'billing/CREATE_LTD_PAYMENT_CHECKOUT/SUCCESS',\n failure = 'billing/CREATE_LTD_PAYMENT_CHECKOUT/FAILURE',\n cancel = 'billing/CREATE_LTD_PAYMENT_CHECKOUT/CANCEL',\n}\n\nexport enum UpgradeLtdPaymentCheckout {\n request = 'billing/UPGRADE_LTD_PAYMENT_CHECKOUT/REQUEST',\n success = 'billing/UPGRADE_LTD_PAYMENT_CHECKOUT/SUCCESS',\n failure = 'billing/UPGRADE_LTD_PAYMENT_CHECKOUT/FAILURE',\n cancel = 'billing/UPGRADE_LTD_PAYMENT_CHECKOUT/CANCEL',\n}\n\nexport enum CapturePaypalOrder {\n request = 'billing/CAPTURE_PAYPAL_ORDER/REQUEST',\n success = 'billing/CAPTURE_PAYPAL_ORDER/SUCCESS',\n failure = 'billing/CAPTURE_PAYPAL_ORDER/FAILURE',\n cancel = 'billing/CAPTURE_PAYPAL_ORDER/CANCEL',\n}\n\nexport enum GetLtdTier {\n request = 'billing/GET_LTD_TIER/REQUEST',\n success = 'billing/GET_LTD_TIER/SUCCESS',\n failure = 'billing/GET_LTD_TIER/FAILURE',\n cancel = 'billing/GET_LTD_TIER/CANCEL',\n}\n\nexport enum GetLtdTiers {\n request = 'billing/GET_LTD_TIERS/REQUEST',\n success = 'billing/GET_LTD_TIERS/SUCCESS',\n failure = 'billing/GET_LTD_TIERS/FAILURE',\n cancel = 'billing/GET_LTD_TIERS/CANCEL',\n}\n\nexport enum ValidateLtdCode {\n request = 'billing/VALIDATE_LTD_CODE/REQUEST',\n success = 'billing/VALIDATE_LTD_CODE/SUCCESS',\n failure = 'billing/VALIDATE_LTD_CODE/FAILURE',\n cancel = 'billing/VALIDATE_LTD_CODE/CANCEL',\n}\n\nexport enum RedeemLtdCode {\n request = 'billing/REDEEM_LTD_CODE/REQUEST',\n success = 'billing/REDEEM_LTD_CODE/SUCCESS',\n failure = 'billing/REDEEM_LTD_CODE/FAILURE',\n cancel = 'billing/REDEEM_LTD_CODE/CANCEL',\n}\n\nexport enum TemporaryChangePlanActionTypes {\n request = 'billing/TEMPORARY_CHANGE_PLAN/REQUEST',\n success = 'billing/TEMPORARY_CHANGE_PLAN/SUCCESS',\n failure = 'billing/TEMPORARY_CHANGE_PLAN/FAILURE',\n cancel = 'billing/TEMPORARY_CHANGE_PLAN/CANCEL',\n}\n","import { createAsyncAction } from 'typesafe-actions';\nimport { PromisifiedActionMeta, ActionError } from 'Interfaces/ActionCreators';\n\nimport { promisifyAsyncAction } from 'Utils/functions';\nimport {\n GetCardActionTypes,\n UpdateCardActionTypes,\n GetInvoicesActionTypes,\n ChangePLanActionTypes,\n AttachCardActionTypes,\n GetPlansActionTypes,\n GetSubscriptionDataActionTypes,\n GetApiSubscriptionActionTypes,\n UpgradeAppSumoActionTypes,\n ChangeApiPLanActionTypes,\n RemoveApiPlanActionTypes,\n RetryChargeActionTypes,\n UpsellPlanActionTypes,\n ValidatePromotionCodeActionTypes,\n GetLastestInvoiceActionTypes,\n CreateSetupCheckoutSession,\n CreateSubscriptionCheckout,\n CheckUpsellAllowed,\n CreateBillingPortal,\n GetUpcomingInvoice,\n GetInvoiceDownloadLink,\n GetLtdUpcomingInvoice,\n ChangeLtdPlanDurationTypes,\n CreateLtdPaymentCheckout,\n GetLtdTier,\n GetLtdTiers,\n CapturePaypalOrder,\n UpgradeLtdPaymentCheckout,\n ValidateLtdCode,\n RedeemLtdCode,\n TemporaryChangePlanActionTypes,\n} from './actionTypes';\nimport {\n CardPayload,\n Card,\n PlanChangePayload,\n PlanDetails,\n SubscriptionData,\n AppSumoUpgradePayload,\n ApiPlanChangePayload,\n ApiSubscription,\n GetLatestInvoicePayload,\n DiscountData,\n ValidatePromotionCodePayload,\n CreateSubscriptionCheckoutPayload,\n CheckoutSessionUrl,\n GetUpcomingInvoicePayload,\n InvoiceDownloadLinkPayload,\n InvoiceDownloadLink,\n ChangeLtdPlanDurationPayload,\n InvoicesRequest,\n InvoicesData,\n CreateLtdPaymentCheckoutPayload,\n CapturePaypalOrderPayload,\n LtdTier,\n GetLtdTierPayload,\n LtdCheckoutResponse,\n LtdPaymentCheckoutPayload,\n LtdCheckoutUpgradeResponse,\n LtdCodePayload,\n} from 'Interfaces/Billing';\nimport { User } from 'Interfaces/User';\n\nexport const getCard = createAsyncAction(\n GetCardActionTypes.request,\n GetCardActionTypes.success,\n GetCardActionTypes.failure,\n GetCardActionTypes.cancel,\n)<\n [undefined, PromisifiedActionMeta],\n [Card, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $getCard = promisifyAsyncAction(getCard);\n\nexport const updateCard = createAsyncAction(\n UpdateCardActionTypes.request,\n UpdateCardActionTypes.success,\n UpdateCardActionTypes.failure,\n UpdateCardActionTypes.cancel,\n)<\n [CardPayload, PromisifiedActionMeta],\n [Card, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $updateCard = promisifyAsyncAction(updateCard);\n\nexport const attachCard = createAsyncAction(\n AttachCardActionTypes.request,\n AttachCardActionTypes.success,\n AttachCardActionTypes.failure,\n AttachCardActionTypes.cancel,\n)<\n [CardPayload, PromisifiedActionMeta],\n [Card, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $attachCard = promisifyAsyncAction(attachCard);\n\nexport const getInvoices = createAsyncAction(\n GetInvoicesActionTypes.request,\n GetInvoicesActionTypes.success,\n GetInvoicesActionTypes.failure,\n GetInvoicesActionTypes.cancel,\n)<\n [InvoicesRequest, PromisifiedActionMeta],\n [InvoicesData, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $getInvoices = promisifyAsyncAction(getInvoices);\n\nexport const getPlans = createAsyncAction(\n GetPlansActionTypes.request,\n GetPlansActionTypes.success,\n GetPlansActionTypes.failure,\n GetPlansActionTypes.cancel,\n)<\n [undefined, PromisifiedActionMeta],\n [PlanDetails[], PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $getPlans = promisifyAsyncAction(getPlans);\n\nexport const changePLan = createAsyncAction(\n ChangePLanActionTypes.request,\n ChangePLanActionTypes.success,\n ChangePLanActionTypes.failure,\n ChangePLanActionTypes.cancel,\n)<\n [PlanChangePayload, PromisifiedActionMeta],\n [User, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $changePLan = promisifyAsyncAction(changePLan);\n\nexport const changeApiPlan = createAsyncAction(\n ChangeApiPLanActionTypes.request,\n ChangeApiPLanActionTypes.success,\n ChangeApiPLanActionTypes.failure,\n ChangeApiPLanActionTypes.cancel,\n)<\n [ApiPlanChangePayload, PromisifiedActionMeta],\n [ApiSubscription, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $changeApiPlan = promisifyAsyncAction(changeApiPlan);\n\nexport const removeApiPlan = createAsyncAction(\n RemoveApiPlanActionTypes.request,\n RemoveApiPlanActionTypes.success,\n RemoveApiPlanActionTypes.failure,\n RemoveApiPlanActionTypes.cancel,\n)<\n [undefined, PromisifiedActionMeta],\n [ApiSubscription, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $removeApiPlan = promisifyAsyncAction(removeApiPlan);\n\nexport const upgradeAppSumo = createAsyncAction(\n UpgradeAppSumoActionTypes.request,\n UpgradeAppSumoActionTypes.success,\n UpgradeAppSumoActionTypes.failure,\n UpgradeAppSumoActionTypes.cancel,\n)<\n [AppSumoUpgradePayload, PromisifiedActionMeta],\n [User, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $upgradeAppSumo = promisifyAsyncAction(upgradeAppSumo);\n\nexport const getSubscriptionData = createAsyncAction(\n GetSubscriptionDataActionTypes.request,\n GetSubscriptionDataActionTypes.success,\n GetSubscriptionDataActionTypes.failure,\n GetSubscriptionDataActionTypes.cancel,\n)<\n [undefined, PromisifiedActionMeta],\n [SubscriptionData, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $getSubscriptionData = promisifyAsyncAction(getSubscriptionData);\n\nexport const getApiSubscription = createAsyncAction(\n GetApiSubscriptionActionTypes.request,\n GetApiSubscriptionActionTypes.success,\n GetApiSubscriptionActionTypes.failure,\n GetApiSubscriptionActionTypes.cancel,\n)<\n [undefined, PromisifiedActionMeta],\n [ApiSubscription, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $getApiSubscription = promisifyAsyncAction(getApiSubscription);\n\nexport const retryCharge = createAsyncAction(\n RetryChargeActionTypes.request,\n RetryChargeActionTypes.success,\n RetryChargeActionTypes.failure,\n RetryChargeActionTypes.cancel,\n)<\n [undefined, PromisifiedActionMeta],\n [SubscriptionData, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $retryCharge = promisifyAsyncAction(retryCharge);\n\nexport const upsellPlan = createAsyncAction(\n UpsellPlanActionTypes.request,\n UpsellPlanActionTypes.success,\n UpsellPlanActionTypes.failure,\n UpsellPlanActionTypes.cancel,\n)<\n [PlanChangePayload, PromisifiedActionMeta],\n [User, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $upsellPlan = promisifyAsyncAction(upsellPlan);\n\nexport const validatePromotionCode = createAsyncAction(\n ValidatePromotionCodeActionTypes.request,\n ValidatePromotionCodeActionTypes.success,\n ValidatePromotionCodeActionTypes.failure,\n ValidatePromotionCodeActionTypes.cancel,\n)<\n [ValidatePromotionCodePayload, PromisifiedActionMeta],\n [DiscountData, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $validatePromotionCode = promisifyAsyncAction(validatePromotionCode);\n\nexport const getLatestInvoice = createAsyncAction(\n GetLastestInvoiceActionTypes.request,\n GetLastestInvoiceActionTypes.success,\n GetLastestInvoiceActionTypes.failure,\n GetLastestInvoiceActionTypes.cancel,\n)<\n [undefined, PromisifiedActionMeta],\n [GetLatestInvoicePayload, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $getLatestInvoice = promisifyAsyncAction(getLatestInvoice);\n\nexport const creatSetupCheckoutSession = createAsyncAction(\n CreateSetupCheckoutSession.request,\n CreateSetupCheckoutSession.success,\n CreateSetupCheckoutSession.failure,\n CreateSetupCheckoutSession.cancel,\n)<\n [undefined, PromisifiedActionMeta],\n [CheckoutSessionUrl, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $creatSetupCheckoutSession = promisifyAsyncAction(creatSetupCheckoutSession);\n\nexport const createSubscriptionCheckout = createAsyncAction(\n CreateSubscriptionCheckout.request,\n CreateSubscriptionCheckout.success,\n CreateSubscriptionCheckout.failure,\n CreateSubscriptionCheckout.cancel,\n)<\n [CreateSubscriptionCheckoutPayload, PromisifiedActionMeta],\n [CheckoutSessionUrl, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $createSubscriptionCheckout = promisifyAsyncAction(\n createSubscriptionCheckout,\n);\n\nexport const checkUpsellAllowed = createAsyncAction(\n CheckUpsellAllowed.request,\n CheckUpsellAllowed.success,\n CheckUpsellAllowed.failure,\n CheckUpsellAllowed.cancel,\n)<\n [undefined, PromisifiedActionMeta],\n [string, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $checkUpsellAllowed = promisifyAsyncAction(checkUpsellAllowed);\n\nexport const createBillingPortal = createAsyncAction(\n CreateBillingPortal.request,\n CreateBillingPortal.success,\n CreateBillingPortal.failure,\n CreateBillingPortal.cancel,\n)<\n [undefined, PromisifiedActionMeta],\n [CheckoutSessionUrl, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $createBillingPortal = promisifyAsyncAction(createBillingPortal);\n\nexport const getUpcomingInvoice = createAsyncAction(\n GetUpcomingInvoice.request,\n GetUpcomingInvoice.success,\n GetUpcomingInvoice.failure,\n GetUpcomingInvoice.cancel,\n)<\n [CreateSubscriptionCheckoutPayload, PromisifiedActionMeta],\n [GetUpcomingInvoicePayload, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $getUpcomingInvoice = promisifyAsyncAction(getUpcomingInvoice);\n\nexport const getLtdUpcomingInvoice = createAsyncAction(\n GetLtdUpcomingInvoice.request,\n GetLtdUpcomingInvoice.success,\n GetLtdUpcomingInvoice.failure,\n GetLtdUpcomingInvoice.cancel,\n)<\n [CreateSubscriptionCheckoutPayload, PromisifiedActionMeta],\n [GetUpcomingInvoicePayload, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $getLtdUpcomingInvoice = promisifyAsyncAction(getLtdUpcomingInvoice);\n\nexport const getInvoiceDownloadLink = createAsyncAction(\n GetInvoiceDownloadLink.request,\n GetInvoiceDownloadLink.success,\n GetInvoiceDownloadLink.failure,\n GetInvoiceDownloadLink.cancel,\n)<\n [InvoiceDownloadLink, PromisifiedActionMeta],\n [InvoiceDownloadLinkPayload, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $getInvoiceDownloadLink = promisifyAsyncAction(getInvoiceDownloadLink);\n\nexport const changeLtdPlanDuration = createAsyncAction(\n ChangeLtdPlanDurationTypes.request,\n ChangeLtdPlanDurationTypes.success,\n ChangeLtdPlanDurationTypes.failure,\n ChangeLtdPlanDurationTypes.cancel,\n)<\n [ChangeLtdPlanDurationPayload, PromisifiedActionMeta],\n [User, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $changeLtdPlanDuration = promisifyAsyncAction(changeLtdPlanDuration);\n\nexport const createLtdPaymentCheckout = createAsyncAction(\n CreateLtdPaymentCheckout.request,\n CreateLtdPaymentCheckout.success,\n CreateLtdPaymentCheckout.failure,\n CreateLtdPaymentCheckout.cancel,\n)<\n [CreateLtdPaymentCheckoutPayload, PromisifiedActionMeta],\n [LtdCheckoutResponse, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $createLtdPaymentCheckout = promisifyAsyncAction(createLtdPaymentCheckout);\n\nexport const upgradeLtdPaymentCheckout = createAsyncAction(\n UpgradeLtdPaymentCheckout.request,\n UpgradeLtdPaymentCheckout.success,\n UpgradeLtdPaymentCheckout.failure,\n UpgradeLtdPaymentCheckout.cancel,\n)<\n [LtdPaymentCheckoutPayload, PromisifiedActionMeta],\n [LtdCheckoutUpgradeResponse, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $upgradeLtdPaymentCheckout = promisifyAsyncAction(upgradeLtdPaymentCheckout);\n\nexport const capturePaypalOrder = createAsyncAction(\n CapturePaypalOrder.request,\n CapturePaypalOrder.success,\n CapturePaypalOrder.failure,\n CapturePaypalOrder.cancel,\n)<\n [CapturePaypalOrderPayload, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $capturePaypalOrder = promisifyAsyncAction(capturePaypalOrder);\n\nexport const getLtdTier = createAsyncAction(\n GetLtdTier.request,\n GetLtdTier.success,\n GetLtdTier.failure,\n GetLtdTier.cancel,\n)<\n [GetLtdTierPayload, PromisifiedActionMeta],\n [LtdTier, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $getLtdTier = promisifyAsyncAction(getLtdTier);\n\nexport const getLtdTiers = createAsyncAction(\n GetLtdTiers.request,\n GetLtdTiers.success,\n GetLtdTiers.failure,\n GetLtdTiers.cancel,\n)<\n [undefined, PromisifiedActionMeta],\n [LtdTier[], PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $getLtdTiers = promisifyAsyncAction(getLtdTiers);\n\nexport const validateLtdCode = createAsyncAction(\n ValidateLtdCode.request,\n ValidateLtdCode.success,\n ValidateLtdCode.failure,\n ValidateLtdCode.cancel,\n)<\n [LtdCodePayload, PromisifiedActionMeta],\n [LtdTier, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $validateLtdCode = promisifyAsyncAction(validateLtdCode);\n\nexport const redeemLtdCode = createAsyncAction(\n RedeemLtdCode.request,\n RedeemLtdCode.success,\n RedeemLtdCode.failure,\n RedeemLtdCode.cancel,\n)<\n [LtdCodePayload, PromisifiedActionMeta],\n [User, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $redeemLtdCode = promisifyAsyncAction(redeemLtdCode);\n\nexport const temporaryChangePlan = createAsyncAction(\n TemporaryChangePlanActionTypes.request,\n TemporaryChangePlanActionTypes.success,\n TemporaryChangePlanActionTypes.failure,\n TemporaryChangePlanActionTypes.cancel,\n)<\n [PlanChangePayload, PromisifiedActionMeta],\n [User, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $temporaryChangePlan = promisifyAsyncAction(temporaryChangePlan);\n","export enum DocumentCreateActionTypes {\n request = 'document/CREATE/REQUEST',\n success = 'document/CREATE/SUCCESS',\n failure = 'document/CREATE/FAILURE',\n cancel = 'document/CREATE/CANCEL',\n}\n\nexport enum DocumentCreateByExistTemplateTypes {\n request = 'document/CREATE_DOCUMENT_BY_EXIST_TEMPLATE/REQUEST',\n success = 'document/CREATE_DOCUMENT_BY_EXIST_TEMPLATE/SUCCESS',\n failure = 'document/CREATE_DOCUMENT_BY_EXIST_TEMPLATE/FAILURE',\n cancel = 'document/CREATE_DOCUMENT_BY_EXIST_TEMPLATE/CANCEL',\n}\n\nexport enum DocumentUpdateByExistTemplateTypes {\n request = 'document/UPDATE_DOCUMENT_BY_EXIST_TEMPLATE/REQUEST',\n success = 'document/UPDATE_DOCUMENT_BY_EXIST_TEMPLATE/SUCCESS',\n failure = 'document/UPDATE_DOCUMENT_BY_EXIST_TEMPLATE/FAILURE',\n cancel = 'document/UPDATE_DOCUMENT_BY_EXIST_TEMPLATE/CANCEL',\n}\n\nexport enum FormRequestsGetActionTypes {\n request = 'document/GET_FORM_REQUESTS/REQUEST',\n success = 'document/GET_FORM_REQUESTS/SUCCESS',\n failure = 'document/GET_FORM_REQUESTS/FAILURE',\n cancel = 'document/GET_FORM_REQUESTS/CANCEL',\n}\n\nexport enum DocumentsDeleteActionTypes {\n request = 'document/DELETE_DOCUMENTS/REQUEST',\n success = 'document/DELETE_DOCUMENTS/SUCCESS',\n failure = 'document/DELETE_DOCUMENTS/FAILURE',\n cancel = 'document/DELETE_DOCUMENTS/CANCEL',\n}\n\nexport enum DocumentGetActionTypes {\n request = 'document/GET_DOCUMENT/REQUEST',\n success = 'document/GET_DOCUMENT/SUCCESS',\n failure = 'document/GET_DOCUMENT/FAILURE',\n cancel = 'document/GET_DOCUMENT/CANCEL',\n}\n\nexport enum DocumentGetByHashActionTypes {\n request = 'document/GET_DOCUMENT_BY_HASH/REQUEST',\n success = 'document/GET_DOCUMENT_BY_HASH/SUCCESS',\n failure = 'document/GET_DOCUMENT_BY_HASH/FAILURE',\n cancel = 'document/GET_DOCUMENT_BY_HASH/CANCEL',\n}\n\nexport enum DocumentUploadActionTypes {\n request = 'document/UPLOAD/REQUEST',\n success = 'document/UPLOAD/SUCCESS',\n failure = 'document/UPLOAD/FAILURE',\n cancel = 'document/UPLOAD/CANCEL',\n}\n\nexport enum DocumentFileCleanActionTypes {\n request = 'document/FILE_DATA_CLEAN/REQUEST',\n success = 'document/FILE_DATA_CLEAN/SUCCESS',\n failure = 'document/FILE_DATA_CLEAN/FAILURE',\n cancel = 'document/FILE_DATA_CLEAN/CANCEL',\n}\n\nexport enum DocumentUpdateActionTypes {\n request = 'document/UPDATE_DOCUMENT/REQUEST',\n success = 'document/UPDATE_DOCUMENT/SUCCESS',\n failure = 'document/UPDATE_DOCUMENT/FAILURE',\n cancel = 'document/UPDATE_DOCUMENT/CANCEL',\n}\n\nexport enum SendReminderActionTypes {\n request = 'document/SEND_REMINDER/REQUEST',\n success = 'document/SEND_REMINDER/SUCCESS',\n failure = 'document/SEND_REMINDER/FAILURE',\n cancel = 'document/SEND_REMINDER/CANCEL',\n}\n\nexport enum DocumentConvertionActionTypes {\n start = 'document/DOCUMENT_CONVERTION/START',\n stop = 'document/DOCUMENT_CONVERTION/STOP',\n failure = 'document/DOCUMENT_CONVERTION/FAILURE',\n}\n\nexport enum DocumentsAllGetActionTypes {\n request = 'document/GET_ALL_DOCUMENTS/REQUEST',\n success = 'document/GET_ALL_DOCUMENTS/SUCCESS',\n failure = 'document/GET_ALL_DOCUMENTS/FAILURE',\n cancel = 'document/GET_ALL_DOCUMENTS/CANCEL',\n}\n\nexport enum DocumentCopyActionTypes {\n request = 'document/COPY_DOCUMENT/REQUEST',\n success = 'document/COPY_DOCUMENT/SUCCESS',\n failure = 'document/COPY_DOCUMENT/FAILURE',\n cancel = 'document/COPY_DOCUMENT/CANCEL',\n}\n\nexport enum DocumentDownloadUrlGetActionTypes {\n request = 'document/GET_DOCUMENT_DOWNLOAD_URL/REQUEST',\n success = 'document/GET_DOCUMENT_DOWNLOAD_URL/SUCCESS',\n failure = 'document/GET_DOCUMENT_DOWNLOAD_URL/FAILURE',\n cancel = 'document/GET_DOCUMENT_DOWNLOAD_URLT/CANCEL',\n}\n\nexport enum TemplateActivateActionTypes {\n request = 'document/TEMPLATE_ACTIVATE/REQUEST',\n success = 'document/TEMPLATE_ACTIVATE/SUCCESS',\n failure = 'document/TEMPLATE_ACTIVATE/FAILURE',\n cancel = 'document/TEMPLATE_ACTIVATE/CANCEL',\n}\nexport enum TemplateReplicateActionTypes {\n request = 'document/TEMPLATE_REPLICATE/REQUEST',\n success = 'document/TEMPLATE_REPLICATE/SUCCESS',\n failure = 'document/TEMPLATE_REPLICATE/FAILURE',\n cancel = 'document/TEMPLATE_REPLICATE/CANCEL',\n}\n\nexport enum TemplateMergeActionTypes {\n request = 'document/MERGE_TEMPLATE/REQUEST',\n success = 'document/MERGE_TEMPLATE/SUCCESS',\n failure = 'document/MERGE_TEMPLATE/FAILURE',\n cancel = 'document/MERGE_TEMPLATE/CANCEL',\n}\n\nexport enum TemplateAddToApiActionTypes {\n request = 'document/ADD_TO_API_TEMPLATE/REQUEST',\n success = 'document/ADD_TO_API_TEMPLATE/SUCCESS',\n failure = 'document/ADD_TO_API_TEMPLATE/FAILURE',\n cancel = 'document/ADD_TO_API_TEMPLATE/CANCEL',\n}\n\nexport enum TemplateRemoveFromApiActionTypes {\n request = 'document/REMOVE_FROM_API_TEMPLATE/REQUEST',\n success = 'document/REMOVE_FROM_API_TEMPLATE/SUCCESS',\n failure = 'document/REMOVE_FROM_API_TEMPLATE/FAILURE',\n cancel = 'document/REMOVE_FROM_API_TEMPLATE/CANCEL',\n}\n\nexport enum DocumentRevertActionTypes {\n request = 'document/REVERT_DOCUMENT/REQUEST',\n success = 'document/REVERT_DOCUMENT/SUCCESS',\n failure = 'document/REVERT_DOCUMENT/FAILURE',\n cancel = 'document/REVERT_DOCUMENT/CANCEL',\n}\n\nexport enum DocumentBulkSendActionTypes {\n request = 'document/BULK_SEND/REQUEST',\n success = 'document/BULK_SEND/SUCCESS',\n failure = 'document/BULK_SEND/FAILURE',\n cancel = 'document/BULK_SEND/CANCEL',\n}\n\nexport enum DocumentConvertionStatusGetActionTypes {\n request = 'document/GET_CONVERTION_STATUS/REQUEST',\n success = 'document/GET_CONVERTION_STATUS/SUCCESS',\n failure = 'document/GET_CONVERTION_STATUS/FAILURE',\n cancel = 'document/GET_CONVERTION_STATUS/CANCEL',\n}\n\nexport enum DocumentActivitiesGetActionTypes {\n request = 'document/GET_ACTIVITIES/REQUEST',\n success = 'document/GET_ACTIVITIES/SUCCESS',\n failure = 'document/GET_ACTIVITIES/FAILURE',\n cancel = 'document/GET_ACTIVITIES/CANCEL',\n}\nexport enum DocumentCreateFromFormRequestActionTypes {\n request = 'document/form-request/CREATE/REQUEST',\n success = 'document/form-request/CREATE/SUCCESS',\n failure = 'document/form-request/CREATE/FAILURE',\n cancel = 'document/form-request/CREATE/CANCEL',\n}\n\nexport enum FormRequestGetActionTypes {\n request = 'document/GET_FORM_REQUEST/REQUEST',\n success = 'document/GET_FORM_REQUEST/SUCCESS',\n failure = 'document/GET_FORM_REQUEST/FAILURE',\n cancel = 'document/GET_FORM_REQUEST/CANCEL',\n}\n\nexport enum FormRequestDisableActionTypes {\n request = 'document/DISABLE_FORM_REQUEST/REQUEST',\n success = 'document/DISABLE_FORM_REQUEST/SUCCESS',\n failure = 'document/DISABLE_FORM_REQUEST/FAILURE',\n cancel = 'document/DISABLE_FORM_REQUEST/CANCEL',\n}\n\nexport enum FormRequestEnableActionTypes {\n request = 'document/ENABLE_FORM_REQUEST/REQUEST',\n success = 'document/ENABLE_FORM_REQUEST/SUCCESS',\n failure = 'document/ENABLE_FORM_REQUEST/FAILURE',\n cancel = 'document/ENABLE_FORM_REQUEST/CANCEL',\n}\n\nexport enum ToggleEmailNotificationActionTypes {\n request = 'document/TOGGLE_EMAIL_NOTIFICATION/REQUEST',\n success = 'document/TOGGLE_EMAIL_NOTIFICATION/SUCCESS',\n failure = 'document/TOGGLE_EMAIL_NOTIFICATION/FAILURE',\n cancel = 'document/TOGGLE_EMAIL_NOTIFICATION/CANCEL',\n}\n\nexport enum GetAllTemplatesActionTypes {\n request = 'document/GET_ALL_TAMPLTES/REQUEST',\n success = 'document/GET_ALL_TAMPLTES/SUCCESS',\n failure = 'document/GET_ALL_TAMPLTES/FAILURE',\n cancel = 'document/GET_ALL_TAMPLTES/CANCEL',\n}\n\nexport enum DocumentActivitiesUrlGetActionTypes {\n request = 'document/GET_DOCUMENT_ACTIVITIES_DOWNLOAD_URL/REQUEST',\n success = 'document/GET_DOCUMENT_ACTIVITIES_DOWNLOAD_URL/SUCCESS',\n failure = 'document/GET_DOCUMENT_ACTIVITIES_DOWNLOAD_URL/FAILURE',\n cancel = 'document/GET_DOCUMENT_ACTIVITIES_DOWNLOAD_URL/CANCEL',\n}\n\nexport enum DocumentSeparateSignActionTypes {\n request = 'document/SIGN_DOCUMENT/REQUEST',\n success = 'document/SIGN_DOCUMENT/SUCCESS',\n failure = 'document/SIGN_DOCUMENT/FAILURE',\n cancel = 'document/SIGN_DOCUMENT/CANCEL',\n}\n\nexport enum DocumentSeparateDownloadUrlGetActionTypes {\n request = 'document/GET_SEPARATE_DOCUMENT_DOWNLOAD_URL/REQUEST',\n success = 'document/GET_SEPARATE_DOCUMENT_DOWNLOAD_URL/SUCCESS',\n failure = 'document/GET_SEPARATE_DOCUMENT_DOWNLOAD_URL/FAILURE',\n cancel = 'document/GET_SEPARATE_DOCUMENT_DOWNLOAD_URL/CANCEL',\n}\n\nexport enum DocumentActivitiesSeparateSignActionTypes {\n request = 'document/SIGN_DOCUMENT_ACTIVITIES/REQUEST',\n success = 'document/SIGN_DOCUMENT_ACTIVITIES/SUCCESS',\n failure = 'document/SIGN_DOCUMENT_ACTIVITIES/FAILURE',\n cancel = 'document/SIGN_DOCUMENT_ACTIVITIES/CANCEL',\n}\n\nexport enum DocumentDeleteActionTypes {\n request = 'document/DELETE_DOCUMENT/REQUEST',\n success = 'document/DELETE_DOCUMENT/SUCCESS',\n failure = 'document/DELETE_DOCUMENT/FAILURE',\n cancel = 'document/DELETE_DOCUMENT/CANCEL',\n}\n\nexport enum EmbedDocumentGetActionTypes {\n request = 'document/GET_EMBED_DOCUMENT/REQUEST',\n success = 'document/GET_EMBED_DOCUMENT/SUCCESS',\n failure = 'document/GET_EMBED_DOCUMENT/FAILURE',\n cancel = 'document/GET_EMBED_DOCUMENT/CANCEL',\n}\n\nexport enum EmbedDocumentUpdateActionTypes {\n request = 'document/UPDATE_EMBED_DOCUMENT/REQUEST',\n success = 'document/UPDATE_EMBED_DOCUMENT/SUCCESS',\n failure = 'document/UPDATE_EMBED_DOCUMENT/FAILURE',\n cancel = 'document/UPDATE_EMBED_DOCUMENT/CANCEL',\n}\n\nexport enum GetReportByEmailActionTypes {\n request = 'document/GET_REPORT_BY_EMAIL/REQUEST',\n success = 'document/GET_REPORT_BY_EMAIL/SUCCESS',\n failure = 'document/GET_REPORT_BY_EMAIL/FAILURE',\n cancel = 'document/GET_REPORT_BY_EMAIL/CANCEL',\n}\n\nexport const EmbedDocumentTokenInitType = 'document/INIT_EMBED_DOCUMENT_INTERACT';\n\nexport const EmbedDocumentTokenRemoveType = 'document/FINISH_EMBED_DOCUMENT_INTERACT';\n","export const DocumentSigningInitType = 'document_sign/INIT_DOCUMENT_SIGN';\n\nexport const DocumentSigningFinishType = 'document_sign/FINISH_DOCUMENT_SIGNING';\n\nexport enum SignerDocumentGetTypes {\n request = 'document_sign/GET_SIGNER_DOCUMENT/REQUEST',\n success = 'document_sign/GET_SIGNER_DOCUMENT/SUCCESS',\n failure = 'document_sign/GET_SIGNER_DOCUMENT/FAILURE',\n cancel = 'document_sign/GET_SIGNER_DOCUMENT/CANCEL',\n}\n\nexport enum SigningDocumentGetTypes {\n request = 'document_sign/GET_SIGNING_DOCUMENT/REQUEST',\n success = 'document_sign/GET_SIGNING_DOCUMENT/SUCCESS',\n failure = 'document_sign/GET_SIGNING_DOCUMENT/FAILURE',\n cancel = 'document_sign/GET_SIGNING_DOCUMENT/CANCEL',\n}\n\nexport enum AvailableSignersOptionsGetTypes {\n request = 'document_sign/GET_AVAILABLE_SIGNERS_OPTIONS/REQUEST',\n success = 'document_sign/GET_AVAILABLE_SIGNERS_OPTIONS/SUCCESS',\n failure = 'document_sign/GET_AVAILABLE_SIGNERS_OPTIONS/FAILURE',\n cancel = 'document_sign/GET_AVAILABLE_SIGNERS_OPTIONS/CANCEL',\n}\n\nexport enum SubmitSignedDocumentTypes {\n request = 'document_sign/SEND_SIGNED_DOCUMENT/REQUEST',\n success = 'document_sign/SEND_SIGNED_DOCUMENT/SUCCESS',\n failure = 'document_sign/SEND_SIGNED_DOCUMENT/FAILURE',\n cancel = 'document_sign/SEND_SIGNED_DOCUMENT/CANCEL',\n}\n\nexport enum DeclineSigningRequestTypes {\n request = 'document_sign/DECLINE_SIGNING_REQUEST/REQUEST',\n success = 'document_sign/DECLINE_SIGNING_REQUEST/SUCCESS',\n failure = 'document_sign/DECLINE_SIGNING_REQUEST/FAILURE',\n cancel = 'document_sign/DECLINE_SIGNING_REQUEST/CANCEL',\n}\n\nexport enum DocumentSendOutActionTypes {\n request = 'document_sign/SEND_DOCUMENT_OUT/REQUEST',\n success = 'document_sign/SEND_DOCUMENT_OUT/SUCCESS',\n failure = 'document_sign/SEND_DOCUMENT_OUT/FAILURE',\n cancel = 'document_sign/SEND_DOCUMENT_OUT/CANCEL',\n}\n\nexport enum RemindersSendActionTypes {\n request = 'document_sign/SEND_REMINDERS/REQUEST',\n success = 'document_sign/SEND_REMINDERS/SUCCESS',\n failure = 'document_sign/SEND_REMINDERS/FAILURE',\n cancel = 'document_sign/SEND_REMINDERS/CANCEL',\n}\n\nexport enum SignatoryOpenedSendActionTypes {\n request = 'document_sign/SEND_SIGNATORY_OPENED/REQUEST',\n success = 'document_sign/SEND_SIGNATORY_OPENED/SUCCESS',\n failure = 'document_sign/SEND_SIGNATORY_OPENED/FAILURE',\n cancel = 'document_sign/SEND_SIGNATORY_OPENED/CANCEL',\n}\n\nexport enum DocumentPreviewPagesGetActionTypes {\n request = 'document_sign/GET_DOCUMENT_PREVIEW_PAGES/REQUEST',\n success = 'document_sign/GET_DOCUMENT_PREVIEW_PAGES/SUCCESS',\n failure = 'document_sign/GET_DOCUMENT_PREVIEW_PAGES/FAILURE',\n cancel = 'document_sign/GET_DOCUMENT_PREVIEW_PAGES/CANCEL',\n}\n\nexport enum DocumentConvertionStatusActionTypes {\n request = 'document_sign/GET_CONVERTION_STATUS/REQUEST',\n success = 'document_sign/GET_CONVERTION_STATUS/SUCCESS',\n failure = 'document_sign/GET_CONVERTION_STATUS/FAILURE',\n cancel = 'document_sign/GET_CONVERTION_STATUS/CANCEL',\n}\n\nexport enum DocumentShareUrlGetActionTypes {\n request = 'document/GET_SHARE_URL/REQUEST',\n success = 'document/GET_SHARE_URL/SUCCESS',\n failure = 'document/GET_SHARE_URL/FAILURE',\n cancel = 'document/GET_SHARE_URL/CANCEL',\n}\n\nexport enum DocumentShareActionTypes {\n request = 'document/SHARE/REQUEST',\n success = 'document/SHARE/SUCCESS',\n failure = 'document/SHARE/FAILURE',\n cancel = 'document/SHARE/CANCEL',\n}\n\nexport enum DocumentSendCodeAccessActionTypes {\n request = 'document/SEND_CODE_ACCESS/REQUEST',\n success = 'document/SEND_CODE_ACCESS/SUCCESS',\n failure = 'document/SEND_CODE_ACCESS/FAILURE',\n cancel = 'document/SEND_CODE_ACCESS/CANCEL',\n}\n\nexport enum SigningUrlGetActionTypes {\n request = 'document/GET_SIGNING_URL/REQUEST',\n success = 'document/GET_SIGNING_URL/SUCCESS',\n failure = 'document/GET_SIGNING_URL/FAILURE',\n cancel = 'document/GET_SIGNING_URL/CANCEL',\n}\n\nexport enum SigningRemindersUnlinkTypes {\n request = 'document/UNLINK_SIGNING_REMINDERS/REQUEST',\n success = 'document/UNLINK_SIGNING_REMINDERS/SUCCESS',\n failure = 'document/UNLINK_SIGNING_REMINDERS/FAILURE',\n cancel = 'document/UNLINK_SIGNING_REMINDERS/CANCEL',\n}\n\nexport enum EmbedDocumentSendOutTypes {\n request = 'document_sign/EMBED_DOCUMENT_SEND_OUT/REQUEST',\n success = 'document_sign/EMBED_DOCUMENT_SEND_OUT/SUCCESS',\n failure = 'document_sign/EMBED_DOCUMENT_SEND_OUT/FAILURE',\n cancel = 'document_sign/EMBED_DOCUMENT_SEND_OUT/CANCEL',\n}\n\nexport enum EmbedDocumentPreviewPagesGetActionTypes {\n request = 'document_sign/GET_EMBED_DOCUMENT_PREVIEW_PAGES/REQUEST',\n success = 'document_sign/GET_EMBED_DOCUMENT_PREVIEW_PAGES/SUCCESS',\n failure = 'document_sign/GET_EMBED_DOCUMENT_PREVIEW_PAGES/FAILURE',\n cancel = 'document_sign/GET_EMBED_DOCUMENT_PREVIEW_PAGES/CANCEL',\n}\n","import { createAsyncAction, createAction } from 'typesafe-actions';\nimport { PromisifiedActionMeta, ActionError } from 'Interfaces/ActionCreators';\nimport {\n Document,\n DocumentValuesPayload,\n DocumentsData,\n FormRequestsGetPayload,\n DocumentUpdatePayload,\n DocumentIdPayload,\n DocumentUploadPayload,\n DocumentsAllGetPayload,\n TemplateMergePayload,\n DocumentBulkSendValues,\n DocumentDownloadPayload,\n DocumentConvertionData,\n DocumentActivity,\n DocumentPartIdPayload,\n FormRequestDocumentValues,\n TemplateActivatePayload,\n DocumentDisableRemindersPayload,\n TemplatesAllGetPayload,\n DocumentActivitiesDownloadPayload,\n DocumentSeparateSignPayload,\n DocumentIdHashPayload,\n DocumentFileUploadResponse,\n DocumentDeletePayload,\n GetReportByEmailPayload,\n} from 'Interfaces/Document';\nimport {\n NormalizedEntity,\n SignedPartDocumentActivityUrlResponse,\n SignedPartDocumentUrlResponse,\n SignedUrlResponse,\n} from 'Interfaces/Common';\nimport { promisifyAsyncAction } from 'Utils/functions';\nimport {\n DocumentCreateActionTypes,\n DocumentGetActionTypes,\n FormRequestsGetActionTypes,\n DocumentUploadActionTypes,\n DocumentsDeleteActionTypes,\n DocumentBulkSendActionTypes,\n DocumentUpdateActionTypes,\n SendReminderActionTypes,\n DocumentsAllGetActionTypes,\n DocumentFileCleanActionTypes,\n DocumentCopyActionTypes,\n DocumentDownloadUrlGetActionTypes,\n TemplateActivateActionTypes,\n DocumentRevertActionTypes,\n TemplateReplicateActionTypes,\n TemplateMergeActionTypes,\n DocumentConvertionActionTypes,\n DocumentConvertionStatusGetActionTypes,\n DocumentActivitiesGetActionTypes,\n DocumentCreateFromFormRequestActionTypes,\n TemplateAddToApiActionTypes,\n TemplateRemoveFromApiActionTypes,\n FormRequestGetActionTypes,\n FormRequestDisableActionTypes,\n FormRequestEnableActionTypes,\n ToggleEmailNotificationActionTypes,\n GetAllTemplatesActionTypes,\n DocumentCreateByExistTemplateTypes,\n DocumentActivitiesUrlGetActionTypes,\n DocumentSeparateSignActionTypes,\n DocumentSeparateDownloadUrlGetActionTypes,\n DocumentActivitiesSeparateSignActionTypes,\n DocumentDeleteActionTypes,\n DocumentGetByHashActionTypes,\n EmbedDocumentGetActionTypes,\n EmbedDocumentUpdateActionTypes,\n EmbedDocumentTokenInitType,\n EmbedDocumentTokenRemoveType,\n DocumentUpdateByExistTemplateTypes,\n GetReportByEmailActionTypes,\n} from './actionTypes';\nimport { GridItem } from 'Interfaces/Grid';\nimport { TokenPayload } from 'Interfaces/User';\n\nexport const createDocument = createAsyncAction(\n DocumentCreateActionTypes.request,\n DocumentCreateActionTypes.success,\n DocumentCreateActionTypes.failure,\n DocumentCreateActionTypes.cancel,\n)<\n [DocumentValuesPayload, PromisifiedActionMeta],\n [Document, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $createDocument = promisifyAsyncAction(createDocument);\n\nexport const createDocumentByExistTemplate = createAsyncAction(\n DocumentCreateByExistTemplateTypes.request,\n DocumentCreateByExistTemplateTypes.success,\n DocumentCreateByExistTemplateTypes.failure,\n DocumentCreateByExistTemplateTypes.cancel,\n)<\n [DocumentValuesPayload, PromisifiedActionMeta],\n [Document, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $createDocumentByExistTemplate = promisifyAsyncAction(\n createDocumentByExistTemplate,\n);\n\nexport const updateDocumentByExistTemplate = createAsyncAction(\n DocumentUpdateByExistTemplateTypes.request,\n DocumentUpdateByExistTemplateTypes.success,\n DocumentUpdateByExistTemplateTypes.failure,\n DocumentUpdateByExistTemplateTypes.cancel,\n)<\n [DocumentValuesPayload, PromisifiedActionMeta],\n [Document, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $updateDocumentByExistTemplate = promisifyAsyncAction(\n updateDocumentByExistTemplate,\n);\n\nexport const getFormRequests = createAsyncAction(\n FormRequestsGetActionTypes.request,\n FormRequestsGetActionTypes.success,\n FormRequestsGetActionTypes.failure,\n FormRequestsGetActionTypes.cancel,\n)<\n [FormRequestsGetPayload, PromisifiedActionMeta],\n [DocumentsData, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $getFormRequests = promisifyAsyncAction(getFormRequests);\n\nexport const getDocument = createAsyncAction(\n DocumentGetActionTypes.request,\n DocumentGetActionTypes.success,\n DocumentGetActionTypes.failure,\n DocumentGetActionTypes.cancel,\n)<\n [DocumentIdPayload, PromisifiedActionMeta],\n [Document, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $getDocument = promisifyAsyncAction(getDocument);\n\nexport const getDocumentByHash = createAsyncAction(\n DocumentGetByHashActionTypes.request,\n DocumentGetByHashActionTypes.success,\n DocumentGetByHashActionTypes.failure,\n DocumentGetByHashActionTypes.cancel,\n)<\n [DocumentIdHashPayload, PromisifiedActionMeta],\n [Document, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $getDocumentByHash = promisifyAsyncAction(getDocumentByHash);\n\nexport const uploadDocument = createAsyncAction(\n DocumentUploadActionTypes.request,\n DocumentUploadActionTypes.success,\n DocumentUploadActionTypes.failure,\n DocumentUploadActionTypes.cancel,\n)<\n [DocumentUploadPayload, PromisifiedActionMeta],\n [DocumentFileUploadResponse, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $uploadDocument = promisifyAsyncAction(uploadDocument);\n\nexport const updateDocument = createAsyncAction(\n DocumentUpdateActionTypes.request,\n DocumentUpdateActionTypes.success,\n DocumentUpdateActionTypes.failure,\n DocumentUpdateActionTypes.cancel,\n)<\n [DocumentUpdatePayload, PromisifiedActionMeta],\n [Document, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $updateDocument = promisifyAsyncAction(updateDocument);\n\ninterface DocumentsDeletePayload {\n documentIds: string[];\n}\n\nexport const deleteDocuments = createAsyncAction(\n DocumentsDeleteActionTypes.request,\n DocumentsDeleteActionTypes.success,\n DocumentsDeleteActionTypes.failure,\n DocumentsDeleteActionTypes.cancel,\n)<\n [DocumentsDeletePayload, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $deleteDocuments = promisifyAsyncAction(deleteDocuments);\n\ninterface SendReminderPayload {\n userIds: string[];\n}\n\nexport const sendReminder = createAsyncAction(\n SendReminderActionTypes.request,\n SendReminderActionTypes.success,\n SendReminderActionTypes.failure,\n SendReminderActionTypes.cancel,\n)<\n [SendReminderPayload, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $sendReminder = promisifyAsyncAction(sendReminder);\n\nexport const watchDocumentConvertionProgress = {\n start: createAction(\n DocumentConvertionActionTypes.start,\n (payload: DocumentIdPayload) => payload,\n )(),\n stop: createAction(DocumentConvertionActionTypes.stop)(),\n failure: createAction(DocumentConvertionActionTypes.failure, error => error)(),\n};\n\nexport const getAllDocuments = createAsyncAction(\n DocumentsAllGetActionTypes.request,\n DocumentsAllGetActionTypes.success,\n DocumentsAllGetActionTypes.failure,\n DocumentsAllGetActionTypes.cancel,\n)<\n [DocumentsAllGetPayload, PromisifiedActionMeta],\n [NormalizedEntity, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $getAllDocuments = promisifyAsyncAction(getAllDocuments);\n\nexport const cleanFileData = createAsyncAction(\n DocumentFileCleanActionTypes.request,\n DocumentFileCleanActionTypes.success,\n DocumentFileCleanActionTypes.failure,\n DocumentFileCleanActionTypes.cancel,\n)<\n [DocumentPartIdPayload, PromisifiedActionMeta],\n [Document, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $cleanFileData = promisifyAsyncAction(cleanFileData);\n\nexport const copyDocument = createAsyncAction(\n DocumentCopyActionTypes.request,\n DocumentCopyActionTypes.success,\n DocumentCopyActionTypes.failure,\n DocumentCopyActionTypes.cancel,\n)<\n [DocumentIdPayload, PromisifiedActionMeta],\n [Document, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $copyDocument = promisifyAsyncAction(copyDocument);\n\nexport const getDocumentDownloadUrl = createAsyncAction(\n DocumentDownloadUrlGetActionTypes.request,\n DocumentDownloadUrlGetActionTypes.success,\n DocumentDownloadUrlGetActionTypes.failure,\n DocumentDownloadUrlGetActionTypes.cancel,\n)<\n [DocumentDownloadPayload, PromisifiedActionMeta],\n [SignedUrlResponse, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $getDocumentDownloadUrl = promisifyAsyncAction(getDocumentDownloadUrl);\n\nexport const getDocumentActivitiesDownloadUrl = createAsyncAction(\n DocumentActivitiesUrlGetActionTypes.request,\n DocumentActivitiesUrlGetActionTypes.success,\n DocumentActivitiesUrlGetActionTypes.failure,\n DocumentActivitiesUrlGetActionTypes.cancel,\n)<\n [DocumentActivitiesDownloadPayload, PromisifiedActionMeta],\n [SignedUrlResponse, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $getDocumentActivitiesDownloadUrl = promisifyAsyncAction(\n getDocumentActivitiesDownloadUrl,\n);\n\nexport const activateTemplate = createAsyncAction(\n TemplateActivateActionTypes.request,\n TemplateActivateActionTypes.success,\n TemplateActivateActionTypes.failure,\n TemplateActivateActionTypes.cancel,\n)<\n [TemplateActivatePayload, PromisifiedActionMeta],\n [Document, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $activateTemplate = promisifyAsyncAction(activateTemplate);\n\nexport const addTemplateToApi = createAsyncAction(\n TemplateAddToApiActionTypes.request,\n TemplateAddToApiActionTypes.success,\n TemplateAddToApiActionTypes.failure,\n TemplateAddToApiActionTypes.cancel,\n)<\n [DocumentIdPayload, PromisifiedActionMeta],\n [Document, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $addTemplateToApi = promisifyAsyncAction(addTemplateToApi);\n\nexport const removeTemplateFromApi = createAsyncAction(\n TemplateRemoveFromApiActionTypes.request,\n TemplateRemoveFromApiActionTypes.success,\n TemplateRemoveFromApiActionTypes.failure,\n TemplateRemoveFromApiActionTypes.cancel,\n)<\n [DocumentIdPayload, PromisifiedActionMeta],\n [Document, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $removeTemplateFromApi = promisifyAsyncAction(removeTemplateFromApi);\n\nexport const replicateTemplate = createAsyncAction(\n TemplateReplicateActionTypes.request,\n TemplateReplicateActionTypes.success,\n TemplateReplicateActionTypes.failure,\n TemplateReplicateActionTypes.cancel,\n)<\n [DocumentIdPayload, PromisifiedActionMeta],\n [Document, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $replicateTemplate = promisifyAsyncAction(replicateTemplate);\n\nexport const mergeTemplate = createAsyncAction(\n TemplateMergeActionTypes.request,\n TemplateMergeActionTypes.success,\n TemplateMergeActionTypes.failure,\n TemplateMergeActionTypes.cancel,\n)<\n [TemplateMergePayload, PromisifiedActionMeta],\n [Document, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $mergeTemplate = promisifyAsyncAction(mergeTemplate);\n\nexport const revertDocument = createAsyncAction(\n DocumentRevertActionTypes.request,\n DocumentRevertActionTypes.success,\n DocumentRevertActionTypes.failure,\n DocumentRevertActionTypes.cancel,\n)<\n [DocumentIdPayload, PromisifiedActionMeta],\n [Document, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $revertDocument = promisifyAsyncAction(revertDocument);\n\nexport const sendDocumentBulk = createAsyncAction(\n DocumentBulkSendActionTypes.request,\n DocumentBulkSendActionTypes.success,\n DocumentBulkSendActionTypes.failure,\n DocumentBulkSendActionTypes.cancel,\n)<\n [DocumentBulkSendValues, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $sendDocumentBulk = promisifyAsyncAction(sendDocumentBulk);\n\nexport const getDocumentConvertionStatus = createAsyncAction(\n DocumentConvertionStatusGetActionTypes.request,\n DocumentConvertionStatusGetActionTypes.success,\n DocumentConvertionStatusGetActionTypes.failure,\n DocumentConvertionStatusGetActionTypes.cancel,\n)<\n [DocumentIdPayload, PromisifiedActionMeta],\n [DocumentConvertionData, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const getDocumentActivities = createAsyncAction(\n DocumentActivitiesGetActionTypes.request,\n DocumentActivitiesGetActionTypes.success,\n DocumentActivitiesGetActionTypes.failure,\n DocumentActivitiesGetActionTypes.cancel,\n)<\n [DocumentIdPayload, PromisifiedActionMeta],\n [DocumentActivity[], PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $getDocumentActivities = promisifyAsyncAction(getDocumentActivities);\n\nexport const createDocumentFromFormRequest = createAsyncAction(\n DocumentCreateFromFormRequestActionTypes.request,\n DocumentCreateFromFormRequestActionTypes.success,\n DocumentCreateFromFormRequestActionTypes.failure,\n DocumentCreateFromFormRequestActionTypes.cancel,\n)<\n [FormRequestDocumentValues, PromisifiedActionMeta],\n [Document, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $createDocumentFromFormRequest = promisifyAsyncAction(\n createDocumentFromFormRequest,\n);\n\nexport const getFormRequest = createAsyncAction(\n FormRequestGetActionTypes.request,\n FormRequestGetActionTypes.success,\n FormRequestGetActionTypes.failure,\n FormRequestGetActionTypes.cancel,\n)<\n [DocumentIdPayload, PromisifiedActionMeta],\n [Document, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $getFormRequest = promisifyAsyncAction(getFormRequest);\n\nexport const disableForm = createAsyncAction(\n FormRequestDisableActionTypes.request,\n FormRequestDisableActionTypes.success,\n FormRequestDisableActionTypes.failure,\n FormRequestDisableActionTypes.cancel,\n)<\n [DocumentIdPayload, PromisifiedActionMeta],\n [Document, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $disableForm = promisifyAsyncAction(disableForm);\n\nexport const enableForm = createAsyncAction(\n FormRequestEnableActionTypes.request,\n FormRequestEnableActionTypes.success,\n FormRequestEnableActionTypes.failure,\n FormRequestEnableActionTypes.cancel,\n)<\n [DocumentIdPayload, PromisifiedActionMeta],\n [Document, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $enableForm = promisifyAsyncAction(enableForm);\n\nexport const toggleEmailNotification = createAsyncAction(\n ToggleEmailNotificationActionTypes.request,\n ToggleEmailNotificationActionTypes.success,\n ToggleEmailNotificationActionTypes.failure,\n ToggleEmailNotificationActionTypes.cancel,\n)<\n [DocumentDisableRemindersPayload, PromisifiedActionMeta],\n [GridItem, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $toggleEmailNotification = promisifyAsyncAction(toggleEmailNotification);\n\nexport const getAllTemplates = createAsyncAction(\n GetAllTemplatesActionTypes.request,\n GetAllTemplatesActionTypes.success,\n GetAllTemplatesActionTypes.failure,\n GetAllTemplatesActionTypes.cancel,\n)<\n [TemplatesAllGetPayload, PromisifiedActionMeta],\n [NormalizedEntity, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $getAllTemplates = promisifyAsyncAction(getAllTemplates);\n\nexport const signSeparateDocument = createAsyncAction(\n DocumentSeparateSignActionTypes.request,\n DocumentSeparateSignActionTypes.success,\n DocumentSeparateSignActionTypes.failure,\n DocumentSeparateSignActionTypes.cancel,\n)<\n [DocumentSeparateSignPayload, PromisifiedActionMeta],\n [SignedPartDocumentUrlResponse, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $signSeparateDocument = promisifyAsyncAction(signSeparateDocument);\n\nexport const getSeparateDocumentDownloadUrl = createAsyncAction(\n DocumentSeparateDownloadUrlGetActionTypes.request,\n DocumentSeparateDownloadUrlGetActionTypes.success,\n DocumentSeparateDownloadUrlGetActionTypes.failure,\n DocumentSeparateDownloadUrlGetActionTypes.cancel,\n)<\n [DocumentSeparateSignPayload, PromisifiedActionMeta],\n [SignedUrlResponse, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $getSeparateDocumentDownloadUrl = promisifyAsyncAction(\n getSeparateDocumentDownloadUrl,\n);\n\nexport const signSeparateDocumentActivities = createAsyncAction(\n DocumentActivitiesSeparateSignActionTypes.request,\n DocumentActivitiesSeparateSignActionTypes.success,\n DocumentActivitiesSeparateSignActionTypes.failure,\n DocumentActivitiesSeparateSignActionTypes.cancel,\n)<\n [DocumentSeparateSignPayload, PromisifiedActionMeta],\n [SignedPartDocumentActivityUrlResponse, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $signSeparateDocumentActivities = promisifyAsyncAction(\n signSeparateDocumentActivities,\n);\n\nexport const deleteDocument = createAsyncAction(\n DocumentDeleteActionTypes.request,\n DocumentDeleteActionTypes.success,\n DocumentDeleteActionTypes.failure,\n DocumentDeleteActionTypes.cancel,\n)<\n [DocumentDeletePayload, PromisifiedActionMeta],\n [DocumentDeletePayload, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $deleteDocument = promisifyAsyncAction(deleteDocument);\n\nexport const getEmbedDocument = createAsyncAction(\n EmbedDocumentGetActionTypes.request,\n EmbedDocumentGetActionTypes.success,\n EmbedDocumentGetActionTypes.failure,\n EmbedDocumentGetActionTypes.cancel,\n)<\n [DocumentIdPayload, PromisifiedActionMeta],\n [Document, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $getEmbedDocument = promisifyAsyncAction(getEmbedDocument);\n\nexport const updateEmbedDocument = createAsyncAction(\n EmbedDocumentUpdateActionTypes.request,\n EmbedDocumentUpdateActionTypes.success,\n EmbedDocumentUpdateActionTypes.failure,\n EmbedDocumentUpdateActionTypes.cancel,\n)<\n [DocumentUpdatePayload, PromisifiedActionMeta],\n [Document, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $updateEmbedDocument = promisifyAsyncAction(updateEmbedDocument);\n\nexport const initEmbedDocumentToken = createAction(\n EmbedDocumentTokenInitType,\n (payload: TokenPayload) => payload,\n)();\n\nexport const removeEmbedDocumenToken = createAction(EmbedDocumentTokenRemoveType)();\n\nexport const getReportByEmail = createAsyncAction(\n GetReportByEmailActionTypes.request,\n GetReportByEmailActionTypes.success,\n GetReportByEmailActionTypes.failure,\n GetReportByEmailActionTypes.cancel,\n)<\n [GetReportByEmailPayload, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $getReportByEmail = promisifyAsyncAction(getReportByEmail);\n","import { createAsyncAction, createAction } from 'typesafe-actions';\nimport { promisifyAsyncAction } from 'Utils/functions';\nimport {\n SignerOption,\n DocumentIdPayload,\n SignerDocumentIdPayload,\n Document,\n DocumentForSigners,\n DocumentForSigning,\n DocumentSubmitPayload,\n RemindersSendPayload,\n DocumentPreviewPagesPayload,\n DocumentSharePayload,\n SignerIdPayload,\n CodeAccessPayload,\n SigningUrlGetPayload,\n SigningUrlPayload,\n SigningRemindersUnlinkPayload,\n} from 'Interfaces/Document';\nimport { PromisifiedActionMeta, ActionError } from 'Interfaces/ActionCreators';\nimport {\n AvailableSignersOptionsGetTypes,\n SignerDocumentGetTypes,\n SigningDocumentGetTypes,\n DocumentSigningInitType,\n DocumentSigningFinishType,\n SubmitSignedDocumentTypes,\n DocumentSendOutActionTypes,\n RemindersSendActionTypes,\n SignatoryOpenedSendActionTypes,\n DocumentPreviewPagesGetActionTypes,\n DocumentShareUrlGetActionTypes,\n DocumentShareActionTypes,\n DocumentConvertionStatusActionTypes,\n DocumentSendCodeAccessActionTypes,\n SigningUrlGetActionTypes,\n SigningRemindersUnlinkTypes,\n EmbedDocumentSendOutTypes,\n EmbedDocumentPreviewPagesGetActionTypes,\n DeclineSigningRequestTypes,\n} from './actionTypes';\nimport { TokenPayload } from 'Interfaces/User';\nimport { SignedUrlResponse } from 'Interfaces/Common';\n\nexport const sendDocumentOut = createAsyncAction(\n DocumentSendOutActionTypes.request,\n DocumentSendOutActionTypes.success,\n DocumentSendOutActionTypes.failure,\n DocumentSendOutActionTypes.cancel,\n)<\n [DocumentIdPayload, PromisifiedActionMeta],\n [Document, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $sendDocumentOut = promisifyAsyncAction(sendDocumentOut);\n\nexport const initDocumentSigning = createAction(\n DocumentSigningInitType,\n (payload: TokenPayload) => payload,\n)();\n\nexport const finishDocumentSigning = createAction(DocumentSigningFinishType)();\n\nexport const getSignerDocument = createAsyncAction(\n SignerDocumentGetTypes.request,\n SignerDocumentGetTypes.success,\n SignerDocumentGetTypes.failure,\n SignerDocumentGetTypes.cancel,\n)<\n [SignerDocumentIdPayload, PromisifiedActionMeta],\n [DocumentForSigners, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $getSignerDocument = promisifyAsyncAction(getSignerDocument);\n\nexport const getSigningDocument = createAsyncAction(\n SigningDocumentGetTypes.request,\n SigningDocumentGetTypes.success,\n SigningDocumentGetTypes.failure,\n SigningDocumentGetTypes.cancel,\n)<\n [DocumentIdPayload, PromisifiedActionMeta],\n [DocumentForSigning, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $getSigningDocument = promisifyAsyncAction(getSigningDocument);\n\nexport const getAvailableSignersOptions = createAsyncAction(\n AvailableSignersOptionsGetTypes.request,\n AvailableSignersOptionsGetTypes.success,\n AvailableSignersOptionsGetTypes.failure,\n AvailableSignersOptionsGetTypes.cancel,\n)<\n [DocumentIdPayload, PromisifiedActionMeta],\n [SignerOption[], PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $getAvailableSignersOptions = promisifyAsyncAction(\n getAvailableSignersOptions,\n);\n\nexport const submitSignedDocument = createAsyncAction(\n SubmitSignedDocumentTypes.request,\n SubmitSignedDocumentTypes.success,\n SubmitSignedDocumentTypes.failure,\n SubmitSignedDocumentTypes.cancel,\n)<\n [DocumentSubmitPayload, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $submitSignedDocument = promisifyAsyncAction(submitSignedDocument);\n\nexport const declineSigningRequest = createAsyncAction(\n DeclineSigningRequestTypes.request,\n DeclineSigningRequestTypes.success,\n DeclineSigningRequestTypes.failure,\n DeclineSigningRequestTypes.cancel,\n)<\n [SignerDocumentIdPayload, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $declineSigningRequest = promisifyAsyncAction(declineSigningRequest);\n\nexport const sendReminders = createAsyncAction(\n RemindersSendActionTypes.request,\n RemindersSendActionTypes.success,\n RemindersSendActionTypes.failure,\n RemindersSendActionTypes.cancel,\n)<\n [RemindersSendPayload, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $sendReminders = promisifyAsyncAction(sendReminders);\n\nexport const sendSignatoryOpened = createAsyncAction(\n SignatoryOpenedSendActionTypes.request,\n SignatoryOpenedSendActionTypes.success,\n SignatoryOpenedSendActionTypes.failure,\n SignatoryOpenedSendActionTypes.cancel,\n)<\n [SignerDocumentIdPayload, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $sendSignatoryOpened = promisifyAsyncAction(sendSignatoryOpened);\n\nexport const getDocumentPreviewPages = createAsyncAction(\n DocumentPreviewPagesGetActionTypes.request,\n DocumentPreviewPagesGetActionTypes.success,\n DocumentPreviewPagesGetActionTypes.failure,\n DocumentPreviewPagesGetActionTypes.cancel,\n)<\n [DocumentIdPayload, PromisifiedActionMeta],\n [DocumentPreviewPagesPayload, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $getDocumentPreviewPages = promisifyAsyncAction(getDocumentPreviewPages);\n\nexport const getDocumentShareUrl = createAsyncAction(\n DocumentShareUrlGetActionTypes.request,\n DocumentShareUrlGetActionTypes.success,\n DocumentShareUrlGetActionTypes.failure,\n DocumentShareUrlGetActionTypes.cancel,\n)<\n [DocumentIdPayload, PromisifiedActionMeta],\n [SignedUrlResponse, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $getDocumentShareUrl = promisifyAsyncAction(getDocumentShareUrl);\n\nexport const shareDocument = createAsyncAction(\n DocumentShareActionTypes.request,\n DocumentShareActionTypes.success,\n DocumentShareActionTypes.failure,\n DocumentShareActionTypes.cancel,\n)<\n [DocumentSharePayload, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $shareDocument = promisifyAsyncAction(shareDocument);\n\nexport const getDocumentConvertionStatus = createAsyncAction(\n DocumentConvertionStatusActionTypes.request,\n DocumentConvertionStatusActionTypes.success,\n DocumentConvertionStatusActionTypes.failure,\n DocumentConvertionStatusActionTypes.cancel,\n)<\n [SignerIdPayload, PromisifiedActionMeta],\n [boolean, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $getDocumentConvertionStatus = promisifyAsyncAction(\n getDocumentConvertionStatus,\n);\n\nexport const sendCodeAccess = createAsyncAction(\n DocumentSendCodeAccessActionTypes.request,\n DocumentSendCodeAccessActionTypes.success,\n DocumentSendCodeAccessActionTypes.failure,\n DocumentSendCodeAccessActionTypes.cancel,\n)<\n [CodeAccessPayload, PromisifiedActionMeta],\n [DocumentForSigners, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $sendCodeAccess = promisifyAsyncAction(sendCodeAccess);\n\nexport const getSigningUrl = createAsyncAction(\n SigningUrlGetActionTypes.request,\n SigningUrlGetActionTypes.success,\n SigningUrlGetActionTypes.failure,\n SigningUrlGetActionTypes.cancel,\n)<\n [SigningUrlGetPayload, PromisifiedActionMeta],\n [SigningUrlPayload, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $getSigningUrl = promisifyAsyncAction(getSigningUrl);\n\nexport const unlinkSigningReminders = createAsyncAction(\n SigningRemindersUnlinkTypes.request,\n SigningRemindersUnlinkTypes.success,\n SigningRemindersUnlinkTypes.failure,\n SigningRemindersUnlinkTypes.cancel,\n)<\n [SigningRemindersUnlinkPayload, PromisifiedActionMeta],\n [SigningRemindersUnlinkPayload, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $unlinkSigningReminders = promisifyAsyncAction(unlinkSigningReminders);\n\nexport const sendOutEmbedDocument = createAsyncAction(\n EmbedDocumentSendOutTypes.request,\n EmbedDocumentSendOutTypes.success,\n EmbedDocumentSendOutTypes.failure,\n EmbedDocumentSendOutTypes.cancel,\n)<\n [DocumentIdPayload, PromisifiedActionMeta],\n [Document, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $sendOutEmbedDocument = promisifyAsyncAction(sendOutEmbedDocument);\n\nexport const getEmbedDocumentPreviewPages = createAsyncAction(\n EmbedDocumentPreviewPagesGetActionTypes.request,\n EmbedDocumentPreviewPagesGetActionTypes.success,\n EmbedDocumentPreviewPagesGetActionTypes.failure,\n EmbedDocumentPreviewPagesGetActionTypes.cancel,\n)<\n [DocumentIdPayload, PromisifiedActionMeta],\n [DocumentPreviewPagesPayload, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $getEmbedDocumentPreviewPages = promisifyAsyncAction(\n getEmbedDocumentPreviewPages,\n);\n","export enum IntegrationAuthUrlGetActionTypes {\n request = 'integration/AUTH_URL_GET/REQUEST',\n success = 'integration/AUTH_URL_GET/SUCCESS',\n failure = 'integration/AUTH_URL_GET/FAILURE',\n cancel = 'integration/AUTH_URL_GET_/CANCEL',\n}\n\nexport enum IntegrationAuthTokenGetActionTypes {\n request = 'integration/AUTH_TOKEN_GET/REQUEST',\n success = 'integration/AUTH_TOKEN_GET/SUCCESS',\n failure = 'integration/AUTH_TOKEN_GET/FAILURE',\n cancel = 'integration/AUTH_TOKEN_GET_/CANCEL',\n}\n\nexport enum IntegrationDeactivateActionTypes {\n request = 'integration/DEACTIVATE/REQUEST',\n success = 'integration/DEACTIVATE/SUCCESS',\n failure = 'integration/DEACTIVATE/FAILURE',\n cancel = 'integration/DEACTIVATE/CANCEL',\n}\n","import { createAsyncAction } from 'typesafe-actions';\nimport { PromisifiedActionMeta, ActionError } from 'Interfaces/ActionCreators';\nimport {\n IntegrationUrlPayload,\n IntegrationAuthTokenPayload,\n IntegrationActionPayload,\n IntegrationDeactivatePayload,\n} from 'Interfaces/Integration';\nimport {\n IntegrationAuthUrlGetActionTypes,\n IntegrationAuthTokenGetActionTypes,\n IntegrationDeactivateActionTypes,\n} from './actionTypes';\nimport { promisifyAsyncAction } from 'Utils/functions';\n\nexport const getAuthUrl = createAsyncAction(\n IntegrationAuthUrlGetActionTypes.request,\n IntegrationAuthUrlGetActionTypes.success,\n IntegrationAuthUrlGetActionTypes.failure,\n IntegrationAuthUrlGetActionTypes.cancel,\n)<\n [IntegrationActionPayload, PromisifiedActionMeta],\n [IntegrationUrlPayload, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $getAuthUrl = promisifyAsyncAction(getAuthUrl);\n\nexport const getAuthToken = createAsyncAction(\n IntegrationAuthTokenGetActionTypes.request,\n IntegrationAuthTokenGetActionTypes.success,\n IntegrationAuthTokenGetActionTypes.failure,\n IntegrationAuthTokenGetActionTypes.cancel,\n)<\n [IntegrationActionPayload, PromisifiedActionMeta],\n [IntegrationAuthTokenPayload, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $getAuthToken = promisifyAsyncAction(getAuthToken);\n\nexport const deactivate = createAsyncAction(\n IntegrationDeactivateActionTypes.request,\n IntegrationDeactivateActionTypes.success,\n IntegrationDeactivateActionTypes.failure,\n IntegrationDeactivateActionTypes.cancel,\n)<\n [IntegrationActionPayload, PromisifiedActionMeta],\n [IntegrationDeactivatePayload, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $deactivate = promisifyAsyncAction(deactivate);\n","export const InviteAcceptInitType = 'team/ACCEPT_INVITE_INIT';\n\nexport const InviteAcceptFinishType = 'team/ACCEPT_INVITE_FINISH';\n\nexport enum TeamMembersGetTypes {\n request = 'team/GET_TEAM_MEMBERS/REQUEST',\n success = 'team/GET_TEAM_MEMBERS/SUCCESS',\n failure = 'team/GET_TEAM_MEMBERS/FAILURE',\n cancel = 'team/GET_TEAM_MEMBERS/CANCEL',\n}\n\nexport enum TeamMembersDeleteTypes {\n request = 'team/DELETE_TEAM_MEMBERS/REQUEST',\n success = 'team/DELETE_TEAM_MEMBERS/SUCCESS',\n failure = 'team/DELETE_TEAM_MEMBERS/FAILURE',\n cancel = 'team/DELETE_TEAM_MEMBERS/CANCEL',\n}\n\nexport enum TeamMembersAddActionTypes {\n request = 'team/TEAM_MEMBERS_ADD/REQUEST',\n success = 'team/TEAM_MEMBERS_ADD/SUCCESS',\n failure = 'team/TEAM_MEMBERS_ADD/FAILURE',\n cancel = 'team/TEAM_MEMBERS_ADD/CANCEL',\n}\n\nexport enum InviteAcceptActionTypes {\n request = 'team/ACCEPT_INVITE/REQUEST',\n success = 'team/ACCEPT_INVITE/SUCCESS',\n failure = 'team/ACCEPT_INVITE/FAILURE',\n cancel = 'team/ACCEPT_INVITE/CANCEL',\n}\n\nexport enum UpgradeTeamMemberToAdminActionTypes {\n request = 'team/UPGRADE_TO_ADMIN/REQUEST',\n success = 'team/UPGRADE_TO_ADMIN/SUCCESS',\n failure = 'team/UPGRADE_TO_ADMIN/FAILURE',\n cancel = 'team/UPGRADE_TO_ADMIN/CANCEL',\n}\n\nexport enum DowngradeTeamMemberToUserActionTypes {\n request = 'team/DOWNGRADE_TO_USER/REQUEST',\n success = 'team/DOWNGRADE_TO_USER/SUCCESS',\n failure = 'team/DOWNGRADE_TO_USER/FAILURE',\n cancel = 'team/DOWNGRADE_TO_USER/CANCEL',\n}\n","import { createAsyncAction, createAction } from 'typesafe-actions';\nimport { PromisifiedActionMeta, ActionError } from 'Interfaces/ActionCreators';\nimport { promisifyAsyncAction } from 'Utils/functions';\nimport {\n InviteAcceptInitType,\n InviteAcceptFinishType,\n TeamMembersGetTypes,\n TeamMembersAddActionTypes,\n TeamMembersDeleteTypes,\n InviteAcceptActionTypes,\n UpgradeTeamMemberToAdminActionTypes,\n DowngradeTeamMemberToUserActionTypes,\n} from './actionTypes';\nimport {\n TeamMembersData,\n TeamMembersAddPayload,\n DeleteTeamMembersPayload,\n TeamIdPayload,\n TeamMembersGetPayload,\n} from 'Interfaces/Team';\nimport { TokenPayload, UserIdPayload, User } from 'Interfaces/User';\n\nexport const initInviteAccepting = createAction(\n InviteAcceptInitType,\n (payload: TokenPayload) => payload,\n)();\n\nexport const finishInviteAccepting = createAction(InviteAcceptFinishType)();\n\nexport const getTeamMembers = createAsyncAction(\n TeamMembersGetTypes.request,\n TeamMembersGetTypes.success,\n TeamMembersGetTypes.failure,\n TeamMembersGetTypes.cancel,\n)<\n [TeamMembersGetPayload, PromisifiedActionMeta],\n [TeamMembersData, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $getTeamMembers = promisifyAsyncAction(getTeamMembers);\n\nexport const deleteTeamMembers = createAsyncAction(\n TeamMembersDeleteTypes.request,\n TeamMembersDeleteTypes.success,\n TeamMembersDeleteTypes.failure,\n TeamMembersDeleteTypes.cancel,\n)<\n [DeleteTeamMembersPayload, PromisifiedActionMeta],\n [DeleteTeamMembersPayload, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $deleteTeamMembers = promisifyAsyncAction(deleteTeamMembers);\n\nexport const addTeamMembers = createAsyncAction(\n TeamMembersAddActionTypes.request,\n TeamMembersAddActionTypes.success,\n TeamMembersAddActionTypes.failure,\n TeamMembersAddActionTypes.cancel,\n)<\n [TeamMembersAddPayload, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $addTeamMembers = promisifyAsyncAction(addTeamMembers);\n\nexport const acceptInvite = createAsyncAction(\n InviteAcceptActionTypes.request,\n InviteAcceptActionTypes.success,\n InviteAcceptActionTypes.failure,\n InviteAcceptActionTypes.cancel,\n)<\n [TeamIdPayload, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $acceptInvite = promisifyAsyncAction(acceptInvite);\n\nexport const upgradeToAdmin = createAsyncAction(\n UpgradeTeamMemberToAdminActionTypes.request,\n UpgradeTeamMemberToAdminActionTypes.success,\n UpgradeTeamMemberToAdminActionTypes.failure,\n UpgradeTeamMemberToAdminActionTypes.cancel,\n)<\n [UserIdPayload, PromisifiedActionMeta],\n [User, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $upgradeToAdmin = promisifyAsyncAction(upgradeToAdmin);\n\nexport const downgradeToUser = createAsyncAction(\n DowngradeTeamMemberToUserActionTypes.request,\n DowngradeTeamMemberToUserActionTypes.success,\n DowngradeTeamMemberToUserActionTypes.failure,\n DowngradeTeamMemberToUserActionTypes.cancel,\n)<\n [UserIdPayload, PromisifiedActionMeta],\n [User, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $downgradeToUser = promisifyAsyncAction(downgradeToUser);\n","import sagas from './sagas';\nimport {\n signIn,\n signInPrimary,\n $signInPrimary,\n signInTwillio,\n $signInTwillio,\n $signInGoogleAuthenticator,\n signInGoogleAuthenticator,\n signUp,\n logout,\n connectSocket,\n disconnectSocket,\n setUnauthorized,\n setTwoFactor,\n disableTwillio2fa,\n $disableTwillio2fa,\n $confirmEmail,\n $confirmEmailByTwilio,\n $signUp,\n $sendConformationEmail,\n getSignedGetUrl,\n getSignedGetUrlHash,\n $getSignedGetUrl,\n getCompatibleSignedGetUrl,\n $getCompatibleSignedGetUrl,\n getSignedPutUrl,\n $getSignedPutUrl,\n deleteAccount,\n $deleteAccount,\n updateProfileInfo,\n $updateProfileInfo,\n getSignedGetDownloadUrl,\n $getSignedGetDownloadUrl,\n getSignersAvatars,\n $getSignersAvatars,\n updateCompanyInfo,\n $updateCompanyInfo,\n enableGoogleAuthenticator,\n disableGoogleAuthenticator,\n verifyGoogleCode,\n $enableGoogleAuthenticator,\n $disableGoogleAuthenticator,\n $verifyGoogleCode,\n verifyPhone,\n $verifyPhone,\n generateCode,\n $generateCode,\n putRequisite,\n $putRequisite,\n getCurrentUser,\n $getCurrentUser,\n putCompanyLogo,\n $putCompanyLogo,\n joinSocketRoom,\n sendPasswordChangeEmail,\n $sendPasswordChangeEmail,\n changePassword,\n $changePassword,\n setPasswordToken,\n confirmEmail,\n confirmEmailByTwilio,\n setEmailToken,\n clearEmailToken,\n sendConformationEmail,\n clearPasswordToken,\n getSignedGetUrlBulk,\n $getSignedGetUrlBulk,\n subscribeOnAPIUpdates,\n getSignedPutAssetUrl,\n $getSignedPutAssetUrl,\n $subscribeOnAPIUpdates,\n setEmailConfirmationData,\n unsubscribeFromAPIUpdates,\n $unsubscribeFromAPIUpdates,\n signInAppSumoUser,\n $signInAppSumoUser,\n applyAppSumoLink,\n $putAvatar,\n $signUpWithPlanPrepare,\n $signUpWithConfirmCode,\n $updateEmail,\n updateEmail,\n setIsEmailConfirmed,\n initAccessToken,\n finishInitAccessToken,\n updateGoogleClientId,\n $updateGoogleClientId,\n $signOut,\n getEmbedSignedUrlBulk,\n $getEmbedSignedUrlBulk,\n $getSignedGetUrlHash,\n clearIntegrationData,\n ltdSignUp,\n $ltdSignUp,\n signUpTemporary,\n $signUpTemporary,\n signUpFromTemporary,\n $signUpFromTemporary,\n confirmTemporary,\n $confirmTemporary,\n clearShowTrialSuccessPage,\n} from './actionCreators';\nimport reducer from './reducer';\n\nexport default {\n sagas,\n reducer,\n actions: {\n signIn,\n setTwoFactor,\n enableGoogleAuthenticator,\n disableGoogleAuthenticator,\n verifyGoogleCode,\n signInPrimary,\n signInTwillio,\n signInGoogleAuthenticator,\n signUp,\n setEmailConfirmationData,\n logout,\n verifyPhone,\n generateCode,\n getSignedGetUrl,\n getCompatibleSignedGetUrl,\n getSignedPutUrl,\n getSignedGetDownloadUrl,\n updateCompanyInfo,\n putCompanyLogo,\n putRequisite,\n deleteAccount,\n getCurrentUser,\n disableTwillio2fa,\n updateProfileInfo,\n getSignedPutAssetUrl,\n connectSocket,\n disconnectSocket,\n setUnauthorized,\n joinSocketRoom,\n sendPasswordChangeEmail,\n changePassword,\n setPasswordToken,\n clearPasswordToken,\n getSignedGetUrlBulk,\n subscribeOnAPIUpdates,\n confirmEmail,\n confirmEmailByTwilio,\n sendConformationEmail,\n unsubscribeFromAPIUpdates,\n setEmailToken,\n clearEmailToken,\n signInAppSumoUser,\n applyAppSumoLink,\n getSignersAvatars,\n updateEmail,\n setIsEmailConfirmed,\n initAccessToken,\n finishInitAccessToken,\n updateGoogleClientId,\n getEmbedSignedUrlBulk,\n clearIntegrationData,\n ltdSignUp,\n signUpTemporary,\n signUpFromTemporary,\n confirmTemporary,\n clearShowTrialSuccessPage,\n },\n};\n\nexport const $actions = {\n signInPrimary: $signInPrimary,\n signInTwillio: $signInTwillio,\n signInGoogleAuthenticator: $signInGoogleAuthenticator,\n updateEmail: $updateEmail,\n signUp: $signUp,\n signUpTemporary: $signUpTemporary,\n signUpFromTemporary: $signUpFromTemporary,\n confirmTemporary: $confirmTemporary,\n ltdSignUp: $ltdSignUp,\n getSignersAvatars: $getSignersAvatars,\n changePassword: $changePassword,\n confirmEmail: $confirmEmail,\n confirmEmailByTwilio: $confirmEmailByTwilio,\n sendConformationEmail: $sendConformationEmail,\n getSignedGetUrl: $getSignedGetUrl,\n getCompatibleSignedGetUrl: $getCompatibleSignedGetUrl,\n getSignedGetUrlHash: $getSignedGetUrlHash,\n getSignedPutAssetUrl: $getSignedPutAssetUrl,\n verifyPhone: $verifyPhone,\n enableGoogleAuthenticator: $enableGoogleAuthenticator,\n disableGoogleAuthenticator: $disableGoogleAuthenticator,\n verifyGoogleCode: $verifyGoogleCode,\n generateCode: $generateCode,\n putCompanyLogo: $putCompanyLogo,\n putAvatar: $putAvatar,\n disableTwillio2fa: $disableTwillio2fa,\n updateCompanyInfo: $updateCompanyInfo,\n getSignedGetDownloadUrl: $getSignedGetDownloadUrl,\n deleteAccount: $deleteAccount,\n updateProfileInfo: $updateProfileInfo,\n getSignedPutUrl: $getSignedPutUrl,\n putRequisite: $putRequisite,\n signOut: $signOut,\n getCurrentUser: $getCurrentUser,\n sendPasswordChangeEmail: $sendPasswordChangeEmail,\n getSignedGetUrlBulk: $getSignedGetUrlBulk,\n subscribeOnAPIUpdates: $subscribeOnAPIUpdates,\n unsubscribeFromAPIUpdates: $unsubscribeFromAPIUpdates,\n signInAppSumoUser: $signInAppSumoUser,\n signUpWithPlanPrepare: $signUpWithPlanPrepare,\n signUpWithConfirmCode: $signUpWithConfirmCode,\n updateGoolgeClientId: $updateGoogleClientId,\n getEmbedSignedUrlBulk: $getEmbedSignedUrlBulk,\n};\n","import { AuthStatuses, TwoFactorTypes } from 'Interfaces/Auth';\nimport { User, UserStatuses } from 'Interfaces/User';\nimport { createReducer } from 'typesafe-actions';\nimport uuid from 'uuid/v4';\nimport {\n changePLan,\n redeemLtdCode,\n retryCharge,\n upgradeAppSumo,\n upsellPlan,\n} from '../billing/actionCreators';\nimport {\n initEmbedDocumentToken,\n removeEmbedDocumenToken,\n} from '../document/actionCreators';\nimport {\n finishDocumentSigning,\n initDocumentSigning,\n sendDocumentOut,\n} from '../documentSign/actionCreators';\nimport { deactivate as deactivateIntegration } from '../integration/actionCreators';\nimport { finishInviteAccepting, initInviteAccepting } from '../team/actionCreators';\nimport {\n applyAppSumoLink,\n clearEmailToken,\n clearIntegrationData,\n clearPasswordToken,\n disableGoogleAuthenticator,\n disableTwillio2fa,\n enableGoogleAuthenticator,\n finishInitAccessToken,\n getCurrentUser,\n initAccessToken,\n logout,\n setEmailConfirmationData,\n setEmailToken,\n setIntegration,\n setPasswordToken,\n setTwoFactor,\n setUnauthorized,\n signIn,\n signOut,\n signUpTemporary,\n confirmTemporary,\n subscribeOnAPIUpdates,\n unsubscribeFromAPIUpdates,\n updateCompanyInfo,\n updateGoogleClientId,\n updateProfileInfo,\n verifyGoogleCode,\n verifyPhone,\n clearShowTrialSuccessPage,\n} from './actionCreators';\nimport { isNewTrialUser } from 'Utils/functions';\nimport { PlanIds, PlanTypes, signatureLimitedPlans } from 'Interfaces/Billing';\n\nexport interface UserReducerState extends User {\n authStatus: AuthStatuses;\n signToken?: string;\n twoFactorToken?: string;\n twoFactorType?: TwoFactorTypes;\n passwordToken?: string;\n emailToken?: string;\n isAppSumoLinkUsed?: boolean;\n embedToken?: string;\n isSecondStepCompleted?: boolean;\n showTrialSuccessPage: boolean;\n}\n\nexport default createReducer({} as UserReducerState)\n .handleAction(\n [signIn, getCurrentUser.success, redeemLtdCode.success],\n (state, action) => ({\n ...state,\n ...action.payload,\n authStatus: isNewTrialUser(action.payload)\n ? AuthStatuses.TRIAL\n : AuthStatuses.AUTHORIZED,\n }),\n )\n .handleAction([signUpTemporary.success], (state, action) => ({\n ...state,\n ...action.payload.user,\n }))\n .handleAction(\n [\n changePLan.success,\n upsellPlan.success,\n updateProfileInfo.success,\n upgradeAppSumo.success,\n updateCompanyInfo.success,\n verifyPhone.success,\n verifyGoogleCode.success,\n disableTwillio2fa.success,\n enableGoogleAuthenticator.success,\n disableGoogleAuthenticator.success,\n subscribeOnAPIUpdates.success,\n unsubscribeFromAPIUpdates.success,\n updateGoogleClientId.success,\n ],\n (state, action) => ({\n ...state,\n ...action.payload,\n authStatus: AuthStatuses.AUTHORIZED,\n showTrialSuccessPage:\n state.showTrialStep && !(action.payload as User).showTrialStep,\n }),\n )\n .handleAction(applyAppSumoLink, state => ({\n ...state,\n isAppSumoLinkUsed: true,\n }))\n .handleAction(setTwoFactor, (state, action) => ({\n ...state,\n twoFactorToken: action.payload.twoFactorToken,\n twoFactorType: action.payload.twoFactorType,\n }))\n .handleAction(\n [setEmailConfirmationData, confirmTemporary.success],\n (state, action) => ({\n ...state,\n ...action.payload,\n }),\n )\n .handleAction(\n [logout, getCurrentUser.failure, setUnauthorized, signOut.success],\n state => ({\n ...state,\n twoFactorToken: undefined,\n twoFactorType: undefined,\n passwordToken: undefined,\n authStatus: AuthStatuses.UNAUTHORIZED,\n }),\n )\n .handleAction(\n [initDocumentSigning, initInviteAccepting, initAccessToken],\n (state, action) => ({\n ...state,\n signToken: action.payload.token,\n }),\n )\n .handleAction(\n [finishDocumentSigning, finishInviteAccepting, finishInitAccessToken],\n state => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { signToken, ...nestState } = state;\n\n return nestState;\n },\n )\n .handleAction([deactivateIntegration.success], (state, action) => {\n return {\n ...state,\n integrations: state.integrations.filter(\n integration => integration.type !== action.payload.type,\n ),\n };\n })\n .handleAction([setIntegration], (state, action) => ({\n ...state,\n integrations: [...state.integrations, { id: uuid(), type: action.payload.type }],\n }))\n .handleAction([setPasswordToken], (state, action) => ({\n ...state,\n passwordToken: action.payload.token,\n }))\n .handleAction([clearPasswordToken], state => ({\n ...state,\n passwordToken: undefined,\n }))\n .handleAction([setEmailToken], (state, action) => ({\n ...state,\n emailToken: action.payload.token,\n }))\n .handleAction([clearEmailToken], state => ({\n ...state,\n emailToken: undefined,\n }))\n .handleAction([sendDocumentOut.success], state => {\n const isSignaturesLimited = signatureLimitedPlans.includes(state.plan.id as PlanIds);\n\n const signatureCounterIncrement = isSignaturesLimited\n ? state.plan.type === PlanTypes.PERSONAL\n ? { personalDocumentsUsed: (state?.personalDocumentsUsed ?? 0) + 1 }\n : { freeDocumentsUsed: (state?.freeDocumentsUsed ?? 0) + 1 }\n : undefined;\n\n return {\n ...state,\n ...signatureCounterIncrement,\n };\n })\n .handleAction(initEmbedDocumentToken, (state, action) => ({\n ...state,\n embedToken: action.payload.token,\n }))\n .handleAction(removeEmbedDocumenToken, state => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { embedToken, ...nestState } = state;\n\n return nestState;\n })\n .handleAction(clearIntegrationData, (state, action) => {\n return {\n ...state,\n integrations: state.integrations.filter(\n integration => integration.type !== action.payload.type,\n ),\n };\n })\n .handleAction(retryCharge.success, state => {\n return {\n ...state,\n status: UserStatuses.ACTIVE,\n };\n })\n .handleAction([clearShowTrialSuccessPage], state => ({\n ...state,\n showTrialSuccessPage: false,\n }));\n","import Api from './Api';\nimport { AxiosRequestConfig } from 'axios';\nimport {\n Document,\n DocumentValues,\n DocumentUpdate,\n TemplateMergePayload,\n DocumentIdPayload,\n DocumentConvertionData,\n DocumentActivity,\n DocumentUpdateQuery,\n DocumentPartIdPayload,\n FormRequestDocumentValues,\n DocumentTypes,\n DocumentStatuses,\n DocumentFileUploadRequest,\n DocumentFileUploadResponse,\n DocumentUpdatePayload,\n GetReportByEmailPayload,\n} from 'Interfaces/Document';\nimport { getWorkflowVersion, sleep } from 'Utils/functions';\nimport { TokenizedPayload } from 'Interfaces/User';\nimport ApiService from 'Services/Api/Api';\n\nexport class DocumentApi extends Api {\n getFormRequests = (params: AxiosRequestConfig['params'], config?: AxiosRequestConfig) =>\n this.request.get()('documents/form_requests', { params, ...config });\n\n getDocument = (payload: DocumentIdPayload) =>\n this.request.get()(`documents/${payload.documentId}`);\n\n createDocument = (values: DocumentValues) =>\n this.request.post()('documents', {\n ...values,\n workflowVersion: getWorkflowVersion(),\n });\n\n createDocumentByExistTemplate = (values: DocumentValues) =>\n this.request.post()('documents/document_by_exist_template', {\n ...values,\n workflowVersion: getWorkflowVersion(),\n });\n\n updateDocumentByExistTemplate = (values: DocumentValues) =>\n this.request.patch()('documents/update_document_by_exist_template', {\n ...values,\n workflowVersion: getWorkflowVersion(),\n });\n\n createTemplate = (values: DocumentValues) =>\n this.request.post()('documents/templates', {\n ...values,\n workflowVersion: getWorkflowVersion(),\n });\n\n createForm = (values: DocumentValues) =>\n this.request.post()('documents/form-requests', {\n ...values,\n workflowVersion: getWorkflowVersion(),\n });\n\n getUploadDocumentSignedLink = (id: Document['id'], values: DocumentFileUploadRequest) =>\n this.request.post()(\n `documents/${id}/file_upload`,\n values,\n );\n\n uploadFile = (signedUrl: string, file: File) =>\n ApiService.uploadFile(signedUrl, file, {\n headers: {\n 'Content-type': file.type,\n },\n });\n\n uploadDocument = (id: Document['id'], file: File, config?: AxiosRequestConfig) => {\n const headers = {\n 'Content-Type': 'application/x-www-form-urlencoded',\n };\n const formData = new FormData();\n formData.append('upload', file, file.name);\n\n return this.request.post()(`documents/${id}/file_upload`, formData, {\n ...config,\n headers,\n });\n };\n\n cleanFileData = (payload: DocumentPartIdPayload) =>\n this.request.post()(`documents/${payload.documentId}/file_clean`, payload);\n\n updateDocument = (values: DocumentUpdate, params?: DocumentUpdateQuery) => {\n const { documentId, ...payload } = values;\n\n return this.request.patch()(`documents/${documentId}`, payload, { params });\n };\n\n activateTemplate = (documentId: Document['id'], status = DocumentStatuses.ACTIVE) =>\n this.request.patch()(`documents/templates/${documentId}/activate`, {\n status,\n });\n\n addTemplateToApi = (documentId: Document['id']) =>\n this.request.post()(`documents/templates/${documentId}/to-api`);\n\n removeTemplateFromApi = (documentId: Document['id']) =>\n this.request.delete()(`documents/templates/${documentId}/to-api`);\n\n revertDocument = (documentId: Document['id']) =>\n this.request.patch()(`documents/${documentId}/revert`);\n\n updateTemplate = (values: DocumentUpdate, params) => {\n const { documentId, ...payload } = values;\n\n return this.request.patch()(`documents/templates/${documentId}`, payload, {\n params,\n });\n };\n\n updateForm = (values: DocumentUpdate, params) => {\n const { documentId, ...payload } = values;\n\n return this.request.patch()(\n `documents/form-requests/${documentId}`,\n payload,\n {\n params,\n },\n );\n };\n\n deleteDocuments = (documentIds: string[]) => {\n return this.request.delete()(`documents/bulk`, {\n data: { ids: documentIds },\n });\n };\n\n deleteDocument = (payload: DocumentIdPayload) => {\n return this.request.delete()(`documents`, {\n data: payload,\n });\n };\n\n sendReminder = async (userIds: string[]) => {\n await sleep(5000);\n return userIds;\n };\n\n getAllDocuments = payload =>\n this.request.get()('documents/all', {\n params: payload,\n });\n\n copyDocument = (payload: DocumentIdPayload) =>\n this.request.post()(`documents/templates/${payload.documentId}/copy`);\n\n replicateTemplate = (payload: DocumentIdPayload) =>\n this.request.get()(`documents/templates/${payload.documentId}/replica`);\n\n mergeTemplate = (payload: TemplateMergePayload) =>\n this.request.post()(\n `documents/templates/${payload.sourceTemplateId}/replica/${payload.templateId}/merge`,\n );\n\n getDocumentConvertionData = (payload: DocumentIdPayload) =>\n this.request.get()(\n `documents/${payload.documentId}/convertion_data`,\n );\n\n getDocumentActivities = (payload: DocumentIdPayload) =>\n this.request.get()(`documents/${payload.documentId}/activities`);\n\n createFormRequestDocument = (values: FormRequestDocumentValues) =>\n this.request.post()(\n `document_sign/form-requests/${values.templateId}/create-document`,\n { ...values, type: DocumentTypes.FORM_REQUEST },\n );\n\n getFormRequestContracts = (payload: { documentId: string }) =>\n this.request.get()(`documents/form-requests/${payload.documentId}/contracts`);\n\n disableFormRequest = (payload: { documentId: string }) =>\n this.request.post()(`documents/form-requests/${payload.documentId}/disable`);\n\n enableFormRequest = (payload: { documentId: string }) =>\n this.request.post()(`documents/form-requests/${payload.documentId}/enable`);\n\n getFormRequest = (payload: { documentId: string }) =>\n this.request.get()(`document_sign/form-requests/${payload.documentId}`);\n\n getAllTemplates = payload =>\n this.request.get()('documents/all/templates', {\n params: payload,\n });\n\n getEmbedDocument = ({ token, payload }: TokenizedPayload) =>\n this.request.get(token)(`documents/embed/${payload.documentId}`);\n\n updateEmbedDocument = (\n { token, payload }: TokenizedPayload,\n params?: DocumentUpdateQuery,\n ) => {\n const { documentId, ...updatePayload } = payload.values;\n\n return this.request.patch(token)(\n `documents/embed/${documentId}`,\n updatePayload,\n {\n params,\n },\n );\n };\n\n getDocumentByHash = ({ documentId, ...params }: { documentId: string; hash: string }) =>\n this.request.get()(`documents/${documentId}/hash`, { params });\n\n getReportByEmail = async (payload: GetReportByEmailPayload) =>\n this.request.get()(`documents/report/${payload.year}`);\n}\n\nexport default new DocumentApi();\n","import Api from './Api';\nimport {\n Document,\n SignerDocumentIdPayload,\n SignerOption,\n DocumentIdPayload,\n DocumentSubmitPayload,\n DocumentBulkSendValues,\n DocumentDownloadPayload,\n RemindersSendPayload,\n DocumentPreviewPagesPayload,\n DocumentSharePayload,\n SignerIdPayload,\n DocumentConvertionStatusPayload,\n CodeAccessPayload,\n SigningUrlGetPayload,\n SigningUrlPayload,\n SigningRemindersUnlinkPayload,\n DocumentActivitiesDownloadPayload,\n DocumentDisableRemindersRequest,\n DocumentSeparateSignPayload,\n DocumentForSigning,\n} from 'Interfaces/Document';\nimport { TokenizedPayload } from 'Interfaces/User';\nimport {\n SignedPartDocumentActivityUrlResponse,\n SignedPartDocumentUrlResponse,\n SignedUrlResponse,\n} from 'Interfaces/Common';\n\nexport class DocumentSignApi extends Api {\n sendOutDocument = (documentId: Document['id']) =>\n this.request.patch()(`document_sign/documents/${documentId}/send_out`);\n\n getAvailableSignersOptions = ({\n token,\n payload,\n }: TokenizedPayload) => {\n return this.request.get(token)(\n `document_sign/documents/${payload.documentId}/signers`,\n );\n };\n\n sendDocumentBulk = (values: DocumentBulkSendValues) =>\n this.request.post()('document_sign/bulk_send', values);\n\n getSignerDocument = ({ token, payload }: TokenizedPayload) => {\n const { signerId, documentId } = payload;\n\n return this.request.get(token)(\n `document_sign/signers/${signerId}/document/${documentId}`,\n );\n };\n\n getSigningDocument = ({ token, payload }: TokenizedPayload) => {\n return this.request.get(token)(\n `document_sign/documents/${payload.documentId}`,\n );\n };\n\n submitSignedDocument = ({\n token,\n payload,\n }: TokenizedPayload) => {\n const { signerId, documentId } = payload;\n\n return this.request.patch(token)(\n `document_sign/documents/${documentId}/signers/${signerId}/sign`,\n {},\n );\n };\n\n declineSigningRequest = ({\n token,\n payload,\n }: TokenizedPayload) => {\n const { signerId, documentId } = payload;\n\n return this.request.patch(token)(\n `document_sign/documents/${documentId}/signers/${signerId}/decline`,\n {},\n );\n };\n\n updateFields = ({ token, payload }: TokenizedPayload) => {\n const { signerId, documentId, fields } = payload;\n\n return this.request.patch(\n token,\n )(`document_sign/documents/${documentId}/signers/${signerId}/fields`, { fields });\n };\n\n getDownloadUrlByHash = ({ documentId, ...params }: DocumentDownloadPayload) =>\n this.request.get()(\n `document_sign/documents/${documentId}/signed_download_url/hash`,\n {\n params,\n },\n );\n\n getActivitiesDownloadUrlByHash = ({ documentId, ...params }: DocumentDownloadPayload) =>\n this.request.get()(\n `document_sign/documents/${documentId}/activities/signed_download_url/hash`,\n {\n params,\n },\n );\n\n getDownloadUrlByJWT = ({\n payload: { signerId, documentId },\n token,\n }: TokenizedPayload) =>\n this.request.get(token)(\n `document_sign/documents/${documentId}/signed_download_url/jwt`,\n {\n params: { signerId },\n },\n );\n\n getActivitiesDownloadUrlByJWT = ({\n payload: { documentId },\n token,\n }: TokenizedPayload) =>\n this.request.get(token)(\n `document_sign/documents/${documentId}/activities/signed_download_url/jwt`,\n );\n\n signSeparateDocumentActivitiesByJWT = ({\n payload: { documentId },\n token,\n }: TokenizedPayload) =>\n this.request.patch(token)(\n `document_sign/documents/${documentId}/activities/sign_activities/jwt`,\n );\n\n signSeparateDocumentByJWT = ({\n payload: { documentId },\n token,\n }: TokenizedPayload) =>\n this.request.patch(token)(\n `document_sign/documents/${documentId}/document/sign_document_without_activities/jwt`,\n );\n\n getSeparateDocumentDownloadUrlByJWT = ({\n payload: { documentId },\n token,\n }: TokenizedPayload) =>\n this.request.get(token)(\n `document_sign/documents/${documentId}/document/signed_download_url/jwt`,\n );\n\n sendReminders = ({ documentId, signersIds }: RemindersSendPayload) =>\n this.request.post()(`document_sign/documents/${documentId}/send_reminders`, {\n signersIds,\n });\n\n disableSigningReminders = (values: DocumentDisableRemindersRequest) => {\n const { documentId, disableReminders } = values;\n\n return this.request.patch()(\n `document_sign/${documentId}/disable-reminders`,\n { disableReminders },\n );\n };\n\n sendSignatoryOpened = ({\n token,\n payload,\n }: TokenizedPayload) => {\n const { documentId, signerId } = payload;\n\n return this.request.post(token)(\n `document_sign/documents/${documentId}/signers/${signerId}/signatory_opened`,\n );\n };\n\n getDocumentPreviewPages = (payload: DocumentIdPayload) => {\n return this.request.get()(\n `document_sign/documents/${payload.documentId}/preview_pages`,\n );\n };\n\n getDocumentShareUrl = (payload: DocumentIdPayload) =>\n this.request.get()(\n `document_sign/documents/${payload.documentId}/share_url`,\n );\n\n shareDocument = ({ documentId, recipients }: DocumentSharePayload) =>\n this.request.post()(`document_sign/documents/${documentId}/share`, {\n recipients,\n });\n\n getDocumentConvertionStatus = ({\n payload: { signerId },\n token,\n }: TokenizedPayload) =>\n this.request.get(token)(\n `document_sign/signers/${signerId}/convertion_status`,\n );\n\n sendCodeAccess = ({ payload, token }: TokenizedPayload) => {\n const { signerId, documentId, codeAccess } = payload;\n\n return this.request.post(token)(\n `document_sign/signers/${signerId}/document/${documentId}/confirm_code`,\n {\n codeAccess,\n },\n );\n };\n\n getSignigUrl = ({ documentId, userId }: SigningUrlGetPayload) => {\n return this.request.get()(\n `document_sign/documents/${documentId}/signing_url`,\n {\n params: {\n userId,\n },\n },\n );\n };\n\n unlinkSigningReminders = ({\n token,\n payload,\n }: TokenizedPayload) => {\n return this.request.patch(token)(\n `document_sign/${payload.signerId}/unlink-reminder`,\n );\n };\n\n sendOutEmbedDocument = ({ token, payload }: TokenizedPayload) =>\n this.request.patch(token)(\n `document_sign/documents/embed/${payload.documentId}/send_out`,\n );\n\n getEmbedDocumentPreviewPages = ({\n token,\n payload,\n }: TokenizedPayload) => {\n return this.request.get(token)(\n `document_sign/documents/embed/${payload.documentId}/preview_pages`,\n );\n };\n}\n\nexport default new DocumentSignApi();\n","import {\n put,\n call,\n race,\n takeLeading,\n takeLatest,\n takeEvery,\n cancelled,\n cancel,\n take,\n delay,\n select,\n} from 'redux-saga/effects';\nimport lodash, { isEmpty } from 'lodash';\nimport { getType } from 'typesafe-actions';\nimport Axios from 'axios';\nimport { UserReducerState } from 'Store/ducks/user/reducer';\nimport DocumentApiService from 'Services/Api/Document';\nimport DocumentSignApi from 'Services/Api/DocumentSign';\nimport {\n NormalizedEntity,\n SignedPartDocumentActivityUrlResponse,\n SignedPartDocumentUrlResponse,\n SignedUrlResponse,\n} from 'Interfaces/Common';\nimport {\n Document,\n DocumentTypes,\n DocumentConvertionData,\n DocumentActivity,\n DocumentFileUploadResponse,\n DocumentFileUploadRequest,\n} from 'Interfaces/Document';\nimport { selectEmbedToken, selectSignToken } from 'Utils/selectors';\nimport {\n createDocument,\n getFormRequests,\n getDocument,\n uploadDocument,\n deleteDocuments,\n updateDocument,\n sendReminder,\n getAllDocuments,\n cleanFileData,\n copyDocument,\n getDocumentDownloadUrl,\n activateTemplate,\n revertDocument,\n mergeTemplate,\n replicateTemplate,\n sendDocumentBulk,\n watchDocumentConvertionProgress,\n getDocumentConvertionStatus,\n getDocumentActivities,\n createDocumentFromFormRequest,\n removeTemplateFromApi,\n addTemplateToApi,\n getFormRequest,\n disableForm,\n enableForm,\n getAllTemplates,\n createDocumentByExistTemplate,\n updateDocumentByExistTemplate,\n getDocumentActivitiesDownloadUrl,\n signSeparateDocument,\n getSeparateDocumentDownloadUrl,\n signSeparateDocumentActivities,\n deleteDocument,\n getEmbedDocument,\n updateEmbedDocument,\n getDocumentByHash,\n getReportByEmail,\n} from './actionCreators';\n\nfunction* handleDocumentCreate({\n payload,\n meta,\n}: ReturnType) {\n const { values } = payload;\n\n try {\n let createEndpoint;\n\n switch (values.type) {\n case DocumentTypes.TEMPLATE:\n createEndpoint = DocumentApiService.createTemplate;\n break;\n case DocumentTypes.FORM_REQUEST:\n createEndpoint = DocumentApiService.createForm;\n break;\n default:\n createEndpoint = DocumentApiService.createDocument;\n }\n\n const document = yield call(createEndpoint, values);\n const withConvertedDate: Document = {\n ...document,\n };\n yield put(createDocument.success(withConvertedDate, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(createDocument.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(createDocument.cancel(undefined, { ...meta, isLeading: true }));\n }\n }\n}\n\nfunction* handleDocumentCreateByExistTemplate({\n payload,\n meta,\n}: ReturnType) {\n const { values } = payload;\n try {\n const createEndpoint = DocumentApiService.createDocumentByExistTemplate;\n const document = yield call(createEndpoint, values);\n const withConvertedDate: Document = {\n ...document,\n };\n yield put(\n createDocumentByExistTemplate.success(withConvertedDate, {\n ...meta,\n isLeading: true,\n }),\n );\n } catch (error) {\n yield put(createDocumentByExistTemplate.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(\n createDocumentByExistTemplate.cancel(undefined, { ...meta, isLeading: true }),\n );\n }\n }\n}\n\nfunction* handleDocumentUpdateByExistTemplate({\n payload,\n meta,\n}: ReturnType) {\n const { values } = payload;\n try {\n const document = yield call(DocumentApiService.updateDocumentByExistTemplate, values);\n yield put(\n updateDocumentByExistTemplate.success(document, { ...meta, isLeading: true }),\n );\n } catch (error) {\n yield put(updateDocumentByExistTemplate.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(\n updateDocumentByExistTemplate.cancel(undefined, { ...meta, isLeading: true }),\n );\n }\n }\n}\n\nfunction* handleFormRequestsGet({\n payload,\n meta,\n}: ReturnType) {\n const cancelToken = Axios.CancelToken.source();\n\n try {\n const { items, totalItems, totalPages, itemCount } = yield call(\n DocumentApiService.getFormRequests,\n payload,\n {\n cancelToken: cancelToken.token,\n },\n );\n const normalizedDocuments: NormalizedEntity = lodash.keyBy(items, 'id');\n yield put(\n getFormRequests.success(\n {\n documents: normalizedDocuments,\n paginationData: { totalItems, pageCount: totalPages, itemsCount: itemCount },\n },\n meta,\n ),\n );\n } catch (error) {\n yield put(getFormRequests.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(getFormRequests.cancel(undefined, meta));\n cancelToken.cancel();\n }\n }\n}\n\nfunction* handleDocumentGet({ payload, meta }: ReturnType) {\n try {\n const document: Document = yield call(DocumentApiService.getDocument, payload);\n yield put(getDocument.success(document, meta));\n } catch (error) {\n yield put(getDocument.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(getDocument.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleDocumentByHash({\n payload,\n meta,\n}: ReturnType) {\n try {\n const document: Document = yield call(DocumentApiService.getDocumentByHash, payload);\n yield put(getDocumentByHash.success(document, meta));\n } catch (e) {\n yield put(getDocumentByHash.failure(e, meta));\n } finally {\n if (yield cancelled()) {\n yield put(getDocumentByHash.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleDocumentUpload({\n payload,\n meta,\n}: ReturnType) {\n try {\n const { documentId, file } = payload;\n\n const body: DocumentFileUploadRequest = {\n filename: file.name,\n };\n\n const fileUploadLinkResponse: DocumentFileUploadResponse = yield call(\n DocumentApiService.getUploadDocumentSignedLink,\n documentId,\n body,\n );\n\n if (isEmpty(fileUploadLinkResponse)) {\n yield cancel();\n }\n\n yield call(DocumentApiService.uploadFile, fileUploadLinkResponse.signed_url, file);\n\n yield put(uploadDocument.success(fileUploadLinkResponse, meta));\n } catch (error) {\n yield put(uploadDocument.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(uploadDocument.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleDocumentUpdate({\n payload,\n meta,\n}: ReturnType) {\n const { values } = payload;\n try {\n let updateEndpoint;\n switch (values.type) {\n case DocumentTypes.TEMPLATE:\n updateEndpoint = DocumentApiService.updateTemplate;\n break;\n case DocumentTypes.FORM_REQUEST:\n updateEndpoint = DocumentApiService.updateForm;\n break;\n default:\n updateEndpoint = DocumentApiService.updateDocument;\n }\n\n const document = yield call(updateEndpoint, values);\n yield put(updateDocument.success(document, meta));\n } catch (error) {\n yield put(updateDocument.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(updateDocument.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleDocumentsDelete({\n payload,\n meta,\n}: ReturnType) {\n try {\n yield call(DocumentApiService.deleteDocuments, payload.documentIds);\n yield put(deleteDocuments.success(undefined, meta));\n } catch (error) {\n yield put(deleteDocuments.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(deleteDocuments.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleReminderSend({ payload, meta }: ReturnType) {\n const { userIds } = payload;\n try {\n yield call(DocumentApiService.sendReminder, userIds);\n yield put(sendReminder.success(undefined, meta));\n } catch (error) {\n yield put(sendReminder.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(sendReminder.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleAllDocumentsGet({\n meta,\n payload,\n}: ReturnType) {\n try {\n const documents: Document[] = yield call(DocumentApiService.getAllDocuments, payload);\n const normalizedDocuments: NormalizedEntity = lodash.keyBy(documents, 'id');\n\n yield put(getAllDocuments.success(normalizedDocuments, meta));\n } catch (error) {\n yield put(getAllDocuments.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(getAllDocuments.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleAllTemplatesGet({\n meta,\n payload,\n}: ReturnType) {\n try {\n const documents: Document[] = yield call(DocumentApiService.getAllTemplates, payload);\n const normalizedDocuments: NormalizedEntity = lodash.keyBy(documents, 'id');\n\n yield put(getAllTemplates.success(normalizedDocuments, meta));\n } catch (error) {\n yield put(getAllTemplates.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(getAllTemplates.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleFileDataClean({\n payload,\n meta,\n}: ReturnType) {\n try {\n const document: Document = yield call(DocumentApiService.cleanFileData, payload);\n\n yield put(cleanFileData.success(document, meta));\n } catch (error) {\n yield put(cleanFileData.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(cleanFileData.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleDocumentCopy({ payload, meta }: ReturnType) {\n try {\n const document: Document = yield call(DocumentApiService.copyDocument, payload);\n\n yield put(copyDocument.success(document, meta));\n } catch (error) {\n yield put(copyDocument.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(copyDocument.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleDocumentDownloadUrlGet({\n payload,\n meta,\n}: ReturnType) {\n try {\n const isHash = !!payload.hash;\n const token: UserReducerState['signToken'] = yield select(selectSignToken);\n\n const res: SignedUrlResponse = isHash\n ? yield call(DocumentSignApi.getDownloadUrlByHash, payload)\n : yield call(DocumentSignApi.getDownloadUrlByJWT, { payload, token });\n\n yield put(getDocumentDownloadUrl.success(res, meta));\n } catch (err) {\n yield put(getDocumentDownloadUrl.failure(err, meta));\n } finally {\n if (yield cancelled()) {\n yield put(getDocumentDownloadUrl.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleDocumentActivitiesDownloadUrlGet({ payload, meta }) {\n try {\n const isHash = !!payload.hash;\n const token: UserReducerState['signToken'] = yield select(selectSignToken);\n\n const res: SignedUrlResponse = isHash\n ? yield call(DocumentSignApi.getActivitiesDownloadUrlByHash, payload)\n : yield call(DocumentSignApi.getActivitiesDownloadUrlByJWT, { payload, token });\n\n yield put(getDocumentActivitiesDownloadUrl.success(res, meta));\n } catch (err) {\n yield put(getDocumentActivitiesDownloadUrl.failure(err, meta));\n } finally {\n if (yield cancelled()) {\n yield put(getDocumentActivitiesDownloadUrl.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleTemplateActivate({\n payload,\n meta,\n}: ReturnType) {\n try {\n const document: Document = yield call(\n DocumentApiService.activateTemplate,\n payload.documentId,\n payload.status,\n );\n\n yield put(activateTemplate.success(document, meta));\n } catch (error) {\n yield put(activateTemplate.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(activateTemplate.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleTemplateRemoveFromApi({\n payload,\n meta,\n}: ReturnType) {\n try {\n const document: Document = yield call(\n DocumentApiService.removeTemplateFromApi,\n payload.documentId,\n );\n\n yield put(removeTemplateFromApi.success(document, meta));\n } catch (error) {\n yield put(removeTemplateFromApi.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(removeTemplateFromApi.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleTemplateAddToApi({\n payload,\n meta,\n}: ReturnType) {\n try {\n const document: Document = yield call(\n DocumentApiService.addTemplateToApi,\n payload.documentId,\n );\n\n yield put(addTemplateToApi.success(document, meta));\n } catch (error) {\n yield put(addTemplateToApi.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(addTemplateToApi.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleDocumentRevert({\n payload,\n meta,\n}: ReturnType) {\n try {\n const document: Document = yield call(\n DocumentApiService.revertDocument,\n payload.documentId,\n );\n\n yield put(revertDocument.success(document, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(revertDocument.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(revertDocument.cancel(undefined, { ...meta, isLeading: true }));\n }\n }\n}\n\nfunction* handleTemplateReplicate({\n payload,\n meta,\n}: ReturnType) {\n try {\n const document: Document = yield call(DocumentApiService.replicateTemplate, payload);\n\n yield put(replicateTemplate.success(document, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(replicateTemplate.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(replicateTemplate.cancel(undefined, { ...meta, isLeading: true }));\n }\n }\n}\n\nfunction* handleTemplateMerge({\n payload,\n meta,\n}: ReturnType) {\n try {\n const document: Document = yield call(DocumentApiService.mergeTemplate, payload);\n\n yield put(mergeTemplate.success(document, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(mergeTemplate.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(mergeTemplate.cancel(undefined, { ...meta, isLeading: true }));\n }\n }\n}\n\nfunction* handleDocumentsBulkSend({\n payload,\n meta,\n}: ReturnType) {\n try {\n yield call(DocumentSignApi.sendDocumentBulk, payload);\n yield put(sendDocumentBulk.success(undefined, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(sendDocumentBulk.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(sendDocumentBulk.cancel(undefined, { ...meta, isLeading: true }));\n }\n }\n}\n\nfunction* handleDocumentConvertionStatusGet({\n payload,\n meta,\n}: ReturnType) {\n try {\n const convertionData: DocumentConvertionData = yield call(\n DocumentApiService.getDocumentConvertionData,\n payload,\n );\n\n yield put(getDocumentConvertionStatus.success(convertionData, meta));\n } catch (err) {\n yield put(getDocumentConvertionStatus.failure(err, meta));\n } finally {\n if (yield cancelled()) {\n yield put(getDocumentConvertionStatus.cancel(undefined, meta));\n }\n }\n}\n\nfunction* watchDocumentConvertion({\n payload,\n}: ReturnType) {\n try {\n while (true) {\n const { cancel } = yield race({\n cancel: take(getType(watchDocumentConvertionProgress.stop)),\n throttle: delay(3000, true),\n });\n\n if (cancel) {\n break;\n }\n\n yield put(getDocumentConvertionStatus.request(payload, {}));\n }\n } catch (err) {\n yield put(watchDocumentConvertionProgress.failure(err));\n }\n}\n\nfunction* handleDocumentActivitiesGet({\n payload,\n meta,\n}: ReturnType) {\n try {\n const documentActivities: DocumentActivity[] = yield call(\n DocumentApiService.getDocumentActivities,\n payload,\n );\n\n yield put(getDocumentActivities.success(documentActivities, meta));\n } catch (error) {\n yield put(getDocumentActivities.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(getDocumentActivities.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleDocumentCreateFromFormRequest({\n payload,\n meta,\n}: ReturnType) {\n try {\n const createEndpoint = DocumentApiService.createFormRequestDocument;\n\n const document = yield call(createEndpoint, payload);\n const withConvertedDate: Document = {\n ...document,\n };\n yield put(\n createDocumentFromFormRequest.success(withConvertedDate, {\n ...meta,\n isLeading: true,\n }),\n );\n } catch (error) {\n yield put(createDocumentFromFormRequest.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(\n createDocumentFromFormRequest.cancel(undefined, { ...meta, isLeading: true }),\n );\n }\n }\n}\n\nfunction* handleFormRequestGet({\n payload,\n meta,\n}: ReturnType) {\n try {\n const document: Document = yield call(DocumentApiService.getFormRequest, payload);\n yield put(getFormRequest.success(document, meta));\n } catch (error) {\n yield put(getFormRequest.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(getFormRequest.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleFormRequestDisable({\n payload,\n meta,\n}: ReturnType) {\n try {\n const document: Document = yield call(DocumentApiService.disableFormRequest, payload);\n yield put(disableForm.success(document, meta));\n } catch (error) {\n yield put(disableForm.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(disableForm.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleFormRequestEnable({\n payload,\n meta,\n}: ReturnType) {\n try {\n const document: Document = yield call(DocumentApiService.enableFormRequest, payload);\n yield put(enableForm.success(document, meta));\n } catch (error) {\n yield put(enableForm.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(enableForm.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleDocumentSeparateSign({\n payload,\n meta,\n}: ReturnType) {\n try {\n const token: UserReducerState['signToken'] = yield select(selectSignToken);\n const res: SignedPartDocumentUrlResponse = yield call(\n DocumentSignApi.signSeparateDocumentByJWT,\n { payload, token },\n );\n yield put(signSeparateDocument.success({ ...res, id: payload.documentId }, meta));\n } catch (error) {\n yield put(signSeparateDocument.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(signSeparateDocument.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleSeparateDocumentDownloadUrlGet({\n payload,\n meta,\n}: ReturnType) {\n try {\n const isHash = !!payload.hash;\n const token: UserReducerState['signToken'] = yield select(selectSignToken);\n\n const res: SignedUrlResponse = isHash\n ? yield call(DocumentSignApi.getDownloadUrlByHash, payload)\n : yield call(DocumentSignApi.getSeparateDocumentDownloadUrlByJWT, {\n payload,\n token,\n });\n yield put(getSeparateDocumentDownloadUrl.success(res, meta));\n } catch (error) {\n yield put(getSeparateDocumentDownloadUrl.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(getSeparateDocumentDownloadUrl.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleDocumentActivitiesSeparateSign({\n payload,\n meta,\n}: ReturnType) {\n try {\n const token: UserReducerState['signToken'] = yield select(selectSignToken);\n const res: SignedPartDocumentActivityUrlResponse = yield call(\n DocumentSignApi.signSeparateDocumentActivitiesByJWT,\n { payload, token },\n );\n yield put(\n signSeparateDocumentActivities.success({ ...res, id: payload.documentId }, meta),\n );\n } catch (error) {\n yield put(signSeparateDocumentActivities.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(signSeparateDocumentActivities.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleDocumentDelete({\n payload,\n meta,\n}: ReturnType) {\n try {\n const { documentId, isLocalDelete } = payload;\n\n if (!isLocalDelete) {\n yield call(DocumentApiService.deleteDocument, { documentId });\n }\n\n yield put(deleteDocument.success({ documentId }, meta));\n } catch (error) {\n yield put(deleteDocument.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(deleteDocument.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleEmbedDocumentGet({\n payload,\n meta,\n}: ReturnType) {\n try {\n const token: UserReducerState['embedToken'] = yield select(selectEmbedToken);\n const document: Document = yield call(DocumentApiService.getEmbedDocument, {\n token,\n payload,\n });\n yield put(getEmbedDocument.success(document, meta));\n } catch (error) {\n yield put(getEmbedDocument.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(getEmbedDocument.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleEmbedDocumentUpdate({\n payload,\n meta,\n}: ReturnType) {\n try {\n const token: UserReducerState['embedToken'] = yield select(selectEmbedToken);\n const document = yield call(DocumentApiService.updateEmbedDocument, {\n token,\n payload,\n });\n yield put(updateEmbedDocument.success(document, meta));\n } catch (error) {\n yield put(updateEmbedDocument.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(updateEmbedDocument.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleReportByEmailGet({\n meta,\n payload,\n}: ReturnType) {\n try {\n yield call(DocumentApiService.getReportByEmail, payload);\n\n yield put(getReportByEmail.success(undefined, meta));\n } catch (error) {\n yield put(getReportByEmail.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(getReportByEmail.cancel(undefined, meta));\n }\n }\n}\n\nexport default [\n takeLatest(getFormRequests.request, handleFormRequestsGet),\n takeLeading(revertDocument.request, handleDocumentRevert),\n takeLatest(getAllDocuments.request, handleAllDocumentsGet),\n takeEvery(getDocument.request, handleDocumentGet),\n takeEvery(getDocumentByHash.request, handleDocumentByHash),\n takeEvery(uploadDocument.request, handleDocumentUpload),\n takeEvery(copyDocument.request, handleDocumentCopy),\n takeLeading(createDocument.request, handleDocumentCreate),\n takeLeading(createDocumentByExistTemplate.request, handleDocumentCreateByExistTemplate),\n takeLeading(updateDocumentByExistTemplate.request, handleDocumentUpdateByExistTemplate),\n takeEvery(updateDocument.request, handleDocumentUpdate),\n takeLeading(deleteDocuments.request, handleDocumentsDelete),\n takeLeading(replicateTemplate.request, handleTemplateReplicate),\n takeLeading(mergeTemplate.request, handleTemplateMerge),\n takeLeading(activateTemplate.request, handleTemplateActivate),\n takeLeading(removeTemplateFromApi.request, handleTemplateRemoveFromApi),\n takeLeading(addTemplateToApi.request, handleTemplateAddToApi),\n takeLeading(sendDocumentBulk.request, handleDocumentsBulkSend),\n takeEvery(sendReminder.request, handleReminderSend),\n takeEvery(cleanFileData.request, handleFileDataClean),\n takeLatest(watchDocumentConvertionProgress.start, watchDocumentConvertion),\n takeEvery(getDocumentDownloadUrl.request, handleDocumentDownloadUrlGet),\n takeEvery(\n getDocumentActivitiesDownloadUrl.request,\n handleDocumentActivitiesDownloadUrlGet,\n ),\n takeLatest(getDocumentConvertionStatus.request, handleDocumentConvertionStatusGet),\n takeLatest(getDocumentActivities.request, handleDocumentActivitiesGet),\n takeLeading(createDocumentFromFormRequest.request, handleDocumentCreateFromFormRequest),\n takeEvery(getFormRequest.request, handleFormRequestGet),\n takeEvery(disableForm.request, handleFormRequestDisable),\n takeEvery(enableForm.request, handleFormRequestEnable),\n takeLatest(getAllTemplates.request, handleAllTemplatesGet),\n takeLeading(signSeparateDocument.request, handleDocumentSeparateSign),\n takeLeading(\n getSeparateDocumentDownloadUrl.request,\n handleSeparateDocumentDownloadUrlGet,\n ),\n takeLeading(\n signSeparateDocumentActivities.request,\n handleDocumentActivitiesSeparateSign,\n ),\n takeLeading(deleteDocument.request, handleDocumentDelete),\n takeEvery(getEmbedDocument.request, handleEmbedDocumentGet),\n takeEvery(updateEmbedDocument.request, handleEmbedDocumentUpdate),\n takeEvery(getReportByEmail.request, handleReportByEmailGet),\n];\n","export const DocumentFieldsSetType = 'fields/SET_DOCUMENT_FIELDS';\n\nexport const DocumentFieldUpdateLocallyType = 'fields/UPDATE_DOCUMENT_FIELD_LOCALLY';\n\nexport enum DocumentFieldCreateActionTypes {\n request = 'fields/CREATE_DOCUMENT_FIELD/REQUEST',\n success = 'fields/CREATE_DOCUMENT_FIELD/SUCCESS',\n}\n\nexport enum DocumentFieldUpdateActionTypes {\n request = 'fields/UPDATE_DOCUMENT_FIELD/REQUEST',\n success = 'fields/UPDATE_DOCUMENT_FIELD/SUCCESS',\n}\n\nexport enum DocumentFieldDeleteActionTypes {\n request = 'fields/DELETE_DOCUMENT_FIELD/REQUEST',\n success = 'fields/DELETE_DOCUMENT_FIELD/SUCCESS',\n}\n\nexport const DocumentFieldHistoryPushType = 'fields/DOCUMENT_FIELD_HISTORY/PUSH';\n\nexport enum DocumentFieldHistoryRedoType {\n request = 'fields/DOCUMENT_FIELD_HISTORY_REDO/REQUEST',\n success = 'fields/DOCUMENT_FIELD_HISTORY_REDO/SUCCESS',\n}\n\nexport enum DocumentFieldHistoryUndoType {\n request = 'fields/DOCUMENT_FIELD_HISTORY_UNDO/REQUEST',\n success = 'fields/DOCUMENT_FIELD_HISTORY_UNDO/SUCCESS',\n}\n\nexport enum DocumentFieldMetaActionTypes {\n set = 'fields/SET_DOCUMENT_FIELDS_META',\n clear = 'fields/CLEAR_DOCUMENT_FIELDS_META',\n}\n\nexport enum EmbedDocumentFieldHistoryRedoType {\n request = 'fields/EMBED_DOCUMENT_FIELD_HISTORY_REDO/REQUEST',\n success = 'fields/EMBED_DOCUMENT_FIELD_HISTORY_REDO/SUCCESS',\n}\n\nexport enum EmbedDocumentFieldHistoryUndoType {\n request = 'fields/EMBED_DOCUMENT_FIELD_HISTORY_UNDO/REQUEST',\n success = 'fields/EMBED_DOCUMENT_FIELD_HISTORY_UNDO/SUCCESS',\n}\n\nexport enum EmbedDocumentFieldMetaActionTypes {\n set = 'fields/SET_EMBED_DOCUMENT_FIELDS_META',\n clear = 'fields/CLEAR_EMBED_DOCUMENT_FIELDS_META',\n}\n\nexport const EmbedDocumentFieldHistoryPushType =\n 'fields/EMBED_DOCUMENT_FIELD_HISTORY/PUSH';\n\nexport enum EmbedDocumentFieldCreateActionTypes {\n request = 'fields/CREATE_EMBED_DOCUMENT_FIELD/REQUEST',\n success = 'fields/CREATE_EMBED_DOCUMENT_FIELD/SUCCESS',\n}\n\nexport enum EmbedDocumentFieldUpdateActionTypes {\n request = 'fields/UPDATE_EMBED_DOCUMENT_FIELD/REQUEST',\n success = 'fields/UPDATE_EMBED_DOCUMENT_FIELD/SUCCESS',\n}\n\nexport enum EmbedDocumentFieldDeleteActionTypes {\n request = 'fields/DELETE_EMBED_DOCUMENT_FIELD/REQUEST',\n success = 'fields/DELETE_EMBED_DOCUMENT_FIELD/SUCCESS',\n}\n","import sagas from './sagas';\nimport {\n createDocument,\n getDocument,\n getFormRequests,\n uploadDocument,\n updateDocument,\n mergeTemplate,\n $mergeTemplate,\n replicateTemplate,\n $replicateTemplate,\n deleteDocuments,\n watchDocumentConvertionProgress,\n sendReminder,\n sendDocumentBulk,\n $sendDocumentBulk,\n cleanFileData,\n copyDocument,\n $cleanFileData,\n $sendReminder,\n $createDocument,\n $getDocument,\n $copyDocument,\n getAllDocuments,\n $getAllDocuments,\n $getFormRequests,\n $uploadDocument,\n $updateDocument,\n $deleteDocuments,\n revertDocument,\n $revertDocument,\n getDocumentDownloadUrl,\n $getDocumentDownloadUrl,\n getDocumentActivitiesDownloadUrl,\n $getDocumentActivitiesDownloadUrl,\n activateTemplate,\n $activateTemplate,\n getDocumentActivities,\n $getDocumentActivities,\n createDocumentFromFormRequest,\n $createDocumentFromFormRequest,\n createDocumentByExistTemplate,\n $createDocumentByExistTemplate,\n updateDocumentByExistTemplate,\n $updateDocumentByExistTemplate,\n removeTemplateFromApi,\n $removeTemplateFromApi,\n addTemplateToApi,\n $addTemplateToApi,\n getFormRequest,\n $getFormRequest,\n disableForm,\n $disableForm,\n enableForm,\n $enableForm,\n $toggleEmailNotification,\n toggleEmailNotification,\n $getAllTemplates,\n getAllTemplates,\n $signSeparateDocument,\n signSeparateDocument,\n $getSeparateDocumentDownloadUrl,\n getSeparateDocumentDownloadUrl,\n $signSeparateDocumentActivities,\n signSeparateDocumentActivities,\n $deleteDocument,\n deleteDocument,\n $getEmbedDocument,\n getEmbedDocument,\n updateEmbedDocument,\n $updateEmbedDocument,\n initEmbedDocumentToken,\n removeEmbedDocumenToken,\n getDocumentByHash,\n $getDocumentByHash,\n getReportByEmail,\n $getReportByEmail,\n} from './actionCreators';\nimport reducer from './reducer';\n\nexport default {\n sagas,\n reducer,\n actions: {\n createDocument,\n getDocument,\n sendReminder,\n getDocuments: getFormRequests,\n uploadDocument,\n updateDocument,\n getAllDocuments,\n mergeTemplate,\n replicateTemplate,\n revertDocument,\n deleteDocuments,\n copyDocument,\n cleanFileData,\n getDocumentDownloadUrl,\n getDocumentActivitiesDownloadUrl,\n activateTemplate,\n sendDocumentBulk,\n watchDocumentConvertionProgress,\n getDocumentActivities,\n createDocumentFromFormRequest,\n createDocumentByExistTemplate,\n updateDocumentByExistTemplate,\n removeTemplateFromApi,\n addTemplateToApi,\n getFormRequest,\n disableForm,\n enableForm,\n toggleEmailNotification,\n getAllTemplates,\n signSeparateDocument,\n getSeparateDocumentDownloadUrl,\n signSeparateDocumentActivities,\n deleteDocument,\n getDocumentByHash,\n getEmbedDocument,\n updateEmbedDocument,\n initEmbedDocumentToken,\n removeEmbedDocumenToken,\n getReportByEmail,\n },\n};\n\nexport const $actions = {\n createDocument: $createDocument,\n getDocument: $getDocument,\n getDocumentByHash: $getDocumentByHash,\n getFormRequests: $getFormRequests,\n revertDocument: $revertDocument,\n mergeTemplate: $mergeTemplate,\n replicateTemplate: $replicateTemplate,\n sendReminder: $sendReminder,\n uploadDocument: $uploadDocument,\n updateDocument: $updateDocument,\n toggleEmailNotification: $toggleEmailNotification,\n sendDocumentBulk: $sendDocumentBulk,\n getAllDocuments: $getAllDocuments,\n copyDocument: $copyDocument,\n deleteDocuments: $deleteDocuments,\n cleanFileData: $cleanFileData,\n getDocumentDownloadUrl: $getDocumentDownloadUrl,\n getDocumentActivitiesDownloadUrl: $getDocumentActivitiesDownloadUrl,\n activateTemplate: $activateTemplate,\n getDocumentActivities: $getDocumentActivities,\n createDocumentFromFormRequest: $createDocumentFromFormRequest,\n createDocumentByExistTemplate: $createDocumentByExistTemplate,\n updateDocumentByExistTemplate: $updateDocumentByExistTemplate,\n addTemplateToApi: $addTemplateToApi,\n removeTemplateFromApi: $removeTemplateFromApi,\n getFormRequest: $getFormRequest,\n disableForm: $disableForm,\n enableForm: $enableForm,\n getAllTemplates: $getAllTemplates,\n signSeparateDocument: $signSeparateDocument,\n getSeparateDocumentDownloadUrl: $getSeparateDocumentDownloadUrl,\n signSeparateDocumentActivities: $signSeparateDocumentActivities,\n deleteDocument: $deleteDocument,\n getEmbedDocument: $getEmbedDocument,\n updateEmbedDocument: $updateEmbedDocument,\n getReportByEmail: $getReportByEmail,\n};\n","import { createReducer } from 'typesafe-actions';\nimport { NormalizedEntity } from 'Interfaces/Common';\nimport { Document } from 'Interfaces/Document';\nimport {\n createDocument,\n getDocument,\n getFormRequests,\n updateDocument,\n uploadDocument,\n cleanFileData,\n copyDocument,\n getAllDocuments,\n activateTemplate,\n revertDocument,\n mergeTemplate,\n replicateTemplate,\n getDocumentConvertionStatus,\n createDocumentFromFormRequest,\n addTemplateToApi,\n removeTemplateFromApi,\n getFormRequest,\n disableForm,\n enableForm,\n getAllTemplates,\n createDocumentByExistTemplate,\n updateDocumentByExistTemplate,\n signSeparateDocument,\n signSeparateDocumentActivities,\n deleteDocument,\n getEmbedDocument,\n updateEmbedDocument,\n} from './actionCreators';\nimport {\n getSignerDocument,\n sendCodeAccess,\n sendDocumentOut,\n sendOutEmbedDocument,\n} from '../documentSign/actionCreators';\n\nexport default createReducer({} as NormalizedEntity)\n .handleAction(\n [\n createDocument.success,\n getSignerDocument.success,\n addTemplateToApi.success,\n removeTemplateFromApi.success,\n sendCodeAccess.success,\n getDocument.success,\n updateDocument.success,\n cleanFileData.success,\n sendDocumentOut.success,\n createDocumentByExistTemplate.success,\n updateDocumentByExistTemplate.success,\n copyDocument.success,\n activateTemplate.success,\n revertDocument.success,\n replicateTemplate.success,\n mergeTemplate.success,\n createDocumentFromFormRequest.success,\n getFormRequest.success,\n disableForm.success,\n enableForm.success,\n sendOutEmbedDocument.success,\n getEmbedDocument.success,\n updateEmbedDocument.success,\n ],\n (state, action) => ({\n ...state,\n [action.payload.id]: action.payload,\n }),\n )\n .handleAction([uploadDocument.success], (state, action) => ({\n ...state,\n [action.payload.document.id]: {\n ...state[action.payload.document.id],\n ...action.payload.document,\n },\n }))\n .handleAction(\n [\n getDocumentConvertionStatus.success,\n signSeparateDocument.success,\n signSeparateDocumentActivities.success,\n ],\n (state, action) => ({\n ...state,\n [action.payload.id]: {\n ...state[action.payload.id],\n ...action.payload,\n },\n }),\n )\n .handleAction(getFormRequests.success, (state, action) => ({\n ...action.payload.documents,\n }))\n .handleAction(getAllDocuments.success, (state, action) => ({ ...action.payload }))\n .handleAction(getAllTemplates.success, (state, action) => ({\n ...state,\n ...action.payload,\n }))\n .handleAction(deleteDocument.success, (state, action) => {\n const deleteId = action.payload.documentId;\n const newState = { ...state };\n delete newState[deleteId];\n\n return newState;\n });\n","import { createAction } from 'typesafe-actions';\nimport {\n DocumentField,\n DocumentFieldDeletePayload,\n DocumentFieldsState,\n DocumentFieldUpdatePayload,\n DocumentFieldsCRUDPayload,\n DocumentFieldHistoryActionItem,\n DocumentFieldHistory,\n EmbedDocumentFieldHistoryActionItem,\n} from 'Interfaces/DocumentFields';\nimport { NormalizedEntity } from 'Interfaces/Common';\nimport {\n DocumentFieldUpdateLocallyType,\n DocumentFieldMetaActionTypes,\n DocumentFieldsSetType,\n DocumentFieldHistoryUndoType,\n DocumentFieldHistoryRedoType,\n DocumentFieldHistoryPushType,\n DocumentFieldCreateActionTypes,\n DocumentFieldUpdateActionTypes,\n DocumentFieldDeleteActionTypes,\n EmbedDocumentFieldCreateActionTypes,\n EmbedDocumentFieldUpdateActionTypes,\n EmbedDocumentFieldDeleteActionTypes,\n EmbedDocumentFieldHistoryPushType,\n EmbedDocumentFieldMetaActionTypes,\n EmbedDocumentFieldHistoryUndoType,\n EmbedDocumentFieldHistoryRedoType,\n} from './actionTypes';\n\nexport const updateDocumentFieldLocally = createAction(\n DocumentFieldUpdateLocallyType,\n (payload: DocumentFieldUpdatePayload) => payload,\n)();\n\nexport const createDocumentField = {\n request: createAction(\n DocumentFieldCreateActionTypes.request,\n ({ payload }: DocumentFieldsCRUDPayload) => payload,\n ({ meta }: DocumentFieldsCRUDPayload) => meta,\n )(),\n success: createAction(\n DocumentFieldCreateActionTypes.success,\n ({ payload }: DocumentFieldsCRUDPayload) => payload,\n ({ meta }: DocumentFieldsCRUDPayload) => meta,\n )(),\n};\n\nexport const updateDocumentField = {\n request: createAction(\n DocumentFieldUpdateActionTypes.request,\n ({ payload }: DocumentFieldsCRUDPayload) => payload,\n ({ meta }: DocumentFieldsCRUDPayload) => meta,\n )(),\n success: createAction(\n DocumentFieldUpdateActionTypes.success,\n ({ payload }: DocumentFieldsCRUDPayload) => payload,\n ({ meta }: DocumentFieldsCRUDPayload) => meta,\n )(),\n};\n\nexport const deleteDocumentField = {\n request: createAction(\n DocumentFieldDeleteActionTypes.request,\n ({ payload }: DocumentFieldsCRUDPayload) => payload,\n ({ meta }: DocumentFieldsCRUDPayload) => meta,\n )(),\n success: createAction(\n DocumentFieldDeleteActionTypes.success,\n ({ payload }: DocumentFieldsCRUDPayload) => payload,\n ({ meta }: DocumentFieldsCRUDPayload) => meta,\n )(),\n};\n\nexport const setDocumentFields = createAction(\n DocumentFieldsSetType,\n (payload: NormalizedEntity) => payload,\n)();\n\nexport const changeDocumentFieldsMeta = {\n set: createAction(\n DocumentFieldMetaActionTypes.set,\n (payload: Partial) => payload,\n )(),\n clear: createAction(DocumentFieldMetaActionTypes.clear)(),\n};\n\nexport const pushToDocumentFieldsHistory = createAction(\n DocumentFieldHistoryPushType,\n (payload: DocumentFieldHistoryActionItem) => payload,\n)();\n\nexport const undoDocumentFieldsHistory = {\n request: createAction(\n DocumentFieldHistoryUndoType.request,\n (payload: DocumentFieldHistoryActionItem) => payload,\n )(),\n success: createAction(\n DocumentFieldHistoryUndoType.success,\n (payload: DocumentFieldHistory) => payload,\n )(),\n};\n\nexport const redoDocumentFieldsHistory = {\n request: createAction(\n DocumentFieldHistoryRedoType.request,\n (payload: DocumentFieldHistoryActionItem) => payload,\n )(),\n success: createAction(\n DocumentFieldHistoryRedoType.success,\n (payload: DocumentFieldHistory) => payload,\n )(),\n};\n\nexport const CRUDRequestActionCreatorsByTypes = {\n [DocumentFieldCreateActionTypes.request]: createDocumentField.request,\n [DocumentFieldUpdateActionTypes.request]: updateDocumentField.request,\n [DocumentFieldDeleteActionTypes.request]: deleteDocumentField.request,\n};\n\nexport const CRUDSuccessCreatorsByRequests = {\n [DocumentFieldCreateActionTypes.request]: createDocumentField.success,\n [DocumentFieldUpdateActionTypes.request]: updateDocumentField.success,\n [DocumentFieldDeleteActionTypes.request]: deleteDocumentField.success,\n};\n\nexport const changeEmbedDocumentFieldsMeta = {\n set: createAction(\n DocumentFieldMetaActionTypes.set,\n (payload: Partial) => payload,\n )(),\n clear: createAction(EmbedDocumentFieldMetaActionTypes.clear)(),\n};\n\nexport const pushToEmbedDocumentFieldsHistory = createAction(\n EmbedDocumentFieldHistoryPushType,\n (payload: EmbedDocumentFieldHistoryActionItem) => payload,\n)();\n\nexport const undoEmbedDocumentFieldsHistory = {\n request: createAction(\n EmbedDocumentFieldHistoryUndoType.request,\n (payload: EmbedDocumentFieldHistoryActionItem) => payload,\n )(),\n success: createAction(\n EmbedDocumentFieldHistoryUndoType.success,\n (payload: DocumentFieldHistory) => payload,\n )(),\n};\n\nexport const redoEmbedDocumentFieldsHistory = {\n request: createAction(\n EmbedDocumentFieldHistoryRedoType.request,\n (payload: EmbedDocumentFieldHistoryActionItem) => payload,\n )(),\n success: createAction(\n EmbedDocumentFieldHistoryRedoType.success,\n (payload: DocumentFieldHistory) => payload,\n )(),\n};\n\nexport const createEmbedDocumentField = {\n request: createAction(\n EmbedDocumentFieldCreateActionTypes.request,\n ({ payload }: DocumentFieldsCRUDPayload) => payload,\n ({ meta }: DocumentFieldsCRUDPayload) => meta,\n )(),\n success: createAction(\n EmbedDocumentFieldCreateActionTypes.success,\n ({ payload }: DocumentFieldsCRUDPayload) => payload,\n ({ meta }: DocumentFieldsCRUDPayload) => meta,\n )(),\n};\n\nexport const updateEmbedDocumentField = {\n request: createAction(\n EmbedDocumentFieldUpdateActionTypes.request,\n ({ payload }: DocumentFieldsCRUDPayload) => payload,\n ({ meta }: DocumentFieldsCRUDPayload) => meta,\n )(),\n success: createAction(\n EmbedDocumentFieldUpdateActionTypes.success,\n ({ payload }: DocumentFieldsCRUDPayload) => payload,\n ({ meta }: DocumentFieldsCRUDPayload) => meta,\n )(),\n};\n\nexport const deleteEmbedDocumentField = {\n request: createAction(\n EmbedDocumentFieldDeleteActionTypes.request,\n ({ payload }: DocumentFieldsCRUDPayload) => payload,\n ({ meta }: DocumentFieldsCRUDPayload) => meta,\n )(),\n success: createAction(\n EmbedDocumentFieldDeleteActionTypes.success,\n ({ payload }: DocumentFieldsCRUDPayload) => payload,\n ({ meta }: DocumentFieldsCRUDPayload) => meta,\n )(),\n};\n\nexport const CRUDEmbedRequestActionCreatorsByTypes = {\n [EmbedDocumentFieldCreateActionTypes.request]: createEmbedDocumentField.request,\n [EmbedDocumentFieldUpdateActionTypes.request]: updateEmbedDocumentField.request,\n [EmbedDocumentFieldDeleteActionTypes.request]: deleteEmbedDocumentField.request,\n};\n\nexport const CRUDEmbedSuccessCreatorsByRequests = {\n [EmbedDocumentFieldCreateActionTypes.request]: createEmbedDocumentField.success,\n [EmbedDocumentFieldUpdateActionTypes.request]: updateEmbedDocumentField.success,\n [EmbedDocumentFieldDeleteActionTypes.request]: deleteEmbedDocumentField.success,\n};\n","import {\n put,\n takeLatest,\n delay,\n select,\n race,\n take,\n fork,\n takeLeading,\n} from 'redux-saga/effects';\nimport { getType } from 'typesafe-actions';\nimport * as _ from 'lodash';\nimport { DocumentField, DocumentFieldsState } from 'Interfaces/DocumentFields';\nimport { NormalizedEntity } from 'Interfaces/Common';\nimport {\n selectDocumentFields,\n selectDocumentFieldsMeta,\n selectDocument,\n} from 'Utils/selectors';\nimport {\n createDocumentField,\n updateDocumentField,\n deleteDocumentField,\n changeDocumentFieldsMeta,\n setDocumentFields,\n pushToDocumentFieldsHistory,\n undoDocumentFieldsHistory,\n redoDocumentFieldsHistory,\n CRUDRequestActionCreatorsByTypes,\n CRUDSuccessCreatorsByRequests,\n createEmbedDocumentField,\n updateEmbedDocumentField,\n deleteEmbedDocumentField,\n CRUDEmbedSuccessCreatorsByRequests,\n pushToEmbedDocumentFieldsHistory,\n CRUDEmbedRequestActionCreatorsByTypes,\n undoEmbedDocumentFieldsHistory,\n redoEmbedDocumentFieldsHistory,\n} from './actionCreators';\nimport { Document } from 'Interfaces/Document';\nimport { updateDocument, updateEmbedDocument } from '../document/actionCreators';\n\nfunction* handleDocumentFieldsUpdate() {\n const documentFieldsMeta: DocumentFieldsState['meta'] = yield select(\n selectDocumentFieldsMeta,\n );\n const document: Document = yield select(state =>\n selectDocument(state, { documentId: documentFieldsMeta.currentDocumentId }),\n );\n const changedDocumentFields: DocumentField[] = yield select(selectDocumentFields);\n const documentUpdateValues = {\n type: document.type,\n documentId: documentFieldsMeta.currentDocumentId as string,\n fields: changedDocumentFields,\n };\n\n if (!_.isEqual(document.fields, changedDocumentFields)) {\n yield put(updateDocument.request({ values: documentUpdateValues }, {}));\n }\n}\n\nfunction* handleDocumentFieldsChanges() {\n const { throttle } = yield race({\n throttle: delay(3000, true),\n saveAction: take(updateDocument.request),\n cancel: take(updateDocument.cancel),\n });\n\n if (throttle) {\n yield fork(handleDocumentFieldsUpdate);\n }\n}\n\nfunction* handleDocumentFieldsMetaSet({\n payload,\n}: ReturnType) {\n try {\n const document: Document = yield select(state =>\n selectDocument(state, { documentId: payload.currentDocumentId }),\n );\n const normalizedDocumentFields: NormalizedEntity = _.keyBy(\n document.fields,\n 'id',\n );\n\n yield put(setDocumentFields(normalizedDocumentFields));\n } catch (error) {\n console.log(error);\n }\n}\n\nfunction* handleDocumentFieldsActionRequests({\n type,\n payload,\n meta,\n}: ReturnType<\n | typeof createDocumentField.request\n | typeof updateDocumentField.request\n | typeof deleteDocumentField.request\n>) {\n try {\n if (meta.pushToHistory) {\n yield put(\n pushToDocumentFieldsHistory({\n actionType: type,\n actionPayload: payload as DocumentField,\n }),\n );\n }\n\n const successActionCreator = CRUDSuccessCreatorsByRequests[type];\n\n yield put(\n successActionCreator({\n payload: payload as DocumentField,\n meta,\n }),\n );\n } catch (err) {\n console.log(err);\n }\n}\n\nfunction* handleDocumentFieldHistoryUndo() {\n try {\n const meta: ReturnType = yield select(\n selectDocumentFieldsMeta,\n );\n const { actions: historyActions, cursor: historyCursor } = meta.history;\n\n if (historyCursor === historyActions.length) return;\n\n const { prev: currentAction } = historyActions[historyCursor];\n const currentActionCreator =\n CRUDRequestActionCreatorsByTypes[currentAction.actionType];\n\n yield put(\n undoDocumentFieldsHistory.success({\n ...meta.history,\n cursor: meta.history.cursor + 1,\n }),\n );\n yield put(\n currentActionCreator({\n payload: currentAction.actionPayload,\n meta: { pushToHistory: false },\n }),\n );\n } catch (err) {\n console.log(err);\n }\n}\n\nfunction* handleDocumentFieldHistoryRedo() {\n try {\n const meta: ReturnType = yield select(\n selectDocumentFieldsMeta,\n );\n const { actions: historyActions, cursor: historyCursor } = meta.history;\n\n if (historyCursor === 0) return;\n\n const { next: currentAction } = historyActions[historyCursor - 1];\n const currentActionCreator =\n CRUDRequestActionCreatorsByTypes[currentAction.actionType];\n\n yield put(\n redoDocumentFieldsHistory.success({\n ...meta.history,\n cursor: meta.history.cursor - 1,\n }),\n );\n yield put(\n currentActionCreator({\n payload: currentAction.actionPayload,\n meta: { pushToHistory: false },\n }),\n );\n } catch (err) {\n console.log(err);\n }\n}\n\nfunction* handleEmbedDocumentFieldsUpdate() {\n const documentFieldsMeta: DocumentFieldsState['meta'] = yield select(\n selectDocumentFieldsMeta,\n );\n const document: Document = yield select(state =>\n selectDocument(state, { documentId: documentFieldsMeta.currentDocumentId }),\n );\n const changedDocumentFields: DocumentField[] = yield select(selectDocumentFields);\n const documentUpdateValues = {\n type: document.type,\n documentId: documentFieldsMeta.currentDocumentId as string,\n fields: changedDocumentFields,\n };\n\n if (!_.isEqual(document.fields, changedDocumentFields)) {\n yield put(updateEmbedDocument.request({ values: documentUpdateValues }, {}));\n }\n}\n\nfunction* handleEmbedDocumentFieldsChanges() {\n const { throttle } = yield race({\n throttle: delay(3000, true),\n saveAction: take(updateEmbedDocument.request),\n cancel: take(updateEmbedDocument.cancel),\n });\n\n if (throttle) {\n yield fork(handleEmbedDocumentFieldsUpdate);\n }\n}\n\nfunction* handleEmbedDocumentFieldsActionRequests({\n type,\n payload,\n meta,\n}: ReturnType<\n | typeof createEmbedDocumentField.request\n | typeof updateEmbedDocumentField.request\n | typeof deleteEmbedDocumentField.request\n>) {\n try {\n if (meta.pushToHistory) {\n yield put(\n pushToEmbedDocumentFieldsHistory({\n actionType: type,\n actionPayload: payload as DocumentField,\n }),\n );\n }\n\n const successActionCreator = CRUDEmbedSuccessCreatorsByRequests[type];\n\n yield put(\n successActionCreator({\n payload: payload as DocumentField,\n meta,\n }),\n );\n } catch (err) {\n console.log(err);\n }\n}\n\nfunction* handleEmbedDocumentFieldHistoryUndo() {\n try {\n const meta: ReturnType = yield select(\n selectDocumentFieldsMeta,\n );\n const { actions: historyActions, cursor: historyCursor } = meta.history;\n\n if (historyCursor === historyActions.length) return;\n\n const { prev: currentAction } = historyActions[historyCursor];\n const currentActionCreator =\n CRUDEmbedRequestActionCreatorsByTypes[currentAction.actionType];\n\n yield put(\n undoEmbedDocumentFieldsHistory.success({\n ...meta.history,\n cursor: meta.history.cursor + 1,\n }),\n );\n yield put(\n currentActionCreator({\n payload: currentAction.actionPayload,\n meta: { pushToHistory: false },\n }),\n );\n } catch (err) {\n console.log(err);\n }\n}\n\nfunction* handleEmbedDocumentFieldHistoryRedo() {\n try {\n const meta: ReturnType = yield select(\n selectDocumentFieldsMeta,\n );\n const { actions: historyActions, cursor: historyCursor } = meta.history;\n\n if (historyCursor === 0) return;\n\n const { next: currentAction } = historyActions[historyCursor - 1];\n const currentActionCreator =\n CRUDEmbedRequestActionCreatorsByTypes[currentAction.actionType];\n\n yield put(\n redoEmbedDocumentFieldsHistory.success({\n ...meta.history,\n cursor: meta.history.cursor - 1,\n }),\n );\n yield put(\n currentActionCreator({\n payload: currentAction.actionPayload,\n meta: { pushToHistory: false },\n }),\n );\n } catch (err) {\n console.log(err);\n }\n}\n\nexport default [\n takeLatest(changeDocumentFieldsMeta.set, handleDocumentFieldsMetaSet),\n takeLatest(\n action =>\n [\n getType(createDocumentField.success),\n getType(updateDocumentField.success),\n getType(deleteDocumentField.success),\n ].includes(action.type),\n handleDocumentFieldsChanges,\n ),\n takeLatest(\n action =>\n [\n getType(createDocumentField.request),\n getType(updateDocumentField.request),\n getType(deleteDocumentField.request),\n ].includes(action.type),\n handleDocumentFieldsActionRequests,\n ),\n takeLeading(undoDocumentFieldsHistory.request, handleDocumentFieldHistoryUndo),\n takeLeading(redoDocumentFieldsHistory.request, handleDocumentFieldHistoryRedo),\n takeLatest(\n action =>\n [\n getType(createEmbedDocumentField.success),\n getType(updateEmbedDocumentField.success),\n getType(deleteEmbedDocumentField.success),\n ].includes(action.type),\n handleEmbedDocumentFieldsChanges,\n ),\n takeLatest(\n action =>\n [\n getType(createEmbedDocumentField.request),\n getType(updateEmbedDocumentField.request),\n getType(deleteEmbedDocumentField.request),\n ].includes(action.type),\n handleEmbedDocumentFieldsActionRequests,\n ),\n takeLeading(\n undoEmbedDocumentFieldsHistory.request,\n handleEmbedDocumentFieldHistoryUndo,\n ),\n takeLeading(\n redoEmbedDocumentFieldsHistory.request,\n handleEmbedDocumentFieldHistoryRedo,\n ),\n];\n","import { createReducer, getType } from 'typesafe-actions';\nimport * as _ from 'lodash';\nimport {\n DocumentFieldsState,\n DocumentField,\n DocumentFieldTypes,\n DocumentFieldHistoryActionItem,\n DocumentFieldDeletePayload,\n DocumentFieldHistoryItem,\n EmbedDocumentFieldHistoryActionItem,\n EmbedDocumentFieldHistoryItem,\n} from 'Interfaces/DocumentFields';\nimport {\n createDocumentField,\n deleteDocumentField,\n updateDocumentField,\n updateDocumentFieldLocally,\n changeDocumentFieldsMeta,\n setDocumentFields,\n pushToDocumentFieldsHistory,\n undoDocumentFieldsHistory,\n redoDocumentFieldsHistory,\n createEmbedDocumentField,\n updateEmbedDocumentField,\n pushToEmbedDocumentFieldsHistory,\n deleteEmbedDocumentField,\n changeEmbedDocumentFieldsMeta,\n undoEmbedDocumentFieldsHistory,\n redoEmbedDocumentFieldsHistory,\n} from './actionCreators';\n\nconst getFieldValueKeyByType = (fieldType: DocumentFieldTypes) => {\n switch (fieldType) {\n case DocumentFieldTypes.Initials:\n case DocumentFieldTypes.Signature: {\n return 'requisiteId';\n }\n case DocumentFieldTypes.Name:\n case DocumentFieldTypes.Date:\n case DocumentFieldTypes.Text: {\n return 'text';\n }\n case DocumentFieldTypes.Checkbox: {\n return 'checked';\n }\n }\n};\n\nconst initialState = {\n fields: {},\n meta: {\n history: { cursor: 0, actions: [] },\n },\n} as DocumentFieldsState;\n\nexport default createReducer(initialState)\n .handleAction(\n [changeDocumentFieldsMeta.set, changeEmbedDocumentFieldsMeta.set],\n (state, action) => ({\n ...state,\n meta: {\n ...state.meta,\n ...action.payload,\n },\n }),\n )\n .handleAction(\n [undoDocumentFieldsHistory.success, redoDocumentFieldsHistory.success],\n (state, action) => {\n return {\n ...state,\n meta: {\n ...state.meta,\n history: action.payload,\n },\n } as DocumentFieldsState;\n },\n )\n .handleAction(\n [undoEmbedDocumentFieldsHistory.success, redoEmbedDocumentFieldsHistory.success],\n (state, action) => {\n return {\n ...state,\n meta: {\n ...state.meta,\n history: action.payload,\n },\n } as DocumentFieldsState;\n },\n )\n .handleAction(\n [changeDocumentFieldsMeta.clear, changeEmbedDocumentFieldsMeta.clear],\n state => ({\n ...state,\n meta: initialState.meta,\n }),\n )\n .handleAction(setDocumentFields, (state, action) => ({\n ...state,\n fields: action.payload,\n }))\n .handleAction(\n [\n createDocumentField.success,\n updateDocumentField.success,\n createEmbedDocumentField.success,\n updateEmbedDocumentField.success,\n updateDocumentFieldLocally,\n ],\n (state, action) => {\n const { payload } = action;\n const stateField = state.fields[payload.id];\n const documentField = { ...stateField, ...payload } as DocumentField;\n const valueKey = getFieldValueKeyByType(documentField.type);\n const isFieldSigned = !!documentField[valueKey];\n\n return {\n ...state,\n fields: {\n ...state.fields,\n [payload.id]: {\n ...stateField,\n ...payload,\n signed: isFieldSigned,\n style: {\n ...stateField?.style,\n ...payload?.style,\n },\n },\n },\n };\n },\n )\n .handleAction(\n [deleteDocumentField.success, deleteEmbedDocumentField.success],\n (state, action) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { [action.payload.id]: deletedField, ...newState } = state.fields;\n\n return {\n ...state,\n fields: newState,\n };\n },\n )\n .handleAction(pushToDocumentFieldsHistory, (state, action) => {\n const { payload } = action;\n const { history } = state.meta;\n const next = payload;\n let prev: DocumentFieldHistoryActionItem;\n\n switch (payload.actionType) {\n case getType(createDocumentField.request): {\n prev = {\n actionType: getType(deleteDocumentField.request),\n actionPayload: { id: payload.actionPayload.id } as DocumentFieldDeletePayload,\n } as DocumentFieldHistoryActionItem;\n\n break;\n }\n case getType(updateDocumentField.request): {\n prev = {\n actionType: getType(updateDocumentField.request),\n actionPayload: state.fields[payload.actionPayload.id],\n } as DocumentFieldHistoryActionItem;\n\n break;\n }\n case getType(deleteDocumentField.request): {\n prev = {\n actionType: getType(createDocumentField.request),\n actionPayload: state.fields[payload.actionPayload.id],\n } as DocumentFieldHistoryActionItem;\n\n break;\n }\n }\n\n const historyItem = {\n next,\n prev,\n } as DocumentFieldHistoryItem;\n\n return {\n ...state,\n meta: {\n ...state.meta,\n history: {\n cursor: 0,\n actions: [\n historyItem,\n ...(history.cursor === 0\n ? history.actions\n : history.actions.slice(history.cursor)),\n ],\n },\n },\n };\n })\n .handleAction(pushToEmbedDocumentFieldsHistory, (state, action) => {\n const { payload } = action;\n const { history } = state.meta;\n const next = payload;\n let prev: EmbedDocumentFieldHistoryActionItem;\n\n switch (payload.actionType) {\n case getType(createEmbedDocumentField.request): {\n prev = {\n actionType: getType(deleteEmbedDocumentField.request),\n actionPayload: { id: payload.actionPayload.id } as DocumentFieldDeletePayload,\n } as EmbedDocumentFieldHistoryActionItem;\n\n break;\n }\n case getType(updateEmbedDocumentField.request): {\n prev = {\n actionType: getType(updateEmbedDocumentField.request),\n actionPayload: state.fields[payload.actionPayload.id],\n } as EmbedDocumentFieldHistoryActionItem;\n\n break;\n }\n case getType(deleteEmbedDocumentField.request): {\n prev = {\n actionType: getType(createEmbedDocumentField.request),\n actionPayload: state.fields[payload.actionPayload.id],\n } as EmbedDocumentFieldHistoryActionItem;\n\n break;\n }\n }\n\n const historyItem = {\n next,\n prev,\n } as EmbedDocumentFieldHistoryItem;\n\n return {\n ...state,\n meta: {\n ...state.meta,\n history: {\n cursor: 0,\n actions: [\n historyItem,\n ...(history.cursor === 0\n ? history.actions\n : history.actions.slice(history.cursor)),\n ],\n },\n },\n } as DocumentFieldsState;\n });\n","import {\n setDocumentFields,\n createDocumentField,\n updateDocumentField,\n updateDocumentFieldLocally,\n deleteDocumentField,\n changeDocumentFieldsMeta,\n pushToDocumentFieldsHistory,\n undoDocumentFieldsHistory,\n redoDocumentFieldsHistory,\n createEmbedDocumentField,\n updateEmbedDocumentField,\n deleteEmbedDocumentField,\n changeEmbedDocumentFieldsMeta,\n pushToEmbedDocumentFieldsHistory,\n undoEmbedDocumentFieldsHistory,\n redoEmbedDocumentFieldsHistory,\n} from './actionCreators';\nimport sagas from './sagas';\nimport reducer from './reducer';\n\nexport default {\n sagas,\n reducer,\n actions: {\n setDocumentFields,\n createDocumentField,\n updateDocumentField,\n updateDocumentFieldLocally,\n deleteDocumentField,\n changeDocumentFieldsMeta,\n pushToDocumentFieldsHistory,\n undoDocumentFieldsHistory,\n redoDocumentFieldsHistory,\n createEmbedDocumentField,\n updateEmbedDocumentField,\n deleteEmbedDocumentField,\n changeEmbedDocumentFieldsMeta,\n pushToEmbedDocumentFieldsHistory,\n undoEmbedDocumentFieldsHistory,\n redoEmbedDocumentFieldsHistory,\n },\n};\n\nexport const $actions = {\n setDocumentFields,\n};\n","import { AxiosRequestConfig } from 'axios';\nimport {\n Card,\n PlanDetails,\n SubscriptionData,\n PlanChangePayload,\n AppSumoUpgradePayload,\n ApiPlanChangePayload,\n ValidatePromotionCodePayload,\n CreateSubscriptionCheckoutPayload,\n ChangeLtdPlanDurationPayload,\n InvoicesRequest,\n CreateLtdPaymentCheckoutPayload,\n GetLtdTierPayload,\n CapturePaypalOrderPayload,\n LtdPaymentCheckoutPayload,\n LtdCodePayload,\n} from 'Interfaces/Billing';\nimport { User } from 'Interfaces/User';\nimport { getWorkflowVersion } from 'Utils/functions';\nimport Api from './Api';\n\nclass BillingApi extends Api {\n getCreditCard = (config?: AxiosRequestConfig) => {\n return this.request.get()('credit-card', { ...config });\n };\n\n updateCard = (token: string) => {\n return this.request.patch()('credit-card', { token });\n };\n\n attachCard = (token: string) => {\n return this.request.post()('credit-card', { token });\n };\n\n changePlan = async (payload: PlanChangePayload) =>\n this.request.post()('plans/change', payload);\n\n changeApiPlan = async (payload: ApiPlanChangePayload) =>\n this.request.post()('api-plans/change', payload);\n\n removeApiPlan = async () => this.request.delete()('api-plans');\n\n getInvoices = async (payload: InvoicesRequest) =>\n this.request.get()('invoices', { params: payload });\n\n getSubscriptionData = () => this.request.get()('subscriptions');\n\n getApiSubscription = () => this.request.get()('api-subscriptions');\n\n getPlans = () => this.request.get()('plans');\n\n cancelSubscription = () => this.request.post()('subscriptions/cancel');\n\n upgradeAppSumo = (payload: AppSumoUpgradePayload) =>\n this.request.post()('plans/upgrade_appsumo', payload);\n\n retryCharge = () => this.request.patch()('plans/retry_charge');\n\n upsellPlan = () => this.request.patch()('plans/upsell');\n\n validatePromotionCode = (payload: ValidatePromotionCodePayload) =>\n this.request.patch()(`discounts/check_code`, payload);\n\n validatePromotionCodeUnauthorized = (payload: ValidatePromotionCodePayload) =>\n this.request.patch()(`discounts/unauthorized/check_code`, payload);\n\n getLatestInvoice = () => this.request.get()('invoices/last_invoice');\n\n createSetupCheckout = () => {\n return this.request.get()('create_checkout/setup', {\n params: { workflowVersion: getWorkflowVersion() },\n });\n };\n\n createSubscriptionCheckout = (payload: CreateSubscriptionCheckoutPayload) => {\n return this.request.get()('create_checkout/subscription', {\n params: { ...payload, workflowVersion: getWorkflowVersion() },\n });\n };\n\n checkUpsellAllowed = () => {\n return this.request.get()('plans/upsell_allowed');\n };\n\n createBillingPortal = () => {\n return this.request.get()('create_checkout/billing_portal');\n };\n\n getUpcomingInvoice = (payload: CreateSubscriptionCheckoutPayload) => {\n return this.request.get()('invoices/upcoming', { params: payload });\n };\n\n getLtdUpcomingInvoice = (payload: CreateSubscriptionCheckoutPayload) => {\n return this.request.get()('invoices/upcoming_ltd', { params: payload });\n };\n\n getInvoiceDownloadLink = ({ invoiceId, hash }) => {\n return this.request.get()(`invoices/${invoiceId}/download?hash=${hash}`);\n };\n\n changeLtdPlanDuration = (payload: ChangeLtdPlanDurationPayload) =>\n this.request.patch()(`plans/ltd_duration`, payload);\n\n createLtdPaymentCheckout = (payload: CreateLtdPaymentCheckoutPayload) => {\n return this.request.get()('create_checkout/ltd', {\n params: payload,\n });\n };\n\n upgradeLtdPaymentCheckout = (payload: LtdPaymentCheckoutPayload) => {\n return this.request.get()('create_checkout/ltd_upgrade', {\n params: payload,\n });\n };\n\n capturePaypalOrder = (payload: CapturePaypalOrderPayload) => {\n return this.request.post()(`create_checkout/${payload.orderId}/capture`);\n };\n\n getLtdTier = (payload: GetLtdTierPayload) => {\n return this.request.get()(`ltd-tiers/${payload.ltdId}`);\n };\n\n getLtdTiers = () => {\n return this.request.get()('ltd-tiers');\n };\n\n validateLtdCode = (payload: LtdCodePayload) => {\n return this.request.post()(`ltd-tiers/validate_code`, payload);\n };\n\n redeemLtdCode = (payload: LtdCodePayload) => {\n return this.request.post()(`ltd-tiers/activate`, payload);\n };\n\n temporaryChangePlan = async (payload: PlanChangePayload) =>\n this.request.post()('plans/change', payload);\n}\n\nexport default new BillingApi();\n","import { put, call, takeLeading, cancelled, takeLatest } from 'redux-saga/effects';\nimport lodash from 'lodash';\nimport Axios from 'axios';\nimport BillingApiService from 'Services/Api/Billing';\nimport {\n Card,\n PlanDetails,\n Invoice,\n SubscriptionData,\n ApiSubscription,\n GetLatestInvoicePayload,\n CheckoutSessionUrl,\n GetUpcomingInvoicePayload,\n InvoiceDownloadLinkPayload,\n LtdTier,\n LtdCheckoutResponse,\n LtdCheckoutUpgradeResponse,\n} from 'Interfaces/Billing';\nimport { NormalizedEntity } from 'Interfaces/Common';\nimport {\n getCard,\n updateCard,\n getInvoices,\n changePLan,\n attachCard,\n getSubscriptionData,\n getPlans,\n upgradeAppSumo,\n getApiSubscription,\n removeApiPlan,\n changeApiPlan,\n retryCharge,\n upsellPlan,\n validatePromotionCode,\n getLatestInvoice,\n creatSetupCheckoutSession,\n createSubscriptionCheckout,\n checkUpsellAllowed,\n createBillingPortal,\n getUpcomingInvoice,\n getInvoiceDownloadLink,\n getLtdUpcomingInvoice,\n changeLtdPlanDuration,\n createLtdPaymentCheckout,\n capturePaypalOrder,\n getLtdTier,\n getLtdTiers,\n upgradeLtdPaymentCheckout,\n validateLtdCode,\n redeemLtdCode,\n temporaryChangePlan,\n} from './actionCreators';\nimport { User } from 'Interfaces/User';\n\nfunction* handleGetCard({ meta }: ReturnType) {\n const cancelToken = Axios.CancelToken.source();\n\n try {\n const card: Card = yield call(BillingApiService.getCreditCard, {\n cancelToken: cancelToken.token,\n });\n\n yield put(getCard.success(card, meta));\n } catch (error) {\n yield put(getCard.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(getCard.cancel(undefined, meta));\n cancelToken.cancel();\n }\n }\n}\n\nfunction* handleUpdateCard({ payload, meta }: ReturnType) {\n const { token } = payload;\n\n try {\n const card: Card = yield call(BillingApiService.updateCard, token);\n\n yield put(updateCard.success(card, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(updateCard.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(updateCard.cancel(undefined, { ...meta, isLeading: true }));\n }\n }\n}\n\nfunction* handleAppSumoUpgrade({\n payload,\n meta,\n}: ReturnType) {\n try {\n const user: User = yield call(BillingApiService.upgradeAppSumo, payload);\n\n yield put(upgradeAppSumo.success(user, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(upgradeAppSumo.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(upgradeAppSumo.cancel(undefined, { ...meta, isLeading: true }));\n }\n }\n}\n\nfunction* handleAttachCard({ payload, meta }: ReturnType) {\n const { token } = payload;\n\n try {\n const card: Card = yield call(BillingApiService.attachCard, token);\n\n yield put(attachCard.success(card, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(attachCard.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(attachCard.cancel(undefined, { ...meta, isLeading: true }));\n }\n }\n}\n\nfunction* handleRemoveApiPlan({ meta }: ReturnType) {\n try {\n const apiSubscription: ApiSubscription = yield call(BillingApiService.removeApiPlan);\n\n yield put(removeApiPlan.success(apiSubscription, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(removeApiPlan.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(removeApiPlan.cancel(undefined, { ...meta, isLeading: true }));\n }\n }\n}\n\nfunction* handleGetInvoices({ payload, meta }: ReturnType) {\n try {\n const { items, totalItems, totalPages, itemCount } = yield call(\n BillingApiService.getInvoices,\n payload,\n );\n const normalizedInvoices: NormalizedEntity = lodash.keyBy(items, 'id');\n\n yield put(\n getInvoices.success(\n {\n invoices: normalizedInvoices,\n paginationData: { totalItems, pageCount: totalPages, itemsCount: itemCount },\n },\n { ...meta, isLeading: true },\n ),\n );\n } catch (error) {\n yield put(getInvoices.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(getInvoices.cancel(undefined, { ...meta, isLeading: true }));\n }\n }\n}\n\nfunction* handlePlansGet({ meta }: ReturnType) {\n try {\n const plans: PlanDetails[] = yield call(BillingApiService.getPlans);\n\n yield put(getPlans.success(plans, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(getPlans.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(getPlans.cancel(undefined, { ...meta, isLeading: true }));\n }\n }\n}\n\nfunction* handleSubscriptionDataGet({\n meta,\n}: ReturnType) {\n try {\n const subscriptionData: SubscriptionData = yield call(\n BillingApiService.getSubscriptionData,\n );\n\n yield put(\n getSubscriptionData.success(subscriptionData, { ...meta, isLeading: true }),\n );\n } catch (error) {\n yield put(getSubscriptionData.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(getSubscriptionData.cancel(undefined, { ...meta, isLeading: true }));\n }\n }\n}\n\nfunction* handleApiSubscriptionGet({\n meta,\n}: ReturnType) {\n try {\n const subscriptionData: ApiSubscription = yield call(\n BillingApiService.getApiSubscription,\n );\n\n yield put(getApiSubscription.success(subscriptionData, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(getApiSubscription.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(getApiSubscription.cancel(undefined, { ...meta, isLeading: true }));\n }\n }\n}\n\nfunction* handleChangePlan({ payload, meta }: ReturnType) {\n try {\n const user: User = yield call(BillingApiService.changePlan, payload);\n\n yield put(changePLan.success(user, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(changePLan.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(changePLan.cancel(undefined, { ...meta, isLeading: true }));\n }\n }\n}\n\nfunction* handleChangeApiPlan({\n payload,\n meta,\n}: ReturnType) {\n try {\n const apiSubscription: ApiSubscription = yield call(\n BillingApiService.changeApiPlan,\n payload,\n );\n\n yield put(changeApiPlan.success(apiSubscription, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(changeApiPlan.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(changeApiPlan.cancel(undefined, { ...meta, isLeading: true }));\n }\n }\n}\n\nfunction* handleChargeRetry({ meta }: ReturnType) {\n try {\n const response: SubscriptionData = yield call(BillingApiService.retryCharge);\n\n yield put(retryCharge.success(response, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(retryCharge.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(retryCharge.cancel(undefined, { ...meta, isLeading: true }));\n }\n }\n}\n\nfunction* handleUpsellPlan({ payload, meta }: ReturnType) {\n try {\n const {\n updatedUser,\n }: { updatedUser: User; subscription: SubscriptionData } = yield call(\n BillingApiService.upsellPlan,\n );\n\n yield put(upsellPlan.success(updatedUser, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(upsellPlan.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(upsellPlan.cancel(undefined, { ...meta, isLeading: true }));\n }\n }\n}\n\nfunction* handleValidatePromotionCode({\n payload,\n meta,\n}: ReturnType) {\n try {\n const response = yield call(\n payload.authorized\n ? BillingApiService.validatePromotionCode\n : BillingApiService.validatePromotionCodeUnauthorized,\n payload,\n );\n\n yield put(validatePromotionCode.success(response, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(validatePromotionCode.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(validatePromotionCode.cancel(undefined, { ...meta, isLeading: true }));\n }\n }\n}\n\nfunction* handleGetLatestInvoice({ meta }: ReturnType) {\n try {\n const response: GetLatestInvoicePayload = yield call(\n BillingApiService.getLatestInvoice,\n );\n\n yield put(getLatestInvoice.success(response, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(getLatestInvoice.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(getLatestInvoice.cancel(undefined, { ...meta, isLeading: true }));\n }\n }\n}\n\nfunction* handleCreateCheckout({\n payload,\n meta,\n}: ReturnType) {\n try {\n const card: CheckoutSessionUrl = yield call(BillingApiService.createSetupCheckout);\n\n yield put(creatSetupCheckoutSession.success(card, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(creatSetupCheckoutSession.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(\n creatSetupCheckoutSession.cancel(undefined, { ...meta, isLeading: true }),\n );\n }\n }\n}\n\nfunction* handleCreateSubscriptionCheckout({\n payload,\n meta,\n}: ReturnType) {\n try {\n const card: CheckoutSessionUrl = yield call(\n BillingApiService.createSubscriptionCheckout,\n payload,\n );\n\n yield put(createSubscriptionCheckout.success(card, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(createSubscriptionCheckout.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(\n createSubscriptionCheckout.cancel(undefined, { ...meta, isLeading: true }),\n );\n }\n }\n}\n\nfunction* handleCheckUpsellAllowed({\n payload,\n meta,\n}: ReturnType) {\n try {\n const response: string = yield call(BillingApiService.checkUpsellAllowed);\n yield put(checkUpsellAllowed.success(response, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(checkUpsellAllowed.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(checkUpsellAllowed.cancel(undefined, { ...meta, isLeading: true }));\n }\n }\n}\n\nfunction* handleCreateBillingPortal({\n payload,\n meta,\n}: ReturnType) {\n try {\n const response: CheckoutSessionUrl = yield call(\n BillingApiService.createBillingPortal,\n );\n yield put(createBillingPortal.success(response, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(createBillingPortal.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(createBillingPortal.cancel(undefined, { ...meta, isLeading: true }));\n }\n }\n}\n\nfunction* handleGetUpcomingInvoice({\n payload,\n meta,\n}: ReturnType) {\n try {\n const response: GetUpcomingInvoicePayload = yield call(\n BillingApiService.getUpcomingInvoice,\n payload,\n );\n yield put(getUpcomingInvoice.success(response, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(getUpcomingInvoice.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(getUpcomingInvoice.cancel(undefined, { ...meta, isLeading: true }));\n }\n }\n}\n\nfunction* handleGetLtdUpcomingInvoice({\n payload,\n meta,\n}: ReturnType) {\n try {\n const response: GetUpcomingInvoicePayload = yield call(\n BillingApiService.getLtdUpcomingInvoice,\n payload,\n );\n yield put(getLtdUpcomingInvoice.success(response, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(getLtdUpcomingInvoice.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(getLtdUpcomingInvoice.cancel(undefined, { ...meta, isLeading: true }));\n }\n }\n}\n\nfunction* handleGetInvoiceDownloadLink({\n payload,\n meta,\n}: ReturnType) {\n try {\n const response: InvoiceDownloadLinkPayload = yield call(\n BillingApiService.getInvoiceDownloadLink,\n payload,\n );\n yield put(getInvoiceDownloadLink.success(response, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(getInvoiceDownloadLink.failure(error, { ...meta, isLeading: true }));\n }\n}\n\nfunction* handleChangeLtdPlanDuration({\n payload,\n meta,\n}: ReturnType) {\n try {\n const user: User = yield call(BillingApiService.changeLtdPlanDuration, payload);\n\n yield put(changeLtdPlanDuration.success(user, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(changeLtdPlanDuration.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(changeLtdPlanDuration.cancel(undefined, { ...meta, isLeading: true }));\n }\n }\n}\n\nfunction* handleCreateLtdPaymentCheckout({\n payload,\n meta,\n}: ReturnType) {\n try {\n const response: LtdCheckoutResponse = yield call(\n BillingApiService.createLtdPaymentCheckout,\n payload,\n );\n\n yield put(createLtdPaymentCheckout.success(response, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(createLtdPaymentCheckout.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(createLtdPaymentCheckout.cancel(undefined, { ...meta, isLeading: true }));\n }\n }\n}\n\nfunction* handleUpgradeLtdPaymentCheckout({\n payload,\n meta,\n}: ReturnType) {\n try {\n const response: LtdCheckoutUpgradeResponse = yield call(\n BillingApiService.upgradeLtdPaymentCheckout,\n payload,\n );\n\n yield put(upgradeLtdPaymentCheckout.success(response, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(upgradeLtdPaymentCheckout.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(\n upgradeLtdPaymentCheckout.cancel(undefined, { ...meta, isLeading: true }),\n );\n }\n }\n}\n\nfunction* handleCapturePaypalOrder({\n payload,\n meta,\n}: ReturnType) {\n try {\n yield call(BillingApiService.capturePaypalOrder, payload);\n\n yield put(capturePaypalOrder.success(undefined, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(capturePaypalOrder.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(capturePaypalOrder.cancel(undefined, { ...meta, isLeading: true }));\n }\n }\n}\n\nfunction* handleGetLtdTier({ payload, meta }: ReturnType) {\n try {\n const response: LtdTier = yield call(BillingApiService.getLtdTier, payload);\n\n yield put(getLtdTier.success(response, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(getLtdTier.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(getLtdTier.cancel(undefined, { ...meta, isLeading: true }));\n }\n }\n}\n\nfunction* handleGetLtdTiers({ meta }: ReturnType) {\n try {\n const response: LtdTier[] = yield call(BillingApiService.getLtdTiers);\n\n yield put(getLtdTiers.success(response, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(getLtdTiers.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(getLtdTiers.cancel(undefined, { ...meta, isLeading: true }));\n }\n }\n}\n\nfunction* handleValidateLtdCode({\n payload,\n meta,\n}: ReturnType) {\n try {\n const response: LtdTier = yield call(BillingApiService.validateLtdCode, payload);\n\n yield put(validateLtdCode.success(response, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(validateLtdCode.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(validateLtdCode.cancel(undefined, { ...meta, isLeading: true }));\n }\n }\n}\n\nfunction* handleRedeemLtdCode({\n payload,\n meta,\n}: ReturnType) {\n try {\n const response: User = yield call(BillingApiService.redeemLtdCode, payload);\n\n yield put(redeemLtdCode.success(response, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(redeemLtdCode.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(redeemLtdCode.cancel(undefined, { ...meta, isLeading: true }));\n }\n }\n}\n\nfunction* handleTemporaryChangePlan({\n payload,\n meta,\n}: ReturnType) {\n try {\n const user: User = yield call(BillingApiService.temporaryChangePlan, payload);\n\n yield put(temporaryChangePlan.success(user, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(temporaryChangePlan.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(temporaryChangePlan.cancel(undefined, { ...meta, isLeading: true }));\n }\n }\n}\n\nexport default [\n takeLatest(getCard.request, handleGetCard),\n takeLatest(getSubscriptionData.request, handleSubscriptionDataGet),\n takeLatest(getApiSubscription.request, handleApiSubscriptionGet),\n takeLeading(updateCard.request, handleUpdateCard),\n takeLeading(upgradeAppSumo.request, handleAppSumoUpgrade),\n takeLeading(attachCard.request, handleAttachCard),\n takeLeading(getInvoices.request, handleGetInvoices),\n takeLeading(getPlans.request, handlePlansGet),\n takeLeading(changePLan.request, handleChangePlan),\n takeLeading(changeApiPlan.request, handleChangeApiPlan),\n takeLeading(removeApiPlan.request, handleRemoveApiPlan),\n takeLeading(retryCharge.request, handleChargeRetry),\n takeLeading(upsellPlan.request, handleUpsellPlan),\n takeLeading(validatePromotionCode.request, handleValidatePromotionCode),\n takeLeading(getLatestInvoice.request, handleGetLatestInvoice),\n takeLeading(creatSetupCheckoutSession.request, handleCreateCheckout),\n takeLeading(createSubscriptionCheckout.request, handleCreateSubscriptionCheckout),\n takeLeading(checkUpsellAllowed.request, handleCheckUpsellAllowed),\n takeLeading(createBillingPortal.request, handleCreateBillingPortal),\n takeLeading(getUpcomingInvoice.request, handleGetUpcomingInvoice),\n takeLeading(getLtdUpcomingInvoice.request, handleGetLtdUpcomingInvoice),\n takeLeading(getInvoiceDownloadLink.request, handleGetInvoiceDownloadLink),\n takeLeading(changeLtdPlanDuration.request, handleChangeLtdPlanDuration),\n takeLeading(createLtdPaymentCheckout.request, handleCreateLtdPaymentCheckout),\n takeLeading(upgradeLtdPaymentCheckout.request, handleUpgradeLtdPaymentCheckout),\n takeLeading(capturePaypalOrder.request, handleCapturePaypalOrder),\n takeLeading(getLtdTier.request, handleGetLtdTier),\n takeLeading(getLtdTiers.request, handleGetLtdTiers),\n takeLeading(validateLtdCode.request, handleValidateLtdCode),\n takeLeading(redeemLtdCode.request, handleRedeemLtdCode),\n takeLeading(temporaryChangePlan.request, handleTemporaryChangePlan),\n];\n","import sagas from './sagas';\nimport {\n getCard,\n $getCard,\n updateCard,\n attachCard,\n $attachCard,\n getSubscriptionData,\n $getSubscriptionData,\n getApiSubscription,\n $getApiSubscription,\n getPlans,\n $getPlans,\n removeApiPlan,\n $removeApiPlan,\n changePLan,\n $changePLan,\n changeApiPlan,\n $changeApiPlan,\n getInvoices,\n upgradeAppSumo,\n $upgradeAppSumo,\n $getInvoices,\n $updateCard,\n retryCharge,\n $retryCharge,\n upsellPlan,\n $upsellPlan,\n validatePromotionCode,\n $validatePromotionCode,\n getLatestInvoice,\n $getLatestInvoice,\n creatSetupCheckoutSession,\n $creatSetupCheckoutSession,\n createSubscriptionCheckout,\n $createSubscriptionCheckout,\n createLtdPaymentCheckout,\n $createLtdPaymentCheckout,\n upgradeLtdPaymentCheckout,\n $upgradeLtdPaymentCheckout,\n checkUpsellAllowed,\n $checkUpsellAllowed,\n createBillingPortal,\n $createBillingPortal,\n getUpcomingInvoice,\n $getUpcomingInvoice,\n getLtdUpcomingInvoice,\n $getLtdUpcomingInvoice,\n getInvoiceDownloadLink,\n $getInvoiceDownloadLink,\n changeLtdPlanDuration,\n $changeLtdPlanDuration,\n capturePaypalOrder,\n $capturePaypalOrder,\n getLtdTier,\n $getLtdTier,\n getLtdTiers,\n $getLtdTiers,\n validateLtdCode,\n $validateLtdCode,\n redeemLtdCode,\n $redeemLtdCode,\n temporaryChangePlan,\n $temporaryChangePlan,\n} from './actionCreators';\nimport reducer from './reducer';\n\nexport default {\n sagas,\n reducer,\n actions: {\n getCard,\n getApiSubscription,\n getPlans,\n upgradeAppSumo,\n attachCard,\n changePLan,\n changeApiPlan,\n getSubscriptionData,\n updateCard,\n removeApiPlan,\n getInvoices,\n retryCharge,\n upsellPlan,\n validatePromotionCode,\n getLatestInvoice,\n creatSetupCheckoutSession,\n createSubscriptionCheckout,\n createLtdPaymentCheckout,\n upgradeLtdPaymentCheckout,\n checkUpsellAllowed,\n createBillingPortal,\n getUpcomingInvoice,\n getLtdUpcomingInvoice,\n getInvoiceDownloadLink,\n changeLtdPlanDuration,\n capturePaypalOrder,\n getLtdTier,\n getLtdTiers,\n validateLtdCode,\n redeemLtdCode,\n temporaryChangePlan,\n },\n};\n\nexport const $actions = {\n getInvoices: $getInvoices,\n getApiSubscription: $getApiSubscription,\n removeApiPlan: $removeApiPlan,\n getCard: $getCard,\n attachCard: $attachCard,\n upgradeAppSumo: $upgradeAppSumo,\n changeApiPlan: $changeApiPlan,\n getPlans: $getPlans,\n getSubscriptionData: $getSubscriptionData,\n updateCard: $updateCard,\n changePLan: $changePLan,\n retryCharge: $retryCharge,\n upsellPlan: $upsellPlan,\n validatePromotionCode: $validatePromotionCode,\n getLatestInvoice: $getLatestInvoice,\n creatSetupCheckoutSession: $creatSetupCheckoutSession,\n createSubscriptionCheckout: $createSubscriptionCheckout,\n createLtdPaymentCheckout: $createLtdPaymentCheckout,\n upgradeLtdPaymentCheckout: $upgradeLtdPaymentCheckout,\n checkUpsellAllowed: $checkUpsellAllowed,\n createBillingPortal: $createBillingPortal,\n getUpcomingInvoice: $getUpcomingInvoice,\n getLtdUpcomingInvoice: $getLtdUpcomingInvoice,\n getInvoiceDownloadLink: $getInvoiceDownloadLink,\n changeLtdPlanDuration: $changeLtdPlanDuration,\n capturePaypalOrder: $capturePaypalOrder,\n getLtdTier: $getLtdTier,\n getLtdTiers: $getLtdTiers,\n validateLtdCode: $validateLtdCode,\n redeemLtdCode: $redeemLtdCode,\n temporaryChangePLan: $temporaryChangePlan,\n};\n","import { createReducer } from 'typesafe-actions';\nimport {\n getCard,\n updateCard,\n attachCard,\n getPlans,\n getInvoices,\n getSubscriptionData,\n getApiSubscription,\n removeApiPlan,\n changeApiPlan,\n changeLtdPlanDuration,\n getLtdTier,\n} from './actionCreators';\nimport { BillingData, PlanDetails } from 'Interfaces/Billing';\n\nexport default createReducer({\n invoiceItems: {},\n subscriptionData: {},\n plans: [] as PlanDetails[],\n card: {},\n} as BillingData)\n .handleAction(\n [getCard.success, updateCard.success, attachCard.success],\n (state, action) => ({\n ...state,\n card: action.payload,\n }),\n )\n .handleAction([getInvoices.success], (state, action) => ({\n ...state,\n invoices: action.payload.invoices,\n }))\n .handleAction([getPlans.success], (state, action) => ({\n ...state,\n plans: action.payload,\n }))\n .handleAction([getSubscriptionData.success], (state, action) => ({\n ...state,\n subscriptionData: action.payload,\n }))\n .handleAction([getApiSubscription.success], (state, action) => ({\n ...state,\n apiSubscription: action.payload,\n }))\n .handleAction([changeLtdPlanDuration.success], (state, action) => ({\n ...state,\n ...action.payload,\n }))\n .handleAction([removeApiPlan.success, changeApiPlan.success], (state, action) => ({\n ...state,\n apiSubscription: action.payload,\n }))\n .handleAction([getLtdTier.success], (state, action) => ({\n ...state,\n ltdTier: action.payload,\n }));\n","import Api from './Api';\nimport { AxiosRequestConfig } from 'axios';\nimport { TeamMember, TeamMembersAddPayload, TeamIdPayload } from 'Interfaces/Team';\nimport { TokenizedPayload, UserIdPayload, User } from 'Interfaces/User';\n\nclass TeamApi extends Api {\n getTeamMembers = (params: AxiosRequestConfig['params'], config?: AxiosRequestConfig) =>\n this.request.get()('teams/members', { params, ...config });\n\n addTeamMembers = (values: TeamMembersAddPayload) =>\n this.request.post()('add-teammates', values);\n\n deleteTeamMembers = (teamMemberIds: TeamMember['id'][]) => {\n return this.request.delete()(`remove-teammates`, {\n data: { ids: teamMemberIds },\n });\n };\n\n acceptInvite = ({ token, payload }: TokenizedPayload) => {\n return this.request.post(token)(`add-teammates/${payload.teamId}/accept_invite`);\n };\n\n upgradeToAdmin = (payload: UserIdPayload) => {\n return this.request.post()(`teams/${payload.userId}/upgrade_to_admin`);\n };\n\n downgradeToUser = (payload: UserIdPayload) => {\n return this.request.post()(`teams/${payload.userId}/downgrade_to_user`);\n };\n}\n\nexport default new TeamApi();\n","import { put, call, takeLatest, cancelled, select, takeEvery } from 'redux-saga/effects';\nimport lodash from 'lodash';\nimport TeamApiService from 'Services/Api/Team';\nimport { NormalizedEntity } from 'Interfaces/Common';\nimport {\n addTeamMembers,\n getTeamMembers,\n deleteTeamMembers,\n acceptInvite,\n upgradeToAdmin,\n downgradeToUser,\n} from './actionCreators';\nimport Axios from 'axios';\nimport { TeamMember } from 'Interfaces/Team';\nimport { selectSignToken } from 'Utils/selectors';\nimport { UserReducerState } from '../user/reducer';\nimport { User } from 'Interfaces/User';\n\nfunction* handleTeamMembersGet({\n payload,\n meta,\n}: ReturnType) {\n const cancelToken = Axios.CancelToken.source();\n\n try {\n const { members } = yield call(TeamApiService.getTeamMembers, payload, {\n cancelToken: cancelToken.token,\n });\n\n const normalizedTeamMembers: NormalizedEntity = lodash.keyBy(\n members || [],\n 'id',\n );\n\n yield put(getTeamMembers.success({ teamMembers: normalizedTeamMembers }, meta));\n } catch (error) {\n yield put(getTeamMembers.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(getTeamMembers.cancel(undefined, meta));\n cancelToken.cancel();\n }\n }\n}\n\nfunction* handleDeleteTeamMembers({\n payload,\n meta,\n}: ReturnType) {\n const { teamMembersIds } = payload;\n\n try {\n yield call(TeamApiService.deleteTeamMembers, teamMembersIds);\n\n yield put(deleteTeamMembers.success({ teamMembersIds }, meta));\n } catch (error) {\n yield put(deleteTeamMembers.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(deleteTeamMembers.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleAddTeamMembers({\n payload,\n meta,\n}: ReturnType) {\n try {\n yield call(TeamApiService.addTeamMembers, payload);\n yield put(addTeamMembers.success(undefined, meta));\n } catch (error) {\n yield put(addTeamMembers.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(addTeamMembers.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleInviteAccept({ payload, meta }: ReturnType) {\n try {\n const token: UserReducerState['signToken'] = yield select(selectSignToken);\n\n yield call(TeamApiService.acceptInvite, { token, payload });\n\n yield put(acceptInvite.success(undefined, meta));\n } catch (error) {\n yield put(acceptInvite.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(acceptInvite.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleToAdminUpgrade({\n payload,\n meta,\n}: ReturnType) {\n try {\n const teamMember: User = yield call(TeamApiService.upgradeToAdmin, payload);\n\n yield put(upgradeToAdmin.success(teamMember, meta));\n } catch (err) {\n yield put(upgradeToAdmin.failure(err, meta));\n } finally {\n if (yield cancelled()) {\n yield put(upgradeToAdmin.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleToUserDonwgrade({\n payload,\n meta,\n}: ReturnType) {\n try {\n const teamMember: User = yield call(TeamApiService.downgradeToUser, payload);\n\n yield put(downgradeToUser.success(teamMember, meta));\n } catch (err) {\n yield put(downgradeToUser.failure(err, meta));\n } finally {\n if (yield cancelled()) {\n yield put(downgradeToUser.cancel(undefined, meta));\n }\n }\n}\n\nexport default [\n takeLatest(getTeamMembers.request, handleTeamMembersGet),\n takeLatest(addTeamMembers.request, handleAddTeamMembers),\n takeLatest(deleteTeamMembers.request, handleDeleteTeamMembers),\n takeLatest(acceptInvite.request, handleInviteAccept),\n takeEvery(upgradeToAdmin.request, handleToAdminUpgrade),\n takeEvery(downgradeToUser.request, handleToUserDonwgrade),\n];\n","import sagas from './sagas';\nimport {\n $addTeamMembers,\n $deleteTeamMembers,\n $getTeamMembers,\n addTeamMembers,\n deleteTeamMembers,\n acceptInvite,\n $acceptInvite,\n finishInviteAccepting,\n initInviteAccepting,\n getTeamMembers,\n upgradeToAdmin,\n $upgradeToAdmin,\n downgradeToUser,\n $downgradeToUser,\n} from './actionCreators';\nimport reducer from './reducer';\n\nexport default {\n sagas,\n reducer,\n actions: {\n finishInviteAccepting,\n acceptInvite,\n initInviteAccepting,\n addTeamMembers,\n deleteTeamMembers,\n getTeamMembers,\n upgradeToAdmin,\n downgradeToUser,\n },\n};\n\nexport const $actions = {\n addTeamMembers: $addTeamMembers,\n acceptInvite: $acceptInvite,\n deleteTeamMembers: $deleteTeamMembers,\n getTeamMembers: $getTeamMembers,\n upgradeToAdmin: $upgradeToAdmin,\n downgradeToUser: $downgradeToUser,\n};\n","import { createReducer } from 'typesafe-actions';\nimport * as _ from 'lodash';\nimport { NormalizedEntity } from 'Interfaces/Common';\nimport { TeamMember } from 'Interfaces/Team';\nimport {\n getTeamMembers,\n upgradeToAdmin,\n deleteTeamMembers,\n downgradeToUser,\n} from './actionCreators';\n\nexport default createReducer({} as NormalizedEntity)\n .handleAction(getTeamMembers.success, (state, action) => ({\n ...action.payload.teamMembers,\n }))\n .handleAction(deleteTeamMembers.success, (state, action) => {\n const newState = _.omit(state, action.payload.teamMembersIds);\n\n return newState;\n })\n .handleAction([upgradeToAdmin.success, downgradeToUser.success], (state, action) => ({\n ...state,\n [action.payload.id]: { ...state[action.payload.id], ...action.payload },\n }));\n","import Api from './Api';\nimport {\n IntegrationActionPayload,\n IntegrationUrlPayload,\n IntegrationAuthTokenPayload,\n} from 'Interfaces/Integration';\nimport { getWorkflowVersion } from 'Utils/functions';\n\nclass IntegrationsApi extends Api {\n baseUrl = 'integrations';\n\n getAuthUrl = (params: IntegrationActionPayload) => {\n return this.request.get()('integrations/auth_url', {\n params: {\n ...params,\n workflowVersion: getWorkflowVersion(),\n },\n });\n };\n\n getAuthToken = (params: IntegrationActionPayload) => {\n return this.request.get()('integrations/auth_token', {\n params,\n });\n };\n\n deactivate = (params: IntegrationActionPayload) => {\n return this.request.post()(\n 'integrations/deactivate',\n {},\n {\n params,\n },\n );\n };\n}\n\nexport default new IntegrationsApi();\n","import { put, call, takeLatest, takeLeading, takeEvery } from 'redux-saga/effects';\nimport { getAuthUrl, getAuthToken, deactivate } from './actionCreators';\nimport IntegrationService from 'Services/Api/Integrations';\nimport {\n IntegrationUrlPayload,\n IntegrationAuthTokenPayload,\n} from 'Interfaces/Integration';\n\nfunction* handleAuthUrlGet({ payload, meta }: ReturnType) {\n try {\n const response: IntegrationUrlPayload = yield call(\n IntegrationService.getAuthUrl,\n payload,\n );\n\n yield put(getAuthUrl.success(response, meta));\n } catch (error) {\n yield put(getAuthUrl.failure(error, meta));\n } finally {\n yield put(getAuthUrl.cancel(undefined, meta));\n }\n}\n\nfunction* handleAuthTokenGet({ payload, meta }: ReturnType) {\n try {\n const response: IntegrationAuthTokenPayload = yield call(\n IntegrationService.getAuthToken,\n payload,\n );\n\n yield put(getAuthToken.success(response, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(getAuthToken.failure(error, { ...meta, isLeading: true }));\n } finally {\n yield put(getAuthToken.cancel(undefined, { ...meta, isLeading: true }));\n }\n}\n\nfunction* handleIntegrationDeactivate({\n payload,\n meta,\n}: ReturnType) {\n try {\n const response: IntegrationUrlPayload = yield call(\n IntegrationService.deactivate,\n payload,\n );\n\n yield put(deactivate.success({ ...response, ...payload }, meta));\n } catch (error) {\n yield put(deactivate.failure(error, meta));\n } finally {\n yield put(deactivate.cancel(undefined, meta));\n }\n}\n\nexport default [\n takeLatest(getAuthUrl.request, handleAuthUrlGet),\n takeLeading(getAuthToken.request, handleAuthTokenGet),\n takeEvery(deactivate.request, handleIntegrationDeactivate),\n];\n","export enum DeleteRequisiteActionTypes {\n request = 'requisite/DELETE_REQUISITE/REQUEST',\n success = 'requisite/DELETE_REQUISITE/SUCCESS',\n failure = 'requisite/DELETE_REQUISITE/FAILURE',\n cancel = 'requisite/DELETE_REQUISITE/CANCEL',\n}\n\nexport enum GetRequisitesActionTypes {\n request = 'requisite/GET_REQUISITES/REQUEST',\n success = 'requisite/GET_REQUISITES/SUCCESS',\n failure = 'requisite/GET_REQUISITES/FAILURE',\n cancel = 'requisite/GET_REQUISITES/CANCEL',\n}\n\nexport enum CreateRequisitesActionTypes {\n request = 'requisite/CREATE_REQUISITES/REQUEST',\n success = 'requisite/CREATE_REQUISITES/SUCCESS',\n failure = 'requisite/CREATE_REQUISITES/FAILURE',\n cancel = 'requisite/CREATE_REQUISITES/CANCEL',\n}\n\nexport enum UpdateRequisitesActionTypes {\n request = 'requisite/UPDATE_REQUISITES/REQUEST',\n success = 'requisite/UPDATE_REQUISITES/SUCCESS',\n failure = 'requisite/UPDATE_REQUISITES/FAILURE',\n cancel = 'requisite/UPDATE_REQUISITES/CANCEL',\n}\n\nexport enum DownloadFileByUrlActionTypes {\n request = 'requisite/DOWNLOAD_FILE/REQUEST',\n success = 'requisite/DOWNLOAD_FILE/SUCCESS',\n failure = 'requisite/DOWNLOAD_FILE/FAILURE',\n cancel = 'requisite/DOWNLOAD_FILE/CANCEL',\n}\n","import sagas from './sagas';\nimport {\n getAuthUrl,\n $getAuthUrl,\n getAuthToken,\n $getAuthToken,\n deactivate,\n $deactivate,\n} from './actionCreators';\n\nexport default {\n sagas,\n actions: {\n getAuthUrl,\n getAuthToken,\n deactivate,\n },\n};\n\nexport const $actions = {\n getAuthUrl: $getAuthUrl,\n getAuthToken: $getAuthToken,\n deactivate: $deactivate,\n};\n","import Api from './Api';\nimport {\n Requisite,\n RequisitesPayload,\n RequisiteSiblings,\n RequisiteDeletePayload,\n} from 'Interfaces/Requisite';\nimport { TokenizedPayload } from 'Interfaces/User';\n\nclass RequisiteApi extends Api {\n getRequisites = (payload?: TokenizedPayload<{ withDeleted?: boolean }>) => {\n const { token, payload: params } = payload || {};\n\n return this.request.get(token)('requisites', { params });\n };\n\n createRequisites = async ({ token, payload }: TokenizedPayload) => {\n return this.request.post(token)('requisites', {\n requisites: payload,\n });\n };\n\n updateRequisites = async ({ token, payload }: TokenizedPayload) => {\n return this.request.patch(token)(`requisites`, {\n requisites: payload,\n });\n };\n\n deleteRequisite = async ({\n token,\n payload,\n }: TokenizedPayload) =>\n this.request.delete(token)(`requisites/${payload.id}`);\n}\n\nexport default new RequisiteApi();\n","import { createAsyncAction } from 'typesafe-actions';\nimport { PromisifiedActionMeta, ActionError } from 'Interfaces/ActionCreators';\nimport { promisifyAsyncAction } from 'Utils/functions';\nimport {\n DeleteRequisiteActionTypes,\n GetRequisitesActionTypes,\n CreateRequisitesActionTypes,\n UpdateRequisitesActionTypes,\n DownloadFileByUrlActionTypes,\n} from './actionTypes';\nimport {\n Requisite,\n RequisitesPayload,\n RequisiteSiblings,\n RequisiteDeletePayload,\n} from 'Interfaces/Requisite';\nimport { NormalizedEntity } from 'Interfaces/Common';\n\nexport const deleteRequisite = createAsyncAction(\n DeleteRequisiteActionTypes.request,\n DeleteRequisiteActionTypes.success,\n DeleteRequisiteActionTypes.failure,\n DeleteRequisiteActionTypes.cancel,\n)<\n [RequisiteDeletePayload, PromisifiedActionMeta],\n [RequisiteSiblings, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $deleteRequisite = promisifyAsyncAction(deleteRequisite);\n\nexport const getRequisites = createAsyncAction(\n GetRequisitesActionTypes.request,\n GetRequisitesActionTypes.success,\n GetRequisitesActionTypes.failure,\n GetRequisitesActionTypes.cancel,\n)<\n [undefined, PromisifiedActionMeta],\n [NormalizedEntity, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $getRequisites = promisifyAsyncAction(getRequisites);\n\nexport const createRequisites = createAsyncAction(\n CreateRequisitesActionTypes.request,\n CreateRequisitesActionTypes.success,\n CreateRequisitesActionTypes.failure,\n CreateRequisitesActionTypes.cancel,\n)<\n [RequisitesPayload, PromisifiedActionMeta],\n [RequisiteSiblings, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $createRequisites = promisifyAsyncAction(createRequisites);\n\nexport const updateRequisites = createAsyncAction(\n UpdateRequisitesActionTypes.request,\n UpdateRequisitesActionTypes.success,\n UpdateRequisitesActionTypes.failure,\n UpdateRequisitesActionTypes.cancel,\n)<\n [RequisitesPayload, PromisifiedActionMeta],\n [RequisiteSiblings, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $updateRequisites = promisifyAsyncAction(updateRequisites);\n\nexport const downloadFileByUrl = createAsyncAction(\n DownloadFileByUrlActionTypes.request,\n DownloadFileByUrlActionTypes.success,\n DownloadFileByUrlActionTypes.failure,\n DownloadFileByUrlActionTypes.cancel,\n)<\n [string, PromisifiedActionMeta],\n [any, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $downloadFileByUrl = promisifyAsyncAction(downloadFileByUrl);\n","import { put, call, select, takeLatest, cancelled, takeEvery } from 'redux-saga/effects';\nimport _ from 'lodash';\nimport RequisiteApiService from 'Services/Api/Requisite';\nimport ApiService from 'Services/Api/Api';\nimport { Requisite, RequisiteSiblings } from 'Interfaces/Requisite';\nimport { AxiosRequestConfig } from 'axios';\nimport { NormalizedEntity } from 'Interfaces/Common';\nimport { selectSignToken } from 'Utils/selectors';\nimport { UserReducerState } from '../user/reducer';\nimport {\n deleteRequisite,\n getRequisites,\n createRequisites,\n updateRequisites,\n downloadFileByUrl,\n} from './actionCreators';\n\nfunction* handleRequisitesGet({ meta }: ReturnType) {\n try {\n const token: UserReducerState['signToken'] = yield select(selectSignToken);\n\n const requisitesList: Requisite[] = yield call(RequisiteApiService.getRequisites, {\n token,\n payload: { withDeleted: false },\n });\n const normalizedRequisites: NormalizedEntity = _.keyBy(\n requisitesList,\n 'id',\n );\n yield put(getRequisites.success(normalizedRequisites, meta));\n } catch (error) {\n yield put(getRequisites.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(getRequisites.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleRequisiteDelete({\n meta,\n payload,\n}: ReturnType) {\n try {\n const token: UserReducerState['signToken'] = yield select(selectSignToken);\n\n const requisites: RequisiteSiblings = yield call(\n RequisiteApiService.deleteRequisite,\n {\n token,\n payload,\n },\n );\n yield put(deleteRequisite.success(requisites, meta));\n } catch (error) {\n yield put(deleteRequisite.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(deleteRequisite.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleRequisitesCreate({\n meta,\n payload,\n}: ReturnType) {\n try {\n const token: UserReducerState['signToken'] = yield select(selectSignToken);\n\n const requisites: RequisiteSiblings = yield call(\n RequisiteApiService.createRequisites,\n {\n token,\n payload,\n },\n );\n yield put(createRequisites.success(requisites, meta));\n } catch (error) {\n yield put(createRequisites.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(createRequisites.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleRequisitesUpdate({\n meta,\n payload,\n}: ReturnType) {\n try {\n const token: UserReducerState['signToken'] = yield select(selectSignToken);\n\n const requisites: RequisiteSiblings = yield call(\n RequisiteApiService.updateRequisites,\n {\n token,\n payload,\n },\n );\n yield put(updateRequisites.success(requisites, meta));\n } catch (error) {\n yield put(updateRequisites.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(updateRequisites.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleDownloadFileByUrl({\n payload,\n meta,\n}: ReturnType) {\n try {\n const config: AxiosRequestConfig = { responseType: 'blob' };\n const { data } = yield call(ApiService.downloadFile, payload, config);\n yield put(downloadFileByUrl.success(data, meta));\n } catch (error) {\n yield put(downloadFileByUrl.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(downloadFileByUrl.cancel(undefined, meta));\n }\n }\n}\n\nexport default [\n takeLatest(getRequisites.request, handleRequisitesGet),\n takeLatest(deleteRequisite.request, handleRequisiteDelete),\n takeLatest(createRequisites.request, handleRequisitesCreate),\n takeLatest(updateRequisites.request, handleRequisitesUpdate),\n takeEvery(downloadFileByUrl.request, handleDownloadFileByUrl),\n];\n","import sagas from './sagas';\nimport {\n deleteRequisite,\n $deleteRequisite,\n getRequisites,\n $getRequisites,\n createRequisites,\n updateRequisites,\n downloadFileByUrl,\n $downloadFileByUrl,\n $updateRequisites,\n $createRequisites,\n} from './actionCreators';\nimport reducer from './reducer';\n\nexport default {\n sagas,\n reducer,\n actions: {\n deleteRequisite,\n updateRequisites,\n createRequisites,\n downloadFileByUrl,\n getRequisites,\n },\n};\n\nexport const $actions = {\n deleteRequisite: $deleteRequisite,\n updateRequisites: $updateRequisites,\n downloadFileByUrl: $downloadFileByUrl,\n getRequisites: $getRequisites,\n createRequisites: $createRequisites,\n};\n","import { createReducer } from 'typesafe-actions';\nimport { Requisite } from 'Interfaces/Requisite';\nimport { NormalizedEntity } from 'Interfaces/Common';\nimport {\n getRequisites,\n updateRequisites,\n deleteRequisite,\n createRequisites,\n} from './actionCreators';\n\nexport default createReducer({} as NormalizedEntity)\n .handleAction([getRequisites.success], (state, action) => ({\n ...action.payload,\n }))\n .handleAction(\n [updateRequisites.success, createRequisites.success, deleteRequisite.success],\n (state, action) => ({\n ...state,\n [action.payload[0].id]: action.payload[0],\n [action.payload[1].id]: action.payload[1],\n }),\n );\n","import {\n put,\n call,\n cancelled,\n takeLeading,\n select,\n takeEvery,\n takeLatest,\n delay,\n race,\n take,\n} from 'redux-saga/effects';\nimport { getType } from 'typesafe-actions';\nimport DocumentSignApiService from 'Services/Api/DocumentSign';\nimport {\n Document,\n DocumentForSigners,\n DocumentForSigning,\n SignerOption,\n DocumentPreviewPagesPayload,\n SigningUrlPayload,\n SigningRemindersUnlinkPayload,\n} from 'Interfaces/Document';\nimport { SignedUrlResponse } from 'Interfaces/Common';\nimport {\n getSignerDocument,\n getSigningDocument,\n getAvailableSignersOptions,\n submitSignedDocument,\n sendDocumentOut,\n sendReminders,\n sendSignatoryOpened,\n getDocumentPreviewPages,\n getDocumentShareUrl,\n shareDocument,\n getDocumentConvertionStatus,\n sendCodeAccess,\n getSigningUrl,\n unlinkSigningReminders,\n sendOutEmbedDocument,\n getEmbedDocumentPreviewPages,\n declineSigningRequest,\n} from './actionCreators';\nimport { selectEmbedToken, selectSignToken } from 'Utils/selectors';\nimport { UserReducerState } from '../user/reducer';\nimport { toggleEmailNotification } from '../document/actionCreators';\n\nfunction* handleAvailableSignersOptionsGet({\n payload,\n meta,\n}: ReturnType) {\n try {\n const token: UserReducerState['signToken'] = yield select(selectSignToken);\n\n const options: SignerOption[] = yield call(\n DocumentSignApiService.getAvailableSignersOptions,\n { token, payload },\n );\n\n yield put(getAvailableSignersOptions.success(options, meta));\n } catch (error) {\n yield put(getAvailableSignersOptions.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(getAvailableSignersOptions.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleSignerDocumentGet({\n payload,\n meta,\n}: ReturnType) {\n try {\n const token: UserReducerState['signToken'] = yield select(selectSignToken);\n\n const document: DocumentForSigners = yield call(\n DocumentSignApiService.getSignerDocument,\n {\n payload,\n token,\n },\n );\n\n yield put(getSignerDocument.success(document, meta));\n } catch (error) {\n yield put(getSignerDocument.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(getSignerDocument.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleSigningDocumentGet({\n payload,\n meta,\n}: ReturnType) {\n try {\n const token: UserReducerState['signToken'] = yield select(selectSignToken);\n\n const document: DocumentForSigning = yield call(\n DocumentSignApiService.getSigningDocument,\n { payload, token },\n );\n\n yield put(getSigningDocument.success(document, meta));\n } catch (error) {\n yield put(getSigningDocument.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(getSigningDocument.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleSubmitSignedDocument({\n payload,\n meta,\n}: ReturnType) {\n try {\n const token: UserReducerState['signToken'] = yield select(selectSignToken);\n\n yield call(DocumentSignApiService.updateFields, {\n payload,\n token,\n });\n\n yield call(DocumentSignApiService.submitSignedDocument, {\n payload,\n token,\n });\n\n yield put(submitSignedDocument.success(undefined, meta));\n } catch (error) {\n yield put(submitSignedDocument.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(submitSignedDocument.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleDeclineSigningRequest({\n payload,\n meta,\n}: ReturnType) {\n try {\n const token: UserReducerState['signToken'] = yield select(selectSignToken);\n\n yield call(DocumentSignApiService.declineSigningRequest, {\n payload,\n token,\n });\n\n yield put(declineSigningRequest.success(undefined, meta));\n } catch (error) {\n yield put(declineSigningRequest.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(declineSigningRequest.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleDocumentSendOut({\n payload,\n meta,\n}: ReturnType) {\n try {\n const document: Document = yield call(\n DocumentSignApiService.sendOutDocument,\n payload.documentId,\n );\n\n yield put(sendDocumentOut.success(document, meta));\n } catch (error) {\n yield put(sendDocumentOut.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(sendDocumentOut.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleRemindersSend({\n payload,\n meta,\n}: ReturnType) {\n try {\n yield call(DocumentSignApiService.sendReminders, payload);\n\n yield put(sendReminders.success(undefined, meta));\n } catch (error) {\n yield put(sendReminders.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(sendReminders.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleSignatoryOpenedSend({\n payload,\n meta,\n}: ReturnType) {\n try {\n const token: UserReducerState['signToken'] = yield select(selectSignToken);\n\n yield call(DocumentSignApiService.sendSignatoryOpened, {\n payload,\n token,\n });\n\n yield put(sendSignatoryOpened.success(undefined, meta));\n } catch (error) {\n yield put(sendSignatoryOpened.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(sendSignatoryOpened.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleDocumentPreviewPagesGet({\n payload,\n meta,\n}: ReturnType) {\n try {\n const res: DocumentPreviewPagesPayload = yield call(\n DocumentSignApiService.getDocumentPreviewPages,\n payload,\n );\n\n yield put(getDocumentPreviewPages.success(res, meta));\n } catch (error) {\n yield put(getDocumentPreviewPages.failure(error, meta));\n }\n}\n\nfunction* handleDocumentShareUrlGet({\n payload,\n meta,\n}: ReturnType) {\n try {\n const result: SignedUrlResponse = yield call(\n DocumentSignApiService.getDocumentShareUrl,\n payload,\n );\n\n yield put(getDocumentShareUrl.success(result, meta));\n } catch (error) {\n yield put(getDocumentShareUrl.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(getDocumentShareUrl.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleDocumentShare({\n payload,\n meta,\n}: ReturnType) {\n try {\n yield call(DocumentSignApiService.shareDocument, payload);\n\n yield put(shareDocument.success(undefined, meta));\n } catch (error) {\n yield put(shareDocument.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(shareDocument.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleCodeAccessSend({\n payload,\n meta,\n}: ReturnType) {\n try {\n const token: UserReducerState['signToken'] = yield select(selectSignToken);\n\n const response: DocumentForSigners = yield call(\n DocumentSignApiService.sendCodeAccess,\n { payload, token },\n );\n\n yield put(sendCodeAccess.success(response, meta));\n } catch (error) {\n yield put(sendCodeAccess.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(sendCodeAccess.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleSigningUrlGet({\n payload,\n meta,\n}: ReturnType) {\n try {\n const response: SigningUrlPayload = yield call(\n DocumentSignApiService.getSignigUrl,\n payload,\n );\n\n yield put(getSigningUrl.success(response, meta));\n } catch (error) {\n yield put(getSigningUrl.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(getSigningUrl.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleSigningRemindersUnlink({\n payload,\n meta,\n}: ReturnType) {\n try {\n const token: UserReducerState['signToken'] = yield select(selectSignToken);\n const response: SigningRemindersUnlinkPayload = yield call(\n DocumentSignApiService.unlinkSigningReminders,\n { token, payload },\n );\n\n yield put(unlinkSigningReminders.success(response, meta));\n } catch (error) {\n yield put(unlinkSigningReminders.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(unlinkSigningReminders.cancel(undefined, meta));\n }\n }\n}\n\nfunction* watchDocumentConvertionStatus({\n payload,\n meta,\n}: ReturnType) {\n try {\n const token: UserReducerState['signToken'] = yield select(selectSignToken);\n while (true) {\n const { cancel } = yield race({\n cancel: take(getType(getDocumentConvertionStatus.cancel)),\n throttle: delay(3000, true),\n });\n\n if (cancel) {\n break;\n }\n\n const { isFinished }: { isFinished: boolean } = yield call(\n DocumentSignApiService.getDocumentConvertionStatus,\n {\n payload,\n token,\n },\n );\n\n if (isFinished) {\n yield put(getDocumentConvertionStatus.success(isFinished, meta));\n break;\n }\n }\n } catch (err) {\n yield put(getDocumentConvertionStatus.failure(err, meta));\n } finally {\n if (yield cancelled()) {\n yield put(getDocumentConvertionStatus.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleDisableSiginigReminders({\n payload,\n meta,\n}: ReturnType) {\n try {\n const document = yield call(DocumentSignApiService.disableSigningReminders, {\n documentId: payload.grid.entityId,\n disableReminders: payload.disableReminders,\n });\n yield put(\n toggleEmailNotification.success({ ...payload.grid, documents: document }, meta),\n );\n } catch (error) {\n yield put(toggleEmailNotification.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(toggleEmailNotification.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleEmbedDocumentSendOut({\n payload,\n meta,\n}: ReturnType) {\n try {\n const token: UserReducerState['embedToken'] = yield select(selectEmbedToken);\n const document: Document = yield call(DocumentSignApiService.sendOutEmbedDocument, {\n token,\n payload,\n });\n\n yield put(sendOutEmbedDocument.success(document, meta));\n } catch (error) {\n yield put(sendOutEmbedDocument.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(sendOutEmbedDocument.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleEmbedDocumentPreviewPagesGet({\n payload,\n meta,\n}: ReturnType) {\n try {\n const token: UserReducerState['embedToken'] = yield select(selectEmbedToken);\n const res: DocumentPreviewPagesPayload = yield call(\n DocumentSignApiService.getEmbedDocumentPreviewPages,\n { token, payload },\n );\n\n yield put(getEmbedDocumentPreviewPages.success(res, meta));\n } catch (error) {\n yield put(getEmbedDocumentPreviewPages.failure(error, meta));\n }\n}\n\nexport default [\n takeLeading(getAvailableSignersOptions.request, handleAvailableSignersOptionsGet),\n takeLeading(getSignerDocument.request, handleSignerDocumentGet),\n takeLeading(getSigningDocument.request, handleSigningDocumentGet),\n takeLeading(submitSignedDocument.request, handleSubmitSignedDocument),\n takeLeading(declineSigningRequest.request, handleDeclineSigningRequest),\n takeLeading(getSigningUrl.request, handleSigningUrlGet),\n takeEvery(sendDocumentOut.request, handleDocumentSendOut),\n takeEvery(sendCodeAccess.request, handleCodeAccessSend),\n takeEvery(sendReminders.request, handleRemindersSend),\n takeLeading(sendSignatoryOpened.request, handleSignatoryOpenedSend),\n takeLeading(getDocumentPreviewPages.request, handleDocumentPreviewPagesGet),\n takeLatest(getDocumentShareUrl.request, handleDocumentShareUrlGet),\n takeLatest(shareDocument.request, handleDocumentShare),\n takeLatest(getDocumentConvertionStatus.request, watchDocumentConvertionStatus),\n takeEvery(toggleEmailNotification.request, handleDisableSiginigReminders),\n takeLatest(unlinkSigningReminders.request, handleSigningRemindersUnlink),\n takeEvery(sendOutEmbedDocument.request, handleEmbedDocumentSendOut),\n takeLeading(getEmbedDocumentPreviewPages.request, handleEmbedDocumentPreviewPagesGet),\n];\n","export enum RequestHistoryGetActionTypes {\n request = 'apiKey/GET_REQUEST_HISTORY/REQUEST',\n success = 'apiKey/GET_REQUEST_HISTORY/SUCCESS',\n failure = 'apiKey/GET_REQUEST_HISTORY/FAILURE',\n cancel = 'apiKey/GET_REQUEST_HISTORY/CANCEL',\n}\n","import {\n initDocumentSigning,\n finishDocumentSigning,\n getAvailableSignersOptions,\n $getAvailableSignersOptions,\n getSignerDocument,\n $getSignerDocument,\n getSigningDocument,\n $getSigningDocument,\n submitSignedDocument,\n $submitSignedDocument,\n declineSigningRequest,\n $declineSigningRequest,\n sendDocumentOut,\n $sendDocumentOut,\n sendReminders,\n $sendReminders,\n sendSignatoryOpened,\n $sendSignatoryOpened,\n getDocumentPreviewPages,\n $getDocumentPreviewPages,\n getDocumentShareUrl,\n $getDocumentShareUrl,\n shareDocument,\n $shareDocument,\n getDocumentConvertionStatus,\n $getDocumentConvertionStatus,\n $sendCodeAccess,\n $getSigningUrl,\n sendCodeAccess,\n getSigningUrl,\n unlinkSigningReminders,\n $unlinkSigningReminders,\n sendOutEmbedDocument,\n $sendOutEmbedDocument,\n getEmbedDocumentPreviewPages,\n $getEmbedDocumentPreviewPages,\n} from './actionCreators';\nimport sagas from './sagas';\n\nexport default {\n sagas,\n actions: {\n initDocumentSigning,\n finishDocumentSigning,\n getSignerDocument,\n getSigningDocument,\n submitSignedDocument,\n declineSigningRequest,\n getAvailableSignersOptions,\n sendDocumentOut,\n sendReminders,\n sendSignatoryOpened,\n getDocumentPreviewPages,\n getDocumentShareUrl,\n shareDocument,\n getDocumentConvertionStatus,\n sendCodeAccess,\n getSigningUrl,\n unlinkSigningReminders,\n sendOutEmbedDocument,\n getEmbedDocumentPreviewPages,\n },\n};\n\nexport const $actions = {\n getSignerDocument: $getSignerDocument,\n getSigningDocument: $getSigningDocument,\n submitSignedDocument: $submitSignedDocument,\n declineSigningRequest: $declineSigningRequest,\n getAvailableSignersOptions: $getAvailableSignersOptions,\n sendDocumentOut: $sendDocumentOut,\n sendReminders: $sendReminders,\n sendSignatoryOpened: $sendSignatoryOpened,\n getDocumentPreviewPages: $getDocumentPreviewPages,\n getDocumentShareUrl: $getDocumentShareUrl,\n shareDocument: $shareDocument,\n getDocumentConvertionStatus: $getDocumentConvertionStatus,\n sendCodeAccess: $sendCodeAccess,\n getSigningUrl: $getSigningUrl,\n unlinkSigningReminders: $unlinkSigningReminders,\n sendOutEmbedDocument: $sendOutEmbedDocument,\n getEmbedDocumentPreviewPages: $getEmbedDocumentPreviewPages,\n};\n","import { createAsyncAction } from 'typesafe-actions';\nimport { PromisifiedActionMeta, ActionError } from 'Interfaces/ActionCreators';\nimport { promisifyAsyncAction } from 'Utils/functions';\nimport { RequestHistoryGetActionTypes } from './actionTypes';\nimport { RequestHistoryData, RequestHistoryGetPayload } from 'Interfaces/RequestsHistory';\n\nexport const getRequestHistory = createAsyncAction(\n RequestHistoryGetActionTypes.request,\n RequestHistoryGetActionTypes.success,\n RequestHistoryGetActionTypes.failure,\n RequestHistoryGetActionTypes.cancel,\n)<\n [RequestHistoryGetPayload, PromisifiedActionMeta],\n [RequestHistoryData, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $getRequestHistory = promisifyAsyncAction(getRequestHistory);\n","import Api from './Api';\nimport { AxiosRequestConfig } from 'axios';\nimport { ApiKey } from 'Interfaces/ApiKey';\n\nclass RequestHistoryApi extends Api {\n getRequestHistory = (\n params: AxiosRequestConfig['params'],\n apiKeyId: ApiKey['id'],\n config?: AxiosRequestConfig,\n ) => this.request.get()(`api_keys/${apiKeyId}/request_history`, { params, ...config });\n}\n\nexport default new RequestHistoryApi();\n","import { put, call, takeLatest, cancelled } from 'redux-saga/effects';\nimport lodash from 'lodash';\nimport Axios from 'axios';\nimport { NormalizedEntity } from 'Interfaces/Common';\nimport { getRequestHistory } from './actionCreators';\nimport RequestHistoryApi from 'Services/Api/RequestHistory';\nimport { RequestHistoryItem } from 'Interfaces/RequestsHistory';\n\nfunction* handleRequestHistoryGet({\n payload,\n meta,\n}: ReturnType) {\n const cancelToken = Axios.CancelToken.source();\n const { apiKeyId, ...restParams } = payload;\n try {\n const { items, totalItems, pageCount, itemCount } = yield call(\n RequestHistoryApi.getRequestHistory,\n restParams,\n apiKeyId,\n {\n cancelToken: cancelToken.token,\n },\n );\n const normalizedRequestHistory: NormalizedEntity = lodash.keyBy(\n items,\n 'id',\n );\n\n yield put(\n getRequestHistory.success(\n {\n requestHistory: normalizedRequestHistory,\n paginationData: { totalItems, pageCount, itemsCount: itemCount },\n },\n meta,\n ),\n );\n } catch (error) {\n yield put(getRequestHistory.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(getRequestHistory.cancel(undefined, meta));\n cancelToken.cancel();\n }\n }\n}\n\nexport default [takeLatest(getRequestHistory.request, handleRequestHistoryGet)];\n","export enum ApiKeyCreateActionTypes {\n request = 'apiKey/CREATE/REQUEST',\n success = 'apiKey/CREATE/SUCCESS',\n failure = 'apiKey/CREATE/FAILURE',\n cancel = 'apiKey/CREATE/CANCEL',\n}\n\nexport enum ApiKeysGetActionTypes {\n request = 'apiKey/GET_API_KEYS/REQUEST',\n success = 'apiKey/GET_API_KEYS/SUCCESS',\n failure = 'apiKey/GET_API_KEYS/FAILURE',\n cancel = 'apiKey/GET_API_KEYS/CANCEL',\n}\n\nexport enum ApiKeysDeleteActionTypes {\n request = 'apiKey/DELETE_API_KEYS/REQUEST',\n success = 'apiKey/DELETE_API_KEYS/SUCCESS',\n failure = 'apiKey/DELETE_API_KEYS/FAILURE',\n cancel = 'apiKey/DELETE_API_KEYS/CANCEL',\n}\n\nexport enum ApiKeyDeleteActionTypes {\n request = 'apiKey/DELETE_API_KEY/REQUEST',\n success = 'apiKey/DELETE_API_KEY/SUCCESS',\n failure = 'apiKey/DELETE_API_KEY/FAILURE',\n cancel = 'apiKey/DELETE_API_KEY/CANCEL',\n}\n\nexport enum ApiKeyRevokeActionTypes {\n request = 'apiKey/REVOKE_API_KEY/REQUEST',\n success = 'apiKey/REVOKE_API_KEY/SUCCESS',\n failure = 'apiKey/REVOKE_API_KEY/FAILURE',\n cancel = 'apiKey/REVOKE_API_KEY/CANCEL',\n}\n\nexport enum ApiKeyRecoverActionTypes {\n request = 'apiKey/RECOVER_API_KEY/REQUEST',\n success = 'apiKey/RECOVER_API_KEY/SUCCESS',\n failure = 'apiKey/RECOVER_API_KEY/FAILURE',\n cancel = 'apiKey/RECOVER_API_KEY/CANCEL',\n}\n\nexport enum ApiKeyGetActionTypes {\n request = 'apiKey/GET_API_KEY/REQUEST',\n success = 'apiKey/GET_API_KEY/SUCCESS',\n failure = 'apiKey/GET_API_KEY/FAILURE',\n cancel = 'apiKey/GET_API_KEY/CANCEL',\n}\n","import sagas from './sagas';\nimport { $getRequestHistory, getRequestHistory } from './actionCreators';\nimport reducer from './reducer';\n\nexport default {\n sagas,\n reducer,\n actions: {\n getRequestHistory,\n },\n};\n\nexport const $actions = {\n getRequestHistory: $getRequestHistory,\n};\n","import { createReducer } from 'typesafe-actions';\nimport { NormalizedEntity } from 'Interfaces/Common';\nimport { getRequestHistory } from './actionCreators';\nimport { RequestHistoryItem } from 'Interfaces/RequestsHistory';\n\nexport default createReducer({} as NormalizedEntity).handleAction(\n getRequestHistory.success,\n (state, action) => ({\n ...action.payload.requestHistory,\n }),\n);\n","import { createAsyncAction } from 'typesafe-actions';\nimport { PromisifiedActionMeta, ActionError } from 'Interfaces/ActionCreators';\nimport {\n ApiKey,\n ApiKeyCreatePayload,\n ApiKeysData,\n ApiKeyIdPayload,\n ApiKeyCreateResult,\n ApiKeysGetPayload,\n} from 'Interfaces/ApiKey';\nimport { promisifyAsyncAction } from 'Utils/functions';\nimport {\n ApiKeyCreateActionTypes,\n ApiKeyGetActionTypes,\n ApiKeysGetActionTypes,\n ApiKeysDeleteActionTypes,\n ApiKeyDeleteActionTypes,\n ApiKeyRevokeActionTypes,\n ApiKeyRecoverActionTypes,\n} from './actionTypes';\n\nexport const createApiKey = createAsyncAction(\n ApiKeyCreateActionTypes.request,\n ApiKeyCreateActionTypes.success,\n ApiKeyCreateActionTypes.failure,\n ApiKeyCreateActionTypes.cancel,\n)<\n [ApiKeyCreatePayload, PromisifiedActionMeta],\n [ApiKeyCreateResult, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $createApiKey = promisifyAsyncAction(createApiKey);\n\nexport const getApiKeys = createAsyncAction(\n ApiKeysGetActionTypes.request,\n ApiKeysGetActionTypes.success,\n ApiKeysGetActionTypes.failure,\n ApiKeysGetActionTypes.cancel,\n)<\n [ApiKeysGetPayload, PromisifiedActionMeta],\n [ApiKeysData, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $getApiKeys = promisifyAsyncAction(getApiKeys);\n\nexport const getApiKey = createAsyncAction(\n ApiKeyGetActionTypes.request,\n ApiKeyGetActionTypes.success,\n ApiKeyGetActionTypes.failure,\n ApiKeyGetActionTypes.cancel,\n)<\n [ApiKeyIdPayload, PromisifiedActionMeta],\n [ApiKey, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $getApiKey = promisifyAsyncAction(getApiKey);\n\ninterface ApiKeysDeletePayload {\n apiKeyIds: string[];\n}\n\nexport const deleteApiKeys = createAsyncAction(\n ApiKeysDeleteActionTypes.request,\n ApiKeysDeleteActionTypes.success,\n ApiKeysDeleteActionTypes.failure,\n ApiKeysDeleteActionTypes.cancel,\n)<\n [ApiKeysDeletePayload, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $deleteApiKeys = promisifyAsyncAction(deleteApiKeys);\n\nexport const deleteApiKey = createAsyncAction(\n ApiKeyDeleteActionTypes.request,\n ApiKeyDeleteActionTypes.success,\n ApiKeyDeleteActionTypes.failure,\n ApiKeyDeleteActionTypes.cancel,\n)<\n [ApiKey['id'], PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $deleteApiKey = promisifyAsyncAction(deleteApiKey);\n\nexport const revokeApiKey = createAsyncAction(\n ApiKeyRevokeActionTypes.request,\n ApiKeyRevokeActionTypes.success,\n ApiKeyRevokeActionTypes.failure,\n ApiKeyRevokeActionTypes.cancel,\n)<\n [ApiKey['id'], PromisifiedActionMeta],\n [ApiKey, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $revokeApiKey = promisifyAsyncAction(revokeApiKey);\n\nexport const recoverApiKey = createAsyncAction(\n ApiKeyRecoverActionTypes.request,\n ApiKeyRecoverActionTypes.success,\n ApiKeyRecoverActionTypes.failure,\n ApiKeyRecoverActionTypes.cancel,\n)<\n [ApiKey['id'], PromisifiedActionMeta],\n [ApiKey, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $recoverApiKey = promisifyAsyncAction(recoverApiKey);\n","import Api from './Api';\nimport { ApiKey, ApiKeyCreatePayload, ApiKeyIdPayload } from 'Interfaces/ApiKey';\nimport { AxiosRequestConfig } from 'axios';\n\nexport class ApiKeyApi extends Api {\n getApiKeys = (params: AxiosRequestConfig['params'], config?: AxiosRequestConfig) =>\n this.request.get()('api_keys', { params, ...config });\n\n getApiKey = (payload: ApiKeyIdPayload) =>\n this.request.get()(`api_keys/${payload.apiKeyId}`);\n\n createApiKey = (payload: ApiKeyCreatePayload) =>\n this.request.post()('api_keys/create', payload);\n\n deleteApiKeys = (apiKeyIds: string[]) => {\n return this.request.delete()(`api_keys`, {\n data: { ids: apiKeyIds },\n });\n };\n\n deleteApiKey = (id: string) => {\n return this.request.delete()(`api_keys/${id}`);\n };\n\n revokeApiKey = (id: string) => {\n return this.request.delete()(`api_keys/revoke/${id}`);\n };\n\n recoverApiKey = (id: string) => {\n return this.request.post()(`api_keys/recover/${id}`);\n };\n}\n\nexport default new ApiKeyApi();\n","import {\n put,\n call,\n takeLeading,\n takeLatest,\n takeEvery,\n cancelled,\n} from 'redux-saga/effects';\nimport lodash from 'lodash';\nimport Axios from 'axios';\nimport { NormalizedEntity } from 'Interfaces/Common';\nimport { ApiKey } from 'Interfaces/ApiKey';\nimport {\n createApiKey,\n getApiKeys,\n getApiKey,\n deleteApiKeys,\n deleteApiKey,\n revokeApiKey,\n recoverApiKey,\n} from './actionCreators';\nimport ApiKeyApiService from 'Services/Api/ApiKeys';\n\nfunction* handleApiKeysGet({ payload, meta }: ReturnType) {\n const cancelToken = Axios.CancelToken.source();\n\n try {\n const { items, totalItems, totalPages, itemCount } = yield call(\n ApiKeyApiService.getApiKeys,\n payload,\n {\n cancelToken: cancelToken.token,\n },\n );\n const normalizedApiKeys: NormalizedEntity = lodash.keyBy(items, 'id');\n\n yield put(\n getApiKeys.success(\n {\n apiKeys: normalizedApiKeys,\n paginationData: { totalItems, pageCount: totalPages, itemsCount: itemCount },\n },\n meta,\n ),\n );\n } catch (error) {\n yield put(getApiKeys.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(getApiKeys.cancel(undefined, meta));\n cancelToken.cancel();\n }\n }\n}\n\nfunction* handleApiKeyGet({ payload, meta }: ReturnType) {\n try {\n const apiKey: ApiKey = yield call(ApiKeyApiService.getApiKey, payload);\n yield put(getApiKey.success(apiKey, meta));\n } catch (error) {\n yield put(getApiKey.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(getApiKey.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleApiKeyCreate({ payload, meta }: ReturnType) {\n try {\n const apiKey = yield call(ApiKeyApiService.createApiKey, payload);\n\n yield put(createApiKey.success(apiKey, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(createApiKey.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(createApiKey.cancel(undefined, { ...meta, isLeading: true }));\n }\n }\n}\n\nfunction* handleApiKeysDelete({\n payload,\n meta,\n}: ReturnType) {\n try {\n yield call(ApiKeyApiService.deleteApiKeys, payload.apiKeyIds);\n yield put(deleteApiKeys.success(undefined, meta));\n } catch (error) {\n yield put(deleteApiKeys.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(deleteApiKeys.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleApiKeyDelete({ payload, meta }: ReturnType) {\n try {\n yield call(ApiKeyApiService.deleteApiKey, payload);\n yield put(deleteApiKey.success(undefined, meta));\n } catch (error) {\n yield put(deleteApiKey.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(deleteApiKey.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleApiKeyRevoke({ payload, meta }: ReturnType) {\n try {\n const apiKey = yield call(ApiKeyApiService.revokeApiKey, payload);\n yield put(revokeApiKey.success(apiKey, meta));\n } catch (error) {\n yield put(revokeApiKey.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(revokeApiKey.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleApiKeyRecover({\n payload,\n meta,\n}: ReturnType) {\n try {\n const apiKey = yield call(ApiKeyApiService.recoverApiKey, payload);\n yield put(recoverApiKey.success(apiKey, meta));\n } catch (error) {\n yield put(recoverApiKey.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(recoverApiKey.cancel(undefined, meta));\n }\n }\n}\n\nexport default [\n takeLatest(getApiKeys.request, handleApiKeysGet),\n takeLatest(deleteApiKey.request, handleApiKeyDelete),\n takeLatest(revokeApiKey.request, handleApiKeyRevoke),\n takeLatest(recoverApiKey.request, handleApiKeyRecover),\n takeEvery(getApiKey.request, handleApiKeyGet),\n takeLeading(createApiKey.request, handleApiKeyCreate),\n takeLeading(deleteApiKeys.request, handleApiKeysDelete),\n];\n","export enum GridGetActionTypes {\n request = 'grid/GET/REQUEST',\n success = 'grid/GET/SUCCESS',\n failure = 'grid/GET/FAILURE',\n cancel = 'grid/GET/CANCEL',\n}\n\nexport enum GridGetForSignatureRequestsActionTypes {\n request = 'grid/GET_GRIDS_FOR_SIGNATURE_REQUESTS/REQUEST',\n success = 'grid/GET_GRIDS_FOR_SIGNATURE_REQUESTS/SUCCESS',\n failure = 'grid/GET_GRIDS_FOR_SIGNATURE_REQUESTS/FAILURE',\n cancel = 'grid/GET_GRIDS_FOR_SIGNATURE_REQUESTS/CANCEL',\n}\n\nexport enum GridUpdateActionTypes {\n request = 'grid/UPDATE/REQUEST',\n success = 'grid/UPDATE/SUCCESS',\n failure = 'grid/UPDATE/FAILURE',\n cancel = 'grid/UPDATE/CANCEL',\n}\n\nexport enum GridItemsDeleteActionTypes {\n request = 'grid/DELETE/REQUEST',\n success = 'grid/DELETE/SUCCESS',\n failure = 'grid/DELETE/FAILURE',\n cancel = 'grid/DELETE/CANCEL',\n}\n\nexport enum GridItemsMoveToTrashActionTypes {\n request = 'grid/MOVE_TO_TRASH/REQUEST',\n success = 'grid/MOVE_TO_TRASH/SUCCESS',\n failure = 'grid/MOVE_TO_TRASH/FAILURE',\n cancel = 'grid/MOVE_TO_TRASH/CANCEL',\n}\n\nexport enum EmptyTrashActionTypes {\n request = 'grid/EMPTY_TRASH/REQUEST',\n success = 'grid/EMPTY_TRASH/SUCCESS',\n failure = 'grid/EMPTY_TRASH/FAILURE',\n cancel = 'grid/EMPTY_TRASH/CANCEL',\n}\n","import sagas from './sagas';\nimport {\n createApiKey,\n getApiKey,\n getApiKeys,\n deleteApiKeys,\n $createApiKey,\n $getApiKey,\n $getApiKeys,\n $deleteApiKeys,\n $deleteApiKey,\n deleteApiKey,\n $revokeApiKey,\n revokeApiKey,\n recoverApiKey,\n $recoverApiKey,\n} from './actionCreators';\nimport reducer from './reducer';\n\nexport default {\n sagas,\n reducer,\n actions: {\n createApiKey,\n deleteApiKey,\n revokeApiKey,\n getApiKey,\n getApiKeys,\n deleteApiKeys,\n recoverApiKey,\n },\n};\n\nexport const $actions = {\n createApiKey: $createApiKey,\n getApiKey: $getApiKey,\n getApiKeys: $getApiKeys,\n deleteApiKeys: $deleteApiKeys,\n deleteApiKey: $deleteApiKey,\n revokeApiKey: $revokeApiKey,\n recoverApiKey: $recoverApiKey,\n};\n","import { createReducer } from 'typesafe-actions';\nimport { NormalizedEntity } from 'Interfaces/Common';\nimport { ApiKey } from 'Interfaces/ApiKey';\nimport {\n createApiKey,\n getApiKey,\n getApiKeys,\n recoverApiKey,\n revokeApiKey,\n} from './actionCreators';\n\nexport default createReducer({} as NormalizedEntity)\n .handleAction([createApiKey.success, getApiKey.success], (state, action) => ({\n ...state,\n [action.payload.id]: action.payload,\n }))\n .handleAction(getApiKeys.success, (state, action) => ({\n ...action.payload.apiKeys,\n }))\n .handleAction([revokeApiKey.success, recoverApiKey.success], (state, action) => ({\n ...state,\n [action.payload.id]: { ...state[action.payload.id], ...action.payload },\n }));\n","import { createAsyncAction, createAction } from 'typesafe-actions';\nimport { PromisifiedActionMeta, ActionError } from 'Interfaces/ActionCreators';\nimport { promisifyAsyncAction } from 'Utils/functions';\nimport {\n GridGetActionTypes,\n GridItemsDeleteActionTypes,\n GridUpdateActionTypes,\n GridGetForSignatureRequestsActionTypes,\n GridItemsMoveToTrashActionTypes,\n EmptyTrashActionTypes,\n} from './actionTypes';\nimport {\n GridData,\n GridGetPayload,\n GridGetForSignatureRequestsPayload,\n GridItem,\n GridItemsDeletePayload,\n GridUpdatePayload,\n} from 'Interfaces/Grid';\n\nexport const getGrid = createAsyncAction(\n GridGetActionTypes.request,\n GridGetActionTypes.success,\n GridGetActionTypes.failure,\n GridGetActionTypes.cancel,\n)<\n [GridGetPayload, PromisifiedActionMeta],\n [GridData, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $getGrid = promisifyAsyncAction(getGrid);\n\nexport const getGridForSignatureRequests = createAsyncAction(\n GridGetForSignatureRequestsActionTypes.request,\n GridGetForSignatureRequestsActionTypes.success,\n GridGetForSignatureRequestsActionTypes.failure,\n GridGetForSignatureRequestsActionTypes.cancel,\n)<\n [GridGetForSignatureRequestsPayload, PromisifiedActionMeta],\n [GridData, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $getGridForSignatureRequests = promisifyAsyncAction(\n getGridForSignatureRequests,\n);\n\nexport const setCurrentFolderId = createAction(\n 'grid/setCurrentFolderId',\n (payload: { id: string | undefined }) => payload,\n)();\n\nexport const updateGrid = createAsyncAction(\n GridUpdateActionTypes.request,\n GridUpdateActionTypes.success,\n GridUpdateActionTypes.failure,\n GridUpdateActionTypes.cancel,\n)<\n [GridUpdatePayload, PromisifiedActionMeta],\n [GridItem, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $updateGrid = promisifyAsyncAction(updateGrid);\n\nexport const deleteGridItems = createAsyncAction(\n GridItemsDeleteActionTypes.request,\n GridItemsDeleteActionTypes.success,\n GridItemsDeleteActionTypes.failure,\n GridItemsDeleteActionTypes.cancel,\n)<\n [GridItemsDeletePayload, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $deleteGridItems = promisifyAsyncAction(deleteGridItems);\n\nexport const moveToTrashGridItems = createAsyncAction(\n GridItemsMoveToTrashActionTypes.request,\n GridItemsMoveToTrashActionTypes.success,\n GridItemsMoveToTrashActionTypes.failure,\n GridItemsMoveToTrashActionTypes.cancel,\n)<\n [GridItemsDeletePayload, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $moveToTrashGridItems = promisifyAsyncAction(moveToTrashGridItems);\n\nexport const emptyTrash = createAsyncAction(\n EmptyTrashActionTypes.request,\n EmptyTrashActionTypes.success,\n EmptyTrashActionTypes.failure,\n EmptyTrashActionTypes.cancel,\n)<\n [undefined, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $emptyTrash = promisifyAsyncAction(emptyTrash);\n","export const redirectToBillingType = 'company/REDIRECT_TO_BILLING';\n\nexport enum GetCompanyInfoActionTypes {\n request = 'user/GET_COMPANY_INFO/REQUEST',\n success = 'user/GET_COMPANY_INFO/SUCCESS',\n failure = 'user/GET_COMPANY_INFO/FAILURE',\n cancel = 'user/GET_COMPANY_INFO/CANCEL',\n}\n","import reducer from './reducer';\n\nexport default {\n reducer,\n};\n","import { createReducer } from 'typesafe-actions';\nimport { PaginationData } from 'Interfaces/Common';\nimport { getFormRequests } from '../document/actionCreators';\nimport { getApiKeys } from '../apiKey/actionCreators';\nimport { getRequestHistory } from '../requestHistory/actionCreators';\nimport { setIsEmailConfirmed } from '../user/actionCreators';\nimport {\n getGrid,\n getGridForSignatureRequests,\n setCurrentFolderId,\n} from '../grid/actionCreators';\nimport { getInvoices } from '../billing/actionCreators';\n\ninterface MetaReducer {\n documents: PaginationData;\n templates: PaginationData;\n apiKeys: PaginationData;\n requestHistory: PaginationData;\n isEmailConfirmed: boolean;\n grid: PaginationData;\n currentFolderId: string | undefined;\n}\n\nexport default createReducer({\n documents: {},\n templates: {},\n apiKeys: {},\n grid: {},\n requestHistory: {},\n isEmailConfirmed: false,\n} as MetaReducer)\n .handleAction(getFormRequests.success, (state, { payload }) => ({\n ...state,\n documents: payload.paginationData,\n }))\n .handleAction(getApiKeys.success, (state, { payload }) => ({\n ...state,\n apiKeys: payload.paginationData,\n }))\n .handleAction(getRequestHistory.success, (state, { payload }) => ({\n ...state,\n requestHistory: payload.paginationData,\n }))\n .handleAction(getInvoices.success, (state, { payload }) => ({\n ...state,\n invoices: payload.paginationData,\n }))\n .handleAction(setIsEmailConfirmed, (state, { payload }) => ({\n ...state,\n isEmailConfirmed: payload,\n }))\n .handleAction(\n [getGrid.success, getGridForSignatureRequests.success],\n (state, { payload }) => ({\n ...state,\n grid: payload.paginationData,\n }),\n )\n .handleAction(setCurrentFolderId, (state, { payload }) => ({\n ...state,\n currentFolderId: payload.id,\n }));\n","import { createAction, createAsyncAction } from 'typesafe-actions';\nimport { GetCompanyInfoActionTypes, redirectToBillingType } from './actionTypes';\nimport { ActionError, PromisifiedActionMeta } from 'Interfaces/ActionCreators';\nimport { Company } from 'Interfaces/User';\nimport { promisifyAsyncAction } from 'Utils/functions';\n\nexport const redirectToBilling = createAction(redirectToBillingType)();\n\nexport const getCompanyInfo = createAsyncAction(\n GetCompanyInfoActionTypes.request,\n GetCompanyInfoActionTypes.success,\n GetCompanyInfoActionTypes.failure,\n GetCompanyInfoActionTypes.cancel,\n)<\n [undefined, PromisifiedActionMeta],\n [Company, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $getCompanyInfo = promisifyAsyncAction(getCompanyInfo);\n","import { createReducer } from 'typesafe-actions';\nimport { getCompanyInfo, redirectToBilling } from './actionCreators';\nimport { Company } from 'Interfaces/User';\n\ninterface CompanyReducer extends Company {\n isRedirect: boolean;\n}\n\nexport default createReducer({\n isRedirect: false,\n signatureTypesPreferences: {},\n signerAccessCodesPreferences: {},\n} as CompanyReducer)\n .handleAction([redirectToBilling], (state, action) => ({\n ...state,\n isRedirect: action.payload,\n }))\n .handleAction([getCompanyInfo.success], (state, action) => ({\n ...state,\n ...action.payload,\n }));\n","import { call, cancelled, put, takeLeading } from 'redux-saga/effects';\nimport { User } from 'Interfaces/User';\nimport UserApiService from 'Services/Api/User';\nimport { getCompanyInfo } from './actionCreators';\nimport {\n confirmEmail,\n confirmEmailByTwilio,\n getCurrentUser,\n ltdSignUp,\n signInAppSumoUser,\n signInGoogleAuthenticator,\n signInPrimary,\n signInTwillio,\n signUp,\n} from '../user/actionCreators';\nimport { isUserResponseData } from 'Utils/typeGuards';\nimport { AuthResponseData } from 'Interfaces/Auth';\nimport { CurrentUserGetActionTypes } from '../user/actionTypes';\n\ntype GetCompanyTriggers =\n | typeof getCurrentUser.success\n | typeof signInAppSumoUser.success\n | typeof signInPrimary.success\n | typeof signInTwillio.success\n | typeof signInGoogleAuthenticator.success\n | typeof signUp.success\n | typeof confirmEmail.success\n | typeof confirmEmailByTwilio.success\n | typeof ltdSignUp.success;\n\nfunction* handleCompanyInfoGet({ payload, meta, type }: ReturnType) {\n try {\n if (\n type === CurrentUserGetActionTypes.success ||\n isUserResponseData(payload as AuthResponseData)\n ) {\n const result: User = yield call(UserApiService.getCompanyInfo);\n yield put(getCompanyInfo.success(result, { ...meta, isLeading: true }));\n }\n } catch (error) {\n yield put(getCompanyInfo.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(getCompanyInfo.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handletCompanyInfoGetForcedly({\n meta,\n}: ReturnType) {\n try {\n const result: User = yield call(UserApiService.getCompanyInfo);\n yield put(getCompanyInfo.success(result, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(getCompanyInfo.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(getCompanyInfo.cancel(undefined, meta));\n }\n }\n}\n\nexport default [\n takeLeading(getCurrentUser.success, handleCompanyInfoGet),\n takeLeading(signInAppSumoUser.success, handleCompanyInfoGet),\n takeLeading(signInPrimary.success, handleCompanyInfoGet),\n takeLeading(signInTwillio.success, handleCompanyInfoGet),\n takeLeading(signInGoogleAuthenticator.success, handleCompanyInfoGet),\n takeLeading(signUp.success, handleCompanyInfoGet),\n takeLeading(confirmEmail.success, handleCompanyInfoGet),\n takeLeading(confirmEmailByTwilio.success, handleCompanyInfoGet),\n takeLeading(ltdSignUp.success, handleCompanyInfoGet),\n takeLeading(getCompanyInfo.request, handletCompanyInfoGetForcedly),\n];\n","export enum DocumentGetFormRequestContractsActionTypes {\n request = 'document/form-request-contracts/GET/REQUEST',\n success = 'document/form-request-contracts/GET/SUCCESS',\n failure = 'document/form-request-contracts/GET/FAILURE',\n cancel = 'document/form-request-contracts/GET/CANCEL',\n}\n","import { $getCompanyInfo, getCompanyInfo, redirectToBilling } from './actionCreators';\n\nimport reducer from './reducer';\nimport sagas from './sagas';\n\nexport default {\n reducer,\n sagas,\n actions: {\n redirectToBilling,\n getCompanyInfo,\n },\n};\n\nexport const $actions = {\n getCompanyInfo: $getCompanyInfo,\n};\n","import { createAsyncAction, createAction } from 'typesafe-actions';\nimport { PromisifiedActionMeta, ActionError } from 'Interfaces/ActionCreators';\nimport { ContractsPayload } from 'Interfaces/Contract';\nimport { promisifyAsyncAction } from 'Utils/functions';\nimport { DocumentGetFormRequestContractsActionTypes } from './actionTypes';\nimport { Contract } from 'Interfaces/Contract';\nimport { NormalizedEntity } from 'Interfaces/Common';\n\nexport const getFormRequestContracts = createAsyncAction(\n DocumentGetFormRequestContractsActionTypes.request,\n DocumentGetFormRequestContractsActionTypes.success,\n DocumentGetFormRequestContractsActionTypes.failure,\n DocumentGetFormRequestContractsActionTypes.cancel,\n)<\n [ContractsPayload, PromisifiedActionMeta],\n [NormalizedEntity, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\nexport const $getFormRequestContracts = promisifyAsyncAction(getFormRequestContracts);\n","import { put, call, takeEvery, cancelled } from 'redux-saga/effects';\nimport DocumentApiService from 'Services/Api/Document';\n\nimport { getFormRequestContracts } from './actionCreators';\n\nfunction* handleFormRequestContractsGet({\n payload,\n meta,\n}: ReturnType) {\n try {\n const data = yield call(DocumentApiService.getFormRequestContracts, payload);\n\n yield put(getFormRequestContracts.success({ contracts: data }, meta));\n } catch (err) {\n yield put(getFormRequestContracts.failure(err, meta));\n } finally {\n if (yield cancelled()) {\n yield put(getFormRequestContracts.cancel(undefined, meta));\n }\n }\n}\n\nexport default [\n takeEvery(getFormRequestContracts.request, handleFormRequestContractsGet),\n];\n","export enum FolderCreateActionTypes {\n request = 'folder/CREATE/REQUEST',\n success = 'folder/CREATE/SUCCESS',\n failure = 'folder/CREATE/FAILURE',\n cancel = 'folder/CREATE/CANCEL',\n}\n\nexport enum FolderUpdateActionTypes {\n request = 'folder/UPDATE/REQUEST',\n success = 'folder/UPDATE/SUCCESS',\n failure = 'folder/UPDATE/FAILURE',\n cancel = 'folder/UPDATE/CANCEL',\n}\n\nexport enum FoldersDeleteActionTypes {\n request = 'folders/DELETE/REQUEST',\n success = 'folders/DELETE/SUCCESS',\n failure = 'folders/DELETE/FAILURE',\n cancel = 'folders/DELETE/CANCEL',\n}\n\nexport enum FolderInfoGetActionTypes {\n request = 'folderInfo/GET/REQUEST',\n success = 'folderInfo/GET/SUCCESS',\n failure = 'folderInfo/GET/FAILURE',\n cancel = 'folderInfo/GET/CANCEL',\n}\n\nexport enum FolderGetActionTypes {\n request = 'folder/GET/REQUEST',\n success = 'folder/GET/SUCCESS',\n failure = 'folder/GET/FAILURE',\n cancel = 'folder/GET/CANCEL',\n}\n\nexport enum FolderChangePermissionActionTypes {\n request = 'folder/CHANGE_PERMISSIONS/REQUEST',\n success = 'folder/CHANGE_PERMISSIONS/SUCCESS',\n failure = 'folder/CHANGE_PERMISSIONS/FAILURE',\n cancel = 'folder/CHANGE_PERMISSIONS/CANCEL',\n}\n","import sagas from './sagas';\nimport { getFormRequestContracts, $getFormRequestContracts } from './actionCreators';\nimport reducer from './reducer';\n\nexport default {\n sagas,\n reducer,\n actions: {\n getFormRequestContracts,\n },\n};\n\nexport const $actions = {\n getFormRequestContracts: $getFormRequestContracts,\n};\n","import { createReducer } from 'typesafe-actions';\n\nimport { getFormRequestContracts } from './actionCreators';\nimport { Contract } from 'Interfaces/Contract';\n\nexport default createReducer({} as Contract).handleAction(\n getFormRequestContracts.success,\n (state, action) => ({\n ...action.payload.contracts,\n }),\n);\n","import { createAsyncAction, createAction } from 'typesafe-actions';\nimport { PromisifiedActionMeta, ActionError } from 'Interfaces/ActionCreators';\nimport { promisifyAsyncAction } from 'Utils/functions';\nimport {\n FolderChangePermissionActionTypes,\n FolderCreateActionTypes,\n FolderGetActionTypes,\n FolderInfoGetActionTypes,\n FoldersDeleteActionTypes,\n FolderUpdateActionTypes,\n} from './actionTypes';\nimport {\n Folder,\n FolderCreatePayload,\n FolderIdPayload,\n FolderInfo,\n FoldersDeletePayload,\n FolderUpdatePayload,\n FoldersData,\n FolderChangePermissionsPayload,\n} from 'Interfaces/Folder';\n\nexport const createFolder = createAsyncAction(\n FolderCreateActionTypes.request,\n FolderCreateActionTypes.success,\n FolderCreateActionTypes.failure,\n FolderCreateActionTypes.cancel,\n)<\n [FolderCreatePayload, PromisifiedActionMeta],\n [Folder, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $createFolder = promisifyAsyncAction(createFolder);\n\nexport const changePermissions = createAsyncAction(\n FolderChangePermissionActionTypes.request,\n FolderChangePermissionActionTypes.success,\n FolderChangePermissionActionTypes.failure,\n FolderChangePermissionActionTypes.cancel,\n)<\n [FolderChangePermissionsPayload, PromisifiedActionMeta],\n [Folder, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $changePermissions = promisifyAsyncAction(changePermissions);\n\nexport const updateFolder = createAsyncAction(\n FolderUpdateActionTypes.request,\n FolderUpdateActionTypes.success,\n FolderUpdateActionTypes.failure,\n FolderUpdateActionTypes.cancel,\n)<\n [FolderUpdatePayload, PromisifiedActionMeta],\n [Folder, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $updateFolder = promisifyAsyncAction(updateFolder);\n\nexport const deleteFolders = createAsyncAction(\n FoldersDeleteActionTypes.request,\n FoldersDeleteActionTypes.success,\n FoldersDeleteActionTypes.failure,\n FoldersDeleteActionTypes.cancel,\n)<\n [FoldersDeletePayload, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $deleteFolders = promisifyAsyncAction(deleteFolders);\n\nexport const getFolderInfo = createAsyncAction(\n FolderInfoGetActionTypes.request,\n FolderInfoGetActionTypes.success,\n FolderInfoGetActionTypes.failure,\n FolderInfoGetActionTypes.cancel,\n)<\n [Folder['id'], PromisifiedActionMeta],\n [FolderInfo, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $getFolderInfo = promisifyAsyncAction(getFolderInfo);\n\nexport const getFolder = createAsyncAction(\n FolderGetActionTypes.request,\n FolderGetActionTypes.success,\n FolderGetActionTypes.failure,\n FolderGetActionTypes.cancel,\n)<\n [FolderIdPayload, PromisifiedActionMeta],\n [FoldersData, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $getFolder = promisifyAsyncAction(getFolder);\n","import { AxiosRequestConfig } from 'axios';\nimport {\n Folder,\n FolderChangePermissionsPayload,\n FolderCreatePayload,\n FolderInfo,\n FolderUpdatePayload,\n} from 'Interfaces/Folder';\nimport Api from './Api';\n\nexport class FolderApi extends Api {\n createFolder = (values: FolderCreatePayload) =>\n this.request.post()('folders/create', values);\n\n changePermissions = (values: FolderChangePermissionsPayload) => {\n const { gridId, ...payload } = values;\n return this.request.patch()(`grids/${gridId}/permissions`, payload);\n };\n\n updateFolder = (values: FolderUpdatePayload) => {\n const { folderId, ...payload } = values;\n\n return this.request.patch()(`folders/${folderId}`, payload);\n };\n\n deleteFolders = (folderIds: string[]) => {\n return this.request.delete()(`folders/delete`, {\n data: { folderIds },\n });\n };\n\n getFolderInfo = (payload: Folder['id']) =>\n this.request.get()(`folders/info/${payload}`);\n\n getFolder = (params: AxiosRequestConfig['params']) =>\n this.request.get()(`folders`, { params });\n}\n\nexport default new FolderApi();\n","import { put, call, takeLeading, cancelled, takeEvery } from 'redux-saga/effects';\nimport lodash from 'lodash';\nimport {\n changePermissions,\n createFolder,\n deleteFolders,\n getFolder,\n getFolderInfo,\n updateFolder,\n} from './actionCreators';\nimport FolderApi from 'Services/Api/Folder';\nimport { NormalizedEntity } from 'Interfaces/Common';\nimport { Folder } from 'Interfaces/Folder';\n\nfunction* handleFolderCreate({ payload, meta }: ReturnType) {\n try {\n const folder = yield call(FolderApi.createFolder, payload);\n\n yield put(createFolder.success(folder, { ...meta, isLeading: true }));\n } catch (error) {\n yield put(createFolder.failure(error, { ...meta, isLeading: true }));\n } finally {\n if (yield cancelled()) {\n yield put(createFolder.cancel(undefined, { ...meta, isLeading: true }));\n }\n }\n}\n\nfunction* handleFolderChangePermission({\n payload,\n meta,\n}: ReturnType) {\n try {\n const folder = yield call(FolderApi.changePermissions, payload);\n yield put(changePermissions.success(folder, meta));\n } catch (error) {\n yield put(changePermissions.failure(error, meta));\n } finally {\n yield put(changePermissions.cancel(undefined, meta));\n }\n}\n\nfunction* handleFolderUpdate({ payload, meta }: ReturnType) {\n try {\n const folder = yield call(FolderApi.updateFolder, payload);\n yield put(updateFolder.success(folder, meta));\n } catch (error) {\n yield put(updateFolder.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(updateFolder.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleFoldersDelete({\n payload,\n meta,\n}: ReturnType) {\n try {\n yield call(FolderApi.deleteFolders, payload.folderIds);\n yield put(deleteFolders.success(undefined, meta));\n } catch (error) {\n yield put(deleteFolders.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(deleteFolders.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleFolderInfoGet({\n payload,\n meta,\n}: ReturnType) {\n try {\n const folderInfo = yield call(FolderApi.getFolderInfo, payload);\n yield put(getFolderInfo.success(folderInfo, meta));\n } catch (error) {\n yield put(getFolderInfo.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(getFolderInfo.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleFolderGet({ payload, meta }: ReturnType) {\n try {\n const folders = yield call(FolderApi.getFolder, payload);\n const normalizedFolders: NormalizedEntity = lodash.keyBy(folders, 'id');\n yield put(getFolder.success({ folders: normalizedFolders }, meta));\n } catch (error) {\n yield put(getFolder.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(getFolder.cancel(undefined, meta));\n }\n }\n}\n\nexport default [\n takeLeading(createFolder.request, handleFolderCreate),\n takeLeading(deleteFolders.request, handleFoldersDelete),\n takeEvery(changePermissions.request, handleFolderChangePermission),\n takeEvery(updateFolder.request, handleFolderUpdate),\n takeEvery(getFolderInfo.request, handleFolderInfoGet),\n takeEvery(getFolder.request, handleFolderGet),\n];\n","import { NormalizedEntity, PaginationData } from './Common';\nimport { Document, DocumentTypes, FormRequestsGetPayload } from './Document';\nimport { Folder } from './Folder';\nimport { SignatureRequest, SignatureRequestStatuses } from './SignatureRequest';\n\nexport enum GridEntityType {\n DOCUMENT = 'document',\n FOLDER = 'folder',\n SIGNATURE_REQUEST = 'signature_request',\n}\n\nexport interface GridItem {\n id: string;\n entityId: string;\n entityType: GridEntityType;\n createdAt: string;\n folders?: Folder;\n documents?: Document;\n permissions: Permission[];\n signatureRequests?: SignatureRequest;\n chunkIndex?: number;\n}\n\nexport interface Permission {\n id: string;\n userId: string;\n gridId: string;\n}\n\nexport interface GridGetPayload extends FormRequestsGetPayload {\n type?: DocumentTypes[];\n folderId?: Folder['id'] | undefined;\n deleted?: boolean;\n}\n\nexport interface GridGetForSignatureRequestsPayload extends FormRequestsGetPayload {\n type?: DocumentTypes[];\n folderId?: Folder['id'] | undefined;\n signatureRequestStatus?: SignatureRequestStatuses[];\n}\n\nexport interface GridData {\n grid: NormalizedEntity;\n paginationData: PaginationData;\n}\n\nexport interface SelectableGridItems extends GridItem {\n isSelected: boolean;\n}\n\nexport interface GridUpdatePayload {\n entityIds: string[] | undefined[];\n parentId?: Folder['id'];\n}\n\nexport interface GridItemsDeletePayload {\n entityIds: string[];\n}\n","import sagas from './sagas';\nimport {\n createFolder,\n updateFolder,\n changePermissions,\n $createFolder,\n $updateFolder,\n deleteFolders,\n $deleteFolders,\n getFolderInfo,\n $getFolderInfo,\n getFolder,\n $getFolder,\n $changePermissions,\n} from './actionCreators';\nimport reducer from './reducer';\n\nexport default {\n sagas,\n reducer,\n actions: {\n createFolder,\n changePermissions,\n updateFolder,\n deleteFolders,\n getFolderInfo,\n getFolder,\n },\n};\n\nexport const $actions = {\n createFolder: $createFolder,\n changePermissions: $changePermissions,\n updateFolder: $updateFolder,\n deleteFolders: $deleteFolders,\n getFolderInfo: $getFolderInfo,\n getFolder: $getFolder,\n};\n","import { createReducer } from 'typesafe-actions';\nimport { NormalizedEntity } from 'Interfaces/Common';\nimport {\n changePermissions,\n createFolder,\n getFolder,\n getFolderInfo,\n updateFolder,\n} from './actionCreators';\n\nimport { Folder, FolderInfo } from 'Interfaces/Folder';\n\nexport default createReducer({} as NormalizedEntity)\n .handleAction(\n [\n createFolder.success,\n updateFolder.success,\n getFolderInfo.success,\n changePermissions.success,\n ],\n (state, action) => ({\n ...state,\n [action.payload.id]: action.payload,\n }),\n )\n .handleAction(getFolder.success, (state, action) => ({\n ...action.payload.folders,\n }));\n","import { AxiosRequestConfig } from 'axios';\nimport { GridItem, GridUpdatePayload } from 'Interfaces/Grid';\nimport Api from './Api';\n\nexport class GridApi extends Api {\n getGrid = (params: AxiosRequestConfig['params'], config?: AxiosRequestConfig) =>\n this.request.get()('grids', { params, ...config });\n\n getGridForSignatureRequests = (\n params: AxiosRequestConfig['params'],\n config?: AxiosRequestConfig,\n ) => this.request.get()('grids/signature_request', { params, ...config });\n\n updateGrid = (payload: GridUpdatePayload) => {\n if (payload.entityIds.length) {\n return this.request.patch()(`grids`, payload);\n }\n };\n\n deleteGridItems = (entityIds: string[]) => {\n return this.request.delete()(`grids`, {\n data: { entityIds },\n });\n };\n\n moveToTrashGridItems = (entityIds: string[]) => {\n return this.request.delete()(`grids/trash`, {\n data: { entityIds },\n });\n };\n\n emptyTrash = () => {\n return this.request.delete()(`grids/trash/empty`, {});\n };\n}\n\nexport default new GridApi();\n","import { put, call, takeLeading, cancelled, takeEvery } from 'redux-saga/effects';\nimport lodash from 'lodash';\nimport { NormalizedEntity } from 'Interfaces/Common';\nimport {\n deleteGridItems,\n emptyTrash,\n getGrid,\n getGridForSignatureRequests,\n moveToTrashGridItems,\n updateGrid,\n} from './actionCreators';\nimport GridApi from 'Services/Api/Grid';\nimport { GridEntityType, GridItem } from 'Interfaces/Grid';\nimport Axios from 'axios';\n\nfunction* handleGridGet({ payload, meta }: ReturnType) {\n const cancelToken = Axios.CancelToken.source();\n\n try {\n const { items, totalItems, pageCount, itemCount } = yield call(\n GridApi.getGrid,\n payload,\n {\n cancelToken: cancelToken.token,\n },\n );\n\n const normalizedGrid: NormalizedEntity = lodash.keyBy(items, 'entityId');\n yield put(\n getGrid.success(\n {\n grid: normalizedGrid,\n paginationData: { totalItems, pageCount, itemsCount: itemCount },\n },\n meta,\n ),\n );\n } catch (error) {\n yield put(getGrid.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(getGrid.cancel(undefined, meta));\n cancelToken.cancel();\n }\n }\n}\n\nfunction* handleGridGetForSignatureRequests({\n payload,\n meta,\n}: ReturnType) {\n const cancelToken = Axios.CancelToken.source();\n\n try {\n const { items, totalItems, pageCount, itemCount } = yield call(\n GridApi.getGridForSignatureRequests,\n payload,\n {\n cancelToken: cancelToken.token,\n },\n );\n\n const signatureRequestItems = items.map(item => ({\n ...item,\n documents:\n item.entityType === GridEntityType.SIGNATURE_REQUEST &&\n item.signatureRequests.documents,\n }));\n\n const normalizedGrid: NormalizedEntity = lodash.keyBy(\n signatureRequestItems,\n 'entityId',\n );\n yield put(\n getGridForSignatureRequests.success(\n {\n grid: normalizedGrid,\n paginationData: { totalItems, pageCount, itemsCount: itemCount },\n },\n meta,\n ),\n );\n } catch (error) {\n yield put(getGridForSignatureRequests.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(getGridForSignatureRequests.cancel(undefined, meta));\n cancelToken.cancel();\n }\n }\n}\n\nfunction* handleGridUpdate({ payload, meta }: ReturnType) {\n try {\n const folder = yield call(GridApi.updateGrid, payload);\n yield put(updateGrid.success(folder, meta));\n } catch (error) {\n yield put(updateGrid.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(updateGrid.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleGridItemsDelete({\n payload,\n meta,\n}: ReturnType) {\n try {\n yield call(GridApi.deleteGridItems, payload.entityIds);\n yield put(deleteGridItems.success(undefined, meta));\n } catch (error) {\n yield put(deleteGridItems.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(deleteGridItems.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleGridItemsMoveToTrash({\n payload,\n meta,\n}: ReturnType) {\n try {\n yield call(GridApi.moveToTrashGridItems, payload.entityIds);\n yield put(moveToTrashGridItems.success(undefined, meta));\n } catch (error) {\n yield put(moveToTrashGridItems.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(moveToTrashGridItems.cancel(undefined, meta));\n }\n }\n}\n\nfunction* handleTrashEmpty({ meta }: ReturnType) {\n try {\n yield call(GridApi.emptyTrash);\n yield put(emptyTrash.success(undefined, meta));\n } catch (error) {\n yield put(emptyTrash.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(emptyTrash.cancel(undefined, meta));\n }\n }\n}\n\nexport default [\n takeEvery(updateGrid.request, handleGridUpdate),\n takeEvery(getGrid.request, handleGridGet),\n takeEvery(getGridForSignatureRequests.request, handleGridGetForSignatureRequests),\n takeLeading(deleteGridItems.request, handleGridItemsDelete),\n takeLeading(moveToTrashGridItems.request, handleGridItemsMoveToTrash),\n takeLeading(emptyTrash.request, handleTrashEmpty),\n];\n","export enum SigntureRequestsDeleteActionTypes {\n request = 'signature_request/DELETE_SIGNATURE_REQUESTS/REQUEST',\n success = 'signature_request/DELETE_SIGNATURE_REQUESTS/SUCCESS',\n failure = 'signature_request/DELETE_SIGNATURE_REQUESTS/FAILURE',\n cancel = 'signature_request/DELETE_SIGNATURE_REQUESTS/CANCEL',\n}\n","import sagas from './sagas';\nimport {\n getGrid,\n $getGrid,\n updateGrid,\n $updateGrid,\n deleteGridItems,\n $deleteGridItems,\n getGridForSignatureRequests,\n $getGridForSignatureRequests,\n moveToTrashGridItems,\n $moveToTrashGridItems,\n emptyTrash,\n $emptyTrash,\n} from './actionCreators';\nimport reducer from './reducer';\n\nexport default {\n sagas,\n reducer,\n actions: {\n getGrid,\n updateGrid,\n deleteGridItems,\n getGridForSignatureRequests,\n moveToTrashGridItems,\n emptyTrash,\n },\n};\n\nexport const $actions = {\n getGrid: $getGrid,\n updateGrid: $updateGrid,\n deleteGridItems: $deleteGridItems,\n getGridForSignatureRequests: $getGridForSignatureRequests,\n moveToTrashGridItems: $moveToTrashGridItems,\n emptyTrash: $emptyTrash,\n};\n","import { createReducer } from 'typesafe-actions';\nimport { NormalizedEntity } from 'Interfaces/Common';\n\nimport { getGrid, updateGrid, getGridForSignatureRequests } from './actionCreators';\nimport { GridItem } from 'Interfaces/Grid';\nimport { toggleEmailNotification } from '../document/actionCreators';\n\nexport default createReducer({} as NormalizedEntity)\n .handleAction([updateGrid.success], (state, action) => ({\n ...state,\n [action.payload.id]: action.payload,\n }))\n .handleAction([toggleEmailNotification.success], (state, action) => ({\n ...state,\n [action.payload.entityId]: {\n ...state[action.payload.entityId],\n documents: {\n ...state[action.payload.entityId].documents!,\n disableReminders: action.payload.documents!.disableReminders,\n },\n },\n }))\n .handleAction(\n [getGrid.success, getGridForSignatureRequests.success],\n (state, action) => ({\n ...action.payload.grid,\n }),\n );\n","import { ActionError, PromisifiedActionMeta } from 'Interfaces/ActionCreators';\nimport { SigntureRequestsDeletePayload } from 'Interfaces/SignatureRequest';\nimport { createAsyncAction } from 'typesafe-actions';\nimport { promisifyAsyncAction } from 'Utils/functions';\nimport { SigntureRequestsDeleteActionTypes } from './actionTypes';\n\nexport const deleteSignatureRequests = createAsyncAction(\n SigntureRequestsDeleteActionTypes.request,\n SigntureRequestsDeleteActionTypes.success,\n SigntureRequestsDeleteActionTypes.failure,\n SigntureRequestsDeleteActionTypes.cancel,\n)<\n [SigntureRequestsDeletePayload, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta],\n [ActionError, PromisifiedActionMeta],\n [undefined, PromisifiedActionMeta]\n>();\n\nexport const $deleteSignatureRequests = promisifyAsyncAction(deleteSignatureRequests);\n","import Api from './Api';\n\nexport class SignatureRequestApi extends Api {\n deleteSignatureRequests = (signatureRequestIds: string[]) => {\n return this.request.delete()(`signature-requests`, {\n data: { ids: signatureRequestIds },\n });\n };\n}\n\nexport default new SignatureRequestApi();\n","import { deleteSignatureRequests } from './actionCreators';\nimport SignatureRequestApiService from 'Services/Api/SignatureRequest';\nimport { call, cancelled, put, takeLeading } from 'redux-saga/effects';\n\nfunction* handleSignatureRequestsDelete({\n payload,\n meta,\n}: ReturnType) {\n try {\n yield call(\n SignatureRequestApiService.deleteSignatureRequests,\n payload.signatureRequestIds,\n );\n yield put(deleteSignatureRequests.success(undefined, meta));\n } catch (error) {\n yield put(deleteSignatureRequests.failure(error, meta));\n } finally {\n if (yield cancelled()) {\n yield put(deleteSignatureRequests.cancel(undefined, meta));\n }\n }\n}\n\nexport default [\n takeLeading(deleteSignatureRequests.request, handleSignatureRequestsDelete),\n];\n","import sagas from './sagas';\nimport { $deleteSignatureRequests, deleteSignatureRequests } from './actionCreators';\nimport reducer from './reducer';\n\nexport default {\n sagas,\n reducer,\n actions: {\n deleteSignatureRequests,\n },\n};\n\nexport const $actions = {\n deleteSignatureRequests: $deleteSignatureRequests,\n};\n","import { NormalizedEntity } from 'Interfaces/Common';\nimport { SignatureRequest } from 'Interfaces/SignatureRequest';\nimport { createReducer } from 'typesafe-actions';\n\nexport default createReducer({} as NormalizedEntity);\n","import { combineReducers } from 'redux';\nimport { all } from 'redux-saga/effects';\nimport userDuck, { $actions as $userActions } from './user';\nimport documentDuck, { $actions as $documentActions } from './document';\nimport documentFieldDuck, { $actions as $documentFieldActions } from './documentField';\nimport billingDuck, { $actions as $billingActions } from './billing';\nimport teamDuck, { $actions as $teamActions } from './team';\nimport intergrationDuck, { $actions as $integrationActions } from './integration';\nimport requisiteDuck, { $actions as $requisiteActions } from './requisite';\nimport documentSign, { $actions as $documentSignAction } from './documentSign';\nimport requestHistoryDuck, { $actions as $requestHistoryActions } from './requestHistory';\nimport apiKeyDuck, { $actions as $apiKeyActions } from './apiKey';\nimport metaDuck from './meta';\nimport companyDuck, { $actions as $companyActions } from './company';\nimport integration from './integration';\nimport contractsDuck, { $actions as $contractsActions } from './contracts';\nimport contracts from './contracts';\nimport folderDuck, { $actions as $folderActions } from './folders';\nimport gridDuck, { $actions as $gridActions } from './grid';\nimport signatureRequestDuck, {\n $actions as $signatureRequestActions,\n} from './signatureRequest';\nimport { setUnauthorizedActionType } from './user/actionTypes';\n\nconst appReducer = combineReducers({\n apiKey: apiKeyDuck.reducer,\n requestHistory: requestHistoryDuck.reducer,\n user: userDuck.reducer,\n document: documentDuck.reducer,\n documentField: documentFieldDuck.reducer,\n company: companyDuck.reducer,\n billing: billingDuck.reducer,\n team: teamDuck.reducer,\n requisite: requisiteDuck.reducer,\n meta: metaDuck.reducer,\n contracts: contractsDuck.reducer,\n folder: folderDuck.reducer,\n grid: gridDuck.reducer,\n signatureRequest: signatureRequestDuck.reducer,\n});\n\nexport const rootReducer = (state, action) => {\n if (action.type === setUnauthorizedActionType) {\n return appReducer(undefined, action);\n }\n\n return appReducer(state, action);\n};\n\nexport const rootActions = {\n requestHistory: requestHistoryDuck.actions,\n apiKey: apiKeyDuck.actions,\n user: userDuck.actions,\n document: documentDuck.actions,\n documentField: documentFieldDuck.actions,\n company: companyDuck.actions,\n billing: billingDuck.actions,\n team: teamDuck.actions,\n integration: intergrationDuck.actions,\n requisite: requisiteDuck.actions,\n documentSign: documentSign.actions,\n contracts: contracts.actions,\n folder: folderDuck.actions,\n grid: gridDuck.actions,\n signatureRequest: signatureRequestDuck.actions,\n};\n\nexport const $actions = {\n requestHistory: $requestHistoryActions,\n apiKey: $apiKeyActions,\n user: $userActions,\n document: $documentActions,\n documentField: $documentFieldActions,\n company: $companyActions,\n billing: $billingActions,\n team: $teamActions,\n integration: $integrationActions,\n requisite: $requisiteActions,\n documentSign: $documentSignAction,\n contracts: $contractsActions,\n folder: $folderActions,\n grid: $gridActions,\n signatureRequest: $signatureRequestActions,\n};\n\nexport function* rootSagas() {\n yield all([\n ...requestHistoryDuck.sagas,\n ...apiKeyDuck.sagas,\n ...userDuck.sagas,\n ...documentDuck.sagas,\n ...documentFieldDuck.sagas,\n ...companyDuck.sagas,\n ...billingDuck.sagas,\n ...teamDuck.sagas,\n ...integration.sagas,\n ...requisiteDuck.sagas,\n ...documentSign.sagas,\n ...contracts.sagas,\n ...folderDuck.sagas,\n ...gridDuck.sagas,\n ...signatureRequestDuck.sagas,\n ]);\n}\n","import { rootActions } from 'Store/ducks';\nimport { useDispatch } from 'react-redux';\nimport { EmptyAction } from 'typesafe-actions';\nimport { SocketConnectPayload } from 'Interfaces/Common';\n\ninterface ConnectSocketFunc {\n (payload: SocketConnectPayload): EmptyAction;\n}\n\ninterface DisconnectSocketFunc {\n (): EmptyAction;\n}\n\nexport default () => {\n const dispatch = useDispatch();\n\n return [\n ((payload: SocketConnectPayload): EmptyAction =>\n dispatch(rootActions.user.connectSocket(payload))) as ConnectSocketFunc,\n ((): EmptyAction =>\n dispatch(rootActions.user.disconnectSocket())) as DisconnectSocketFunc,\n ] as const;\n};\n","import { useState } from 'react';\nimport { useSelector } from 'react-redux';\nimport { TablePaginationProps, PaginationData } from 'Interfaces/Common';\nimport { RootState } from 'typesafe-actions';\n\ntype PaginationSelector = (state: RootState) => PaginationData;\n\ninterface UsePaginationParams {\n paginationSelector: PaginationSelector;\n itemsLimit?: number;\n initialPage?: number;\n}\n\nexport default ({\n paginationSelector,\n itemsLimit = 10,\n initialPage = 0,\n}: UsePaginationParams) => {\n const [pageNumber, setPageNumber] = useState(initialPage);\n const paginationData = useSelector(paginationSelector);\n const paginationProps: TablePaginationProps = {\n ...paginationData,\n itemsLimit,\n pageNumber,\n };\n\n return [paginationProps, setPageNumber] as const;\n};\n","import { useMemo, useState, useCallback } from 'react';\nimport lodash from 'lodash';\nimport { OrderingDirection } from 'Interfaces/Common';\n\ninterface RequestOrdering {\n (key, direction?): { key: Key; direction?: OrderingDirection };\n}\n\nexport default (\n items: TItem[],\n config: { key: Key; direction: OrderingDirection },\n) => {\n const [orderingConfig, setOrderingConfig] = useState(config);\n\n const orderedItems: TItem[] = useMemo(() => {\n if (orderingConfig)\n return lodash.orderBy(items, [orderingConfig.key], [orderingConfig.direction]);\n\n return items;\n }, [items, orderingConfig]);\n\n const requestOrdering: RequestOrdering = useCallback(\n (key: Key) => {\n let direction = OrderingDirection.ASC;\n if (orderingConfig && orderingConfig.key === key) {\n direction =\n orderingConfig.direction === OrderingDirection.DESC\n ? OrderingDirection.ASC\n : OrderingDirection.DESC;\n }\n setOrderingConfig({ key, direction });\n\n return { key, direction };\n },\n [orderingConfig],\n );\n\n return { orderedItems, requestOrdering, orderingConfig };\n};\n","import dayjs from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport { byteToMB } from './formatters';\nimport {\n MAX_FILE_SIZE_MB,\n MAX_TOTAL_FILE_SIZE_MB,\n FREE_SIGNERS_LIMIT,\n FREE_VIEWERS_LIMIT,\n} from './constants';\nimport { SignatureTypesPreferences } from 'Interfaces/User';\nimport { DocumentItem } from 'Interfaces/Common';\ndayjs.extend(customParseFormat);\n\nconst emailRegExp = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,}$/i;\nconst onlyDigitsRegExp = /^\\d+$/;\nconst digitsAndCharsRegExp = /^[A-Za-z0-9]+$/i;\nconst digitsAndCharsAndSpecialSymbolsRegExp = /^[A-Za-z0-9-!@#$%^&*()_+|~=±`{}\\\\[\\]:\";'<>?,./]+$/i;\nconst atLeastDigitRegexp = /^(?=.*?[0-9]).+$/i;\nconst atLeastOneUppercaseAndOneLowercaseRegExp = /^(?=.*[a-z])(?=.*[A-Z]).+$/;\nconst atLeastOneSpecialCharacterRegExp = /^(?=.*[-!@#$%^&*()_+|~=±`{}\\\\[\\]:\";'<>?,./]).+$/;\nconst expirationDateRegExp = /\\b(0[1-9]|1[0-2])\\/?([0-9]{4}|[0-9]{2})\\b/;\nconst cvvRegExp = /^\\d{3,4}$/;\nconst postalCodeRegExp = /^\\S{10}$/;\nconst nameRegExp = /^[\\S]+(([',. -][\\S ])?[\\S]*)*$/;\nconst urlRegExp = /^(?:http(s)?:\\/\\/)/;\nconst webRegExp = /(?:http(s)?:\\/\\/)|(?:www\\.)/i;\nexport const emptyCharactersRegExp = new RegExp(/[\\u200B-\\u200D\\uFEFF]/g);\n\nexport const required = (value?: FieldValue) =>\n value || (typeof value === 'number' && !Number.isNaN(value)) ? undefined : 'Required';\n\nconst maxLength = (length: number) => (value?: FieldValue) =>\n value && value.length > length\n ? `Maximum length of this field must be less than ${length} symbols`\n : undefined;\n\nexport const maxLength100 = maxLength(100);\n\nexport const maxLength50 = maxLength(50);\n\nexport const notOnlySpaces = (value?: FieldValue) =>\n value && value.trim().length === 0\n ? 'The field must not contain only spaces'\n : undefined;\n\nexport const atLeastDigit = (value?: FieldValue) =>\n value && !atLeastDigitRegexp.test(value)\n ? 'Password must have at least one digit'\n : undefined;\n\nexport const atLeastOneUppercaseAndOneLowercase = (\n value?: FieldValue,\n) =>\n value && !atLeastOneUppercaseAndOneLowercaseRegExp.test(value)\n ? 'Password must have at least one uppercase and one lowercase letters'\n : undefined;\n\nexport const atLeastOneSpecialCharacter = (\n value?: FieldValue,\n) =>\n value && !atLeastOneSpecialCharacterRegExp.test(value)\n ? 'Password must have at least one special character'\n : undefined;\n\nexport const passwordLength = (value?: FieldValue) =>\n value && value.length < 8 ? 'Minimum password length is 8 symbols' : undefined;\n\nexport const onlyDigitsAndChars = (value?: FieldValue) =>\n value && !digitsAndCharsRegExp.test(value)\n ? 'Only digits and characters allowed'\n : undefined;\n\nexport const onlyDigitsAndCharsAndSpecialSymbols = (\n value?: FieldValue,\n) =>\n value && !digitsAndCharsAndSpecialSymbolsRegExp.test(value)\n ? 'Only digits, characters and special symbols allowed'\n : undefined;\n\nexport const password = (value?: FieldValue) => {\n const validationErrors = [\n atLeastDigit(value),\n atLeastOneUppercaseAndOneLowercase(value),\n atLeastOneSpecialCharacter(value),\n passwordLength(value),\n onlyDigitsAndCharsAndSpecialSymbols(value),\n ].filter(result => result);\n\n return validationErrors.length ? validationErrors.join('\\n') : undefined;\n};\n\nexport const confirmPassword = (\n value: FieldValue,\n formValues,\n) =>\n formValues.password !== value\n ? 'Password and confirmation password do not match'\n : undefined;\n\nexport const email = (value?: FieldValue) =>\n value && !emailRegExp.test(value) ? 'Invalid email address' : undefined;\n\nexport const expirationDate = value => {\n if (value && !expirationDateRegExp.test(value)) return 'Invalid date';\n if (value && dayjs(value, 'MM/YYYY').isBefore(dayjs())) {\n return 'Expiration date must be in future';\n }\n return undefined;\n};\n\nexport const cardNumberDigits = (value?: FieldValue) =>\n value && !onlyDigitsRegExp.test(value) ? 'Only digits allowed' : undefined;\n\nexport const cardNumberLength = (value?: FieldValue) =>\n value && value.length < 15 ? 'Card Number must be 15 or 16 digits' : undefined;\n\nexport const cardNumber = (value?: FieldValue) => {\n const validationErrors = [cardNumberDigits(value), cardNumberLength(value)].filter(\n result => result,\n );\n\n return validationErrors.length ? validationErrors.join('\\n') : undefined;\n};\n\nexport const cvv = (value?: FieldValue) =>\n value && !cvvRegExp.test(value) ? 'CVV must be 3 or 4 digits' : undefined;\n\nexport const postalCode = (value?: FieldValue) =>\n value && value.length > 10 ? 'Postal Code must be maximum 10 symbols' : undefined;\n\nexport const name = (value?: FieldValue) =>\n value && !value.trim().length ? 'Incorrect name' : undefined;\n\nexport const urlProtocol = (value?: FieldValue) =>\n value && !urlRegExp.test(value)\n ? 'url should start with https:// or http://'\n : undefined;\n\nexport const titleNotUrlProtocol = (value?: FieldValue) => {\n return value && webRegExp.test(value) ? 'Title should not contain url' : undefined;\n};\n\nexport const messageNotUrlProtocol = (value?: FieldValue) => {\n return value && webRegExp.test(value) ? 'Message should not contain url' : undefined;\n};\n\nexport const phoneNumberLength = (value?: FieldValue) =>\n value && !value.length ? 'Phone number should not be empty' : undefined;\n\nexport const lessThan10MB = (bytes: number) => {\n const sizeInMB = byteToMB(bytes);\n\n return sizeInMB > 10;\n};\n\nexport const lessThan40MB = (bytes: number) => {\n const sizeInMB = byteToMB(bytes);\n\n return sizeInMB > MAX_FILE_SIZE_MB ? 'File size must be less than 40 mb' : undefined;\n};\n\nexport const lessThan100MB = (bytes: number) => {\n const sizeInMB = byteToMB(bytes);\n\n return sizeInMB > MAX_TOTAL_FILE_SIZE_MB\n ? 'Total size of files must be less than 100 mb'\n : undefined;\n};\n\nexport const singleFileConstaint = (files: (File | undefined)[]) => {\n const filesNumberError = files.length > 1;\n\n if (filesNumberError) {\n return 'Uploading files for a document is limited to 1 file';\n }\n};\n\nexport const multipleFilesConstaint = (files: (File | undefined)[], filesLimit = 5) => {\n const totalSize = files.reduce((size, file) => size + (file?.size ?? 0), 0);\n\n const sizeError = !!lessThan100MB(totalSize);\n const filesNumberError = files.length > filesLimit;\n\n if (sizeError || filesNumberError) {\n return `Uploading files for a document is limited to ${filesLimit} files and total size must be less than 100 mb`;\n }\n};\n\nexport const multipleAttachingMailFilesConstaint = (\n files: DocumentItem[],\n newFile: File,\n) => {\n const totalSize =\n files.reduce((size, documentPart) => size + (documentPart.file?.size || 0), 0) +\n newFile.size;\n\n return !!lessThan10MB(totalSize);\n};\n\nexport const multipleAttachingMailFilesConstaintOnCancel = (\n files: DocumentItem[],\n removedFileSize,\n) => {\n const totalSize = files.reduce(\n (size, documentPart) => size + (documentPart.file?.size || 0) - removedFileSize,\n 0,\n );\n\n return !!lessThan10MB(totalSize);\n};\n\nexport const signatureTypesPreferences = (value: SignatureTypesPreferences) => {\n const activeSignatureTypesCount = [\n value.isDrawnSignaturesAvailable,\n value.isTypedSignaturesAvailable,\n value.isUploadedSignaturesAvailable,\n ].filter(Boolean).length;\n\n return activeSignatureTypesCount === 0\n ? 'At least one signature available type must be active'\n : undefined;\n};\n\nexport const checkSignersLimit = (value: number): string | undefined => {\n return value > FREE_SIGNERS_LIMIT\n ? `Document's signers amount is limited to ${FREE_VIEWERS_LIMIT} for free and trial plans`\n : undefined;\n};\n\nexport const checkViewersLimit = (value: number): string | undefined => {\n return value > FREE_VIEWERS_LIMIT\n ? `Document's viewers amount is limited to ${FREE_VIEWERS_LIMIT} for free and trial plans`\n : undefined;\n};\n\nexport const emptyString = (value: string, fieldName: string) => {\n return value === null || value === undefined || value.trim().length === 0\n ? `${fieldName} should not be empty`\n : undefined;\n};\n","import dayjs from 'dayjs';\nimport { DateFormats } from 'Interfaces/User';\nimport * as _ from 'lodash';\nimport { emptyCharactersRegExp } from './validation';\nimport { PlanTypes } from 'Interfaces/Billing';\n\nconst monthNames = [\n 'Jan',\n 'Feb',\n 'Mar',\n 'Apr',\n 'May',\n 'Jun',\n 'Jul',\n 'Aug',\n 'Sep',\n 'Oct',\n 'Nov',\n 'Dec',\n];\n\nexport const formatDate = (dateString: string) => {\n const date = new Date(dateString);\n const day = date.getDate();\n const monthIndex = date.getMonth();\n const year = date.getFullYear();\n\n return `${monthNames[monthIndex]} ${day}, ${year}`;\n};\n\nexport const trim = value => value && value.trim();\n\nexport const toLowerCase = value => value && value.toLowerCase();\n\nexport const removeEmptyCharacters = value =>\n value && value.replace(emptyCharactersRegExp, '');\n\nexport const toLowerCaseAndRemoveEmptyCharacters = value =>\n removeEmptyCharacters(toLowerCase(value));\n\nexport const capitalize = (str: string) => {\n if (!str) return str;\n return str[0].toUpperCase() + str.slice(1);\n};\n\nexport const cardNumberMaskedProps = {\n mask: [\n /[\\d*]/,\n /[\\d*]/,\n /[\\d*]/,\n /[\\d*]/,\n ' ',\n /[\\d*]/,\n /[\\d*]/,\n /[\\d*]/,\n /[\\d*]/,\n ' ',\n /[\\d*]/,\n /[\\d*]/,\n /[\\d*]/,\n /[\\d*]/,\n ' ',\n /[\\d*]/,\n /[\\d*]/,\n /[\\d*]/,\n /[\\d*]/,\n ],\n parse: value => {\n return value && value.replace(/ /g, '');\n },\n};\n\nexport const expirationMaskedProps = {\n mask: [/[\\d]/, /[\\d]/, ' ', '/', ' ', /[\\d]/, /[\\d]/, /[\\d]/, /[\\d]/],\n parse: value => {\n return value && value.replace(/ /g, '');\n },\n};\n\nexport const phoneNumberMaskedProps = {\n mask: [\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n ],\n parse: value => {\n return value && value.replace(/[ ()-]+/g, '');\n },\n};\n\nexport const phoneCodeMaskedProps = {\n mask: ['+', /\\d/, /\\d/, /\\d/, /\\d/],\n parse: value => {\n return value && value.replace(/[ ()-]+/g, '');\n },\n};\n\nexport const cvvMask = [/[\\d*]/, /[\\d*]/, /[\\d*]/, /[\\d*]/];\n\nexport const postalCodeMask = [\n /[\\S]/,\n /[\\S]/,\n /[\\S]/,\n /[\\S]/,\n /[\\S]/,\n /[\\S]/,\n /[\\S]/,\n /[\\S]/,\n /[\\S]/,\n /[\\S]/,\n];\n\nexport const dateFormatMasks = {\n [DateFormats.DD_MM_YYYY]: [/\\d/, /\\d/, '/', /\\d/, /\\d/, '/', /\\d/, /\\d/, /\\d/, /\\d/],\n [DateFormats.MM_DD_YYYY]: [/\\d/, /\\d/, '/', /\\d/, /\\d/, '/', /\\d/, /\\d/, /\\d/, /\\d/],\n [DateFormats.YYYY_MM_DD]: [/\\d/, /\\d/, /\\d/, /\\d/, '/', /\\d/, /\\d/, '/', /\\d/, /\\d/],\n [DateFormats.DD_MM_YY]: [/\\d/, /\\d/, '/', /\\d/, /\\d/, '/', /\\d/, /\\d/],\n [DateFormats.MM_DD_YY]: [/\\d/, /\\d/, '/', /\\d/, /\\d/, '/', /\\d/, /\\d/],\n};\n\nexport const formatDateStringToStartDay = (date: string) => {\n return dayjs(date)\n .startOf('day')\n .toDate();\n};\n\nexport const formatDateStringToEndDay = (date: string) => {\n return dayjs(date)\n .endOf('day')\n .toDate();\n};\n\nexport const formatDateToIsoString = (date?: Date) => {\n if (date) return dayjs(date).toISOString();\n};\n\nexport const formatDateToHumanString = (date?: string, onlyDate?: boolean) => {\n if (date && onlyDate) return dayjs(date).format('DD-MM-YY');\n if (date) return dayjs(date).format('MM-DD-YYYY HH-mm-ss');\n};\n\nexport const formatDateToStringForTrialInfo = (date?: string) => {\n if (date) return dayjs(date).format('MMMM DD, YYYY');\n};\n\nexport const daysToDate = (date?: string) => {\n const currentDate = new Date();\n if (date) return dayjs(date).diff(currentDate, 'day');\n};\n\nexport const getHourFromDateString = (date: string) => {\n return dayjs(date).format('hh:mm A');\n};\n\nexport const formatDocumentName = (name: string, type: 'document' | 'template') =>\n name || `No name ${capitalize(type)}`;\n\nexport const formatFolderName = (name: string) => name || `No name folder`;\n\nexport const byteToMB = (bytes: number) => bytes / 10 ** 6;\n\nexport const getFirstCapital = (string?: string) => {\n return _.capitalize(string)?.charAt(0);\n};\n\nexport const getInitials = (name?: string) => {\n const [firstName, lastName] = name?.split(' ') || [];\n\n return [firstName, lastName].map(namePart => getFirstCapital(namePart)).join('');\n};\n\nexport const getAvatarContent = (name?: string, email?: string) => {\n return getInitials(name) || getFirstCapital(email);\n};\n\nexport const formatFileName = (fileName: string) => {\n const forbidden = [\n '+',\n '=',\n '[',\n ']',\n ':',\n ';',\n '«',\n ',',\n '/',\n '\\\\',\n '|',\n '>',\n '<',\n '?',\n '»',\n '\"',\n '*',\n ];\n return fileName\n .split('')\n .filter(char => !forbidden.includes(char))\n .join('');\n};\n\nexport const planTypeToName = {\n [PlanTypes.PERSONAL]: 'Personal',\n [PlanTypes.BUSINESS]: 'Business',\n};\n","import { useCallback } from 'react';\nimport { saveAs } from 'file-saver';\nimport JSZip from 'jszip';\nimport JSZipUtils from 'jszip-utils';\nimport { isEmpty } from 'lodash';\nimport { $actions } from 'Store/ducks';\nimport { useDispatch } from 'react-redux';\nimport Toast from 'Services/Toast';\nimport { SignedUrlResponse } from 'Interfaces/Common';\nimport useAsyncAction from './useAsyncAction';\nimport parsePath from 'path-parse';\nimport { formatFileName } from 'Utils/formatters';\n\ninterface FileInfo {\n fileKey?: string | null | undefined;\n fileName?: string | null | undefined;\n itemName?: string | null | undefined;\n}\n\ntype FileExtractor = (item: TItem) => FileInfo[];\n\ninterface DownloadPayload {\n fileExtractors: FileExtractor[];\n name?: string;\n hash?: string | null;\n}\n\nexport default ({ fileExtractors, name, hash }: DownloadPayload) => {\n const dispatch = useDispatch();\n\n const downloadFiles = useCallback(\n async (items: TItem[]) => {\n const zip = new JSZip();\n\n const filesInfo: FileInfo[] = [];\n items.forEach(item =>\n fileExtractors.forEach(fileExtractor => filesInfo.push(...fileExtractor(item))),\n );\n\n const currentDate = new Date();\n const date = new Date(\n currentDate.getTime() - currentDate.getTimezoneOffset() * 60000,\n );\n\n await Promise.all(\n filesInfo.map(async fileInfo => {\n const { fileKey, fileName, itemName } = fileInfo;\n\n try {\n if (!fileKey || !fileName || !itemName) return null;\n const documentId = parsePath(fileKey).name;\n const { result: signedUrl } = hash\n ? ((await $actions.user.getSignedGetUrlHash(dispatch, {\n key: fileKey,\n hash,\n documentId,\n })) as SignedUrlResponse)\n : ((await $actions.user.getSignedGetUrl(dispatch, {\n key: fileKey,\n })) as SignedUrlResponse);\n const data = await JSZipUtils.getBinaryContent(signedUrl);\n\n zip.file(`${documentId}/${formatFileName(fileName)}`, data, { date });\n } catch (e) {\n Toast.error(`File from ${itemName} not found`);\n }\n }),\n );\n\n if (!isEmpty(zip.files)) {\n try {\n const blob = await zip.generateAsync({ type: 'blob' });\n saveAs(blob, name ? `${name}.zip` : 'signaturely.zip');\n Toast.success('Files successfully downloaded!');\n } catch (error) {\n Toast.error(error.message);\n }\n } else {\n Toast.error('No files to download');\n }\n },\n [fileExtractors, hash, dispatch, name],\n );\n\n return useAsyncAction(downloadFiles);\n};\n","import { useState, useCallback } from 'react';\nimport { useAsyncAction } from 'Hooks/Common';\nimport Axios, { AxiosRequestConfig, CancelTokenSource } from 'axios';\nimport { Action } from 'Interfaces/Common';\n\ninterface CancelUpload {\n (message?: string): void | undefined;\n}\ninterface UploadPayload {\n file: File;\n options?: AxiosRequestConfig;\n}\n\ninterface UploadAction {\n (payload: UploadPayload & TPayload): TResponse;\n}\n\nexport default (\n action: Action,\n) => {\n const [cancelSource, setCancelSource] = useState(null);\n\n const [uploadFile, isLoading] = useAsyncAction(\n (actionPayload: UploadPayload & TPayload) => {\n const newCancelSource = Axios.CancelToken.source();\n\n setCancelSource(newCancelSource);\n\n const payload = {\n ...actionPayload,\n options: {\n ...actionPayload.options,\n cancelToken: newCancelSource.token,\n },\n };\n\n return action(payload);\n },\n );\n const cancelUpload: CancelUpload = useCallback(\n (message?: string) => cancelSource?.cancel(message),\n [cancelSource],\n );\n\n return [uploadFile, cancelUpload, isLoading] as const;\n};\n","import { useEffect, useState } from 'react';\n\nexport const createShadowIFrame = (): HTMLIFrameElement => {\n const iframe = document.createElement('iframe');\n document.body.appendChild(iframe);\n iframe.style.display = 'none';\n return iframe;\n};\n\nexport default () => {\n const [shadowIFrame, setShadowIFrame] = useState();\n\n useEffect(() => {\n setShadowIFrame(createShadowIFrame());\n }, []);\n\n useEffect(() => {\n return () => {\n if (shadowIFrame) {\n shadowIFrame.remove();\n }\n };\n }, [shadowIFrame]);\n\n return shadowIFrame as HTMLIFrameElement;\n};\n","import useShadowIframe from './useShadowIframe';\n\ninterface PrintDocument {\n (url: string): void;\n}\n\nexport default () => {\n const shadowIframe = useShadowIframe();\n\n const print = (url: string) => {\n if (shadowIframe) {\n shadowIframe.onload = () => {\n setTimeout(() => {\n shadowIframe?.focus();\n shadowIframe?.contentWindow?.print();\n }, 1000);\n };\n shadowIframe.src = url as string;\n }\n };\n\n return print as PrintDocument;\n};\n","import { useEffect, useState } from 'react';\n\nexport const createShadowLink = () => {\n const link = document.createElement('a');\n document.body.appendChild(link);\n link.style.display = 'none';\n\n return link;\n};\n\nexport default () => {\n const [shadowLink, setShadowLink] = useState();\n\n useEffect(() => {\n setShadowLink(createShadowLink());\n }, []);\n\n useEffect(() => {\n return () => {\n if (shadowLink) {\n shadowLink.remove();\n }\n };\n }, [shadowLink]);\n\n return shadowLink as HTMLAnchorElement;\n};\n","import { useCallback } from 'react';\nimport useShadowLink from './useShadowLink';\n\ninterface DownloadAttachment {\n (url: string): Promise;\n}\n\ntype isReady = {} & boolean;\n\nexport default () => {\n const shadowLink = useShadowLink();\n\n const downloadAttachment = useCallback(\n (url: string) => {\n return new Promise((resolve, reject) => {\n if (shadowLink) {\n shadowLink.href = url;\n shadowLink.click();\n resolve();\n } else {\n reject(\"Download isn't ready yet\");\n }\n });\n },\n [shadowLink],\n ) as DownloadAttachment;\n\n return [downloadAttachment, !!shadowLink as isReady] as const;\n};\n","import { takeEvery, take, race, put, call, fork, cancel } from 'redux-saga/effects';\nimport { getType } from 'typesafe-actions';\nimport {\n START_WATCH_PROMISIFIED_ACTION,\n STOP_WATCH_PROMISIFIED_ACTION,\n} from 'Store/actionTypes';\n\nconst getPayload = action => (action && action.payload) || action;\n\nfunction* finishTask(taskId) {\n yield put({\n type: STOP_WATCH_PROMISIFIED_ACTION,\n meta: { taskId },\n });\n}\n\nfunction* handleRoutineAction({\n success,\n failure,\n cancelAction,\n taskId,\n resolve,\n reject,\n}) {\n const action = success || failure || cancelAction;\n\n if (!action) {\n yield cancel();\n }\n\n const isTargetTask = action.meta && action.meta.taskId === taskId;\n\n if (!isTargetTask) {\n if (action.meta.isLeading) {\n yield call(resolve);\n yield call(finishTask, taskId);\n }\n\n yield cancel();\n }\n\n if (success) {\n yield call(resolve, getPayload(success));\n } else if (failure) {\n yield call(reject, getPayload(failure));\n } else {\n yield call(resolve);\n }\n\n yield call(finishTask, taskId);\n}\n\nexport function* handlePromisyAction(action) {\n const {\n payload,\n meta: {\n actionCreators,\n taskId,\n defer: { resolve, reject },\n },\n } = action;\n\n yield put(actionCreators.request(payload, { taskId }));\n\n while (true) {\n const { stopWatching, ...actionsTaken } = yield race({\n success: take(getType(actionCreators.success)),\n failure: take(getType(actionCreators.failure)),\n cancelAction: take(getType(actionCreators.cancel)),\n stopWatching: take(STOP_WATCH_PROMISIFIED_ACTION),\n });\n\n if (stopWatching && stopWatching.meta.taskId === taskId) {\n yield cancel();\n }\n\n yield fork(handleRoutineAction, {\n ...actionsTaken,\n taskId,\n resolve,\n reject,\n });\n }\n}\n\nexport default function* routinePromiseWatcherSaga() {\n yield takeEvery(START_WATCH_PROMISIFIED_ACTION, handlePromisyAction);\n}\n","import { takeEvery, put } from 'redux-saga/effects';\nimport { Action, PayloadMetaActionCreator } from 'typesafe-actions';\nimport { PromisifiedActionMeta } from 'Interfaces/ActionCreators';\nimport { HttpStatus } from 'Interfaces/HttpStatusEnum';\nimport {\n CurrentUserGetActionTypes,\n PrimarySignInActionTypes,\n SignInAppSumoUserActionTypes,\n} from 'Store/ducks/user/actionTypes';\nimport { setUnauthorized, signInPrimary } from 'Store/ducks/user/actionCreators';\n\nconst failureRegex = /\\/FAILURE/;\n\nconst failurePattern = (action: Action) => failureRegex.test(action.type);\n\ninterface Error {\n [key: string]: any;\n statusCode?: HttpStatus;\n}\n\ntype FailureActionType = ReturnType<\n PayloadMetaActionCreator\n>;\n\nexport function* handleFailureAction({ payload, type }: FailureActionType) {\n if (\n payload.statusCode === HttpStatus.UNAUTHORIZED &&\n type !== PrimarySignInActionTypes.failure &&\n type !== SignInAppSumoUserActionTypes.failure &&\n type !== CurrentUserGetActionTypes.failure\n ) {\n yield put(setUnauthorized());\n }\n}\n\nexport default function* routineFailureWatcherSaga() {\n yield takeEvery(failurePattern, handleFailureAction);\n}\n","import { createStore, applyMiddleware } from 'redux';\nimport { persistStore } from 'redux-persist';\nimport { createLogger } from 'redux-logger';\nimport { composeWithDevTools } from 'redux-devtools-extension';\nimport createSagaMiddleware from 'redux-saga';\nimport actionPromisifyWatcher from './watchers/promisifyWatcher';\nimport failureWatcher from './watchers/failureWatcher';\nimport { rootSagas, rootReducer } from './ducks';\n\nconst sagaMiddleware = createSagaMiddleware();\nconst middlewares = [sagaMiddleware];\n\nif (process.env.NODE_ENV === 'development') {\n const logger = createLogger({ collapsed: true });\n middlewares.push(logger);\n}\n\nconst store = createStore(\n rootReducer,\n composeWithDevTools(applyMiddleware(...middlewares)),\n);\nconst persistor = persistStore(store);\nconst sagas = [rootSagas, actionPromisifyWatcher, failureWatcher];\n\nsagas.forEach(saga => sagaMiddleware.run(saga));\n\nexport { store, persistor };\n","import { useEffect } from 'react';\n\ntype displayStatus = 'none' | 'block';\n\nfunction setBeaconContainerStatus(status: displayStatus) {\n const beaconContainer = document.getElementById('beacon-container');\n\n if (beaconContainer) {\n beaconContainer.style.display = status;\n\n return true;\n }\n\n return false;\n}\n\nfunction hideBeacon() {\n const isSuccessful = setBeaconContainerStatus('none');\n //@ts-ignore\n // eslint-disable-next-line no-undef\n const beacon = window.Beacon;\n\n if (!isSuccessful && beacon) {\n beacon('on', 'ready', () => {\n setBeaconContainerStatus('none');\n });\n }\n}\n\nfunction showBeacon() {\n setBeaconContainerStatus('block');\n const isSuccessful = setBeaconContainerStatus('block');\n\n //@ts-ignore\n // eslint-disable-next-line no-undef\n const beacon = window.Beacon;\n\n if (!isSuccessful && beacon) {\n beacon('on', 'ready', () => {\n setBeaconContainerStatus('block');\n });\n }\n}\n\nexport default () => {\n useEffect(() => {\n try {\n //@ts-ignore\n // eslint-disable-next-line no-undef\n const beacon = window.Beacon;\n\n if (beacon) {\n hideBeacon();\n } else {\n window.addEventListener('load', hideBeacon);\n }\n\n return () => {\n window.removeEventListener('load', hideBeacon);\n showBeacon();\n };\n } catch (error) {\n console.log(error);\n }\n }, []);\n};\n","import React, { useCallback } from 'react';\n\nexport default () => {\n const openNewTab = useCallback((url: string) => {\n const a = document.createElement('a');\n a.href = url;\n a.target = '_newblank';\n a.click();\n }, []);\n\n return [openNewTab] as const;\n};\n","import { createBrowserHistory } from 'history';\n\nexport default createBrowserHistory();\n","import { useMediaQuery } from 'react-responsive';\n\nexport default () => {\n const isMobile = useMediaQuery({\n query: '(max-width: 768px)',\n });\n return isMobile;\n};\n","import { useMediaQuery } from 'react-responsive';\n\nexport default () => {\n const isTablet = useMediaQuery({\n query: '(max-width: 1199px)',\n });\n return isTablet;\n};\n","import { useDispatch } from 'react-redux';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { $actions } from 'Store';\nimport { SignedUrlPayload } from 'Interfaces/Common';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: SignedUrlPayload) =>\n $actions.user.getSignedGetUrl(dispatch, payload),\n );\n};\n","import { useDispatch } from 'react-redux';\nimport { SignedUrlPayload } from 'Interfaces/Common';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { $actions } from 'Store';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: SignedUrlPayload) =>\n $actions.user.getSignedPutAssetUrl(dispatch, payload),\n );\n};\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction(() => $actions.user.getCurrentUser(dispatch));\n};\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { ProfileInfoPayload } from 'Interfaces/Profile';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction(async (payload: ProfileInfoPayload) =>\n $actions.user.updateProfileInfo(dispatch, payload),\n );\n};\n","import { useCallback, useEffect, useState } from 'react';\nimport { UserAvatar } from 'Interfaces/User';\nimport { NormalizedEntity } from 'Interfaces/Common';\nimport Toast from 'Services/Toast';\nimport useSignersAvatarsGet from './useSignersAvatarsGet';\n\nexport default documentId => {\n const [userAvatars, setUserAvatars] = useState | {}>({});\n const [getSignersAvatars, isLoading] = useSignersAvatarsGet();\n\n const handleSignersAvatarsGet = useCallback(async () => {\n try {\n const avatars = await getSignersAvatars({ documentId });\n\n setUserAvatars(avatars);\n } catch (error) {\n Toast.handleErrors(error);\n }\n }, [documentId, getSignersAvatars]);\n\n useEffect(() => {\n documentId && handleSignersAvatarsGet();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [documentId]);\n\n return [userAvatars, isLoading] as const;\n};\n","import { useDispatch } from 'react-redux';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { $actions } from 'Store';\nimport { DocumentIdPayload } from 'Interfaces/Document';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: DocumentIdPayload) =>\n $actions.user.getSignersAvatars(dispatch, payload),\n );\n};\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\nimport useGoogleClientIdGet from 'Hooks/Common/useGoogleClientIdGet';\n\nexport default () => {\n const dispatch = useDispatch();\n const clientId = useGoogleClientIdGet();\n\n return useAsyncAction(\n () => clientId && $actions.user.updateGoolgeClientId(dispatch, { clientId }),\n );\n};\n","import { useMemo } from 'react';\n\nexport default () => {\n const GoogleAnalyticsObject = useMemo(() => {\n //@ts-ignore\n // eslint-disable-next-line no-undef\n return ga && ga;\n }, []);\n\n const clientId = useMemo(() => {\n if (!GoogleAnalyticsObject || !GoogleAnalyticsObject.getAll) {\n return;\n }\n\n return GoogleAnalyticsObject && GoogleAnalyticsObject.getAll()[0]?.get('clientId');\n }, [GoogleAnalyticsObject]);\n\n return clientId;\n};\n","import React from 'react';\nimport classNames from 'classnames';\n\nexport interface UISpinnerProps {\n width?: number;\n height?: number;\n className?: string;\n wrapperClassName?: string;\n}\n\nconst UISpinner = ({\n width = 21,\n height = 21,\n className,\n wrapperClassName,\n}: UISpinnerProps) => {\n return (\n
\n \n \n \n
\n );\n};\n\nexport default UISpinner;\n","import { WORKFLOW_PREFIX } from 'Utils/constants';\n\nconst addPrefix = path => `${WORKFLOW_PREFIX}${path}`;\n\nexport const RoutePaths = {\n BASE_PATH: addPrefix(''),\n APPSUMO_THANKS: addPrefix('appsumo_thanks'),\n RESET: addPrefix('reset'),\n CONFIRM_EMAIL: addPrefix('confirm_email'),\n DOCUMENT_SIGN: addPrefix('documents/:documentId/sign'),\n DOCUMENT_STATUS: addPrefix('documents/:documentId/status'),\n EMBED_DOCUMENT: addPrefix('embedded/request/:documentId'),\n ACCEPT_INVITE: addPrefix('teams/:teamId/accept_invite'),\n REMINDERS_UNLINK: addPrefix('documents/:signerId/reminders_unlink'),\n INVOICE_DOWNLOAD: addPrefix('invoices/:invoiceId/download'),\n SIGNER_DOCUMENT_DOWNLOAD: addPrefix('documents/:documentId/:signerId/download'),\n SEPARATED_DOCUMENT_DOWNLOAD: addPrefix(\n 'documents/:documentId/download-separated-document',\n ),\n DOCUMENT_ACTIVITIES_DOWNLOAD: addPrefix('documents/:documentId/download-activities'),\n DOCUMENT_DOWNLOAD: addPrefix('documents/:documentId/download'),\n ORIGINAL_DOCUMENT_DOWNLOAD: addPrefix('documents/:documentId/download-original'),\n FORM_REQUESTS_SEND: addPrefix('form-requests/:formRequestId/send'),\n LANDING_SIGNUP: addPrefix('new/flows/new-signup'),\n LANDING_SIGNUP_CONFIRM: addPrefix('new/flows/welcome-doc'),\n LANDING_SIGNUP_THANKS: addPrefix('new/flows/thanks'),\n};\n\nexport const AuthorizedRoutePaths = {\n ...RoutePaths,\n UPSELL: addPrefix('upsell'),\n DOCUMENT_PREVIEW: addPrefix('documents/:documentId/preview'),\n SIGN: addPrefix('sign'),\n ONLY_ME: addPrefix('only-me'),\n BULK_SEND: addPrefix('bulk-send'),\n ME_AND_OTHERS: addPrefix('me-and-others'),\n ONLY_OTHERS: addPrefix('only-others'),\n DOCUMENTS: addPrefix('documents'),\n RECEIVED_DOCUMENTS: addPrefix('documents/received'),\n TRASH: addPrefix('documents/trash'),\n DOCUMENTS_STATUS: addPrefix('documents/:status?'),\n DOCUMENTS_EDIT: addPrefix('documents/:documentId/edit'),\n TEMPLATES: addPrefix('templates'),\n TEMPLATES_ACTIVE: addPrefix('templates/active'),\n TEMPLATES_CREATE: addPrefix('templates/create'),\n TEMPLATES_EDIT: addPrefix('templates/:templateId/edit'),\n TEMPLATES_STATUS: addPrefix('templates/:type/:status?'),\n FORM_REQUESTS: addPrefix('form-requests'),\n FORM_REQUESTS_CREATE: addPrefix('form-requests/create'),\n FORM_REQUESTS_STATUS: addPrefix('form-requests/:status?'),\n FORM_REQUESTS_EDIT: addPrefix('form-requests/:formRequestId/edit'),\n INTEGRATIONS: addPrefix('integrations'),\n TEAM: addPrefix('team'),\n SETTINGS: addPrefix('settings'),\n SETTINGS_COMPANY: addPrefix('settings/company'),\n SETTINGS_PROFILE: addPrefix('settings/profile'),\n SETTINGS_REQUEST_HISTORY: addPrefix('settings/api/:apiKeyId/request_history'),\n SETTINGS_API: addPrefix('settings/api'),\n SETTINGS_EDIT_SIGNATURE: addPrefix('settings/edit-signature'),\n SETTINGS_BILLING: addPrefix('settings/billing'),\n SETTINGS_BILLING_PLAN: addPrefix('settings/billing/plan'),\n ACTIVATE_TRIAL: addPrefix('activate-trial'),\n TRY_TRIAL: addPrefix('try-trial'),\n REDEEM_LTD_CODE: addPrefix('primeclub/redeem'),\n LTD_UPGRADE: addPrefix('primeclub/upgrade'),\n LTD_UPGRADE_SUCCESS: addPrefix('primeclub/upgrade-success'),\n TRIAL_SUCCESS: addPrefix('welcome-trial'),\n};\n\nexport const UnauthorizedRoutePaths = {\n ...RoutePaths,\n SIGN_UP: addPrefix('signup'),\n CONFIRM_ACCOUNT: addPrefix('confirm-account'),\n CHANGE_PASSWORD: addPrefix('change_password'),\n LOGIN: addPrefix('login'),\n SIGN_UP_FREE: addPrefix('signup/free*'),\n SIGN_UP_BUSINESS: addPrefix('signup/business*'),\n SIGN_UP_PERSONAL: addPrefix('signup/personal*'),\n SIGN_UP_LTD: addPrefix('signup/primeclub'),\n LIFE_TIME_DEAL: addPrefix('primeclub'),\n LIFE_TIME_DEAL_TIER: addPrefix('primeclub/tier-:tierNumber'),\n LTD_PAYMENT_SUCCESS: addPrefix('primeclub/payment-success'),\n TWO_FACTOR: addPrefix('two-factor'),\n ABOUT: addPrefix('about'),\n};\n","import { RoutePaths } from 'Interfaces/RoutePaths';\nimport React from 'react';\nimport { Route as ReactRouterRoute, Switch, Redirect } from 'react-router-dom';\nimport { RouteProps } from 'react-router-dom';\n\nexport interface MyRouteProps extends RouteProps {\n layout?: React.ElementType;\n isForbidden?: boolean;\n layoutProps?: Partial;\n forbiddenComponent?: React.FunctionComponent;\n [key: string]: any;\n}\n\nconst PassThrough = ({ children }: { children?: React.ReactNode }) => <>{children};\n\nconst Forbidden = () => ;\n\nexport function Route({\n layout: Layout = PassThrough,\n component: Component = PassThrough,\n forbiddenComponent: ForbiddenComponent = Forbidden,\n subLayout: SubLayout = undefined,\n layoutProps,\n children,\n isForbidden,\n ...rest\n}: MyRouteProps) {\n if (isForbidden) return ;\n\n const LayoutComponent = Layout as React.ElementType;\n\n return (\n (\n \n {SubLayout ? (\n \n \n {children && {children}}\n \n \n ) : (\n \n {children && {children}}\n \n )}\n \n )}\n />\n );\n}\n\nexport default Route;\n","import { useDispatch } from 'react-redux';\nimport { AuthData } from 'Interfaces/Auth';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((values: AuthData) =>\n $actions.user.signInPrimary(dispatch, { values }),\n );\n};\n","import { useDispatch } from 'react-redux';\nimport { SignUpData } from 'Interfaces/Auth';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((values: SignUpData) =>\n $actions.user.signUp(dispatch, { values }),\n );\n};\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from '../Common';\nimport StorageService from 'Services/Storage';\nimport { useCallback } from 'react';\nimport { logout as logoutAction } from 'Store/ducks/user/actionCreators';\n\ninterface Logout {\n (): void;\n}\n\nexport default () => {\n const dispatch = useDispatch();\n\n if (!StorageService.getAccessToken()) {\n return useAsyncAction(() => $actions.user.signOut(dispatch));\n } else {\n // fallback for JWT users logout\n\n const logout = useCallback(() => {\n dispatch(logoutAction());\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []) as Logout;\n\n return [logout];\n }\n};\n","import { useCallback } from 'react';\nimport useGoogleIdentityServiceGet from './useGoogleIdentityServiceGet';\n\ninterface Props {\n onSubmit: (response) => void;\n}\n\nexport default (props: Props) => {\n const gis = useGoogleIdentityServiceGet({ ...props });\n\n const renderButton = useCallback(\n (ref: HTMLButtonElement | null, params: any) => {\n if (gis && ref) {\n gis.renderButton(ref, params);\n }\n },\n [gis],\n );\n\n return renderButton;\n};\n","import { useCallback, useEffect, useState } from 'react';\nimport { GOOGLE_CLIENT_ID } from 'Utils/constants';\ndeclare let google: any;\n\ninterface Gis {\n renderButton: (ref: HTMLButtonElement, params: any) => void;\n}\n\ninterface Props {\n onSubmit: (response) => void;\n}\n\nexport default ({ onSubmit }: Props) => {\n const [gis, setGis] = useState(null);\n\n const initGis = useCallback(async () => {\n if (google) {\n google.accounts.id.initialize({\n client_id: GOOGLE_CLIENT_ID,\n callback: onSubmit,\n });\n google.accounts.id.prompt();\n setGis(google.accounts.id);\n }\n }, [onSubmit]);\n\n useEffect(() => {\n if (!gis) {\n initGis();\n }\n }, [gis, initGis]);\n\n return gis;\n};\n","declare let gtag;\n\nexport default () => {\n return () => {\n gtag('event', 'conversion', { send_to: 'AW-588882135/eHPGCOCJ94sCENfB5pgC' });\n };\n};\n","import classNames from 'classnames';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport { AvatarUrl } from 'Interfaces/User';\nimport React from 'react';\nimport { getAvatarContent } from 'Utils/formatters';\n\ninterface AvatarProps {\n className?: string;\n name?: string;\n email?: string;\n avatarUrl?: AvatarUrl;\n}\n\nexport const Avatar = ({ className, name, email, avatarUrl }: AvatarProps) => {\n const isMobile = useIsMobile();\n return (\n
\n {avatarUrl ? (\n \"avatar\"\n ) : (\n
\n
{getAvatarContent(name, email)}
\n
\n )}\n
\n );\n};\n\nexport default Avatar;\n","import Avatar from 'Components/Avatar';\nimport React from 'react';\nimport { useSelector } from 'react-redux';\nimport { selectAvatarInfo } from 'Utils/selectors';\n\ninterface AccountAvatarProps {\n className?: string;\n}\n\nexport const AccountAvatar = ({ className }: AccountAvatarProps) => {\n const { name, email, avatarUrl } = useSelector(selectAvatarInfo);\n\n return ;\n};\n\nexport default AccountAvatar;\n","import React, { useEffect } from 'react';\nimport useDropdown from 'use-dropdown';\nimport classNames from 'classnames';\nimport { Location } from 'history';\nimport { ReactSVG } from 'react-svg';\nimport { Link } from 'react-router-dom';\n\nimport ArrowIcon from 'Assets/images/icons/select-arrow-icon.svg';\nimport CompanyIcon from 'Assets/images/icons/company-icon.svg';\nimport TeamIcon from 'Assets/images/icons/team-icon.svg';\nimport EditIcon from 'Assets/images/icons/edit-icon.svg';\nimport BillingIcon from 'Assets/images/icons/billing-icon.svg';\nimport LogoutIcon from 'Assets/images/icons/logout-icon.svg';\nimport StarIcon from 'Assets/images/icons/star-icon.svg';\nimport FeedbackIcon from 'Assets/images/icons/feedback-icon.svg';\n\nimport { useSelector } from 'react-redux';\nimport { selectUser } from 'Utils/selectors';\nimport { User } from 'Interfaces/User';\nimport { PlanTypes } from 'Interfaces/Billing';\nimport AccountAvatar from 'Components/AccountAvatar';\nimport { AuthorizedRoutePaths } from 'Interfaces/RoutePaths';\n\nexport interface DropDownUserProps {\n handleLogout: (v: void) => void;\n location: Location;\n isActionHidden?: boolean;\n}\n\nconst LINKS = [\n {\n label: 'Company',\n url: AuthorizedRoutePaths.SETTINGS_COMPANY,\n className: 'dropDownUser__item--fill',\n icon: CompanyIcon,\n },\n {\n label: 'Profile',\n url: AuthorizedRoutePaths.SETTINGS_PROFILE,\n className: 'dropDownUser__item--stroke',\n icon: TeamIcon,\n },\n /* {\n label: 'API',\n url: '/settings/api',\n className: 'dropDownUser__item--stroke',\n icon: IntegrationsIcon,\n }, */\n {\n label: 'Edit Signature',\n url: AuthorizedRoutePaths.SETTINGS_EDIT_SIGNATURE,\n className: 'dropDownUser__item--stroke',\n icon: EditIcon,\n },\n {\n label: 'Billing',\n url: AuthorizedRoutePaths.SETTINGS_BILLING,\n freeUrl: AuthorizedRoutePaths.SETTINGS_BILLING_PLAN,\n className: 'dropDownUser__item--stroke',\n icon: BillingIcon,\n },\n];\n\nconst REDIRECT_LINK = [\n {\n label: 'Feedback',\n url: 'https://feedback.signaturely.com/',\n className: 'dropDownUser__item--stroke',\n icon: FeedbackIcon,\n },\n {\n label: 'Share & Earn',\n url: 'https://refer.signaturely.com/',\n className: 'dropDownUser__item--stroke',\n icon: StarIcon,\n },\n];\n\nfunction DropDownUser({ handleLogout, location, isActionHidden }: DropDownUserProps) {\n const user: User = useSelector(selectUser);\n const [containerRef, isOpen, open, close] = useDropdown();\n const { pathname } = location;\n useEffect(close, [close, pathname]);\n\n return (\n
\n
\n \n

{user.name}

\n \n
\n\n {isOpen && (\n
\n {!isActionHidden && (\n <>\n {LINKS.map(link => {\n const url =\n (user.plan.type === PlanTypes.FREE && link.freeUrl) || link.url;\n\n return (\n \n \n {link.label}\n \n );\n })}\n {REDIRECT_LINK.map(link => (\n \n \n {link.label}\n \n ))}\n \n )}\n handleLogout(undefined)}\n className=\"dropDownUser__item dropDownUser__item--fill\"\n >\n \n Logout\n
\n
\n )}\n \n );\n}\n\nexport default DropDownUser;\n","import React from 'react';\nimport classNames from 'classnames';\nimport { ReactSVG } from 'react-svg';\nimport { ButtonHTMLAttributes } from 'react';\nimport UISpinner from './UISpinner';\n\nexport interface UIButtonProps {\n priority: 'primary' | 'secondary' | 'red' | 'white';\n disabled?: boolean;\n ariaDisabled?: boolean;\n handleClick?: (...args: any[]) => void;\n title?: string;\n type?: ButtonHTMLAttributes<''>['type'];\n leftIcon?: string;\n rightIcon?: string;\n className?: string;\n isLoading?: boolean;\n}\n\nfunction UIButton({\n priority,\n disabled = false,\n ariaDisabled = false,\n handleClick,\n title,\n type = 'button',\n leftIcon,\n rightIcon,\n className,\n isLoading = false,\n}: UIButtonProps) {\n const primary = priority === 'primary';\n const secondary = priority === 'secondary';\n const red = priority === 'red';\n const white = priority === 'white';\n\n return (\n \n {isLoading && }\n {leftIcon && }\n \n {title}\n

\n {rightIcon && (\n \n )}\n \n );\n}\n\nexport default UIButton;\n","import React, { useCallback, useState } from 'react';\nimport { Link } from 'react-router-dom';\nimport SignIcon from 'Assets/images/icons/sign-icon.svg';\nimport SettingsIcon from 'Assets/images/icons/settings-icon.svg';\nimport DocumentsIcon from 'Assets/images/icons/documents-icon.svg';\nimport TemplatesIcon from 'Assets/images/icons/templates-icon.svg';\nimport TeamIcon from 'Assets/images/icons/team-icon.svg';\nimport IntegrationsIcon from 'Assets/images/icons/integrations-icon.svg';\nimport LogoutIcon from 'Assets/images/icons/logout-icon.svg';\nimport ArrowIcon from 'Assets/images/icons/angle-arrow.svg';\nimport CompanyIcon from 'Assets/images/icons/company-icon.svg';\nimport EditIcon from 'Assets/images/icons/edit-icon.svg';\nimport BillingIcon from 'Assets/images/icons/billing-icon.svg';\nimport FormsIcon from 'Assets/images/icons/forms-icon.svg';\nimport { ReactSVG } from 'react-svg';\nimport { useBeaconRemove, useBodyScrollStop } from 'Hooks/Common';\nimport classNames from 'classnames';\nimport AccountAvatar from 'Components/AccountAvatar';\nimport { useSelector } from 'react-redux';\nimport { User } from 'Interfaces/User';\nimport { selectUser } from 'Utils/selectors';\nimport HelpIcon from 'Assets/images/icons/help-icon.svg';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport { AuthorizedRoutePaths } from 'Interfaces/RoutePaths';\nimport { PlanTypes } from 'Interfaces/Billing';\n\nconst LINKS = [\n {\n label: 'Sign',\n url: AuthorizedRoutePaths.SIGN,\n className: 'dropDownMenu__item--fill',\n icon: SignIcon,\n },\n {\n label: 'Documents',\n url: AuthorizedRoutePaths.DOCUMENTS,\n className: 'dropDownMenu__item--stroke',\n icon: DocumentsIcon,\n subMenu: [\n {\n label: 'Completed',\n url: `${AuthorizedRoutePaths.DOCUMENTS}/completed`,\n icon: DocumentsIcon,\n },\n {\n label: 'Awaiting Signature',\n url: `${AuthorizedRoutePaths.DOCUMENTS}/awaiting`,\n icon: DocumentsIcon,\n },\n {\n label: 'Voided',\n url: `${AuthorizedRoutePaths.DOCUMENTS}/voided`,\n icon: DocumentsIcon,\n },\n {\n label: 'Draft',\n url: `${AuthorizedRoutePaths.DOCUMENTS}/draft`,\n icon: DocumentsIcon,\n },\n {\n label: 'Received',\n url: AuthorizedRoutePaths.RECEIVED_DOCUMENTS,\n icon: DocumentsIcon,\n },\n {\n label: 'Trash',\n url: AuthorizedRoutePaths.TRASH,\n icon: DocumentsIcon,\n },\n ],\n },\n {\n label: 'Templates',\n url: AuthorizedRoutePaths.TEMPLATES,\n className: 'dropDownMenu__item--stroke',\n icon: TemplatesIcon,\n subMenu: [\n {\n label: 'Create Template',\n url: `${AuthorizedRoutePaths.TEMPLATES}/create`,\n icon: TemplatesIcon,\n },\n {\n label: 'Templates View',\n url: `${AuthorizedRoutePaths.TEMPLATES}/active`,\n icon: TemplatesIcon,\n },\n {\n label: 'API Templates',\n url: `${AuthorizedRoutePaths.TEMPLATES}/api`,\n icon: TemplatesIcon,\n },\n ],\n },\n {\n label: 'Forms',\n url: AuthorizedRoutePaths.FORM_REQUESTS,\n className: 'dropDownMenu__item--stroke',\n icon: FormsIcon,\n },\n {\n label: 'Team',\n url: AuthorizedRoutePaths.TEAM,\n freeUrl: AuthorizedRoutePaths.SETTINGS_BILLING_PLAN,\n className: 'dropDownMenu__item--stroke',\n icon: TeamIcon,\n },\n {\n label: 'Integrations',\n url: AuthorizedRoutePaths.INTEGRATIONS,\n freeUrl: AuthorizedRoutePaths.SETTINGS_BILLING_PLAN,\n className: 'dropDownMenu__item--stroke',\n icon: IntegrationsIcon,\n },\n {\n label: 'Settings',\n url: AuthorizedRoutePaths.SETTINGS_PROFILE,\n freeUrl: AuthorizedRoutePaths.SETTINGS_BILLING_PLAN,\n className: 'dropDownMenu__item--stroke',\n icon: SettingsIcon,\n subMenu: [\n {\n label: 'Company',\n url: AuthorizedRoutePaths.SETTINGS_COMPANY,\n icon: CompanyIcon,\n },\n {\n label: 'Profile',\n url: AuthorizedRoutePaths.SETTINGS_PROFILE,\n icon: TeamIcon,\n },\n {\n label: 'Edit Signature',\n url: AuthorizedRoutePaths.SETTINGS_EDIT_SIGNATURE,\n icon: EditIcon,\n },\n {\n label: 'Billing',\n url: AuthorizedRoutePaths.SETTINGS_BILLING,\n icon: BillingIcon,\n },\n ],\n },\n];\n\nconst LabelsWithArrow = ['Documents', 'Templates', 'Settings'];\n\ninterface MenuParams {\n handleLogout: (v: void) => void;\n isSignaturesLimited: boolean;\n isActionHidden?: boolean;\n}\n\nexport const Menu = ({\n handleLogout,\n isSignaturesLimited,\n isActionHidden,\n}: MenuParams) => {\n const user: User = useSelector(selectUser);\n const [activeItem, setActiveItem] = useState('');\n const [isUserDropDown, setUserDropDown] = useState(false);\n useBodyScrollStop();\n useBeaconRemove();\n\n const {\n freeDocumentsUsedLimit,\n freeDocumentsUsed,\n personalDocumentsUsedLimit,\n personalDocumentsUsed,\n plan,\n } = useSelector(selectUser);\n\n const signatureCounterByType = {\n [PlanTypes.FREE]: `${freeDocumentsUsed} of ${freeDocumentsUsedLimit} signature requests`,\n [PlanTypes.PERSONAL]: `${personalDocumentsUsed} of ${personalDocumentsUsedLimit} signature requests`,\n };\n\n const handleLinkClick = useCallback(\n link => {\n if (activeItem === link.label) {\n return setActiveItem('');\n }\n\n if (LabelsWithArrow.includes(link.label)) {\n return setActiveItem(link.label);\n }\n },\n [activeItem],\n );\n\n const handleUserClick = useCallback(() => {\n setUserDropDown(prev => !prev);\n }, []);\n\n return (\n
\n {isSignaturesLimited && !isActionHidden && (\n
\n
\n

\n {signatureCounterByType[plan.type]}\n this month\n

\n
\n \n \n \n
\n )}\n {!isActionHidden &&\n LINKS.map(link => {\n return (\n <>\n handleLinkClick(link)}\n key={link.label}\n className={classNames('dropDownMenu__item', link.className, {\n active: link.label === activeItem,\n })}\n >\n
\n \n \n {link.label}\n \n
\n {link.subMenu ? (\n \n ) : null}\n
\n {link.label === activeItem && link.subMenu ? (\n
\n {link.subMenu.map(sublink => (\n \n
{sublink.label}
\n \n ))}\n
\n ) : null}\n \n );\n })}\n
\n
\n \n

{user.name}

\n \n
\n \n \n \n {isUserDropDown ? (\n
\n {!isActionHidden &&\n LINKS[6].subMenu &&\n LINKS[6].subMenu.map(sublink => (\n \n \n
{sublink.label}
\n \n ))}\n
\n handleLogout(undefined)}\n >\n \n Logout\n
\n
\n
\n ) : null}\n \n \n );\n};\n","import { useCallback, useEffect } from 'react';\n\nexport default () => {\n const stopScroll = useCallback(() => {\n const body = document.body;\n body.classList.add('noscroll');\n }, []);\n\n const resetScroll = useCallback(() => {\n const body = document.body;\n body.classList.remove('noscroll');\n }, []);\n\n useEffect(() => {\n stopScroll();\n return () => resetScroll();\n }, [resetScroll, stopScroll]);\n};\n","import React, { useEffect } from 'react';\nimport useDropdown from 'use-dropdown';\nimport { Location } from 'history';\nimport { ReactSVG } from 'react-svg';\nimport MenuIcon from 'Assets/images/icons/menu.svg';\nimport CloseIcon from 'Assets/images/icons/close-icon.svg';\nimport { Menu } from './Menu';\n\nexport interface DropDownUserProps {\n handleLogout: (v: void) => void;\n location: Location;\n isSignaturesLimited: boolean;\n isActionHidden?: boolean;\n}\n\nfunction DropDownMenu({\n handleLogout,\n isSignaturesLimited,\n location,\n isActionHidden,\n}: DropDownUserProps) {\n const [containerRef, isOpen, open, close] = useDropdown();\n const { pathname } = location;\n useEffect(close, [close, pathname]);\n\n return (\n
\n \n {isOpen && (\n \n )}\n
\n );\n}\n\nexport default DropDownMenu;\n","import React, { useCallback, useMemo } from 'react';\nimport useBlackFridayBanner from 'Hooks/Common/useBlackFridayBanner';\nimport History from 'Services/History';\nimport { AuthorizedRoutePaths, UnauthorizedRoutePaths } from 'Interfaces/RoutePaths';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport classNames from 'classnames';\nimport { PlanDurations, discountByDuration } from 'Interfaces/Billing';\n\ninterface BlackFridayBannerProps {\n isAuthorizedPage?: boolean;\n}\n\nconst BlackFridayBanner = ({ isAuthorizedPage = true }: BlackFridayBannerProps) => {\n const isMobile = useIsMobile();\n const [isShowBanner] = useBlackFridayBanner();\n const isShowRedirect = useMemo(() => {\n const path = History.location.pathname;\n\n if (\n path === UnauthorizedRoutePaths.SIGN_UP_BUSINESS ||\n path === UnauthorizedRoutePaths.SIGN_UP_PERSONAL\n ) {\n return false;\n }\n\n return true;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [History.location.pathname]);\n\n const discount = discountByDuration[PlanDurations.ANNUALLY];\n\n const handleRedirect = useCallback(() => {\n if (!isAuthorizedPage) {\n return History.push(UnauthorizedRoutePaths.SIGN_UP_BUSINESS);\n }\n\n History.push(AuthorizedRoutePaths.SETTINGS_BILLING_PLAN);\n }, [isAuthorizedPage]);\n\n if (!isShowBanner) {\n return null;\n }\n\n return (\n
\n
\n
\n \n Black Friday: Get up to {discount}% OFF on our Business Plan\n \n
\n {isShowRedirect && (\n
\n Save now\n
\n )}\n
\n
\n );\n};\n\nexport default BlackFridayBanner;\n","import { useCallback, useEffect, useState } from 'react';\nimport { IS_BLACK_FRIDAY } from 'Utils/constants';\n\nexport default () => {\n const [isShowBanner, setShowBanner] = useState(false);\n\n const closeBanner = useCallback(() => {\n setShowBanner(false);\n }, []);\n\n useEffect(() => {\n if (IS_BLACK_FRIDAY) {\n setShowBanner(true);\n }\n }, []);\n\n return [isShowBanner, closeBanner] as const;\n};\n","import React from 'react';\nimport { UIModalProps } from './interfaces/UIModal';\nimport ReactModal from 'react-modal';\nimport classNames from 'classnames';\nimport CloseIcon from 'Assets/images/icons/close-icon.svg';\nimport { ReactSVG } from 'react-svg';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\n\nfunction UIModal({\n onClose,\n children,\n className,\n overlayClassName,\n isOverlayTransparent = false,\n hideCloseIcon = false,\n shouldCloseOnOverlayClick = true,\n}: UIModalProps) {\n const isMobile = useIsMobile();\n return (\n \n {!hideCloseIcon && (\n \n )}\n {children}\n \n );\n}\n\nexport default UIModal;\n","import React, { useCallback, useMemo } from 'react';\nimport { ReactSVG } from 'react-svg';\nimport classNames from 'classnames';\n\nimport Icon from 'Assets/images/icons/checkbox-arrow.svg';\n\nexport interface UICheckboxProps {\n handleClick?: (label?: string) => void;\n label?: string;\n check?: boolean;\n disabled?: boolean;\n children?: React.ReactNode;\n}\n\nfunction UICheckbox({\n label,\n handleClick,\n check = false,\n disabled,\n children,\n}: UICheckboxProps) {\n const handleCheckboxClick = useCallback(() => {\n if (!disabled && handleClick) handleClick(label);\n }, [disabled, handleClick, label]);\n const disabledClassName = useMemo(() => disabled && 'uiCheckbox--disabled', [disabled]);\n\n return (\n \n
\n {check ? (\n \n \n
\n ) : (\n \n )}\n {(label || children) && (\n

\n {label || children}\n

\n )}\n \n \n );\n}\n\nexport default UICheckbox;\n","import React, { useEffect, useState, useRef } from 'react';\nimport useDropdown from 'use-dropdown';\nimport { ReactSVG } from 'react-svg';\nimport classNames from 'classnames';\nimport IconSelectArrow from 'Assets/images/icons/select-arrow-icon.svg';\nimport { findOffsetParent } from 'Utils/functions';\n\ninterface DropDownOption {\n icon: string;\n name: string;\n onClick: () => void;\n hidden?: boolean;\n disabled?: boolean;\n className?: string;\n classNameText?: string;\n iconClassName?: string;\n}\n\ninterface DropDownOptionsInterface {\n options: DropDownOption[];\n anchorClassName: string;\n}\n\nconst DropDownOptions = ({ options, anchorClassName }: DropDownOptionsInterface) => {\n const [containerRef, isOpen, open, close] = useDropdown();\n const [isPlaceOnTop, setIsPlaceOnTop] = useState(false);\n const dropdownListRef = useRef(null);\n const toggleDropdown = () => {\n if (isOpen) {\n close();\n } else {\n open();\n }\n };\n useEffect(() => {\n const { anchor, elementsPath } = findOffsetParent(\n containerRef.current,\n offsetParent => !!offsetParent?.classList.contains(anchorClassName),\n );\n const containerHeight = anchor?.clientHeight || 0;\n const { offsetTop } = containerRef.current;\n const offsetsSum = elementsPath.reduce(\n (accum, element) => accum + element.offsetTop,\n 0,\n );\n const { clientHeight: dropdownListHeight } =\n dropdownListRef.current || ({} as HTMLDivElement);\n\n setIsPlaceOnTop(containerHeight < dropdownListHeight + offsetTop + offsetsSum);\n }, [containerRef, isOpen, anchorClassName]);\n\n return (\n
\n \n {isOpen && (\n \n {options\n .filter(option => !option.hidden)\n .map(option => (\n {\n option.onClick();\n close();\n }}\n >\n \n \n {option.name}\n
\n \n ))}\n \n )}\n \n );\n};\n\nexport default DropDownOptions;\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { TeamMembersGetPayload } from 'Interfaces/Team';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: TeamMembersGetPayload) =>\n $actions.team.getTeamMembers(dispatch, payload),\n );\n};\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { TeamMembersAddPayload } from 'Interfaces/Team';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((values: TeamMembersAddPayload) =>\n $actions.team.addTeamMembers(dispatch, values),\n );\n};\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { TeamMember } from 'Interfaces/Team';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((teamMembersIds: TeamMember['id'][]) =>\n $actions.team.deleteTeamMembers(dispatch, { teamMembersIds }),\n );\n};\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { UserIdPayload } from 'Interfaces/User';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: UserIdPayload) =>\n $actions.team.upgradeToAdmin(dispatch, payload),\n );\n};\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { UserIdPayload } from 'Interfaces/User';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: UserIdPayload) =>\n $actions.team.downgradeToUser(dispatch, payload),\n );\n};\n","import React, { useMemo, useCallback } from 'react';\nimport classNames from 'classnames';\nimport * as _ from 'lodash';\nimport { TeamMember } from 'Interfaces/Team';\nimport { UserRoles } from 'Interfaces/User';\n\nimport UICheckbox from 'Components/UIComponents/UICheckbox';\nimport DropDownOptions from 'Components/DropDownOptions';\n\nimport KeyIcon from 'Assets/images/icons/key-icon.svg';\nimport { useToAdminUpgrade, useToUserDowngrade } from 'Hooks/Team';\nimport Toast from 'Services/Toast';\nimport { Avatar } from 'Components/Avatar/Avatar';\n\ninterface TeamMemberItemProps {\n teamMember: TeamMember;\n toggleSelect: (teamMemberId: TeamMember['id']) => void;\n className?: string;\n isSelected?: boolean;\n isSelectable?: boolean;\n isEditEnabled?: boolean;\n isChangingRoleEnabled?: boolean;\n}\n\nconst TeamMemberItem = ({\n teamMember,\n className,\n isSelected = false,\n isSelectable,\n isChangingRoleEnabled = true,\n isEditEnabled = true,\n toggleSelect = () => {},\n}: TeamMemberItemProps) => {\n const [upgradeToAdmin, isUpgradingToAdmin] = useToAdminUpgrade();\n const [downgradeToUser, isDowngradeToUser] = useToUserDowngrade();\n\n const handleToAdminUpgrade = useCallback(async () => {\n try {\n await upgradeToAdmin({ userId: teamMember.id });\n\n Toast.success('Team member successfully upgraded to admin.');\n } catch (err) {\n Toast.handleErrors(err);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handleToUserDowngrade = useCallback(async () => {\n try {\n await downgradeToUser({ userId: teamMember.id });\n\n Toast.success('Team member successfully downgraded to user.');\n } catch (err) {\n Toast.handleErrors(err);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handleSelectionToggle = useCallback(() => {\n toggleSelect(teamMember.id);\n }, [toggleSelect, teamMember.id]);\n\n const options = useMemo(() => {\n return [\n {\n name: 'Upgrade to Admin',\n icon: KeyIcon,\n hidden: teamMember.role !== UserRoles.USER || !isChangingRoleEnabled,\n disabled: isUpgradingToAdmin,\n onClick: handleToAdminUpgrade,\n },\n {\n name: 'Downgrade to User',\n icon: KeyIcon,\n hidden: teamMember.role !== UserRoles.ADMIN || !isChangingRoleEnabled,\n disabled: isDowngradeToUser,\n onClick: handleToUserDowngrade,\n },\n ];\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isUpgradingToAdmin, isDowngradeToUser, teamMember.role]);\n\n const hasActions = useMemo(() => !!options.filter(option => !option.hidden).length, [\n options,\n ]);\n\n return (\n
\n
\n {isSelectable && (\n \n )}\n
\n
\n
\n \n

{teamMember.name}

\n
\n
\n
{teamMember.email}
\n
\n {_.capitalize(teamMember.role)}\n
\n {(isEditEnabled || isChangingRoleEnabled) && (\n \n \n
\n )}\n \n );\n};\n\nexport default TeamMemberItem;\n","import React, { useEffect, useState, useRef } from 'react';\nimport useDropdown from 'use-dropdown';\nimport { ReactSVG } from 'react-svg';\nimport classNames from 'classnames';\nimport { findOffsetParent } from 'Utils/functions';\n\ninterface DropDownOption {\n icon: string;\n name: string;\n onClick: () => void;\n className?: string;\n classNameIcon?: string;\n hidden: boolean;\n}\n\ninterface DropDownOptionsInterface {\n options: DropDownOption[];\n anchorClassName: string;\n}\n\nconst DropDownOptionsMobile = ({\n options,\n anchorClassName,\n}: DropDownOptionsInterface) => {\n const [containerRef, isOpen, open, close] = useDropdown();\n const [isPlaceOnTop, setIsPlaceOnTop] = useState(false);\n const dropdownListRef = useRef(null);\n const toggleDropdown = () => {\n if (isOpen) {\n close();\n } else {\n open();\n }\n };\n useEffect(() => {\n const { anchor, elementsPath } = findOffsetParent(\n containerRef.current,\n offsetParent => !!offsetParent?.classList.contains(anchorClassName),\n );\n const containerHeight = anchor?.clientHeight || 0;\n const { offsetTop } = containerRef.current;\n const offsetsSum = elementsPath.reduce(\n (accum, element) => accum + element.offsetTop,\n 0,\n );\n const { clientHeight: dropdownListHeight } =\n dropdownListRef.current || ({} as HTMLDivElement);\n\n setIsPlaceOnTop(containerHeight < dropdownListHeight + offsetTop + offsetsSum);\n }, [containerRef, isOpen, anchorClassName]);\n\n return (\n
\n \n {isOpen && (\n \n {options\n .filter(option => !option.hidden)\n .map(option => (\n {\n option.onClick();\n close();\n }}\n >\n \n \n {option.name}\n
\n \n ))}\n \n )}\n \n );\n};\n\nexport default DropDownOptionsMobile;\n","import React from 'react';\nimport classNames from 'classnames';\nimport UIModal from 'Components/UIComponents/UIModal';\nimport UIButton, { UIButtonProps } from 'Components/UIComponents/UIButton';\nimport { UIModalProps } from 'Components/UIComponents/interfaces/UIModal';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\n\nexport interface ConfirmModalProps extends UIModalProps {\n onConfirm?: () => void;\n onCancel?: () => void;\n confirmText?: string;\n cancelText?: string;\n confirmButtonProps?: Partial;\n cancelButtonProps?: Partial;\n confirmComponent?: React.FunctionComponent;\n cancelComponent?: React.FunctionComponent;\n buttonsBlockClassName?: string;\n isCancellable?: boolean;\n footer?: React.ReactNode;\n}\n\nfunction ConfirmModal({\n onConfirm,\n onCancel,\n onClose,\n children,\n confirmText,\n cancelText,\n confirmButtonProps,\n cancelButtonProps,\n confirmComponent: ConfirmComponent,\n cancelComponent: CancelComponent,\n buttonsBlockClassName,\n isCancellable = true,\n footer,\n ...modalProps\n}: ConfirmModalProps) {\n const isMobile = useIsMobile();\n return (\n \n
\n
\n {children}\n
\n
\n
\n {ConfirmComponent ? (\n \n ) : (\n \n )}\n
\n {isCancellable &&\n (CancelComponent ? (\n \n ) : (\n \n ))}\n
\n {footer &&
{footer}
}\n
\n
\n );\n}\n\nexport default ConfirmModal;\n","import React from 'react';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport { UIModalProps } from 'Components/UIComponents/interfaces/UIModal';\nimport ConfirmModal from 'Components/ConfirmModal';\n\ninterface DeleteModalProps extends UIModalProps {\n onClose: () => void;\n onConfirm: () => void;\n deleteTitle?: string;\n cancelTitle?: string;\n className?: string;\n}\n\nconst DeleteModal = ({\n onClose,\n onConfirm,\n children,\n deleteTitle = 'Yes, Delete',\n cancelTitle,\n ...modalProps\n}: DeleteModalProps) => {\n return (\n (\n \n )}\n cancelComponent={() => (\n
\n {cancelTitle}\n
\n )}\n isCancellable={!!cancelTitle}\n isOverlayTransparent={true}\n {...modalProps}\n >\n {children}\n \n );\n};\n\nexport default DeleteModal;\n","import React, { useCallback, useMemo } from 'react';\nimport classNames from 'classnames';\nimport * as _ from 'lodash';\nimport { TeamMember } from 'Interfaces/Team';\nimport { Avatar } from 'Components/Avatar/Avatar';\nimport KeyIcon from 'Assets/images/icons/key-icon.svg';\nimport RemoveIcon from 'Assets/images/icons/remove-icon.svg';\nimport { UserRoles } from 'Interfaces/User';\nimport DropDownOptionsMobile from 'Pages/Documents/components/DocumentItem/DropDownOptionsMobile';\nimport { useTeamMembersDelete, useToAdminUpgrade, useToUserDowngrade } from 'Hooks/Team';\nimport Toast from 'Services/Toast';\nimport UISpinner from 'Components/UIComponents/UISpinner';\nimport { useModal } from 'Hooks/Common';\nimport DeleteModal from 'Components/DeleteModal';\nimport UICheckbox from 'Components/UIComponents/UICheckbox';\n\ninterface TeamMemberItemMobileProps {\n teamMember: TeamMember;\n isChangingRoleEnabled: boolean;\n isEditEnabled: boolean;\n toggleSelect?: () => void;\n isSelectable?: boolean;\n isSelected?: boolean;\n}\n\nconst TeamMemberItemMobile = ({\n teamMember,\n isChangingRoleEnabled,\n isEditEnabled,\n isSelected,\n toggleSelect = () => {},\n isSelectable,\n}: TeamMemberItemMobileProps) => {\n const [upgradeToAdmin, isUpgradingToAdmin] = useToAdminUpgrade();\n const [downgradeToUser, isDowngradeToUser] = useToUserDowngrade();\n const [deleteTeamMembers, isTeamMemberDeleting] = useTeamMembersDelete();\n\n const handleDeleteTeamMember = useCallback(async () => {\n const teamMembersIds = [teamMember.id];\n try {\n await deleteTeamMembers(teamMembersIds);\n\n Toast.success('Team member deleted successfully');\n } catch (error) {\n Toast.handleErrors(error);\n }\n }, [deleteTeamMembers, teamMember]);\n\n const [showDeleteModal, hideDeleteModal, isDeleteModalOpen] = useModal(\n () => (\n {\n handleDeleteTeamMember();\n hideDeleteModal();\n }}\n className=\"documents__deleteWrapper\"\n deleteTitle=\"Delete User\"\n >\n
\n
\n Are you sure you want to delete this team member?\n
\n

\n If you want to remove the user so they can't access Signaturely anymore,\n please continue.\n

\n
\n \n ),\n [handleDeleteTeamMember],\n );\n\n const handleToAdminUpgrade = useCallback(async () => {\n try {\n await upgradeToAdmin({ userId: teamMember.id });\n\n Toast.success('Team member successfully upgraded to admin.');\n } catch (err) {\n Toast.handleErrors(err);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handleToUserDowngrade = useCallback(async () => {\n try {\n await downgradeToUser({ userId: teamMember.id });\n\n Toast.success('Team member successfully downgraded to user.');\n } catch (err) {\n Toast.handleErrors(err);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const options = useMemo(\n () => [\n {\n name: 'Upgrade to Admin',\n icon: KeyIcon,\n hidden: teamMember.role !== UserRoles.USER || !isChangingRoleEnabled,\n disabled: isUpgradingToAdmin,\n onClick: handleToAdminUpgrade,\n },\n {\n name: 'Downgrade to User',\n icon: KeyIcon,\n hidden: teamMember.role !== UserRoles.ADMIN || !isChangingRoleEnabled,\n disabled: isDowngradeToUser,\n onClick: handleToUserDowngrade,\n },\n {\n name: 'Remove from team',\n icon: RemoveIcon,\n hidden: teamMember.role === UserRoles.OWNER || !isChangingRoleEnabled,\n disabled: false,\n onClick: showDeleteModal,\n className: 'red',\n },\n ],\n [\n handleToAdminUpgrade,\n handleToUserDowngrade,\n isChangingRoleEnabled,\n isDowngradeToUser,\n isUpgradingToAdmin,\n showDeleteModal,\n teamMember.role,\n ],\n );\n\n const hasActions = useMemo(() => !!options.filter(option => !option.hidden).length, [\n options,\n ]);\n\n return (\n
\n
\n {isSelectable && (\n toggleSelect()} check={isSelected} />\n )}\n
\n
\n \n
\n
\n
{teamMember.name}
\n
\n {_.capitalize(teamMember.role)}\n
\n
\n {teamMember.email}\n
\n
\n {(isEditEnabled || isChangingRoleEnabled) && (\n \n {isTeamMemberDeleting ? (\n \n ) : (\n \n )}\n
\n )}\n \n );\n};\n\nexport default TeamMemberItemMobile;\n","import React from 'react';\nimport { ReactSVG } from 'react-svg';\nimport className from 'classnames';\nimport CircleAdd from 'Assets/images/icons/circle-add-icon.svg';\n\ninterface UIAddButtonProps {\n onClick?: () => void;\n label?: string;\n wrapperClassName?: string;\n iconClassName?: string;\n labelClassName?: string;\n}\n\nexport const UIAddButton = ({\n onClick,\n label,\n wrapperClassName,\n iconClassName,\n labelClassName,\n}: UIAddButtonProps) => {\n return (\n
\n \n {label &&

{label}

}\n
\n );\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport { ReactSVG } from 'react-svg';\nimport { UITextFieldProps } from './interfaces/UITextField';\n\nexport type UITextInputProps = UITextFieldProps & {\n wrapperClassName?: string;\n inputClassName?: string;\n onIconFocus?: (state: boolean) => void;\n iconFocusState?: boolean;\n};\n\nfunction UITextInput(props: UITextInputProps, ref) {\n const {\n onBlur,\n onFocus,\n onChange,\n onKeyUp,\n onKeyDown,\n value,\n placeholder,\n error,\n required,\n type = 'text',\n icon,\n min,\n autofocus = false,\n disabled = false,\n hidden,\n wrapperClassName,\n inputClassName,\n readOnly,\n onIconFocus,\n iconFocusState,\n autoComplete,\n } = props;\n\n return (\n
\n \n {icon && (\n onIconFocus && onIconFocus(true)}\n onMouseLeave={() => onIconFocus && onIconFocus(false)}\n onClick={() => onIconFocus && onIconFocus(!iconFocusState)}\n className=\"form__input-icon\"\n />\n )}\n
\n );\n}\n\nexport default React.forwardRef(UITextInput);\n","import classNames from 'classnames';\nimport React, { useCallback, useState } from 'react';\nimport { ReactSVG } from 'react-svg';\nimport useDropdown from 'use-dropdown';\n\nimport { SelectableOption } from 'Interfaces/Common';\n\nimport CloseIcon from 'Assets/images/icons/close-icon.svg';\nimport SelectIcon from 'Assets/images/icons/select-arrow-icon.svg';\nimport IconSearch from 'Assets/images/icons/search.svg';\nimport UISpinner from './UISpinner';\nimport UITextInput from './UITextInput';\n\nexport interface UISelectProps {\n handleSelect: (value?: TValue) => void;\n onFocus?: () => void;\n onBlur?: () => void;\n options: SelectableOption[];\n children?: Node;\n value?: TValue | null;\n placeholder: string;\n contentWrapperClassName?: string;\n className?: string;\n icon?: string;\n emptyText?: string;\n isClearable?: boolean;\n disabled?: boolean;\n isLoading?: boolean;\n isSearchable?: boolean;\n searchInputPlaceholder?: string;\n searchWrapperClassName?: string;\n}\n\nfunction UISelect({\n options,\n placeholder,\n icon,\n value,\n contentWrapperClassName,\n className,\n handleSelect,\n onBlur,\n onFocus,\n emptyText,\n isClearable = false,\n disabled = false,\n isLoading,\n isSearchable = false,\n searchInputPlaceholder,\n searchWrapperClassName,\n}: UISelectProps) {\n const [containerRef, isOpen, open, close] = useDropdown();\n\n const selectedOption =\n options.find(option => option.value === value) || ({} as typeof options[0]);\n\n const [filteredOptions, setFilteredOptions] = useState[]>(\n options,\n );\n\n const { label } = selectedOption;\n\n const addItem = item => {\n handleSelect(item.value);\n close();\n };\n\n const onClear = e => {\n e.stopPropagation();\n handleSelect(undefined);\n };\n\n const toggleDropdown = useCallback(() => {\n if (disabled) return;\n\n setFilteredOptions(options);\n\n if (isOpen) {\n onBlur && onBlur();\n close();\n } else {\n onFocus && onFocus();\n open();\n }\n }, [disabled, options, isOpen, onBlur, close, onFocus, open]);\n\n const handleFilterOptions = useCallback(\n (event: React.KeyboardEvent) => {\n const searchString = event.currentTarget.value.trim().toLowerCase();\n\n const searchOptions = options.filter(\n option => option.label.toLowerCase().indexOf(searchString) !== -1,\n );\n\n setFilteredOptions(searchOptions);\n },\n [options],\n );\n\n const isNotEmptyOptions =\n filteredOptions && filteredOptions.length > 0 && options.length > 0;\n\n const isNoSearchOptions =\n filteredOptions && filteredOptions.length === 0 && options.length > 0;\n\n return (\n
\n \n \n {icon && }\n
\n {label ? (\n

{label}

\n ) : (\n

{placeholder}

\n )}\n
\n
\n\n {isClearable && (\n onClear(e)}\n className=\"uiSelect__clear\"\n />\n )}\n\n {isLoading ? (\n \n ) : (\n \n )}\n \n {isOpen && (\n
\n {isSearchable && (\n {\n if (event.key === 'Enter') event.preventDefault();\n }}\n icon={IconSearch}\n />\n )}\n \n {isNotEmptyOptions ? (\n
\n {filteredOptions\n .filter(item => !(item.value === selectedOption.value))\n .map((item, index) => {\n const { label: optionLabel } = item;\n return (\n addItem(item)}\n className=\"uiSelect__search-item\"\n >\n

{optionLabel}

\n
\n );\n })}\n
\n ) : isSearchable && isNoSearchOptions ? (\n

No search results found.

\n ) : (\n

{emptyText || 'Empty list'}

\n )}\n \n \n )}\n \n );\n}\n\nexport default UISelect;\n","import React from 'react';\nimport { FieldRenderProps } from 'react-final-form';\n\nexport interface FormErrorProps {\n meta: FieldRenderProps['meta'];\n}\n\nfunction FormError({ meta: { error, submitError } }: FormErrorProps) {\n const inputErrors = error || submitError;\n\n return (\n
\n {Array.isArray(inputErrors) ? (\n inputErrors.map((item, index) => (\n

\n {item}\n

\n ))\n ) : (\n

{inputErrors}

\n )}\n
\n );\n}\n\nexport default FormError;\n","import CircleClose from 'Assets/images/icons/circle-close.svg';\nimport FormError from 'Components/UIComponents/FormError';\nimport UITextInput from 'Components/UIComponents/UITextInput';\nimport React from 'react';\nimport { FieldRenderProps } from 'react-final-form';\nimport { ReactSVG } from 'react-svg';\n\ninterface TeammateEmailProps extends FieldRenderProps {\n isDeletable?: boolean;\n onDelete?: () => void;\n}\n\nconst TeammateEmail = ({ input, meta, isDeletable, onDelete }: TeammateEmailProps) => {\n const { error, touched, submitError, dirtySinceLastSubmit } = meta;\n const isError = (error && touched) || (submitError && !dirtySinceLastSubmit);\n\n return (\n
\n
\n \n {isDeletable && (\n \n )}\n
\n
{isError && }
\n
\n );\n};\n\nexport default TeammateEmail;\n","import CircleClose from 'Assets/images/icons/circle-close.svg';\nimport FormError from 'Components/UIComponents/FormError';\nimport UITextInput from 'Components/UIComponents/UITextInput';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport classNames from 'classnames';\nimport React from 'react';\nimport { FieldRenderProps } from 'react-final-form';\nimport { ReactSVG } from 'react-svg';\n\ninterface TeammateNameProps extends FieldRenderProps {\n isDeletable?: boolean;\n onDelete?: () => void;\n}\n\nconst TeammateName = ({ input, meta, isDeletable, onDelete }: TeammateNameProps) => {\n const { error, touched, submitError, dirtySinceLastSubmit } = meta;\n const isError = (error && touched) || (submitError && !dirtySinceLastSubmit);\n const isMobile = useIsMobile();\n\n return (\n
\n
\n \n {isDeletable && (\n \n )}\n
\n
{isError && }
\n
\n );\n};\n\nexport default TeammateName;\n","import { composeValidators } from 'Utils/functions';\nimport { email, name as nameValidator, required } from 'Utils/validation';\nimport classNames from 'classnames';\nimport React, { useCallback } from 'react';\nimport { Field } from 'react-final-form';\nimport { FieldArrayRenderProps } from 'react-final-form-arrays';\n\nimport { UIAddButton } from 'Components/UIComponents/UIAddButton';\nimport UISelect from 'Components/UIComponents/UISelect';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport { TeammateField } from 'Interfaces/Document';\nimport { TeammateRoles, UserRoles } from 'Interfaces/User';\nimport { removeEmptyCharacters } from 'Utils/formatters';\nimport { TeammateEmail } from './TeammateEmail';\nimport { TeammateName } from './TeammateName';\n\ninterface IsDepetablePredicateArgument {\n itemIndex: number;\n fields: FieldArrayRenderProps, HTMLElement>['fields'];\n}\n\nexport interface TeammateFieldsArrayProps\n extends FieldArrayRenderProps, HTMLElement> {\n label?: string;\n labelClassName?: string;\n addLabel?: string;\n isAddable?: boolean;\n isItemsDeletable?: boolean;\n isRoleSelectable?: boolean;\n isItemDeletablePredicate?: (arg: IsDepetablePredicateArgument) => boolean;\n teamSizeLimit?: number;\n teamSize?: number;\n}\n\nfunction TeammateFieldArray({\n fields,\n label = 'Teammate',\n labelClassName,\n addLabel = 'Recipients',\n isAddable = true,\n isItemsDeletable,\n isRoleSelectable,\n isItemDeletablePredicate,\n}: TeammateFieldsArrayProps) {\n const isMobile = useIsMobile();\n\n const handleAddTeammate = useCallback(() => {\n fields.push({ role: UserRoles.USER });\n }, [fields]);\n\n return (\n <>\n {label &&

{label}

}\n
    \n {fields.map((name, index) => (\n
  • \n fields.remove(index)}\n parse={removeEmptyCharacters}\n validate={composeValidators(required, email)}\n />\n \n
    \n (required, nameValidator)}\n />\n (\n {\n fields.update(index, { ...fields.value[index], role: value });\n }}\n value={input.value}\n disabled={!isRoleSelectable}\n />\n )}\n validate={required}\n />\n
    \n \n
  • \n ))}\n
\n {isAddable && (\n \n )}\n \n );\n}\n\nexport default TeammateFieldArray;\n","import arrayMutators from 'final-form-arrays';\nimport React, { useCallback, useMemo } from 'react';\nimport { Form, FormRenderProps } from 'react-final-form';\nimport { FieldArray } from 'react-final-form-arrays';\n\nimport { OnSubmitReturnType } from 'Interfaces/FinalForm';\n\nimport { TeammateFieldArray } from 'Components/FormFields/TeammatesArray';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport {\n AppSumoStatus,\n LtdTier,\n PlanDetails,\n PlanDurations,\n SubscriptionInfo,\n} from 'Interfaces/Billing';\nimport { TeamMembersAddPayload } from 'Interfaces/Team';\nimport { UserRoles } from 'Interfaces/User';\nimport dayjs from 'dayjs';\nimport { isNotEmpty } from 'Utils/functions';\n\ninterface TeamMembersAddModalProps {\n subscriptionInfo: SubscriptionInfo;\n userRole: UserRoles;\n plan: PlanDetails;\n appSumoStatus: AppSumoStatus;\n sendDocument: (values: TeamMembersAddPayload) => OnSubmitReturnType;\n onClose: () => void;\n ltdTier: LtdTier;\n teamSize: number;\n}\n\nconst formInitialValues = {\n members: [{ role: UserRoles.USER }],\n} as TeamMembersAddPayload;\n\nconst TeamMembersAddModal = ({\n sendDocument,\n onClose,\n subscriptionInfo,\n userRole,\n plan,\n appSumoStatus,\n ltdTier,\n teamSize,\n}: TeamMembersAddModalProps) => {\n const { subscriptionPrice, nextBillingDate } = useMemo(() => {\n return {\n subscriptionPrice: subscriptionInfo.amount - subscriptionInfo.discountAmount,\n nextBillingDate: dayjs(subscriptionInfo.nextBillingDate).format('MMMM DD, YYYY'),\n };\n }, [subscriptionInfo]);\n\n const handleSendDocument = useCallback(\n async (values: TeamMembersAddPayload) => {\n await sendDocument(values);\n onClose();\n },\n [onClose, sendDocument],\n );\n\n return (\n
\n
\n

Add Team Member

\n

\n Invite new team members to your Signaturely account.\n

\n
\n ) => (\n
\n
\n \n
\n {userRole === UserRoles.OWNER &&\n (!(appSumoStatus || isNotEmpty(ltdTier)) ||\n (appSumoStatus === AppSumoStatus.STANDARD &&\n isNotEmpty(subscriptionInfo))) && (\n <>\n
\n You’ll be charged\n  \n \n ${(values.members.length * subscriptionPrice).toFixed(2)}\n \n  \n \n for inviting per{' '}\n {plan.duration === PlanDurations.MONTHLY ? 'month' : 'year'}\n \n  \n \n {values.members.length} new user(s)\n {' '}\n  (\n {`$${subscriptionPrice}/${\n plan.duration === PlanDurations.MONTHLY ? 'mo' : 'yr'\n } for each user`}\n ).\n
\n
\n The pricing change will be reflected on your next bill on (\n {nextBillingDate}\n ).\n
\n \n )}\n
\n
\n \n
\n
\n Cancel\n
\n
\n
\n )}\n />\n
\n );\n};\n\nexport default TeamMembersAddModal;\n","import React from 'react';\nimport classnames from 'classnames';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport DocumentsIcon from 'Assets/images/icons/documents-icon.svg';\nimport { ReactSVG } from 'react-svg';\n\ninterface EmptyTableProps {\n onClick: () => void;\n headerText: string;\n description?: string;\n buttonText?: string;\n icon?: string;\n iconClassName?: string;\n buttonClassName?: string;\n}\n\nconst EmptyTable = ({\n headerText,\n description,\n buttonText,\n icon = DocumentsIcon,\n iconClassName,\n buttonClassName,\n onClick,\n}: EmptyTableProps) => {\n return (\n
\n
\n
\n \n
\n
{headerText}
\n
{description}
\n
\n \n
\n
\n
\n );\n};\n\nexport default EmptyTable;\n","import { User } from '@sentry/react';\nimport classNames from 'classnames';\nimport UISpinner from 'Components/UIComponents/UISpinner';\nimport { SelectableItem } from 'Interfaces/Common';\nimport { TeamMember } from 'Interfaces/Team';\nimport React from 'react';\nimport TeamMemberItemMobile from './TeamMemberItemMobile';\nimport IconRemove from 'Assets/images/icons/remove-icon.svg';\nimport { ReactSVG } from 'react-svg';\nimport { UserRoles } from 'Interfaces/User';\n\ninterface TeamMemberListMobileViewProps {\n isLoading: boolean;\n teamMembers: SelectableItem[];\n isEditEnabled: boolean;\n isChangingRoleEnabled: boolean;\n toggleItemSelection?: (teamMemberId: string) => void;\n user: User;\n isOwnerOrAdmin?: boolean;\n openDeleteModal: () => void;\n}\n\nexport const TeamMemberListMobileView = ({\n isLoading,\n teamMembers,\n isEditEnabled,\n isChangingRoleEnabled,\n toggleItemSelection,\n user,\n isOwnerOrAdmin,\n openDeleteModal,\n}: TeamMemberListMobileViewProps) => {\n return (\n
\n
\n {isOwnerOrAdmin && (\n \n \n Delete\n \n )}\n
\n
\n
\n
\n
MEMBERS
\n
\n {isLoading ? (\n
\n \n
\n ) : (\n teamMembers.map(teamMember => {\n return (\n \n toggleItemSelection && toggleItemSelection(teamMember.id)\n }\n isSelected={teamMember.isSelected}\n isSelectable={\n teamMember.id !== user.id &&\n teamMember.role !== UserRoles.OWNER &&\n (user.role === UserRoles.OWNER ||\n (teamMember.role === UserRoles.USER && isOwnerOrAdmin))\n }\n />\n );\n })\n )}\n
\n
\n
\n );\n};\n","import React, { useMemo } from 'react';\nimport { ReactSVG } from 'react-svg';\nimport classNames from 'classnames';\nimport History from 'Services/History';\nimport { TablePaginationProps, SelectableItem } from 'Interfaces/Common';\nimport EmptyTable from 'Components/EmptyTable';\nimport IconRemove from 'Assets/images/icons/remove-icon.svg';\nimport IconSort from 'Assets/images/icons/sort.svg';\nimport TeamMemberItem from './TeamMemberItem';\nimport UISpinner from 'Components/UIComponents/UISpinner';\nimport { TeamMember } from 'Interfaces/Team';\nimport TeamIcon from 'Assets/images/icons/team-empty-icon.svg';\nimport { User, UserRoles } from 'Interfaces/User';\nimport { PlanTypes } from 'Interfaces/Billing';\nimport { TeamMemberListMobileView } from './TeamMemberListMobileView';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport { AuthorizedRoutePaths } from 'Interfaces/RoutePaths';\n\ninterface TeamMembersListProps {\n user: User;\n teamMembers: SelectableItem[];\n paginationProps?: TablePaginationProps;\n toggleItemSelection?: (teamMemberId: string) => void;\n isLoading: boolean;\n requestOrdering?: (key: keyof TeamMember) => void;\n isDeleteModalOpen: boolean;\n openDeleteModal: () => void;\n}\n\nfunction TeamMembersList({\n teamMembers,\n toggleItemSelection,\n isLoading,\n requestOrdering,\n isDeleteModalOpen,\n openDeleteModal,\n user,\n}: TeamMembersListProps) {\n const isMobile = useIsMobile();\n\n const isBusinessPlan = useMemo(() => {\n return !!user.plan.type && user.plan.type === PlanTypes.BUSINESS;\n }, [user.plan.type]);\n\n const isTableEmpty = useMemo(() => {\n return (!isBusinessPlan && !user.teamId) || teamMembers.length === 0;\n }, [isBusinessPlan, user.teamId, teamMembers.length]);\n\n const isOwnerOrAdmin = useMemo(() => {\n return user.role === UserRoles.OWNER || user.role === UserRoles.ADMIN;\n }, [user.role]);\n\n const emptyTableProps = useMemo(() => {\n return !isBusinessPlan\n ? {\n buttonText: 'Upgrade to Business',\n headerText: 'Start adding team members!',\n description: 'Upgrade to business to add team members to your account',\n }\n : {\n buttonClassName: 'team__button--hide',\n headerText: 'Start adding team members!',\n };\n }, [isBusinessPlan]);\n\n if (isTableEmpty)\n return (\n
\n {\n History.push(AuthorizedRoutePaths.SETTINGS_BILLING_PLAN);\n }}\n icon={TeamIcon}\n iconClassName=\"empty-table__icon--team\"\n />\n
\n );\n\n return isMobile ? (\n \n ) : (\n
\n
\n {isOwnerOrAdmin && (\n \n \n Delete\n \n )}\n
\n
\n
\n
\n
\n
\n requestOrdering && requestOrdering('name')}\n >\n MEMBER\n \n \n
\n
\n requestOrdering && requestOrdering('email')}\n >\n EMAIL\n \n \n
\n
\n requestOrdering && requestOrdering('role')}\n >\n ROLE\n \n \n
\n {isOwnerOrAdmin && (\n
\n ACTIONS\n
\n )}\n
\n {isLoading ? (\n
\n \n
\n ) : (\n teamMembers.map(teamMember => {\n return (\n \n toggleItemSelection && toggleItemSelection(teamMember.id)\n }\n isSelected={teamMember.isSelected}\n isSelectable={\n teamMember.id !== user.id &&\n teamMember.role !== UserRoles.OWNER &&\n (user.role === UserRoles.OWNER ||\n (teamMember.role === UserRoles.USER && isOwnerOrAdmin))\n }\n isEditEnabled={isOwnerOrAdmin}\n isChangingRoleEnabled={user.role === UserRoles.OWNER}\n className={classNames({\n 'table__dataRow--delete': isDeleteModalOpen && teamMember.isSelected,\n 'table__dataRow--inactive':\n isDeleteModalOpen && !teamMember.isSelected,\n })}\n />\n );\n })\n )}\n
\n
\n
\n );\n}\n\nexport default TeamMembersList;\n","import React, { useCallback } from 'react';\nimport UIModal from 'Components/UIComponents/UIModal';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport classNames from 'classnames';\n\ninterface DeleteTeammateModalProps {\n onClose: () => void;\n onDeleteTeammate: () => void;\n isLoading?: boolean;\n}\n\nconst DeleteTeammateModal = ({\n onClose,\n onDeleteTeammate,\n isLoading,\n}: DeleteTeammateModalProps) => {\n const isMobile = useIsMobile();\n\n const handleSubmit = useCallback(async () => {\n await onDeleteTeammate();\n onClose();\n }, [onClose, onDeleteTeammate]);\n\n return (\n \n
\n
\n Are you sure you want to delete this team member?\n
\n
\n If you want to remove the user so they can't access Signaturely anymore,\n please, continue. We must let you know that we will transfer to you from your\n teammate only completed documents and Live templates, and we will change these\n templates to drafts. We will delete everything else for everyone.\n
\n
\n \n \n
\n
\n
\n );\n};\n\nexport default DeleteTeammateModal;\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { InvoicesRequest } from 'Interfaces/Billing';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: InvoicesRequest) =>\n $actions.billing.getInvoices(dispatch, payload),\n );\n};\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { PlanChangePayload } from 'Interfaces/Billing';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: PlanChangePayload) =>\n $actions.billing.changePLan(dispatch, payload),\n );\n};\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\n\nexport default () => {\n const dispatch = useDispatch();\n return useAsyncAction(() => $actions.billing.getCard(dispatch));\n};\n","import { useCallback } from 'react';\nimport { useElements, useStripe } from '@stripe/react-stripe-js';\nimport { CardFormValues } from 'Interfaces/Billing';\n\nexport default () => {\n const stripe = useStripe();\n const elements = useElements();\n\n const handleCardCreate = useCallback(\n async (billingDetails?: CardFormValues): Promise => {\n if (!elements || !stripe) {\n return;\n }\n\n const cardNumber = elements.getElement('cardNumber');\n\n if (!cardNumber) {\n return;\n }\n\n const response = await stripe.createPaymentMethod({\n type: 'card',\n card: cardNumber,\n billing_details: {\n address: {\n postal_code: billingDetails?.postalCode,\n },\n name: billingDetails?.cardholderName,\n },\n });\n\n if (response.paymentMethod) {\n return response.paymentMethod.id;\n } else {\n throw response.error;\n }\n },\n [elements, stripe],\n );\n\n return handleCardCreate;\n};\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction(() => $actions.billing.getSubscriptionData(dispatch));\n};\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction(() => $actions.billing.getApiSubscription(dispatch));\n};\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((token: string) =>\n $actions.billing.attachCard(dispatch, { token }),\n );\n};\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction(() => $actions.billing.getLatestInvoice(dispatch));\n};\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { PlanChangePayload } from 'Interfaces/Billing';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: PlanChangePayload | undefined) =>\n $actions.billing.upsellPlan(dispatch, payload),\n );\n};\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction(() => $actions.billing.checkUpsellAllowed(dispatch));\n};\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { ChangeLtdPlanDurationPayload } from 'Interfaces/Billing';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: ChangeLtdPlanDurationPayload) =>\n $actions.billing.changeLtdPlanDuration(dispatch, payload),\n );\n};\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { CapturePaypalOrderPayload } from 'Interfaces/Billing';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: CapturePaypalOrderPayload) =>\n $actions.billing.capturePaypalOrder(dispatch, payload),\n );\n};\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { GetLtdTierPayload } from 'Interfaces/Billing';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: GetLtdTierPayload) => {\n if (payload.ltdId) {\n return $actions.billing.getLtdTier(dispatch, payload);\n }\n });\n};\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction(() => $actions.billing.getLtdTiers(dispatch));\n};\n","import loadScript from 'load-script';\nimport * as _ from 'lodash';\nimport Axios from 'axios';\nimport pathParse from 'path-parse';\nimport {\n GOOGLE_SDK_URL,\n GOOGLE_API_KEY,\n GOOGLE_DRIVE_API_URL,\n GOOGLE_MIME_TYPES,\n MIME_TYPES,\n} from 'Utils/constants';\nimport { lessThan40MB } from 'Utils/validation';\nimport { FileDownloadCallback, ErrorCallback } from './Interfaces';\n\nloadScript(GOOGLE_SDK_URL, () => {\n //@ts-ignore\n const { gapi } = window;\n if (gapi) {\n gapi.load('picker');\n }\n});\n\ninterface AuthParams {\n scope?: string[];\n immediate?: boolean;\n}\n\ninterface GoogleDrivePickerInitParams {\n accessToken: string;\n acceptableFormats?: string;\n onPick?: FileDownloadCallback;\n onError?: ErrorCallback;\n authParams?: AuthParams;\n}\n\nclass GoogleApi {\n initGoogleDrivePicker = async (options: GoogleDrivePickerInitParams) => {\n const { acceptableFormats, onPick, onError, accessToken } = options;\n\n try {\n if (!accessToken) {\n throw new Error('No access token provided');\n }\n\n //@ts-ignore\n const { DocsView, PickerBuilder, Action } = window.google.picker;\n const docsView = new DocsView().setParent('root').setIncludeFolders(true);\n\n if (acceptableFormats) {\n docsView.setMimeTypes(acceptableFormats);\n }\n\n const picker = new PickerBuilder()\n .addView(docsView)\n .setOAuthToken(accessToken)\n .setDeveloperKey(GOOGLE_API_KEY)\n .setCallback(async data => {\n if (data.action === Action.PICKED) {\n const { name, mimeType, sizeBytes, id } = data.docs[0];\n\n const sizeError = lessThan40MB(sizeBytes);\n if (sizeError) {\n return onError && onError(sizeError);\n }\n\n if (GOOGLE_MIME_TYPES[mimeType]) {\n const standardMimeType = GOOGLE_MIME_TYPES[mimeType];\n\n this.exportPickedFile(\n accessToken,\n id,\n standardMimeType,\n this.getFileNameByMimeType(name, standardMimeType),\n onPick,\n );\n } else {\n this.downloadPickedFile(\n accessToken,\n id,\n this.getFileNameByMimeType(name, mimeType),\n onPick,\n );\n }\n }\n });\n picker.build().setVisible(true);\n } catch (error) {\n onError && onError(error.message);\n }\n };\n\n private getFileNameByMimeType = (name: string, mimeType: string) => {\n const remoteFileExt = pathParse(name).ext;\n const fileName =\n remoteFileExt && Object.keys(MIME_TYPES).includes(remoteFileExt)\n ? name\n : `${name}${Object.keys(MIME_TYPES).find(key => MIME_TYPES[key] === mimeType)}`;\n\n return fileName;\n };\n\n private downloadPickedFile = async (\n accessToken: string,\n id: string,\n fileName: string,\n callback?: FileDownloadCallback,\n ) => {\n const res = await Axios.get(`${GOOGLE_DRIVE_API_URL}/files/${id}`, {\n params: {\n alt: 'media',\n },\n headers: {\n Authorization: `Bearer ${accessToken}`,\n },\n responseType: 'blob',\n });\n\n callback && callback(new File([res.data], fileName));\n };\n\n private exportPickedFile = async (\n accessToken: string,\n id,\n exportMimeType: string,\n fileName: string,\n callback?: FileDownloadCallback,\n ) => {\n const res = await Axios.get(`${GOOGLE_DRIVE_API_URL}/files/${id}/export`, {\n params: {\n alt: 'media',\n mimeType: exportMimeType,\n },\n headers: {\n Authorization: `Bearer ${accessToken}`,\n },\n responseType: 'blob',\n });\n\n callback && callback(new File([res.data], fileName));\n };\n}\n\nexport default new GoogleApi();\n","import loadScript from 'load-script';\nimport Axios from 'axios';\nimport { DROPBOX_SDK_URL, DROPBOX_APP_KEY } from 'Utils/constants';\nimport { lessThan40MB } from 'Utils/validation';\nimport { FileDownloadCallback, ErrorCallback } from './Interfaces';\n\nloadScript(DROPBOX_SDK_URL, {\n attrs: {\n id: 'dropboxjs',\n 'data-app-key': DROPBOX_APP_KEY,\n },\n});\n\nexport enum LinkTypes {\n PREVIEW = 'preview',\n}\n\nexport interface DropboxFile {\n isDir: boolean;\n linkType: LinkTypes;\n name: string;\n thumbnailLink: string;\n bytes: number;\n link: string;\n id: string;\n icon: string;\n}\n\ninterface PickerParams {\n onPick?: FileDownloadCallback;\n onError?: ErrorCallback;\n extensions?: string[];\n}\n\nclass DropboxApi {\n openPicker = ({ onPick, onError, extensions = [] }: PickerParams) => {\n //@ts-ignore\n const { Dropbox } = window;\n\n if (!Dropbox) {\n return onError && onError('Api is not loaded yet');\n }\n\n return Dropbox.choose({\n success: async (files: DropboxFile[]) => {\n const currFileMeta = files[0];\n const sizeError = lessThan40MB(currFileMeta.bytes);\n\n if (sizeError) {\n return onError && onError(sizeError);\n }\n\n const file = await this.downloadFile(files[0]);\n\n onPick && onPick(file);\n },\n folderselect: false,\n multiselect: false,\n linkType: 'direct',\n sizeLimit: 40 * 10 ** 6,\n extensions,\n });\n };\n\n downloadFile = async (file: DropboxFile) => {\n const fileBlob = await Axios.get(file.link, { responseType: 'blob' });\n\n return new File([fileBlob.data], file.name);\n };\n}\n\nexport default new DropboxApi();\n","import loadScript from 'load-script';\nimport Axios from 'axios';\nimport { ONEDRIVE_SDK_URL, ONEDRIVE_APP_ID } from 'Utils/constants';\nimport { lessThan40MB } from 'Utils/validation';\nimport { FileDownloadCallback } from './Interfaces';\n\ninterface OneDriveResult {\n value: OneDriveFile[];\n webUrl: string | null;\n accessToken: string;\n}\n\ninterface OneDriveFile {\n '@microsoft.graph.downloadUrl': string;\n 'thumbnails@odata.context': string;\n id: string;\n name: string;\n size: number;\n thumbnails: Thumbnails[];\n webUrl: string;\n}\n\ninterface Thumbnails {\n id: string;\n large: Thumbnail;\n medium: Thumbnail;\n small: Thumbnail;\n}\n\ninterface Thumbnail {\n height: number;\n width: number;\n url: string;\n}\n\nenum ActionTypes {\n DOWNLOAD = 'download',\n SHARE = 'share',\n QUERY = 'query',\n}\n\ninterface OneDriveOpenOptions {\n clientId: string;\n action: ActionTypes;\n multiSelect: boolean;\n openInNewWindow: boolean;\n accountSwitchEnabled?: boolean;\n advanced?: {\n redirectUri?: string;\n filter?: string;\n endpointHint?: string;\n accessToken?: string;\n };\n success?: (result: OneDriveResult) => void;\n cancel?: () => void;\n error?: (e) => void;\n}\n\ninterface OneDrive {\n open(options: OneDriveOpenOptions);\n}\n\ninterface LaunchOneDrivePickerParams {\n accessToken: string;\n onPick?: FileDownloadCallback;\n extentions?: string[];\n}\n\nloadScript(ONEDRIVE_SDK_URL);\n\nclass OneDriveApi {\n launchOneDrivePicker = (options: LaunchOneDrivePickerParams) =>\n new Promise((resolve, reject) => {\n //@ts-ignore\n const OneDrive: OneDrive = window.OneDrive;\n\n if (!OneDrive) reject('Api is not loaded yet');\n\n const { onPick, accessToken, extentions = [] } = options;\n\n const oneDriveOptions: OneDriveOpenOptions = {\n clientId: ONEDRIVE_APP_ID,\n openInNewWindow: true,\n action: ActionTypes.DOWNLOAD,\n multiSelect: false,\n advanced: {\n redirectUri: window.location.origin,\n filter: ['folder', ...extentions].join(','),\n },\n success: async result => {\n try {\n const fileMeta = result.value[0];\n const sizeError = lessThan40MB(fileMeta.size);\n\n if (sizeError) {\n throw new Error(sizeError);\n }\n\n const file: File = await this.downloadFile(fileMeta);\n\n if (onPick) {\n await onPick(file);\n }\n\n resolve();\n } catch (error) {\n reject(error);\n }\n },\n cancel: () => resolve(),\n error: () => {\n reject('Failed to pick file.');\n },\n };\n\n OneDrive.open(oneDriveOptions);\n });\n\n downloadFile = async (file: OneDriveFile) => {\n const res = await Axios.get(file['@microsoft.graph.downloadUrl'], {\n responseType: 'blob',\n });\n\n return new File([res.data], file.name);\n };\n}\n\nexport default new OneDriveApi();\n","import loadScript from 'load-script';\nimport Axios from 'axios';\nimport { sleep } from 'Utils/functions';\nimport { lessThan40MB } from 'Utils/validation';\nimport { FileDownloadCallback, ErrorCallback } from './Interfaces';\n\ninterface ShowParams {\n accessToken: string;\n onPick?: FileDownloadCallback;\n onCancel?: () => void;\n onError?: ErrorCallback;\n extentions?: string[];\n}\n\ninterface BoxFile {\n name: string;\n is_download_available: boolean;\n authenticated_download_url: string;\n size: number;\n}\n\nexport enum BoxStorageKeys {\n ACCESS_TOKEN = 'boxAccessToken',\n REFRESH_TOKEN = 'boxRefreshToken',\n ACCESS_TOKEN_EXPIRES_AT = 'boxAccessTokenExpiresAt',\n}\n\nloadScript('https://cdn01.boxcdn.net/platform/elements/11.0.2/en-US/picker.js');\n\nclass BoxContentPickerApi {\n show = async ({\n accessToken,\n onPick,\n onCancel,\n onError,\n extentions = [],\n }: ShowParams) => {\n await sleep(0);\n // @ts-ignore\n const filePicker = new window.Box.FilePicker();\n\n filePicker.addListener('choose', async (items: BoxFile[]) => {\n try {\n const file = items[0];\n const sizeError = lessThan40MB(file.size);\n\n if (sizeError) {\n throw new Error(sizeError);\n }\n\n if (!file.is_download_available || !onPick) {\n throw new Error(\"File can't be used.\");\n }\n\n const res = await Axios.get(file.authenticated_download_url, {\n responseType: 'blob',\n headers: {\n Authorization: `Bearer ${accessToken}`,\n },\n });\n\n onPick(new File([res.data], file.name));\n } catch (error) {\n onError && onError(error.message);\n }\n });\n filePicker.addListener('cancel', () => {\n onCancel && onCancel();\n });\n\n filePicker.show('0', accessToken, {\n maxSelectable: 1,\n extentions,\n canUpload: false,\n canSetShareAccess: false,\n canCreateNewFolder: false,\n container: '.boxPickerModal__picker',\n });\n\n return filePicker;\n };\n}\n\nexport default new BoxContentPickerApi();\n","import { PlanTypes, PlanDurations } from 'Interfaces/Billing';\n\nexport enum PlanFieldTypes {\n TEXT = 'text',\n BOOLEAN = 'boolean',\n}\n\nexport const headerItems = {\n [PlanDurations.MONTHLY]: [\n {\n id: 'cfpg',\n header: 'Personal',\n title: 'Personal',\n type: PlanTypes.PERSONAL,\n duration: PlanDurations.MONTHLY,\n description: 'Best for individuals.',\n },\n {\n id: 'mqfm',\n header: 'Business',\n title: 'Business',\n type: PlanTypes.BUSINESS,\n duration: PlanDurations.MONTHLY,\n description: 'Best for businesses and teams.',\n },\n ],\n [PlanDurations.ANNUALLY]: [\n {\n id: 'mb66',\n header: 'Personal',\n title: 'Personal Annually',\n type: PlanTypes.PERSONAL,\n duration: PlanDurations.ANNUALLY,\n description: 'Best for individuals.',\n },\n {\n id: 'dbz2',\n header: 'Business',\n title: 'Business Annually',\n type: PlanTypes.BUSINESS,\n duration: PlanDurations.ANNUALLY,\n description: 'Best for businesses and teams.',\n },\n ],\n};\n\nexport const planInformationItems = [\n {\n name: 'Documents per month',\n freeValue: '3',\n personalValue: '5',\n businessValue: 'Unlimited',\n type: PlanFieldTypes.TEXT,\n },\n {\n name: 'Templates',\n personalValue: '1',\n businessValue: 'Unlimited',\n type: PlanFieldTypes.TEXT,\n },\n\n {\n name: 'Google Drive Integration',\n personalValue: true,\n businessValue: true,\n type: PlanFieldTypes.BOOLEAN,\n },\n {\n name: 'Dropbox Integration',\n personalValue: true,\n businessValue: true,\n type: PlanFieldTypes.BOOLEAN,\n },\n {\n name: 'One Drive Integration',\n personalValue: true,\n businessValue: true,\n type: PlanFieldTypes.BOOLEAN,\n },\n {\n name: 'Box Integration',\n personalValue: true,\n businessValue: true,\n type: PlanFieldTypes.BOOLEAN,\n },\n {\n name: 'Notifications and Reminders',\n personalValue: true,\n businessValue: true,\n type: PlanFieldTypes.BOOLEAN,\n },\n {\n name: 'Audit Log and History',\n personalValue: true,\n businessValue: true,\n type: PlanFieldTypes.BOOLEAN,\n },\n {\n name: 'Team Management',\n personalValue: false,\n businessValue: true,\n type: PlanFieldTypes.BOOLEAN,\n },\n {\n name: 'Custom Business Branding',\n personalValue: false,\n businessValue: true,\n type: PlanFieldTypes.BOOLEAN,\n },\n];\n","import { PlanChangePayload, planTerms } from 'Interfaces/Billing';\nimport { GOOGLE_PIXEL_ID } from 'Utils/constants';\nimport { AnalyticsEventsProvider } from './interfaces';\n\nclass FacebookPixel implements AnalyticsEventsProvider {\n constructor() {\n //@ts-ignore\n // eslint-disable-next-line no-undef\n fbq('init', GOOGLE_PIXEL_ID);\n }\n\n fireRegistrationEvent = () => {\n //@ts-ignore\n // eslint-disable-next-line no-undef\n fbq('track', 'CompleteRegistration');\n };\n\n firePlanChangeEvent = (plan: PlanChangePayload) => {\n const planTerm = planTerms[plan.type][plan.duration];\n //@ts-ignore\n // eslint-disable-next-line no-undef\n fbq('track', 'Subscribe', {\n value: `${(planTerm.cost as number).toPrecision(2)}`,\n currency: 'USD',\n predicted_ltv: '0.00',\n });\n };\n}\n\nexport default new FacebookPixel();\n","/* eslint-disable */\nimport { User } from 'Interfaces/User';\nimport { NODE_ENV } from 'Utils/constants';\nimport { formatDateToHumanString } from 'Utils/formatters';\nimport { AnalyticsData, EcommerceItem } from './interfaces';\n\ndeclare var dataLayer;\n\nclass DataLayerAnalytics {\n push = (data: AnalyticsData) => {\n if (NODE_ENV === 'production') {\n dataLayer.push(data);\n }\n };\n\n fireUnconfirmedRegistrationEvent = (userId: string) => {\n this.push({\n event: 'unconfirmedstatus',\n CreateFreeAccount: 'Free Account Registration',\n userId,\n });\n };\n\n fireAppSumoRegistrationEvent = () => {\n this.push({\n event: 'appsumoregistration',\n RegistrationAppSumo: 'AppSumoReg',\n });\n };\n\n fireConfirmedRegistrationEvent = (userId: string) => {\n this.push({\n event: 'confirmedstatus',\n ConfirmedAccount: 'Confirmed Account',\n userId,\n });\n };\n\n fireGoogleRegistrationEvent = () => {\n this.push({\n event: 'confirmedstatus',\n ConfirmedAccount: 'Confirmed Account (SIGN UP with GOOGLE)',\n });\n };\n\n fireUserIdEvent = (user: User) => {\n this.push({\n event: 'userId',\n userId: user.id,\n registrationDate:\n user.createdAt && formatDateToHumanString(user.createdAt.toString(), true),\n userType: user.plan.type,\n billingPeriod: user.plan.duration,\n appSumo: !!(user.appSumoStatus),\n teamId: user.teamId,\n role: user.role,\n });\n };\n\n fireSubscriptionEvent = (planName: string, transactionId: string) => {\n this.push({\n event: 'subscription',\n PricingPlanName: planName,\n transactionID: transactionId,\n });\n };\n\n firePurchaseEvent = ({\n transaction_id,\n previous_plan_name,\n count_of_docs_saved,\n item,\n }: {\n transaction_id: string;\n previous_plan_name: string;\n count_of_docs_saved: number;\n item: EcommerceItem;\n }) => {\n this.push({\n event: 'purchase',\n ecommerce: {\n transaction_id,\n previous_plan_name,\n count_of_docs_saved,\n items: [{ ...item, affiliation: 'Signaturely', item_brand: 'Signaturely' }],\n },\n });\n };\n\n fireTrialSignUpEvent = (userId: string) => {\n this.push({\n event: 'trialregistration',\n ConfirmedAccount: 'Confirmed Account (Sign Up with Trial)',\n userId,\n });\n };\n}\n\nexport default new DataLayerAnalytics();\n","import React from 'react';\nimport { Invoice } from 'Interfaces/Billing';\nimport { formatDate } from 'Utils/formatters';\nimport { ReactSVG } from 'react-svg';\nimport DownloadIcon from 'Assets/images/icons/download-icon.svg';\n\ninterface InvoiceItemProps {\n invoice: Invoice;\n onDownload: (invoiceId: string) => void;\n}\n\nconst InvoiceItem = ({\n invoice: { createdAt, amount, pdfKey },\n onDownload,\n}: InvoiceItemProps) => (\n
\n
{formatDate(createdAt)}
\n
\n
${amount}
\n {\n onDownload(pdfKey);\n }}\n className=\"billing__cell--download\"\n />\n
\n
\n);\nexport default InvoiceItem;\n","import React from 'react';\nimport ReactPaginate from 'react-paginate';\n\ninterface PaginatorProps {\n onPageChange?: (any) => void;\n initialPage?: number;\n pageCount?: number;\n}\n\nconst Paginator = ({ onPageChange, initialPage, pageCount }: PaginatorProps) => (\n \n);\n\nexport default Paginator;\n","import React, { useCallback, useMemo } from 'react';\nimport { ReactSVG } from 'react-svg';\nimport IconSort from 'Assets/images/icons/sort.svg';\nimport InvoiceItem from './InvoiceItem';\nimport { Invoice } from 'Interfaces/Billing';\nimport Toast from 'Services/Toast';\nimport { useSignedDownloadUrlGet } from 'Hooks/User';\nimport { useAttachmentDownload } from 'Hooks/Common';\nimport { SignedUrlResponse, TablePaginationProps } from 'Interfaces/Common';\nimport UISpinner from 'Components/UIComponents/UISpinner';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport classNames from 'classnames';\nimport UIPaginator from 'Components/UIComponents/UIPaginator';\n\ninterface InvoiceTableProps {\n invoiceItems: Invoice[];\n isLoading?: boolean;\n requestOrdering: (key: string) => void;\n paginationProps: TablePaginationProps;\n setPageNumber: (pageNumber: number) => void;\n}\n\ntype selectedPage = { selected: number };\n\nconst InvoiceTable = ({\n invoiceItems,\n isLoading,\n requestOrdering,\n paginationProps,\n setPageNumber,\n}: InvoiceTableProps) => {\n const [getSignedUrl] = useSignedDownloadUrlGet();\n const [downloadInvoice] = useAttachmentDownload();\n const isEmpty = useMemo(() => invoiceItems.length === 0, [invoiceItems.length]);\n const handleDownloadInvoice = useCallback(\n async (key: string) => {\n try {\n const { result } = (await getSignedUrl({ key })) as SignedUrlResponse;\n await downloadInvoice(result);\n Toast.success('File is downloading');\n } catch (error) {\n Toast.handleErrors(error);\n }\n },\n [downloadInvoice, getSignedUrl],\n );\n const isMobile = useIsMobile();\n const { pageNumber, itemsCount, itemsLimit, totalItems } = paginationProps;\n\n const handleChangePage = useCallback(\n (page: selectedPage) => {\n setPageNumber(page.selected);\n },\n [setPageNumber],\n );\n\n return (\n \n
Invoices
\n {itemsCount > 0 && (\n
\n

\n {`${pageNumber * itemsLimit + 1}-${pageNumber * itemsLimit +\n (itemsCount || itemsLimit)}`}\n  of \n {totalItems}\n  results\n

\n
\n )}\n
\n
\n
\n
\n
\n {\n setPageNumber(0);\n requestOrdering('createdAt');\n }}\n >\n DATE\n \n \n
\n
\n {\n setPageNumber(0);\n requestOrdering('amount');\n }}\n >\n AMOUNT\n \n \n
\n
\n {isLoading ? (\n
\n \n
\n ) : (\n
\n {isEmpty ? (\n
\n You don't have any invoices yet\n
\n ) : (\n invoiceItems.map(invoice => (\n \n ))\n )}\n
\n )}\n
\n
\n {paginationProps.pageCount > 1 && (\n
\n \n
\n )}\n
\n
\n );\n};\n\nexport default InvoiceTable;\n","import { useDispatch } from 'react-redux';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { $actions } from 'Store';\nimport { SignedUrlPayload } from 'Interfaces/Common';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: SignedUrlPayload) =>\n $actions.user.getSignedGetDownloadUrl(dispatch, payload),\n );\n};\n","import React, { useCallback, useMemo } from 'react';\nimport classNames from 'classnames';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport History from 'Services/History';\nimport {\n SubscriptionInfo,\n PlanDurations,\n PlanTypes,\n PlanDetails,\n AppSumoStatus,\n} from 'Interfaces/Billing';\nimport { isNotEmpty } from 'Utils/functions';\nimport { capitalize } from 'lodash';\nimport { AuthorizedRoutePaths } from 'Interfaces/RoutePaths';\n\ninterface SubscriptionInfoProps {\n subscriptionInfo: SubscriptionInfo;\n plan: PlanDetails;\n appSumoStatus: AppSumoStatus;\n}\n\nexport const subscriptionPlanNames = {\n [PlanTypes.FREE]: 'Free',\n [PlanTypes.PERSONAL]: 'Personal',\n [PlanTypes.BUSINESS]: 'Business',\n};\n\nexport const convertToMoneyFormat = (value: number) =>\n value.toLocaleString('en', {\n useGrouping: false,\n minimumFractionDigits: 2,\n });\n\nconst SubscriptionInfoBlock = ({\n subscriptionInfo,\n plan,\n appSumoStatus,\n}: SubscriptionInfoProps) => {\n const handleUpgradeClick = useCallback(() => {\n if (appSumoStatus === AppSumoStatus.FULL) {\n History.push(AuthorizedRoutePaths.SETTINGS_API);\n } else {\n History.push(AuthorizedRoutePaths.SETTINGS_BILLING_PLAN);\n }\n }, [appSumoStatus]);\n const { userQuantity, amount, discountQuantity, discountAmount } = subscriptionInfo;\n const isSubscribed = isNotEmpty(subscriptionInfo);\n\n const {\n price,\n totalDiscount,\n totalPrice,\n billingDurationType,\n totalDurationType,\n } = useMemo(() => {\n const price = userQuantity * amount;\n const totalDiscount = discountQuantity ? discountQuantity * discountAmount : 0;\n\n return {\n price: convertToMoneyFormat(price),\n totalDiscount: convertToMoneyFormat(totalDiscount),\n totalPrice: convertToMoneyFormat(price - totalDiscount),\n billingDurationType: plan.duration ? `(Billed ${capitalize(plan.duration)})` : '',\n totalDurationType: plan.duration === PlanDurations.ANNUALLY ? 'Year' : 'Month',\n };\n }, [userQuantity, amount, discountQuantity, discountAmount, plan]);\n\n return (\n
\n \n \n
\n

\n Your plan {!appSumoStatus && billingDurationType}\n

\n

\n {appSumoStatus === AppSumoStatus.STANDARD\n ? 'AppSumo 1 code'\n : appSumoStatus === AppSumoStatus.FULL\n ? 'AppSumo 2 code'\n : subscriptionPlanNames[plan.type]}\n

\n
\n
\n \n
\n
\n {isSubscribed && (\n <>\n
\n
\n {userQuantity} {capitalize(plan.type)} Users  \n ({userQuantity} assigned)\n
\n
${price} USD
\n
\n {!!discountQuantity && (\n
\n
\n {!appSumoStatus ? '20% OFF ' : ''}\n Discount\n
\n
\n -${totalDiscount} USD\n
\n
\n )}\n \n )}\n \n {isSubscribed && (\n
\n

\n Total per {totalDurationType}\n

\n
{totalPrice} USD
\n
\n )}\n \n );\n};\n\nexport default SubscriptionInfoBlock;\n","import React from 'react';\nimport UITextInput from 'Components/UIComponents/UITextInput';\nimport { FieldInput } from '..';\nimport { FieldRenderProps } from 'react-final-form';\n\nconst FieldTextInput = (props: FieldRenderProps) => (\n } />\n);\n\nexport default FieldTextInput;\n","import React from 'react';\nimport { FieldRenderProps } from 'react-final-form';\nimport { ReactSVG } from 'react-svg';\nimport CircleClose from 'Assets/images/icons/circle-close.svg';\nimport UITextInput from 'Components/UIComponents/UITextInput';\nimport FormError from 'Components/UIComponents/FormError';\n\ninterface RecipientEmailProps extends FieldRenderProps {\n isDeletable?: boolean;\n onDelete?: () => void;\n}\n\nconst RecipientEmail = ({ input, meta, isDeletable, onDelete }: RecipientEmailProps) => {\n const { error, touched, submitError, dirtySinceLastSubmit } = meta;\n const isError = (error && touched) || (submitError && !dirtySinceLastSubmit);\n\n return (\n
  • \n
    \n \n {isDeletable && (\n \n )}\n
    \n {isError && }\n
  • \n );\n};\n\nexport default RecipientEmail;\n","import React, { useCallback, useEffect } from 'react';\nimport { FieldArrayRenderProps } from 'react-final-form-arrays';\nimport { Field } from 'react-final-form';\nimport classNames from 'classnames';\nimport { EmailRecipient, InteractExtraValues } from 'Interfaces/Document';\nimport { required, email, checkViewersLimit } from 'Utils/validation';\nimport { composeValidators } from 'Utils/functions';\n\nimport { RecipientEmail } from './RecipientFields';\nimport { UIAddButton } from 'Components/UIComponents/UIAddButton';\nimport { removeEmptyCharacters } from 'Utils/formatters';\nimport Toast from 'Services/Toast';\nimport { useSelector } from 'react-redux';\nimport { selectUser } from 'Utils/selectors';\nimport { User } from 'Interfaces/User';\nimport { PlanTypes } from 'Interfaces/Billing';\n\ninterface IsDepetablePredicateArgument {\n itemIndex: number;\n fields: FieldArrayRenderProps, HTMLElement>['fields'];\n}\n\nexport interface EmailRecipientsArrayProps\n extends FieldArrayRenderProps, HTMLElement> {\n label?: string;\n labelClassName?: string;\n addLabel?: string;\n isAddable?: boolean;\n isItemsDeletable?: boolean;\n isItemDeletablePredicate?: (arg: IsDepetablePredicateArgument) => boolean;\n handleSetRecipientsValues?: (values: InteractExtraValues) => void;\n}\n\nfunction EmailRecipientsArray({\n fields,\n label = 'Email',\n labelClassName,\n addLabel = 'Recipients',\n isAddable = true,\n isItemsDeletable,\n isItemDeletablePredicate,\n handleSetRecipientsValues,\n}: EmailRecipientsArrayProps) {\n const user = useSelector(selectUser) as User;\n\n useEffect(() => {\n if (handleSetRecipientsValues && fields.value)\n handleSetRecipientsValues({ recipients: fields.value as EmailRecipient[] });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [fields.value]);\n\n const handleRecipientsAdd = useCallback(() => {\n const checkLimit = checkViewersLimit(fields.value.length);\n if ((user.isTrialSubscription || user.plan.type === PlanTypes.FREE) && checkLimit) {\n return Toast.error(checkLimit);\n }\n fields.push({});\n }, [fields.value]);\n\n return (\n <>\n {label && (\n

    {label}

    \n )}\n
      \n {fields.map((name, index) => (\n fields.remove(index)}\n parse={removeEmptyCharacters}\n validate={composeValidators(required, email)}\n />\n ))}\n {isAddable && (\n \n )}\n
    \n \n );\n}\n\nexport default EmailRecipientsArray;\n","/* eslint-disable react/display-name */\nimport React, { forwardRef } from 'react';\nimport classNames from 'classnames';\nimport { useIsMobile } from 'Hooks/Common';\n\nexport enum ContentPosition {\n TOP = 'top',\n BOTTOM = 'bottom',\n LEFT = 'left',\n RIGHT = 'right',\n}\n\nexport interface TooltipBlockProps {\n contentPosition?: ContentPosition;\n children: React.ReactNode;\n className?: string;\n disabledMobile?: boolean;\n}\n\nconst TooltipBlock = forwardRef(\n (\n {\n contentPosition = ContentPosition.TOP,\n children,\n className,\n disabledMobile = false,\n }: TooltipBlockProps,\n ref: any,\n ) => {\n const isMobile = useIsMobile();\n\n return (\n \n {children}\n \n );\n },\n);\n\nexport default TooltipBlock;\n","import React from 'react';\nimport { ReactSVG } from 'react-svg';\nimport useDropdown from 'use-dropdown';\nimport TooltipBlock, { TooltipBlockProps } from './TooltipBlock';\n\nimport TooltipIcon from 'Assets/images/icons/tooltip-icon.svg';\n\ninterface TooltipProps extends TooltipBlockProps {\n children: React.ReactNode;\n}\n\nconst Tooltip = ({ children, ...blockProps }: TooltipProps) => {\n const [containerRef, isOpen, open, close] = useDropdown();\n\n return (\n
    \n \n {isOpen && {children}}\n
    \n );\n};\n\nexport default Tooltip;\n","import UIButton from 'Components/UIComponents/UIButton';\nimport React, { useCallback, useState } from 'react';\n\ninterface IndependentTooltipProps {\n content: React.ReactNode;\n onSubmit?: () => void;\n}\n\nconst IndependentTooltip = ({ content, onSubmit }: IndependentTooltipProps) => {\n const [isVisible, setIsVisible] = useState(true);\n\n const handleSubmit = useCallback(() => {\n onSubmit && onSubmit();\n setIsVisible(false);\n }, [onSubmit]);\n\n if (!isVisible) {\n return null;\n }\n\n return (\n isVisible && (\n
    \n {content}\n \n
    \n )\n );\n};\n\nexport default IndependentTooltip;\n","import React, { useCallback, useState } from 'react';\nimport classNames from 'classnames';\nimport FormError from 'Components/UIComponents/FormError';\nimport { FieldRenderProps } from 'react-final-form';\nimport ErrorIcon from 'Assets/images/icons/error.svg';\nimport { TooltipBlock } from 'Components/Tooltip';\nimport { ContentPosition } from 'Components/Tooltip/TooltipBlock';\n\ninterface RenderFieldInputProps extends FieldRenderProps {\n renderInput: (inputProps) => React.ReactNode;\n labelClassName?: string;\n}\n\nfunction FieldInput(props: RenderFieldInputProps) {\n const {\n input,\n meta,\n onBlur,\n onFocus,\n label,\n className,\n renderInput,\n labelClassName,\n ...componentProps\n } = props;\n const { error, submitError, touched, dirtySinceLastSubmit } = meta;\n const isError = (!!error && touched) || (!!submitError && !dirtySinceLastSubmit);\n\n const [isFocusedError, setFocusedError] = useState(false);\n\n const handleBlur = useCallback(() => {\n input.onBlur();\n if (onBlur) onBlur();\n }, [input, onBlur]);\n\n const handleFocus = useCallback(() => {\n input.onFocus();\n if (onFocus) onFocus();\n }, [input, onFocus]);\n\n return (\n
    \n {label && (\n \n )}\n {renderInput({\n ...componentProps,\n ...input,\n error: isError,\n onBlur: handleBlur,\n onFocus: handleFocus,\n icon: isError ? ErrorIcon : undefined,\n onIconFocus: (state: boolean) => setFocusedError(state),\n iconFocusState: isFocusedError,\n })}\n {isError && isFocusedError && (\n \n \n \n )}\n
    \n );\n}\n\nexport default FieldInput;\n","import React, { useCallback } from 'react';\nimport { FieldRenderProps } from 'react-final-form';\nimport UICheckbox, { UICheckboxProps } from 'Components/UIComponents/UICheckbox';\nimport { InteractExtraValues } from 'Interfaces/Document';\n\ninterface FieldCheckboxProps extends UICheckboxProps, FieldRenderProps {\n className?: string;\n onClick?: (values: InteractExtraValues) => void;\n}\n\nconst FieldCheckbox = ({\n input,\n className,\n onClick,\n ...checkboxProps\n}: FieldCheckboxProps) => {\n const handleClick = useCallback(() => {\n input.onChange(!input.value);\n if (onClick) onClick({ isOrdered: !input.value });\n }, [input, onClick]);\n\n return (\n
    \n \n
    \n );\n};\n\nexport default FieldCheckbox;\n","import React, { useCallback } from 'react';\nimport { FieldRenderProps } from 'react-final-form';\nimport UISelect, { UISelectProps } from 'Components/UIComponents/UISelect';\nimport FieldInput from '../FieldInput';\n\ninterface FieldSelectProps\n extends UISelectProps,\n FieldRenderProps {\n className?: string;\n isClearable?: boolean;\n}\n\nconst FieldSelect = ({ className, isClearable, ...restProps }: FieldSelectProps) => {\n const handleSelect = useCallback(\n value => {\n restProps.input.onChange(value);\n },\n [restProps.input],\n );\n\n return (\n
    \n (\n \n )}\n />\n
    \n );\n};\n\nexport default FieldSelect;\n","import React from 'react';\nimport { FieldRenderProps } from 'react-final-form';\nimport { useToggler } from 'Hooks/Common';\nimport EyeIcon from 'Assets/images/icons/eye.svg';\nimport CrossedEyeIcon from 'Assets/images/icons/crossed-eye.svg';\nimport { FieldInput } from '..';\nimport UITextInput from 'Components/UIComponents/UITextInput';\nimport { ReactSVG } from 'react-svg';\n\nfunction FieldPasswordInput(props: FieldRenderProps) {\n const [isVisible, toggle] = useToggler(false);\n const type = isVisible ? 'text' : 'password';\n const currentIcon = isVisible ? EyeIcon : CrossedEyeIcon;\n\n return (\n (\n
    \n \n \n
    \n )}\n />\n );\n}\n\nexport default FieldPasswordInput;\n","import React from 'react';\nimport classNames from 'classnames';\nimport { UITextFieldProps } from './interfaces/UITextField';\n\ninterface UITextAreaProps extends UITextFieldProps {\n maxLength?: number;\n height?: string | number;\n className?: string;\n}\n\nfunction UITextArea(\n {\n onBlur,\n onFocus,\n onChange,\n value,\n error,\n placeholder,\n height = 110,\n maxLength,\n disabled = false,\n className,\n }: UITextAreaProps,\n ref,\n) {\n return (\n \n );\n}\n\nexport default React.forwardRef(UITextArea);\n","export enum PlanFieldTypes {\n TEXT = 'text',\n BOOLEAN = 'boolean',\n}\n\nexport const planInformationItems = [\n {\n name: 'Users',\n oneCodeValue: '3',\n twoCodeValue: 'Unlimited Users',\n type: PlanFieldTypes.TEXT,\n },\n {\n name: 'Signature Requests',\n oneCodeValue: 'Unlimited',\n twoCodeValue: 'Unlimited',\n type: PlanFieldTypes.TEXT,\n },\n {\n name: 'Templates',\n oneCodeValue: 'Unlimited',\n twoCodeValue: 'Unlimited',\n type: PlanFieldTypes.TEXT,\n },\n\n {\n name: 'Google Drive Integration',\n oneCodeValue: true,\n twoCodeValue: true,\n type: PlanFieldTypes.BOOLEAN,\n },\n {\n name: 'Dropbox Integration',\n oneCodeValue: true,\n twoCodeValue: true,\n type: PlanFieldTypes.BOOLEAN,\n },\n {\n name: 'One Drive Integration',\n oneCodeValue: true,\n twoCodeValue: true,\n type: PlanFieldTypes.BOOLEAN,\n },\n {\n name: 'Box Integration',\n oneCodeValue: true,\n twoCodeValue: true,\n type: PlanFieldTypes.BOOLEAN,\n },\n {\n name: 'Notifications and Reminders',\n oneCodeValue: true,\n twoCodeValue: true,\n type: PlanFieldTypes.BOOLEAN,\n },\n {\n name: 'Audit Log and History',\n oneCodeValue: true,\n twoCodeValue: true,\n type: PlanFieldTypes.BOOLEAN,\n },\n {\n name: 'Max Number of Codes',\n oneCodeValue: '',\n twoCodeValue: '2',\n type: PlanFieldTypes.TEXT,\n },\n];\n","import React from 'react';\nimport { FieldRenderProps } from 'react-final-form';\nimport UITextArea from 'Components/UIComponents/UITextArea';\nimport FieldInput from '../FieldInput';\n\nconst FieldTextArea = (props: FieldRenderProps) => (\n } />\n);\n\nexport default FieldTextArea;\n","import React from 'react';\nimport FieldInput from '../FieldInput';\nimport UITextInput, { UITextInputProps } from 'Components/UIComponents/UITextInput';\nimport MaskedInput, { MaskedInputProps } from 'react-text-mask';\nimport { FieldRenderProps } from 'react-final-form';\n\nexport interface MaskedTextInputProps extends FieldRenderProps {\n maskedInputProps: MaskedInputProps & Required>;\n}\n\nconst MaskedTextInput = ({ ...fieldProps }: FieldRenderProps) => {\n return (\n (\n {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { value, ...restInput } = inputProps;\n return ;\n }}\n />\n )}\n />\n );\n};\n\nexport default MaskedTextInput;\n","import React, { useCallback } from 'react';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport { BillingDetailsUpdatePayload } from 'Interfaces/Billing';\nimport { Form, Field, FormRenderProps } from 'react-final-form';\nimport { FieldTextArea, FieldTextInput } from 'Components/FormFields';\nimport Toast from 'Services/Toast';\nimport { useProfileInfoUpdate } from 'Hooks/User';\nimport { selectUser } from 'Utils/selectors';\nimport { useSelector } from 'react-redux';\nimport { User } from 'Interfaces/User';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport classNames from 'classnames';\n\nconst BillingDetails = () => {\n const { billingDetails, taxId }: User = useSelector(selectUser);\n const [updateBillingDetails, isLoading] = useProfileInfoUpdate();\n const isMobile = useIsMobile();\n\n const handleUpdateDetails = useCallback(\n async (values: BillingDetailsUpdatePayload) => {\n try {\n await updateBillingDetails(values);\n Toast.success('Billing details has been changed');\n } catch (error) {\n Toast.handleErrors(error);\n }\n },\n [updateBillingDetails],\n );\n\n return (\n ) => (\n
    \n
    \n

    Billing Details

    \n \n

    \n If you want to add a custom Billing Address or Tax ID to your invoice from\n Signaturely, please do it here.\n

    \n
    \n
    \n Billing Details\n
    \n
    \n value || null}\n component={FieldTextArea}\n />\n
    \n
    Tax ID
    \n
    \n value || null}\n component={FieldTextInput}\n />\n
    \n
    \n \n
    \n \n \n )}\n />\n );\n};\n\nexport default BillingDetails;\n","import classNames from 'classnames';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport UITextInput from 'Components/UIComponents/UITextInput';\nimport React, { useCallback, useMemo, useState } from 'react';\nimport MaskedInput from 'react-text-mask';\n\ninterface CodeInputProps {\n onUpgrade: (code: string) => void;\n onChange?: (v: string) => void;\n value?: string;\n buttonTitle?: string;\n placeholder?: string;\n succeeded?: boolean;\n failure?: boolean;\n isLoading?: boolean;\n inputClassName?: string;\n buttonClassName?: string;\n}\n\nconst CodeInput = ({\n onUpgrade,\n onChange,\n value,\n buttonTitle = 'Upgrade',\n placeholder = 'E N T E R C O D E',\n succeeded,\n failure,\n isLoading,\n inputClassName,\n buttonClassName,\n}: CodeInputProps) => {\n const [code, setCode] = useState(value || '');\n\n const handleUpgrade = useCallback(() => {\n if (!code) return;\n\n onUpgrade(code);\n }, [code, onUpgrade]);\n\n const handleValueChange = useCallback(\n (event: React.ChangeEvent) => {\n if (onChange) {\n onChange(event.target.value);\n }\n\n setCode(event.target.value);\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [],\n );\n\n const mask = useMemo(() => new Array(32).fill(/[\\w]/), []);\n\n return (\n
    \n {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n return (\n \n );\n }}\n />\n \n
    \n );\n};\n\nexport default CodeInput;\n","import React, { useCallback, useState } from 'react';\nimport classNames from 'classnames';\nimport usePromotionCodeValidate from 'Hooks/Billing/usePromotionCodeValidate';\nimport { CodeInput } from '.';\nimport { isNotEmpty } from 'Utils/functions';\nimport Toast from 'Services/Toast';\nimport { ApiPlan, Coupon, Plan } from 'Interfaces/Billing';\nimport { useSelector } from 'react-redux';\nimport { selectUser } from 'Utils/selectors';\nimport { AuthStatuses } from 'Interfaces/Auth';\n\nenum PromoCodeStatuses {\n VALID = 'valid',\n INVALID = 'invalid',\n}\n\ninterface PromoCodeFieldProps {\n plan: Plan | ApiPlan;\n onUpdateCoupon?: (coupon?: Coupon) => void;\n isDisabledWasteText?: boolean;\n className?: string;\n inputClassName?: string;\n buttonClassName?: string;\n buttonTitle?: string;\n inputText?: string;\n setInputText?: (text: string) => void;\n placeholder?: string;\n}\n\nconst PromoCodeField = ({\n plan,\n onUpdateCoupon,\n isDisabledWasteText = false,\n className,\n inputClassName,\n buttonClassName,\n buttonTitle,\n inputText,\n setInputText,\n placeholder,\n}: PromoCodeFieldProps) => {\n const currentUser = useSelector(selectUser);\n const [promotionCode, setPromotionCode] = useState(inputText || '');\n const [promoCodeStatus, setPromoCodeStatus] = useState();\n const [appliedCoupon, setAppliedCoupon] = useState();\n const [validatePromotionCode, isPromotionCodeValidating] = usePromotionCodeValidate();\n\n const handleApplyCoupon = useCallback(\n (coupon?: Coupon) => {\n setAppliedCoupon(coupon);\n onUpdateCoupon && onUpdateCoupon(coupon);\n },\n [onUpdateCoupon],\n );\n\n const handleValidatePromotionCode = useCallback(\n async code => {\n try {\n handleApplyCoupon();\n const coupon = await validatePromotionCode({\n code,\n plan,\n authorized: currentUser?.authStatus === AuthStatuses.AUTHORIZED,\n });\n\n if (!isNotEmpty(coupon)) {\n return setPromoCodeStatus(PromoCodeStatuses.INVALID);\n }\n\n handleApplyCoupon(coupon);\n return setPromoCodeStatus(PromoCodeStatuses.VALID);\n } catch (err) {\n Toast.handleErrors(err);\n }\n },\n [currentUser, handleApplyCoupon, plan, validatePromotionCode],\n );\n\n const handleSetPromotionCode = useCallback(\n text => {\n setPromotionCode(text);\n if (setInputText) {\n setInputText(text);\n }\n },\n [setInputText],\n );\n\n return (\n
    \n {!isDisabledWasteText && (\n
    \n Please enter a coupon\n
    \n )}\n
    \n \n
    \n {!isDisabledWasteText &&\n promoCodeStatus === PromoCodeStatuses.VALID &&\n appliedCoupon && (\n
    \n Coupon code applied successfully. You got{' '}\n {appliedCoupon.percentOff.toFixed(2)}% off your plan. Enjoy!\n
    \n )}\n {!isDisabledWasteText && promoCodeStatus === PromoCodeStatuses.INVALID && (\n
    Invalid coupon code
    \n )}\n
    \n );\n};\n\nexport default PromoCodeField;\n","import { AppSumoStatus } from 'Interfaces/Billing';\nimport React from 'react';\nimport { CodeInput } from '..';\n\ninterface AppSumoBillingSliderProps {\n userAppSumoStatus: AppSumoStatus;\n currentDisplayedAppSumoStatus: AppSumoStatus;\n handleChangeCurrentDisplayedStatus: (status: AppSumoStatus) => void;\n handleAppSumoUpgrade: (code: string) => void;\n isUpgradeLoading: boolean;\n}\n\nconst AppSumoBillingSlider = ({\n userAppSumoStatus,\n currentDisplayedAppSumoStatus,\n handleChangeCurrentDisplayedStatus,\n handleAppSumoUpgrade,\n isUpgradeLoading,\n}: AppSumoBillingSliderProps) => {\n return (\n <>\n
    \n
    \n \n
    \n
    1 Code
    \n
    \n Business Plan \n (59$)\n
    \n {userAppSumoStatus === AppSumoStatus.STANDARD && (\n
    Current Plan
    \n )}\n
    \n
    \n \n
    \n
    2 Code
    \n
    \n Unlimited Business Plan \n (118$)\n
    \n {userAppSumoStatus === AppSumoStatus.FULL ? (\n
    Current Plan
    \n ) : (\n \n )}\n
    \n
    \n \n \n
    \n handleChangeCurrentDisplayedStatus(AppSumoStatus.STANDARD)}\n />\n handleChangeCurrentDisplayedStatus(AppSumoStatus.FULL)}\n />\n
    \n \n );\n};\n\nexport default AppSumoBillingSlider;\n","import { AppSumoStatus } from 'Interfaces/Billing';\nimport React from 'react';\nimport { PlanFieldTypes } from './planTableItems';\n\nexport interface AppSumoTableMobileViewProps {\n planInformationItems: any[];\n currentDisplayedStatus: AppSumoStatus;\n renderCell: (\n type: PlanFieldTypes,\n value: string | boolean,\n ) => string | boolean | JSX.Element;\n}\n\nconst AppSumoTableMobileView = ({\n planInformationItems,\n currentDisplayedStatus,\n renderCell,\n}: AppSumoTableMobileViewProps) => {\n const getCurrentPlanItemValue = (item: any) => {\n switch (currentDisplayedStatus) {\n case AppSumoStatus.STANDARD:\n return (\n
    \n {renderCell(item.type, item.oneCodeValue)}\n
    \n );\n case AppSumoStatus.FULL:\n return (\n
    \n {renderCell(item.type, item.twoCodeValue)}\n
    \n );\n }\n };\n\n return (\n
    \n
    \n
    \n Plan Information\n
    \n {planInformationItems.map(item => (\n
    \n
    \n {item.name}\n
    \n {getCurrentPlanItemValue(item)}\n
    \n ))}\n
    \n
    \n );\n};\n\nexport default AppSumoTableMobileView;\n","import React, { useCallback, useState } from 'react';\nimport { useSelector } from 'react-redux';\nimport { ReactSVG } from 'react-svg';\nimport 'react-toggle/style.css';\nimport { selectUser } from 'Utils/selectors';\nimport { AppSumoStatus } from 'Interfaces/Billing';\nimport { planInformationItems, PlanFieldTypes } from './planTableItems';\nimport ArrowCircleIcon from 'Assets/images/icons/arrow-circle.svg';\nimport { User } from 'Interfaces/User';\nimport { CodeInput } from './';\nimport { useAppSumoUpgrade } from 'Hooks/Billing';\nimport Toast from 'Services/Toast';\nimport classNames from 'classnames';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport AppSumoBillingSlider from './modals/AppSumoBillingSlider';\nimport AppSumoTableMobileView from './AppSumoTableMobileView';\n\nconst renderCell = (type: PlanFieldTypes, value: string | boolean) =>\n type === PlanFieldTypes.BOOLEAN && value ? (\n \n ) : (\n value\n );\n\ninterface AppSumoBillingTableProps {\n isAlignLeftTitle?: boolean;\n}\n\nconst AppSumoBillingTable = ({ isAlignLeftTitle }: AppSumoBillingTableProps) => {\n const isMobile = useIsMobile();\n const { appSumoStatus }: User = useSelector(selectUser);\n const [currentDisplayedStatus, setCurrentDisplayedStatus] = useState(\n AppSumoStatus.STANDARD,\n );\n const [upgradeAppSumo, isUpgradeLoading] = useAppSumoUpgrade();\n\n const handleAppSumoUpgrade = useCallback(\n async (code: string) => {\n try {\n await upgradeAppSumo({ code });\n Toast.success('You account has been upgraded successfully');\n } catch (error) {\n Toast.handleErrors(error);\n }\n },\n [upgradeAppSumo],\n );\n\n return (\n
    \n \n
    Signaturely + AppSumo Lifetime Plans
    \n
    \n {!isMobile ? (\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    1 Code
    \n
    \n Business Plan \n (59$)\n
    \n {appSumoStatus === AppSumoStatus.STANDARD && (\n
    Current Plan
    \n )}\n
    \n
    \n
    \n
    \n
    2 Code
    \n
    \n Unlimited Business Plan \n (118$)\n
    \n {appSumoStatus === AppSumoStatus.FULL ? (\n
    Current Plan
    \n ) : (\n \n )}\n
    \n
    \n
    \n
    \n
    \n Plan Information\n
    \n {planInformationItems.map(item => (\n
    \n
    \n {item.name}\n
    \n
    \n {renderCell(item.type, item.oneCodeValue)}\n
    \n
    \n {renderCell(item.type, item.twoCodeValue)}\n
    \n
    \n ))}\n
    \n
    \n ) : (\n <>\n \n setCurrentDisplayedStatus(status)\n }\n handleAppSumoUpgrade={handleAppSumoUpgrade}\n isUpgradeLoading={isUpgradeLoading}\n />\n \n \n )}\n \n );\n};\n\nexport default AppSumoBillingTable;\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { AppSumoUpgradePayload } from 'Interfaces/Billing';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: AppSumoUpgradePayload) =>\n $actions.billing.upgradeAppSumo(dispatch, payload),\n );\n};\n","import { PlanTypes } from 'Interfaces/Billing';\nimport React from 'react';\nimport { PlanFieldTypes } from './planTableItems';\n\ninterface BillingPlanTableMobileViewProps {\n planInformationItems: any;\n currentDisplayedPlan: PlanTypes;\n renderCell: (\n type: PlanFieldTypes,\n value: string | number | boolean,\n ) => string | number | boolean | JSX.Element;\n}\n\nconst BillingPlanTableMobileView = ({\n planInformationItems,\n currentDisplayedPlan,\n renderCell,\n}: BillingPlanTableMobileViewProps) => {\n const getCurrentPlanItemValue = (item: any) => {\n switch (currentDisplayedPlan) {\n case PlanTypes.PERSONAL:\n return (\n
    \n {renderCell(item.type, item.personalValue)}\n
    \n );\n case PlanTypes.BUSINESS:\n return (\n
    \n {renderCell(item.type, item.businessValue)}\n
    \n );\n }\n };\n\n return (\n <>\n
    \n Plan Information\n
    \n {planInformationItems.map(item => (\n
    \n
    \n {item.name}\n
    \n {getCurrentPlanItemValue(item)}\n
    \n ))}\n \n );\n};\n\nexport default BillingPlanTableMobileView;\n","import UIButton from 'Components/UIComponents/UIButton';\nimport UISpinner from 'Components/UIComponents/UISpinner';\nimport { PlanTypes, SubscriptionInfo } from 'Interfaces/Billing';\nimport React from 'react';\nimport { isNotEmpty } from 'Utils/functions';\n\ninterface BillingPlanSliderProps {\n items: any[];\n userPlanPriority: number;\n planPriorityByDuration: any;\n openModal: (headerItem: any) => void;\n currentDisplayedPlan: PlanTypes;\n handleChangeCurrentPlan: (planType: PlanTypes) => void;\n isLoading?: boolean;\n subscriptionInfo: SubscriptionInfo;\n onRenewPlan: () => void;\n}\n\nconst BillingPlansSlider = ({\n items,\n userPlanPriority,\n planPriorityByDuration,\n openModal,\n currentDisplayedPlan,\n handleChangeCurrentPlan,\n isLoading,\n subscriptionInfo,\n onRenewPlan,\n}: BillingPlanSliderProps) => {\n return (\n <>\n
    \n
    \n {items.map(headerItem => (\n \n
    {headerItem.header}
    \n
    {headerItem.description}
    \n {userPlanPriority ===\n planPriorityByDuration[headerItem.duration][headerItem.type] ? (\n isNotEmpty(subscriptionInfo) && !subscriptionInfo.neverExpires ? (\n
    \n {isLoading ? : 'Renew'}\n
    \n ) : (\n
    Current Plan
    \n )\n ) : (\n
    \n \n planPriorityByDuration[headerItem.duration][headerItem.type]\n ? 'Select'\n : 'Upgrade'\n }`}\n handleClick={() => {\n openModal(headerItem);\n }}\n priority=\"primary\"\n />\n
    \n )}\n
    \n ))}\n
    \n \n
    \n {items.map(headerItem => (\n <>\n {currentDisplayedPlan === headerItem.type ? (\n handleChangeCurrentPlan(headerItem.type)}\n className=\"billing__plans-slider-dot--selected\"\n />\n ) : (\n handleChangeCurrentPlan(headerItem.type)}\n className=\"billing__plans-slider-dot\"\n />\n )}\n \n ))}\n
    \n \n );\n};\n\nexport default BillingPlansSlider;\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { ValidatePromotionCodePayload } from 'Interfaces/Billing';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: ValidatePromotionCodePayload) =>\n $actions.billing.validatePromotionCode(dispatch, payload),\n );\n};\n","import React from 'react';\nimport UIModal from 'Components/UIComponents/UIModal';\nimport { Plan, ApiPlan, Coupon } from 'Interfaces/Billing';\nimport PromoCodeField from './PromoCodeField';\n\ninterface PromoCodeModalProps {\n onClose: () => void;\n plan: Plan | ApiPlan;\n onUpdateCoupon?: (coupon?: Coupon) => void;\n}\n\nconst PromoCodeModal = ({ onClose, ...props }: PromoCodeModalProps) => {\n return (\n \n \n \n );\n};\n\nexport default PromoCodeModal;\n","import React from 'react';\nimport UIModal from 'Components/UIComponents/UIModal';\nimport { Plan, ApiPlan } from 'Interfaces/Billing';\nimport * as _ from 'lodash';\nimport UIButton from 'Components/UIComponents/UIButton';\n\ninterface DowngradePlanProps {\n onClose: () => void;\n plan: Plan | ApiPlan;\n nextBillingDate: Date;\n onDowngrade: () => void;\n isLoading?: boolean;\n}\n\nconst DowngradePlanModal = ({\n onClose,\n plan,\n nextBillingDate,\n onDowngrade,\n isLoading,\n}: DowngradePlanProps) => {\n return (\n \n
    \n
    \n Downgrade to {_.capitalize(plan.type)} Plan\n
    \n
    \n We will downgrade your plan at the next billing date (\n {nextBillingDate.toDateString()})\n
    \n
    \n \n
    \n
    \n
    \n );\n};\n\nexport default DowngradePlanModal;\n","import React, { useCallback, useMemo } from 'react';\nimport { daysToDate, formatDateToStringForTrialInfo } from 'Utils/formatters';\nimport { useSelector } from 'react-redux';\nimport { selectSubscriptionInfo, selectUserPlan } from 'Utils/selectors';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport { isExpired } from 'Utils/functions';\nimport { convertToMoneyFormat } from './SubscriptionInfoBlock';\n\nconst CurrentPlanInfo = () => {\n const currentPlan = useSelector(selectUserPlan);\n const subscriptionInfo = useSelector(selectSubscriptionInfo);\n const isMobile = useIsMobile();\n\n const {\n userQuantity,\n amount,\n discountQuantity,\n discountAmount,\n trialEnd,\n nextBillingDate,\n } = subscriptionInfo;\n\n const totalPrice = useMemo(() => {\n const price = userQuantity * amount;\n const totalDiscount = discountQuantity ? discountQuantity * discountAmount : 0;\n\n return convertToMoneyFormat(price - totalDiscount);\n }, [userQuantity, amount, discountQuantity, discountAmount]);\n\n const showInfoContent = useCallback(() => {\n return (\n
    \n
    \n

    {currentPlan.name} Plan

    \n {trialEnd && !isExpired(trialEnd) && (\n

    \n Your 7-day free trial ends in {daysToDate(trialEnd)} days\n

    \n )}\n

    \n Your next bill is for ${totalPrice} on{' '}\n {formatDateToStringForTrialInfo(nextBillingDate)}.\n

    \n
    \n {!isMobile && (\n <>\n
    \n
    \n \n )}\n
    \n );\n }, [currentPlan.name, isMobile, nextBillingDate, totalPrice, trialEnd]);\n\n return showInfoContent();\n};\n\nexport default CurrentPlanInfo;\n","import React from 'react';\nimport {\n PlanDurations,\n PlanTypes,\n defaultPlanPrices,\n discountPlanPrices,\n} from 'Interfaces/Billing';\nimport { IS_BLACK_FRIDAY, IS_END_OF_YEAR } from 'Utils/constants';\nimport { DiscountBillet } from '.';\nimport { isAvailablePlanForSale } from 'Utils/functions';\n\nconst targetByPlanType = {\n [PlanTypes.BUSINESS]: 'per user/month',\n [PlanTypes.PERSONAL]: '/month',\n};\n\ninterface SalePlanCostItemProps {\n duration: PlanDurations;\n type: PlanTypes;\n}\n\nexport const PlanCostItem = ({ duration, type }: SalePlanCostItemProps) => {\n const target = targetByPlanType[type];\n const defaultPrice = defaultPlanPrices[type][duration];\n const discountPrice = discountPlanPrices[type][duration];\n\n const isAvailablePlan = isAvailablePlanForSale(type, duration);\n\n return (\n
    \n {(IS_BLACK_FRIDAY || IS_END_OF_YEAR) && isAvailablePlan ? (\n
    \n

    \n {`$${defaultPrice}`}\n

    \n

    \n now {`$${discountPrice}`}{' '}\n {target}\n

    \n \n
    \n ) : (\n

    {`$${defaultPrice} ${target}`}

    \n )}\n
    \n );\n};\n\nexport default PlanCostItem;\n","import React, { useCallback, useEffect, useMemo } from 'react';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport { LtdTier } from 'Interfaces/Billing';\nimport History from 'Services/History';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport classNames from 'classnames';\nimport { AuthorizedRoutePaths } from 'Interfaces/RoutePaths';\nimport { useLtdTierGet } from 'Hooks/Billing';\nimport UISpinner from 'Components/UIComponents/UISpinner';\nimport {\n LtdTiersIds,\n shortLtdOptions,\n} from '../screens/LifeTimeDealScreen/planTableItems';\nimport { planTypeToName } from 'Utils/formatters';\nimport { useSelector } from 'react-redux';\nimport { selectLtdTier } from 'Utils/selectors';\nimport { isNotEmpty } from 'Utils/functions';\n\ninterface LifeTimeDealInfoBlockProps {\n ltdId: LtdTier['id'];\n}\n\nconst LifeTimeDealInfoBlock = ({ ltdId }: LifeTimeDealInfoBlockProps) => {\n const isMobile = useIsMobile();\n const [getLtdTier, isGettingLtdTier] = useLtdTierGet();\n const currentLtd = useSelector(selectLtdTier);\n const isDisabledForUpgrade = currentLtd.id === LtdTiersIds.B_TIER_5;\n\n const shortLtdAdditionalOptions = useMemo(() => {\n const info = shortLtdOptions.map(item => {\n if (item.name === 'Users') {\n return {\n ...item,\n value:\n currentLtd.teammatesLimit === -1 ? 'Unlimited' : currentLtd.teammatesLimit,\n };\n }\n\n return item;\n });\n\n return info;\n }, [currentLtd]);\n\n const handleUpgradeClick = useCallback(() => {\n History.push(AuthorizedRoutePaths.SETTINGS_BILLING_PLAN);\n }, []);\n\n const handleGetLtdTier = useCallback(async () => {\n await getLtdTier({ ltdId });\n }, [getLtdTier, ltdId]);\n\n useEffect(() => {\n handleGetLtdTier();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n if (isGettingLtdTier || !isNotEmpty(currentLtd)) {\n return (\n \n );\n }\n\n return (\n
    \n \n Signaturely + Prime Deals Lifetime Plans\n \n
    \n
    \n
    \n \n {currentLtd.name}\n \n
    \n Current Plan\n
    \n
    \n
    \n \n {planTypeToName[currentLtd.planType]} Plan (${currentLtd.price})\n \n
    \n \n
    \n
    \n
    What' included?
    \n
      \n {shortLtdAdditionalOptions.map(option => (\n
    • \n \n {option['value']} {option['name']}\n \n
    • \n ))}\n
    \n
    \n
    \n
    \n );\n};\n\nexport default LifeTimeDealInfoBlock;\n","import UIButton from 'Components/UIComponents/UIButton';\nimport { LtdTier } from 'Interfaces/Billing';\nimport React from 'react';\nimport { tierNumberById } from '../screens/LifeTimeDealScreen/planTableItems';\n\ninterface LifeTimeDealSliderProps {\n tiers: LtdTier[];\n userTierPriority: number;\n onSelectTierToUpgrade: (newTierId: LtdTier['id']) => void;\n currentDisplayedTier: LtdTier['id'];\n handleChangeCurrentTier: (tierId: LtdTier['id']) => void;\n}\n\nconst LifeTimeDealSlider = ({\n tiers,\n userTierPriority,\n onSelectTierToUpgrade,\n currentDisplayedTier,\n handleChangeCurrentTier,\n}: LifeTimeDealSliderProps) => {\n return (\n <>\n
    \n
    \n {tiers.map(tier => (\n \n
    {tier.name}
    \n
    \n {tierNumberById[tier.id] === userTierPriority ? (\n
    Current Plan
    \n ) : (\n {\n onSelectTierToUpgrade(tier.id);\n }}\n priority=\"primary\"\n disabled={tierNumberById[tier.id] < userTierPriority}\n />\n )}\n
    \n
    \n ))}\n
    \n
    \n
    \n {tiers.map(tier => (\n
    \n {currentDisplayedTier === tier.id ? (\n handleChangeCurrentTier(tier.id)}\n className=\"billing__plans-slider-dot--selected\"\n />\n ) : (\n handleChangeCurrentTier(tier.id)}\n className=\"billing__plans-slider-dot\"\n />\n )}\n
    \n ))}\n
    \n \n );\n};\n\nexport default LifeTimeDealSlider;\n","import { LtdTier } from 'Interfaces/Billing';\nimport React from 'react';\nimport {\n LtdOptions,\n PlanFieldTypes,\n tierNumberById,\n} from '../screens/LifeTimeDealScreen/planTableItems';\n\ninterface LifeTimeDealTableMobileViewProps {\n fullTiersOptions?: LtdOptions[][];\n currentDisplayedTier: LtdTier['id'];\n renderCell: (\n type: PlanFieldTypes,\n value: string | number | boolean,\n ) => string | number | boolean | JSX.Element;\n}\n\nconst LifeTimeDealTableMobileView = ({\n fullTiersOptions,\n currentDisplayedTier,\n renderCell,\n}: LifeTimeDealTableMobileViewProps) => {\n if (!fullTiersOptions) return null;\n\n return (\n <>\n
    \n Tier Information\n
    \n {fullTiersOptions[tierNumberById[currentDisplayedTier] - 1].map(option => (\n
    \n
    \n {option.name}\n
    \n
    \n {renderCell(option.type, option.value)}\n
    \n
    \n ))}\n \n );\n};\n\nexport default LifeTimeDealTableMobileView;\n","import { ApiPlanTypes, PlanDurations, ApiPlanItem } from 'Interfaces/Billing';\n\ntype ApiPlanItemCollection = {\n [key in PlanDurations]: ApiPlanItem[];\n};\n\nexport const apiPlanPriorityByDuration = {\n [PlanDurations.MONTHLY]: {\n [ApiPlanTypes.GOLD]: 1,\n [ApiPlanTypes.PLATINUM]: 2,\n [ApiPlanTypes.TITANIUM]: 3,\n },\n [PlanDurations.ANNUALLY]: {\n [ApiPlanTypes.GOLD]: 4,\n [ApiPlanTypes.PLATINUM]: 5,\n [ApiPlanTypes.TITANIUM]: 6,\n },\n [PlanDurations.FOREVER]: {\n [ApiPlanTypes.TITANIUM]: 7,\n },\n};\n\n// Initial api plan prices\nexport const apiPlanPrices = {\n [ApiPlanTypes.GOLD]: {\n [PlanDurations.MONTHLY]: 49,\n [PlanDurations.ANNUALLY]: 470,\n },\n [ApiPlanTypes.PLATINUM]: {\n [PlanDurations.MONTHLY]: 99,\n [PlanDurations.ANNUALLY]: 950,\n },\n [ApiPlanTypes.TITANIUM]: {\n [PlanDurations.MONTHLY]: 199,\n [PlanDurations.ANNUALLY]: 1910,\n },\n};\n\nexport const apiPlanItems: ApiPlanItemCollection = {\n [PlanDurations.MONTHLY]: [\n {\n header: 'Gold',\n title: 'Gold',\n price: `$${apiPlanPrices[ApiPlanTypes.GOLD][PlanDurations.MONTHLY]}`,\n type: ApiPlanTypes.GOLD,\n duration: PlanDurations.MONTHLY,\n content: ['50 API Signature Requests per month', '5 Templates'],\n },\n {\n header: 'Platinum',\n title: 'Platinum',\n price: `$${apiPlanPrices[ApiPlanTypes.PLATINUM][PlanDurations.MONTHLY]}`,\n type: ApiPlanTypes.PLATINUM,\n duration: PlanDurations.MONTHLY,\n content: ['150 API Signature Requests per month', '25 Templates'],\n },\n {\n header: 'Titanium',\n title: 'Titanium',\n price: `$${apiPlanPrices[ApiPlanTypes.TITANIUM][PlanDurations.MONTHLY]}`,\n type: ApiPlanTypes.TITANIUM,\n duration: PlanDurations.MONTHLY,\n content: ['500 API Signature Requests per month', 'Unlimited Templates'],\n },\n ],\n [PlanDurations.ANNUALLY]: [\n {\n header: 'Gold',\n title: 'Gold Annually',\n price: `$${apiPlanPrices[ApiPlanTypes.GOLD][PlanDurations.ANNUALLY]}`,\n type: ApiPlanTypes.GOLD,\n duration: PlanDurations.ANNUALLY,\n content: ['50 API Signature Requests per month', '5 Templates'],\n },\n {\n header: 'Platinum',\n title: 'Platinum Annually',\n price: `$${apiPlanPrices[ApiPlanTypes.PLATINUM][PlanDurations.ANNUALLY]}`,\n type: ApiPlanTypes.PLATINUM,\n duration: PlanDurations.ANNUALLY,\n content: ['150 API Signature Requests per month', '25 Templates'],\n },\n {\n header: 'Titanium',\n title: 'Titanium Annually',\n price: `$${apiPlanPrices[ApiPlanTypes.TITANIUM][PlanDurations.ANNUALLY]}`,\n type: ApiPlanTypes.TITANIUM,\n duration: PlanDurations.ANNUALLY,\n content: ['500 API Signature Requests per month', 'Unlimited Templates'],\n },\n ],\n [PlanDurations.FOREVER]: [],\n};\n\nexport const nonPayedPlansDescription = {\n [ApiPlanTypes.FREE]:\n 'Currently you are on the Free plan that includes free test API Calls. Need real API Signature Requests? Please upgrade to one of the plans above',\n [ApiPlanTypes.APPSUMO_STANDARD]:\n 'Currently you are in the AppSumo Standard plan that includes up to 25 API requests per month. Want more? You can upgrade at one of the plans above.',\n [ApiPlanTypes.APPSUMO_FULL]:\n 'Currently you are in the AppSumo Full plan that includes up to 50 API requests per month. Want more? You can upgrade at one of the plans above.',\n};\n","import React, { useCallback } from 'react';\nimport { ReactSVG } from 'react-svg';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport UIModal from 'Components/UIComponents/UIModal';\nimport PresentIcon from 'Assets/images/icons/present.svg';\nimport {\n AnnuallyDiscount,\n ApiPlan,\n ApiPlanTypes,\n DefaultUpsellDiscount,\n Plan,\n PlanDurations,\n PlanTypes,\n defaultPlanPrices,\n} from 'Interfaces/Billing';\nimport { isAvailablePlanForSale } from 'Utils/functions';\nimport { IS_BLACK_FRIDAY, IS_END_OF_YEAR } from 'Utils/constants';\nimport { apiPlanPrices } from 'Components/ApiPlansSection/constants';\n\nexport interface ConfirmModalProps {\n onConfirm: () => void;\n onClose: () => void;\n plan: Plan | ApiPlan;\n isLoading?: boolean;\n}\n\nconst UpsellModal = ({ onConfirm, onClose, plan, isLoading }: ConfirmModalProps) => {\n const isApiPlan = Object.values(ApiPlanTypes).includes(plan.type as ApiPlanTypes);\n const handleConfirm = useCallback(async () => {\n await onConfirm();\n onClose();\n }, [onClose, onConfirm]);\n\n const price = isApiPlan\n ? apiPlanPrices[plan.type][PlanDurations.MONTHLY]\n : defaultPlanPrices[plan.type][PlanDurations.MONTHLY];\n\n const UpsellDiscount =\n (IS_END_OF_YEAR || IS_BLACK_FRIDAY) &&\n isAvailablePlanForSale(plan.type as PlanTypes, plan.duration)\n ? AnnuallyDiscount\n : DefaultUpsellDiscount;\n\n const monthlyUpsellPrice = price * (1 - UpsellDiscount / 100);\n const annuallyUpsellPrice = monthlyUpsellPrice * 12;\n\n return (\n \n
    \n
    \n
    \n \n
    \n
    \n
    WAIT! Special one-time offer
    \n
    \n

    \n To thank you for choosing Signaturely, we would like to\n
    \n offer you{' '}\n {UpsellDiscount}% off for paying annually.\n

    \n

    \n Instead of paying ${price}/month, you would pay only\n
    \n \n ${monthlyUpsellPrice}/month billed annually ($\n {annuallyUpsellPrice}).\n \n

    \n
    \n
    \n \n
    \n No thanks\n
    \n
    \n
    \n
    \n );\n};\n\nexport default UpsellModal;\n","import React, { useState, useCallback, useEffect, useMemo } from 'react';\nimport { useSelector } from 'react-redux';\nimport { ReactSVG } from 'react-svg';\nimport Toggler from 'react-toggle';\nimport 'react-toggle/style.css';\nimport Toast from 'Services/Toast';\nimport { useModal } from 'Hooks/Common';\nimport {\n useCardGet,\n useLatestInvoiceGet,\n usePlanChange,\n usePlanUpsell,\n useSubscriptionDataGet,\n useUpsellAllowedCheck,\n} from 'Hooks/Billing';\nimport {\n selectUserPlan,\n selectCardFormValues,\n selectUser,\n selectSubscriptionInfo,\n} from 'Utils/selectors';\nimport {\n Plan,\n PlanTypes,\n PlanDurations,\n PlanChangePayload,\n Coupon,\n AnnuallyDiscount,\n} from 'Interfaces/Billing';\nimport { HttpStatus } from 'Interfaces/HttpStatusEnum';\nimport { headerItems, PlanFieldTypes, planInformationItems } from './planTableItems';\n\nimport UIButton from 'Components/UIComponents/UIButton';\nimport {\n BillingPlansSlider,\n PromoCodeModal,\n CurrentPlanInfo,\n PlanCostItem,\n} from '../../components';\n\nimport ArrowCircleIcon from 'Assets/images/icons/arrow-circle.svg';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport BillingPlanTableMobileView from '../../components/BillingPlanTableMobileView';\nimport { isNotEmpty, isExpired } from 'Utils/functions';\nimport { DataLayerAnalytics, FacebookPixel } from 'Services/Integrations';\nimport DowngradePlanModal from '../../components/DowngradePlanModal';\nimport UISpinner from 'Components/UIComponents/UISpinner';\nimport { PlanChangeModal } from 'Components/PlanChangeModal';\nimport { UpsellModal } from 'Components/UpsellModal';\nimport { UserStatuses } from 'Interfaces/User';\nimport { AuthorizedRoutePaths } from 'Interfaces/RoutePaths';\nimport History from 'Services/History';\n\nconst renderCell = (\n type: PlanFieldTypes,\n value: JSX.Element | string | number | boolean,\n) =>\n type === PlanFieldTypes.BOOLEAN && value ? (\n \n ) : (\n value\n );\n\nexport const planPriorityByDuration = {\n [PlanDurations.MONTHLY]: {\n [PlanTypes.FREE]: 0,\n [PlanTypes.PERSONAL]: 1,\n [PlanTypes.BUSINESS]: 2,\n },\n [PlanDurations.ANNUALLY]: {\n [PlanTypes.FREE]: 0,\n [PlanTypes.PERSONAL]: 3,\n [PlanTypes.BUSINESS]: 4,\n },\n};\n\nexport const planMonthlyInformationItems = [\n {\n name: 'Plan Cost',\n personalValue: (\n \n ),\n businessValue: (\n \n ),\n type: PlanFieldTypes.TEXT,\n },\n ...planInformationItems,\n];\n\nexport const planAnnuallyInformationItems = [\n {\n name: 'Plan Cost',\n personalValue: (\n \n ),\n businessValue: (\n \n ),\n type: PlanFieldTypes.TEXT,\n },\n ...planInformationItems,\n];\n\nconst BillingDefaultPlanScreen = () => {\n const user = useSelector(selectUser);\n const userPlan = useSelector(selectUserPlan);\n const cardInitialValues = useSelector(selectCardFormValues);\n const subscriptionInfo = useSelector(selectSubscriptionInfo);\n\n const [changePlan, isChangePlanLoading] = usePlanChange();\n const [getSubscriptionData] = useSubscriptionDataGet();\n const [upsellPlan, isUpsellingPlan] = usePlanUpsell();\n const [checkUpsellAllowed] = useUpsellAllowedCheck();\n const [getLatestInvoice] = useLatestInvoiceGet();\n const [getCard] = useCardGet();\n const isMobile = useIsMobile();\n\n const [appliedCoupon, setAppliedCoupon] = useState();\n const [currentDisplayedPlan, setCurrentDisplayedPlan] = useState(\n userPlan.type,\n );\n const [selectedPlanDuration, setSelectedPlanDuration] = useState(\n userPlan.duration || PlanDurations.MONTHLY,\n );\n const [planToChange, setPlanToUpgrade] = useState({\n type: PlanTypes.PERSONAL,\n duration: PlanDurations.MONTHLY,\n title: 'Personal',\n });\n\n const planInformationItemsData =\n selectedPlanDuration === PlanDurations.MONTHLY\n ? planMonthlyInformationItems\n : planAnnuallyInformationItems;\n\n const planInformationItems = planInformationItemsData.map(item => {\n if (item.name === 'Documents per month') {\n return {\n ...item,\n freeValue: `${user.freeDocumentsUsedLimit}`,\n personalValue: `${user.personalDocumentsUsedLimit}`,\n };\n }\n return item;\n });\n\n const currentHeaderItems = useMemo(() => headerItems[selectedPlanDuration], [\n selectedPlanDuration,\n ]).map(item => {\n if (item.id === 'free') {\n return {\n ...item,\n description: item.description.replace('3', `${user.freeDocumentsUsedLimit}`),\n };\n }\n return item;\n });\n\n const userPlanPriority = useMemo(\n () => planPriorityByDuration[userPlan.duration][userPlan.type],\n [userPlan],\n );\n\n const handleUpsellPlan = useCallback(async () => {\n try {\n await upsellPlan(planToChange);\n\n Toast.success('Plan has been successfully upgraded.');\n await getSubscriptionData(undefined);\n } catch (error) {\n Toast.handleErrors(error);\n }\n }, [getSubscriptionData, planToChange, upsellPlan]);\n\n const [showUpsellModal, hideUpsellModal] = useModal(\n () => (\n \n ),\n [handleUpsellPlan, isUpsellingPlan, planToChange],\n );\n\n const handleChangePlan = useCallback(\n async (payload: PlanChangePayload) => {\n try {\n await changePlan({ ...payload, couponId: appliedCoupon && appliedCoupon.id });\n const latestInvoice = await getLatestInvoice(undefined);\n if (payload.type !== PlanTypes.FREE) {\n FacebookPixel.firePlanChangeEvent(payload);\n }\n\n if (isNotEmpty(latestInvoice)) {\n DataLayerAnalytics.fireSubscriptionEvent(\n `${payload.type} ${payload.duration}`,\n latestInvoice.transactionId,\n );\n }\n\n Toast.success('Plan has been successfully changed.');\n\n if (payload.duration === PlanDurations.MONTHLY) {\n try {\n await checkUpsellAllowed(undefined);\n showUpsellModal();\n // upsell throws an error if restricted\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n await getSubscriptionData(undefined);\n } catch (error) {\n Toast.handleErrors(error);\n }\n },\n [\n appliedCoupon,\n changePlan,\n checkUpsellAllowed,\n getLatestInvoice,\n getSubscriptionData,\n showUpsellModal,\n ],\n );\n\n const handleRenewPlan = useCallback(async () => {\n try {\n await changePlan({ type: user.plan.type, duration: user.plan.duration });\n await getSubscriptionData(undefined);\n Toast.success('Plan has been renew');\n } catch (err) {\n Toast.handleErrors(err);\n }\n }, [changePlan, getSubscriptionData, user.plan.duration, user.plan.type]);\n\n const handlePlanDurationChange = useCallback(\n (duration: PlanDurations) => {\n const newPlan = headerItems[duration].find(plan => plan.type === planToChange.type);\n if (!newPlan) return;\n setSelectedPlanDuration(duration);\n setPlanToUpgrade({\n duration: newPlan.duration,\n id: newPlan.id,\n title: newPlan.title,\n type: newPlan.type,\n });\n },\n [planToChange],\n );\n\n const handlePlanDurationTogglerChange = useCallback(event => {\n const duration = event.target.checked\n ? PlanDurations.ANNUALLY\n : PlanDurations.MONTHLY;\n setSelectedPlanDuration(duration);\n }, []);\n\n const handleUpdateCoupon = useCallback(coupon => setAppliedCoupon(coupon), []);\n const handleClearCoupon = useCallback(() => setAppliedCoupon(undefined), []);\n\n const [showPromoCodeModal, hidePromoCodeModal] = useModal(\n () => (\n \n ),\n [planToChange],\n );\n\n const [showDowngradePlanModal, hideDowngradePlanModal] = useModal(\n () => (\n {\n await handleChangePlan({\n type: planToChange.type,\n duration: planToChange.duration,\n });\n hideDowngradePlanModal();\n }}\n />\n ),\n [subscriptionInfo, planToChange, isChangePlanLoading, handleChangePlan],\n );\n\n const [showUpgradePlanModal, hideUpgradePlanModal] = useModal(\n () => (\n \n ),\n [userPlan, planToChange, cardInitialValues, handleChangePlan],\n );\n\n const checkIfDowngrade = useCallback(\n (type: PlanTypes, duration: PlanDurations) => {\n if (type === PlanTypes.FREE) {\n return true;\n }\n\n if (user.plan.type === PlanTypes.BUSINESS && type !== PlanTypes.BUSINESS) {\n return true;\n }\n\n if (\n user.plan.duration === PlanDurations.ANNUALLY &&\n duration !== PlanDurations.ANNUALLY\n ) {\n return true;\n }\n },\n [user],\n );\n\n const openModal = useCallback(\n async newPlan => {\n setPlanToUpgrade({\n type: newPlan.type,\n duration: newPlan.duration,\n title: newPlan.title,\n id: newPlan.id,\n });\n\n const isDowngrade = checkIfDowngrade(newPlan.type, newPlan.duration);\n\n if (!!subscriptionInfo.trialEnd && !isExpired(subscriptionInfo.trialEnd))\n return showUpgradePlanModal();\n\n return isDowngrade ? showDowngradePlanModal() : showUpgradePlanModal();\n },\n [checkIfDowngrade, showDowngradePlanModal, showUpgradePlanModal, subscriptionInfo],\n );\n\n const handleGetCard = useCallback(async () => {\n try {\n await getCard(undefined);\n } catch (error) {\n if (error.statusCode !== HttpStatus.NOT_FOUND) {\n Toast.handleErrors(error);\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n handleGetCard();\n !isNotEmpty(subscriptionInfo) && getSubscriptionData(undefined);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n user.status === UserStatuses.FREEZE &&\n History.replace(AuthorizedRoutePaths.SETTINGS_BILLING);\n });\n\n return (\n
    \n
    \n
    \n Monthly\n \n Annually\n
    \n
    \n {isMobile ? `Save ${AnnuallyDiscount}%` : `Save up to ${AnnuallyDiscount}%`}\n
    \n
    \n {subscriptionInfo.neverExpires && }\n {!isMobile ? (\n
    \n
    \n
    \n
    \n
    \n
    \n {currentHeaderItems.map(headerItem => (\n \n
    {headerItem.header}
    \n
    \n {headerItem.description}\n
    \n {userPlanPriority ===\n planPriorityByDuration[headerItem.duration][headerItem.type] ? (\n isNotEmpty(subscriptionInfo) && !subscriptionInfo.neverExpires ? (\n \n {isChangePlanLoading ? : 'Renew'}\n
    \n ) : (\n
    Current Plan
    \n )\n ) : (\n
    \n \n planPriorityByDuration[headerItem.duration][headerItem.type]\n ? 'Select'\n : 'Upgrade'\n }`}\n handleClick={() => {\n openModal(headerItem);\n }}\n priority=\"primary\"\n isLoading={\n isChangePlanLoading ||\n (userPlan.type !== PlanTypes.FREE &&\n !isNotEmpty(subscriptionInfo))\n }\n disabled={isChangePlanLoading}\n />\n
    \n )}\n
    \n ))}\n
    \n
    \n
    \n Plan Information\n
    \n {planInformationItems.map(item => (\n
    \n
    {item.name}
    \n
    \n {renderCell(item.type, item.personalValue)}\n
    \n
    \n {renderCell(item.type, item.businessValue)}\n
    \n
    \n ))}\n
    \n
    \n
    \n ) : (\n <>\n setCurrentDisplayedPlan(planType)}\n onRenewPlan={handleRenewPlan}\n subscriptionInfo={subscriptionInfo}\n isLoading={isChangePlanLoading}\n />\n
    \n
    \n
    \n \n
    \n
    \n
    \n \n )}\n \n );\n};\n\nexport default BillingDefaultPlanScreen;\n","import React, { useCallback } from 'react';\nimport { FieldRenderProps } from 'react-final-form';\nimport { FieldTextInput } from '..';\n\nexport interface ClearableTextInput extends FieldRenderProps {\n inputComponent?: React.FunctionComponent;\n}\n\nconst ClearableTextInput = ({\n inputComponent: InputComponent = FieldTextInput,\n ...fieldProps\n}: FieldRenderProps) => {\n const handleFocus = useCallback(() => {\n fieldProps.input.onChange(undefined);\n }, [fieldProps.input]);\n\n return (\n \n );\n};\n\nexport default ClearableTextInput;\n","import UISpinner from 'Components/UIComponents/UISpinner';\nimport { useCardGet } from 'Hooks/Billing';\nimport {\n ApiPlan,\n AppSumoStatus,\n CreateSubscriptionCheckoutPayload,\n GetUpcomingInvoicePayload,\n LtdTypes,\n Plan,\n PlanTypes,\n} from 'Interfaces/Billing';\nimport React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport Toast from 'Services/Toast';\nimport { composeValidators, isNotEmpty } from 'Utils/functions';\nimport * as _ from 'lodash';\nimport { useSelector } from 'react-redux';\nimport { selectCardFormValues, selectLtdTier, selectUser } from 'Utils/selectors';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport classNames from 'classnames';\nimport {\n CardCvcElement,\n CardExpiryElement,\n CardNumberElement,\n} from '@stripe/react-stripe-js';\nimport { Field } from 'react-final-form';\nimport { FieldTextInput, MaskedTextInput } from 'Components/FormFields';\nimport { name, postalCode, required } from 'Utils/validation';\nimport { postalCodeMask } from 'Utils/formatters';\nimport ClearableTextInput from 'Components/FormFields/ClearableTextInput';\nimport { User } from '@sentry/react';\n\ninterface UpcomingInvoiceProps {\n targetPlan: Plan | ApiPlan;\n sourcePlan: Plan | ApiPlan;\n couponId?: string;\n onCouponAdd?: () => void;\n onCouponClear?: () => void;\n onGetInvoice?: (param: any) => void;\n getUpcomingInvoice: (\n params: CreateSubscriptionCheckoutPayload,\n ) => Promise<{} | GetUpcomingInvoicePayload>;\n isLoadingUpcomingInvoice: boolean;\n isApiPlan?: boolean;\n}\n\nconst UpcomingInvoice = ({\n targetPlan,\n couponId,\n onCouponAdd,\n onCouponClear,\n onGetInvoice,\n getUpcomingInvoice,\n isLoadingUpcomingInvoice,\n isApiPlan = false,\n}: UpcomingInvoiceProps) => {\n const [getCard] = useCardGet();\n const [upcomingInvoice, setUpcomingInvoice] = useState(undefined);\n const card = useSelector(selectCardFormValues);\n const ltdTier = useSelector(selectLtdTier);\n const user: User = useSelector(selectUser);\n const isMobile = useIsMobile();\n\n const ltdType = useMemo(() => {\n if (isNotEmpty(ltdTier)) return LtdTypes.TIER;\n if (user.appSumoStatus === AppSumoStatus.STANDARD) return LtdTypes.APPSUMO;\n\n return LtdTypes.NONE;\n }, [ltdTier, user.appSumoStatus]);\n\n const handleUpcomingInvoiceGet = useCallback(async () => {\n try {\n const invoice = await getUpcomingInvoice({\n ...targetPlan,\n couponId,\n });\n\n if (isNotEmpty(invoice)) {\n setUpcomingInvoice(invoice);\n onGetInvoice && onGetInvoice(invoice);\n }\n } catch (err) {\n Toast.handleErrors(err);\n }\n }, [couponId, getUpcomingInvoice, onGetInvoice, targetPlan]);\n\n useEffect(() => {\n handleUpcomingInvoiceGet();\n !card && getCard(undefined);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [couponId, targetPlan]);\n\n if (targetPlan.type === PlanTypes.FREE) {\n return null;\n }\n\n return (\n
    \n {isLoadingUpcomingInvoice || !upcomingInvoice ? (\n \n ) : (\n
    \n
    \n
    \n
    \n \n {_.capitalize(targetPlan.type)}\n \n
    \n
    \n ${upcomingInvoice.amount.toFixed(2)} USD\n
    \n
    \n
    \n ({_.capitalize(targetPlan.duration)})\n
    \n {(isApiPlan || ltdType === LtdTypes.NONE) && (\n
    \n \n {couponId ? 'Coupon applied' : 'Add coupon'}\n \n {couponId && Remove}\n
    \n )}\n \n
    \n {`${\n upcomingInvoice.quantity\n } ${_.capitalize(targetPlan.type)} User${\n upcomingInvoice.quantity > 1 ? 's' : ''\n }`}\n  \n {targetPlan.type === PlanTypes.BUSINESS && (\n \n ({upcomingInvoice.quantity} assigned)\n \n )}\n
    \n
    \n ${(upcomingInvoice.amount * upcomingInvoice.quantity).toFixed(2)} USD\n
    \n
    \n {!!upcomingInvoice.discount && (\n
    \n
    \n {upcomingInvoice.discount.toFixed(2)}% Off Discount\n
    \n
    \n -$\n {(\n (upcomingInvoice.discount *\n upcomingInvoice.amount *\n upcomingInvoice.quantity) /\n 100\n ).toFixed(2)}\n  USD\n
    \n
    \n )}\n {!!upcomingInvoice.unusedTime && (\n
    \n
    ${upcomingInvoice.unusedTime} Credit
    \n
    \n -${upcomingInvoice.unusedTime} USD\n
    \n
    \n )}\n
    \n
    \n
    \n
    Total
    \n
    \n ${Number(Math.max(upcomingInvoice.total, 0)).toFixed(2)} USD\n
    \n
    \n
    \n

    Card Details

    \n {!card ? (\n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n (required, name)}\n />\n
    \n
    \n (required, postalCode)}\n />\n
    \n
    \n
    \n ) : (\n <>\n
    \n {card.number}\n
    \n
    \n Expires {card.expirationDate}\n
    \n \n )}\n
    \n
    \n
    \n )}\n \n );\n};\n\nexport default UpcomingInvoice;\n","import React, { useState, useCallback } from 'react';\nimport * as _ from 'lodash';\nimport { BaseModalProps } from 'Components/UIComponents/interfaces/UIModal';\nimport {\n AnnuallyDiscount,\n ApiPlan,\n ApiPlanChangePayload,\n ApiPlanTypes,\n CardFormValues,\n CreateSubscriptionCheckoutPayload,\n DefaultAnnuallyDiscount,\n defaultPlanPrices,\n discountPlanPrices,\n Plan,\n PlanChangePayload,\n PlanDurations,\n PlanTypes,\n UpcomingInvoiceTypes,\n} from 'Interfaces/Billing';\nimport {\n useCardAttach,\n useCreateCard,\n useLatestInvoiceGet,\n useUpcomingInvoiceGet,\n} from 'Hooks/Billing';\nimport { DataLayerAnalytics } from 'Services/Integrations';\nimport Toast from 'Services/Toast';\nimport UIModal from 'Components/UIComponents/UIModal';\nimport classNames from 'classnames';\nimport { Form } from 'react-final-form';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport { UpcomingInvoice } from 'Pages/Settings/Billing/screens/BillingDefaultPlanScreen';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport Toggler from 'react-toggle';\nimport { useSelector } from 'react-redux';\nimport { selectGrid, selectSubscriptionInfo } from 'Utils/selectors';\nimport { isAvailablePlanForSale, isExpired } from 'Utils/functions';\nimport { apiPlanPrices } from 'Components/ApiPlansSection/constants';\n\nexport interface PlanChangeModalProps extends BaseModalProps {\n targetPlan: Plan | ApiPlan;\n sourcePlan: Plan | ApiPlan;\n cardInitialValues: CardFormValues | undefined;\n appliedCouponId?: string;\n isLoading?: boolean;\n onChangePlan: (payload: PlanChangePayload | ApiPlanChangePayload) => Promise;\n onPromoAdd: () => void;\n onPromoClear: () => void;\n onSelectedDurationChange: (duration: PlanDurations) => void;\n header?: string;\n}\n\nconst getAnnuallyDiscount = (isApiPlan: boolean, plan: Plan | ApiPlan) => {\n const annuallyDiscount = isAvailablePlanForSale(plan.type, plan.duration)\n ? AnnuallyDiscount\n : DefaultAnnuallyDiscount;\n return isApiPlan ? 20 : annuallyDiscount;\n};\n\nconst renderChangeModalText = (\n targetPlan: Plan | ApiPlan,\n sourcePlan: Plan | ApiPlan,\n isApiPlan: boolean,\n) => {\n if (\n targetPlan.type === sourcePlan.type &&\n targetPlan.duration === sourcePlan.duration\n ) {\n return (\n \n Continue getting your documents signed painlessly with \n \n your Signaturely {_.capitalize(targetPlan.type)} Plan\n \n .\n \n );\n }\n\n if (targetPlan.type === PlanTypes.PERSONAL && targetPlan.type !== sourcePlan.type) {\n return (\n \n The Personal Plan will give you additional features like 5 Signature Requests and\n 1 Template\n \n );\n }\n\n if (targetPlan.type === PlanTypes.BUSINESS && targetPlan.type !== sourcePlan.type) {\n return (\n \n The Business Plan will give you additional features like Unlimited Templates and\n Team Management\n \n );\n }\n\n if (\n targetPlan.duration === PlanDurations.ANNUALLY &&\n targetPlan.duration !== sourcePlan.duration\n ) {\n const priceMonth = isApiPlan\n ? apiPlanPrices[targetPlan.type][PlanDurations.MONTHLY]\n : defaultPlanPrices[targetPlan.type][PlanDurations.MONTHLY];\n const priceYear = isApiPlan\n ? apiPlanPrices[targetPlan.type][PlanDurations.ANNUALLY]\n : discountPlanPrices[targetPlan.type][PlanDurations.ANNUALLY];\n return (\n \n Instead of paying ${priceMonth}/month, you would pay only \n \n $\n {(priceMonth * (1 - getAnnuallyDiscount(isApiPlan, targetPlan) / 100)).toFixed(\n 2,\n )}\n /month billed yearly (${priceYear})\n \n .\n \n );\n }\n};\n\nconst PlanChangeModal = ({\n targetPlan,\n sourcePlan,\n cardInitialValues,\n appliedCouponId,\n isLoading,\n onChangePlan,\n onPromoAdd,\n onPromoClear,\n onSelectedDurationChange,\n onClose,\n header = 'Upgrade your plan',\n}: PlanChangeModalProps) => {\n const createCard = useCreateCard();\n const [attachCard] = useCardAttach();\n const [getLatestInvoice] = useLatestInvoiceGet();\n const [getUpcomingInvoice, isLoadingUpcomingInvoice] = useUpcomingInvoiceGet();\n\n const [upcomingInvoice, setUpcomingInvoice] = useState();\n const isMobile = useIsMobile();\n const isApiPlan = Object.values(ApiPlanTypes).includes(targetPlan.type as ApiPlanTypes);\n const { trialEnd } = useSelector(selectSubscriptionInfo);\n\n const grid = useSelector(selectGrid);\n\n const isNewPlanSame =\n targetPlan.type === sourcePlan.type && targetPlan.duration === sourcePlan.duration;\n\n const handleChangePlan = useCallback(\n async (values: CardFormValues) => {\n try {\n if (!cardInitialValues) {\n const token = await createCard(values);\n token && (await attachCard(token));\n }\n\n await onChangePlan({\n type: targetPlan.type,\n duration: targetPlan.duration,\n });\n\n const latestInvoice = await getLatestInvoice(undefined);\n\n DataLayerAnalytics.firePurchaseEvent({\n //@ts-ignore\n transaction_id: latestInvoice?.transactionId,\n //@ts-ignore\n previous_plan_name: sourcePlan.name,\n count_of_docs_saved: grid?.length,\n item: {\n item_id: targetPlan.id,\n item_name: targetPlan.title,\n currency: upcomingInvoice?.currency,\n discount: upcomingInvoice?.discount,\n item_category: 'Plan',\n item_list_id: 'plans',\n item_list_name: 'Plans',\n item_variant: upcomingInvoice?.plan?.duration,\n price: upcomingInvoice?.plan?.price,\n quantity: upcomingInvoice?.quantity,\n },\n });\n\n onClose();\n } catch (error) {\n Toast.handleErrors(error);\n }\n },\n [\n attachCard,\n cardInitialValues,\n createCard,\n getLatestInvoice,\n grid,\n onChangePlan,\n onClose,\n sourcePlan,\n targetPlan,\n upcomingInvoice,\n ],\n );\n\n const handlePlanDurationChange = event => {\n const duration = event.target.checked\n ? PlanDurations.ANNUALLY\n : PlanDurations.MONTHLY;\n\n onSelectedDurationChange(duration);\n };\n\n const handleGetUpcomingInvoice = useCallback(\n async (values: CreateSubscriptionCheckoutPayload) => {\n return getUpcomingInvoice(values);\n },\n [getUpcomingInvoice],\n );\n\n return (\n \n
    \n (\n
    \n
    {header}
    \n
    \n {renderChangeModalText(targetPlan, sourcePlan, isApiPlan)}\n
    \n
    \n
    \n \n Monthly\n \n \n \n Annually\n \n
    \n
    \n Save {getAnnuallyDiscount(isApiPlan, targetPlan)}%\n
    \n
    \n \n \n \n
    \n \n )}\n />\n {upcomingInvoice && (\n
    \n
    \n Your subscription will be set to auto-renew for $\n {(upcomingInvoice.discountedAmount * upcomingInvoice.quantity).toFixed(2)}\n  per \n {targetPlan.duration === PlanDurations.ANNUALLY ? 'year' : 'month'}. Your\n next payment is due on \n {new Date(\n trialEnd && !isExpired(trialEnd)\n ? trialEnd\n : upcomingInvoice.nextInvoiceDate,\n ).toDateString()}\n . You also agree to our\n \n Terms of Service\n \n  and\n \n Privacy Policy\n \n .\n
    \n
    \n )}\n \n
    \n );\n};\n\nexport default PlanChangeModal;\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { CreateSubscriptionCheckoutPayload } from 'Interfaces/Billing';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: CreateSubscriptionCheckoutPayload) =>\n $actions.billing.getUpcomingInvoice(dispatch, payload),\n );\n};\n","import React, { useState, useCallback } from 'react';\nimport * as _ from 'lodash';\nimport { BaseModalProps } from 'Components/UIComponents/interfaces/UIModal';\nimport {\n LtdStandardDiscount,\n CardFormValues,\n CreateSubscriptionCheckoutPayload,\n Plan,\n PlanDurations,\n PlanTypes,\n UpcomingInvoiceTypes,\n defaultPlanPrices,\n} from 'Interfaces/Billing';\nimport { useLtdUpcomingInvoiceGet, useCardAttach, useCreateCard } from 'Hooks/Billing';\nimport Toast from 'Services/Toast';\nimport UIModal from 'Components/UIComponents/UIModal';\nimport classNames from 'classnames';\nimport { Form } from 'react-final-form';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport { UpcomingInvoice } from 'Pages/Settings/Billing/screens/BillingDefaultPlanScreen';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport Toggler from 'react-toggle';\n\nexport interface PlanChangeModalProps extends BaseModalProps {\n targetPlan: Plan;\n sourcePlan: Plan;\n cardInitialValues: CardFormValues | undefined;\n appliedCouponId?: string;\n isLoading?: boolean;\n onChangePlan: () => void;\n onSelectedDurationChange: (duration: PlanDurations) => void;\n isUpgradingPlan?: boolean;\n}\n\nconst renderChangeModalText = (targetPlan: Plan, sourcePlan: Plan) => {\n if (\n targetPlan.type === sourcePlan.type &&\n targetPlan.duration === sourcePlan.duration\n ) {\n return (\n \n Continue getting your documents signed painlessly with \n \n your Signaturely {_.capitalize(targetPlan.type)} Plan\n \n .\n \n );\n }\n\n if (targetPlan.type === PlanTypes.BUSINESS && targetPlan.type !== sourcePlan.type) {\n return (\n \n The Business Plan will give you additional features like Unlimited Templates and\n Team Management\n \n );\n }\n\n if (\n targetPlan.duration === PlanDurations.ANNUALLY &&\n targetPlan.duration !== sourcePlan.duration\n ) {\n const priceMonth = defaultPlanPrices[targetPlan.type][PlanDurations.MONTHLY];\n const discountedPriceMonth = priceMonth * (1 - LtdStandardDiscount / 100);\n const discountedPriceYear = discountedPriceMonth * 12;\n return (\n \n Instead of paying ${priceMonth}/month, you would pay only \n \n ${discountedPriceMonth.toFixed(2)}\n /month billed yearly (${discountedPriceYear})\n \n .\n \n );\n }\n};\n\nconst LtdPlanChangeModal = ({\n targetPlan,\n sourcePlan,\n cardInitialValues,\n appliedCouponId,\n isLoading,\n onChangePlan,\n onSelectedDurationChange,\n onClose,\n isUpgradingPlan = false,\n}: PlanChangeModalProps) => {\n const createCard = useCreateCard();\n const [attachCard] = useCardAttach();\n const isMobile = useIsMobile();\n const [getLtdUpcomingInvoice, isLoadingLtdUpcomingInvoice] = useLtdUpcomingInvoiceGet();\n const [upcomingInvoice, setUpcomingInvoice] = useState();\n\n const handleChangePlan = useCallback(\n async (values: CardFormValues) => {\n try {\n if (!cardInitialValues) {\n const token = await createCard(values);\n token && (await attachCard(token));\n }\n\n onChangePlan();\n onClose();\n } catch (error) {\n Toast.handleErrors(error);\n }\n },\n [attachCard, cardInitialValues, createCard, onChangePlan, onClose],\n );\n\n const handlePlanDurationChange = event => {\n const duration = event.target.checked\n ? PlanDurations.ANNUALLY\n : PlanDurations.MONTHLY;\n\n onSelectedDurationChange(duration);\n };\n\n const handleGetLtdUpcomingInvoice = useCallback(\n async (values: CreateSubscriptionCheckoutPayload) => {\n return getLtdUpcomingInvoice(values);\n },\n [getLtdUpcomingInvoice],\n );\n\n return (\n \n
    \n (\n
    \n
    Upgrade your plan
    \n
    \n {renderChangeModalText(targetPlan, sourcePlan)}\n
    \n
    \n
    \n \n Monthly\n \n \n \n Annually\n \n
    \n
    \n Save {LtdStandardDiscount}%\n
    \n
    \n \n \n \n
    \n \n )}\n />\n {upcomingInvoice && (\n
    \n
    \n Your subscription will be set to auto-renew for $\n {(upcomingInvoice.discountedAmount * upcomingInvoice.quantity).toFixed(2)}\n  per \n {targetPlan.duration === PlanDurations.ANNUALLY ? 'year' : 'month'}. Your\n next payment is due on \n {new Date(upcomingInvoice.nextInvoiceDate).toDateString()}. You also agree\n to our\n \n Terms of Service\n \n  and\n \n Privacy Policy\n \n .\n
    \n
    \n )}\n \n
    \n );\n};\n\nexport default LtdPlanChangeModal;\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { CreateSubscriptionCheckoutPayload } from 'Interfaces/Billing';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: CreateSubscriptionCheckoutPayload) =>\n $actions.billing.getLtdUpcomingInvoice(dispatch, payload),\n );\n};\n","import { LtdPlanChangeModal } from 'Components/PlanChangeModal';\nimport { useLtdPlanDurationChange, useSubscriptionDataGet } from 'Hooks/Billing';\nimport { Plan, PlanDurations, PlanTypes } from 'Interfaces/Billing';\nimport React, { useCallback, useState } from 'react';\nimport { useSelector } from 'react-redux';\nimport Toast from 'Services/Toast';\nimport { selectCardFormValues, selectUser, selectUserPlan } from 'Utils/selectors';\nimport { headerItems } from '../../screens/BillingDefaultPlanScreen/planTableItems';\n\ninterface LtdUpgradePlanModalProps {\n onClose: () => void;\n addTeamMembers?: () => void;\n isUpgradingPlan?: boolean;\n quantity?: number;\n}\n\nconst LtdUpgradePlanModal = ({\n onClose,\n addTeamMembers,\n isUpgradingPlan = false,\n quantity,\n}: LtdUpgradePlanModalProps) => {\n const user = useSelector(selectUser);\n const cardInitialValues = useSelector(selectCardFormValues);\n const userPlan = useSelector(selectUserPlan);\n const [getSubscriptionData] = useSubscriptionDataGet();\n\n const [\n changeLtdPlanDuration,\n isChangeLtdPlanDurationLoading,\n ] = useLtdPlanDurationChange();\n\n const [planToChange, setPlanToUpgrade] = useState({\n type: PlanTypes.BUSINESS,\n duration: isUpgradingPlan ? PlanDurations.ANNUALLY : PlanDurations.MONTHLY,\n title: 'Business',\n quantity,\n });\n const [selectedPlanDuration, setSelectedPlanDuration] = useState(\n isUpgradingPlan ? PlanDurations.ANNUALLY : PlanDurations.MONTHLY,\n );\n\n const handleChangePlan = useCallback(async () => {\n try {\n if (userPlan.duration !== selectedPlanDuration) {\n await changeLtdPlanDuration({ duration: selectedPlanDuration });\n }\n\n if (addTeamMembers) addTeamMembers();\n\n if (isUpgradingPlan) {\n Toast.success('Plan has been successfully changed.');\n }\n\n await getSubscriptionData(undefined);\n } catch (error) {\n Toast.handleErrors(error);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n addTeamMembers,\n changeLtdPlanDuration,\n isUpgradingPlan,\n selectedPlanDuration,\n userPlan.duration,\n ]);\n\n const handlePlanDurationChange = useCallback(\n (duration: PlanDurations) => {\n const newPlan = headerItems[duration].find(plan => plan.type === planToChange.type);\n\n if (!newPlan) return;\n\n setSelectedPlanDuration(duration);\n setPlanToUpgrade({\n duration: newPlan.duration,\n id: newPlan.id,\n title: newPlan.title,\n type: newPlan.type,\n quantity: planToChange.quantity,\n });\n },\n [planToChange],\n );\n\n return (\n \n );\n};\n\nexport default LtdUpgradePlanModal;\n","import arrayMutators from 'final-form-arrays';\nimport React, { useCallback } from 'react';\nimport { Form, FormRenderProps } from 'react-final-form';\nimport { FieldArray } from 'react-final-form-arrays';\nimport { TeammateFieldArray } from 'Components/FormFields/TeammatesArray';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport { TeamMembersAddPayload } from 'Interfaces/Team';\nimport { User, UserRoles } from 'Interfaces/User';\nimport { useSelector } from 'react-redux';\nimport { selectUser } from 'Utils/selectors';\nimport UIModal from 'Components/UIComponents/UIModal';\nimport { LtdTypes } from 'Interfaces/Billing';\n\nconst formInitialValues = {\n members: [{ role: UserRoles.USER }],\n} as TeamMembersAddPayload;\n\ninterface ModalContent {\n title?: string;\n subtitle: string;\n description: JSX.Element | string;\n}\n\nconst LtdSubtitleMap: {\n [T in LtdTypes]: string;\n} = {\n [LtdTypes.APPSUMO]: 'AppSumo plan',\n [LtdTypes.TIER]: 'LTD Tier',\n [LtdTypes.NONE]: '',\n};\n\ninterface AdditionalTeamMembersAddModalProps {\n onClose: () => void;\n onSetFutureTeamMembers: (values: TeamMembersAddPayload) => void;\n showBillingModal: () => void;\n teamLimit?: number;\n ltdType: LtdTypes;\n}\n\nconst AdditionalTeamMembersAddModal = ({\n onClose,\n onSetFutureTeamMembers,\n showBillingModal,\n teamLimit,\n ltdType,\n}: AdditionalTeamMembersAddModalProps) => {\n const user: User = useSelector(selectUser);\n\n const handleContinue = useCallback(\n (values: TeamMembersAddPayload) => {\n onSetFutureTeamMembers(values);\n showBillingModal();\n onClose();\n },\n [onClose, onSetFutureTeamMembers, showBillingModal],\n );\n\n return (\n \n
    \n
    \n

    \n Add extra users by upgrading your signaturely subscription\n

    \n

    \n Your {LtdSubtitleMap[ltdType]} only includes {teamLimit} users, in order to\n keep adding more, please select either our monthly or yearly plans.\n

    \n
    \n ) => (\n
    \n
    \n \n
    \n {\n <>\n
    \n
    \n To enhance your Life Time Deal (LTD) and include additional users, you\n need to select either our monthly or yearly plans. Regrettably,\n it's not feasible to increase user numbers directly through the\n LTD. However, as a valued customer, we offer a lifetime{' '}\n discount of 30% for each new user you incorporate. Expand your\n team's capabilities with Signaturely today!\n
    \n \n }\n
    \n
    \n \n
    \n
    \n Cancel\n
    \n
    \n \n )}\n />\n
    \n \n );\n};\n\nexport default AdditionalTeamMembersAddModal;\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport {\n selectTeamMembers,\n selectUser,\n selectSubscriptionInfo,\n selectLtdTier,\n} from 'Utils/selectors';\nimport { useSelector } from 'react-redux';\nimport Toast from 'Services/Toast';\nimport { AppSumoStatus, LtdTypes, PlanTypes } from 'Interfaces/Billing';\nimport { useModal } from 'react-modal-hook';\nimport UIModal from 'Components/UIComponents/UIModal';\nimport { TeamMembersAddModal } from 'Pages/Team/components';\nimport { User, UserRoles } from 'Interfaces/User';\nimport { TeamMembersAddPayload } from 'Interfaces/Team';\nimport { useTeamMembersAdd } from 'Hooks/Team';\nimport { useLtdTierGet, useSubscriptionDataGet } from 'Hooks/Billing';\nimport LtdUpgradePlanModal from 'Pages/Settings/Billing/components/modals/LtdUpgradePlanModal';\nimport { isNotEmpty } from 'Utils/functions';\nimport { useCurrentUserGet } from 'Hooks/User';\nimport AdditionalTeamMembersAddModal from 'Pages/Team/components/AdditionalTeamMembersAddModal';\nimport { APPSUMO_STANDARD_TEAM_LIMIT } from 'Utils/constants';\n\nconst AddTeamMemberButton = () => {\n const [getSubscriptionData, isSubscriptionDataLoading] = useSubscriptionDataGet();\n const [addTeamMembers] = useTeamMembersAdd();\n const [getCurrentUser] = useCurrentUserGet();\n const [getLtdTier] = useLtdTierGet();\n const user: User = useSelector(selectUser);\n const teamMembers = useSelector(selectTeamMembers);\n const subscriptionInfo = useSelector(selectSubscriptionInfo);\n const ltdTier = useSelector(selectLtdTier);\n const [futureTeamMembers, setFutureTeamMembers] = useState();\n const [teamLimit, ltdType] = useMemo(() => {\n if (isNotEmpty(ltdTier)) {\n const teamLimit =\n ltdTier.teammatesLimit === -1 ? undefined : ltdTier.teammatesLimit;\n return [teamLimit, LtdTypes.TIER];\n }\n\n if (user.appSumoStatus === AppSumoStatus.STANDARD) {\n return [APPSUMO_STANDARD_TEAM_LIMIT, LtdTypes.APPSUMO];\n }\n\n return [undefined, LtdTypes.NONE];\n }, [ltdTier, user.appSumoStatus]);\n\n const handleSubscriptionInfoGet = useCallback(async () => {\n try {\n await getSubscriptionData(undefined);\n await getLtdTier({ ltdId: user.ltdTierId });\n } catch (error) {\n Toast.handleErrors(error);\n }\n }, [getLtdTier, getSubscriptionData, user.ltdTierId]);\n\n const handleAddAppSumoTeamMembersSubmit = useCallback(async () => {\n try {\n if (futureTeamMembers) {\n await addTeamMembers(futureTeamMembers);\n Toast.success('Invites sent successfully');\n }\n } catch (error) {\n Toast.handleErrors(error);\n }\n }, [addTeamMembers, futureTeamMembers]);\n\n const [showLtdUpgradePlanModal, hideLtdUpgradePlanModal] = useModal(\n () => (\n \n ),\n [handleAddAppSumoTeamMembersSubmit],\n );\n\n const [showPlanUpgradeModal, hidePlanUpgradeModal] = useModal(\n () => (\n \n setFutureTeamMembers(values)\n }\n showBillingModal={showLtdUpgradePlanModal}\n teamLimit={teamLimit}\n ltdType={ltdType}\n />\n ),\n [subscriptionInfo, user.plan],\n );\n\n const handleAddTeamMembersSubmit = useCallback(\n async (values: TeamMembersAddPayload) => {\n try {\n if (\n teamLimit &&\n ltdType !== LtdTypes.NONE &&\n !isNotEmpty(subscriptionInfo) &&\n values.members.length > teamLimit\n ) {\n await addTeamMembers({ members: values.members.slice(0, teamLimit) });\n Toast.success(`Invites sent successfully for ${teamLimit} first team members`);\n setFutureTeamMembers({ members: values.members.slice(teamLimit) });\n showLtdUpgradePlanModal();\n } else {\n await addTeamMembers(values);\n Toast.success('Invites sent successfully');\n }\n } catch (error) {\n Toast.handleErrors(error);\n }\n },\n [addTeamMembers, ltdType, showLtdUpgradePlanModal, subscriptionInfo, teamLimit],\n );\n\n const [showAddMemberModal, hideAddMemberModal] = useModal(\n () => (\n \n \n \n ),\n [subscriptionInfo, user.plan],\n );\n\n const handleTeamMembersAdd = useCallback(async () => {\n const currentUser = (await getCurrentUser(undefined)) as User;\n\n if (\n ltdType !== LtdTypes.NONE &&\n teamLimit &&\n teamMembers.length >= teamLimit &&\n !currentUser.subscriptionId\n ) {\n showPlanUpgradeModal();\n } else {\n showAddMemberModal();\n }\n }, [\n getCurrentUser,\n ltdType,\n showAddMemberModal,\n showPlanUpgradeModal,\n teamLimit,\n teamMembers.length,\n ]);\n\n useEffect(() => {\n handleSubscriptionInfoGet();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n if (\n (user.role === UserRoles.OWNER && user.plan.type !== PlanTypes.BUSINESS) ||\n user.role === UserRoles.USER\n ) {\n return null;\n }\n\n return (\n
    \n \n
    \n );\n};\n\nexport default AddTeamMemberButton;\n","import React, { useCallback, useMemo } from 'react';\nimport useEndOfYearBanner from 'Hooks/Common/useEndOfYearBanner';\nimport History from 'Services/History';\nimport { AuthorizedRoutePaths, UnauthorizedRoutePaths } from 'Interfaces/RoutePaths';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport classNames from 'classnames';\nimport { PlanDurations, discountByDuration } from 'Interfaces/Billing';\n\ninterface EndOfYearBannerProps {\n isAuthorizedPage?: boolean;\n}\n\nconst EndOfYearBanner = ({ isAuthorizedPage = true }: EndOfYearBannerProps) => {\n const isMobile = useIsMobile();\n const [isShowBanner] = useEndOfYearBanner();\n const isShowRedirect = useMemo(() => {\n const path = History.location.pathname;\n\n if (\n path === UnauthorizedRoutePaths.SIGN_UP_BUSINESS ||\n path === UnauthorizedRoutePaths.SIGN_UP_PERSONAL\n ) {\n return false;\n }\n\n return true;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [History.location.pathname]);\n\n const discount = discountByDuration[PlanDurations.ANNUALLY];\n\n const handleRedirect = useCallback(() => {\n if (!isAuthorizedPage) {\n return History.push(UnauthorizedRoutePaths.SIGN_UP_BUSINESS);\n }\n\n History.push(AuthorizedRoutePaths.SETTINGS_BILLING_PLAN);\n }, [isAuthorizedPage]);\n\n if (!isShowBanner) {\n return null;\n }\n\n return (\n
    \n
    \n
    \n \n End of the Year Sale: Get up to {discount}% OFF on all our Plans\n \n
    \n {isShowRedirect && (\n
    \n Save now\n
    \n )}\n
    \n
    \n );\n};\n\nexport default EndOfYearBanner;\n","import React, { useCallback, useEffect, useState } from 'react';\nimport { IS_END_OF_YEAR } from 'Utils/constants';\n\nexport default () => {\n const [isShowBanner, setShowBanner] = useState(false);\n\n const closeBanner = useCallback(() => {\n setShowBanner(false);\n }, []);\n\n useEffect(() => {\n if (IS_END_OF_YEAR) {\n setShowBanner(true);\n }\n }, []);\n\n return [isShowBanner, closeBanner] as const;\n};\n","import React, { useCallback } from 'react';\nimport History from 'Services/History';\nimport { AuthorizedRoutePaths } from 'Interfaces/RoutePaths';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport classNames from 'classnames';\n\nconst TrialBanner = () => {\n const isMobile = useIsMobile();\n const handleRedirect = useCallback(() => {\n History.push(AuthorizedRoutePaths.TRY_TRIAL);\n }, []);\n\n return (\n
    \n
    \n
    \n You have a 7-day Free Business Trial\n
    \n
    \n Try now\n
    \n
    \n
    \n );\n};\n\nexport default TrialBanner;\n","import React, { useEffect, useMemo } from 'react';\nimport { Location } from 'history';\nimport { ReactSVG } from 'react-svg';\nimport { Link } from 'react-router-dom';\nimport Logo from 'Assets/images/logo.svg';\nimport { useLogout } from 'Hooks/Auth';\nimport DropDownUser from '../DropDownUser';\nimport { useSelector } from 'react-redux';\nimport { selectUser } from 'Utils/selectors';\nimport { User, UserStatuses } from 'Interfaces/User';\nimport { PlanIds, PlanTypes, signatureLimitedPlans } from 'Interfaces/Billing';\n\nimport UIButton from 'Components/UIComponents/UIButton';\nimport HelpIcon from 'Assets/images/icons/help-icon.svg';\nimport DropDownMenu from 'Components/DropDownMenu';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport BlackFridayBanner from 'Components/Header/BlackFridayBanner';\nimport Toast from 'Services/Toast';\nimport AddTeamMemberButton from './AddTeamMemberButton';\nimport { AuthorizedRoutePaths } from 'Interfaces/RoutePaths';\nimport EndOfYearBanner from './EndOfYearBanner';\nimport classNames from 'classnames';\nimport TrialBanner from './TrialBanner';\nimport { IS_BLACK_FRIDAY, IS_END_OF_YEAR } from 'Utils/constants';\n\nexport interface HeaderProps {\n location: Location;\n isActionHidden?: boolean;\n headerClassName?: string;\n}\n\nfunction Header({ location, headerClassName, isActionHidden = false }: HeaderProps) {\n const [logout] = useLogout();\n const user: User = useSelector(selectUser);\n const {\n freeDocumentsUsedLimit,\n freeDocumentsUsed,\n isTrialUsed,\n teamId,\n personalDocumentsUsedLimit,\n personalDocumentsUsed,\n plan,\n } = useSelector(selectUser);\n const isMobile = useIsMobile();\n\n const signatureCounterByType = {\n [PlanTypes.FREE]: `${freeDocumentsUsed} of ${freeDocumentsUsedLimit} signature requests`,\n [PlanTypes.PERSONAL]: `${personalDocumentsUsed} of ${personalDocumentsUsedLimit} signature requests`,\n };\n\n useEffect(() => {\n if (user.status === UserStatuses.FREEZE) {\n Toast.warn(\n 'Your current subscription has not been paid; the account has been disabled. Please check your payment method.',\n { toastId: 'unpaid_toast' },\n );\n }\n }, [user.status]);\n\n const isSignaturesLimited = useMemo(\n () => signatureLimitedPlans.includes(user.plan.id as PlanIds) && !user.teamId,\n [user.plan, user.teamId],\n );\n\n const isTrialAvailable = useMemo(\n () => user?.plan?.type === PlanTypes.FREE && !isTrialUsed && !teamId,\n [isTrialUsed, teamId, user],\n );\n\n const isSomeSale = useMemo(() => IS_BLACK_FRIDAY || IS_END_OF_YEAR, []);\n\n return (\n
    \n {!isActionHidden && (\n <>\n \n \n \n )}\n {!isActionHidden && isTrialAvailable && !isSomeSale && }\n
    \n \n \"Signaturely\"\n \n {!isMobile && isSignaturesLimited && !isActionHidden && (\n
    \n
    \n

    \n {signatureCounterByType[plan.type]}\n this month\n

    \n
    \n\n \n \n \n
    \n )}\n {!isMobile &&\n !isActionHidden &&\n (isSignaturesLimited || (isTrialAvailable && isSomeSale)) && (\n
    \n )}\n
    \n {isMobile ? (\n \n ) : (\n <>\n \n \n \n \n \n \n )}\n
    \n
    \n
    \n );\n}\n\nexport default Header;\n","import React from 'react';\n\nfunction Footer() {\n const currentYear = new Date().getFullYear();\n\n return (\n \n );\n}\n\nexport default Footer;\n","import React from 'react';\nimport { WrapperProps } from 'Interfaces/Common';\n\nimport Header from 'Components/Header';\nimport Footer from 'Components/Footer';\nimport IdleTimer from 'react-idle-timer';\nimport { useLogout } from 'Hooks/Auth';\nimport { IDLE_TIMEOUT_MINUTES } from 'Utils/constants';\n\nconst timeout = IDLE_TIMEOUT_MINUTES * 60000;\n\nfunction AuthenticatedWrapper({ children, location }: WrapperProps) {\n return (\n
    \n
    \n <>{children}\n
    \n
    \n );\n}\n\nexport default AuthenticatedWrapper;\n","import React from 'react';\nimport { Link } from 'react-router-dom';\nimport { WrapperProps } from 'Interfaces/Common';\n\nimport Logo from 'Assets/images/logo.svg';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport classNames from 'classnames';\nimport BlackFridayBanner from 'Components/Header/BlackFridayBanner';\nimport { UnauthorizedRoutePaths } from 'Interfaces/RoutePaths';\nimport EndOfYearBanner from 'Components/Header/EndOfYearBanner';\nimport { CURRENT_YEAR } from 'Utils/constants';\n\nfunction SimplifiedWrapper({ children }: WrapperProps) {\n const isMobile = useIsMobile();\n\n return (\n
    \n \n \n
    \n \n \"Signaturely\"\n \n
    \n
    {children}
    \n
    \n © {CURRENT_YEAR} Signaturely | \n \n Terms and Conditions\n \n
    \n
    \n );\n}\n\nexport default SimplifiedWrapper;\n","import CompanyIcon from 'Assets/images/icons/company-icon.svg';\nimport TeamIcon from 'Assets/images/icons/team-icon.svg';\nimport IntegrationsIcon from 'Assets/images/icons/integrations-icon.svg';\nimport EditIcon from 'Assets/images/icons/edit-icon.svg';\nimport BillingIcon from 'Assets/images/icons/billing-icon.svg';\nimport { AuthorizedRoutePaths } from 'Interfaces/RoutePaths';\n\ninterface NavItem {\n path: string;\n classNameMod: string;\n label: string;\n icon: string;\n}\n\nexport const settingsNavItems: NavItem[] = [\n {\n path: AuthorizedRoutePaths.SETTINGS_COMPANY,\n label: 'Company',\n icon: CompanyIcon,\n classNameMod: 'fill',\n },\n {\n path: AuthorizedRoutePaths.SETTINGS_PROFILE,\n label: 'Profile',\n icon: TeamIcon,\n classNameMod: 'stroke',\n },\n {\n path: AuthorizedRoutePaths.SETTINGS_API,\n label: 'API',\n icon: IntegrationsIcon,\n classNameMod: 'stroke',\n },\n {\n path: AuthorizedRoutePaths.SETTINGS_EDIT_SIGNATURE,\n label: 'Edit Signature',\n icon: EditIcon,\n classNameMod: 'stroke',\n },\n {\n path: AuthorizedRoutePaths.SETTINGS_BILLING,\n label: 'Billing',\n icon: BillingIcon,\n classNameMod: 'stroke',\n },\n];\n","import React, { useMemo } from 'react';\nimport { Location } from 'history';\nimport classNames from 'classnames';\nimport { ReactSVG } from 'react-svg';\nimport { Link } from 'react-router-dom';\nimport { settingsNavItems } from './SettingsNavItems';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\n\nexport interface SettingsNavigationProps {\n location: Location;\n}\n\nfunction SettingsNavigation({ location }: SettingsNavigationProps) {\n const isMobile = useIsMobile();\n return (\n
    \n {settingsNavItems.map((item, index) => {\n const { pathname } = location;\n const { path, label, icon, classNameMod } = item;\n const isActive = pathname.startsWith(path);\n return (\n \n {!isMobile && }\n {label}\n \n );\n })}\n
    \n );\n}\n\nexport default SettingsNavigation;\n","import React from 'react';\nimport { WrapperProps } from 'Interfaces/Common';\n\nimport SettingsNavigation from 'Components/SettingsNavigation';\n\nfunction SettingsWrapper({ children, location }: WrapperProps) {\n return (\n
    \n

    Settings

    \n

    \n Browse all your Signaturely settings from here.
    \n If you need more in-depth help or support, please get in touch.\n

    \n
    \n \n
    \n
    {children}
    \n
    \n );\n}\n\nexport default SettingsWrapper;\n","import { useEffect } from 'react';\nimport { WOOTRIC_ID } from 'Utils/constants';\n\nexport default (email: string, createdAt: Date) => {\n const timestamp = Math.floor(new Date(createdAt).getTime() / 1000);\n\n useEffect(() => {\n if (!email || !createdAt) return;\n\n const setupScript = document.createElement('script');\n setupScript.type = 'text/javascript';\n setupScript.id = 'wootric-settings';\n setupScript.async = true;\n setupScript.innerHTML = `\n window.wootricSettings = {\n email: '${email}',\n created_at: ${timestamp},\n account_token: '${WOOTRIC_ID}'\n };\n `;\n if (document.getElementById('wootric-settings') == null) {\n document.body.appendChild(setupScript);\n }\n\n // Beacon\n const beacon = document.createElement('script');\n beacon.type = 'text/javascript';\n beacon.id = 'wootric-beacon';\n beacon.async = true;\n\n beacon.src = 'https://cdn.wootric.com/wootric-sdk.js';\n beacon.onload = function() {\n //@ts-ignore\n window.wootric('run');\n };\n if (document.getElementById('wootric-beacon') == null) {\n document.body.appendChild(beacon);\n }\n }, [createdAt, email, timestamp]);\n};\n","import React, { useCallback } from 'react';\nimport { useSelector } from 'react-redux';\nimport _ from 'lodash';\nimport Toast from 'Services/Toast';\nimport History from 'Services/History';\nimport {\n Document,\n DocumentTypes,\n Signer,\n DocumentBulkSendValues,\n BulkSendValidation,\n CsvEmailError,\n} from 'Interfaces/Document';\nimport { selectUser } from 'Utils/selectors';\nimport { User } from 'Interfaces/User';\nimport { email as validateEmail } from 'Utils/validation';\nimport { DocumentFieldTypes } from 'Interfaces/DocumentFields';\nimport { AuthorizedRoutePaths } from 'Interfaces/RoutePaths';\n\ntype DocumentValidationError = string | undefined;\n\ninterface CheckDocumentValidity {\n (document: Document): string[];\n}\n\nexport const checkForSignersDuplicates = (\n document: Document,\n): DocumentValidationError => {\n const partialSigners = (document.signers || []).map(({ name, email, role }) => {\n return document.type === DocumentTypes.TEMPLATE ||\n document.type === DocumentTypes.FORM_REQUEST\n ? { role }\n : {\n name,\n email,\n };\n });\n const duplicateSigners = _.difference(\n partialSigners,\n _.uniqWith(partialSigners, _.isEqual),\n ) as Signer[];\n\n if (duplicateSigners.length) return 'One or more signers are identical';\n};\n\nexport const checkForFileAttachment = (document: Document): DocumentValidationError => {\n if (!(document.parts.every(part => part.filesUploaded) || document.templateId)) {\n switch (document.type) {\n case DocumentTypes.TEMPLATE:\n return `Template must have a file attached`;\n case DocumentTypes.FORM_REQUEST:\n return `Form must have a file attached`;\n default:\n return `Document must have a file or template attached`;\n }\n }\n};\n\nexport const checkForDocumentFields = (document: Document): DocumentValidationError => {\n const documentType = document.type === DocumentTypes.TEMPLATE ? 'Template' : 'Document';\n if (document.fields && !document.fields.length)\n return `${documentType} must have at least one field`;\n};\n\nexport const checkForEmptyTextbox = (document: Document): DocumentValidationError => {\n const hasEmptyTextbox =\n document.fields.length &&\n document.fields.findIndex(\n field =>\n field.type === DocumentFieldTypes.Text &&\n field.required &&\n !field.text &&\n (!document.signers ||\n document.signers.findIndex(signer => signer.id === field.signerId) === -1),\n ) !== -1;\n if (hasEmptyTextbox) return 'The Textbox Assigned to (Me) Now must have one letter';\n};\n\nexport const checkForDocumentRequiredField = (\n document: Document,\n): DocumentValidationError => {\n if (document.type === DocumentTypes.ME) return;\n const documentType = document.type === DocumentTypes.TEMPLATE ? 'Template' : 'Document';\n const requiredFields = document.fields.filter(field => field.required);\n if (requiredFields && !requiredFields.length)\n return `${documentType} must have at least one required field`;\n};\n\nexport const checkForCurrentUserPresents = (document: Document, user: User) => {\n const isCurrentUserPresent = !!document.signers?.find(\n signer => signer.email === user.email,\n );\n\n if (!user.isTemporary && !isCurrentUserPresent)\n return 'Current user must be in document signers list';\n};\n\nexport const checkForCurrentUserFields = (document: Document, user: User) => {\n const isCurrentUserAssigned = document.signers.find(signer => {\n const signerField = document.fields.find(\n documentField => documentField.signerId === signer.id,\n );\n\n return (\n signerField &&\n (signer.isPreparer || (signer.email === user.email && signer.name === user.name))\n );\n });\n\n if (!isCurrentUserAssigned) {\n return 'You have no fields assigned to you';\n }\n};\n\nexport const checkForOtherSignersFieldsAssign = (document: Document, user: User) => {\n const unusedSigner = document.signers.find(\n signer =>\n signer.userId !== user.id &&\n (signer.name !== user.name || signer.email !== user.email) &&\n !document.fields.find(documentField => documentField.signerId === signer.id),\n );\n\n if (unusedSigner)\n return `Signer \"${unusedSigner.name}\" (${unusedSigner.email}) has no fields assigned`;\n};\n\nexport const checkForUnusedSigners = (document: Document) => {\n const unusedSigner = document.signers?.find(\n signer =>\n !document.fields.find(documentField => documentField.signerId === signer.id),\n );\n\n if (unusedSigner) {\n const { subjectType, subject } =\n document.type !== DocumentTypes.TEMPLATE &&\n document.type !== DocumentTypes.FORM_REQUEST\n ? {\n subjectType: 'Signer',\n subject: `\"${unusedSigner.name}\" (${unusedSigner.email})`,\n }\n : {\n subjectType: 'Role',\n subject: unusedSigner.role,\n };\n return `${subjectType} ${subject} has no fields assigned`;\n }\n};\n\nexport const checkForUnattachedFields = (document: Document): DocumentValidationError => {\n const unattachedField = document.fields.find(documentField => !documentField.signerId);\n const documentType = document.type === DocumentTypes.TEMPLATE ? 'Template' : 'Document';\n\n if (unattachedField) {\n return `${documentType} has one or more fields without signer`;\n }\n};\n\nconst navigateToOnlyMe = () => History.push(AuthorizedRoutePaths.ONLY_ME);\n\nexport const getDocumentValidationMeta = (type: DocumentTypes) =>\n type === DocumentTypes.ME_AND_OTHER\n ? {\n signers: {\n minLength: 2,\n showMessage: () =>\n Toast.warn(\n
    \n Are you the only signer? Please use Only Me option instead.\n
    \n \n Go to Only Me\n \n
    ,\n { closeOnClick: true },\n ),\n },\n }\n : {\n signers: {\n minLength: 1,\n showMessage: () => Toast.error('Document must have at least one signer'),\n },\n };\n\nexport const checkSigners = (\n values: DocumentBulkSendValues,\n): (CsvEmailError | undefined)[] => {\n if (values.signers && values.signers.length > 25) {\n return [{ index: 0, message: 'Signers list must contain at most 25 elements' }];\n }\n\n return values.signers\n ? values.signers.map((signer, index, signers) => {\n if (!signer?.name && !signer?.email) {\n return { index, message: 'Empty line' };\n }\n\n if (!signer?.name) {\n return { index, message: 'Signer has no name' };\n }\n\n if (!signer?.email) {\n return { index, message: 'Signer has no email' };\n }\n\n const isDuplicated = !!signers\n .slice(0, index)\n .find(prevSigner => _.isEqual(prevSigner, signer));\n\n if (isDuplicated) {\n return { index, message: 'Signer is duplicated' };\n }\n\n return (\n validateEmail(signer?.email) && {\n message: 'Email is invalid',\n index,\n }\n );\n })\n : [];\n};\n\nexport const useBulkSendValidation = () => {\n const checkBulkSendValues = useCallback(\n (values: DocumentBulkSendValues) =>\n ({\n errors: checkSigners(values).filter(value => value !== undefined),\n } as BulkSendValidation),\n [],\n );\n return checkBulkSendValues;\n};\n\nexport const checkForEmptyNameField = (document: Document): DocumentValidationError => {\n const hasEmptyTextbox =\n document.fields.length &&\n document.fields.findIndex(\n field =>\n field.type === DocumentFieldTypes.Name &&\n !field.text &&\n (!document.signers ||\n document.signers.findIndex(signer => signer.id === field.signerId) === -1),\n ) !== -1;\n if (hasEmptyTextbox) {\n return 'The Name field Assigned to (Me) Now must be filled';\n }\n};\n\nexport const useDocumentValidation = () => {\n const user: User = useSelector(selectUser);\n\n const checkDocumentValidity: CheckDocumentValidity = useCallback(\n (document: Document) => {\n const validationalDocument = {\n ...document,\n signers: document.signers.filter(signer => !signer.isPreparer),\n } as Document;\n const validationErrors = [\n checkForFileAttachment(validationalDocument),\n checkForSignersDuplicates(validationalDocument),\n checkForDocumentFields(validationalDocument),\n checkForDocumentRequiredField(validationalDocument),\n checkForUnattachedFields(validationalDocument),\n checkForEmptyTextbox(validationalDocument),\n checkForEmptyNameField(validationalDocument),\n ];\n\n const documentWithTemplateErrors = [\n checkForSignersDuplicates(validationalDocument),\n ];\n\n const otherValidationErrors =\n document.type === DocumentTypes.ME_AND_OTHER\n ? [\n checkForCurrentUserPresents(document, user),\n checkForCurrentUserFields(document, user),\n checkForOtherSignersFieldsAssign(document, user),\n ]\n : [checkForUnusedSigners(validationalDocument)];\n return validationalDocument.templateId\n ? (documentWithTemplateErrors.filter(Boolean) as string[])\n : ([...validationErrors, ...otherValidationErrors].filter(Boolean) as string[]);\n },\n [user],\n );\n\n return checkDocumentValidity;\n};\n","import React, { useCallback, useMemo, useEffect, useState } from 'react';\nimport { FieldArrayRenderProps } from 'react-final-form-arrays';\nimport classNames from 'classnames';\nimport { DragDropContext, Droppable, Draggable } from 'react-beautiful-dnd';\nimport { ReactSVG } from 'react-svg';\nimport _ from 'lodash';\nimport { InteractExtraValues, Signer } from 'Interfaces/Document';\nimport { moveArrayItem } from 'Utils/functions';\n\nimport { UIAddButton } from 'Components/UIComponents/UIAddButton';\n\nimport CircleClose from 'Assets/images/icons/circle-close.svg';\nimport DraggableIcon from 'Assets/images/icons/draggable-icon.svg';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport { checkSignersLimit } from 'Utils/validation';\nimport Toast from 'Services/Toast';\nimport { useSelector } from 'react-redux';\nimport { selectUser } from 'Utils/selectors';\nimport { User } from 'Interfaces/User';\nimport { PlanTypes } from 'Interfaces/Billing';\n\ninterface IsDepetablePredicateArgument {\n itemIndex: number;\n fields: FieldArrayRenderProps, HTMLElement>['fields'];\n}\n\ninterface SignersArrayProps extends FieldArrayRenderProps, HTMLElement> {\n renderFields?: (name, index) => any;\n addLabel?: string;\n isItemDeletablePredicate?: (arg: IsDepetablePredicateArgument) => boolean;\n isOrdered?: boolean;\n isOrderedDisabled?: boolean;\n skipFirst?: boolean;\n skipPreparer?: boolean;\n isAdditionDisabled?: boolean;\n isRemoveDisabled?: boolean;\n withRoles?: boolean;\n handleSetSignersValues?: (values: InteractExtraValues) => void;\n}\n\nfunction SignersArray({\n fields,\n withRoles,\n isAdditionDisabled,\n isRemoveDisabled,\n isOrdered = false,\n isOrderedDisabled = false,\n renderFields,\n addLabel = 'Add signer',\n skipFirst = false,\n skipPreparer = true,\n isItemDeletablePredicate,\n handleSetSignersValues,\n}: SignersArrayProps) {\n const isMobile = useIsMobile();\n\n const isAloneSigner = useMemo(\n () => fields.value.filter(value => value.order && value.order > 0).length === 1,\n [fields.value],\n );\n const lastSigner = useMemo(() => _.maxBy(fields.value, 'order') as Partial, [\n fields,\n ]);\n\n const user = useSelector(selectUser) as User;\n\n const handleSignerAdd = useCallback(() => {\n const checkLimit = checkSignersLimit(fields.value.length);\n if ((user.isTrialSubscription || user.plan.type === PlanTypes.FREE) && checkLimit) {\n return Toast.error(checkLimit);\n }\n fields.push({ order: Math.max((lastSigner.order || 0) + 1, 1) });\n }, [fields, lastSigner]);\n\n const handleSignerRemove = useCallback(\n (index: number) => {\n for (let i = index + 1; i < fields.value.length; i++) {\n const { order } = fields.value[i - 1];\n fields.update(i, { ...fields.value[i], order });\n }\n\n fields.remove(index);\n },\n [fields],\n );\n\n const handleDragEnd = useCallback(\n ({ source, destination }) => {\n if (destination) {\n moveArrayItem(fields.value, source.index, destination.index).map(\n (value, index) => {\n fields.update(index, { ...value, order: fields.value[index].order });\n },\n );\n }\n },\n [fields],\n );\n\n useEffect(() => {\n if (handleSetSignersValues && fields.value)\n handleSetSignersValues({ signers: fields.value as Signer[], isOrdered: isOrdered });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [fields.value]);\n\n return (\n
    \n
    \n \n \n {droppableProvided => (\n \n {fields.map((name, index) => {\n const signer = fields.value[index];\n\n if (signer.isPreparer && skipPreparer) return null;\n\n return (\n \n {(draggableProvided, snapshot) => (\n \n {isOrdered && !isAloneSigner && !isOrderedDisabled && (\n
    \n {fields.length && fields.length > 1 && (\n \n )}\n \n {signer.order}.\n \n
    \n )}\n \n {withRoles && (\n
    {signer.role}
    \n )}\n
    \n {renderFields && renderFields(name, index)}\n
    \n
    \n {(!isItemDeletablePredicate ||\n isItemDeletablePredicate({ itemIndex: index, fields })) &&\n !isRemoveDisabled && (\n handleSignerRemove(index)}\n />\n )}\n \n )}\n \n );\n })}\n {droppableProvided.placeholder}\n \n )}\n \n \n
    \n {!isAdditionDisabled && (\n \n )}\n
    \n );\n}\n\nexport default SignersArray;\n","export enum IntegrationTypes {\n GOOGLE_DRIVE = 'google_drive',\n BOX = 'box',\n ONE_DRIVE = 'one_drive',\n DROPBOX = 'dropbox',\n}\n\nexport interface Integration {\n id: string;\n type: IntegrationTypes;\n}\n\nexport interface IntegrationActionPayload {\n type: IntegrationTypes;\n}\n\nexport interface IntegrationUrlPayload {\n url: string;\n}\n\nexport type IntegrationDeactivatePayload = IntegrationActionPayload &\n IntegrationUrlPayload;\n\nexport interface IntegrationAuthTokenPayload {\n token: string;\n}\n","import React, { useLayoutEffect } from 'react';\nimport { useSelector } from 'react-redux';\nimport { RouteChildrenProps } from 'react-router-dom';\nimport Toast from 'Services/Toast';\nimport { IntegrationTypes, Integration } from 'Interfaces/Integration';\nimport { selectUserIntegrations } from 'Utils/selectors';\n\nimport { IntegrationItemProps, IntegrationItem } from './IntegrationItem';\n\nimport GoogleDriveIcon from 'Assets/images/integtationsExampleIcons/google-drive-icon.svg';\nimport DropBoxIcon from 'Assets/images/integtationsExampleIcons/drop-box-icon.svg';\nimport OneDriveIcon from 'Assets/images/integtationsExampleIcons/one-drive-icon.svg';\nimport BoxIcon from 'Assets/images/integtationsExampleIcons/box-icon.svg';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport classNames from 'classnames';\n\nenum IntegrationActivationStatuses {\n SUCCESS = 'success',\n ERROR = 'error',\n}\n\nexport const integrationsList: Omit[] = [\n {\n type: IntegrationTypes.GOOGLE_DRIVE,\n title: 'Google Drive',\n icon: GoogleDriveIcon,\n description: 'Easily import documents and files from Google Drive.',\n },\n {\n type: IntegrationTypes.DROPBOX,\n title: 'Dropbox',\n icon: DropBoxIcon,\n description: 'Easily import documents and files from Dropbox.',\n },\n {\n type: IntegrationTypes.ONE_DRIVE,\n title: 'One Drive',\n icon: OneDriveIcon,\n description: 'Easily import documents and files from One Drive.',\n },\n {\n type: IntegrationTypes.BOX,\n title: 'Box',\n icon: BoxIcon,\n description: 'Easily import documents and files from Box.',\n },\n];\n\nconst Integrations = ({ location }: RouteChildrenProps) => {\n const userIntegrations: Integration[] = useSelector(selectUserIntegrations);\n const isMobile = useIsMobile();\n\n useLayoutEffect(() => {\n const searchParams = new URLSearchParams(location.search);\n const status = searchParams.get('status');\n const error = searchParams.get('error');\n const errorDescription = searchParams.get('error_description');\n const type = searchParams.get('type') as IntegrationTypes | null;\n\n window.history.replaceState({}, '', window.location.pathname);\n\n if (status === IntegrationActivationStatuses.ERROR && errorDescription) {\n const errorMessage =\n error === 'access_denied'\n ? 'You have denied access for Signaturely'\n : errorDescription;\n\n if (window && window.opener) {\n window.opener.postMessage(\n { integrationStatus: { type, status, error: errorMessage } },\n '*',\n );\n window.close();\n }\n\n Toast.error(errorMessage);\n } else if (status === IntegrationActivationStatuses.SUCCESS && type) {\n const integrationTitle = integrationsList.find(\n integration => integration.type === type,\n )?.title;\n\n if (window && window.opener) {\n window.opener.postMessage({ integrationStatus: { type, status } }, '*');\n window.close();\n }\n\n Toast.success(`${integrationTitle} successfully integrated!`);\n }\n }, [location.search]);\n\n return (\n
    \n

    Integrations

    \n

    \n Connect Signaturely with the tools you already know and love.\n

    \n
      \n {integrationsList.map(integration => (\n userIntegration.type === integration.type,\n )\n }\n />\n ))}\n
    \n
    \n );\n};\n\nexport default Integrations;\n","import { useDispatch } from 'react-redux';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { IntegrationActionPayload } from 'Interfaces/Integration';\nimport { $actions } from 'Store';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: IntegrationActionPayload) =>\n $actions.integration.getAuthUrl(dispatch, payload),\n );\n};\n","import React, { useCallback } from 'react';\nimport { IntegrationTypes, IntegrationUrlPayload } from 'Interfaces/Integration';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport { useAuthUrlGet, useIntegrationDeactivate } from 'Hooks/Integration';\nimport Toast from 'Services/Toast';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport classNames from 'classnames';\n\nexport interface IntegrationItemProps {\n type: IntegrationTypes;\n title: string;\n icon: string;\n description: string;\n isActivate?: boolean;\n}\n\nexport const IntegrationItem = ({\n type,\n description,\n icon,\n title,\n isActivate = false,\n}: IntegrationItemProps) => {\n const [getAuthUrl, isGettingAuthUrl] = useAuthUrlGet();\n const [deactivateIntegration, isDeactivatingIntegration] = useIntegrationDeactivate();\n const isMobile = useIsMobile();\n\n const handleAuthUrlGet = useCallback(async () => {\n try {\n const { url } = (await getAuthUrl({ type })) as IntegrationUrlPayload;\n\n window.location.replace(url);\n } catch (err) {\n Toast.handleErrors(err);\n }\n }, [getAuthUrl, type]);\n\n const handleIntegrationDeactivate = useCallback(async () => {\n try {\n const { url } = (await deactivateIntegration({ type })) as IntegrationUrlPayload;\n\n if (type === IntegrationTypes.ONE_DRIVE) {\n window.location.replace(url);\n }\n\n Toast.success(`${title} integration successfully deactivated`);\n } catch (err) {\n Toast.handleErrors(err);\n }\n }, [deactivateIntegration, type, title]);\n\n return (\n
  • \n
    \n \n
    \n

    \n {title}\n

    \n

    \n {description}\n

    \n {type !== IntegrationTypes.DROPBOX ? (\n
    \n \n
    \n ) : (\n
    \n \n
    \n )}\n
  • \n );\n};\n","import { useDispatch } from 'react-redux';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { IntegrationActionPayload } from 'Interfaces/Integration';\nimport { $actions } from 'Store';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: IntegrationActionPayload) =>\n $actions.integration.deactivate(dispatch, payload),\n );\n};\n","import { useDispatch } from 'react-redux';\nimport { useCallback, useEffect } from 'react';\nimport {\n IntegrationActionPayload,\n IntegrationTypes,\n IntegrationUrlPayload,\n} from 'Interfaces/Integration';\nimport useAuthUrlGet from './useAuthUrlGet';\nimport { openPopupCenter } from 'Utils/functions';\nimport Toast from 'Services/Toast';\nimport { setIntegration } from 'Store/ducks/user/actionCreators';\nimport { integrationsList } from 'Pages/Integrations/Integrations';\n\ninterface IntegrationPayload {\n type: IntegrationTypes;\n title: string;\n}\n\nenum IntegrationActivationStatuses {\n SUCCESS = 'success',\n ERROR = 'error',\n}\n\ninterface PopupGrant {\n (): Promise;\n}\n\nexport default ({ type, title }: IntegrationPayload) => {\n const dispatch = useDispatch();\n const [getAuthUrl] = useAuthUrlGet();\n\n const openPopup: PopupGrant = useCallback(async () => {\n try {\n const { url } = (await getAuthUrl({ type })) as IntegrationUrlPayload;\n openPopupCenter(url, title, 800, 640);\n } catch (error) {\n Toast.error(error);\n }\n }, [getAuthUrl, title, type]);\n\n useEffect(() => {\n window.onmessage = ({ data }) => {\n if (data.integrationStatus) {\n if (data.integrationStatus.status === IntegrationActivationStatuses.SUCCESS) {\n Toast.success(`\n ${\n integrationsList.find(\n integartion => integartion.type === data.integrationStatus.type,\n )?.title\n }\n successfully integrated!\n `);\n\n dispatch(\n setIntegration({ type: data.integrationStatus.type as IntegrationTypes }),\n );\n } else if (\n data.integrationStatus.status === IntegrationActivationStatuses.ERROR\n ) {\n Toast.error(data.integrationStatus.error);\n }\n }\n };\n\n return () => {\n window.onmessage = null;\n };\n }, [dispatch]);\n\n return [openPopup];\n};\n","import React, { useLayoutEffect } from 'react';\nimport ReactModal from 'react-modal';\nimport { BoxContentPickerApi } from 'Services/Integrations';\nimport Toast from 'Services/Toast';\nimport { MIME_TYPES } from 'Utils/constants';\n\ninterface BoxPickerProps {\n onPick?: (file: File) => void;\n onClose?: () => void;\n accessToken?: string;\n}\n\nexport const BoxPicker = ({ onPick, onClose, accessToken }: BoxPickerProps) => {\n useLayoutEffect(() => {\n if (accessToken) {\n const filePicker = BoxContentPickerApi.show({\n accessToken: accessToken,\n onCancel: onClose,\n onPick: file => {\n onPick && onPick(file);\n\n onClose && onClose();\n },\n extentions: Object.keys(MIME_TYPES).map(key => key.replace('.', '')),\n onError: message => Toast.error(message),\n });\n\n return () => {\n filePicker.then(picker => picker.hide());\n };\n } else {\n onClose && onClose();\n }\n }, [accessToken, onClose, onPick]);\n\n return (\n \n
    \n \n );\n};\n","import React, { useCallback, useMemo, useState, useEffect } from 'react';\nimport { ReactSVG } from 'react-svg';\nimport classNames from 'classnames';\nimport * as _ from 'lodash';\nimport { GoogleApi, DropboxApi, OneDriveApi } from 'Services/Integrations';\nimport Toast from 'Services/Toast';\nimport { useModal } from 'Hooks/Common';\nimport { useAuthTokenGet, useIntegrationConnect } from 'Hooks/Integration';\nimport { isNotEmpty } from 'Utils/functions';\nimport { GOOGLE_MIME_TYPES, MIME_TYPES } from 'Utils/constants';\nimport { IntegrationTypes } from 'Interfaces/Integration';\n\nimport { BoxPicker } from 'Components/BoxPicker/BoxPicker';\nimport { TooltipBlock } from 'Components/Tooltip';\n\nimport Dropbox from 'Assets/images/icons/dropbox.svg';\nimport GoogleDrive from 'Assets/images/icons/google-drive.svg';\nimport OneDrive from 'Assets/images/icons/one-drive.svg';\nimport Box from 'Assets/images/icons/box.svg';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport { clearIntegrationData } from 'Store/ducks/user/actionCreators';\nimport { useDispatch } from 'react-redux';\n\nconst serviceDataByType = {\n [IntegrationTypes.GOOGLE_DRIVE]: { title: 'Google Drive', src: GoogleDrive },\n [IntegrationTypes.ONE_DRIVE]: { title: 'One Drive', src: OneDrive },\n [IntegrationTypes.DROPBOX]: { title: 'Dropbox', src: Dropbox },\n [IntegrationTypes.BOX]: { title: 'Box', src: Box },\n};\n\ninterface UIImportButtonProps {\n type: IntegrationTypes;\n onPick?: (file: File) => void;\n disabled?: boolean;\n integrated?: boolean;\n}\n\nconst UIImportButton = ({ type, onPick, disabled, integrated }: UIImportButtonProps) => {\n const [boxToken, setBoxToken] = useState(undefined);\n const [getAuthToken, isGettingAuthToken] = useAuthTokenGet();\n const isMobile = useIsMobile();\n const dispatch = useDispatch();\n\n const { src, title } = useMemo(() => serviceDataByType[type], [type]);\n\n const [openPopup] = useIntegrationConnect({\n type,\n title: type,\n });\n\n const [openBoxPicker, closeBoxPicker] = useModal(\n () => (\n {\n closeBoxPicker();\n setBoxToken(undefined);\n }}\n accessToken={boxToken}\n />\n ),\n [boxToken],\n );\n\n useEffect(() => {\n if (boxToken) {\n openBoxPicker();\n }\n }, [boxToken, openBoxPicker]);\n\n const handleIntegrationConnect = useCallback(() => {\n openPopup();\n }, [openPopup]);\n\n const handleClick = useCallback(async () => {\n try {\n if (type === IntegrationTypes.DROPBOX) {\n await DropboxApi.openPicker({\n onPick,\n onError: Toast.error,\n extensions: Object.keys(MIME_TYPES),\n });\n\n return;\n }\n\n const tokenPayload = await getAuthToken({ type });\n\n if (!isNotEmpty(tokenPayload)) {\n return;\n }\n\n switch (type) {\n case IntegrationTypes.GOOGLE_DRIVE: {\n await GoogleApi.initGoogleDrivePicker({\n accessToken: tokenPayload.token,\n acceptableFormats: _.uniq([\n ..._.values(MIME_TYPES),\n ..._.keys(GOOGLE_MIME_TYPES),\n ]).join(','),\n onPick,\n onError: Toast.error,\n });\n\n break;\n }\n case IntegrationTypes.BOX: {\n setBoxToken(tokenPayload.token);\n\n break;\n }\n case IntegrationTypes.ONE_DRIVE: {\n await OneDriveApi.launchOneDrivePicker({\n accessToken: tokenPayload.token,\n onPick,\n extentions: _.keys(MIME_TYPES),\n });\n\n break;\n }\n default: {\n return null;\n }\n }\n } catch (error) {\n dispatch(clearIntegrationData({ type }));\n Toast.handleErrors(error);\n handleIntegrationConnect();\n }\n }, [getAuthToken, type, onPick]);\n\n return (\n \n \n
    {title}
    \n {disabled && (\n \n Please enable this integration in\n
    \n order to be able to import files\n
    \n from {title}\n
    \n )}\n \n );\n};\n\nexport default UIImportButton;\n","import { useDispatch } from 'react-redux';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { IntegrationActionPayload } from 'Interfaces/Integration';\nimport { $actions } from 'Store';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: IntegrationActionPayload) =>\n $actions.integration.getAuthToken(dispatch, payload),\n );\n};\n","import React, { useCallback, useEffect, useState } from 'react';\n\nconst stages = {\n STAGE_1: 10,\n STAGE_2: 50,\n STAGE_3: 100,\n};\n\ninterface UIProgressBarProps {\n percent?: number;\n withStaging?: boolean;\n}\n\nconst UIProgressBar = ({ percent = 0, withStaging = true }: UIProgressBarProps) => {\n const [dynamicalProgress, setDynamicalProgress] = useState(0);\n\n const handleSetDynamicalProgress = useCallback(\n offset =>\n setTimeout(() => {\n setDynamicalProgress(dynamicalProgress + offset);\n }, 100),\n [dynamicalProgress],\n );\n\n const setProgress = useCallback(() => {\n if (dynamicalProgress >= stages.STAGE_3) {\n setDynamicalProgress(stages.STAGE_3);\n } else if (percent < stages.STAGE_2 && dynamicalProgress > stages.STAGE_2) {\n setDynamicalProgress(stages.STAGE_2);\n } else if (percent == stages.STAGE_2 && dynamicalProgress < stages.STAGE_2) {\n handleSetDynamicalProgress(3);\n } else if (dynamicalProgress < stages.STAGE_2) {\n handleSetDynamicalProgress(0.5);\n } else if (dynamicalProgress < stages.STAGE_3) {\n handleSetDynamicalProgress(1.5);\n }\n }, [dynamicalProgress, handleSetDynamicalProgress, percent]);\n\n useEffect(() => {\n if (withStaging) {\n setProgress();\n }\n }, [withStaging, setProgress]);\n\n return (\n
    \n \n
    \n );\n};\nexport default UIProgressBar;\n","import React, { useState, useCallback, useEffect } from 'react';\nimport { ReactSVG } from 'react-svg';\nimport { useDropzone } from 'react-dropzone';\nimport classNames from 'classnames';\nimport * as _ from 'lodash';\nimport { IntegrationTypes } from 'Interfaces/Integration';\nimport { lessThan40MB } from 'Utils/validation';\nimport Toast from 'Services/Toast';\nimport { MIME_TYPES } from 'Utils/constants';\n\nimport UIImportButton from './UIImportButton';\nimport UIProgressBar from '../UIProgressBar';\nimport UIButton from '../UIButton';\n\nimport FileSVG from 'Assets/images/icons/documents-icon.svg';\nimport Cancel from 'Assets/images/icons/cancel.svg';\nimport { useSelector } from 'react-redux';\nimport { selectUserIntegrations } from 'Utils/selectors';\n\nconst defaultFormats = _.uniq(_.values(MIME_TYPES)).join(',');\n\ninterface UIUploaderProps {\n importServices?: Array;\n onUpload?: (file: File) => void;\n onCancel: () => void;\n progress?: number;\n error?: string | null;\n acceptableFormats?: string;\n buttonText?: string;\n isError?: boolean;\n isCancelled?: boolean;\n headerTitle?: string;\n uploadTitle?: string;\n isFinished?: boolean;\n initialFileName?: string | null;\n disabled?: boolean;\n isLoading?: boolean;\n}\n\nfunction UIUploader({\n importServices,\n onUpload,\n progress = 0,\n onCancel,\n error,\n isError,\n disabled,\n acceptableFormats = defaultFormats,\n buttonText = 'Add file',\n headerTitle = 'File Uploader',\n uploadTitle = 'Drop files here',\n isCancelled,\n initialFileName = null,\n isFinished = false,\n isLoading = false,\n}: UIUploaderProps) {\n const [uploadProgress, setUploadProgress] = useState(0);\n const userIntegrations = useSelector(selectUserIntegrations);\n const [filename, setFilename] = useState(initialFileName);\n const onDrop = useCallback(\n acceptedFiles => {\n const fileMeta = acceptedFiles[0];\n\n if (disabled || !fileMeta) return;\n\n const sizeError = lessThan40MB(fileMeta.size);\n\n if (sizeError) {\n return Toast.error(sizeError);\n }\n\n setFilename(fileMeta.name);\n onUpload && onUpload(fileMeta);\n },\n [disabled, onUpload],\n );\n useEffect(() => {\n if (!uploadProgress && progress > 25) {\n setUploadProgress(1);\n }\n const timer = setTimeout(() => setUploadProgress(progress), 200);\n\n return () => clearTimeout(timer);\n }, [progress, uploadProgress]);\n\n const handleCloudFilePick = useCallback(\n (file: File) => {\n setFilename(file.name);\n onUpload && onUpload(file);\n },\n [onUpload],\n );\n\n const handleCancel = useCallback(() => {\n setFilename(null);\n onCancel();\n }, [onCancel]);\n\n useEffect(() => {\n if (isCancelled) {\n setFilename(null);\n onCancel();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isCancelled]);\n\n const { getRootProps, getInputProps, isDragReject } = useDropzone({\n onDrop,\n accept: acceptableFormats,\n });\n\n return (\n
    \n
    \n \n
    {headerTitle}
    \n \n \n
    \n
    {uploadTitle}
    \n
    \n Or\n
    \n
    \n \n
    \n
    \n
    \n {isError &&
    {error}
    }\n
    \n {importServices && (\n
    \n
    Import files from:
    \n
    \n {importServices.map(serviceType => (\n integration.type === serviceType,\n ) || serviceType === IntegrationTypes.DROPBOX\n }\n key={serviceType}\n type={serviceType}\n onPick={handleCloudFilePick}\n />\n ))}\n
    \n
    \n )}\n
    \n {filename && (\n
    \n
    \n
    \n \n
    \n
    {filename}
    \n \n \n \n
    \n {uploadProgress !== 0 && !isFinished && (\n
    \n \n
    \n )}\n
    \n )}\n \n );\n}\n\nexport default UIUploader;\n","import React, { ButtonHTMLAttributes } from 'react';\nimport { ReactSVG } from 'react-svg';\nimport classNames from 'classnames';\nimport { makeStyles } from '@material-ui/styles';\nimport UISpinner from './UISpinner';\nimport Cancel from 'Assets/images/icons/cancel.svg';\n\ninterface UICancelButtonProps {\n onClick: () => Promise | void;\n type?: ButtonHTMLAttributes<''>['type'];\n disabled?: boolean;\n isLoading?: boolean;\n}\n\nconst useSpinnerClasses = makeStyles(() => ({\n wrapper: {\n borderRadius: '3px',\n },\n}));\n\nconst UICancelButton = ({\n onClick,\n type = 'button',\n disabled = false,\n isLoading = false,\n}: UICancelButtonProps) => {\n const spinnerClasses = useSpinnerClasses();\n\n return (\n \n {isLoading && (\n \n )}\n {!isLoading && (\n \n )}\n \n );\n};\n\nexport default UICancelButton;\n","import React, { useCallback } from 'react';\nimport { ReactSVG } from 'react-svg';\nimport { useDropzone } from 'react-dropzone';\nimport classNames from 'classnames';\nimport { uniq, values } from 'lodash';\nimport { IntegrationTypes } from 'Interfaces/Integration';\nimport {\n lessThan40MB,\n maxLength100,\n multipleFilesConstaint,\n singleFileConstaint,\n} from 'Utils/validation';\nimport Toast from 'Services/Toast';\nimport { MIME_TYPES } from 'Utils/constants';\nimport UIImportButton from './UIImportButton';\nimport UIProgressBar from '../UIProgressBar';\nimport UIButton from '../UIButton';\nimport FileSVG from 'Assets/images/icons/documents-icon.svg';\nimport { useSelector } from 'react-redux';\nimport { selectUserIntegrations } from 'Utils/selectors';\nimport { DocumentItem, FileItem } from 'Interfaces/Common';\nimport { DragDropContext, Droppable, Draggable } from 'react-beautiful-dnd';\nimport { moveArrayItem } from 'Utils/functions';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport UICancelButton from '../UICancelButton';\n\nconst defaultFormats = uniq(values(MIME_TYPES)).join(',');\n\ninterface UIUploaderProps {\n importServices?: Array;\n onUpload?: (file: File) => void;\n onCancel?: (fileItem: FileItem) => void;\n progress?: number;\n error?: string | null;\n acceptableFormats?: string;\n buttonText?: string;\n isError?: boolean;\n isCancelled?: boolean;\n headerTitle?: string;\n uploadTitle?: string;\n isFinished?: boolean;\n files?: DocumentItem[];\n disabled?: boolean;\n isLoading?: boolean;\n onFileReorder: (newOrders: FileItem[]) => void;\n disableReorder?: boolean;\n isCleanFileData?: boolean;\n filesLimit?: number;\n}\n\nfunction UIMultiUploader({\n importServices,\n onUpload,\n onCancel,\n error,\n isError,\n disabled,\n acceptableFormats = defaultFormats,\n buttonText = 'Add file',\n headerTitle = 'File Uploader',\n uploadTitle = 'Drop files here',\n files = [],\n isFinished = false,\n isLoading = false,\n onFileReorder,\n disableReorder = true,\n isCleanFileData,\n filesLimit,\n}: UIUploaderProps) {\n const userIntegrations = useSelector(selectUserIntegrations);\n const isMobile = useIsMobile();\n\n const onDrop = useCallback(\n (acceptedFiles: File[]) => {\n const documentFiles = files.map(item => item.file);\n const error =\n filesLimit === 1\n ? singleFileConstaint([...documentFiles, ...acceptedFiles])\n : multipleFilesConstaint([...documentFiles, ...acceptedFiles], filesLimit);\n\n if (error) {\n return Toast.error(error);\n }\n\n acceptedFiles.forEach(file => {\n const fileMeta = file;\n\n if (disabled || !fileMeta) return;\n\n const error = lessThan40MB(fileMeta.size) || maxLength100(fileMeta.name);\n\n if (error) {\n return Toast.error(error);\n }\n onUpload && onUpload(fileMeta);\n });\n },\n [disabled, files, filesLimit, onUpload],\n );\n\n const handleCloudFilePick = useCallback(\n (file: File) => {\n onUpload && onUpload(file);\n },\n [onUpload],\n );\n\n const { getRootProps, getInputProps, isDragReject } = useDropzone({\n onDrop,\n accept: acceptableFormats,\n });\n\n const handleDragEnd = useCallback(\n ({ source, destination }) => {\n if (destination) {\n const newOrders = moveArrayItem(files, source.index, destination.index).map(\n (value, index) => {\n return { ...value, order: index + 1 };\n },\n );\n\n onFileReorder(newOrders);\n }\n },\n [files, onFileReorder],\n );\n\n return (\n
    \n
    \n \n
    {headerTitle}
    \n \n \n
    \n
    {uploadTitle}
    \n
    \n Or\n
    \n
    \n \n
    \n
    \n
    \n {isError &&
    {error}
    }\n
    \n {importServices && (\n
    \n
    Import files from:
    \n
    \n {importServices.map(serviceType => (\n integration.type === serviceType,\n ) || serviceType === IntegrationTypes.DROPBOX\n }\n key={serviceType}\n type={serviceType}\n onPick={handleCloudFilePick}\n />\n ))}\n
    \n
    \n )}\n \n \n \n {droppableProvided => (\n
    \n {files.map((fileItem, index) => (\n \n {draggableProvided => (\n \n
    \n
    \n \n
    \n
    \n {fileItem.filename}\n
    \n {onCancel && (\n onCancel(fileItem)}\n isLoading={isCleanFileData}\n />\n )}\n
    \n {!!fileItem.progress &&\n !fileItem.isFinished &&\n !fileItem.errorText && (\n
    \n \n
    \n )}\n {fileItem.errorText && (\n
    {fileItem.errorText}
    \n )}\n
    \n )}\n \n ))}\n {droppableProvided.placeholder}\n \n )}\n
    \n
    \n \n );\n}\n\nexport default UIMultiUploader;\n","import React, { useCallback, useState } from 'react';\nimport { FieldRenderProps } from 'react-final-form';\nimport { IntegrationTypes } from 'Interfaces/Integration';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport Arrow from 'Assets/images/icons/angle-arrow.svg';\nimport { UIMultiUploader } from 'Components/UIComponents/UIUploader';\nimport { DocumentItem, FileItem } from 'Interfaces/Common';\nimport classNames from 'classnames';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\n\ninterface FileFieldProps extends FieldRenderProps {\n submitButtonTitle: string;\n disabled?: boolean;\n files?: DocumentItem[];\n onSubmit: () => Promise;\n onEditTemplate: () => Promise;\n onFileUpload: (file: File) => Promise;\n onUploadCancel: (fileItem: FileItem) => Promise;\n onUploadSuccess?: () => void;\n onUploadFailure?: (error: string) => void;\n isFileProcessed: boolean;\n submitting: boolean;\n isBasedOnTemplate?: boolean;\n onFileReorder: (orders: FileItem[]) => void;\n disableReorder?: boolean;\n isCleanFileData?: boolean;\n isShowWarning?: boolean;\n}\n\nfunction FileField({\n input,\n disabled,\n submitButtonTitle = 'Prepare Doc for Signing',\n editButtonTitle = 'Edit template',\n onUploadCancel,\n onFileUpload,\n files,\n onSubmit,\n onEditTemplate,\n isFileProcessed,\n submitting,\n onUploadSuccess = () => {},\n onUploadFailure = () => {},\n isBasedOnTemplate,\n onFileReorder,\n disableReorder,\n isCleanFileData,\n isShowWarning,\n}: FileFieldProps) {\n const [uploadError, setUploadError] = useState(null);\n const { value, onChange } = input;\n const isMobile = useIsMobile();\n\n const handleFileUpload = useCallback(\n async (file: File) => {\n try {\n onChange(undefined);\n\n await onFileUpload(file);\n\n setUploadError(null);\n onUploadSuccess();\n } catch (error) {\n setUploadError('Failed to upload');\n onUploadFailure(error);\n }\n },\n [onChange, onFileUpload, onUploadFailure, onUploadSuccess],\n );\n\n return (\n
    \n
    \n

    Upload File

    \n \n\n {isShowWarning && (\n
    \n

    *

    \n

    \n To keep your email box tidy, Signaturely only attaches documents under 10Mb\n as PDF files to the email sent when they get signed. You will still be able\n to download larger files from the Download link.\n

    \n
    \n )}\n
    \n \n \n {isBasedOnTemplate && (\n \n )}\n
    \n \n );\n}\n\nexport default FileField;\n","import { useDispatch } from 'react-redux';\nimport { DocumentValues } from 'Interfaces/Document';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((values: DocumentValues) =>\n $actions.document.createDocument(dispatch, { values }),\n );\n};\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { Document } from 'Interfaces/Document';\nimport { useAsyncAction } from 'Hooks/Common';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((documentIds: Document['id'][]) =>\n $actions.document.deleteDocuments(dispatch, { documentIds }),\n );\n};\n","import { useCallback } from 'react';\nimport * as _ from 'lodash';\nimport { DocumentPart } from 'Interfaces/Document';\n\nexport default () => {\n const getPages = useCallback((files: DocumentPart[]) => {\n const orderedFiles = _.orderBy(files, 'order', 'asc');\n return orderedFiles.map(file => file.pdfFileKey) as string[];\n }, []);\n\n return getPages;\n};\n","import { useAsyncAction } from 'Hooks/Common';\nimport { useSignedGetUrlBulk } from 'Hooks/User';\nimport { isNotEmpty } from 'Utils/functions';\nimport { Document, DocumentDownloadTypes, DocumentStatuses } from 'Interfaces/Document';\nimport useDocumentPageKeysGet from './useDocumentPartsKeysGet';\n\nexport interface DocumentFilesGetPayload {\n document: Document;\n}\n\nexport default () => {\n const [getPresignedGetUrlBulk] = useSignedGetUrlBulk();\n const getDocumentPageKeys = useDocumentPageKeysGet();\n\n return useAsyncAction(async ({ document }: DocumentFilesGetPayload) => {\n let pageKeys;\n if (document.status === DocumentStatuses.DRAFT) {\n if (!document.parts) return [[], []];\n pageKeys = getDocumentPageKeys(document.parts);\n } else if (document.status === DocumentStatuses.COMPLETED) {\n pageKeys =\n document.downloadType === DocumentDownloadTypes.MERGED\n ? [document.resultPdfFileKey]\n : [document.resultDocumentPdfFileKey];\n } else {\n pageKeys = document.pdfFileKey\n ? [document.pdfFileKey]\n : getDocumentPageKeys(document.parts);\n }\n\n const documentFilesKeys = [...pageKeys, ...[]];\n\n const presignedUrls = await getPresignedGetUrlBulk({ keys: documentFilesKeys });\n\n if (!isNotEmpty(presignedUrls)) return [[], []];\n\n const presignedPagesUrls = pageKeys.map(key => presignedUrls[key]);\n // const presignedPreviewsUrls = previewKeys.map(key => presignedUrls[key]);\n\n return [presignedPagesUrls, []];\n });\n};\n","import { useDispatch } from 'react-redux';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { $actions } from 'Store';\nimport { BulkSignedUrlPayload } from 'Interfaces/Common';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: BulkSignedUrlPayload) =>\n $actions.user.getSignedGetUrlBulk(dispatch, payload),\n );\n};\n","import { useDispatch } from 'react-redux';\nimport { AxiosRequestConfig } from 'axios';\nimport { $actions } from 'Store/ducks';\nimport { useFileUpload } from 'Hooks/Common';\nimport { DocumentUploadPayload } from 'Interfaces/Document';\n\nexport default (options?: AxiosRequestConfig) => {\n const dispatch = useDispatch();\n\n return useFileUpload<\n DocumentUploadPayload,\n ReturnType\n >(payload =>\n $actions.document.uploadDocument(dispatch, {\n ...payload,\n options: {\n ...options,\n ...payload.options,\n },\n }),\n );\n};\n","import { useDispatch } from 'react-redux';\nimport { DocumentUpdatePayload } from 'Interfaces/Document';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((values: DocumentUpdatePayload) =>\n $actions.document.updateDocument(dispatch, values),\n );\n};\n","import { useDispatch } from 'react-redux';\nimport { useCallback } from 'react';\nimport { rootActions } from 'Store';\n\ninterface CancelDocumentUpdate {\n (): void;\n}\n\nexport default () => {\n const dispatch = useDispatch();\n\n const cancelDocumentUpdate: CancelDocumentUpdate = useCallback(\n () => dispatch(rootActions.document.updateDocument.cancel(undefined, {})),\n [dispatch],\n );\n\n return cancelDocumentUpdate;\n};\n","import { useDispatch } from 'react-redux';\nimport { rootActions } from 'Store/ducks';\nimport { useCallback } from 'react';\nimport { DocumentIdPayload } from 'Interfaces/Document';\n\ninterface StartWatchFunc {\n (payload: DocumentIdPayload): void;\n}\n\ninterface StopWatchFunc {\n (): void;\n}\n\nexport default () => {\n const dispatch = useDispatch();\n\n const startWatch = useCallback(\n (payload: DocumentIdPayload) => {\n dispatch(rootActions.document.watchDocumentConvertionProgress.start(payload));\n },\n [dispatch],\n ) as StartWatchFunc;\n\n const stopWatch = useCallback(() => {\n dispatch(rootActions.document.watchDocumentConvertionProgress.stop());\n }, [dispatch]) as StopWatchFunc;\n\n return [startWatch, stopWatch] as const;\n};\n","import { useDispatch } from 'react-redux';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { $actions } from 'Store';\nimport { DocumentPartIdPayload } from 'Interfaces/Document';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: DocumentPartIdPayload) =>\n $actions.document.cleanFileData(dispatch, payload),\n );\n};\n","import { useCallback, useEffect, useState } from 'react';\nimport { Document } from 'Interfaces/Document';\nimport useDocumentGet from './useDocumentGet';\nimport { useSelector } from 'react-redux';\nimport { selectDocument } from 'Utils/selectors';\n\ninterface DocumentGuardParams {\n documentId?: Document['id'];\n onFailure?: (error) => void;\n onSuccess?: (document: Document) => void;\n}\n\ntype isCheckingDocument = {} | boolean;\n\nexport default ({ documentId, onFailure, onSuccess }: DocumentGuardParams) => {\n const document = useSelector(state => selectDocument(state, { documentId }));\n const [getDocument, isGettingDocument] = useDocumentGet();\n const [isCheckingDocument, setIsCheckingDocument] = useState(true);\n\n const checkDocument = useCallback(async () => {\n try {\n if (!documentId) throw new Error('Document id is not spicified');\n\n const checkedDocument =\n document || ((await getDocument({ documentId })) as Document);\n onSuccess && onSuccess(checkedDocument);\n } catch (error) {\n onFailure && onFailure(error);\n }\n }, [document, documentId, getDocument, onFailure, onSuccess]);\n\n useEffect(() => {\n checkDocument();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n setIsCheckingDocument(isGettingDocument);\n }, [isGettingDocument]);\n\n return isCheckingDocument;\n};\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { DocumentIdPayload } from 'Interfaces/Document';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: DocumentIdPayload) =>\n $actions.document.getDocument(dispatch, payload),\n );\n};\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction(() => $actions.requisite.getRequisites(dispatch));\n};\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { RequisitesPayload } from 'Interfaces/Requisite';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((requisitesPayload: RequisitesPayload) =>\n $actions.requisite.createRequisites(dispatch, requisitesPayload),\n );\n};\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((url: string) =>\n $actions.requisite.downloadFileByUrl(dispatch, url),\n );\n};\n","export const fontFamilyByValue = {\n arial: 'Arial',\n calibri: 'Calibri',\n cambria: 'Cambria',\n courier: 'Courier',\n georgia: 'Georgia',\n timesNewRoman: 'Times New Roman',\n trebuchet: 'Trebuchet',\n verdana: 'Verdana',\n openSans: 'Open Sans',\n roboto: 'Roboto',\n sacramento: 'Sacramento',\n kalam: 'Kalam',\n laBelleAurore: 'La Belle Aurore',\n gochiHand: 'Gochi Hand',\n caveat: 'Caveat',\n marckScript: 'Marck Script',\n handlee: 'Handlee',\n nothingYouCouldDo: 'Nothing You Could Do',\n coveredByYourGrace: 'Covered By Your Grace',\n justAnotherHand: 'Just Another Hand',\n shadowsIntoLight: 'Shadows Into Light',\n badScript: 'Bad Script',\n yellowtail: 'Yellowtail',\n dancingScript: 'Dancing Script',\n greatVibes: 'Great Vibes',\n qwigley: 'Qwigley',\n bilboSwashCaps: 'Bilbo Swash Caps',\n stalemate: 'Stalemate',\n};\n\nexport const availableFontFamilyOptions = {\n dancingScript: 'Dancing Script',\n sacramento: 'Sacramento',\n laBelleAurore: 'La Belle Aurore',\n bilboSwashCaps: 'Bilbo Swash Caps',\n yellowtail: 'Yellowtail',\n greatVibes: 'Great Vibes',\n qwigley: 'Qwigley',\n marckScript: 'Marck Script',\n};\n\nexport const requisiteFontFamilyOptions = Object.keys(availableFontFamilyOptions).map(\n key => ({\n value: key,\n label: availableFontFamilyOptions[key] as string,\n }),\n);\n\nexport const fontFamilyOptions = Object.keys(fontFamilyByValue).map(key => ({\n value: key,\n label: fontFamilyByValue[key] as string,\n}));\n\nexport const fontSizeOptions = [\n {\n value: 7,\n label: '7 px',\n },\n {\n value: 8,\n label: '8 px',\n },\n {\n value: 9,\n label: '9 px',\n },\n {\n value: 10,\n label: '10 px',\n },\n {\n value: 12,\n label: '12 px',\n },\n {\n value: 14,\n label: '14 px',\n },\n {\n value: 16,\n label: '16 px',\n },\n {\n value: 18,\n label: '18 px',\n },\n {\n value: 20,\n label: '20 px',\n },\n {\n value: 24,\n label: '24 px',\n },\n {\n value: 26,\n label: '26 px',\n },\n {\n value: 28,\n label: '28 px',\n },\n {\n value: 36,\n label: '36 px',\n },\n {\n value: 42,\n label: '42 px',\n },\n {\n value: 48,\n label: '48 px',\n },\n];\n","import { useCallback } from 'react';\nimport { useSelector } from 'react-redux';\nimport * as _ from 'lodash';\nimport { SignedUrlResponse } from 'Interfaces/Common';\nimport { useRequisitePut, useSignedPutUrl } from 'Hooks/User';\nimport { MIME_TYPES } from 'Utils/constants';\nimport { selectUser } from 'Utils/selectors';\n\nexport default () => {\n const { id: userId } = useSelector(selectUser);\n const [getSignedPutUrl, isPutUrlLoading] = useSignedPutUrl();\n const [putRequisite, isPutRequisiteLoading] = useRequisitePut();\n\n const uploadToBacket = useCallback(\n async (file: File, id: string) => {\n const fileExt = _.findKey(MIME_TYPES, mimeType => mimeType === file.type);\n const fileName = `${id}${fileExt}`;\n const key = `requisite/${userId}/${fileName}`;\n const { result: putUrl } = (await getSignedPutUrl({\n key,\n })) as SignedUrlResponse;\n await putRequisite({\n url: putUrl,\n file: file,\n });\n return key;\n },\n [getSignedPutUrl, putRequisite, userId],\n );\n\n return [uploadToBacket, isPutUrlLoading || isPutRequisiteLoading] as [\n (file: File, id: string) => Promise,\n boolean,\n ];\n};\n","import { useDispatch } from 'react-redux';\nimport { SignedUrlPayload } from 'Interfaces/Common';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { $actions } from 'Store';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: SignedUrlPayload) =>\n $actions.user.getSignedPutUrl(dispatch, payload),\n );\n};\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store';\nimport { FilePutPayload } from 'Services/AWS';\nimport { useAsyncAction } from 'Hooks/Common';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction(async (payload: FilePutPayload) =>\n $actions.user.putRequisite(dispatch, payload),\n );\n};\n","import { useCallback, useState } from 'react';\nimport {\n Requisite,\n RequisitePayload,\n RequisitesPayload,\n RequisiteType,\n RequisiteValueType,\n} from 'Interfaces/Requisite';\nimport { useBacketUploader, useImageFromTextCreation } from 'Hooks/Requisite';\n\ninterface RequisiteCreationPayload {\n id: Requisite['id'];\n siblingId: Requisite['siblingId'];\n type: RequisiteType;\n value: Requisite['text'] | File;\n}\n\ninterface Props {\n fontStyle: {\n textFontSize: number;\n fontFamilyType: string;\n };\n requisiteValueType: RequisiteValueType;\n}\n\nexport default ({ fontStyle, requisiteValueType }: Props) => {\n const createImageFromText = useImageFromTextCreation(fontStyle);\n const [uploadToBacket] = useBacketUploader();\n const [isCreating, setIsCreating] = useState(false);\n\n const createRequisitePayload = useCallback(\n async ({\n id,\n siblingId,\n type,\n value,\n }: RequisiteCreationPayload): Promise => {\n switch (requisiteValueType) {\n case RequisiteValueType.TEXT:\n if (value && value !== '') {\n const convertedImage = createImageFromText(value as Requisite['text']);\n const fileKey = await uploadToBacket(convertedImage, id);\n return {\n id,\n type,\n text: value as Requisite['text'],\n siblingId,\n fileKey,\n valueType: requisiteValueType,\n fontFamily: fontStyle.fontFamilyType,\n fontSize: fontStyle.textFontSize,\n };\n }\n break;\n case RequisiteValueType.DRAW:\n case RequisiteValueType.UPLOAD:\n if (value) {\n const fileKey = await uploadToBacket(value as File, id);\n return {\n id,\n type,\n siblingId,\n fileKey,\n valueType: requisiteValueType,\n };\n }\n break;\n default:\n break;\n }\n },\n [\n createImageFromText,\n fontStyle.fontFamilyType,\n fontStyle.textFontSize,\n requisiteValueType,\n uploadToBacket,\n ],\n );\n\n const createRequisitesPayload = useCallback(\n async (\n requisitesCreationPayload: [RequisiteCreationPayload, RequisiteCreationPayload],\n ): Promise => {\n setIsCreating(true);\n const requisitesPayload = await Promise.all([\n createRequisitePayload(requisitesCreationPayload[0]),\n createRequisitePayload(requisitesCreationPayload[1]),\n ]);\n setIsCreating(false);\n if (!requisitesPayload[0] || !requisitesPayload[1]) return;\n return requisitesPayload as RequisitesPayload;\n },\n [createRequisitePayload],\n );\n\n return [createRequisitesPayload, isCreating] as const;\n};\n","import { useCallback } from 'react';\nimport trimCanvas from 'trim-canvas';\nimport { fontFamilyByValue } from 'Services/Fonts';\nimport { base64ToFile } from 'Utils/functions';\n\ninterface Props {\n textFontSize: number;\n fontFamilyType: string;\n typeCanvasSize?: { width: number; height: number };\n}\n\nexport default ({\n textFontSize,\n fontFamilyType,\n typeCanvasSize = { width: 17500, height: 750 },\n}: Props) => {\n const createTypeCanvas = useCallback(() => {\n const canvas = document.createElement('canvas') as HTMLCanvasElement;\n canvas.width = typeCanvasSize.width;\n canvas.height = typeCanvasSize.height;\n\n return canvas;\n }, [typeCanvasSize.height, typeCanvasSize.width]);\n\n return useCallback(\n (text: string) => {\n const typeCanvas = createTypeCanvas();\n const context = typeCanvas.getContext('2d') as CanvasRenderingContext2D;\n context.font = `${textFontSize}px ${fontFamilyByValue[fontFamilyType]}`;\n const textSize = context.measureText(text);\n const coordinateX =\n textSize.width > typeCanvasSize.width\n ? 0\n : (typeCanvasSize.width - textSize.width) / 2;\n\n context.fillText(text, coordinateX, typeCanvasSize.height / 2);\n const data = trimCanvas(typeCanvas).toDataURL('image/png');\n\n typeCanvas.remove();\n return base64ToFile(data, 'requisite');\n },\n [\n createTypeCanvas,\n textFontSize,\n fontFamilyType,\n typeCanvasSize.width,\n typeCanvasSize.height,\n ],\n );\n};\n","import { useCallback, useLayoutEffect, useRef, useState } from 'react';\nimport SignaturePad from 'signature_pad';\nimport Toast from 'Services/Toast';\nimport { Requisite, RequisiteValueType } from 'Interfaces/Requisite';\nimport { SignedUrlResponse } from 'Interfaces/Common';\nimport { useDownloadFileByUrl } from 'Hooks/Requisite';\nimport { useSignedGetUrl } from 'Hooks/User';\nimport { base64ToFile } from 'Utils/functions';\n\ninterface Props {\n requisite?: Requisite;\n requisiteValueType: RequisiteValueType;\n defaultValue: Requisite['text'];\n}\n\nexport default ({ requisite, defaultValue, requisiteValueType }: Props) => {\n const [getSignedUrl] = useSignedGetUrl();\n const [downloadFile, isDownloading] = useDownloadFileByUrl();\n\n const canvasRef = useRef(null);\n const [drawnFile, setDrawnFile] = useState();\n const [imageFile, setImageFile] = useState();\n\n const [requisiteValue, setRequisiteValue] = useState(\n requisite?.valueType === RequisiteValueType.TEXT ? requisite?.text : defaultValue,\n );\n\n const [isInitialImage, setIsInitialImage] = useState();\n\n const setImageToCanvas = useCallback(\n async (key: string, type: Exclude) => {\n try {\n const signedUrlData = (await getSignedUrl({ key })) as SignedUrlResponse;\n const imageData: File = await downloadFile(signedUrlData.result);\n type === RequisiteValueType.DRAW\n ? setDrawnFile(imageData)\n : setImageFile(imageData);\n setIsInitialImage(true);\n } catch (error) {\n Toast.handleErrors(error);\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [],\n );\n\n const handleDrawOnCanvas = useCallback(\n (signaturePad: SignaturePad) => {\n const data = signaturePad.toDataURL('image/png');\n const requisiteFile = base64ToFile(data, 'requisite');\n setDrawnFile(requisiteFile);\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [],\n );\n\n useLayoutEffect(() => {\n if (requisite) {\n switch (requisite.valueType) {\n case RequisiteValueType.UPLOAD:\n setImageToCanvas(requisite.fileKey, RequisiteValueType.UPLOAD);\n break;\n case RequisiteValueType.DRAW:\n setImageToCanvas(requisite.fileKey, RequisiteValueType.DRAW);\n break;\n default:\n break;\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useLayoutEffect(() => {\n const canvas = canvasRef.current;\n if (canvas && (requisiteValueType === RequisiteValueType.DRAW || isInitialImage)) {\n const ratio = Math.max(window.devicePixelRatio || 1, 1);\n canvas.width = canvas.offsetWidth * ratio;\n canvas.height = canvas.offsetHeight * ratio;\n\n canvas.getContext('2d')?.scale(ratio, ratio);\n const signPad = new SignaturePad(canvas);\n\n if (drawnFile) {\n const imageUrl = URL.createObjectURL(drawnFile);\n signPad.fromDataURL(imageUrl);\n setIsInitialImage(false);\n }\n\n signPad.onEnd = () => {\n handleDrawOnCanvas(signPad);\n };\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [requisiteValueType, isInitialImage]);\n\n return [\n canvasRef,\n [imageFile, setImageFile],\n [drawnFile, setDrawnFile],\n [requisiteValue, setRequisiteValue],\n isDownloading,\n ] as const;\n};\n","import { useWindowSize } from 'Hooks/Common';\nimport { useCallback, useEffect, useRef } from 'react';\n\ninterface Props {\n textValue: string;\n fontFamilyType: string;\n}\n\nexport default ({ textValue, fontFamilyType }: Props) => {\n const ref = useRef(null);\n const [width, heigth] = useWindowSize();\n\n const resizeFont = useCallback(() => {\n if (ref.current && ref.current.parentElement) {\n let fontSize = 36;\n ref.current.style.fontSize = `${fontSize}px`;\n\n let fieldWidth = ref.current.clientWidth;\n const containerWidth = ref.current.parentElement.clientWidth;\n const containerPadding = 40;\n\n while (fieldWidth > containerWidth - containerPadding) {\n --fontSize;\n ref.current.style.fontSize = `${fontSize}px`;\n fieldWidth = ref.current.clientWidth;\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [textValue, fontFamilyType, width, heigth]);\n\n useEffect(() => {\n const interval = setInterval(resizeFont, 1000);\n return () => clearInterval(interval);\n }, [resizeFont]);\n\n return ref;\n};\n","import { useState, useLayoutEffect } from 'react';\n\nexport default () => {\n const [size, setSize] = useState([0, 0]);\n useLayoutEffect(() => {\n function updateSize() {\n setSize([window.innerWidth, window.innerHeight]);\n }\n window.addEventListener('resize', updateSize);\n updateSize();\n return () => window.removeEventListener('resize', updateSize);\n }, []);\n return size;\n};\n","import { useDispatch } from 'react-redux';\nimport { useCallback } from 'react';\nimport { rootActions } from 'Store';\nimport { DocumentField, DocumentFieldsCRUDMeta } from 'Interfaces/DocumentFields';\n\nexport interface CreateDocumentField {\n (documentField: DocumentField, meta?: DocumentFieldsCRUDMeta): void;\n}\n\nexport default () => {\n const dispatch = useDispatch();\n\n const createDocumentField: CreateDocumentField = useCallback(\n (\n documentField: DocumentField,\n meta: DocumentFieldsCRUDMeta = { pushToHistory: true },\n ) =>\n dispatch(\n rootActions.documentField.createDocumentField.request({\n payload: { ...documentField, placeholder: 'Textbox' },\n meta,\n }),\n ),\n [dispatch],\n );\n\n return createDocumentField;\n};\n","import { useDispatch } from 'react-redux';\nimport { useCallback } from 'react';\nimport { rootActions } from 'Store';\nimport {\n DocumentFieldDeletePayload,\n DocumentFieldsCRUDMeta,\n} from 'Interfaces/DocumentFields';\n\nexport interface DeleteDocumentField {\n (payload: DocumentFieldDeletePayload, meta?: DocumentFieldsCRUDMeta): void;\n}\n\nexport default () => {\n const dispatch = useDispatch();\n\n const deleteDocumentField: DeleteDocumentField = useCallback(\n (\n payload: DocumentFieldDeletePayload,\n meta: DocumentFieldsCRUDMeta = { pushToHistory: true },\n ) => {\n dispatch(\n rootActions.documentField.deleteDocumentField.request({\n payload,\n meta,\n }),\n );\n },\n [dispatch],\n );\n\n return deleteDocumentField;\n};\n","import { useCallback } from 'react';\nimport { useDispatch } from 'react-redux';\nimport {\n DocumentFieldUpdatePayload,\n DocumentFieldsCRUDMeta,\n} from 'Interfaces/DocumentFields';\nimport { rootActions } from 'Store';\n\nexport interface UpdateDocumentField {\n (documentField: DocumentFieldUpdatePayload, meta?: DocumentFieldsCRUDMeta): void;\n}\n\nexport default () => {\n const dispatch = useDispatch();\n\n const updateDocumentField: UpdateDocumentField = useCallback(\n (\n documentField: DocumentFieldUpdatePayload,\n meta: DocumentFieldsCRUDMeta = { pushToHistory: true },\n ) => {\n dispatch(\n rootActions.documentField.updateDocumentField.request({\n payload: documentField,\n meta,\n }),\n );\n },\n [dispatch],\n );\n\n return updateDocumentField;\n};\n","import { useCallback } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { DocumentFieldUpdatePayload } from 'Interfaces/DocumentFields';\nimport { rootActions } from 'Store';\n\ninterface UpdateDocumentFieldLocally {\n (documentField: DocumentFieldUpdatePayload): void;\n}\n\nexport default () => {\n const dispatch = useDispatch();\n\n const updateDocumentFieldLocally: UpdateDocumentFieldLocally = useCallback(\n (documentField: DocumentFieldUpdatePayload) => {\n dispatch(rootActions.documentField.updateDocumentFieldLocally(documentField));\n },\n [dispatch],\n );\n\n return updateDocumentFieldLocally;\n};\n","import { useDispatch } from 'react-redux';\nimport { DocumentFieldsState } from 'Interfaces/DocumentFields';\nimport { useCallback } from 'react';\nimport { rootActions } from 'Store';\n\ninterface SetDocumentFieldsMeta {\n (payload: Partial): void;\n}\n\ninterface ClearDocumentFieldsMeta {\n (): void;\n}\n\nexport default () => {\n const dispatch = useDispatch();\n\n const setDocumentFieldsMeta: SetDocumentFieldsMeta = useCallback(\n (payload: Partial) => {\n dispatch(rootActions.documentField.changeDocumentFieldsMeta.set(payload));\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [],\n );\n\n const clearDocumentFieldsMeta: ClearDocumentFieldsMeta = useCallback(() => {\n dispatch(rootActions.documentField.changeDocumentFieldsMeta.clear());\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return [setDocumentFieldsMeta, clearDocumentFieldsMeta] as const;\n};\n","import {\n DocumentField,\n DocumentFieldUpdatePayload,\n DocumentFieldTypes,\n} from 'Interfaces/DocumentFields';\nimport { useCallback, useMemo } from 'react';\nimport { useSelector } from 'react-redux';\nimport { selectDocument, selectUser } from 'Utils/selectors';\nimport { getCurrentDate } from 'Utils/functions';\nimport { User } from 'Interfaces/User';\n\nexport default (field: DocumentField) => {\n const document = useSelector(state =>\n selectDocument(state, { documentId: field.documentId }),\n );\n const { name: userName } = useSelector(selectUser) as User;\n const signer = useMemo(\n () => document?.signers.find(signer => signer.id === field.signerId),\n [document, field.signerId],\n );\n\n const handleSignerChange = useCallback(\n signerId => {\n if (signerId === signer?.id) return;\n\n let updatePayload = {\n signerId,\n type: field.type,\n } as Partial;\n\n if (field.type === DocumentFieldTypes.Signature) {\n updatePayload['availableSignatureTypes'] = field.availableSignatureTypes;\n }\n\n const nextSigner = document?.signers.find(signer => signer.id === signerId);\n const isChangedToPreparer = !!(!signer?.isPreparer && nextSigner?.isPreparer);\n const isChangedFromPreparer = !!(signer?.isPreparer && !nextSigner?.isPreparer);\n\n switch (field.type) {\n case DocumentFieldTypes.Name:\n case DocumentFieldTypes.Text:\n case DocumentFieldTypes.Date: {\n if (isChangedToPreparer) {\n updatePayload = {\n ...updatePayload,\n text:\n field.type === DocumentFieldTypes.Date\n ? getCurrentDate(\n field.dateFormat as NonNullable,\n )\n : field.type === DocumentFieldTypes.Name\n ? userName\n : null,\n };\n } else if (isChangedFromPreparer) {\n updatePayload = {\n ...updatePayload,\n text: null,\n };\n }\n\n break;\n }\n case DocumentFieldTypes.Checkbox: {\n if (isChangedToPreparer) {\n updatePayload = {\n ...updatePayload,\n checked: true,\n };\n } else if (isChangedFromPreparer) {\n updatePayload = {\n ...updatePayload,\n checked: false,\n };\n }\n\n break;\n }\n case DocumentFieldTypes.Initials:\n case DocumentFieldTypes.Signature: {\n if (isChangedFromPreparer) {\n updatePayload = {\n ...updatePayload,\n requisiteId: null,\n };\n }\n }\n }\n\n return updatePayload;\n },\n [signer, field.type, field.availableSignatureTypes, field.dateFormat, document],\n );\n\n return handleSignerChange;\n};\n","import { useCallback, useMemo } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { rootActions } from 'Store';\nimport { selectDocumentFieldsMeta } from 'Utils/selectors';\n\ninterface RedoDocumentFieldAction {\n (): void;\n}\n\ninterface UndoDocumentFieldAction {\n (): void;\n}\n\ntype isNextAvailable = {} & boolean;\n\ntype isPrevAvailable = {} & boolean;\n\nexport default () => {\n const dispatch = useDispatch();\n const {\n history: documentFieldsHistory,\n }: ReturnType = useSelector(selectDocumentFieldsMeta);\n\n const { isNextAvailable, isPrevAvailable } = useMemo(() => {\n const isNextAvailable = documentFieldsHistory.cursor !== 0;\n const isPrevAvailable =\n documentFieldsHistory.cursor !== documentFieldsHistory.actions.length;\n\n return { isNextAvailable, isPrevAvailable };\n }, [documentFieldsHistory]);\n\n const redoDocumentFieldAction: RedoDocumentFieldAction = useCallback(() => {\n dispatch(rootActions.documentField.redoDocumentFieldsHistory.request());\n }, [dispatch]);\n\n const undoDocumentFieldAction: UndoDocumentFieldAction = useCallback(() => {\n dispatch(rootActions.documentField.undoDocumentFieldsHistory.request());\n }, [dispatch]);\n\n return [\n redoDocumentFieldAction,\n undoDocumentFieldAction,\n isNextAvailable as isNextAvailable,\n isPrevAvailable as isPrevAvailable,\n ] as const;\n};\n","import interact from 'interactjs';\n\ninterface InteractingParams {\n draggableOptions?: Partial>;\n resizableOptions?: Partial>;\n}\n\ninterface RearrangeFontSizeParams {\n shadowElement: HTMLElement;\n initialFontSize: number;\n maxFontSize?: number;\n minFontSize?: number;\n checkHeight?: boolean;\n checkWidth?: boolean;\n isAsync?: boolean;\n isFixedFontSize?: boolean;\n}\n\nclass Interact {\n constructor(\n readonly node: HTMLElement,\n readonly resizeParentNode?: HTMLElement,\n readonly dragParentNode?: HTMLElement,\n ) {}\n\n static readonly getNodeCoords = (node: HTMLElement) => ({\n x: parseFloat(node.getAttribute('coord-x') || '') || 0,\n y: parseFloat(node.getAttribute('coord-y') || '') || 0,\n });\n\n static readonly getNodeFontSize = (node: HTMLElement) =>\n parseInt(node.getAttribute('font-size') || '', 10);\n\n static readonly getNodeSize = (node: HTMLElement) => ({\n width: parseFloat(node.getAttribute('size-width') || '') || 0,\n height: parseFloat(node.getAttribute('size-height') || '') || 0,\n });\n\n static readonly setNodeCoords = (node: HTMLElement, x: number, y: number) => {\n node.setAttribute('coord-x', x.toString());\n node.setAttribute('coord-y', y.toString());\n };\n\n static readonly setNodeSize = (node: HTMLElement, width: number, height: number) => {\n node.setAttribute('size-width', width.toString());\n node.setAttribute('size-height', height.toString());\n };\n\n static readonly dragMoveListener = (event, documentScale = 1) => {\n const { target, dx, dy } = event;\n\n const { x: coordX, y: coordY } = Interact.getNodeCoords(target);\n const x = coordX + dx / documentScale;\n const y = coordY + dy / documentScale;\n\n target.style.left = `${x}px`;\n target.style.top = `${y}px`;\n\n Interact.setNodeCoords(target, x, y);\n };\n\n static readonly resizeMoveListener = (event, documentScale = 1) => {\n const target = event.target as HTMLElement;\n const { left: dx, top: dy, width: dWidth, height: dHeight } = event.deltaRect;\n const { width: rectWidth, height: rectHeight } = event.rect;\n const { x: coordX, y: coordY } = Interact.getNodeCoords(target);\n const { width: widthSize, height: heightSize } = Interact.getNodeSize(target);\n\n const x = coordX + dx / documentScale;\n const y = coordY + dy / documentScale;\n const width = (widthSize || rectWidth / documentScale) + dWidth / documentScale;\n const height = (heightSize || rectHeight / documentScale) + dHeight / documentScale;\n\n target.style.width = `${width}px`;\n target.style.height = `${height}px`;\n target.style.left = `${x}px`;\n target.style.top = `${y}px`;\n\n Interact.setNodeCoords(target, x, y);\n Interact.setNodeSize(target, width, height);\n };\n\n static async getRearrangedFontSize({\n shadowElement,\n initialFontSize,\n maxFontSize = 48,\n minFontSize = 7,\n checkHeight = true,\n checkWidth = false,\n isAsync = false,\n isFixedFontSize = false,\n }: RearrangeFontSizeParams) {\n let fontSize = initialFontSize;\n\n if (shadowElement && !isFixedFontSize) {\n const parent = shadowElement.parentElement as HTMLElement;\n\n while (\n ((checkHeight && shadowElement.offsetHeight <= parent.offsetHeight) ||\n (checkWidth && shadowElement.offsetWidth <= parent.offsetWidth)) &&\n fontSize < maxFontSize\n ) {\n isAsync && (await new Promise(resolve => setTimeout(resolve)));\n fontSize++;\n shadowElement.style.fontSize = fontSize + 'px';\n }\n\n while (\n ((checkHeight && shadowElement.offsetHeight > parent.offsetHeight) ||\n (checkWidth && shadowElement.offsetWidth > parent.offsetWidth)) &&\n fontSize > minFontSize\n ) {\n isAsync && (await new Promise(resolve => setTimeout(resolve)));\n fontSize--;\n shadowElement.style.fontSize = fontSize + 'px';\n }\n\n if (fontSize < minFontSize) {\n return;\n }\n }\n\n return fontSize;\n }\n\n static setNodeFontSize = (node: HTMLElement, fontSize: number) => {\n node.setAttribute('font-size', `${fontSize}`);\n };\n\n static rearrangeFontSizeAsync = async (\n node: HTMLElement,\n options?: Partial,\n ) => {\n const shadowParent = node.firstChild?.firstChild as HTMLElement;\n\n const newFontSize = await Interact.getRearrangedFontSize({\n shadowElement: shadowParent?.firstChild as HTMLElement,\n initialFontSize: parseInt(shadowParent.style.fontSize, 10),\n ...options,\n });\n\n if (newFontSize) {\n shadowParent.style.fontSize = `${newFontSize}px`;\n\n Interact.setNodeFontSize(node, newFontSize);\n }\n };\n\n getInteractable = () => interact(this.node);\n\n interacting = (options?: InteractingParams) => {\n return this.getInteractable()\n .draggable({\n inertia: false,\n modifiers: [\n interact.modifiers.restrict({\n restriction: this.dragParentNode,\n elementRect: {\n top: 0,\n left: 0,\n bottom: 1,\n right: 1,\n },\n }),\n ],\n ...options?.draggableOptions,\n })\n .resizable({\n inertia: false,\n restrictEdges: {\n outer: this.resizeParentNode,\n elementRect: {\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n },\n },\n edges: {\n left: [\n '.fieldDropDown__trigger-triangle--left',\n '.fieldDropDown__trigger-triangle--topLeft',\n '.fieldDropDown__trigger-triangle--bottomLeft',\n ],\n right: [\n '.fieldDropDown__trigger-triangle--right',\n '.fieldDropDown__trigger-triangle--topRight',\n '.fieldDropDown__trigger-triangle--bottomRight',\n ],\n bottom: [\n '.fieldDropDown__trigger-triangle--bottom',\n '.fieldDropDown__trigger-triangle--bottomLeft',\n '.fieldDropDown__trigger-triangle--bottomRight',\n ],\n top: [\n '.fieldDropDown__trigger-triangle--top',\n '.fieldDropDown__trigger-triangle--topLeft',\n '.fieldDropDown__trigger-triangle--topRight',\n ],\n },\n ...options?.resizableOptions,\n } as any);\n };\n}\n\nexport default Interact;\n","import React from 'react';\nimport useDropdown from 'use-dropdown';\nimport { ReactSVG } from 'react-svg';\nimport classNames from 'classnames';\n\nimport RemoveIcon from 'Assets/images/icons/remove-icon.svg';\nimport EditIcon from 'Assets/images/icons/edit-icon.svg';\n\nexport enum RequisiteActionTypes {\n EDIT = 'edit',\n DELETE = 'delete',\n}\n\nconst iconsByActionType = {\n [RequisiteActionTypes.EDIT]: EditIcon,\n [RequisiteActionTypes.DELETE]: RemoveIcon,\n};\n\nexport interface RequisiteActionOption {\n type: RequisiteActionTypes;\n title?: string;\n icon?: string;\n className?: string;\n onClick?: () => void;\n}\n\ninterface RequisiteActionsDropdownProps {\n options: RequisiteActionOption[];\n}\n\nconst RequisiteActionsDropdown = ({ options = [] }: RequisiteActionsDropdownProps) => {\n const [containerRef, isOpen, open, close] = useDropdown();\n\n return (\n
    \n
    \n
    \n \n \n \n
    \n {isOpen && options.length && (\n
    \n {options.map((option, index) => {\n const { type, title, icon, className, onClick } = option;\n return (\n {\n close();\n onClick && onClick();\n }}\n >\n \n

    {title}

    \n
    \n );\n })}\n
    \n )}\n
    \n \n );\n};\n\nexport default RequisiteActionsDropdown;\n","export const INTERACT_SIZES = {\n pageContainerWidth: 752,\n rightPagePadding: 30,\n leftPagePadding: 30,\n pageMarginBottom: 20,\n};\n","import { PDFPageMetadata } from 'Interfaces/Common';\nimport { INTERACT_SIZES } from './constants';\nimport { DocumentFieldTypes, DocumentField } from 'Interfaces/DocumentFields';\n\nexport const calculateSizeRatio = (pdfPageMeta?: PDFPageMetadata | null) => {\n if (!pdfPageMeta) return;\n\n return (\n INTERACT_SIZES.pageContainerWidth /\n (pdfPageMeta.width + INTERACT_SIZES.rightPagePadding + INTERACT_SIZES.leftPagePadding)\n );\n};\n\nexport const getMinSize = (type: DocumentFieldTypes) => {\n switch (type) {\n case DocumentFieldTypes.Name:\n case DocumentFieldTypes.Date: {\n return {\n width: 50,\n height: 20,\n };\n }\n default: {\n return {\n width: 15,\n height: 15,\n };\n }\n }\n};\n\nexport const fieldHasValue = (\n fieldValues: Pick,\n type: DocumentFieldTypes,\n) => {\n switch (type) {\n case DocumentFieldTypes.Checkbox: {\n return fieldValues.checked;\n }\n case DocumentFieldTypes.Name:\n case DocumentFieldTypes.Date:\n case DocumentFieldTypes.Text: {\n return fieldValues.text;\n }\n default: {\n return fieldValues.requisiteId;\n }\n }\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport UISpinner, { UISpinnerProps } from 'Components/UIComponents/UISpinner';\n\ninterface OverlaySpinnerProps {\n overlayClassName?: string;\n spinnerProps?: UISpinnerProps;\n}\n\nconst OverlaySpinner = ({ overlayClassName, spinnerProps }: OverlaySpinnerProps) => (\n \n \n \n);\n\nexport default OverlaySpinner;\n","import React, { useState } from 'react';\nimport classNames from 'classnames';\nimport { Requisite } from 'Interfaces/Requisite';\n\nimport OverlaySpinner from 'Components/OverlaySpinner';\nimport { UISpinnerProps } from 'Components/UIComponents/UISpinner';\n\ninterface RequisiteItemProps {\n requisiteItem: Requisite;\n className?: string;\n spinnerProps?: UISpinnerProps;\n imgRef?: React.Ref;\n}\n\nconst RequisiteItem = ({\n className,\n requisiteItem,\n spinnerProps,\n imgRef,\n}: RequisiteItemProps) => {\n const [isLoadingImg, setIsLoadingImg] = useState(true);\n\n return (\n \n {isLoadingImg && }\n setIsLoadingImg(false)}\n className={classNames('settingsSignature__item-img', className)}\n alt=\"signature\"\n />\n \n );\n};\n\nexport default RequisiteItem;\n","import React, { useCallback, useMemo } from 'react';\nimport { useRequisiteDelete } from 'Hooks/Requisite';\nimport { Requisite, RequisiteType } from 'Interfaces/Requisite';\nimport Toast from 'Services/Toast';\nimport { capitalize } from 'Utils/formatters';\n\nimport ConfirmModal from 'Components/ConfirmModal';\n\ninterface RequisiteDeleteModalProps {\n requisiteItem: Requisite;\n closeModal: () => void;\n}\n\nexport const RequisiteDeleteModal = ({\n closeModal,\n requisiteItem,\n}: RequisiteDeleteModalProps) => {\n const [deleteRequisite, isDeleteLoading] = useRequisiteDelete();\n const requisiteTypeName = useMemo(\n () => (requisiteItem.type === RequisiteType.SIGN ? 'signature' : 'initials'),\n [requisiteItem.type],\n );\n const handleDeleteRequisite = useCallback(async () => {\n try {\n await deleteRequisite({ id: requisiteItem.id });\n closeModal();\n\n Toast.success(`${capitalize(requisiteTypeName)} deleted successfully`);\n } catch (error) {\n Toast.handleErrors(error);\n }\n }, [requisiteItem.id, requisiteTypeName, deleteRequisite, closeModal]);\n\n return (\n \n

    \n Are you sure you want to delete this {requisiteTypeName}?\n

    \n \n );\n};\n\nexport default RequisiteDeleteModal;\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { RequisiteDeletePayload } from 'Interfaces/Requisite';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: RequisiteDeletePayload) =>\n $actions.requisite.deleteRequisite(dispatch, payload),\n );\n};\n","import React from 'react';\nimport classNames from 'classnames';\n\ninterface RequisiteTabItemProps {\n title?: string;\n isActive?: boolean;\n onClick?: () => void;\n}\n\nexport const RequisiteTabItem = ({ title, isActive, onClick }: RequisiteTabItemProps) => {\n return (\n \n {title}\n \n );\n};\n\nexport default RequisiteTabItem;\n","import React from 'react';\nimport { fontFamilyByValue, requisiteFontFamilyOptions } from 'Services/Fonts';\nimport { Requisite, RequisiteType } from 'Interfaces/Requisite';\n\nimport UISelect from 'Components/UIComponents/UISelect';\nimport { RequisiteFieldInput } from 'Components/RequisiteComponents/RequisiteModal/components';\nimport { useRequisiteTextRef } from 'Hooks/Requisite';\n\ninterface RequisiteModalTextProps {\n fontFamilyType: string;\n handleSelect: (string) => void;\n handleOnChange: (\n requisiteType: RequisiteType,\n ) => (event: React.ChangeEvent) => void;\n signatureValue: Requisite['text'];\n initialsValue: Requisite['text'];\n}\n\nexport const RequisiteModalText = ({\n fontFamilyType,\n handleSelect,\n handleOnChange,\n signatureValue,\n initialsValue,\n}: RequisiteModalTextProps) => {\n const signatureRef = useRequisiteTextRef({ textValue: signatureValue, fontFamilyType });\n const initialsRef = useRequisiteTextRef({ textValue: initialsValue, fontFamilyType });\n\n return (\n
    \n
    \n \n \n
    \n

    Signature Preview:

    \n
    \n
    \n

    Full Name

    \n
    \n \n {signatureValue}\n
    \n
    \n
    \n
    \n

    Initials

    \n
    \n \n {initialsValue}\n
    \n
    \n
    \n \n\n

    Change Font

    \n
    \n \n
    \n \n );\n};\n\nexport default RequisiteModalText;\n","import React from 'react';\nimport { ReactSVG } from 'react-svg';\nimport { RequisiteType } from 'Interfaces/Requisite';\n\nimport UISpinner from 'Components/UIComponents/UISpinner';\n\nimport CloseIcon from 'Assets/images/icons/close-icon.svg';\n\ninterface RequisiteModalDrawProps {\n isDownloading: boolean;\n handleOnClearRequisite: (\n canvasRef: React.RefObject,\n requisiteType: RequisiteType,\n ) => void;\n canvasSignRef: React.RefObject;\n canvasInitialsRef: React.RefObject;\n}\n\nexport const RequisiteModalDraw = ({\n isDownloading,\n handleOnClearRequisite,\n canvasSignRef,\n canvasInitialsRef,\n}: RequisiteModalDrawProps) => {\n return (\n
    \n

    Signature Preview:

    \n
    \n
    \n

    Full Name

    \n
    \n {isDownloading && (\n
    \n \n
    \n )}\n \n handleOnClearRequisite(canvasSignRef, RequisiteType.SIGN)}\n >\n Clear\n

    \n
    \n
    \n
    \n

    Initials

    \n
    \n {isDownloading && (\n
    \n \n
    \n )}\n \n \n handleOnClearRequisite(canvasInitialsRef, RequisiteType.INITIAL)\n }\n >\n Clear\n

    \n
    \n
    \n
    \n
    \n );\n};\n\nexport default RequisiteModalDraw;\n","import React, { useCallback } from 'react';\nimport { ReactSVG } from 'react-svg';\nimport classNames from 'classnames';\nimport { RequisiteType } from 'Interfaces/Requisite';\n\nimport UploadIcon from 'Assets/images/icons/upload-icon.svg';\nimport CloseIcon from 'Assets/images/icons/close-icon.svg';\n\ninterface RequisiteModalUploadProps {\n imageSignFile?: File;\n imageInitialFile?: File;\n handleOnClearFile: (requisiteType: RequisiteType) => void;\n handleChangeFile: (\n requisiteType: RequisiteType,\n ) => (\n event: React.ChangeEvent,\n ) => Promise;\n}\n\nexport const RequisiteModalUpload = ({\n imageSignFile,\n imageInitialFile,\n handleOnClearFile,\n handleChangeFile,\n}: RequisiteModalUploadProps) => {\n const handleOnClearFiles = useCallback(() => {\n handleOnClearFile(RequisiteType.SIGN);\n handleOnClearFile(RequisiteType.INITIAL);\n }, [handleOnClearFile]);\n\n return (\n
    \n
    \n

    Signature Preview:

    \n \n
    \n

    \n Maximum file size: 40MB
    Acceptable file formats: png, jpg, jpeg, bmp, gif\n

    \n
    \n
    \n
    \n

    Full Name

    \n
    \n
    \n \n \n {!imageSignFile ? (\n

    Upload Signature

    \n ) : (\n \n )}\n \n \n
    \n \n

    Upload {imageSignFile && 'New'}

    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n

    Initials

    \n
    \n
    \n \n \n {!imageInitialFile ? (\n

    Upload Initials

    \n ) : (\n \n )}\n \n \n
    \n \n

    Upload {imageInitialFile && 'New'}

    \n
    \n \n
    \n
    \n \n \n \n \n );\n};\n\nexport default RequisiteModalUpload;\n","import React, { useState, useMemo } from 'react';\nimport { UITextFieldProps } from 'Components/UIComponents/interfaces/UITextField';\nimport { FieldTextInput } from 'Components/FormFields';\n\ninterface RequisiteFieldInputProps extends UITextFieldProps {\n label: string;\n name?: string;\n isRequired?: boolean;\n className?: string;\n labelClassName?: string;\n}\n\nconst RequisiteFieldInput = ({\n value = '',\n label,\n name = '',\n labelClassName,\n isRequired = false,\n onChange = () => {},\n ...props\n}: RequisiteFieldInputProps) => {\n const [active, setActive] = useState(false);\n const [touched, setTouched] = useState(false);\n const [left, setLeft] = useState(false);\n const visited = useMemo(() => touched && left, [left, touched]);\n const error = isRequired && visited && !(isRequired && value) ? 'Required' : '';\n const onFocus = () => {\n !touched && setTouched(true);\n setActive(true);\n };\n const onBlur = () => {\n !left && setLeft(true);\n setActive(false);\n };\n\n return (\n \n {label} {isRequired && *}\n \n }\n {...props}\n />\n );\n};\n\nexport default RequisiteFieldInput;\n","import React, { useState, useCallback, useMemo } from 'react';\nimport { ReactSVG } from 'react-svg';\nimport SignaturePad from 'signature_pad';\nimport uuid from 'uuid/v4';\nimport Toast from 'Services/Toast';\nimport {\n Requisite,\n RequisiteValueType,\n RequisiteType,\n RequisiteSiblingValues,\n defaultRequisiteTypesOrder,\n RequisitesPayload,\n RequisiteSiblings,\n} from 'Interfaces/Requisite';\nimport {\n useRequisitesUpdate,\n useRequisitesCreate,\n useRequisitesPayloadCreation,\n} from 'Hooks/Requisite';\nimport { useToggler } from 'Hooks/Common';\nimport { useRequisitePayloadGet } from 'Hooks/Requisite';\n\nimport RequisiteTabItem from '../RequisiteTabItem';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport UICheckbox from 'Components/UIComponents/UICheckbox';\nimport {\n RequisiteModalText,\n RequisiteModalDraw,\n RequisiteModalUpload,\n} from './components';\n\nimport CloseIcon from 'Assets/images/icons/close-icon.svg';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport classNames from 'classnames';\nimport FileResizer from 'react-image-file-resizer';\n\ninterface RequisiteModalProps {\n requisiteItem?: Requisite;\n siblingRequisiteItem?: Requisite;\n availableSignatureTypes?: RequisiteValueType[];\n onClose: () => void;\n title?: string;\n buttonText?: string;\n requisiteType?: RequisiteType;\n defaultValues?: RequisiteSiblingValues;\n defaultFontFamilyType?: string;\n onSuccessfulSubmit?: (requisite: Requisite) => void;\n}\n\nconst maxFileSize = 41943040;\nconst textFontSize = 300;\n\nfunction RequisiteModal({\n onClose,\n requisiteItem,\n siblingRequisiteItem,\n title,\n onSuccessfulSubmit,\n buttonText = 'Create Signature',\n requisiteType = requisiteItem?.type || RequisiteType.SIGN,\n defaultValues = {\n signatureValue: '',\n initialsValue: '',\n },\n defaultFontFamilyType = 'dancingScript',\n availableSignatureTypes = defaultRequisiteTypesOrder,\n}: RequisiteModalProps) {\n const [activeTab, setActiveTab] = useState(\n requisiteItem?.valueType || availableSignatureTypes[0],\n );\n const isMobile = useIsMobile();\n\n const [fontFamilyType, setFontFamilyType] = useState(\n requisiteItem?.fontFamily || defaultFontFamilyType,\n );\n\n const [signRequisite, initialRequisite] = useMemo(() => {\n return requisiteItem?.type === RequisiteType.SIGN\n ? [requisiteItem, siblingRequisiteItem]\n : [siblingRequisiteItem, requisiteItem];\n }, [requisiteItem, siblingRequisiteItem]);\n\n const [updateRequisites, isRequisiteUploading] = useRequisitesUpdate();\n const [createRequisites, isRequisitesCreating] = useRequisitesCreate();\n\n const [\n canvasSignRef,\n [imageSignFile, setImageSignFile],\n [drawnSignFile, setDrawnSignFile],\n [requisiteSignValue, setRequisiteSignValue],\n isSignDownloading,\n ] = useRequisitePayloadGet({\n requisite: signRequisite,\n defaultValue: defaultValues.signatureValue,\n requisiteValueType: activeTab,\n });\n const [\n canvasInitialRef,\n [imageInitialFile, setImageInitialFile],\n [drawnInitialFile, setDrawnInitialFile],\n [requisiteInitialValue, setRequisiteInitialValue],\n isInitialDownloading,\n ] = useRequisitePayloadGet({\n requisite: initialRequisite,\n defaultValue: defaultValues.initialsValue,\n requisiteValueType: activeTab,\n });\n\n const [isTermsAccepted, toggleTermsAccepted] = useToggler(false);\n\n const [createRequisitesPayload, isPayloadCreating] = useRequisitesPayloadCreation({\n fontStyle: { textFontSize, fontFamilyType },\n requisiteValueType: activeTab,\n });\n\n const isLoading =\n isRequisiteUploading ||\n isSignDownloading ||\n isInitialDownloading ||\n isRequisitesCreating ||\n isPayloadCreating;\n\n const checkIsTabContentEmpty = useCallback(() => {\n switch (activeTab) {\n case RequisiteValueType.TEXT:\n if (\n requisiteSignValue &&\n requisiteSignValue !== '' &&\n requisiteInitialValue &&\n requisiteInitialValue !== ''\n ) {\n return false;\n }\n break;\n case RequisiteValueType.DRAW:\n if (drawnSignFile && drawnInitialFile) {\n return false;\n }\n break;\n case RequisiteValueType.UPLOAD:\n if (imageSignFile && imageInitialFile) {\n return false;\n }\n break;\n default:\n return true;\n }\n return true;\n }, [\n activeTab,\n imageInitialFile,\n drawnInitialFile,\n imageSignFile,\n drawnSignFile,\n requisiteInitialValue,\n requisiteSignValue,\n ]);\n\n const handleOnClearFile = useCallback(\n (type: RequisiteType) => {\n if (type === RequisiteType.SIGN) setImageSignFile(undefined);\n else setImageInitialFile(undefined);\n },\n [setImageInitialFile, setImageSignFile],\n );\n\n const handleOnClearRequisite = useCallback(\n (canvasRef: React.RefObject, type: RequisiteType) => {\n const canvas = canvasRef.current as HTMLCanvasElement;\n const sig = new SignaturePad(canvas);\n sig.clear();\n handleOnClearFile(type);\n },\n [handleOnClearFile],\n );\n\n const handleRequisitesUpdate = useCallback(\n async (requisitesPayload: RequisitesPayload) => {\n try {\n const requisites = (await updateRequisites(requisitesPayload)) as [\n Requisite,\n Requisite,\n ];\n\n Toast.success(\n `${\n requisiteType === RequisiteType.SIGN ? 'Signature' : 'Initials'\n } updated successfully`,\n );\n\n return requisites;\n } catch (err) {\n Toast.handleErrors(err);\n }\n },\n [requisiteType, updateRequisites],\n );\n\n const handleRequisitesCreate = useCallback(\n async (requisitesPayload: RequisitesPayload) => {\n try {\n const requisites = (await createRequisites(requisitesPayload)) as [\n Requisite,\n Requisite,\n ];\n\n Toast.success(\n `${\n requisiteType === RequisiteType.SIGN ? 'Signature' : 'Initials'\n } created successfully`,\n );\n\n return requisites;\n } catch (err) {\n Toast.handleErrors(err);\n }\n },\n [requisiteType, createRequisites],\n );\n\n const onSubmit = useCallback(async () => {\n try {\n const initialId: Requisite['id'] = initialRequisite?.id || uuid();\n const signId: Requisite['id'] = signRequisite?.id || uuid();\n\n const signValue =\n activeTab === RequisiteValueType.TEXT\n ? requisiteSignValue\n : activeTab === RequisiteValueType.DRAW\n ? (drawnSignFile as File)\n : (imageSignFile as File);\n\n const initialValue =\n activeTab === RequisiteValueType.TEXT\n ? requisiteInitialValue\n : activeTab === RequisiteValueType.DRAW\n ? (drawnInitialFile as File)\n : (imageInitialFile as File);\n\n const requisitesPayload = await createRequisitesPayload([\n {\n id: signId,\n siblingId: initialId,\n type: RequisiteType.SIGN,\n value: signValue,\n },\n {\n id: initialId,\n siblingId: signId,\n type: RequisiteType.INITIAL,\n value: initialValue,\n },\n ]);\n\n if (!requisitesPayload) return;\n\n const resultRequisites = (requisiteItem\n ? await handleRequisitesUpdate(requisitesPayload as RequisitesPayload)\n : await handleRequisitesCreate(\n requisitesPayload as RequisitesPayload,\n )) as RequisiteSiblings;\n\n if (resultRequisites) {\n const currentRequisite = resultRequisites.find(\n r => r.type === requisiteType,\n ) as Requisite;\n onSuccessfulSubmit && onSuccessfulSubmit(currentRequisite);\n onClose();\n }\n } catch (error) {\n Toast.handleErrors(error);\n }\n }, [\n initialRequisite,\n signRequisite,\n createRequisitesPayload,\n activeTab,\n requisiteSignValue,\n imageSignFile,\n drawnSignFile,\n requisiteInitialValue,\n imageInitialFile,\n drawnInitialFile,\n requisiteItem,\n handleRequisitesUpdate,\n handleRequisitesCreate,\n onSuccessfulSubmit,\n onClose,\n requisiteType,\n ]);\n\n const resizeImage = (file: File) => {\n return new Promise(resolve => {\n FileResizer.imageFileResizer(\n file,\n 1280,\n 1280,\n 'PNG',\n 100,\n 0,\n file => {\n resolve(file as File);\n },\n 'file',\n );\n });\n };\n\n const handleChangeFile = useCallback(\n (type: RequisiteType) => async (event: React.ChangeEvent) => {\n if (event.target.files && event.target.files.length > 0) {\n let result: File = event.target.files[0];\n if (result.size > maxFileSize) {\n return Toast.error('Max file size is 40MB');\n }\n result = await resizeImage(result);\n if (type === RequisiteType.SIGN) {\n setImageSignFile(result);\n } else setImageInitialFile(result);\n }\n },\n [setImageInitialFile, setImageSignFile],\n );\n\n const handleSelect = (val: string) => setFontFamilyType(val as string);\n\n const handleOnChangeValue = useCallback(\n (type: RequisiteType) => (event: React.ChangeEvent) => {\n if (event.target.value.length > 100) return;\n\n if (type === RequisiteType.SIGN) setRequisiteSignValue(event.target.value);\n else setRequisiteInitialValue(event.target.value);\n },\n [setRequisiteInitialValue, setRequisiteSignValue],\n );\n\n const getContent = (tabType: RequisiteValueType) => {\n switch (tabType) {\n case RequisiteValueType.DRAW: {\n return (\n \n );\n }\n case RequisiteValueType.TEXT: {\n return (\n \n );\n }\n case RequisiteValueType.UPLOAD: {\n return (\n \n );\n }\n default: {\n break;\n }\n }\n };\n\n return (\n
    \n
    \n
    \n

    {title}

    \n \n
    \n
    \n
      \n {availableSignatureTypes.includes(RequisiteValueType.TEXT) && (\n setActiveTab(RequisiteValueType.TEXT)}\n />\n )}\n {availableSignatureTypes.includes(RequisiteValueType.DRAW) && (\n setActiveTab(RequisiteValueType.DRAW)}\n />\n )}\n {availableSignatureTypes.includes(RequisiteValueType.UPLOAD) && (\n setActiveTab(RequisiteValueType.UPLOAD)}\n />\n )}\n
    \n
    \n
    {getContent(activeTab)}
    \n
    \n
    \n \n I agree to sign electronically pursuant to the \n e.stopPropagation()}\n >\n Electronic Signature Disclosure\n \n .\n \n \n
    \n
    \n );\n}\n\nexport default RequisiteModal;\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { RequisitesPayload } from 'Interfaces/Requisite';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((requisitesPayload: RequisitesPayload) =>\n $actions.requisite.updateRequisites(dispatch, requisitesPayload),\n );\n};\n","import React, { useCallback } from 'react';\nimport { useModal } from 'react-modal-hook';\nimport classNames from 'classnames';\nimport { Requisite } from 'Interfaces/Requisite';\n\nimport {\n RequisiteDeleteModal,\n RequisiteActionsDropdown,\n RequisiteItem,\n} from 'Components/RequisiteComponents';\nimport { RequisiteActionTypes } from 'Components/RequisiteComponents/RequisiteActionsDropdown';\n\ninterface RequisiteListItemProps {\n requisite: Requisite;\n isSelected?: boolean;\n onItemClick?: (requisite: Requisite) => void;\n onItemEdit?: (requisite: Requisite) => void;\n onItemDoubleClick?: (requisite: Requisite) => void;\n}\n\nexport const RequisiteListItem = ({\n requisite,\n isSelected,\n onItemClick,\n onItemDoubleClick,\n onItemEdit,\n}: RequisiteListItemProps) => {\n const handleItemClick = useCallback(() => {\n onItemClick && onItemClick(requisite);\n }, [onItemClick, requisite]);\n const handleItemDoubleClick = useCallback(() => {\n onItemDoubleClick && onItemDoubleClick(requisite);\n }, [onItemDoubleClick, requisite]);\n const handleItemEdit = useCallback(() => {\n onItemEdit && onItemEdit(requisite);\n }, [onItemEdit, requisite]);\n\n const [showDeleteModal, closeDeleteModal] = useModal(\n () => (\n \n ),\n [requisite],\n );\n\n return (\n \n \n \n \n );\n};\n\nexport default RequisiteListItem;\n","import React, { useMemo, useState, useCallback, useEffect } from 'react';\nimport { useSelector } from 'react-redux';\nimport classNames from 'classnames';\nimport { ReactSVG } from 'react-svg';\nimport { Signer } from 'Interfaces/Document';\nimport { User } from 'Interfaces/User';\nimport {\n RequisiteType,\n RequisiteValueType,\n Requisite,\n RequisiteSiblingValues,\n defaultRequisiteTypesOrder,\n} from 'Interfaces/Requisite';\nimport {\n selectSignatures,\n selectInitials,\n selectRequisite,\n selectUser,\n} from 'Utils/selectors';\nimport { getInitials } from 'Utils/formatters';\n\nimport { RequisiteModal, RequisiteAutoGenModal } from 'Components/RequisiteComponents';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport { UIAddButton } from 'Components/UIComponents/UIAddButton';\nimport UIModal from 'Components/UIComponents/UIModal';\nimport RequisiteTabItem from '../RequisiteTabItem';\nimport RequisiteListItem from './RequisiteListItem';\n\nimport CloseIcon from 'Assets/images/icons/close-icon.svg';\n\ninterface RequisiteSelectModalProps {\n signer?: Signer;\n type: RequisiteType;\n availableSignatureTypes?: RequisiteValueType[];\n onSelect: (requisite: Requisite) => void;\n onClose: () => void;\n}\n\nconst RequisiteSelectModal = ({\n type,\n onSelect,\n onClose,\n signer,\n availableSignatureTypes = defaultRequisiteTypesOrder,\n}: RequisiteSelectModalProps) => {\n const { name = '' }: User = useSelector(selectUser);\n const [requisiteValues, setRequisiteValues] = useState({\n signatureValue: '',\n initialsValue: '',\n });\n const [selectedRequisite, setSelectedRequisite] = useState();\n const [isInItemView, setIsInItemView] = useState(false);\n const [isCustomCreate, setIsCustomCreate] = useState(false);\n const [activeTab, setActiveTab] = useState(\n availableSignatureTypes[0],\n );\n const requisiteTypeName = useMemo(\n () => (type === RequisiteType.SIGN ? 'Signature' : 'Initials'),\n [type],\n );\n const requisitesSelector = useMemo(\n () => (type === RequisiteType.SIGN ? selectSignatures : selectInitials),\n [type],\n );\n const requisites = useSelector(requisitesSelector);\n\n const filteredRequisites = useMemo(() => {\n return requisites.filter(requisite => requisite.valueType === activeTab);\n }, [requisites, activeTab]);\n\n const siblingRequisite = useSelector(state =>\n selectRequisite(state, { requisiteId: selectedRequisite?.siblingId || '' }),\n );\n\n const requisiteAddTitle = useMemo(() => {\n return `Create New ${type === RequisiteType.SIGN ? 'Signature' : 'Initials'}`;\n }, [type]);\n const defaultValues = useMemo(() => {\n return isCustomCreate\n ? { defaultValues: requisiteValues, defaultFontFamilyType: 'dancingScript' }\n : {};\n }, [isCustomCreate, requisiteValues]);\n\n const closeItemView = useCallback(() => {\n setIsInItemView(false);\n }, []);\n\n const onCreateClick = useCallback(() => {\n setSelectedRequisite(undefined);\n setIsInItemView(true);\n }, []);\n\n const onCreateCustomClick = useCallback(() => {\n setSelectedRequisite(undefined);\n setIsCustomCreate(true);\n setIsInItemView(true);\n }, []);\n\n const onChangeValue = useCallback(\n value => {\n setRequisiteValues(prevState => {\n const newRequisiteValues:\n | Pick\n | Pick =\n type === RequisiteType.SIGN\n ? { signatureValue: value, initialsValue: getInitials(value) }\n : { initialsValue: value };\n return { ...prevState, ...newRequisiteValues };\n });\n },\n [type],\n );\n\n const handleSelect = useCallback(() => {\n selectedRequisite && onSelect(selectedRequisite);\n }, [selectedRequisite, onSelect]);\n\n useEffect(() => {\n const value = signer?.userId ? signer?.name : name;\n setRequisiteValues({\n signatureValue: value || '',\n initialsValue: getInitials(value),\n });\n }, [signer, name, type]);\n\n if (isInItemView) {\n return (\n \n \n
    \n );\n }\n\n if (\n requisites.length === 0 &&\n availableSignatureTypes.includes(RequisiteValueType.TEXT)\n )\n return (\n \n \n \n );\n\n return (\n \n
    \n
    \n
    \n

    Choose {requisiteTypeName}

    \n \n
    \n 3,\n })}\n >\n
      \n {availableSignatureTypes.includes(RequisiteValueType.TEXT) && (\n setActiveTab(RequisiteValueType.TEXT)}\n isActive={activeTab === RequisiteValueType.TEXT}\n />\n )}\n {availableSignatureTypes.includes(RequisiteValueType.DRAW) && (\n setActiveTab(RequisiteValueType.DRAW)}\n isActive={activeTab === RequisiteValueType.DRAW}\n />\n )}\n {availableSignatureTypes.includes(RequisiteValueType.UPLOAD) && (\n setActiveTab(RequisiteValueType.UPLOAD)}\n isActive={activeTab === RequisiteValueType.UPLOAD}\n />\n )}\n
    \n
    \n\n \n \n {filteredRequisites.length ? (\n filteredRequisites.map(requisite => (\n {\n setSelectedRequisite(requisite);\n setIsInItemView(true);\n }}\n requisite={requisite}\n />\n ))\n ) : (\n
    \n
    \n

    \n No {requisiteTypeName.toLocaleLowerCase()}s available yet.\n

    \n

    \n Create your first {requisiteTypeName.toLocaleLowerCase()} to be able\n to sign any document.\n
    \n Your created {requisiteTypeName.toLocaleLowerCase()}s will appear\n here.\n

    \n
    \n \n
    \n )}\n \n {!!filteredRequisites.length && (\n
    \n \n \n \n
    \n )}\n
    \n \n \n \n );\n};\n\nexport default RequisiteSelectModal;\n","import React, { useCallback, useEffect } from 'react';\nimport { ReactSVG } from 'react-svg';\nimport uuid from 'uuid/v4';\nimport { fontFamilyByValue } from 'Services/Fonts';\nimport Toast from 'Services/Toast';\nimport {\n Requisite,\n RequisiteSiblings,\n RequisiteType,\n RequisiteValueType,\n RequisitesPayload,\n} from 'Interfaces/Requisite';\nimport { useToggler } from 'Hooks/Common';\nimport { useRequisitesCreate, useRequisitesPayloadCreation } from 'Hooks/Requisite';\nimport UICheckbox from 'Components/UIComponents/UICheckbox';\nimport UIButton from 'Components/UIComponents/UIButton';\n\nimport CloseIcon from 'Assets/images/icons/close-icon.svg';\nimport { emptyString } from 'Utils/validation';\n\nconst textFontSize = 300;\n\ninterface RequisiteAutoGenModalProps {\n onClose: () => void;\n requisiteValue: string;\n siblingRequisiteValue: string;\n title?: string;\n fontFamilyType?: string;\n requisiteType?: RequisiteType;\n onSuccessfulSubmit?: (requisite: Requisite) => void;\n onClickCustomCreate: () => void;\n onChangeValue: (value: string) => void;\n}\n\nfunction RequisiteAutoGenModal({\n requisiteValue,\n siblingRequisiteValue,\n requisiteType = RequisiteType.SIGN,\n onClose,\n title,\n onSuccessfulSubmit,\n onClickCustomCreate,\n onChangeValue,\n fontFamilyType = 'dancingScript',\n}: RequisiteAutoGenModalProps) {\n const [isTermsAccepted, toggleTermsAccepted] = useToggler(false);\n const [createRequisites, isRequisitesCreating] = useRequisitesCreate();\n\n const [createRequisitesPayload, isPayloadCreating] = useRequisitesPayloadCreation({\n fontStyle: { textFontSize, fontFamilyType },\n requisiteValueType: RequisiteValueType.TEXT,\n });\n\n const isLoading = isRequisitesCreating || isPayloadCreating;\n\n const handleRequisitesCreate = useCallback(\n async (requisitesPayload: RequisitesPayload) => {\n try {\n const requisites = (await createRequisites(requisitesPayload)) as [\n Requisite,\n Requisite,\n ];\n Toast.success(\n `${\n requisiteType === RequisiteType.SIGN ? 'Signature' : 'Initials'\n } created successfully`,\n );\n return requisites;\n } catch (err) {\n Toast.handleErrors(err);\n }\n },\n [createRequisites, requisiteType],\n );\n\n const handleSubmit = useCallback(async () => {\n try {\n const id: Requisite['id'] = uuid();\n const siblingId: Requisite['id'] = uuid();\n\n const error = emptyString(requisiteValue, 'Requisite field');\n\n if (error) {\n return Toast.error(error);\n }\n\n const requisitesPayload = await createRequisitesPayload([\n {\n id,\n siblingId,\n type: requisiteType,\n value: requisiteValue,\n },\n {\n id: siblingId,\n siblingId: id,\n type:\n requisiteType === RequisiteType.SIGN\n ? RequisiteType.INITIAL\n : RequisiteType.SIGN,\n value:\n siblingRequisiteValue && siblingRequisiteValue !== ''\n ? siblingRequisiteValue\n : requisiteValue,\n },\n ]);\n\n if (!requisitesPayload) return;\n\n const resultRequisites = (await handleRequisitesCreate(\n requisitesPayload as RequisitesPayload,\n )) as RequisiteSiblings;\n\n if (resultRequisites) {\n const currentRequisite = resultRequisites.find(r => r.id === id) as Requisite;\n onSuccessfulSubmit && onSuccessfulSubmit(currentRequisite);\n onClose();\n }\n } catch (error) {\n Toast.handleErrors(error);\n }\n }, [\n createRequisitesPayload,\n handleRequisitesCreate,\n onClose,\n onSuccessfulSubmit,\n requisiteType,\n siblingRequisiteValue,\n requisiteValue,\n ]);\n\n useEffect(() => {\n document.getElementById('requisiteText')?.focus();\n }, []);\n\n return (\n
    \n
    \n
    \n

    {title}

    \n \n
    \n
    \n
    \n
    \n onChangeValue(e.target.value)}\n />\n
    \n

    \n Need a custom signature?\n onClickCustomCreate()}> Create it now! \n

    \n
    \n
    \n
    \n
    \n \n I agree to sign electronically pursuant to the \n e.stopPropagation()}\n >\n Electronic Signature Disclosure\n \n .\n \n \n
    \n
    \n );\n}\n\nexport default RequisiteAutoGenModal;\n","import React, {\n useCallback,\n useEffect,\n useMemo,\n useState,\n useRef,\n useLayoutEffect,\n} from 'react';\nimport useDropdown from 'use-dropdown';\nimport classNames from 'classnames';\nimport interact from 'interactjs';\nimport { useModal } from 'react-modal-hook';\nimport { useSelector } from 'react-redux';\nimport { fontFamilyOptions, fontFamilyByValue } from 'Services/Fonts';\nimport Interact from 'Services/Interact';\nimport {\n useDocumentFieldSignerChange,\n useDocumentFieldColor,\n} from 'Hooks/DocumentFields';\nimport { isCheckbox, isRequisite } from 'Utils/functions';\nimport { selectRequisite, selectDocument } from 'Utils/selectors';\nimport { DatePipeOptions, SelectableOption } from 'Interfaces/Common';\nimport {\n DocumentField,\n DocumentFieldTypes,\n DocumentFieldUpdatePayload,\n DocumentFieldsCRUDMeta,\n} from 'Interfaces/DocumentFields';\nimport {\n RequisiteType,\n Requisite,\n defaultRequisiteTypesOrder,\n SelectedSignature,\n} from 'Interfaces/Requisite';\nimport { Signer } from 'Interfaces/Document';\nimport { getMinSize, fieldHasValue } from '../common/utils';\n\nimport UICheckbox from 'Components/UIComponents/UICheckbox';\nimport UISelect from 'Components/UIComponents/UISelect';\nimport { RequisiteSelectModal } from 'Components/RequisiteComponents';\nimport { CheckboxField, RequisiteField, DateField, TextFieldSign } from './FieldTypes';\nimport FieldItemView from './FieldItemView';\nimport NameField from './FieldTypes/NameField';\n\nexport enum InteractModes {\n PREPARING = 'preparing',\n SIGNING = 'signing',\n}\n\nexport enum FieldModalPosition {\n BOTTOM = 'bottom',\n LEFT = 'left',\n TOP = 'top',\n TOP_LEFT = 'top-left',\n}\n\nexport interface FieldItemProps {\n field: DocumentField;\n inFocus?: boolean;\n signersOptions?: SelectableOption[];\n onChangeSigner: (signerId: string) => void;\n documentScale: number;\n onDocumentFieldUpdate?: (\n documentField: DocumentFieldUpdatePayload,\n meta?: DocumentFieldsCRUDMeta,\n ) => void;\n onFocus?: (id: string) => void;\n onBlur?: (id: string) => void;\n interactMode?: InteractModes;\n disabled?: boolean;\n isResizable?: boolean;\n onInteract?: (fieldId: DocumentField['id']) => void;\n lastSelectedSignature?: SelectedSignature | null;\n setLastSelectedSignature?: (signature: SelectedSignature) => void;\n isFontResize?: boolean;\n selectedScale?: number;\n}\n\nfunction FieldItem({\n field,\n inFocus,\n onFocus,\n onBlur,\n signersOptions = [],\n onChangeSigner,\n documentScale,\n interactMode = InteractModes.PREPARING,\n disabled,\n onInteract,\n isResizable = true,\n onDocumentFieldUpdate,\n lastSelectedSignature,\n setLastSelectedSignature,\n isFontResize = true,\n selectedScale = 1,\n}: FieldItemProps) {\n const {\n id,\n width,\n dateFormat,\n type,\n checked,\n height,\n fontFamily,\n fixedFontSize,\n signerId,\n required,\n style,\n pageNumber,\n text,\n placeholder,\n requisiteId,\n createType,\n minimizeWidth,\n } = field;\n const { isCheckboxType, isRequisiteType } = useMemo(() => {\n const isRequisiteType = isRequisite(type);\n const isCheckboxType = isCheckbox(type);\n\n return {\n isRequisiteType,\n isCheckboxType,\n };\n }, [type]);\n\n const [containerRef, isMenuOpen, openMenu] = useDropdown();\n const textFieldRef = useRef(null);\n const dropdownMenuRef = useRef(null);\n const [isDragging, setIsDragging] = useState(false);\n const changeDocumentFieldSigner = useDocumentFieldSignerChange(field);\n const [dropdownMenuClassName, setDropdownMenuClassName] = useState(\n 'fieldDropDown__content-wrapper--bottom',\n );\n\n const [fieldModalPosition, setFieldModalPosition] = useState(\n FieldModalPosition.BOTTOM,\n );\n\n const requisite: ReturnType = useSelector(state =>\n selectRequisite(state, { requisiteId: field.requisiteId || '' }),\n );\n\n const getRelatedPage = useCallback(\n (): HTMLElement =>\n containerRef.current.parentNode.firstChild?.childNodes[pageNumber - 1],\n [containerRef, pageNumber],\n );\n\n const updateDocumentField = useCallback(\n (payload: Omit, meta?: DocumentFieldsCRUDMeta) => {\n onDocumentFieldUpdate &&\n onDocumentFieldUpdate({ id: field.id, ...payload, type }, meta);\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [field.id, onDocumentFieldUpdate],\n );\n\n const updateDocumentRequisiteField = useCallback(\n (payload: Omit, meta?: DocumentFieldsCRUDMeta) => {\n const { x: coordinateX } = Interact.getNodeCoords(containerRef.current);\n\n onDocumentFieldUpdate &&\n onDocumentFieldUpdate(\n {\n id: field.id,\n coordinateX: coordinateX - getRelatedPage().offsetLeft,\n pageNumber: field.pageNumber,\n ...payload,\n type,\n },\n meta,\n );\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [field.id, onDocumentFieldUpdate],\n );\n const document: ReturnType = useSelector(state =>\n selectDocument(state, { documentId: field.documentId }),\n );\n\n const signer = useMemo(() => {\n const signer = document?.signers.find(signer => signer.id === signerId) as Signer;\n\n return signer;\n }, [document, signerId]);\n\n const fieldColor = useDocumentFieldColor(signer, interactMode);\n\n const isPreparer = useMemo(() => !!signer?.isPreparer, [signer]);\n const handleFocus = useCallback(() => {\n onFocus && onFocus(field.id);\n }, [field.id, onFocus]);\n\n const handleBlur = useCallback(() => {\n onBlur && onBlur(field.id);\n }, [field.id, onBlur]);\n\n const { viewStyles, textStyles } = useMemo(() => {\n if (!style) return { viewStyles: {}, textStyles: {} };\n\n const { fontSize, fontFamily, ...viewStyles } = style;\n\n return {\n viewStyles,\n textStyles: {\n fontSize: fontSize || 8,\n fontFamily,\n },\n };\n }, [style]);\n\n const handleRequisiteAssign = useCallback(\n (requisite: Requisite) => {\n if (setLastSelectedSignature) {\n setLastSelectedSignature({\n id:\n field.type === DocumentFieldTypes.Signature\n ? requisite.id\n : requisite.siblingId,\n siblingId:\n field.type === DocumentFieldTypes.Initials\n ? requisite.id\n : requisite.siblingId,\n });\n }\n\n updateDocumentField({\n requisiteId: requisite.id,\n });\n },\n [field.type, setLastSelectedSignature, updateDocumentField],\n );\n\n const [openRequisiteSelectModal, closeRequisiteSelectModal] = useModal(\n () => (\n {\n handleRequisiteAssign(requisite);\n closeRequisiteSelectModal();\n }}\n />\n ),\n [handleRequisiteAssign, requisiteId],\n );\n\n const modifyDropDownMenu = useCallback(() => {\n if (dropdownMenuRef.current && containerRef.current) {\n const containerRect = interact.getElementRect(containerRef.current.parentNode);\n const triggerRect = interact.getElementRect(containerRef.current);\n const dropdownMenuRect = interact.getElementRect(dropdownMenuRef.current);\n const escapeRight =\n containerRect.right < triggerRect.left + dropdownMenuRect.width * selectedScale;\n const escapeBottom =\n containerRect.bottom <\n triggerRect.bottom + dropdownMenuRect.height * selectedScale + 20 * documentScale;\n\n const isOverflowX =\n containerRect.bottom < dropdownMenuRect.height * (1 / selectedScale);\n const isOverflowY =\n containerRect.right < dropdownMenuRect.width * (1 / selectedScale);\n\n const isOverflow = isOverflowX || isOverflowY;\n\n setFieldModalPosition(\n (!escapeRight && !escapeBottom) || isOverflow\n ? FieldModalPosition.BOTTOM\n : escapeRight && !escapeBottom\n ? FieldModalPosition.LEFT\n : escapeBottom && !escapeRight\n ? FieldModalPosition.TOP\n : FieldModalPosition.TOP_LEFT,\n );\n\n setDropdownMenuClassName(\n classNames({\n 'fieldDropDown__content-wrapper--bottom':\n (!escapeRight && !escapeBottom) || isOverflow,\n 'fieldDropDown__content-wrapper--left':\n escapeRight && !escapeBottom && !isOverflow,\n 'fieldDropDown__content-wrapper--top':\n escapeBottom && !escapeRight && !isOverflow,\n 'fieldDropDown__content-wrapper--top-left':\n escapeBottom && escapeRight && !isOverflow,\n }),\n );\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isMenuOpen, dropdownMenuRef, containerRef, documentScale]);\n\n useLayoutEffect(() => {\n modifyDropDownMenu();\n }, [modifyDropDownMenu]);\n\n const handleInteraction = useCallback(() => {\n onInteract && onInteract(field.id);\n }, [onInteract, field.id]);\n\n const toggleFieldChecked = useCallback(() => {\n updateDocumentField({ checked: !checked });\n }, [checked, updateDocumentField]);\n\n const imgRef = useRef(null);\n\n const setPrepareInteracting = useCallback(() => {\n const fieldContainer = containerRef.current as HTMLElement;\n const draggableContainer = fieldContainer.parentNode as HTMLElement;\n const relatedPage = getRelatedPage();\n const minimumSize = getMinSize(field.type);\n const interactable = new Interact(fieldContainer, relatedPage, draggableContainer);\n\n if (isCheckboxType) {\n minimumSize.width = minimumSize.height = 10;\n }\n\n minimumSize.width = minimumSize.width * documentScale;\n minimumSize.height = minimumSize.height * documentScale;\n\n const interactingOptions = isCheckboxType\n ? {\n resizableOptions: {\n modifiers: [\n interact.modifiers.aspectRatio({\n ratio: 1,\n equalDelta: true,\n modifiers: [\n interact.modifiers.restrictSize({\n min: minimumSize,\n }),\n interact.modifiers.restrictEdges({\n outer: relatedPage,\n }),\n ],\n }),\n ],\n },\n }\n : {\n resizableOptions: {\n restrictSize: {\n min: minimumSize,\n },\n },\n };\n const listeners = interactable\n //@ts-ignore\n .interacting(interactingOptions)\n .allowFrom(fieldContainer.firstChild as HTMLElement)\n .on('dragstart', () => {\n setIsDragging(true);\n handleInteraction();\n })\n .on('dragend', () => {\n setIsDragging(false);\n })\n .on('dragmove', event => {\n Interact.dragMoveListener(event, documentScale);\n modifyDropDownMenu();\n })\n .on('resizestart', handleInteraction)\n .on('resizemove', event => {\n Interact.resizeMoveListener(event, documentScale);\n if (\n isFontResize &&\n [\n DocumentFieldTypes.Name,\n DocumentFieldTypes.Text,\n DocumentFieldTypes.Date,\n ].includes(type)\n ) {\n Interact.rearrangeFontSizeAsync(event.target as HTMLElement, {\n checkWidth:\n type === DocumentFieldTypes.Date || type === DocumentFieldTypes.Name,\n isAsync: type === DocumentFieldTypes.Text,\n });\n }\n modifyDropDownMenu();\n })\n .on('resizeend', event => {\n const { x, y } = Interact.getNodeCoords(event.target);\n const width = event.rect.width;\n const height = event.rect.height;\n\n let updatePayload = {\n coordinateX: x - relatedPage.offsetLeft,\n coordinateY: y - relatedPage.offsetTop,\n width: width / documentScale,\n height: height / documentScale,\n style: {\n left: x,\n top: y,\n width: width / documentScale,\n height: height / documentScale,\n },\n } as Parameters[0];\n\n if (\n isFontResize &&\n [\n DocumentFieldTypes.Name,\n DocumentFieldTypes.Date,\n DocumentFieldTypes.Text,\n ].includes(type)\n ) {\n const fontSize = Interact.getNodeFontSize(event.target);\n updatePayload = {\n ...updatePayload,\n fontSize,\n style: {\n ...updatePayload.style,\n fontSize,\n },\n };\n }\n\n if (minimizeWidth && imgRef.current) {\n const rate = imgRef.current.naturalWidth / imgRef.current.naturalHeight;\n const minimizedWidth = (height / documentScale) * rate;\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n if (minimizedWidth < updatePayload.width!) {\n updatePayload = {\n ...updatePayload,\n width: minimizedWidth,\n style: {\n ...updatePayload.style,\n width: minimizedWidth,\n },\n };\n }\n }\n\n updateDocumentField(updatePayload);\n })\n .on('tap', event => {\n if (event.currentTarget.id === field.id) {\n openMenu();\n handleInteraction();\n }\n })\n .on('doubletap', () => {\n if (isRequisiteType && isPreparer) {\n openRequisiteSelectModal();\n }\n });\n\n return listeners;\n }, [\n containerRef,\n documentScale,\n field.id,\n field.type,\n getRelatedPage,\n handleInteraction,\n isCheckboxType,\n isFontResize,\n isPreparer,\n isRequisiteType,\n modifyDropDownMenu,\n openMenu,\n openRequisiteSelectModal,\n type,\n updateDocumentField,\n minimizeWidth,\n imgRef,\n ]);\n\n const handleUpdateRequisisteField = useCallback(() => {\n if (!field.requisiteId && lastSelectedSignature) {\n updateDocumentField({\n requisiteId:\n field.type === DocumentFieldTypes.Signature\n ? lastSelectedSignature.id\n : lastSelectedSignature.siblingId,\n });\n } else {\n openRequisiteSelectModal();\n }\n }, [\n field.requisiteId,\n field.type,\n lastSelectedSignature,\n openRequisiteSelectModal,\n updateDocumentField,\n ]);\n\n const setSignInteracting = useCallback(() => {\n const fieldContainer = containerRef.current as HTMLElement;\n const interactable = new Interact(fieldContainer);\n const listeners = interactable\n .getInteractable()\n .allowFrom(fieldContainer.firstChild as HTMLElement)\n .on('click', () => {\n onFocus && onFocus(field.id);\n if (isRequisiteType) {\n handleUpdateRequisisteField();\n }\n if (isCheckboxType) {\n toggleFieldChecked();\n }\n });\n\n return listeners;\n }, [\n containerRef,\n field.id,\n handleUpdateRequisisteField,\n isCheckboxType,\n isRequisiteType,\n onFocus,\n toggleFieldChecked,\n ]);\n\n useEffect(() => {\n const fieldContainer = containerRef.current as HTMLElement;\n\n if (!fieldContainer || disabled) return;\n\n switch (interactMode) {\n case InteractModes.PREPARING: {\n const interactListeners = setPrepareInteracting();\n\n return () => interactListeners.unset();\n }\n case InteractModes.SIGNING: {\n const interactListeners = setSignInteracting();\n\n return () => interactListeners.unset();\n }\n }\n }, [containerRef, disabled, interactMode, setPrepareInteracting, setSignInteracting]);\n\n useEffect(() => {\n const fieldRef = textFieldRef.current || containerRef.current;\n if (fieldRef && inFocus) {\n fieldRef.focus();\n }\n }, [containerRef, inFocus]);\n\n const renderFieldTrigger = useCallback(() => {\n switch (type) {\n case DocumentFieldTypes.Name: {\n return (\n \n );\n }\n case DocumentFieldTypes.Signature:\n case DocumentFieldTypes.Initials: {\n return (\n \n );\n }\n case DocumentFieldTypes.Checkbox: {\n return (\n \n );\n }\n case DocumentFieldTypes.Text: {\n return (\n \n );\n }\n case DocumentFieldTypes.Date: {\n const datePipeOptions: DatePipeOptions =\n interactMode === InteractModes.SIGNING\n ? { isSameOrFuture: true }\n : { minYY: 20, minYYYY: 2020 };\n\n return (\n }\n isInsertable={isPreparer}\n disabled={isDragging || disabled}\n datePipeOptions={datePipeOptions}\n />\n );\n }\n default: {\n break;\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n id,\n updateDocumentField,\n text,\n type,\n textStyles,\n isDragging,\n disabled,\n requisite,\n signer,\n checked,\n width,\n height,\n ]);\n\n const renderPartisipantsList = useCallback(\n (isCheckable: boolean) => {\n return (\n
      \n {signersOptions.map(signerOption => (\n {\n const changePayload = changeDocumentFieldSigner(\n signerOption.value as string,\n );\n onChangeSigner(signerOption.value);\n if (changePayload) updateDocumentField(changePayload);\n }}\n key={signerOption.value}\n >\n {signerOption.label}\n \n ))}\n
    \n );\n },\n [\n signersOptions,\n signerId,\n changeDocumentFieldSigner,\n onChangeSigner,\n updateDocumentField,\n ],\n );\n\n const changeFontFamily = useCallback(\n fontFamily => {\n if (fontFamily)\n updateDocumentField({\n fontFamily,\n style: {\n fontFamily: fontFamilyByValue[fontFamily],\n },\n });\n },\n [updateDocumentField],\n );\n\n const changeFieldRequirety = useCallback(\n () => updateDocumentField({ required: !required }),\n [updateDocumentField, required],\n );\n\n const renderStyleSelectors = useCallback(() => {\n return (\n
    \n

    Styles

    \n
    \n

    Font Family

    \n \n
    \n
    \n );\n }, [changeFontFamily, fontFamily]);\n\n const renderRequired = useCallback(() => {\n return (\n
    \n \n
    \n );\n }, [required, changeFieldRequirety]);\n\n const renderDefaultChecked = useCallback(\n () => (\n
    \n \n
    \n ),\n [checked, toggleFieldChecked],\n );\n\n const renderFieldMenu = useCallback(() => {\n switch (type) {\n case DocumentFieldTypes.Signature:\n case DocumentFieldTypes.Initials: {\n return (\n
    \n {renderPartisipantsList(true)}\n {renderRequired()}\n
    \n );\n }\n case DocumentFieldTypes.Checkbox: {\n return (\n
    \n {renderPartisipantsList(true)}\n {renderRequired()}\n {!isPreparer && renderDefaultChecked()}\n
    \n );\n }\n case DocumentFieldTypes.Name: {\n return (\n
    \n {renderPartisipantsList(true)}\n {renderStyleSelectors()}\n
    \n );\n }\n case DocumentFieldTypes.Date:\n case DocumentFieldTypes.Text: {\n return (\n
    \n {renderPartisipantsList(true)}\n {renderStyleSelectors()}\n {renderRequired()}\n
    \n );\n }\n default: {\n break;\n }\n }\n }, [\n type,\n renderPartisipantsList,\n renderRequired,\n isPreparer,\n renderDefaultChecked,\n renderStyleSelectors,\n ]);\n\n return (\n \n );\n}\n\nexport default FieldItem;\n","import React from 'react';\nimport classNames from 'classnames';\nimport { ReactSVG } from 'react-svg';\nimport { FieldColorNames } from 'Hooks/DocumentFields/useDocumentFieldColor';\n\nimport ArrowCheck from 'Assets/images/icons/checkbox-arrow-document.svg';\n\ninterface CheckboxFieldProps {\n disabled?: boolean;\n checked?: boolean;\n fieldColor?: FieldColorNames;\n}\n\nconst CheckboxField = ({ disabled, checked, fieldColor }: CheckboxFieldProps) => {\n return (\n \n {checked && (\n \n )}\n \n );\n};\n\nexport default CheckboxField;\n","import React, { useEffect, useMemo, useRef } from 'react';\nimport { ReactSVG } from 'react-svg';\nimport classNames from 'classnames';\nimport { Requisite, RequisiteType } from 'Interfaces/Requisite';\nimport { Signer } from 'Interfaces/Document';\nimport { FieldColorNames } from 'Hooks/DocumentFields/useDocumentFieldColor';\n\nimport { RequisiteItem } from 'Components/RequisiteComponents';\n\nimport SignIcon from 'Assets/images/icons/sign-icon.svg';\nimport InIcon from 'Assets/images/icons/in-icon.svg';\nimport {\n DocumentFieldLabels,\n DocumentFieldsCRUDMeta,\n DocumentFieldUpdatePayload,\n FieldCreateType,\n} from 'Interfaces/DocumentFields';\n\ninterface RequisiteFieldProps {\n requisite?: Requisite;\n requisiteType?: RequisiteType;\n disabled?: boolean;\n signer?: Signer;\n fieldColor?: FieldColorNames;\n updateField?: (\n payload: Omit,\n meta?: DocumentFieldsCRUDMeta,\n ) => void;\n createType?: FieldCreateType;\n imgRef?: React.Ref;\n}\n\nconst RequisiteField = ({\n requisite,\n requisiteType,\n signer,\n fieldColor,\n updateField,\n createType,\n imgRef,\n}: RequisiteFieldProps) => {\n const title = useMemo(() => {\n if (signer && !signer.isPreparer) {\n return signer.name || signer.role;\n }\n\n return requisiteType === RequisiteType.SIGN\n ? DocumentFieldLabels.SIGNATURE\n : DocumentFieldLabels.INITIALS;\n }, [requisiteType, signer]);\n\n const shadowRef = useRef(null);\n\n useEffect(() => {\n if (\n shadowRef.current &&\n createType === FieldCreateType.ADD &&\n requisiteType === RequisiteType.SIGN\n ) {\n const width = Math.max(shadowRef?.current?.clientWidth + 40, 110);\n\n updateField && updateField({ width }, { pushToHistory: false });\n }\n }, [\n updateField,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n signer?.name?.length,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n signer?.role?.length,\n createType,\n requisiteType,\n ]);\n\n if (requisite?.id) {\n return (\n \n );\n }\n\n return (\n \n \n \n {requisiteType === RequisiteType.SIGN && (\n {title}\n )}\n \n );\n};\n\nexport default RequisiteField;\n","import React, { CSSProperties, useCallback, useRef, useMemo } from 'react';\nimport { ReactSVG } from 'react-svg';\nimport classNames from 'classnames';\nimport MaskedInput from 'react-text-mask';\nimport { createAutoCorrectedDatePipe } from 'Utils/functions';\nimport { dateFormatMasks } from 'Utils/formatters';\nimport { FieldColorNames } from 'Hooks/DocumentFields/useDocumentFieldColor';\nimport { DocumentField } from 'Interfaces/DocumentFields';\nimport { DateFormats } from 'Interfaces/User';\n\nimport DateIcon from 'Assets/images/icons/date-icon.svg';\nimport { DatePipeOptions } from 'Interfaces/Common';\n\ninterface DateFieldProps {\n onFieldDataChange?: (fieldData: Partial) => void;\n value?: string | null;\n style?: CSSProperties;\n onFocus?: () => void;\n onBlur?: () => void;\n dateFormat?: NonNullable;\n disabled?: boolean;\n isInsertable?: boolean;\n fieldColor?: FieldColorNames;\n datePipeOptions?: DatePipeOptions;\n}\n\nexport const DateField = ({\n value,\n onFieldDataChange,\n style,\n onFocus,\n onBlur,\n dateFormat,\n fieldColor,\n disabled,\n isInsertable,\n datePipeOptions,\n}: DateFieldProps) => {\n const shadowRef = useRef(null);\n const mask = useMemo(() => dateFormatMasks[dateFormat || DateFormats.MM_DD_YYYY], [\n dateFormat,\n ]);\n\n const changeTextValue = useCallback(\n (event: React.ChangeEvent) => {\n if (onFieldDataChange) {\n const { value } = event.target;\n\n return onFieldDataChange({\n text: value,\n });\n }\n },\n [onFieldDataChange],\n );\n\n const datePipe = useMemo(\n () => createAutoCorrectedDatePipe(dateFormat, datePipeOptions),\n [dateFormat, datePipeOptions],\n );\n\n return (\n \n \n {value || dateFormat}\n \n \n \n \n );\n};\n\nexport default DateField;\n","import React, { useCallback, CSSProperties, useMemo, useRef } from 'react';\nimport classNames from 'classnames';\nimport { DocumentFieldUpdatePayload } from 'Interfaces/DocumentFields';\nimport { FieldColorNames } from 'Hooks/DocumentFields/useDocumentFieldColor';\n\nimport UITextArea from 'Components/UIComponents/UITextArea';\nimport { Signer } from 'Interfaces/Document';\nimport Interact from 'Services/Interact';\n\ninterface TextFieldProps {\n onFieldDataChange?: (fieldData: Omit) => void;\n onFocus?: () => void;\n onBlur?: () => void;\n value?: string | null;\n placeholder?: string;\n style: CSSProperties;\n disabled?: boolean;\n minFontSize?: number;\n maxFontSize?: number;\n signer?: Signer;\n fieldColor?: FieldColorNames;\n isFixedFontSize?: boolean;\n}\n\nconst TextField = (\n {\n onFieldDataChange,\n onFocus,\n onBlur,\n style,\n value,\n placeholder,\n disabled = false,\n minFontSize = 7,\n maxFontSize = 48,\n fieldColor,\n signer,\n isFixedFontSize = false,\n }: TextFieldProps,\n ref,\n) => {\n const signerName = signer?.name || signer?.role;\n\n const shadowRef = useRef(null);\n\n const changeTextValue = useCallback(\n async (event: React.ChangeEvent) => {\n if (onFieldDataChange && shadowRef.current) {\n const { value } = event.target;\n const prevValue = shadowRef.current.innerHTML;\n\n shadowRef.current.innerHTML = value;\n const parent = shadowRef.current.parentElement as HTMLElement;\n\n if (\n isFixedFontSize &&\n (shadowRef.current.offsetWidth > parent.offsetWidth ||\n shadowRef.current.offsetHeight > parent.offsetHeight)\n ) {\n return onFieldDataChange({\n text: value,\n });\n }\n\n const newFontSize = await Interact.getRearrangedFontSize({\n initialFontSize: style.fontSize as number,\n shadowElement: shadowRef.current,\n minFontSize,\n maxFontSize,\n isFixedFontSize,\n });\n\n if (newFontSize) {\n shadowRef.current.innerHTML = prevValue;\n shadowRef.current.style.fontSize = style.fontSize + 'px';\n\n onFieldDataChange({\n text: value,\n fontSize: newFontSize,\n style: {\n fontSize: newFontSize,\n },\n });\n }\n }\n },\n [onFieldDataChange, isFixedFontSize, style.fontSize, minFontSize, maxFontSize],\n );\n\n const textValue = useMemo(() => value || '', [value]);\n\n const formattedValue = useMemo(\n () => (textValue || 'Textbox').replace(/\\n/g, '\\n​'),\n [textValue],\n );\n\n return (\n \n \n \n \n );\n};\n\nexport default React.forwardRef(TextField);\n","import React, { CSSProperties, useCallback, useRef, useMemo } from 'react';\nimport classNames from 'classnames';\nimport { FieldColorNames } from 'Hooks/DocumentFields/useDocumentFieldColor';\nimport { DocumentField } from 'Interfaces/DocumentFields';\nimport NameIcon from 'Assets/images/icons/name-icon.svg';\nimport { DatePipeOptions } from 'Interfaces/Common';\nimport { ReactSVG } from 'react-svg';\nimport { Signer } from 'Interfaces/Document';\n\ninterface NameFieldProps {\n onFieldDataChange?: (fieldData: Partial) => void;\n signer?: Signer;\n value?: string | null;\n style?: CSSProperties;\n onFocus?: () => void;\n onBlur?: () => void;\n disabled?: boolean;\n isInsertable?: boolean;\n fieldColor?: FieldColorNames;\n datePipeOptions?: DatePipeOptions;\n}\n\nexport const NameField = ({\n value,\n signer,\n onFieldDataChange,\n style,\n onFocus,\n onBlur,\n fieldColor,\n disabled,\n isInsertable,\n}: NameFieldProps) => {\n const shadowRef = useRef(null);\n\n const changeTextValue = useCallback(\n (event: React.ChangeEvent) => {\n if (onFieldDataChange) {\n const { value } = event.target;\n\n return onFieldDataChange({\n text: value,\n });\n }\n },\n [onFieldDataChange],\n );\n\n const placeholder = signer?.isPreparer\n ? 'Your name'\n : signer?.name ??\n (signer?.role\n ? `${signer.role + (signer.role.endsWith('s') ? \"'\" : \"'s\")} name`\n : 'Name');\n\n return (\n \n \n {value || placeholder}\n \n \n \n \n );\n};\n\nexport default NameField;\n","import React, { CSSProperties, useCallback, useMemo } from 'react';\nimport classNames from 'classnames';\nimport { DocumentFieldTypes } from 'Interfaces/DocumentFields';\n\nimport { TextFieldSign, RequisiteField, CheckboxField, DateField } from './FieldTypes';\nimport { RequisiteType } from 'Interfaces/Requisite';\nimport { FieldColorNames } from 'Hooks/DocumentFields/useDocumentFieldColor';\nimport { FieldModalPosition } from './FieldItem';\nimport NameField from './FieldTypes/NameField';\n\ninterface FieldItemViewProps {\n style: CSSProperties;\n fieldType: string;\n renderFieldTrigger?: () => JSX.Element | undefined;\n renderFieldMenu?: () => JSX.Element | undefined;\n id?: string;\n className?: string;\n dropdownClassName?: string;\n dropdownMenuRef?: React.RefObject;\n fieldColor: FieldColorNames;\n isMenuOpen?: boolean;\n isResizable?: boolean;\n inFocus?: boolean;\n isFilled?: boolean;\n selectedScale: number;\n fieldModalPosition: FieldModalPosition;\n [key: string]: any;\n}\n\nconst FieldItemView = (\n {\n id,\n fieldType,\n style,\n fieldColor,\n inFocus,\n renderFieldTrigger,\n renderFieldMenu,\n className,\n dropdownClassName,\n dropdownMenuRef,\n isMenuOpen = false,\n isResizable = false,\n isFilled = false,\n selectedScale,\n fieldModalPosition,\n ...restProps\n }: FieldItemViewProps,\n ref,\n) => {\n const fieldColorClassName = useMemo(\n () =>\n fieldColor ? `fieldColor__${fieldColor}` : `fieldColor__${FieldColorNames.EMPTY}`,\n [fieldColor],\n );\n\n const translateModalX = useMemo(() => {\n switch (fieldModalPosition) {\n case FieldModalPosition.BOTTOM:\n return ((1 - selectedScale) * 100) / 2;\n case FieldModalPosition.LEFT:\n return ((1 - selectedScale) * -100) / 2;\n case FieldModalPosition.TOP:\n return ((1 - selectedScale) * 100) / 2;\n case FieldModalPosition.TOP_LEFT:\n return ((1 - selectedScale) * -100) / 2;\n default:\n return 0;\n }\n }, [fieldModalPosition, selectedScale]);\n\n const translateModalY = useMemo(() => {\n switch (fieldModalPosition) {\n case FieldModalPosition.BOTTOM:\n return ((1 - selectedScale) * 100) / 2;\n case FieldModalPosition.LEFT:\n return ((1 - selectedScale) * 100) / 2;\n case FieldModalPosition.TOP:\n return ((1 - selectedScale) * -100) / 2;\n case FieldModalPosition.TOP_LEFT:\n return ((1 - selectedScale) * -100) / 2;\n default:\n return 0;\n }\n }, [fieldModalPosition, selectedScale]);\n\n const defaultFieldTriggerRender = useCallback(() => {\n switch (fieldType) {\n case DocumentFieldTypes.Name: {\n return (\n \n );\n }\n case DocumentFieldTypes.Signature:\n case DocumentFieldTypes.Initials: {\n return (\n \n );\n }\n case DocumentFieldTypes.Checkbox: {\n return ;\n }\n case DocumentFieldTypes.Text: {\n return (\n \n );\n }\n case DocumentFieldTypes.Date: {\n return (\n \n );\n }\n default: {\n break;\n }\n }\n }, [fieldType]);\n\n return (\n \n \n {renderFieldTrigger ? renderFieldTrigger() : defaultFieldTriggerRender()}\n {isResizable && (\n <>\n
    \n
    \n
    \n
    \n \n )}\n
    \n {isMenuOpen && (\n \n

    \n Who {fieldType === 'checkbox' ? 'check' : 'fills'} this out?\n

    \n {renderFieldMenu && renderFieldMenu()}\n
    \n )}\n
    \n );\n};\n\nexport default React.forwardRef(FieldItemView);\n","import { useMemo } from 'react';\nimport { Signer } from 'Interfaces/Document';\nimport { InteractModes } from 'Components/Interact/components/FieldItem';\n\nexport enum FieldColorNames {\n EMPTY = 'empty',\n USER = 'user',\n ORANGE = 'orange',\n GREEN = 'green',\n TURQUOISE = 'turquoise',\n BLUE = 'blue',\n RED = 'red',\n LIGHT_GREEN = 'lightGreen',\n VIOLET = 'violet',\n YELLOW = 'yellow',\n DARK_BLUE = 'darkBlue',\n DARK_VIOLET = 'darkViolet',\n}\n\nconst signerFieldColors = [\n FieldColorNames.ORANGE,\n FieldColorNames.GREEN,\n FieldColorNames.TURQUOISE,\n FieldColorNames.BLUE,\n FieldColorNames.RED,\n FieldColorNames.LIGHT_GREEN,\n FieldColorNames.VIOLET,\n FieldColorNames.YELLOW,\n FieldColorNames.DARK_BLUE,\n FieldColorNames.DARK_VIOLET,\n];\n\nexport default (\n signer: Signer,\n interactMode: InteractModes = InteractModes.PREPARING,\n) => {\n const fieldColor = useMemo(() => {\n const colorIndex = (signer.order - 1) % signerFieldColors.length;\n\n const fieldColor =\n signer.isPreparer || interactMode === InteractModes.SIGNING\n ? FieldColorNames.USER\n : signerFieldColors[colorIndex];\n\n return fieldColor;\n }, [signer, interactMode]);\n\n return fieldColor;\n};\n","import { useEffect } from 'react';\nimport { useRequisitesGet } from 'Hooks/Requisite';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { useDocumentFieldsMetaChange } from 'Hooks/DocumentFields';\nimport { NormalizedEntity } from 'Interfaces/Common';\nimport { Requisite } from 'Interfaces/Requisite';\nimport { DocumentFilesGetPayload } from './useDocumentFilesGet';\nimport useDocumentFilesGet from './useDocumentFilesGet';\n\nexport default () => {\n const [getConvertedDocument] = useDocumentFilesGet();\n const [getUserRequisites] = useRequisitesGet();\n const [setDocumentFieldsMeta, cleanDocumentFieldsMeta] = useDocumentFieldsMetaChange();\n\n useEffect(() => {\n return () => cleanDocumentFieldsMeta();\n }, [cleanDocumentFieldsMeta]);\n\n return useAsyncAction((payload: DocumentFilesGetPayload) => {\n setDocumentFieldsMeta({ currentDocumentId: payload.document.id });\n\n // @ts-ignore\n return Promise.all([\n getConvertedDocument(payload),\n getUserRequisites(undefined),\n ]).then(res => res.flat()) as [string[], string[], {} | NormalizedEntity];\n });\n};\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { DocumentIdPayload } from 'Interfaces/Document';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: DocumentIdPayload) =>\n $actions.document.copyDocument(dispatch, payload),\n );\n};\n","import { useAsyncAction } from 'Hooks/Common';\nimport { $actions } from 'Store';\nimport { useDispatch } from 'react-redux';\nimport { DocumentDownloadPayload } from 'Interfaces/Document';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: DocumentDownloadPayload) =>\n $actions.document.getDocumentDownloadUrl(dispatch, payload),\n );\n};\n","import { useCallback } from 'react';\nimport { useAttachmentDownload } from 'Hooks/Common';\nimport { DocumentDownloadPayload } from 'Interfaces/Document';\nimport { isNotEmpty } from 'Utils/functions';\nimport useDocumentDownloadUrlGet from './useDocumentDownloadUrlGet';\n\ninterface DownloadDocument {\n (payload: DocumentDownloadPayload): Promise;\n}\n\nexport default () => {\n const [\n getDocumentDownloadUrl,\n isGettingDocumentDownloadUrl,\n ] = useDocumentDownloadUrlGet();\n const [downloadAttachment, isReady] = useAttachmentDownload();\n\n const downloadDocument = useCallback(\n async (payload: DocumentDownloadPayload) => {\n const signedUrlResponse = await getDocumentDownloadUrl(payload);\n\n if (isNotEmpty(signedUrlResponse)) {\n return downloadAttachment(signedUrlResponse.result);\n }\n\n throw new Error('Could not download document');\n },\n [downloadAttachment, getDocumentDownloadUrl],\n ) as DownloadDocument;\n\n return [downloadDocument, isGettingDocumentDownloadUrl, isReady] as const;\n};\n","import { useDispatch } from 'react-redux';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { $actions } from 'Store';\nimport { TemplateActivatePayload } from 'Interfaces/Document';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: TemplateActivatePayload) =>\n $actions.document.activateTemplate(dispatch, payload),\n );\n};\n","import { useDispatch } from 'react-redux';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { $actions } from 'Store';\nimport { DocumentIdPayload } from 'Interfaces/Document';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: DocumentIdPayload) =>\n $actions.document.revertDocument(dispatch, payload),\n );\n};\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { DocumentIdPayload } from 'Interfaces/Document';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: DocumentIdPayload) =>\n $actions.document.replicateTemplate(dispatch, payload),\n );\n};\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { TemplateMergePayload } from 'Interfaces/Document';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: TemplateMergePayload) =>\n $actions.document.mergeTemplate(dispatch, payload),\n );\n};\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { DocumentIdPayload } from 'Interfaces/Document';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: DocumentIdPayload) =>\n $actions.document.addTemplateToApi(dispatch, payload),\n );\n};\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { DocumentIdPayload } from 'Interfaces/Document';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: DocumentIdPayload) =>\n $actions.document.removeTemplateFromApi(dispatch, payload),\n );\n};\n","import { useDispatch } from 'react-redux';\nimport { DocumentDisableRemindersPayload } from 'Interfaces/Document';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((values: DocumentDisableRemindersPayload) =>\n $actions.document.toggleEmailNotification(dispatch, values),\n );\n};\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { TemplatesAllGetPayload } from 'Interfaces/Document';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload?: TemplatesAllGetPayload) =>\n $actions.document.getAllTemplates(dispatch, payload),\n );\n};\n","import { useDispatch } from 'react-redux';\nimport { useCallback } from 'react';\nimport { rootActions } from 'Store';\n\ninterface CancelTemplatesAllGet {\n (): void;\n}\n\nexport default () => {\n const dispatch = useDispatch();\n\n const cancelDocumentUpdate: CancelTemplatesAllGet = useCallback(\n () => dispatch(rootActions.document.getAllTemplates.cancel(undefined, {})),\n [dispatch],\n );\n\n return cancelDocumentUpdate;\n};\n","import { useAsyncAction } from 'Hooks/Common';\nimport { DocumentValues } from 'Interfaces/Document';\nimport { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((values: DocumentValues) =>\n $actions.document.createDocumentByExistTemplate(dispatch, { values }),\n );\n};\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { DocumentDeletePayload } from 'Interfaces/Document';\nimport { useAsyncAction } from 'Hooks/Common';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: DocumentDeletePayload) =>\n $actions.document.deleteDocument(dispatch, payload),\n );\n};\n","import { useAsyncAction } from 'Hooks/Common';\nimport { useEmbedSignedUrlBulkGet } from 'Hooks/User';\nimport { isNotEmpty } from 'Utils/functions';\nimport { Document, DocumentStatuses, DocumentDownloadTypes } from 'Interfaces/Document';\nimport useDocumentPageKeysGet from './useDocumentPartsKeysGet';\n\nexport interface DocumentFilesGetPayload {\n document: Document;\n pickPreviews?: boolean;\n}\n\nexport default () => {\n const [getPresignedGetUrlBulk] = useEmbedSignedUrlBulkGet();\n const getDocumentPageKeys = useDocumentPageKeysGet();\n\n return useAsyncAction(async ({ document, pickPreviews }: DocumentFilesGetPayload) => {\n let pageKeys;\n if (document.status === DocumentStatuses.DRAFT) {\n if (!document.parts) return [[], []];\n pageKeys = getDocumentPageKeys(document.parts);\n } else if (document.status === DocumentStatuses.AWAITING) {\n pageKeys = document.pdfFileKey\n ? getDocumentPageKeys(document.parts)\n : [document.pdfFileKey];\n } else {\n pageKeys =\n document.downloadType === DocumentDownloadTypes.MERGED\n ? [document.resultPdfFileKey]\n : [document.resultDocumentPdfFileKey];\n }\n\n const documentFilesKeys = [...pageKeys, ...[]];\n\n const presignedUrls = await getPresignedGetUrlBulk({ keys: documentFilesKeys });\n\n if (!isNotEmpty(presignedUrls)) return [[], []];\n\n const presignedPagesUrls = pageKeys.map(key => presignedUrls[key]);\n // const presignedPreviewsUrls = previewKeys.map(key => presignedUrls[key]);\n\n return [presignedPagesUrls, []];\n });\n};\n","import { useDispatch } from 'react-redux';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { $actions } from 'Store';\nimport { BulkSignedUrlPayload } from 'Interfaces/Common';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: BulkSignedUrlPayload) =>\n $actions.user.getEmbedSignedUrlBulk(dispatch, payload),\n );\n};\n","import {\n DocumentFieldTypes,\n DocumentFieldShape,\n DocumentFieldLabels,\n} from 'Interfaces/DocumentFields';\nimport NameIcon from 'Assets/images/icons/name-icon.svg';\nimport SignIcon from 'Assets/images/icons/sign-icon.svg';\nimport InIcon from 'Assets/images/icons/in-icon.svg';\nimport DateIcon from 'Assets/images/icons/date-icon.svg';\nimport TextIcon from 'Assets/images/icons/text-icon.svg';\nimport CheckboxIcon from 'Assets/images/icons/checkbox-icon.svg';\n\nexport const fieldShapes: DocumentFieldShape[] = [\n {\n label: DocumentFieldLabels.NAME,\n type: DocumentFieldTypes.Name,\n icon: NameIcon,\n iconType: 'stroke',\n },\n {\n label: DocumentFieldLabels.SIGNATURE,\n type: DocumentFieldTypes.Signature,\n icon: SignIcon,\n iconType: 'stroke',\n },\n {\n label: DocumentFieldLabels.INITIALS,\n type: DocumentFieldTypes.Initials,\n icon: InIcon,\n iconType: 'fill',\n },\n {\n label: DocumentFieldLabels.DATE,\n type: DocumentFieldTypes.Date,\n icon: DateIcon,\n iconType: 'stroke',\n },\n {\n label: DocumentFieldLabels.TEXT,\n type: DocumentFieldTypes.Text,\n icon: TextIcon,\n iconType: 'stroke',\n },\n {\n label: DocumentFieldLabels.CHECKBOX,\n type: DocumentFieldTypes.Checkbox,\n icon: CheckboxIcon,\n iconType: 'stroke',\n },\n];\n\nexport const defaultSizesByFieldType = {\n [DocumentFieldTypes.Name]: {\n width: 120,\n height: 25,\n },\n [DocumentFieldTypes.Signature]: {\n width: 110,\n height: 25,\n },\n [DocumentFieldTypes.Initials]: {\n width: 25,\n height: 25,\n },\n [DocumentFieldTypes.Text]: {\n width: 60,\n height: 25,\n },\n [DocumentFieldTypes.Date]: {\n width: 120,\n height: 25,\n },\n [DocumentFieldTypes.Checkbox]: {\n width: 25,\n height: 25,\n },\n};\n","import React from 'react';\nimport { ReactSVG } from 'react-svg';\nimport classNames from 'classnames';\n\nimport DocumentIcon from 'Assets/images/icons/document.svg';\n\ninterface UIOverlayLoaderProps {\n iconClassName?: string;\n labelClassName?: string;\n}\n\nconst UIOverlayLoader = ({ iconClassName, labelClassName }: UIOverlayLoaderProps) => {\n return (\n
    \n \n \n Loading...\n \n
    \n );\n};\n\nexport default UIOverlayLoader;\n","import React, { useEffect, useRef, useCallback, useState } from 'react';\nimport interact from 'interactjs';\nimport classnames from 'classnames';\nimport { useIsMobile, useIsTablet, useToggler } from 'Hooks/Common';\nimport OverlayLoader from 'Components/UIComponents/UIOverlayLoader';\nimport { Page, pdfjs } from 'react-pdf';\nimport 'react-pdf/dist/esm/Page/AnnotationLayer.css';\n\nexport interface DocumentPageProps {\n pageNumber: number;\n scale?: number;\n style?: React.CSSProperties;\n className?: string;\n onTap?: (event) => void;\n onDrop?: (event) => void;\n onLoad?: () => void;\n renderAnnotationLayer?: boolean;\n}\n\nconst DocumentPage = ({\n style,\n pageNumber,\n onTap,\n onDrop,\n onLoad,\n className,\n scale,\n renderAnnotationLayer = true,\n}: DocumentPageProps) => {\n const isMobile = useIsMobile();\n const isTablet = useIsTablet();\n const [renderMode, setRenderMode] = useState<'canvas' | 'svg'>(\n isMobile || isTablet ? 'svg' : 'canvas',\n );\n const [isLoading, toggleIsLoading] = useToggler(true);\n const pageRef = useRef(null);\n\n useEffect(() => {\n let interactable;\n\n if (pageRef.current)\n interactable = interact(pageRef.current)\n .dropzone({\n enabled: true,\n accept: '.draggable',\n overlap: 1,\n ondrop: onDrop,\n })\n .on('tap', event => onTap && onTap(event));\n\n return () => {\n if (interactable) interactable.unset();\n };\n }, [pageRef, onTap, onDrop]);\n\n const handleLoad = useCallback(\n async page => {\n const operatorList = await page.getOperatorList();\n\n const isSomeImage = operatorList.fnArray.some(\n fn => fn === pdfjs.OPS.paintImageXObject || fn === pdfjs.OPS.paintJpegXObject,\n );\n\n if (isSomeImage) {\n setRenderMode('canvas');\n }\n\n toggleIsLoading();\n if (onLoad) onLoad();\n },\n [onLoad, toggleIsLoading],\n );\n\n return (\n
    \n
    \n {isLoading && }\n \n
    \n
    \n );\n};\n\nexport default DocumentPage;\n","import React from 'react';\nimport DocumentPage, { DocumentPageProps } from './DocumentPage';\n\nexport interface DocumentPreviewPageProps extends DocumentPageProps {\n scale?: number;\n style?: {\n marginBottom?: number;\n width?: number;\n height?: number;\n };\n children?: React.ReactNode;\n offset?: number;\n}\n\nconst DocumentPreviewPage = ({\n pageNumber,\n scale = 1,\n offset = 0,\n style,\n children,\n ...documentPageProps\n}: DocumentPreviewPageProps) => {\n return (\n \n \n \n {children}\n
    \n \n );\n};\n\nexport default DocumentPreviewPage;\n","import React, { useEffect, useRef, useState } from 'react';\nimport { ReactSVG } from 'react-svg';\nimport classNames from 'classnames';\nimport interact from 'interactjs';\nimport { DocumentFieldShape, DocumentFieldTypes } from 'Interfaces/DocumentFields';\nimport { capitalize } from 'Utils/formatters';\n\nexport interface FieldBarItemProps {\n selectedFieldType?: string;\n fieldShape: DocumentFieldShape;\n disabled?: boolean;\n handleSelectField: (string) => void;\n onCursorMove: (event, fieldType: DocumentFieldTypes) => void;\n handleClick: (e: any, type: DocumentFieldTypes, renderShape?: boolean) => void;\n}\n\nfunction FieldBarItem({\n selectedFieldType,\n fieldShape: { label, type, iconType, icon },\n onCursorMove,\n disabled = false,\n handleClick,\n}: FieldBarItemProps) {\n const fieldTypeItemRef = useRef(null);\n const [isPointerCaptured, setIsPointerCaptured] = useState(false);\n\n useEffect(() => {\n if (fieldTypeItemRef.current && !disabled) {\n const interactableListItem = interact(fieldTypeItemRef.current)\n .on('down', event => {\n setIsPointerCaptured(true);\n handleClick(event, type);\n })\n .on('move', event => {\n isPointerCaptured && onCursorMove(event, type);\n setIsPointerCaptured(false);\n });\n\n return () => interactableListItem.unset();\n }\n }, [fieldTypeItemRef, isPointerCaptured, type, onCursorMove, disabled, handleClick]);\n\n return (\n !disabled && handleClick(event, type, true)}\n >\n \n {capitalize(label)}\n \n );\n}\n\nexport default FieldBarItem;\n","import React from 'react';\nimport { fontSizeOptions } from 'Services/Fonts';\nimport UISelect from '../../UIComponents/UISelect';\n\ninterface FontSizeSelectProps {\n onSelect: (value: number | null | undefined) => void;\n value: number | null | undefined;\n}\n\nconst FontSizeSelect = ({ onSelect, value }: FontSizeSelectProps) => (\n \n);\n\nexport default FontSizeSelect;\n","import { fontFamilyOptions } from '../../../Services/Fonts';\nimport UISelect from '../../UIComponents/UISelect';\nimport React from 'react';\n\ninterface FontFamilySelectProps {\n value: string | null | undefined;\n onSelect: (fontFamily: string | null | undefined) => void;\n}\n\nconst FontFamilySelect = ({ value, onSelect }: FontFamilySelectProps) => (\n \n);\n\nexport default FontFamilySelect;\n","import React, { useCallback, useMemo, useState } from 'react';\nimport classNames from 'classnames';\nimport { ReactSVG } from 'react-svg';\nimport { useSelector } from 'react-redux';\nimport { fontFamilyByValue } from 'Services/Fonts';\nimport { useDocumentFieldSignerChange } from 'Hooks/DocumentFields';\nimport { SelectableOption } from 'Interfaces/Common';\nimport {\n DocumentField,\n DocumentFieldsCRUDMeta,\n DocumentFieldShape,\n DocumentFieldTypes,\n} from 'Interfaces/DocumentFields';\nimport { selectDocument } from 'Utils/selectors';\nimport { capitalize } from 'Utils/formatters';\nimport { fieldShapes } from '../common/fieldShapes';\nimport { checkIfDateOrText } from 'Utils/functions';\n\nimport UISelect from 'Components/UIComponents/UISelect';\nimport UICheckbox from 'Components/UIComponents/UICheckbox';\nimport UITextArea from 'Components/UIComponents/UITextArea';\nimport UITextInput from 'Components/UIComponents/UITextInput';\n\nimport RemoveIcon from 'Assets/images/icons/remove-icon.svg';\nimport { UpdateDocumentField } from 'Hooks/DocumentFields/useDocumentFieldUpdate';\nimport { DeleteDocumentField } from 'Hooks/DocumentFields/useDocumentFieldDelete';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport { DocumentTypes } from 'Interfaces/Document';\nimport FontSizeSelect from './FontSizeSelect';\nimport FontFamilySelect from './FontFamilySelect';\n\ninterface FieldItemOptionsProps {\n field: DocumentField;\n partisipantOptions: SelectableOption[];\n onUpdate: UpdateDocumentField;\n onChangeSigner: (signerId: string) => void;\n onDelete: DeleteDocumentField;\n onStartInputTyping: () => void;\n onStopInputTyping: () => void;\n validateTag: (id: string, tag: string) => boolean;\n onApplyFontToEachField: (fontFamily: string, fontSize: number) => void;\n}\n\nconst FieldItemOptions = ({\n field,\n partisipantOptions,\n onUpdate,\n onChangeSigner,\n onDelete,\n onStartInputTyping,\n onStopInputTyping,\n validateTag,\n onApplyFontToEachField,\n}: FieldItemOptionsProps) => {\n const { id, signerId, required, checked, minimizeWidth } = field;\n const [isTagInvalid, setIsTagInvalid] = useState(false);\n const getFieldSignerUpdateData = useDocumentFieldSignerChange(field);\n const document = useSelector(state =>\n selectDocument(state, { documentId: field.documentId }),\n );\n const signer = useMemo(\n () => document?.signers.find(signer => signer.id === field.signerId),\n [document, field.signerId],\n );\n const isDateOrText = useMemo(() => checkIfDateOrText(field.type), [field.type]);\n const { icon, iconType, type } = fieldShapes.find(\n fieldShape => fieldShape.type === field.type,\n ) as DocumentFieldShape;\n\n const removeCurrentField = useCallback(() => {\n onDelete({ id });\n }, [id, onDelete]);\n\n const changeCurrentFieldData = useCallback(\n (data: Partial, meta?: DocumentFieldsCRUDMeta) => {\n onUpdate({ id: field.id, ...data }, meta);\n },\n [onUpdate, field],\n );\n\n const handleFieldRequiretyChange = useCallback(\n () => changeCurrentFieldData({ required: !required }),\n [changeCurrentFieldData, required],\n );\n\n const handleFieldCheckedChange = useCallback(() => {\n changeCurrentFieldData({ checked: !checked });\n }, [checked, changeCurrentFieldData]);\n\n const handleFieldMinimizeWidthChange = useCallback(() => {\n changeCurrentFieldData({ minimizeWidth: !minimizeWidth });\n }, [changeCurrentFieldData, minimizeWidth]);\n\n const handleTagFieldChange = useCallback(\n (tag: string) => {\n changeCurrentFieldData({ tag: tag });\n setIsTagInvalid(!validateTag(id, tag));\n },\n [validateTag, id, changeCurrentFieldData],\n );\n\n const changeFontFamily = useCallback(\n fontFamily => {\n if (fontFamily)\n changeCurrentFieldData({\n fontFamily,\n style: {\n fontFamily: fontFamilyByValue[fontFamily],\n },\n });\n },\n [changeCurrentFieldData],\n );\n\n const changeFontSize = useCallback(\n fontSize => {\n if (fontSize)\n changeCurrentFieldData(\n {\n fontSize,\n fixedFontSize: true,\n style: {\n fontSize,\n },\n },\n { stopFontAutoSize: true, pushToHistory: true },\n );\n },\n [changeCurrentFieldData],\n );\n\n const handlePlaceholderChange = useCallback(\n newPlaceholderValue => {\n changeCurrentFieldData({ placeholder: newPlaceholderValue });\n },\n [changeCurrentFieldData],\n );\n\n const handleSignerSelect = useCallback(\n signerId => {\n const updateData = getFieldSignerUpdateData(signerId);\n onChangeSigner(signerId);\n if (updateData) changeCurrentFieldData(updateData);\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [changeCurrentFieldData, getFieldSignerUpdateData],\n );\n\n const handleApplyToDocumentButton = (field: DocumentField) => () => {\n onApplyFontToEachField(field.fontFamily || 'arial', field.fontSize || 14);\n };\n\n const showTagHint = useMemo(() => {\n if (field.tag) {\n return field.tag.length > 0;\n }\n\n return false;\n }, [field.tag]);\n\n return (\n
  • \n \n
    \n \n

    \n {capitalize(type)}\n

    \n
    \n \n \n
    \n

    Assigned To:

    \n \n
    \n {isDateOrText && (\n <>\n
    \n

    \n Font Family:{' '}\n

    \n \n
    \n
    \n

    \n Font size: \n

    \n \n
    \n
    \n \n
    \n \n )}\n {field.type === DocumentFieldTypes.Text && !signer?.isPreparer && (\n
    \n

    Label

    \n handlePlaceholderChange(event.target.value)}\n onFocus={onStartInputTyping}\n onBlur={onStopInputTyping}\n />\n
    \n )}\n {field.type !== DocumentFieldTypes.Name && (\n
    \n \n
    \n )}\n {field.type === DocumentFieldTypes.Checkbox && !signer?.isPreparer && (\n
    \n \n
    \n )}\n {field.type === DocumentFieldTypes.Initials && signer?.isPreparer && (\n
    \n \n
    \n )}\n {field.type !== DocumentFieldTypes.Signature &&\n field.type !== DocumentFieldTypes.Initials &&\n document?.type === DocumentTypes.TEMPLATE && (\n
    \n

    Tag

    \n handleTagFieldChange(event.target.value)}\n onFocus={onStartInputTyping}\n onBlur={onStopInputTyping}\n />\n {showTagHint && (\n

    \n We recommend you to adjust font size and field size with example value in\n placeholder. When you're using API to fill this fields, we don't\n automatically adjust font size or field size.\n

    \n )}\n
    \n )}\n
  • \n );\n};\n\nexport default FieldItemOptions;\n","export const scaleOptions = [\n {\n value: 0.25,\n label: '25%',\n },\n {\n value: 0.5,\n label: '50%',\n },\n {\n value: 0.75,\n label: '75%',\n },\n {\n value: 1,\n label: '100%',\n },\n {\n value: 1.25,\n label: '125%',\n },\n {\n value: 1.5,\n label: '150%',\n },\n {\n value: 1.75,\n label: '175%',\n },\n {\n value: 2,\n label: '200%',\n },\n {\n value: 2.25,\n label: '225%',\n },\n {\n value: 2.5,\n label: '250%',\n },\n {\n value: 2.75,\n label: '275%',\n },\n {\n value: 3,\n label: '300%',\n },\n];\n","import React, { useCallback } from 'react';\nimport useDropdown from 'use-dropdown';\nimport { scaleOptions } from '../common/scaleOptions';\nimport { ReactSVG } from 'react-svg';\n\nimport ArrowIcon from 'Assets/images/icons/select-arrow-icon.svg';\n\nexport interface ScaleDropDownProps {\n changeScale: (number) => void;\n documentScale: number;\n}\n\nfunction ScaleDropDown({ changeScale, documentScale }: ScaleDropDownProps) {\n const [containerRef, isOpen, open, close] = useDropdown();\n\n const toggleDropdown = useCallback(() => {\n if (isOpen) {\n close();\n } else {\n open();\n }\n }, [isOpen, open, close]);\n\n const onScale = ({ value }) => {\n changeScale(value);\n close();\n };\n\n const label = scaleOptions.find(item => item.value === documentScale)?.label;\n\n return (\n
    \n \n
    \n
    \n
    {label}
    \n
    \n
    \n\n \n
    \n {isOpen && (\n
    \n
    \n {scaleOptions\n .filter(item => !(item.value === documentScale))\n .map((item, index) => {\n const { label: optionLabel } = item;\n return (\n onScale(item)}\n className=\"scaleDropDown__search-item\"\n >\n

    {optionLabel}

    \n
    \n );\n })}\n
    \n \n )}\n \n );\n}\n\nexport default ScaleDropDown;\n","import React from 'react';\nimport { ReactSVG } from 'react-svg';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport ScaleDropDown from './ScaleDropDown';\nimport NavigateIconLeft from 'Assets/images/icons/navigate-icon-left.svg';\nimport NavigateIconRight from 'Assets/images/icons/navigate-icon-right.svg';\nimport CopyIcon from 'Assets/images/icons/copy-icon.svg';\nimport PasteIcon from 'Assets/images/icons/paste-icon.svg';\nimport { DocumentActions } from 'Interfaces/Document';\n\nexport interface ModalHeaderProps {\n onScaleChange: (number) => void;\n handleSubmit: () => void;\n handleClose: () => void;\n documentScale: number;\n isSubmitting?: boolean;\n onCopy?: () => void;\n onPaste?: () => void;\n submitButtonTitle?: DocumentActions;\n isForm?: boolean;\n disabled?: boolean;\n isDisableCancelButton: boolean;\n redoDocumentFieldAction: () => void;\n undoDocumentFieldAction: () => void;\n isNextAvailable: boolean;\n isPrevAvailable: boolean;\n}\n\nfunction ModalHeader({\n handleClose,\n onScaleChange,\n documentScale,\n handleSubmit,\n isSubmitting = false,\n onCopy,\n onPaste,\n submitButtonTitle = DocumentActions.SEND,\n isForm,\n disabled,\n isDisableCancelButton,\n redoDocumentFieldAction,\n undoDocumentFieldAction,\n isNextAvailable,\n isPrevAvailable,\n}: ModalHeaderProps) {\n return (\n
    \n

    \n {isForm ? 'Preparing Form' : 'Prepare for Signing'}\n

    \n
    \n
    \n \n \n Prev\n \n \n \n Next\n \n
    \n
    \n \n \n \n
    \n
    \n
    \n {!isDisableCancelButton && (\n \n )}\n \n
    \n
    \n );\n}\n\nexport default ModalHeader;\n","import React, { useRef, useState, useLayoutEffect, useMemo } from 'react';\nimport classNames from 'classnames';\nimport { useToggler } from 'Hooks/Common';\nimport { DocumentField, DocumentFieldTypes } from 'Interfaces/DocumentFields';\nimport { Page } from 'react-pdf';\n\nimport OverlayLoader from 'Components/UIComponents/UIOverlayLoader';\nimport { useSelector } from 'react-redux';\nimport { selectDocumentSigner } from 'Utils/selectors';\nimport { useDocumentFieldColor } from 'Hooks/DocumentFields';\nimport { Signer } from 'Interfaces/Document';\n\ninterface DocumentFieldPreviewItemProps {\n field: DocumentField;\n yScale?: number;\n xScale?: number;\n}\n\nconst DocumentFieldPreviewItem = ({\n field,\n yScale = 1,\n xScale = 1,\n}: DocumentFieldPreviewItemProps) => {\n const signer = useSelector(state =>\n selectDocumentSigner(state, {\n documentId: field.documentId,\n signerId: field.signerId,\n }),\n ) as Signer;\n\n const fieldColor = useDocumentFieldColor(signer);\n\n return (\n \n );\n};\n\nexport interface DocumentNavigationItemProps {\n navigateToPage: () => void;\n pageNumber: number;\n pageMeta?: {\n width: number;\n height: number;\n } | null;\n fields: DocumentField[];\n}\n\nfunction DocumentNavigationItem({\n pageNumber,\n navigateToPage,\n pageMeta,\n fields,\n}: DocumentNavigationItemProps) {\n const containerRef = useRef(null);\n const [fieldsXScale, setFieldsXScale] = useState(1);\n const [fieldsYScale, setFieldsYScale] = useState(1);\n const [isLoading, toggleIsLoading] = useToggler(true);\n const { pageWidth, pageHeight } = useMemo(\n () => ({ pageWidth: pageMeta?.width, pageHeight: pageMeta?.height }),\n [pageMeta],\n );\n\n useLayoutEffect(() => {\n if (containerRef.current && pageWidth && pageHeight) {\n setFieldsXScale(containerRef.current.clientWidth / pageWidth);\n setFieldsYScale(containerRef.current.clientWidth / pageWidth);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [pageHeight, pageWidth, containerRef.current]);\n\n return (\n \n {isLoading && (\n \n )}\n \n {fields.map(field => (\n \n ))}\n \n );\n}\n\nexport default DocumentNavigationItem;\n","import React from 'react';\nimport UIModal from 'Components/UIComponents/UIModal';\nimport UIButton from 'Components/UIComponents/UIButton';\n\nexport interface MeOptionModalProps {\n onClose: () => void;\n}\n\nfunction MeOptionModal({ onClose, ...modalProps }: MeOptionModalProps) {\n return (\n \n
    \n
    \n Attention! You have chosen Me (Now) signer. All fields related to this signer\n have to be signed by you before document request sending.\n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n );\n}\n\nexport default MeOptionModal;\n","import React, { useState, useCallback, useEffect, useRef, useMemo } from 'react';\nimport ReactDOM from 'react-dom';\nimport { useSelector } from 'react-redux';\nimport { isEmpty } from 'lodash';\nimport ReactModal from 'react-modal';\nimport interact from 'interactjs';\nimport classNames from 'classnames';\nimport uuid from 'uuid/v4';\nimport { minBy } from 'lodash';\nimport Interact from 'Services/Interact';\nimport Toast from 'Services/Toast';\nimport { fontFamilyByValue } from 'Services/Fonts';\nimport {\n useDocumentInteractInit,\n useDocumentUpdateCancel,\n useDocumentUpdate,\n} from 'Hooks/Document';\nimport {\n useDocumentFieldCreate,\n useDocumentFieldDelete,\n useDocumentFieldHistory,\n useDocumentFieldUpdate,\n useDocumentFieldUpdateLocally,\n} from 'Hooks/DocumentFields';\nimport { useIsTablet, useModal } from 'Hooks/Common';\nimport {\n selectDocumentFields,\n selectDocument,\n selectDocumentSignerOptions,\n selectUser,\n selectAvailableSignatureTypes,\n} from 'Utils/selectors';\nimport { getCurrentDate, checkIfDateOrText, isRequisite } from 'Utils/functions';\nimport {\n RequisiteType,\n Requisite,\n defaultRequisiteTypesOrder,\n} from 'Interfaces/Requisite';\nimport { Document, DocumentActions, DocumentTypes, Signer } from 'Interfaces/Document';\nimport {\n DocumentFieldTypes,\n DocumentField,\n DocumentFieldAddType,\n DocumentFieldUpdatePayload,\n DocumentFieldsCRUDMeta,\n FieldCreateType,\n} from 'Interfaces/DocumentFields';\nimport { User } from 'Interfaces/User';\nimport { INTERACT_SIZES } from './common/constants';\nimport { calculateSizeRatio } from './common/utils';\nimport { defaultSizesByFieldType, fieldShapes } from './common/fieldShapes';\nimport { pdfjs, Document as PDFDocument } from 'react-pdf';\n\nimport UISpinner from 'Components/UIComponents/UISpinner';\nimport UIProgressBar from 'Components/UIComponents/UIProgressBar';\nimport { DocumentPage } from 'Components/DocumentPage';\nimport { RequisiteSelectModal } from 'Components/RequisiteComponents';\nimport FieldBarItem from './components/FieldBarItem';\nimport FieldItemOptions from './components/FieldItemOptions';\nimport FieldItemView from './components/FieldItemView';\nimport ModalHeader from './components/ModalHeader';\nimport DocumentNavigationItem from './components/DocumentNavigationItem';\nimport FieldItem from './components/FieldItem';\nimport History from 'Services/History';\nimport { UnregisterCallback } from 'history';\nimport * as _ from 'lodash';\nimport MeOptionModal from './components/MeOptionModal';\nimport useGetPdfMetadataFromDocumentPart from 'Hooks/Document/useGetPdfMetadataFromDocumentPart';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\n\npdfjs.GlobalWorkerOptions.workerSrc = `//unpkg.com/pdfjs-dist@${pdfjs.version}/legacy/build/pdf.worker.min.js`;\n\nexport interface InteractModalProps {\n documentId: Document['id'];\n onClose: () => void;\n handleSubmit: (...args: any[]) => void;\n submitting?: boolean;\n buttonSendTitle?: DocumentActions;\n}\n\nenum DocumentFieldActions {\n CREATE = 'create',\n UPDATE = 'update',\n}\n\ninterface DocumentFieldAction {\n type: T;\n payload: T extends DocumentFieldActions.CREATE\n ? DocumentField\n : DocumentFieldUpdatePayload;\n meta?: DocumentFieldsCRUDMeta;\n}\n\nfunction InteractModalOld({\n documentId,\n onClose,\n handleSubmit,\n submitting,\n buttonSendTitle,\n}: InteractModalProps) {\n const isMobile = useIsMobile();\n\n const currentDocument = useSelector(state => selectDocument(state, { documentId }));\n const [\n redoDocumentFieldAction,\n undoDocumentFieldAction,\n isNextAvailable,\n isPrevAvailable,\n ] = useDocumentFieldHistory();\n\n const pdfPageMeta = useGetPdfMetadataFromDocumentPart(currentDocument as Document)();\n\n const greaterWidthMetadata = useMemo(() => {\n return Object.values(pdfPageMeta).reduce(\n (greaterWidth, pageMetadata) => {\n return greaterWidth.width < pageMetadata.width ? pageMetadata : greaterWidth;\n },\n { width: 0 },\n );\n }, [pdfPageMeta]);\n\n const sizeRatio = useMemo(() => calculateSizeRatio(greaterWidthMetadata), [\n greaterWidthMetadata,\n ]);\n\n const signersOptions = useSelector(state =>\n selectDocumentSignerOptions(state, {\n documentId,\n isPreparerSigner: true,\n }),\n );\n\n const [selectedScale, setSelectedScale] = useState(1);\n const documentFields: DocumentField[] = useSelector(selectDocumentFields);\n const [documentScale, setDocumentScale] = useState(sizeRatio || selectedScale);\n const [pagesPerDocument, setPagesPerDocument] = useState>({});\n const [pdfDocumentFiles, setPdfDocumentFiles] = useState([]);\n const [loadedPagesCount, setLoadedPagesCount] = useState(0);\n const [renderedPages, setRenderedPages] = useState>({});\n const [selectedFieldType, setSelectedFieldType] = useState<\n DocumentFieldTypes | undefined\n >();\n const [lastInteractedFieldId, setLastInteractedFieldId] = useState(null);\n const [focusedFieldId, setFocusedFieldId] = useState(null);\n const [currentFieldAction, setCurrentFieldAction] = useState<\n DocumentFieldAction | undefined\n >();\n const [meOptionSelected, setMeOptionSelected] = useState(false);\n const [isFieldShapeExist, setFieldShapeExist] = useState(false);\n\n const isPageRendered = useCallback(\n (absolutePageNumber: number) => renderedPages[absolutePageNumber],\n [renderedPages],\n );\n\n const documentOffset = useMemo(() => {\n return sizeRatio && sizeRatio < 1 && selectedScale === 1\n ? `translateX(-${((1 - sizeRatio) / (2 * sizeRatio)) * 100}%)`\n : '';\n }, [selectedScale, sizeRatio]);\n\n const [openMeOptionModal, closeMeOptionModal] = useModal(() => (\n \n ));\n\n const [\n isAbleToDeleteLastInteractedField,\n setIsAbleDeleteLastInteractedField,\n ] = useState(true);\n\n const unblockHistoryCallback = useRef();\n\n const [clipboard, setClipboard] = useState(null);\n const [initDocumentInteract, isDocumentInteractLoading] = useDocumentInteractInit();\n const createDocumentField = useDocumentFieldCreate();\n const deleteDocumentField = useDocumentFieldDelete();\n const updateDocumentField = useDocumentFieldUpdate();\n const updateDocumentFieldLocally = useDocumentFieldUpdateLocally();\n const cancelDocumentUpdate = useDocumentUpdateCancel();\n const [updateDocument, isSaving] = useDocumentUpdate();\n const containerRef = useRef(null);\n const pagesContainerRef = useRef(null);\n const documentViewRef = useRef(null);\n const [enableResizeFont, setEnableResizeFont] = useState(true);\n\n const { lastInteractedField, lastInteractedFieldSigner } = useMemo(() => {\n const field = documentFields.find(\n documentField => documentField.id === lastInteractedFieldId,\n );\n const signer = currentDocument?.signers.find(signer => signer.id === field?.signerId);\n\n return { lastInteractedField: field, lastInteractedFieldSigner: signer };\n }, [currentDocument, documentFields, lastInteractedFieldId]);\n\n const { dateFormat, name: userName }: User = useSelector(selectUser);\n const availableSignatureTypes = useSelector(selectAvailableSignatureTypes);\n\n useEffect(() => {\n return () => {\n cancelDocumentUpdate();\n };\n }, [documentId, cancelDocumentUpdate]);\n\n useEffect(() => {\n const callback = History.block('All changes will be lost');\n unblockHistoryCallback.current = callback;\n\n return () => {\n unblockHistoryCallback.current && unblockHistoryCallback.current();\n };\n }, [unblockHistoryCallback]);\n\n const totalPagesCount = useMemo(() => {\n return Object.values(pagesPerDocument).reduce((a, b) => a + b.length, 0);\n }, [pagesPerDocument]);\n\n const setConvertedDocument = useCallback(async () => {\n try {\n if (!currentDocument) {\n return Toast.error('Document not found');\n }\n\n const [pdfUrls] = await initDocumentInteract({\n document: currentDocument,\n });\n\n setPdfDocumentFiles(pdfUrls);\n } catch (error) {\n Toast.handleErrors(error);\n }\n }, [initDocumentInteract, currentDocument]);\n\n const getFieldPageComponent = useCallback(\n (pageNumber: DocumentField['pageNumber']) => {\n const pagesContainerComponent = pagesContainerRef.current as HTMLElement;\n\n return pagesContainerComponent.children[pageNumber - 1] as HTMLElement;\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [pagesContainerRef.current],\n );\n\n const newFieldSigner = useMemo(\n () =>\n currentDocument?.signers.reduce((accumSigner, signer) => {\n if (lastInteractedFieldSigner && !lastInteractedFieldSigner.isPreparer) {\n return lastInteractedFieldSigner;\n }\n\n if (!accumSigner || accumSigner.isPreparer) return signer;\n\n return accumSigner;\n }, undefined as Signer | undefined),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [currentDocument?.signers, lastInteractedFieldSigner],\n );\n\n const [openRequisiteSelectModal, closeRequisiteSelectModal, isModalOpen] = useModal(\n () => (\n {\n setCurrentFieldAction(undefined);\n closeRequisiteSelectModal();\n }}\n type={\n currentFieldAction?.payload?.type === DocumentFieldTypes.Signature\n ? RequisiteType.SIGN\n : RequisiteType.INITIAL\n }\n availableSignatureTypes={\n currentFieldAction?.payload?.availableSignatureTypes ||\n defaultRequisiteTypesOrder\n }\n onSelect={(requisite: Requisite) => {\n if (!currentFieldAction) return;\n\n setCurrentFieldAction({\n ...currentFieldAction,\n payload: {\n ...currentFieldAction.payload,\n requisiteId: requisite.id,\n },\n });\n closeRequisiteSelectModal();\n }}\n />\n ),\n [currentFieldAction],\n );\n\n const setFieldCreateAction = useCallback(\n (fieldData: DocumentFieldAddType, meta?: DocumentFieldsCRUDMeta) => {\n const { type } = fieldData;\n const isDateOrText = checkIfDateOrText(type);\n const defaultSizes = defaultSizesByFieldType[type];\n const fieldPageComponent = getFieldPageComponent(fieldData.pageNumber);\n const fontStyles = isDateOrText\n ? {\n fontSize: 14,\n fontFamily: 'arial',\n }\n : undefined;\n const coordinateX =\n fieldData.coordinateX + defaultSizes.width > fieldPageComponent.clientWidth\n ? fieldData.coordinateX -\n (fieldData.coordinateX + defaultSizes.width - fieldPageComponent.clientWidth)\n : fieldData.coordinateX;\n const coordinateY =\n fieldData.coordinateY + defaultSizes.height > fieldPageComponent.clientHeight\n ? fieldData.coordinateY -\n (fieldData.coordinateY +\n defaultSizes.height -\n fieldPageComponent.clientHeight)\n : fieldData.coordinateY;\n const newField: DocumentField = {\n id: uuid(),\n documentId,\n dateFormat: fieldData.type === DocumentFieldTypes.Date ? dateFormat : null,\n requisiteId: null,\n availableSignatureTypes:\n fieldData.type === DocumentFieldTypes.Signature\n ? availableSignatureTypes\n : null,\n checked:\n fieldData.type === DocumentFieldTypes.Checkbox\n ? newFieldSigner?.isPreparer\n : null,\n ...fontStyles,\n ...defaultSizes,\n ...fieldData,\n text: newFieldSigner?.isPreparer\n ? fieldData.type === DocumentFieldTypes.Date\n ? getCurrentDate(dateFormat)\n : fieldData.type === DocumentFieldTypes.Name\n ? userName\n : undefined\n : undefined,\n signerId: newFieldSigner?.id || null,\n coordinateX,\n coordinateY,\n required: true,\n style: {\n maxWidth: fieldPageComponent.clientWidth,\n maxHeight: fieldPageComponent.clientHeight,\n width: defaultSizes.width,\n height: defaultSizes.height,\n fontSize: fontStyles?.fontSize,\n fontFamily: fontFamilyByValue[fontStyles?.fontFamily as string],\n ...fieldData.style,\n left: coordinateX + fieldPageComponent?.offsetLeft,\n top: coordinateY + fieldPageComponent?.offsetTop,\n },\n };\n\n setCurrentFieldAction({\n type: DocumentFieldActions.CREATE,\n payload: newField,\n meta,\n });\n },\n [\n getFieldPageComponent,\n documentId,\n dateFormat,\n availableSignatureTypes,\n newFieldSigner,\n userName,\n ],\n );\n\n const setFieldUpdateAction = useCallback(\n (payload: DocumentFieldUpdatePayload, meta?: DocumentFieldsCRUDMeta) => {\n let sizePayload = {};\n\n if (payload.width && payload.coordinateX && payload.pageNumber) {\n const fieldPageComponent = getFieldPageComponent(payload.pageNumber);\n const newWidth =\n payload.coordinateX + payload.width > fieldPageComponent.clientWidth\n ? fieldPageComponent.clientWidth - payload.coordinateX\n : payload.width;\n\n sizePayload = {\n width: newWidth,\n style: {\n ...payload.style,\n width: newWidth,\n },\n };\n }\n\n if (meta?.stopFontAutoSize) {\n setEnableResizeFont(false);\n }\n\n setCurrentFieldAction({\n type: DocumentFieldActions.UPDATE,\n payload: { ...payload, ...sizePayload },\n meta,\n });\n },\n [getFieldPageComponent],\n );\n\n const addField = useCallback(\n (action: DocumentFieldAction) => {\n createDocumentField(action.payload, action.meta);\n setLastInteractedFieldId(action.payload.id);\n },\n [createDocumentField],\n );\n\n const updateField = useCallback(\n (action: DocumentFieldAction) => {\n updateDocumentField(action.payload, action.meta);\n },\n [updateDocumentField],\n );\n\n const executeCurrentFieldAction = useCallback(\n (action: DocumentFieldAction) => {\n switch (action.type) {\n case DocumentFieldActions.CREATE: {\n return addField(action as DocumentFieldAction);\n }\n case DocumentFieldActions.UPDATE: {\n return updateField(action as DocumentFieldAction);\n }\n default:\n return;\n }\n },\n [addField, updateField],\n );\n\n useEffect(() => {\n if (!currentFieldAction || !currentDocument) return () => {};\n\n const fieldSigner = currentDocument?.signers.find(\n signer => signer.id === currentFieldAction.payload.signerId,\n );\n\n if (\n currentFieldAction.payload.type &&\n isRequisite(currentFieldAction.payload.type) &&\n fieldSigner?.isPreparer &&\n !currentFieldAction.payload.requisiteId\n ) {\n return openRequisiteSelectModal();\n }\n\n setCurrentFieldAction(undefined);\n\n return executeCurrentFieldAction(currentFieldAction);\n }, [\n currentFieldAction,\n openRequisiteSelectModal,\n currentDocument,\n executeCurrentFieldAction,\n ]);\n\n const { isAllPdfFilesLoaded, isAllPagesRendered } = useMemo(() => {\n const isAllPdfFilesLoaded = !pdfDocumentFiles.find(\n pdfFile => !pagesPerDocument[pdfFile],\n );\n\n let isAllPagesRendered = false;\n if (isAllPdfFilesLoaded) {\n const renderedPagesCount = Object.values(renderedPages).filter(Boolean).length;\n isAllPagesRendered = renderedPagesCount === totalPagesCount;\n }\n\n return { isAllPdfFilesLoaded, isAllPagesRendered };\n }, [pagesPerDocument, pdfDocumentFiles, renderedPages, totalPagesCount]);\n\n const recalculateDocumentFieldStyles = useCallback(\n (documentField: DocumentField) => {\n const pagesContainerComponent = pagesContainerRef.current as HTMLElement;\n const fieldPageComponent = getFieldPageComponent(documentField.pageNumber);\n\n if (!fieldPageComponent) return;\n\n const pageOffset =\n (greaterWidthMetadata.width - pdfPageMeta[documentField.pageNumber].width) / 2 ||\n 0;\n\n const updatedField = {\n ...documentField,\n style: {\n ...documentField.style,\n width: documentField.width || documentField.style?.width,\n height: documentField.height || documentField.style?.height,\n maxWidth: fieldPageComponent.clientWidth,\n maxHeight: fieldPageComponent.clientHeight,\n left:\n documentField.coordinateX + pagesContainerComponent.offsetLeft + pageOffset,\n top: documentField.coordinateY + fieldPageComponent.offsetTop,\n fontFamily: documentField.fontFamily\n ? fontFamilyByValue[documentField.fontFamily]\n : undefined,\n fontSize: documentField.fontSize || undefined,\n },\n };\n\n updateDocumentFieldLocally(updatedField);\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [updateDocumentFieldLocally, pagesContainerRef.current],\n );\n\n useEffect(() => {\n if (pagesContainerRef.current && isAllPdfFilesLoaded && isAllPagesRendered) {\n documentFields.forEach(recalculateDocumentFieldStyles);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [pagesContainerRef.current, isAllPdfFilesLoaded, isAllPagesRendered]);\n\n const handleDocumentScaleChange = useCallback(\n (nextDocumentScale: number) => {\n if (documentViewRef.current) {\n documentViewRef.current.scrollTop = Math.round(\n (documentViewRef.current.scrollTop / documentScale) * nextDocumentScale,\n );\n }\n\n documentFields.forEach(recalculateDocumentFieldStyles);\n\n if (sizeRatio) {\n setDocumentScale(sizeRatio * nextDocumentScale);\n setSelectedScale(nextDocumentScale);\n }\n },\n [documentFields, documentScale, recalculateDocumentFieldStyles, sizeRatio],\n );\n\n const navigateToPage = useCallback(\n absolutePageNumber => {\n const targetPage = pagesContainerRef.current?.childNodes[\n absolutePageNumber - 1\n ] as HTMLDivElement;\n\n targetPage.scrollIntoView({\n behavior: 'smooth',\n });\n },\n [pagesContainerRef],\n );\n\n const changeFieldPositionInvalidity = useCallback((event, invalidPosition: boolean) => {\n const targetFieldNode = event.dragEvent.target as HTMLDivElement;\n\n if (invalidPosition) {\n targetFieldNode.classList.add('fieldDropDown--invalid');\n } else {\n targetFieldNode.classList.remove('fieldDropDown--invalid');\n }\n }, []);\n\n const handleFieldDropOnPageContainer = useCallback(\n event => {\n changeFieldPositionInvalidity(event, false);\n const targetFieldNode = event.dragEvent.target as HTMLDivElement;\n const isClone = targetFieldNode.getAttribute('clone') === 'true';\n if (isClone) {\n return targetFieldNode.remove();\n }\n const targetFieldId = targetFieldNode.id;\n const targetDocumentField = documentFields.find(\n documentField => documentField.id === targetFieldId,\n ) as DocumentField;\n const targetFieldStyles = targetDocumentField?.style;\n if (targetFieldStyles?.left) {\n targetFieldNode.style.left = `${targetFieldStyles.left}px`;\n targetFieldNode.setAttribute('coord-x', targetFieldStyles.left.toString());\n }\n if (targetFieldStyles?.top) {\n targetFieldNode.style.top = `${targetFieldStyles.top}px`;\n targetFieldNode.setAttribute('coord-y', targetFieldStyles.top.toString());\n }\n },\n [changeFieldPositionInvalidity, documentFields],\n );\n\n const handleFieldDropOnPage = useCallback(\n (event, pageNumber: number) => {\n const { dragEvent, target: targetPage } = event;\n const targetFieldNode = dragEvent.target as HTMLElement;\n const fieldRect = interact.getElementRect(targetFieldNode);\n const dropzoneRect = interact.getElementRect(event.target);\n const isClone = targetFieldNode.getAttribute('clone') === 'true';\n const documentView = documentViewRef.current;\n const offsetX = Math.abs(fieldRect.left - dropzoneRect.left) / documentScale;\n const offsetY = Math.abs(fieldRect.top - dropzoneRect.top) / documentScale;\n const positioning = {\n coordinateX: offsetX,\n coordinateY: offsetY,\n style: {\n left: offsetX + targetPage.offsetLeft,\n top: offsetY + targetPage.offsetTop,\n },\n };\n\n if (isClone && documentView) {\n const type = targetFieldNode.getAttribute('field-type') as DocumentFieldTypes;\n\n setFieldCreateAction({\n signerId: null,\n required: false,\n type,\n pageNumber: pageNumber,\n ...positioning,\n createType: FieldCreateType.ADD,\n });\n\n return targetFieldNode.remove();\n }\n\n const targetFieldId = targetFieldNode.id;\n const targetField = documentFields.find(\n documentField => documentField.id === targetFieldId,\n ) as DocumentField;\n\n setFieldUpdateAction({\n ...targetField,\n pageNumber: pageNumber,\n ...positioning,\n style: {\n ...targetField.style,\n ...positioning.style,\n },\n });\n },\n [\n setFieldCreateAction,\n setFieldUpdateAction,\n documentFields,\n documentViewRef,\n documentScale,\n ],\n );\n\n const handleFieldBarItemCursorMove = useCallback(\n (event, fieldType: DocumentFieldTypes) => {\n const { interaction } = event;\n\n if (\n interaction.pointerIsDown &&\n !interaction.interacting() &&\n containerRef.current\n ) {\n const { target, offsetX: pointerX, offsetY: pointerY } = event;\n const { width, height } = defaultSizesByFieldType[fieldType];\n const draggable = document.createElement('div');\n containerRef.current.appendChild(draggable);\n const isDateOrText = checkIfDateOrText(fieldType);\n\n ReactDOM.render(\n ,\n draggable,\n );\n\n const dragStartEvent = new PointerEvent('pointerdown', {\n bubbles: true,\n ...event,\n });\n\n draggable.firstChild?.dispatchEvent(dragStartEvent);\n }\n },\n [documentScale],\n );\n\n useEffect(() => {\n setConvertedDocument();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n const draggableFieldItem = interact(`div[clone=true]`)\n .draggable({\n onmove: Interact.dragMoveListener,\n })\n .on('down', event => {\n const { interaction } = event;\n\n interaction.start({ name: 'drag' }, event.interactable, event.currentTarget);\n });\n\n return () => draggableFieldItem.unset();\n }, []);\n\n useEffect(() => {\n if (containerRef.current) {\n const listeners = interact(containerRef.current).dropzone({\n overlap: 0,\n ondragenter: event => changeFieldPositionInvalidity(event, true),\n ondragleave: event => changeFieldPositionInvalidity(event, false),\n ondrop: handleFieldDropOnPageContainer,\n });\n\n return () => listeners.unset();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n changeFieldPositionInvalidity,\n handleFieldDropOnPageContainer,\n documentFields,\n containerRef.current,\n ]);\n\n const handleSignerChange = (signerId: string) => {\n signersOptions.forEach(signer => {\n if (signer.value === signerId && signer.label === 'Me (now)') {\n if (!meOptionSelected) {\n openMeOptionModal();\n setMeOptionSelected(true);\n }\n }\n });\n };\n\n const handleDocumentFieldsSubmit = useCallback(async () => {\n try {\n if (currentDocument) {\n const updateValues = {\n documentId: documentId,\n fields: documentFields,\n type: currentDocument.type,\n };\n\n await updateDocument({ values: updateValues, query: { log: true } });\n unblockHistoryCallback.current && unblockHistoryCallback.current();\n await handleSubmit();\n\n Toast.success('Document successfully saved!');\n }\n } catch (error) {\n Toast.handleErrors(error);\n }\n }, [\n currentDocument,\n documentId,\n documentFields,\n updateDocument,\n unblockHistoryCallback,\n handleSubmit,\n ]);\n\n const handlePageTap = useCallback(\n (event, pageNumber: number) => {\n if (!isFieldShapeExist) {\n return;\n }\n setLastInteractedFieldId(null);\n\n if (selectedFieldType) {\n setFieldCreateAction({\n signerId: null,\n type: selectedFieldType,\n required: false,\n coordinateX: event.offsetX,\n coordinateY: event.offsetY,\n pageNumber: pageNumber,\n style: {\n left: event.offsetX + event.currentTarget.offsetLeft,\n top: event.offsetY + event.currentTarget.offsetTop,\n },\n createType: FieldCreateType.ADD,\n });\n }\n },\n [isFieldShapeExist, selectedFieldType, setFieldCreateAction],\n );\n\n const handlePageRendered = useCallback((absolutePageNumber: number) => {\n setLoadedPagesCount(prevState => prevState + 1);\n setRenderedPages(prevState => ({\n ...prevState,\n [absolutePageNumber]: true,\n }));\n }, []);\n\n const isPreparingInteract = useMemo(() => loadedPagesCount !== totalPagesCount, [\n loadedPagesCount,\n totalPagesCount,\n ]);\n\n const percentageLoadedPages = useMemo(\n () => 100 * (loadedPagesCount / totalPagesCount),\n [loadedPagesCount, totalPagesCount],\n );\n\n const lowScale = useMemo(() => documentScale < 1, [documentScale]);\n\n const copyDocumentField = useCallback(() => {\n const activeField = documentFields.find(\n documentField => documentField.id === lastInteractedFieldId,\n );\n\n setClipboard(activeField || null);\n }, [documentFields, lastInteractedFieldId]);\n\n const deleteLastInteractedField = useCallback(() => {\n if (\n lastInteractedFieldSigner?.isPreparer &&\n focusedFieldId === lastInteractedFieldId &&\n lastInteractedField?.type &&\n [\n DocumentFieldTypes.Name,\n DocumentFieldTypes.Text,\n DocumentFieldTypes.Date,\n ].includes(lastInteractedField?.type)\n ) {\n return;\n }\n\n if (lastInteractedFieldId) {\n deleteDocumentField({ id: lastInteractedFieldId });\n }\n }, [\n deleteDocumentField,\n focusedFieldId,\n lastInteractedField,\n lastInteractedFieldId,\n lastInteractedFieldSigner,\n ]);\n\n const handleBlur = useCallback(() => {\n setFocusedFieldId(null);\n }, []);\n\n const getPagesRects = useCallback(() => {\n if (pagesContainerRef.current) {\n const pages = [...new Array(pagesContainerRef.current.children.length)];\n return pages.map((item, index) => {\n return interact.getElementRect(\n pagesContainerRef.current?.children[index] as HTMLElement,\n );\n });\n }\n }, [pagesContainerRef]);\n\n const getDocumentViewCenter = useCallback(() => {\n if (documentViewRef.current) {\n const documentViewRect = interact.getElementRect(documentViewRef.current);\n\n return documentViewRect.top + documentViewRect.height / 2;\n }\n }, [documentViewRef]);\n\n const findPageClosestToCenter = useCallback(() => {\n const pagesRects = getPagesRects();\n if (pagesRects) {\n const pagesCenters = pagesRects\n .map((pageRect, index) => {\n return {\n index,\n center: pageRect.top + pageRect.height / 2,\n };\n })\n .filter(page => page.center > 0);\n const documentViewCenter = getDocumentViewCenter() as number;\n\n return minBy(pagesCenters, page =>\n Math.abs(documentViewCenter - page.center),\n ) as typeof pagesCenters[0];\n }\n }, [getPagesRects, getDocumentViewCenter]);\n\n const pasteDocumentField = useCallback(() => {\n if (clipboard && documentViewRef.current && pagesContainerRef.current) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { id, ...fieldData } = clipboard;\n\n if (focusedFieldId) return;\n\n const closestPage = findPageClosestToCenter();\n\n if (!closestPage) return;\n\n const pageComponent = getFieldPageComponent(closestPage.index + 1);\n\n const pageCenterX = pageComponent?.clientWidth\n ? pageComponent.clientWidth / 2 - (fieldData.width as number) / 2\n : 0;\n const pageCenterY = pageComponent?.clientHeight\n ? pageComponent.clientHeight / 2 - (fieldData.height as number) / 2\n : 0;\n\n setFieldCreateAction({\n ...fieldData,\n pageNumber: (closestPage?.index || 0) + 1,\n coordinateX: pageCenterX,\n coordinateY: pageCenterY,\n style: {\n ...fieldData.style,\n left: pageComponent?.offsetLeft + pageCenterX,\n top: pageComponent?.offsetTop + pageCenterY,\n },\n createType: FieldCreateType.COPY,\n });\n }\n }, [\n clipboard,\n findPageClosestToCenter,\n focusedFieldId,\n getFieldPageComponent,\n setFieldCreateAction,\n ]);\n\n const handleKeydown = useCallback(\n (event: KeyboardEvent) => {\n if (isModalOpen) {\n return;\n }\n\n if (\n isAbleToDeleteLastInteractedField &&\n (event.key === 'Backspace' || event.key === 'Delete')\n ) {\n return deleteLastInteractedField();\n }\n\n if (event.metaKey || event.ctrlKey) {\n switch (event.key.toLocaleLowerCase()) {\n case 'c': {\n return copyDocumentField();\n }\n case 'v': {\n return pasteDocumentField();\n }\n case 'z': {\n if (event.shiftKey) {\n return redoDocumentFieldAction();\n }\n return undoDocumentFieldAction();\n }\n }\n }\n },\n [\n isAbleToDeleteLastInteractedField,\n copyDocumentField,\n deleteLastInteractedField,\n isModalOpen,\n pasteDocumentField,\n redoDocumentFieldAction,\n undoDocumentFieldAction,\n ],\n );\n\n useEffect(() => {\n window.addEventListener('keydown', handleKeydown);\n\n return () => window.removeEventListener('keydown', handleKeydown);\n }, [handleKeydown]);\n\n const fieldShapeContainerRef = useRef(null);\n\n const handleRemoveFieldShape = useCallback(() => {\n if (\n fieldShapeContainerRef.current &&\n fieldShapeContainerRef.current.classList.contains('invalid') &&\n setFieldShapeExist &&\n !isMobile\n ) {\n ReactDOM.unmountComponentAtNode(fieldShapeContainerRef.current);\n setFieldShapeExist(false);\n setSelectedFieldType(undefined);\n }\n }, [isMobile]);\n\n const handleCreateFieldShape = useCallback(\n (event: any, type: DocumentFieldTypes, renderShape?: boolean) => {\n event.stopPropagation();\n\n if (fieldShapeContainerRef.current && !renderShape) {\n return ReactDOM.unmountComponentAtNode(fieldShapeContainerRef.current);\n }\n\n handleRemoveFieldShape();\n\n if (fieldShapeContainerRef.current && renderShape && type !== selectedFieldType) {\n fieldShapeContainerRef.current.style.top = `${event.clientY}px`;\n fieldShapeContainerRef.current.style.left = `${event.clientX}px`;\n\n !isMobile &&\n ReactDOM.render(\n ,\n fieldShapeContainerRef.current,\n );\n\n setSelectedFieldType(type);\n setFieldShapeExist(true);\n }\n },\n [documentScale, handleRemoveFieldShape, isMobile, selectedFieldType, selectedScale],\n );\n\n const handleMouseMoveWithFieldShape = useCallback(e => {\n if (fieldShapeContainerRef.current) {\n fieldShapeContainerRef.current.style.top = `${e.y}px`;\n fieldShapeContainerRef.current.style.left = `${e.x}px`;\n }\n }, []);\n\n useEffect(() => {\n const callback = _.throttle(handleMouseMoveWithFieldShape, 20);\n\n if (fieldShapeContainerRef.current && isFieldShapeExist) {\n window.addEventListener('mousemove', callback);\n window.addEventListener('click', handleRemoveFieldShape);\n }\n\n return () => {\n window.removeEventListener('mousemove', callback);\n window.removeEventListener('click', handleRemoveFieldShape);\n };\n }, [\n handleMouseMoveWithFieldShape,\n handleRemoveFieldShape,\n isFieldShapeExist,\n fieldShapeContainerRef,\n ]);\n\n const handleApplyFontToEachField = (fontFamily: string, fontSize: number) => {\n documentFields.forEach(field => {\n updateDocumentField(\n {\n ...field,\n fixedFontSize: true,\n fontFamily: fontFamily,\n fontSize: fontSize,\n style: {\n fontFamily: fontFamilyByValue[fontFamily],\n fontSize: fontSize,\n },\n },\n {\n pushToHistory: true,\n },\n );\n });\n };\n\n const validateTag = useCallback(\n (id: string, tag: string) => {\n if (tag) {\n const fieldWithSameTag = documentFields.find(\n field => field.tag === tag && field.id !== id,\n );\n return !fieldWithSameTag;\n }\n\n return true;\n },\n [documentFields],\n );\n\n const handleUndoDocumentFieldAction = useCallback(() => {\n undoDocumentFieldAction();\n }, [undoDocumentFieldAction]);\n\n const handleRedoDocumentFieldAction = useCallback(() => {\n redoDocumentFieldAction();\n }, [redoDocumentFieldAction]);\n\n const handlePdfDocumentLoadSuccess = useCallback(\n (pdfDocumentFile: string, pdfDocumentProxy) => {\n const pagesNumbers: number[] = [];\n for (let i = 1; i <= pdfDocumentProxy.numPages; i++) {\n pagesNumbers.push(i);\n }\n\n setPagesPerDocument(prevState => {\n const newState = {\n ...prevState,\n [pdfDocumentFile]: pagesNumbers,\n };\n\n return newState;\n });\n },\n [],\n );\n\n const getPreviousPagesCount = useCallback(\n currentPdfDocumentFileIdx => {\n const previousPdfDocuments = pdfDocumentFiles.slice(0, currentPdfDocumentFileIdx);\n const pagesCounts = previousPdfDocuments.map(key => pagesPerDocument[key]);\n return pagesCounts.reduce((a, b) => a + b.length, 0);\n },\n [pagesPerDocument, pdfDocumentFiles],\n );\n\n const getAbsolutePageNumber = useCallback(\n (pdfDocumentFileIdx: number, pageNumber: number) => {\n return getPreviousPagesCount(pdfDocumentFileIdx) + pageNumber;\n },\n [getPreviousPagesCount],\n );\n\n let pdfDocumentFilesCount = 0;\n\n return (\n \n \n {isDocumentInteractLoading ? (\n \n ) : (\n
    \n \n
    \n \n
    \n
    \n \n {\n if (fieldShapeContainerRef.current) {\n fieldShapeContainerRef.current.classList.remove('invalid');\n }\n }}\n onMouseLeave={() => {\n if (fieldShapeContainerRef.current) {\n fieldShapeContainerRef.current.classList.add('invalid');\n }\n }}\n ref={pagesContainerRef}\n >\n {pdfDocumentFiles.map((pdfDocumentFile, pdfDocumentFileIdx) => (\n }\n onLoadSuccess={proxy =>\n handlePdfDocumentLoadSuccess(pdfDocumentFile, proxy)\n }\n >\n {isAllPdfFilesLoaded &&\n pagesPerDocument[pdfDocumentFile].map(pageNumber => (\n \n handlePageRendered(\n getAbsolutePageNumber(pdfDocumentFileIdx, pageNumber),\n )\n }\n onDrop={event =>\n handleFieldDropOnPage(\n event,\n getAbsolutePageNumber(pdfDocumentFileIdx, pageNumber),\n )\n }\n onTap={event =>\n handlePageTap(\n event,\n getAbsolutePageNumber(pdfDocumentFileIdx, pageNumber),\n )\n }\n />\n ))}\n \n ))}\n
    \n {documentFields\n .filter(field => !isEmpty(field.style))\n .map(field => (\n \n ))}\n
    \n
    \n
    \n
    \n

    \n Pages ({totalPagesCount})\n

    \n
      \n {pdfDocumentFiles.map((pdfDocumentFile, pdfDocumentFileIdx) => (\n \n {isAllPdfFilesLoaded &&\n pagesPerDocument[pdfDocumentFile].map(pageNumber => (\n \n documentField.pageNumber ===\n getAbsolutePageNumber(pdfDocumentFileIdx, pageNumber),\n )}\n navigateToPage={() =>\n navigateToPage(\n getAbsolutePageNumber(pdfDocumentFileIdx, pageNumber),\n )\n }\n />\n ))}\n \n ))}\n
    \n
    \n \n \n )}\n
    \n );\n}\n\nexport default InteractModalOld;\n","import { PDFMetadata } from 'Interfaces/Common';\nimport { Document } from 'Interfaces/Document';\nimport _ from 'lodash';\nimport { useCallback } from 'react';\n\nexport default (currentDocument: Document) => {\n const getPdfMetadata = useCallback(() => {\n const parts = currentDocument?.parts || [];\n const mergedMetadata = {};\n\n const metadatas = _.orderBy(parts, 'order').reduce((mergedMetadata, part) => {\n const pdfMetadata = part.pdfMetadata || {};\n\n const partMetadata = Object.keys(pdfMetadata)\n .filter(key => key !== 'pages')\n .map(key => pdfMetadata[key]);\n\n return [...mergedMetadata, ...partMetadata];\n }, [] as PDFMetadata[]);\n\n metadatas.forEach((v, i) => {\n mergedMetadata[i + 1] = {\n ...v,\n pageNumber: i + 1,\n };\n });\n\n mergedMetadata['pages'] = metadatas.length;\n\n return mergedMetadata as PDFMetadata;\n }, [currentDocument]);\n\n return getPdfMetadata;\n};\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { Field, FormRenderProps } from 'react-final-form';\nimport { FieldArray } from 'react-final-form-arrays';\nimport _ from 'lodash';\n\nimport { getDocumentValidationMeta } from 'Hooks/Document/useDocumentValidation';\nimport { callActionAsync, composeValidators, isNotEmpty } from 'Utils/functions';\nimport {\n email,\n maxLength100,\n maxLength50,\n messageNotUrlProtocol,\n multipleAttachingMailFilesConstaint,\n multipleAttachingMailFilesConstaintOnCancel,\n multipleFilesConstaint,\n notOnlySpaces,\n required,\n titleNotUrlProtocol,\n} from 'Utils/validation';\n\nimport FieldTextInput from 'Components/FormFields/FieldTextInput';\nimport FieldTextArea from 'Components/FormFields/FieldTextArea';\nimport EmailRecipientsArray from 'Components/FormFields/EmailRecipientsArray';\nimport SignersArray from 'Components/FormFields/SignersArray';\nimport { FieldCheckbox } from 'Components/FormFields';\nimport FileField from './FileField';\n\nimport {\n Document,\n DocumentActions,\n DocumentFileUploadResponse,\n DocumentStatuses,\n DocumentTypes,\n DocumentValues,\n} from 'Interfaces/Document';\nimport UISelect from 'Components/UIComponents/UISelect';\nimport Toast from 'Services/Toast';\nimport {\n useDocumentConvertionProgressWatcher,\n useDocumentCreate,\n useDocumentCreateByExistTemplate,\n useDocumentDelete,\n useDocumentFileDataClean,\n useDocumentUpdate,\n useDocumentUpload,\n} from 'Hooks/Document';\nimport { useModal } from 'Hooks/Common';\nimport { useSelector } from 'react-redux';\nimport { selectActiveTemplates, selectUser, selectUserPlan } from 'Utils/selectors';\nimport { DocumentItem, FileItem } from 'Interfaces/Common';\nimport uuid from 'uuid/v4';\nimport { PlanTypes } from 'Interfaces/Billing';\nimport InteractModalOld from 'Components/Interact/InteractModalOld';\nimport History from 'Services/History';\nimport { removeEmptyCharacters } from 'Utils/formatters';\n\ninterface DocumentFormProps extends FormRenderProps {\n initialValues: DocumentValues;\n onDocumentCreate: (id: string) => void;\n onTemplateSelect?: (templateId: Document['id'] | undefined) => void;\n onTemplateEdit?: (values: DocumentValues) => void;\n document?: Document;\n submitButtonTitle?: string;\n isDocumentsLoading?: boolean;\n}\n\nconst DocumentForm = ({\n values,\n form,\n errors,\n handleSubmit,\n submitting,\n initialValues,\n onDocumentCreate,\n onTemplateSelect,\n document,\n isDocumentsLoading,\n}: DocumentFormProps) => {\n const [createDocument] = useDocumentCreate();\n const [fileSubmitting, setFileSubmitting] = useState(false);\n const [updateDocument, isDocumentUpdating] = useDocumentUpdate();\n const [isFileProcessed, setIsFileProcessed] = useState(\n document?.parts?.length && !!document?.parts.every(part => part.filesUploaded),\n );\n const [createDocumentByExistTemplate] = useDocumentCreateByExistTemplate();\n const [isConverting, setIsConverting] = useState(false);\n const [\n startWatchDocumentConvertionProgress,\n stopWatchDocumentConvertionProgress,\n ] = useDocumentConvertionProgressWatcher();\n const [cleanFileData, isCleanFileData] = useDocumentFileDataClean();\n\n const templates = useSelector(selectActiveTemplates);\n const documentId = useMemo(() => document?.id, [document]);\n const initialDocumentFiles = useMemo(() => {\n if (document) {\n const fileItems = document.parts.map(part => ({\n id: part.id,\n token: uuid(),\n filename: part.originalFileName,\n isUploaded: false,\n isFinished: part.filesUploaded,\n order: part.order,\n errorText: part.errorText,\n }));\n\n return _.orderBy(fileItems, 'order');\n }\n\n return [];\n }, [document]);\n const [files, setFiles] = useState(initialDocumentFiles);\n const [tokenInUploading, setTokenInUploading] = useState(null);\n const [isShowWarning, setShowWarning] = useState(false);\n\n const [uploadDocument, cancelUpload, isUploading] = useDocumentUpload();\n const userPlan = useSelector(selectUserPlan);\n const user = useSelector(selectUser);\n\n const isDocumentContainRestrictedUrl = useMemo(\n () =>\n errors.title === 'Title should not contain url' ||\n errors.message === 'Message should not contain url',\n [errors.title, errors.message],\n );\n\n const {\n isBasedOnTemplate,\n isTemplate,\n isEdit,\n isWithOthers,\n isMeAndOthersType,\n isSignersVisible,\n isOnlyMeType,\n } = useMemo(\n () => ({\n isBasedOnTemplate: !!values.templateId,\n isTemplate:\n initialValues.type === DocumentTypes.TEMPLATE ||\n initialValues.type === DocumentTypes.FORM_REQUEST,\n isEdit: History.location.pathname.indexOf('edit') !== -1,\n isWithOthers:\n initialValues.type === DocumentTypes.ME_AND_OTHER ||\n initialValues.type === DocumentTypes.OTHERS,\n\n isSignersVisible: [\n DocumentTypes.ME_AND_OTHER,\n DocumentTypes.OTHERS,\n DocumentTypes.TEMPLATE,\n DocumentTypes.FORM_REQUEST,\n ].includes(initialValues.type),\n isMeAndOthersType: initialValues.type === DocumentTypes.ME_AND_OTHER,\n isOnlyMeType: initialValues.type === DocumentTypes.ME,\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [values],\n );\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const initialType = useMemo(() => initialValues.type, []);\n\n const [showInteractModal, closeInteractModal] = useModal(() => {\n if (documentId) {\n return (\n \n );\n }\n\n return null;\n }, [documentId, submitting]);\n\n const selectableOptions = useMemo(\n () =>\n templates\n ? templates.map(template => ({\n value: template.id,\n label: template.title,\n }))\n : [],\n [templates],\n );\n\n const filterFormEmptyLists = useCallback(\n (values: DocumentValues): DocumentValues => ({\n ...values,\n signers: values.signers?.filter((signer, index) => {\n const { role } = signer || {};\n\n return isTemplate\n ? role?.trim()\n : signer?.isPreparer ||\n (form.getFieldState(`signers[${index}].email`)?.valid &&\n form.getFieldState(`signers[${index}].name`)?.valid);\n }),\n recipients: values.recipients?.filter(\n (recipient, index) => form.getFieldState(`recipients[${index}]email`)?.valid,\n ),\n }),\n [isTemplate, form],\n );\n\n useEffect(() => {\n if (isConverting && document) {\n setFiles(prev =>\n prev.map(fileItem => {\n const documentPart = document.parts.find(part => part.id === fileItem.id);\n if (documentPart?.errorText && !documentPart.pdfMetadata) {\n return {\n ...fileItem,\n errorText: documentPart.errorText,\n };\n }\n if (documentPart && documentPart.files && documentPart.pdfMetadata) {\n const nextProgress =\n (documentPart.files?.length / documentPart.pdfMetadata.pages) * 50 + 50;\n\n return {\n ...fileItem,\n progress: nextProgress,\n isFinished: documentPart.filesUploaded ?? nextProgress === 100,\n errorText: documentPart.errorText,\n };\n }\n\n return fileItem;\n }),\n );\n }\n }, [document, isConverting]);\n\n useEffect(() => {\n return () => stopWatchDocumentConvertionProgress();\n }, [stopWatchDocumentConvertionProgress]);\n\n useEffect(() => {\n if (document) {\n const isFilesProcessed =\n document.parts.length &&\n document.parts.every(part => part.filesUploaded) &&\n files.every(file => file.isFinished);\n\n setIsFileProcessed(isFilesProcessed);\n }\n }, [document, files]);\n\n useEffect(() => {\n const isFilesComplete =\n document?.parts.length &&\n document?.parts.every(part => part.filesUploaded) &&\n files.every(file => file.isFinished);\n\n if (isFilesComplete) {\n setIsConverting(false);\n stopWatchDocumentConvertionProgress();\n }\n }, [\n document,\n files,\n isFileProcessed,\n setIsFileProcessed,\n stopWatchDocumentConvertionProgress,\n ]);\n\n const handleUploadCancelAll = useCallback(async () => {\n try {\n if (document) {\n cancelUpload();\n setIsConverting(false);\n setIsFileProcessed(false);\n stopWatchDocumentConvertionProgress();\n\n setFiles([]);\n\n await cleanFileData({\n documentId: document.id,\n });\n }\n } catch (err) {\n Toast.error('Failed to remove files');\n }\n }, [cancelUpload, cleanFileData, document, stopWatchDocumentConvertionProgress]);\n\n const handleUploadError = useCallback(async () => {\n setIsConverting(false);\n setIsFileProcessed(false);\n stopWatchDocumentConvertionProgress();\n setFiles([]);\n }, [setIsFileProcessed, stopWatchDocumentConvertionProgress]);\n\n const handleTemplateSelect = useCallback(\n async (value?: string | number) => {\n onTemplateSelect && onTemplateSelect(value as string | undefined);\n\n if (value) {\n const currentTemplate = templates.find(template => template.id === value);\n\n if (!values.title) {\n form.change('title', currentTemplate?.title);\n }\n if (!values.message) {\n form.change('message', currentTemplate?.message);\n }\n\n const storeSigners = _.orderBy(\n form.getFieldState('signers')?.value,\n 'order',\n 'asc',\n );\n const templateSigners = _.orderBy(currentTemplate?.signers, 'order', 'asc');\n\n const mergedSigners = templateSigners?.map((signer, i) => ({\n ...storeSigners[i],\n role: signer.role,\n order: signer.order,\n }));\n\n form.change('signers', mergedSigners);\n\n await handleUploadCancelAll();\n } else if (!isTemplate) {\n const storedSigners = form.getFieldState('signers')?.value;\n\n if (!storedSigners) return;\n\n const signersWithoutRole = storedSigners\n ?.map(signer => ({\n ...signer,\n role: undefined,\n }))\n .filter(signer => signer.email || signer.name || signer.order < 2);\n\n const requiredSignersCount = initialType === DocumentTypes.OTHERS ? 2 : 3;\n if (signersWithoutRole.length < requiredSignersCount) {\n signersWithoutRole.push({ order: 2 });\n }\n\n form.change('signers', _.orderBy(signersWithoutRole, 'order', 'asc'));\n }\n },\n [\n initialType,\n form,\n handleUploadCancelAll,\n isTemplate,\n onTemplateSelect,\n templates,\n values.message,\n values.title,\n ],\n );\n\n const uploadDocumentPart = useCallback(\n async (fileItem: DocumentItem) => {\n try {\n if (isUploading || !fileItem.file) {\n return;\n }\n let doc = document;\n\n if (!doc) {\n doc = (await createDocument(filterFormEmptyLists(values))) as Document;\n onDocumentCreate(doc.id);\n }\n const uploadResponse = await uploadDocument({\n documentId: doc.id,\n file: fileItem.file,\n });\n\n if (isNotEmpty(uploadResponse) && !isConverting) {\n startWatchDocumentConvertionProgress({ documentId: doc.id });\n setIsConverting(true);\n }\n\n setFiles(prev =>\n prev.map(item => {\n if (item.token !== fileItem.token) {\n return item;\n }\n\n const { documentPart } = uploadResponse as DocumentFileUploadResponse;\n\n return {\n ...item,\n isUploaded: true,\n progress: 50,\n id: documentPart?.id,\n order: documentPart?.order,\n };\n }),\n );\n\n setTokenInUploading(null);\n } catch (err) {\n await handleUploadError();\n Toast.handleErrors(err);\n }\n },\n [\n createDocument,\n document,\n filterFormEmptyLists,\n handleUploadError,\n isConverting,\n isUploading,\n onDocumentCreate,\n startWatchDocumentConvertionProgress,\n uploadDocument,\n values,\n ],\n );\n\n const handleFileUpload = useCallback(\n async (file: File) => {\n const documentFiles = files.map(item => item.file);\n const error = multipleFilesConstaint([...documentFiles, file]);\n const isLimitAttachedMailFiles = multipleAttachingMailFilesConstaint(files, file);\n\n if (!error) {\n const newFileItem = {\n filename: file.name,\n token: uuid(),\n progress: 10,\n isUploaded: false,\n isFinished: false,\n file,\n };\n setFiles(prev => prev.concat([newFileItem]));\n await handleTemplateSelect(undefined);\n } else {\n Toast.error(error);\n }\n\n if (isLimitAttachedMailFiles) {\n setShowWarning(isLimitAttachedMailFiles);\n }\n },\n [files, handleTemplateSelect],\n );\n\n const handleFileUploadFailure = useCallback(error => {\n // setProgress(0);\n // Toast.handleErrors(error);\n }, []);\n\n const handleFilesReorder = useCallback(\n async (newOrdered: FileItem[]) => {\n try {\n if (document) {\n setFiles(_.orderBy(newOrdered, 'order'));\n\n const reorderedDocumentParts = document?.parts\n .filter(part =>\n newOrdered.find(newOrderedItem => newOrderedItem.id === part.id),\n )\n .map(part => {\n const orderItem = newOrdered.find(order => order.id === part.id);\n return orderItem ? { id: part.id, order: orderItem.order } : part;\n });\n\n await updateDocument({\n values: {\n parts: reorderedDocumentParts,\n documentId: document.id,\n type: document.type,\n },\n });\n }\n } catch (err) {\n Toast.handleErrors(err);\n }\n },\n [document, updateDocument],\n );\n\n const handleUploadCancel = useCallback(\n async (fileItem: FileItem) => {\n try {\n if (document?.parts?.findIndex(part => part.id === fileItem.id) === -1) {\n return;\n }\n\n let updatedDocument = document;\n\n if (fileItem.id && document) {\n updatedDocument = (await cleanFileData({\n documentId: document.id,\n documentPartId: fileItem.id,\n })) as Document;\n\n form.change('parts', updatedDocument.parts);\n }\n\n const isEmpty = !files.filter(file => file.token !== fileItem.token).length;\n\n const isLimitAttachedMailFiles = multipleAttachingMailFilesConstaintOnCancel(\n files,\n fileItem.file?.size,\n );\n\n if (isEmpty) {\n setIsConverting(false);\n setIsFileProcessed(false);\n stopWatchDocumentConvertionProgress();\n }\n\n if (!isLimitAttachedMailFiles) {\n setShowWarning(isLimitAttachedMailFiles);\n }\n\n setFiles(prev => prev.filter(file => file.token !== fileItem.token));\n } catch (error) {\n Toast.error('Failed to remove file');\n }\n },\n [cleanFileData, document, files, form, stopWatchDocumentConvertionProgress],\n );\n\n useEffect(() => {\n const nextUploadItem = files.find(file => !file.isUploaded && !file.isFinished);\n if (!tokenInUploading && nextUploadItem) {\n setTokenInUploading(nextUploadItem.token);\n uploadDocumentPart(nextUploadItem);\n }\n }, [files, tokenInUploading, uploadDocumentPart]);\n\n const documentPrepareValidationMeta = useMemo(\n () => getDocumentValidationMeta(initialValues.type),\n [initialValues.type],\n );\n\n const handleDocumentPrepare = useCallback(\n async (values: DocumentValues) => {\n const { errors, hasValidationErrors, hasSubmitErrors } = form.getState();\n\n if (hasValidationErrors || hasSubmitErrors) {\n if (errors.signers && values.signers) {\n const actualSigners = values.signers.filter(\n (signer, index) =>\n signer &&\n (isOnlyMeType || !signer.isPreparer) &&\n form.getFieldState(`signers[${index}].email`)?.valid &&\n form.getFieldState(`signers[${index}].name`)?.valid,\n );\n\n if (actualSigners.length < documentPrepareValidationMeta.signers.minLength) {\n return documentPrepareValidationMeta.signers.showMessage();\n }\n }\n return form.submit();\n }\n\n if (!_.isEqual(values, initialValues)) {\n const document = await updateDocument({\n values: {\n ...filterFormEmptyLists(values),\n documentId: documentId as string,\n },\n });\n\n if (!isNotEmpty(document)) return;\n\n const actualSigners = document.signers.filter(\n signer => isOnlyMeType || !signer.isPreparer,\n );\n\n if (actualSigners.length < documentPrepareValidationMeta.signers.minLength) {\n return documentPrepareValidationMeta.signers.showMessage();\n }\n\n form.change('signers', _.orderBy(document.signers, 'order', 'asc'));\n }\n\n showInteractModal();\n },\n [\n documentId,\n documentPrepareValidationMeta.signers,\n filterFormEmptyLists,\n form,\n initialValues,\n isOnlyMeType,\n showInteractModal,\n updateDocument,\n ],\n );\n\n const { documentButtonTitle, defaultSubmitButtonTitle } = isWithOthers\n ? {\n documentButtonTitle: 'Prepare Doc for Signing',\n defaultSubmitButtonTitle: 'Send Document',\n }\n : {\n documentButtonTitle: isTemplate ? 'Fill Template' : 'Fill Out & Sign',\n defaultSubmitButtonTitle: isTemplate\n ? initialValues.type === DocumentTypes.TEMPLATE\n ? 'Create Template'\n : 'Create Form'\n : 'Send Document',\n };\n\n const { title, titlePlaceholder, messagePlaceholder } = useMemo(() => {\n switch (initialValues.type) {\n case DocumentTypes.TEMPLATE:\n return {\n title: 'Template Name',\n titlePlaceholder: 'A template name to identify your template.',\n messagePlaceholder:\n 'Add an optional message for all future documents created using this template.',\n };\n case DocumentTypes.FORM_REQUEST:\n return {\n title: 'Form Name',\n titlePlaceholder: 'A form name to identify your form.',\n messagePlaceholder:\n 'Add an optional message for all future documents created using this form.',\n };\n default:\n return {\n title: 'Document Title',\n titlePlaceholder: 'A document title to identify your document.',\n messagePlaceholder: 'Add an optional message for the document signers.',\n };\n }\n }, [initialValues.type]);\n\n const firstSignerIndex = useMemo(() => {\n const signerIndex = initialValues?.signers?.findIndex(signer => signer?.order === 1);\n return signerIndex && signerIndex !== -1 ? signerIndex : 0;\n }, [initialValues]);\n\n const handleFileSubmit = useCallback(async () => {\n try {\n await callActionAsync(handleDocumentPrepare, values, setFileSubmitting);\n } catch (error) {\n Toast.handleErrors(error);\n }\n }, [handleDocumentPrepare, values]);\n\n const handleTemplateEditPrepare = useCallback(\n async (values: DocumentValues) => {\n if (form.getState().hasValidationErrors || form.getState().hasSubmitErrors) {\n return form.submit();\n }\n\n const document = (await createDocumentByExistTemplate({\n ...values,\n id: documentId as string,\n })) as Document;\n onDocumentCreate(document.id);\n\n return showInteractModal();\n },\n [\n form,\n documentId,\n onDocumentCreate,\n showInteractModal,\n createDocumentByExistTemplate,\n ],\n );\n\n const handleTemplateEdit = useCallback(async () => {\n try {\n await callActionAsync(handleTemplateEditPrepare, values, setFileSubmitting);\n } catch (error) {\n Toast.handleErrors(error);\n }\n }, [handleTemplateEditPrepare, values]);\n\n return (\n
    \n
    \n (\n required,\n notOnlySpaces,\n maxLength100,\n titleNotUrlProtocol,\n )}\n />\n Optional Message

    }\n component={FieldTextArea}\n placeholder={messagePlaceholder}\n validate={\n userPlan.type === PlanTypes.FREE && !user.teamId\n ? composeValidators(messageNotUrlProtocol)\n : undefined\n }\n parse={message => message || null}\n />\n\n {initialValues.type === DocumentTypes.TEMPLATE &&\n initialValues.status === DocumentStatuses.DRAFT && (\n
    \n \n
    \n )}\n
    \n
    \n {isSignersVisible && (\n <>\n {isMeAndOthersType && !isTemplate && (\n
    \n

    Signers

    \n
    \n (value ? `Me (${value})` : 'Me')}\n disabled\n />\n \n
    \n
    \n )}\n {initialValues.type !== DocumentTypes.FORM_REQUEST && (\n
    \n {isTemplate ? (\n <>\n

    \n Create Template Roles\n

    \n (\n (\n (\n required,\n notOnlySpaces,\n maxLength50,\n )}\n />\n )}\n />\n )}\n isItemDeletablePredicate={({ fields }) => fields.length > 1}\n />\n \n ) : (\n <>\n

    \n {isMeAndOthersType ? 'Add Other Signers' : 'Choose Signers'}\n

    \n (\n \n !!fields.length &&\n fields.length > (isMeAndOthersType ? 3 : 2) &&\n !isBasedOnTemplate\n }\n renderFields={name => (\n <>\n (\n required,\n notOnlySpaces,\n )}\n />\n (required, email)}\n />\n \n )}\n />\n )}\n isOrdered={values.isOrdered && !isBasedOnTemplate}\n />\n \n )}\n {!isBasedOnTemplate && (\n
    \n \n
    \n )}\n
    \n )}\n \n )}\n\n {initialValues.type !== DocumentTypes.TEMPLATE &&\n initialValues.type !== DocumentTypes.FORM_REQUEST && (\n <>\n

    Choose Template

    \n (\n 0}\n />\n )}\n />\n\n

    Or

    \n \n )}\n \n
    \n\n {!isTemplate && (\n
    \n

    Add Viewers

    \n \n
    \n )}\n
    \n );\n};\n\nexport default DocumentForm;\n","import { useEffect } from 'react';\nimport { useAsyncAction } from 'Hooks/Common';\nimport {\n useDocumentFieldsMetaChange,\n useDocumentFieldStyleSet,\n} from 'Hooks/DocumentFields';\nimport { NormalizedEntity, PDFMetadata } from 'Interfaces/Common';\nimport { Requisite } from 'Interfaces/Requisite';\nimport { DocumentFilesGetPayload } from 'Hooks/Document/useDocumentFilesGet';\nimport { Document } from 'Interfaces/Document';\nimport { useRequisitesGet } from 'Hooks/Requisite';\nimport { useCompatibleSignedGetUrl } from '../User';\nimport { isNotEmpty } from 'Utils/functions';\n\nexport default (document?: Document) => {\n const [setDocumentFieldsMeta, cleanDocumentFieldsMeta] = useDocumentFieldsMetaChange();\n const [getUserRequisites] = useRequisitesGet();\n const [getCompatibleSignedGetUrl] = useCompatibleSignedGetUrl();\n const setDocumentFieldStyle = useDocumentFieldStyleSet();\n\n useEffect(() => {\n if (!document) return () => {};\n\n setDocumentFieldsMeta({ currentDocumentId: document.id });\n document.fields.forEach(documentField =>\n setDocumentFieldStyle(documentField, document.pdfMetadata as PDFMetadata),\n );\n\n return () => cleanDocumentFieldsMeta();\n }, [cleanDocumentFieldsMeta, document, setDocumentFieldStyle, setDocumentFieldsMeta]);\n\n return useAsyncAction((payload?: Omit) => {\n if (!document) return [];\n\n const fileKey =\n isNotEmpty(document.files) && document.files && document.files[0].fileKey;\n const key = fileKey ? fileKey : (document.pdfFileKey as string);\n\n // @ts-ignore\n return Promise.all([\n getCompatibleSignedGetUrl({ key, pdfFileKey: document.pdfFileKey }),\n getUserRequisites(undefined),\n ]).then(res => res.flat()) as [\n { result: string },\n string[],\n {} | NormalizedEntity,\n ];\n });\n};\n","import { useDispatch } from 'react-redux';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { $actions } from 'Store';\nimport { CompatibleSignedUrlPayload } from 'Interfaces/Common';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: CompatibleSignedUrlPayload) =>\n $actions.user.getCompatibleSignedGetUrl(dispatch, payload),\n );\n};\n","import { useCallback } from 'react';\nimport { DocumentField } from 'Interfaces/DocumentFields';\nimport useDocumentFieldUpdateLocally from './useDocumentFieldUpdateLocally';\nimport { PDFMetadata } from 'Interfaces/Common';\n\ninterface SetDocumentFieldStyles {\n (documentField: DocumentField, documentMetadata: PDFMetadata): void;\n}\n\nexport default () => {\n const updateDocumentFieldLocally = useDocumentFieldUpdateLocally();\n\n const setDocumentFieldsStyles: SetDocumentFieldStyles = useCallback(\n (documentField: DocumentField, documentMetadata: PDFMetadata) => {\n const greaterPageWidth = Object.values(documentMetadata).reduce(\n (greaterWidth, pageMetadata) => {\n return greaterWidth < pageMetadata.width ? pageMetadata.width : greaterWidth;\n },\n 0,\n );\n\n const pageOffset =\n (greaterPageWidth - documentMetadata[documentField.pageNumber].width) / 2 || 0;\n\n const updatedField = {\n ...documentField,\n style: {\n ...documentField.style,\n width: documentField.width as number,\n height: documentField.height as number,\n left: documentField.coordinateX + pageOffset,\n top: documentField.coordinateY,\n fontFamily: documentField.fontFamily || undefined,\n fontSize: documentField.fontSize ? documentField.fontSize : undefined,\n },\n };\n\n updateDocumentFieldLocally(updatedField);\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [updateDocumentFieldLocally],\n );\n\n return setDocumentFieldsStyles;\n};\n","import { useDispatch } from 'react-redux';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { $actions } from 'Store';\nimport { DocumentIdPayload } from 'Interfaces/Document';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: DocumentIdPayload) =>\n $actions.documentSign.sendDocumentOut(dispatch, payload),\n );\n};\n","import { useCallback } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { SignerIdPayload } from 'Interfaces/Document';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { $actions, rootActions } from 'Store';\n\nexport default () => {\n const dispatch = useDispatch();\n\n const [request, isExecuting] = useAsyncAction((payload: SignerIdPayload) =>\n $actions.documentSign.getDocumentConvertionStatus(dispatch, payload),\n );\n\n const cancel = useCallback(() => {\n dispatch(rootActions.documentSign.getDocumentConvertionStatus.cancel(undefined, {}));\n }, [dispatch]);\n\n return [request, cancel, isExecuting] as const;\n};\n","import { useCallback, useState, useEffect } from 'react';\nimport { SignedUrlResponse } from 'Interfaces/Common';\nimport { Document, DocumentDownloadPayload } from 'Interfaces/Document';\nimport { useDownloadFileByUrl } from 'Hooks/Requisite';\nimport { usePrint } from 'Hooks/Common';\nimport { useDocumentDownloadUrlGet } from 'Hooks/Document';\n\ninterface PrintDocument {\n (payload: DocumentDownloadPayload): void;\n}\n\nexport default (documentItem: Document) => {\n const [getDocumentDownloadUrl] = useDocumentDownloadUrlGet();\n const [isDocumentUpdated, setIsDocumentUpdated] = useState(false);\n const [pdfUrl, setPdfUrl] = useState();\n const [downloadFile, isDownloading] = useDownloadFileByUrl();\n const printFile = usePrint();\n\n useEffect(() => {\n setIsDocumentUpdated(true);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [documentItem]);\n\n const handleGetUrl = useCallback(\n async (payload: DocumentDownloadPayload): Promise => {\n if (isDocumentUpdated) {\n const signedUrlResponse = (await getDocumentDownloadUrl(\n payload,\n )) as SignedUrlResponse;\n\n let file = await downloadFile(signedUrlResponse.result);\n file = file.slice(0, file.size, 'application/pdf');\n\n const url = URL.createObjectURL(file);\n\n setPdfUrl(URL.createObjectURL(file));\n setIsDocumentUpdated(false);\n\n return url;\n }\n\n return pdfUrl as string;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n },\n [downloadFile, getDocumentDownloadUrl, isDocumentUpdated, pdfUrl],\n );\n\n const handlePrintFile = useCallback(\n async (payload: DocumentDownloadPayload) => {\n const url = await handleGetUrl(payload);\n\n printFile(url);\n },\n [handleGetUrl, printFile],\n );\n\n return [handlePrintFile, isDownloading] as [PrintDocument, boolean];\n};\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { SigningUrlGetPayload } from 'Interfaces/Document';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: SigningUrlGetPayload) =>\n $actions.documentSign.getSigningUrl(dispatch, payload),\n );\n};\n","import React, { useCallback, useEffect, useMemo } from 'react';\nimport { ReactSVG } from 'react-svg';\nimport { capitalize } from 'lodash';\nimport classNames from 'classnames';\nimport History from 'Services/History';\nimport Toast from 'Services/Toast';\nimport { useDocumentDownload } from 'Hooks/Document';\nimport {\n useDocumentConvertionStatusWatcher,\n useDocumentSignPrint,\n} from 'Hooks/DocumentSign';\nimport { Document, DocumentTypes } from 'Interfaces/Document';\n\nimport UIModal from 'Components/UIComponents/UIModal';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport UISpinner from 'Components/UIComponents/UISpinner';\n\nimport CircleSuccessIcon from 'Assets/images/icons/circle-success.svg';\nimport DownloadIcon from 'Assets/images/icons/download-icon.svg';\nimport PrintIcon from 'Assets/images/icons/print-icon.svg';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport { AuthorizedRoutePaths } from 'Interfaces/RoutePaths';\n\ninterface SuccessSendModalProps {\n onClose?: () => void;\n document: Document;\n onConfirm?: () => void;\n isTemplate?: boolean;\n isDisableActionPanel?: boolean;\n}\n\nconst SuccessSendModal = ({\n onClose,\n document,\n onConfirm,\n isTemplate,\n isDisableActionPanel,\n}: SuccessSendModalProps) => {\n const [printPdf, isPdfLoading] = useDocumentSignPrint(document);\n const [\n downloadDocument,\n isDownloadingDocument,\n isDownloadReady,\n ] = useDocumentDownload();\n\n const [\n watchDocumentConvertionStatus,\n watchDocumentConvertionStatusCancel,\n isWatcherExecuting,\n ] = useDocumentConvertionStatusWatcher();\n\n const isMobile = useIsMobile();\n\n const documentType = useMemo(\n () =>\n isTemplate\n ? document.type === DocumentTypes.FORM_REQUEST\n ? 'form'\n : 'template'\n : 'document',\n [document.type, isTemplate],\n );\n\n const preparer = useMemo(() => document.signers.find(s => s.isPreparer), [document]);\n\n const navigateToDocuments = useCallback(() => {\n switch (document.type) {\n case DocumentTypes.FORM_REQUEST:\n History.push(AuthorizedRoutePaths.FORM_REQUESTS);\n break;\n case DocumentTypes.TEMPLATE:\n History.push(AuthorizedRoutePaths.TEMPLATES);\n break;\n default:\n History.push(AuthorizedRoutePaths.DOCUMENTS);\n }\n }, [document.type]);\n\n const handleDocumentDownload = useCallback(async () => {\n try {\n await downloadDocument({\n documentId: document.id,\n signerId: document.type !== DocumentTypes.ME ? preparer?.id : undefined,\n });\n } catch (error) {\n Toast.handleErrors(error, { toastId: 'download_error' });\n }\n }, [document.id, document.type, downloadDocument, preparer]);\n\n const handleWatchDocumentConvertionStatus = useCallback(async () => {\n if (preparer)\n await watchDocumentConvertionStatus({\n signerId: preparer.id,\n });\n }, [preparer, watchDocumentConvertionStatus]);\n\n useEffect(() => {\n handleWatchDocumentConvertionStatus();\n return () => watchDocumentConvertionStatusCancel();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [watchDocumentConvertionStatusCancel]);\n\n return (\n \n \n \n
    \n

    \n {isTemplate\n ? document.type === DocumentTypes.FORM_REQUEST\n ? `Your form is ready`\n : `Your template is ready`\n : `Thanks for sending your document`}\n

    \n

    \n {isTemplate ? (\n document.type === DocumentTypes.FORM_REQUEST ? (\n <>\n Your form is now ready. Now you can create documents\n
    \n based on this form.\n \n ) : (\n <>\n Your template is now ready. Now you can create documents\n
    \n based on this template.\n \n )\n ) : (\n <>\n You'll receive a notification when your document is processed.\n {document.type !== DocumentTypes.ME && (\n <>\n
    \n Subsequent notifications will arrive when it is signed.\n \n )}\n \n )}\n

    \n
    \n {!isDisableActionPanel && (\n \n )}\n \n {!isTemplate && !isDisableActionPanel && (\n
    \n {isWatcherExecuting ? (\n <>\n

    {`The ${documentType} is being processed`}

    \n \n \n ) : (\n <>\n {`Save a copy of your ${documentType}`}

    \n
    \n \n \n {isMobile ? '' : 'Download'}\n \n \n printPdf({\n documentId: document.id,\n signerId: preparer?.id,\n })\n }\n disabled={isPdfLoading}\n className={classNames(\n 'successSendModal__footer-actions-item',\n 'successSendModal__footer-actions-item--stroke',\n )}\n >\n {isPdfLoading ? (\n \n ) : (\n \n )}\n {isMobile ? '' : 'Print'}\n \n
    \n \n )}\n
    \n )}\n \n );\n};\n\nexport default SuccessSendModal;\n","import React from 'react';\nimport ConfirmModal from 'Components/ConfirmModal';\n\ninterface ValidationModal {\n validationErrors: string[];\n onClose: () => void;\n headerText?: string;\n description?: string;\n}\n\nconst ValidationModal = ({\n validationErrors,\n onClose,\n headerText = 'Document saved.',\n description,\n}: ValidationModal) => {\n return (\n \n
    \n
    \n {headerText}\n
    \n

    \n {description ||\n 'If you want to send it, please ensure the document meets the requirements below'}\n

    \n
      \n {validationErrors.map((error, index) => (\n
    • \n ‒ {error}\n
    • \n ))}\n
    \n
    \n \n );\n};\n\nexport default ValidationModal;\n","import React from 'react';\nimport classNames from 'classnames';\n\nexport interface UIRadioBtnProps {\n handleCheck: (isChecked: boolean, value: string | undefined) => void;\n label?: string;\n value?: string;\n isDisabled?: boolean;\n isChecked: boolean;\n onMouseEnter?: (event: any) => void;\n onMouseLeave?: () => void;\n}\n\nfunction UIRadioBtn({\n label,\n value,\n handleCheck,\n isChecked = false,\n onMouseEnter,\n onMouseLeave,\n isDisabled,\n}: UIRadioBtnProps) {\n return (\n !isDisabled && handleCheck(isChecked, value)}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n >\n \n \n \n );\n}\n\nexport default UIRadioBtn;\n","import UIButton from 'Components/UIComponents/UIButton';\nimport UIRadioBtn from 'Components/UIComponents/UIRadioBtn';\nimport React, { useCallback, useMemo, useRef, useState } from 'react';\nimport ArrowRight from 'Assets/images/icons/arrow-right.svg';\nimport { Field, Form } from 'react-final-form';\nimport {\n EmailRecipientsArray,\n FieldCheckbox,\n FieldTextInput,\n} from 'Components/FormFields';\nimport SignersArray from 'Components/FormFields/SignersArray';\nimport { FieldArray } from 'react-final-form-arrays';\nimport { composeValidators } from 'Utils/functions';\nimport { email, notOnlySpaces, required } from 'Utils/validation';\nimport {\n DocumentTypes,\n DocumentValues,\n SignAction,\n Document,\n SignActionLabel,\n InteractExtraValues,\n} from 'Interfaces/Document';\nimport arrayMutators from 'final-form-arrays';\nimport TooltipBlock, { ContentPosition } from 'Components/Tooltip/TooltipBlock';\nimport { useDocumentFieldDelete } from 'Hooks/DocumentFields';\nimport { useSelector } from 'react-redux';\nimport { selectUser } from 'Utils/selectors';\n\ninterface SelectActionProps {\n initialValues?: DocumentValues;\n onSubmit: (values: any) => void;\n currentDocument?: Document;\n setCurrentDocumentType: (SignAction) => void;\n isLoading?: boolean;\n isChooseActionDisabled?: boolean;\n}\n\nfunction getSignType(action: SignAction) {\n switch (action) {\n case SignAction.SignDocument:\n return DocumentTypes.ME;\n case SignAction.SignAndSend:\n return DocumentTypes.ME_AND_OTHER;\n case SignAction.Send:\n return DocumentTypes.OTHERS;\n }\n}\n\nfunction getActionType(type: DocumentTypes) {\n switch (type) {\n case DocumentTypes.ME:\n return SignAction.SignDocument;\n case DocumentTypes.ME_AND_OTHER:\n return SignAction.SignAndSend;\n case DocumentTypes.OTHERS:\n return SignAction.Send;\n }\n}\n\nconst SelectActionForm = ({\n initialValues,\n onSubmit,\n currentDocument,\n setCurrentDocumentType,\n isLoading,\n isChooseActionDisabled,\n}: SelectActionProps) => {\n const tooltipRef = useRef();\n const deleteDocumentField = useDocumentFieldDelete();\n const [selectedAction, setSelectedAction] = useState(\n (currentDocument && getActionType(currentDocument.type)) ||\n (initialValues && getActionType(initialValues.type)) ||\n SignAction.SignDocument,\n );\n const user = useSelector(selectUser);\n const [extraValues, setExtraValues] = useState(initialValues);\n\n const handleRadioButtonClick = (action: SignAction) => {\n setCurrentDocumentType(getSignType(action));\n setSelectedAction(action);\n };\n\n const handleSubmit = (values: any) => {\n const type = getSignType(selectedAction);\n const hasOtherSigners =\n type === DocumentTypes.ME &&\n currentDocument?.signers.find(signer => !signer.isPreparer);\n\n if (!hasOtherSigners) {\n onSubmit({\n ...values,\n type: type,\n });\n }\n\n if (hasOtherSigners && window.confirm('All changes will be lost')) {\n currentDocument?.fields.forEach(field => deleteDocumentField(field));\n onSubmit({\n ...values,\n type: type,\n signers: [currentDocument?.signers.find(signer => signer.isPreparer)],\n recipients: values.recipients,\n });\n }\n };\n\n const firstSignerIndex = useMemo(() => {\n const signersOrders = initialValues?.signers\n ?.map(signer => signer?.order)\n .filter(order => order !== undefined) as Array;\n const minimalOrder = signersOrders.reduce((prev, curr) =>\n prev > curr ? curr : prev,\n );\n const signerIndex = initialValues?.signers?.findIndex(\n signer => signer?.order === minimalOrder,\n );\n return signerIndex && signerIndex !== -1 ? signerIndex : 0;\n }, [initialValues]);\n\n const handleMouseEnter = useCallback(event => {\n if (tooltipRef.current) {\n const { target } = event;\n const parent = document.getElementsByClassName('interactModal__fieldBar-wrapper');\n const label = event.target.innerText;\n\n switch (label) {\n case SignActionLabel.SIGN_DOCUMENT:\n tooltipRef.current.innerText = 'Sign a document yourself';\n break;\n case SignActionLabel.SIGN_AND_SEND:\n tooltipRef.current.innerText = 'Sign a document and send to others to sign';\n break;\n case SignActionLabel.SEND:\n tooltipRef.current.innerText = 'Send a document for others to sign';\n }\n\n tooltipRef.current.style.display = 'initial';\n tooltipRef.current.style.top = `${target.offsetTop - parent[0].scrollTop - 15}px`;\n tooltipRef.current.style.left = `${target.offsetLeft + target.clientWidth}px`;\n }\n }, []);\n\n const handleMouseLeave = useCallback(() => {\n if (tooltipRef.current) {\n tooltipRef.current.style.display = 'none';\n }\n }, []);\n\n const handleSetExtraValues = useCallback(\n (values: InteractExtraValues) => {\n if (extraValues && values.signers) {\n setExtraValues({\n ...extraValues,\n signers: values.signers,\n isOrdered: values.isOrdered,\n });\n }\n\n if (extraValues && values.recipients) {\n setExtraValues({\n ...extraValues,\n recipients: values.recipients,\n });\n }\n\n if (extraValues && !values.signers && values.isOrdered !== undefined) {\n setExtraValues({\n ...extraValues,\n isOrdered: values.isOrdered,\n });\n }\n },\n [extraValues],\n );\n\n return (\n
    \n
    \n
    Choose an action
    \n
    \n handleRadioButtonClick(SignAction.SignDocument)}\n isChecked={selectedAction === SignAction.SignDocument}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n isDisabled={isChooseActionDisabled}\n />\n handleRadioButtonClick(SignAction.SignAndSend)}\n isChecked={selectedAction === SignAction.SignAndSend}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n isDisabled={isChooseActionDisabled}\n />\n handleRadioButtonClick(SignAction.Send)}\n isChecked={selectedAction === SignAction.Send}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n isDisabled={isChooseActionDisabled}\n />\n \n Send a document for others to sign\n \n
    \n
    \n\n {selectedAction === SignAction.SignDocument && (\n (\n
    \n
    \n

    Add Viewers

    \n \n
    \n \n \n )}\n />\n )}\n {selectedAction === SignAction.SignAndSend && (\n (\n
    \n
    \n

    Signers

    \n
    \n (value ? `Me (${user.name})` : 'Me')}\n disabled\n />\n \n
    \n
    \n

    Add Other Signers

    \n
    \n (\n \n !!fields.length && fields.length > 2\n }\n handleSetSignersValues={handleSetExtraValues}\n renderFields={name => (\n
    \n (required, notOnlySpaces)}\n disabled={isChooseActionDisabled}\n />\n (required, email)}\n disabled={isChooseActionDisabled}\n />\n
    \n )}\n />\n )}\n isOrdered={values.isOrdered}\n />\n
    \n
    \n \n
    \n
    \n

    Add Viewers

    \n \n
    \n \n \n )}\n />\n )}\n {selectedAction === SignAction.Send && (\n (\n
    \n

    Choose Signers

    \n
    \n (\n \n !!fields.length && fields.length > 2\n }\n handleSetSignersValues={handleSetExtraValues}\n renderFields={name => (\n
    \n (required, notOnlySpaces)}\n disabled={isChooseActionDisabled}\n />\n (required, email)}\n disabled={isChooseActionDisabled}\n />\n
    \n )}\n />\n )}\n isOrdered={values.isOrdered}\n />\n
    \n
    \n \n
    \n
    \n

    Add Viewers

    \n \n
    \n \n \n )}\n />\n )}\n
    \n );\n};\n\nexport default SelectActionForm;\n","import React from 'react';\nimport { DocumentTypes, SignActionLabel } from 'Interfaces/Document';\n\nexport interface Steps {\n title: string;\n}\n\ninterface BreadcrumbsProps {\n currentStep: number;\n documentType: DocumentTypes;\n onChooseStep: (step: number) => void;\n}\n\nfunction getSignAction(documentType: DocumentTypes) {\n switch (documentType) {\n case DocumentTypes.ME:\n return SignActionLabel.SIGN_DOCUMENT;\n case DocumentTypes.ME_AND_OTHER:\n return SignActionLabel.SIGN_AND_SEND;\n case DocumentTypes.OTHERS:\n return SignActionLabel.SEND;\n }\n}\n\nconst Breadcrumbs = ({ currentStep, documentType, onChooseStep }: BreadcrumbsProps) => {\n return (\n
    \n
    onChooseStep(1)}>\n Upload the Files\n
    \n
    onChooseStep(2)}>\n Choose the Signers\n
    \n {currentStep === 2 && (\n
    onChooseStep(3)}>\n {getSignAction(documentType)}\n
    \n )}\n
    \n );\n};\n\nexport default Breadcrumbs;\n","import React from 'react';\nimport UIModal from 'Components/UIComponents/UIModal';\nimport UIButton from 'Components/UIComponents/UIButton';\n\nexport interface ReadyToSignModalProps {\n onClose: () => void;\n onContinue: () => void;\n onSign: () => void;\n}\n\nfunction ReadyToSignModal({ onClose, onSign, onContinue }: ReadyToSignModalProps) {\n return (\n \n
    \n
    \n

    Ready to sign your document?

    \n
    \n
    \n You're about to send a signature request to yourself via email.\n
    \n Would you like to sign the document right here, right now?\n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n );\n}\n\nexport default ReadyToSignModal;\n","import React, { useState, useCallback, useEffect, useRef, useMemo } from 'react';\nimport ReactDOM from 'react-dom';\nimport { useSelector } from 'react-redux';\nimport { isEmpty } from 'lodash';\nimport ReactModal from 'react-modal';\nimport interact from 'interactjs';\nimport classNames from 'classnames';\nimport uuid from 'uuid/v4';\nimport { minBy } from 'lodash';\nimport Interact from 'Services/Interact';\nimport Toast from 'Services/Toast';\nimport { fontFamilyByValue } from 'Services/Fonts';\nimport {\n useDocumentInteractInit,\n useDocumentUpdateCancel,\n useDocumentUpdate,\n DocumentValidators,\n} from 'Hooks/Document';\nimport {\n useDocumentFieldCreate,\n useDocumentFieldDelete,\n useDocumentFieldHistory,\n useDocumentFieldUpdate,\n useDocumentFieldUpdateLocally,\n} from 'Hooks/DocumentFields';\nimport { useIsTablet, useModal } from 'Hooks/Common';\nimport {\n selectDocumentFields,\n selectDocument,\n selectDocumentSignerOptions,\n selectUser,\n selectAvailableSignatureTypes,\n} from 'Utils/selectors';\nimport { getCurrentDate, checkIfDateOrText, isRequisite } from 'Utils/functions';\nimport {\n RequisiteType,\n Requisite,\n defaultRequisiteTypesOrder,\n} from 'Interfaces/Requisite';\nimport { Document, DocumentTypes, DocumentValues, Signer } from 'Interfaces/Document';\nimport {\n DocumentFieldTypes,\n DocumentField,\n DocumentFieldAddType,\n DocumentFieldUpdatePayload,\n DocumentFieldsCRUDMeta,\n FieldCreateType,\n} from 'Interfaces/DocumentFields';\nimport { User } from 'Interfaces/User';\nimport { INTERACT_SIZES } from './common/constants';\nimport { calculateSizeRatio } from './common/utils';\nimport { defaultSizesByFieldType, fieldShapes } from './common/fieldShapes';\nimport { pdfjs, Document as PDFDocument } from 'react-pdf';\n\nimport UISpinner from 'Components/UIComponents/UISpinner';\nimport UIProgressBar from 'Components/UIComponents/UIProgressBar';\nimport { DocumentPage } from 'Components/DocumentPage';\nimport { RequisiteSelectModal } from 'Components/RequisiteComponents';\nimport FieldBarItem from './components/FieldBarItem';\nimport FieldItemOptions from './components/FieldItemOptions';\nimport FieldItemView from './components/FieldItemView';\nimport ModalHeader from './components/ModalHeader';\nimport DocumentNavigationItem from './components/DocumentNavigationItem';\nimport FieldItem from './components/FieldItem';\nimport { DocumentActions } from 'Interfaces/Document';\nimport History from 'Services/History';\nimport { UnregisterCallback } from 'history';\nimport * as _ from 'lodash';\nimport MeOptionModal from './components/MeOptionModal';\nimport useGetPdfMetadataFromDocumentPart from 'Hooks/Document/useGetPdfMetadataFromDocumentPart';\nimport SelectActionForm from './components/SelectActionForm';\nimport { IndependentTooltip } from 'Components/Tooltip';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport { ValidationModal } from 'Components/DocumentForm';\nimport FontSizeSelect from './components/FontSizeSelect';\nimport FontFamilySelect from './components/FontFamilySelect';\nimport UIModal from 'Components/UIComponents/UIModal';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport Breadcrumbs from './components/Breadcrumbs';\nimport ReadyToSignModal from './components/ReadyToSignModal';\n\npdfjs.GlobalWorkerOptions.workerSrc = `//unpkg.com/pdfjs-dist@${pdfjs.version}/legacy/build/pdf.worker.min.js`;\n\nconst ApplyFontTexts = {\n [DocumentTypes.FORM_REQUEST]: 'form',\n [DocumentTypes.TEMPLATE]: 'template',\n [DocumentTypes.ME]: 'document',\n [DocumentTypes.ME_AND_OTHER]: 'document',\n [DocumentTypes.OTHERS]: 'document',\n};\n\nexport interface InteractModalProps {\n documentId: Document['id'];\n onClose: () => void;\n handleSubmit: (...args: any[]) => void;\n submitting?: boolean;\n buttonSendTitle?: DocumentActions;\n documentInitialValues?: DocumentValues;\n wizardFormStep?: number;\n onChangeWizardFormStep?: () => void;\n onChooseStep: (step: number) => void;\n disableTooltip: (state: boolean) => void;\n isDisableTooltip: boolean;\n isChooseActionDisabled?: boolean;\n isDisableCancelButton?: boolean;\n}\n\nenum DocumentFieldActions {\n CREATE = 'create',\n UPDATE = 'update',\n}\n\ninterface DocumentFieldAction {\n type: T;\n payload: T extends DocumentFieldActions.CREATE\n ? DocumentField\n : DocumentFieldUpdatePayload;\n meta?: DocumentFieldsCRUDMeta;\n}\n\nfunction InteractModal({\n documentId,\n onClose,\n handleSubmit,\n submitting,\n documentInitialValues,\n wizardFormStep = -1,\n onChangeWizardFormStep = () => {},\n onChooseStep,\n disableTooltip,\n isDisableTooltip,\n isChooseActionDisabled,\n isDisableCancelButton = false,\n}: InteractModalProps) {\n const isMobile = useIsMobile();\n\n const currentDocument = useSelector(state => selectDocument(state, { documentId }));\n const [\n redoDocumentFieldAction,\n undoDocumentFieldAction,\n isNextAvailable,\n isPrevAvailable,\n ] = useDocumentFieldHistory();\n\n const pdfPageMeta = useGetPdfMetadataFromDocumentPart(currentDocument as Document)();\n\n const greaterWidthMetadata = useMemo(() => {\n return Object.values(pdfPageMeta).reduce(\n (greaterWidth, pageMetadata) => {\n return greaterWidth.width < pageMetadata.width ? pageMetadata : greaterWidth;\n },\n { width: 0 },\n );\n }, [pdfPageMeta]);\n\n const sizeRatio = useMemo(() => calculateSizeRatio(greaterWidthMetadata), [\n greaterWidthMetadata,\n ]);\n\n const [isDisablePreparerSigner, setDisablePreparerSigner] = useState(false);\n\n const signersOptions = useSelector(state =>\n selectDocumentSignerOptions(state, {\n documentId,\n isPreparerSigner: !isDisablePreparerSigner,\n }),\n );\n\n const [selectedScale, setSelectedScale] = useState(1);\n const documentFields: DocumentField[] = useSelector(selectDocumentFields);\n\n const signersIds = Object.keys(signersOptions).map(key => signersOptions[key].value);\n\n const availableDocumentFields = documentFields.filter(field =>\n signersIds.includes(field.signerId),\n );\n\n const [documentScale, setDocumentScale] = useState(sizeRatio || selectedScale);\n const [pagesPerDocument, setPagesPerDocument] = useState>({});\n const [pdfDocumentFiles, setPdfDocumentFiles] = useState([]);\n const [loadedPagesCount, setLoadedPagesCount] = useState(0);\n const [renderedPages, setRenderedPages] = useState>({});\n const [selectedFieldType, setSelectedFieldType] = useState<\n DocumentFieldTypes | undefined\n >();\n const [lastInteractedFieldId, setLastInteractedFieldId] = useState(null);\n const [focusedFieldId, setFocusedFieldId] = useState(null);\n const [currentFieldAction, setCurrentFieldAction] = useState<\n DocumentFieldAction | undefined\n >();\n const [meOptionSelected, setMeOptionSelected] = useState(false);\n const [isFieldShapeExist, setFieldShapeExist] = useState(false);\n const [currentDocumentType, setCurrentDocumentType] = useState(\n currentDocument?.type ? currentDocument.type : DocumentTypes.ME,\n );\n const validateDocument = DocumentValidators.useDocumentValidation();\n const [validationErrors, setValidationErrors] = useState([]);\n\n const [defaultFontFamily, setDefaultFontFamily] = useState('arial');\n const [defaultFontSize, setDefaultFontSize] = useState(14);\n\n const isPageRendered = useCallback(\n (absolutePageNumber: number) => renderedPages[absolutePageNumber],\n [renderedPages],\n );\n\n const documentOffset = useMemo(() => {\n return sizeRatio && sizeRatio < 1 && selectedScale === 1\n ? `translateX(-${((1 - sizeRatio) / (2 * sizeRatio)) * 100}%)`\n : '';\n }, [selectedScale, sizeRatio]);\n\n const [openMeOptionModal, closeMeOptionModal] = useModal(() => (\n \n ));\n\n const [\n isAbleToDeleteLastInteractedField,\n setIsAbleDeleteLastInteractedField,\n ] = useState(true);\n\n const unblockHistoryCallback = useRef();\n\n const [mainFieldProps, setMainFieldProps] = useState<{\n fontSize?: number;\n fontFamily?: string;\n }>({\n fontFamily: 'arail',\n fontSize: 14,\n });\n const [clipboard, setClipboard] = useState(null);\n const [initDocumentInteract, isDocumentInteractLoading] = useDocumentInteractInit();\n const createDocumentField = useDocumentFieldCreate();\n const deleteDocumentField = useDocumentFieldDelete();\n const updateDocumentField = useDocumentFieldUpdate();\n const updateDocumentFieldLocally = useDocumentFieldUpdateLocally();\n const cancelDocumentUpdate = useDocumentUpdateCancel();\n const [updateDocument, isUpdatingDocument] = useDocumentUpdate();\n const containerRef = useRef(null);\n const pagesContainerRef = useRef(null);\n const documentViewRef = useRef(null);\n const [enableResizeFont, setEnableResizeFont] = useState(true);\n const [isDisabledForm, setDisabledForm] = useState(!isDisableTooltip);\n const [updatedDocument, setUpdatedDocument] = useState();\n\n const { lastInteractedField, lastInteractedFieldSigner } = useMemo(() => {\n const field = availableDocumentFields.find(\n documentField => documentField.id === lastInteractedFieldId,\n );\n const signer = currentDocument?.signers.find(signer => signer.id === field?.signerId);\n\n return { lastInteractedField: field, lastInteractedFieldSigner: signer };\n }, [currentDocument, availableDocumentFields, lastInteractedFieldId]);\n\n const { dateFormat, signatureRequestsSent, email, name: userName }: User = useSelector(\n selectUser,\n );\n const availableSignatureTypes = useSelector(selectAvailableSignatureTypes);\n const isFirstDocument = signatureRequestsSent === 0;\n\n useEffect(() => {\n return () => {\n cancelDocumentUpdate();\n };\n }, [documentId, cancelDocumentUpdate]);\n\n useEffect(() => {\n const callback = History.block('All changes will be lost');\n unblockHistoryCallback.current = callback;\n\n return () => {\n unblockHistoryCallback.current && unblockHistoryCallback.current();\n };\n }, [unblockHistoryCallback]);\n\n const totalPagesCount = useMemo(() => {\n return Object.values(pagesPerDocument).reduce((a, b) => a + b.length, 0);\n }, [pagesPerDocument]);\n\n const setConvertedDocument = useCallback(async () => {\n try {\n if (!currentDocument) {\n return Toast.error('Document not found');\n }\n\n const [pdfUrls] = await initDocumentInteract({\n document: currentDocument,\n });\n\n setPdfDocumentFiles(pdfUrls);\n } catch (error) {\n Toast.handleErrors(error);\n }\n }, [initDocumentInteract, currentDocument]);\n\n const getFieldPageComponent = useCallback(\n (pageNumber: DocumentField['pageNumber']) => {\n const pagesContainerComponent = pagesContainerRef.current as HTMLElement;\n\n return pagesContainerComponent.children[pageNumber - 1] as HTMLElement;\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [pagesContainerRef.current],\n );\n\n const newFieldSigner = useMemo(\n () =>\n currentDocument?.signers.reduce((accumSigner, signer) => {\n if (lastInteractedFieldSigner && !lastInteractedFieldSigner.isPreparer) {\n return lastInteractedFieldSigner;\n }\n\n if (!accumSigner || accumSigner.isPreparer) return signer;\n\n return accumSigner;\n }, undefined as Signer | undefined),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [currentDocument?.signers, lastInteractedFieldSigner],\n );\n\n const [openRequisiteSelectModal, closeRequisiteSelectModal, isModalOpen] = useModal(\n () => (\n {\n setCurrentFieldAction(undefined);\n closeRequisiteSelectModal();\n }}\n type={\n currentFieldAction?.payload?.type === DocumentFieldTypes.Signature\n ? RequisiteType.SIGN\n : RequisiteType.INITIAL\n }\n availableSignatureTypes={\n currentFieldAction?.payload?.availableSignatureTypes ||\n defaultRequisiteTypesOrder\n }\n onSelect={(requisite: Requisite) => {\n if (!currentFieldAction) return;\n\n setCurrentFieldAction({\n ...currentFieldAction,\n payload: {\n ...currentFieldAction.payload,\n requisiteId: requisite.id,\n },\n });\n closeRequisiteSelectModal();\n }}\n />\n ),\n [currentFieldAction],\n );\n\n const setFieldCreateAction = useCallback(\n (fieldData: DocumentFieldAddType, meta?: DocumentFieldsCRUDMeta) => {\n const { type } = fieldData;\n const isDateOrText = checkIfDateOrText(type);\n const defaultSizes = defaultSizesByFieldType[type];\n const fieldPageComponent = getFieldPageComponent(fieldData.pageNumber);\n const fontStyles = isDateOrText\n ? {\n fontSize: defaultFontSize,\n fontFamily: defaultFontFamily,\n }\n : undefined;\n const coordinateX =\n fieldData.coordinateX + defaultSizes.width > fieldPageComponent.clientWidth\n ? fieldData.coordinateX -\n (fieldData.coordinateX + defaultSizes.width - fieldPageComponent.clientWidth)\n : fieldData.coordinateX;\n const coordinateY =\n fieldData.coordinateY + defaultSizes.height > fieldPageComponent.clientHeight\n ? fieldData.coordinateY -\n (fieldData.coordinateY +\n defaultSizes.height -\n fieldPageComponent.clientHeight)\n : fieldData.coordinateY;\n const newField: DocumentField = {\n id: uuid(),\n documentId,\n dateFormat: fieldData.type === DocumentFieldTypes.Date ? dateFormat : null,\n requisiteId: null,\n availableSignatureTypes:\n fieldData.type === DocumentFieldTypes.Signature\n ? availableSignatureTypes\n : null,\n checked:\n fieldData.type === DocumentFieldTypes.Checkbox\n ? newFieldSigner?.isPreparer\n : null,\n ...fontStyles,\n ...defaultSizes,\n ...fieldData,\n text: newFieldSigner?.isPreparer\n ? fieldData.type === DocumentFieldTypes.Date\n ? getCurrentDate(dateFormat)\n : fieldData.type === DocumentFieldTypes.Name\n ? userName\n : undefined\n : undefined,\n signerId: newFieldSigner?.id || null,\n coordinateX,\n coordinateY,\n required: true,\n style: {\n maxWidth: fieldPageComponent.clientWidth,\n maxHeight: fieldPageComponent.clientHeight,\n width: defaultSizes.width,\n height: defaultSizes.height,\n fontSize: fontStyles?.fontSize,\n fontFamily: fontFamilyByValue[fontStyles?.fontFamily as string],\n ...fieldData.style,\n left: coordinateX + fieldPageComponent?.offsetLeft,\n top: coordinateY + fieldPageComponent?.offsetTop,\n },\n };\n\n setCurrentFieldAction({\n type: DocumentFieldActions.CREATE,\n payload: newField,\n meta,\n });\n },\n [\n getFieldPageComponent,\n defaultFontSize,\n defaultFontFamily,\n documentId,\n dateFormat,\n availableSignatureTypes,\n newFieldSigner,\n userName,\n ],\n );\n\n const setFieldUpdateAction = useCallback(\n (payload: DocumentFieldUpdatePayload, meta?: DocumentFieldsCRUDMeta) => {\n let sizePayload = {};\n\n if (payload.width && payload.coordinateX && payload.pageNumber) {\n const fieldPageComponent = getFieldPageComponent(payload.pageNumber);\n const newWidth =\n payload.coordinateX + payload.width > fieldPageComponent.clientWidth\n ? fieldPageComponent.clientWidth - payload.coordinateX\n : payload.width;\n\n sizePayload = {\n width: newWidth,\n style: {\n ...payload.style,\n width: newWidth,\n },\n };\n }\n\n if (meta?.stopFontAutoSize) {\n setEnableResizeFont(false);\n }\n\n setCurrentFieldAction({\n type: DocumentFieldActions.UPDATE,\n payload: { ...payload, ...sizePayload },\n meta,\n });\n },\n [getFieldPageComponent],\n );\n\n const addField = useCallback(\n (action: DocumentFieldAction) => {\n createDocumentField(action.payload, action.meta);\n setLastInteractedFieldId(action.payload.id);\n },\n [createDocumentField],\n );\n\n const updateField = useCallback(\n (action: DocumentFieldAction) => {\n updateDocumentField(action.payload, action.meta);\n },\n [updateDocumentField],\n );\n\n const executeCurrentFieldAction = useCallback(\n (action: DocumentFieldAction) => {\n switch (action.type) {\n case DocumentFieldActions.CREATE: {\n return addField(action as DocumentFieldAction);\n }\n case DocumentFieldActions.UPDATE: {\n return updateField(action as DocumentFieldAction);\n }\n default:\n return;\n }\n },\n [addField, updateField],\n );\n\n const handleDefaultFontSizeChange = useCallback(\n (fontSize: number | undefined | null) => {\n if (!fontSize) {\n return;\n }\n\n setDefaultFontSize(fontSize);\n documentFields\n .map(\n (field): DocumentFieldUpdatePayload => ({\n ...field,\n fontSize,\n style: {\n ...field.style,\n fontSize,\n },\n }),\n )\n .forEach(payload =>\n updateField({\n type: DocumentFieldActions.UPDATE,\n payload,\n }),\n );\n },\n [setDefaultFontSize, documentFields, updateField],\n );\n\n const handleDefaultFontFamilyChange = useCallback(\n (fontFamily: string | undefined | null) => {\n if (!fontFamily) {\n return;\n }\n\n setDefaultFontFamily(fontFamily);\n documentFields\n .map(\n (field): DocumentFieldUpdatePayload => ({\n ...field,\n fontFamily,\n style: {\n ...field.style,\n fontFamily: fontFamilyByValue[fontFamily],\n },\n }),\n )\n .forEach(payload =>\n updateField({\n type: DocumentFieldActions.UPDATE,\n payload,\n }),\n );\n },\n [setDefaultFontFamily, documentFields, updateField],\n );\n\n useEffect(() => {\n if (!currentFieldAction || !currentDocument) return () => {};\n\n const fieldSigner = currentDocument?.signers.find(\n signer => signer.id === currentFieldAction.payload.signerId,\n );\n\n if (\n currentFieldAction.payload.type &&\n isRequisite(currentFieldAction.payload.type) &&\n fieldSigner?.isPreparer &&\n !currentFieldAction.payload.requisiteId\n ) {\n return openRequisiteSelectModal();\n }\n\n setCurrentFieldAction(undefined);\n\n return executeCurrentFieldAction(currentFieldAction);\n }, [\n currentFieldAction,\n openRequisiteSelectModal,\n currentDocument,\n executeCurrentFieldAction,\n ]);\n\n const { isAllPdfFilesLoaded, isAllPagesRendered } = useMemo(() => {\n const isAllPdfFilesLoaded = !pdfDocumentFiles.find(\n pdfFile => !pagesPerDocument[pdfFile],\n );\n\n let isAllPagesRendered = false;\n if (isAllPdfFilesLoaded) {\n const renderedPagesCount = Object.values(renderedPages).filter(Boolean).length;\n isAllPagesRendered = renderedPagesCount === totalPagesCount;\n }\n\n return { isAllPdfFilesLoaded, isAllPagesRendered };\n }, [pagesPerDocument, pdfDocumentFiles, renderedPages, totalPagesCount]);\n\n const recalculateDocumentFieldStyles = useCallback(\n (documentField: DocumentField) => {\n const pagesContainerComponent = pagesContainerRef.current as HTMLElement;\n const fieldPageComponent = getFieldPageComponent(documentField.pageNumber);\n\n if (!fieldPageComponent) return;\n\n const pageOffset =\n (greaterWidthMetadata.width - pdfPageMeta[documentField.pageNumber].width) / 2 ||\n 0;\n\n const updatedField = {\n ...documentField,\n style: {\n ...documentField.style,\n width: documentField.width || documentField.style?.width,\n height: documentField.height || documentField.style?.height,\n maxWidth: fieldPageComponent.clientWidth,\n maxHeight: fieldPageComponent.clientHeight,\n left:\n documentField.coordinateX + pagesContainerComponent.offsetLeft + pageOffset,\n top: documentField.coordinateY + fieldPageComponent.offsetTop,\n fontFamily: documentField.fontFamily\n ? fontFamilyByValue[documentField.fontFamily]\n : undefined,\n fontSize: documentField.fontSize || undefined,\n },\n };\n\n updateDocumentFieldLocally(updatedField);\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [updateDocumentFieldLocally, pagesContainerRef.current],\n );\n\n useEffect(() => {\n if (pagesContainerRef.current && isAllPdfFilesLoaded && isAllPagesRendered) {\n availableDocumentFields.forEach(recalculateDocumentFieldStyles);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [pagesContainerRef.current, isAllPdfFilesLoaded, isAllPagesRendered]);\n\n const handleDocumentScaleChange = useCallback(\n (nextDocumentScale: number) => {\n if (documentViewRef.current) {\n documentViewRef.current.scrollTop = Math.round(\n (documentViewRef.current.scrollTop / documentScale) * nextDocumentScale,\n );\n }\n\n availableDocumentFields.forEach(recalculateDocumentFieldStyles);\n\n if (sizeRatio) {\n setDocumentScale(sizeRatio * nextDocumentScale);\n setSelectedScale(nextDocumentScale);\n }\n },\n [availableDocumentFields, documentScale, recalculateDocumentFieldStyles, sizeRatio],\n );\n\n const navigateToPage = useCallback(\n absolutePageNumber => {\n const targetPage = pagesContainerRef.current?.childNodes[\n absolutePageNumber - 1\n ] as HTMLDivElement;\n\n targetPage.scrollIntoView({\n behavior: 'smooth',\n });\n },\n [pagesContainerRef],\n );\n\n const changeFieldPositionInvalidity = useCallback((event, invalidPosition: boolean) => {\n const targetFieldNode = event.dragEvent.target as HTMLDivElement;\n\n if (invalidPosition) {\n targetFieldNode.classList.add('fieldDropDown--invalid');\n } else {\n targetFieldNode.classList.remove('fieldDropDown--invalid');\n }\n }, []);\n\n const handleFieldDropOnPageContainer = useCallback(\n event => {\n changeFieldPositionInvalidity(event, false);\n const targetFieldNode = event.dragEvent.target as HTMLDivElement;\n const isClone = targetFieldNode.getAttribute('clone') === 'true';\n if (isClone) {\n return targetFieldNode.remove();\n }\n const targetFieldId = targetFieldNode.id;\n const targetDocumentField = availableDocumentFields.find(\n documentField => documentField.id === targetFieldId,\n ) as DocumentField;\n const targetFieldStyles = targetDocumentField?.style;\n if (targetFieldStyles?.left) {\n targetFieldNode.style.left = `${targetFieldStyles.left}px`;\n targetFieldNode.setAttribute('coord-x', targetFieldStyles.left.toString());\n }\n if (targetFieldStyles?.top) {\n targetFieldNode.style.top = `${targetFieldStyles.top}px`;\n targetFieldNode.setAttribute('coord-y', targetFieldStyles.top.toString());\n }\n },\n [changeFieldPositionInvalidity, availableDocumentFields],\n );\n\n const handleFieldDropOnPage = useCallback(\n (event, pageNumber: number) => {\n const { dragEvent, target: targetPage } = event;\n const targetFieldNode = dragEvent.target as HTMLElement;\n const fieldRect = interact.getElementRect(targetFieldNode);\n const dropzoneRect = interact.getElementRect(event.target);\n const isClone = targetFieldNode.getAttribute('clone') === 'true';\n const documentView = documentViewRef.current;\n const offsetX = Math.abs(fieldRect.left - dropzoneRect.left) / documentScale;\n const offsetY = Math.abs(fieldRect.top - dropzoneRect.top) / documentScale;\n const positioning = {\n coordinateX: offsetX,\n coordinateY: offsetY,\n style: {\n left: offsetX + targetPage.offsetLeft,\n top: offsetY + targetPage.offsetTop,\n },\n };\n\n if (isClone && documentView) {\n const type = targetFieldNode.getAttribute('field-type') as DocumentFieldTypes;\n\n setFieldCreateAction({\n signerId: null,\n required: false,\n type,\n pageNumber: pageNumber,\n ...positioning,\n createType: FieldCreateType.ADD,\n });\n\n return targetFieldNode.remove();\n }\n\n const targetFieldId = targetFieldNode.id;\n const targetField = availableDocumentFields.find(\n documentField => documentField.id === targetFieldId,\n ) as DocumentField;\n\n setFieldUpdateAction({\n ...targetField,\n pageNumber: pageNumber,\n ...positioning,\n style: {\n ...targetField.style,\n ...positioning.style,\n },\n });\n },\n [\n setFieldCreateAction,\n setFieldUpdateAction,\n availableDocumentFields,\n documentViewRef,\n documentScale,\n ],\n );\n\n const handleFieldBarItemCursorMove = useCallback(\n (event, fieldType: DocumentFieldTypes) => {\n const { interaction } = event;\n\n if (\n interaction.pointerIsDown &&\n !interaction.interacting() &&\n containerRef.current\n ) {\n const { clientX: pointerX, clientY: pointerY } = event;\n const { width, height } = defaultSizesByFieldType[fieldType];\n const draggable = document.createElement('div');\n containerRef.current.appendChild(draggable);\n const isDateOrText = checkIfDateOrText(fieldType);\n\n ReactDOM.render(\n ,\n draggable,\n );\n\n const dragStartEvent = new PointerEvent('pointerdown', {\n bubbles: true,\n ...event,\n });\n\n draggable.firstChild?.dispatchEvent(dragStartEvent);\n }\n },\n [documentScale],\n );\n\n useEffect(() => {\n setConvertedDocument();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n const draggableFieldItem = interact(`div[clone=true]`)\n .draggable({\n onmove: Interact.dragMoveListener,\n })\n .on('down', event => {\n const { interaction } = event;\n\n interaction.start({ name: 'drag' }, event.interactable, event.currentTarget);\n });\n\n return () => draggableFieldItem.unset();\n }, []);\n\n useEffect(() => {\n if (containerRef.current) {\n const listeners = interact(containerRef.current).dropzone({\n overlap: 0,\n ondragenter: event => changeFieldPositionInvalidity(event, true),\n ondragleave: event => changeFieldPositionInvalidity(event, false),\n ondrop: handleFieldDropOnPageContainer,\n });\n\n return () => listeners.unset();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n changeFieldPositionInvalidity,\n handleFieldDropOnPageContainer,\n availableDocumentFields,\n containerRef.current,\n ]);\n\n const handleSignerChange = (signerId: string) => {\n signersOptions.forEach(signer => {\n if (signer.value === signerId && signer.label === 'Me (now)') {\n if (!meOptionSelected) {\n openMeOptionModal();\n setMeOptionSelected(true);\n }\n }\n });\n };\n\n const [openValidationModal, closeValidationModal] = useModal(\n () => (\n \n ),\n [validationErrors],\n );\n\n const handleDocumentFieldsSubmit = useCallback(async () => {\n try {\n if (currentDocument) {\n const updateValues = {\n documentId: documentId,\n type: currentDocument.type,\n fields: availableDocumentFields,\n };\n\n await updateDocument({ values: updateValues, query: { log: true } });\n\n const documentValidationErrors = validateDocument({\n ...currentDocument,\n ...updateValues,\n });\n\n if (documentValidationErrors.length !== 0) {\n openValidationModal();\n return setValidationErrors(documentValidationErrors);\n }\n\n unblockHistoryCallback.current && unblockHistoryCallback.current();\n await handleSubmit();\n\n onChangeWizardFormStep();\n Toast.success('Document successfully saved!');\n }\n } catch (error) {\n Toast.handleErrors(error);\n }\n }, [\n currentDocument,\n documentId,\n availableDocumentFields,\n updateDocument,\n validateDocument,\n handleSubmit,\n onChangeWizardFormStep,\n openValidationModal,\n ]);\n\n const handlePageTap = useCallback(\n (event, pageNumber: number) => {\n if (wizardFormStep < 2 || !isFieldShapeExist) {\n return;\n }\n\n setLastInteractedFieldId(null);\n\n if (selectedFieldType) {\n setFieldCreateAction({\n signerId: null,\n type: selectedFieldType,\n required: false,\n coordinateX: event.offsetX,\n coordinateY: event.offsetY,\n pageNumber: pageNumber,\n style: {\n left: event.offsetX + event.currentTarget.offsetLeft,\n top: event.offsetY + event.currentTarget.offsetTop,\n },\n createType: FieldCreateType.ADD,\n });\n }\n },\n [selectedFieldType, setFieldCreateAction, wizardFormStep, isFieldShapeExist],\n );\n\n const handlePageRendered = useCallback((absolutePageNumber: number) => {\n setLoadedPagesCount(prevState => prevState + 1);\n setRenderedPages(prevState => ({\n ...prevState,\n [absolutePageNumber]: true,\n }));\n }, []);\n\n const isPreparingInteract = useMemo(() => loadedPagesCount !== totalPagesCount, [\n loadedPagesCount,\n totalPagesCount,\n ]);\n\n const percentageLoadedPages = useMemo(\n () => 100 * (loadedPagesCount / totalPagesCount),\n [loadedPagesCount, totalPagesCount],\n );\n\n const lowScale = useMemo(() => documentScale < 1, [documentScale]);\n\n const copyDocumentField = useCallback(() => {\n const activeField = availableDocumentFields.find(\n documentField => documentField.id === lastInteractedFieldId,\n );\n\n setClipboard(activeField || null);\n }, [availableDocumentFields, lastInteractedFieldId]);\n\n const deleteLastInteractedField = useCallback(() => {\n if (\n lastInteractedFieldSigner?.isPreparer &&\n focusedFieldId === lastInteractedFieldId &&\n lastInteractedField?.type &&\n [\n DocumentFieldTypes.Name,\n DocumentFieldTypes.Text,\n DocumentFieldTypes.Date,\n ].includes(lastInteractedField?.type)\n ) {\n return;\n }\n\n if (lastInteractedFieldId) {\n deleteDocumentField({ id: lastInteractedFieldId });\n }\n }, [\n deleteDocumentField,\n focusedFieldId,\n lastInteractedField,\n lastInteractedFieldId,\n lastInteractedFieldSigner,\n ]);\n\n const handleBlur = useCallback(() => {\n setFocusedFieldId(null);\n }, []);\n\n const getPagesRects = useCallback(() => {\n if (pagesContainerRef.current) {\n const pages = [...new Array(pagesContainerRef.current.children.length)];\n return pages.map((item, index) => {\n return interact.getElementRect(\n pagesContainerRef.current?.children[index] as HTMLElement,\n );\n });\n }\n }, [pagesContainerRef]);\n\n const getDocumentViewCenter = useCallback(() => {\n if (documentViewRef.current) {\n const documentViewRect = interact.getElementRect(documentViewRef.current);\n\n return documentViewRect.top + documentViewRect.height / 2;\n }\n }, [documentViewRef]);\n\n const findPageClosestToCenter = useCallback(() => {\n const pagesRects = getPagesRects();\n if (pagesRects) {\n const pagesCenters = pagesRects\n .map((pageRect, index) => {\n return {\n index,\n center: pageRect.top + pageRect.height / 2,\n };\n })\n .filter(page => page.center > 0);\n const documentViewCenter = getDocumentViewCenter() as number;\n\n return minBy(pagesCenters, page =>\n Math.abs(documentViewCenter - page.center),\n ) as typeof pagesCenters[0];\n }\n }, [getPagesRects, getDocumentViewCenter]);\n\n const pasteDocumentField = useCallback(() => {\n if (clipboard && documentViewRef.current && pagesContainerRef.current) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { id, ...fieldData } = clipboard;\n\n if (focusedFieldId) return;\n\n const closestPage = findPageClosestToCenter();\n\n if (!closestPage) return;\n\n const pageComponent = getFieldPageComponent(closestPage.index + 1);\n\n const pageCenterX = pageComponent?.clientWidth\n ? pageComponent.clientWidth / 2 - (fieldData.width as number) / 2\n : 0;\n const pageCenterY = pageComponent?.clientHeight\n ? pageComponent.clientHeight / 2 - (fieldData.height as number) / 2\n : 0;\n\n setFieldCreateAction({\n ...fieldData,\n pageNumber: (closestPage?.index || 0) + 1,\n coordinateX: pageCenterX,\n coordinateY: pageCenterY,\n style: {\n ...fieldData.style,\n left: pageComponent?.offsetLeft + pageCenterX,\n top: pageComponent?.offsetTop + pageCenterY,\n },\n createType: FieldCreateType.COPY,\n });\n }\n }, [\n clipboard,\n focusedFieldId,\n findPageClosestToCenter,\n getFieldPageComponent,\n setFieldCreateAction,\n ]);\n\n const handleKeydown = useCallback(\n (event: KeyboardEvent) => {\n if (isModalOpen) {\n return;\n }\n\n if (\n isAbleToDeleteLastInteractedField &&\n (event.key === 'Backspace' || event.key === 'Delete')\n ) {\n return deleteLastInteractedField();\n }\n\n if (event.metaKey || event.ctrlKey) {\n switch (event.key.toLocaleLowerCase()) {\n case 'c': {\n return copyDocumentField();\n }\n case 'v': {\n return pasteDocumentField();\n }\n case 'z': {\n if (event.shiftKey) {\n return redoDocumentFieldAction();\n }\n return undoDocumentFieldAction();\n }\n }\n }\n },\n [\n isAbleToDeleteLastInteractedField,\n copyDocumentField,\n deleteLastInteractedField,\n isModalOpen,\n pasteDocumentField,\n redoDocumentFieldAction,\n undoDocumentFieldAction,\n ],\n );\n\n useEffect(() => {\n window.addEventListener('keydown', handleKeydown);\n\n return () => window.removeEventListener('keydown', handleKeydown);\n }, [handleKeydown]);\n\n const handleFirstStepSubmit = useCallback(\n async (values: any) => {\n if (!(values instanceof Event)) {\n await updateDocument({\n values: {\n type: values.type,\n signers: values.signers,\n recipients: values.recipients,\n documentId: documentId as string,\n isOrdered: values.isOrdered,\n templateId: null,\n },\n });\n }\n onChangeWizardFormStep();\n },\n [documentId, onChangeWizardFormStep, updateDocument],\n );\n\n const handleSendViaEmail = useCallback(\n (values: any) => {\n setDisablePreparerSigner(true);\n handleFirstStepSubmit(values);\n },\n [handleFirstStepSubmit],\n );\n\n const handleSignNow = useCallback(\n (values: any) => {\n setDisablePreparerSigner(false);\n const signers = values?.signers.filter(\n signer => signer.isPreparer || signer.email !== email,\n );\n\n const reorderingSigners = signers.map((signer, index) => {\n return signer.isPreparer ? signer : { ...signer, order: index };\n });\n\n handleFirstStepSubmit({\n ...values,\n type:\n signers.length === 1 && signers[0].isPreparer\n ? DocumentTypes.ME\n : DocumentTypes.ME_AND_OTHER,\n signers: reorderingSigners,\n });\n },\n [email, handleFirstStepSubmit],\n );\n\n const [openReadyToSignModal, closeReadyToSignModal] = useModal(\n () => (\n {\n handleSendViaEmail(updatedDocument);\n closeReadyToSignModal();\n }}\n onSign={() => {\n handleSignNow(updatedDocument);\n closeReadyToSignModal();\n }}\n />\n ),\n [updatedDocument],\n );\n\n const handleCheckSigners = useCallback(\n (values: any) => {\n setUpdatedDocument(values);\n const signerWithEmailDuplicate = values.signers\n .filter(signer => !signer.isPreparer)\n .find(signer => signer.email === email);\n\n if (\n !values.templateId &&\n values.type === DocumentTypes.OTHERS &&\n !!signerWithEmailDuplicate &&\n (!values.isOrdered || (values.isOrdered && signerWithEmailDuplicate.order === 1))\n ) {\n openReadyToSignModal();\n } else {\n handleFirstStepSubmit(values);\n }\n },\n [email, handleFirstStepSubmit, openReadyToSignModal],\n );\n\n const fieldShapeContainerRef = useRef(null);\n\n const handleRemoveFieldShape = useCallback(() => {\n if (\n fieldShapeContainerRef.current &&\n fieldShapeContainerRef.current.classList.contains('invalid') &&\n setFieldShapeExist &&\n !isMobile\n ) {\n ReactDOM.unmountComponentAtNode(fieldShapeContainerRef.current);\n setFieldShapeExist(false);\n setSelectedFieldType(undefined);\n }\n }, [isMobile]);\n\n const handleCreateFieldShape = useCallback(\n (event: any, type: DocumentFieldTypes, renderShape?: boolean) => {\n event.stopPropagation();\n\n if (fieldShapeContainerRef.current && !renderShape) {\n return ReactDOM.unmountComponentAtNode(fieldShapeContainerRef.current);\n }\n\n handleRemoveFieldShape();\n\n if (fieldShapeContainerRef.current && renderShape && type !== selectedFieldType) {\n fieldShapeContainerRef.current.style.top = `${event.clientY}px`;\n fieldShapeContainerRef.current.style.left = `${event.clientX}px`;\n\n !isMobile &&\n ReactDOM.render(\n ,\n fieldShapeContainerRef.current,\n );\n\n setSelectedFieldType(type);\n setFieldShapeExist(true);\n }\n },\n [documentScale, handleRemoveFieldShape, isMobile, selectedFieldType, selectedScale],\n );\n\n const handleMouseMoveWithFieldShape = useCallback(e => {\n if (fieldShapeContainerRef.current) {\n fieldShapeContainerRef.current.style.top = `${e.y}px`;\n fieldShapeContainerRef.current.style.left = `${e.x}px`;\n }\n }, []);\n\n useEffect(() => {\n const callback = _.throttle(handleMouseMoveWithFieldShape, 20);\n\n if (fieldShapeContainerRef.current && isFieldShapeExist) {\n window.addEventListener('mousemove', callback);\n window.addEventListener('click', handleRemoveFieldShape);\n }\n\n return () => {\n window.removeEventListener('mousemove', callback);\n window.removeEventListener('click', handleRemoveFieldShape);\n };\n }, [\n handleMouseMoveWithFieldShape,\n handleRemoveFieldShape,\n isFieldShapeExist,\n fieldShapeContainerRef,\n ]);\n\n const validateTag = useCallback(\n (id: string, tag: string) => {\n if (tag) {\n const fieldWithSameTag = availableDocumentFields.find(\n field => field.tag === tag && field.id !== id,\n );\n return !fieldWithSameTag;\n }\n\n return true;\n },\n [availableDocumentFields],\n );\n\n const updateForEachFontProps = () => {\n availableDocumentFields.forEach(field => {\n updateDocumentField(\n {\n ...field,\n fixedFontSize: true,\n fontFamily: mainFieldProps?.fontFamily,\n fontSize: mainFieldProps?.fontSize,\n style: {\n fontFamily: fontFamilyByValue[mainFieldProps.fontFamily || 'arial'],\n fontSize: mainFieldProps?.fontSize,\n },\n },\n {\n pushToHistory: true,\n },\n );\n });\n };\n\n const [openApplyFontsModal, closeApplyFontsModal] = useModal(\n () => (\n \n
    Change Font Settings
    \n
    \n {`Are you sure that you want to apply these settings to all the fields on the ${\n ApplyFontTexts[currentDocument?.type || DocumentTypes.ME]\n }?`}\n
    \n
    \n {\n updateForEachFontProps();\n closeApplyFontsModal();\n }}\n />\n \n
    \n
    \n ),\n [mainFieldProps],\n );\n\n const handleApplyFontToEachField = (fontFamily: string, fontSize: number) => {\n setMainFieldProps({\n fontSize,\n fontFamily,\n });\n openApplyFontsModal();\n };\n\n const handleUndoDocumentFieldAction = useCallback(() => {\n undoDocumentFieldAction();\n }, [undoDocumentFieldAction]);\n\n const handleRedoDocumentFieldAction = useCallback(() => {\n redoDocumentFieldAction();\n }, [redoDocumentFieldAction]);\n\n const handleChangeDocumentType = useCallback((type: DocumentTypes) => {\n setCurrentDocumentType(type);\n }, []);\n\n const handleTooltipSubmit = useCallback(() => {\n setDisabledForm(prev => !prev);\n disableTooltip(true);\n }, [disableTooltip]);\n\n const handleChooseStep = useCallback(\n (step: number) => {\n if (step <= 2) {\n setLastInteractedFieldId(null);\n }\n onChooseStep(step);\n },\n [onChooseStep],\n );\n\n const handlePdfDocumentLoadSuccess = useCallback(\n (pdfDocumentFile: string, pdfDocumentProxy) => {\n const pagesNumbers: number[] = [];\n for (let i = 1; i <= pdfDocumentProxy.numPages; i++) {\n pagesNumbers.push(i);\n }\n\n setPagesPerDocument(prevState => {\n const newState = {\n ...prevState,\n [pdfDocumentFile]: pagesNumbers,\n };\n\n return newState;\n });\n },\n [],\n );\n\n const getPreviousPagesCount = useCallback(\n currentPdfDocumentFileIdx => {\n const previousPdfDocuments = pdfDocumentFiles.slice(0, currentPdfDocumentFileIdx);\n const pagesCounts = previousPdfDocuments.map(key => pagesPerDocument[key]);\n return pagesCounts.reduce((a, b) => a + b.length, 0);\n },\n [pagesPerDocument, pdfDocumentFiles],\n );\n\n const getAbsolutePageNumber = useCallback(\n (pdfDocumentFileIdx: number, pageNumber: number) => {\n return getPreviousPagesCount(pdfDocumentFileIdx) + pageNumber;\n },\n [getPreviousPagesCount],\n );\n\n let pdfDocumentFilesCount = 0;\n\n return (\n \n \n {isDocumentInteractLoading ? (\n \n ) : (\n
    \n \n \n
    \n \n
    \n {!isDisableTooltip && isFirstDocument && wizardFormStep === 2 && (\n \n Drag & drop fields on the left into the document\n
    \n }\n />\n )}\n
    \n \n {\n if (fieldShapeContainerRef.current) {\n fieldShapeContainerRef.current.classList.remove('invalid');\n }\n }}\n onMouseLeave={() => {\n if (fieldShapeContainerRef.current) {\n fieldShapeContainerRef.current.classList.add('invalid');\n }\n }}\n ref={pagesContainerRef}\n >\n {pdfDocumentFiles.map((pdfDocumentFile, pdfDocumentFileIdx) => (\n }\n onLoadSuccess={proxy =>\n handlePdfDocumentLoadSuccess(pdfDocumentFile, proxy)\n }\n >\n {isAllPdfFilesLoaded &&\n pagesPerDocument[pdfDocumentFile].map(pageNumber => (\n \n handlePageRendered(\n getAbsolutePageNumber(pdfDocumentFileIdx, pageNumber),\n )\n }\n onDrop={event =>\n handleFieldDropOnPage(\n event,\n getAbsolutePageNumber(pdfDocumentFileIdx, pageNumber),\n )\n }\n onTap={event =>\n handlePageTap(\n event,\n getAbsolutePageNumber(pdfDocumentFileIdx, pageNumber),\n )\n }\n />\n ))}\n \n ))}\n
    \n {availableDocumentFields\n .filter(field => !isEmpty(field.style))\n .filter(field => isPageRendered(field.pageNumber))\n .map(field => (\n \n ))}\n
    \n
    \n \n
    \n

    \n Pages ({totalPagesCount})\n

    \n
      \n {pdfDocumentFiles.map((pdfDocumentFile, pdfDocumentFileIdx) => (\n \n {isAllPdfFilesLoaded &&\n pagesPerDocument[pdfDocumentFile].map(pageNumber => (\n \n availableDocumentField.pageNumber ===\n getAbsolutePageNumber(pdfDocumentFileIdx, pageNumber),\n )}\n navigateToPage={() =>\n navigateToPage(\n getAbsolutePageNumber(pdfDocumentFileIdx, pageNumber),\n )\n }\n />\n ))}\n \n ))}\n
    \n
    \n \n \n )}\n
    \n );\n}\n\nexport default InteractModal;\n","export enum TabTypes {\n UPLOAD_FILE = 'upload',\n BULK_SEND = 'bulk',\n}\n\ninterface TabItem {\n title: string;\n type: TabTypes;\n}\n\nexport const tabItems: TabItem[] = [\n {\n title: 'Upload File',\n type: TabTypes.UPLOAD_FILE,\n },\n {\n title: 'Bulk Send',\n type: TabTypes.BULK_SEND,\n },\n];\n","import React, { useCallback } from 'react';\nimport { ReactSVG } from 'react-svg';\nimport FirstStepIcon from 'Assets/images/icons/first-step-icon.svg';\nimport MiddleStepIcon from 'Assets/images/icons/middle-step-icon.svg';\nimport LastStepIcon from 'Assets/images/icons/finish-step-icon.svg';\nimport CheckCircle from 'Assets/images/icons/check-circle.svg';\nimport { SignActionLabel } from 'Interfaces/Document';\n\nexport interface ActionStepBarProps {\n onChoose: (step: number) => void;\n actionType?: SignActionLabel;\n}\n\nconst ActionStepBar = ({ onChoose, actionType }: ActionStepBarProps) => {\n const handleStepChoose = useCallback(\n (step: number) => {\n onChoose(step);\n },\n [onChoose],\n );\n\n return (\n
    \n
    handleStepChoose(1)}>\n \n\n
    1.
    \n
    Upload the Files
    \n \n
    \n\n
    handleStepChoose(2)}>\n \n\n
    2.
    \n
    Choose the Signers
    \n \n
    \n\n
    handleStepChoose(3)}>\n \n\n
    3.
    \n
    {actionType}
    \n \n
    \n\n
    handleStepChoose(4)}>\n \n\n
    4.
    \n
    Finish
    \n
    \n
    \n );\n};\n\nexport default ActionStepBar;\n","import React, { useCallback } from 'react';\nimport FirstStepIcon from 'Assets/images/icons/first-step-icon.svg';\nimport MiddleStepIcon from 'Assets/images/icons/middle-step-icon.svg';\nimport LastStepIcon from 'Assets/images/icons/finish-step-icon.svg';\nimport { ActionStepBarProps } from './ActionStepBar';\n\nconst ActionStepBarMobile = ({ onChoose }: ActionStepBarProps) => {\n const handleStepChoose = useCallback(\n (step: number) => {\n onChoose(step);\n },\n [onChoose],\n );\n\n return (\n
    \n
    handleStepChoose(1)}>\n
    Upload
    \n \n
    \n\n
    handleStepChoose(2)}>\n
    Action
    \n \n
    \n\n
    handleStepChoose(3)}>\n
    Sign
    \n \n
    \n\n
    handleStepChoose(4)}>\n
    Finish
    \n \n
    \n
    \n );\n};\n\nexport default ActionStepBarMobile;\n","import React from 'react';\nimport classNames from 'classnames';\nimport { RangeModifier, DayModifiers } from 'react-day-picker';\n\ninterface DayElementProps {\n day: Date;\n modifiers: DayModifiers;\n selectedRange?: RangeModifier;\n}\n\nconst DayElement = ({\n day,\n modifiers: { from, to, highlighted, sunday, saturday, inRange, disabled },\n selectedRange = { from: day, to: day },\n}: DayElementProps) => {\n const isSame = from && to;\n const isFirst = day.getDate() === 1;\n const currentYear = day.getFullYear();\n const currentMonth = day.getMonth();\n const lastDay = new Date(currentYear, currentMonth + 1, 0).getDate();\n const isLast = lastDay === day.getDate();\n\n const top =\n day.getDate() <= 7 ||\n (day.getDate() - selectedRange?.from.getDate() <= 7 &&\n currentMonth === selectedRange.from.getMonth());\n const bottom =\n day.getDate() + 7 > lastDay ||\n (selectedRange?.to.getDate() - day.getDate() <= 7 &&\n currentMonth === selectedRange.to.getMonth());\n const saturdayInRange = saturday && inRange;\n const sundayInRange = sunday && inRange;\n\n const topRight = top && saturdayInRange;\n const bottomRight = bottom && saturdayInRange;\n const topLeft = top && sundayInRange;\n const bottomLeft = bottom && sundayInRange;\n\n const isLeftSide =\n (from && !isSame && !saturday) ||\n (inRange && sunday && !isSame && !to) ||\n (isFirst && !from && !to && inRange);\n const isRightSide =\n (to && !isSame && !sunday) ||\n (inRange && saturday && !isSame && !from) ||\n (isLast && !from && !to && inRange && !sunday);\n const isBothSides = isRightSide && isLeftSide;\n\n return (\n \n \n {day.getDate()}\n \n \n );\n};\n\nexport default DayElement;\n","import React from 'react';\nimport { NavbarElementProps } from 'react-day-picker';\nimport Arrow from 'Assets/images/icons/angle-arrow.svg';\nimport { ReactSVG } from 'react-svg';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport classNames from 'classnames';\n\nconst monthNames = [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n];\n\nconst NavbarElement = ({\n className,\n month,\n onPreviousClick,\n onNextClick,\n}: NavbarElementProps) => {\n const currentMonth = `${monthNames[month.getMonth()]} ${month.getFullYear()}`;\n const isMobile = useIsMobile();\n return (\n
    \n onPreviousClick()}\n />\n
    \n {currentMonth}\n
    \n onNextClick()} />\n
    \n );\n};\nexport default NavbarElement;\n","import React, { useState, useCallback, useEffect } from 'react';\nimport DayPicker, {\n RangeModifier,\n DateUtils,\n DayModifiers,\n Modifier,\n} from 'react-day-picker';\nimport { ReactSVG } from 'react-svg';\nimport useDropdown from 'use-dropdown';\nimport classNames from 'classnames';\nimport ArrowIcon from 'Assets/images/icons/select-arrow-icon.svg';\nimport DatePickerIcon from 'Assets/images/icons/datepicker.svg';\nimport CloseIcon from 'Assets/images/icons/close-icon.svg';\nimport { DayElement, NavbarElement } from './components';\nimport UIButton from '../UIButton';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\n\nconst weekdaysShort = ['S', 'M', 'T', 'W', 'T', 'F', 'S'];\n\nexport interface UIDatePickerProps {\n onDateSelect?: (date: Date) => void;\n onDateRangeSelect?: (dateRange: RangeModifier) => void;\n position?: 'right' | 'left';\n value?: RangeModifier | Date;\n onCancel?: () => void;\n disabled?: boolean;\n disabledDays?: Modifier | Modifier[];\n fromMonth?: Date;\n}\n\nconst isDateRange = (date: RangeModifier | Date): date is RangeModifier => {\n return (date as RangeModifier).from !== undefined;\n};\n\nconst isDate = (date: RangeModifier | Date): date is Date => {\n return (date as Date).getTime !== undefined;\n};\n\nconst UIDatePicker = ({\n onDateSelect,\n onDateRangeSelect,\n position = 'left',\n value,\n onCancel,\n disabled,\n disabledDays,\n fromMonth,\n}: UIDatePickerProps) => {\n const [selectedDate, setSelectedDate] = useState();\n const [selectedDateRange, setSelectedDateRange] = useState();\n const [containerRef, isOpen, open, close] = useDropdown();\n const isMobile = useIsMobile();\n\n useEffect(() => {\n if (value && isDateRange(value)) {\n return setSelectedDateRange(value);\n }\n\n if (value && isDate(value)) {\n return setSelectedDate(value);\n }\n }, [value]);\n\n const handleOpenClick = (e: React.MouseEvent) => {\n if (isOpen) {\n close(e);\n } else {\n open(e);\n }\n };\n\n const handleSelectButtonClick = () => {\n if (onDateRangeSelect && selectedDateRange) onDateRangeSelect(selectedDateRange);\n\n if (onDateSelect && selectedDate) onDateSelect(selectedDate);\n\n close();\n };\n\n const handleDayClick = useCallback(\n (day: Date, { disabled }: DayModifiers) => {\n if (disabled) {\n return;\n }\n\n if (!onDateRangeSelect) {\n return setSelectedDate(day);\n }\n\n if (!selectedDateRange) {\n return setSelectedDateRange({ from: day, to: day });\n }\n const range = DateUtils.addDayToRange(day, selectedDateRange);\n\n if (range.from && range.to) {\n return setSelectedDateRange(range);\n }\n },\n [onDateRangeSelect, selectedDateRange],\n );\n\n const handleClickCancel = () => {\n close();\n if (onCancel) onCancel();\n };\n\n const currentValue =\n value &&\n (isDate(value)\n ? value.toLocaleDateString()\n : `${value.from.toLocaleDateString()} - ${value.to.toLocaleDateString()}`);\n const rangeDays = selectedDateRange\n ? [selectedDateRange.from, selectedDateRange.to]\n : [selectedDate];\n const modifiers = {\n highlighted: [...rangeDays],\n disabled: disabledDays,\n inRange: selectedDateRange,\n saturday: { daysOfWeek: [6] },\n sunday: { daysOfWeek: [0] },\n ...selectedDateRange,\n };\n\n return (\n
    \n \n \n

    {currentValue || 'Select date'}

    \n \n
    \n \n {isOpen && (\n
    \n \n (\n \n )}\n navbarElement={NavbarElement}\n onDayClick={handleDayClick}\n />\n
    \n \n Cancel\n
    \n
    \n \n
    \n
    \n \n )}\n \n \n );\n};\n\nexport default UIDatePicker;\n","import React, { useCallback } from 'react';\nimport { FieldRenderProps } from 'react-final-form';\nimport UIDatePicker from 'Components/UIComponents/UIDatePicker';\nimport FieldInput from '../FieldInput';\nimport { UIDatePickerProps } from 'Components/UIComponents/UIDatePicker/UIDatePicker';\nimport { Modifier } from 'react-day-picker';\nimport dayjs from 'dayjs';\n\ninterface FieldSelectProps extends UIDatePickerProps, FieldRenderProps {\n onDateSelect?: (date: Date | undefined) => void;\n position?: 'right' | 'left';\n onCancel?: () => void;\n disabled?: boolean;\n disabledDays?: Modifier | Modifier[];\n fromMonth?: Date;\n}\n\nconst FieldDatePicker = ({\n onDateSelect,\n position,\n onCancel,\n disabled,\n disabledDays,\n fromMonth,\n ...restProps\n}: FieldSelectProps) => {\n const handleSelect = useCallback(\n (date: Date) => {\n const diffDays =\n date &&\n Math.ceil(\n dayjs(date).diff(\n dayjs()\n .hour(date.getHours())\n .minute(date.getMinutes())\n .second(date.getSeconds()),\n 'day',\n true,\n ),\n );\n\n const expirationDate = date\n ? dayjs()\n .add(diffDays, 'day')\n .toDate()\n : undefined;\n\n onDateSelect && onDateSelect(expirationDate);\n restProps.input.onChange(expirationDate);\n },\n [onDateSelect, restProps.input],\n );\n\n const handleCancel = useCallback(\n value => {\n handleSelect(value);\n onCancel && onCancel();\n },\n [handleSelect, onCancel],\n );\n\n return (\n (\n \n )}\n />\n );\n};\n\nexport default FieldDatePicker;\n","import React from 'react';\nimport { ReactSVG } from 'react-svg';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport CloseIcon from 'Assets/images/icons/close-icon.svg';\n\ninterface UpgradeDropdownProps {\n onClick: () => void;\n onClose?: () => void;\n}\n\nconst UpgradeDropdown = ({ onClick, onClose }: UpgradeDropdownProps) => {\n return (\n
    \n \n

    Upgrade to Business to unlock this feature

    \n

    \n Lorem ipsum dolor sit amet, consectetur adipiscing elit. Faucibus magna quis\n congue duis.\n

    \n \n
    \n );\n};\n\nexport default UpgradeDropdown;\n","import React, { useCallback } from 'react';\nimport { ReactSVG } from 'react-svg';\nimport LockIcon from 'Assets/images/icons/lock.svg';\nimport History from 'Services/History';\nimport { AuthorizedRoutePaths } from 'Interfaces/RoutePaths';\ninterface BilletProps {\n title: string;\n}\n\nconst Billet = ({ title }: BilletProps) => {\n const handleClick = useCallback(() => {\n History.push(AuthorizedRoutePaths.SETTINGS_BILLING_PLAN);\n }, []);\n\n return (\n
    \n \n
    {title}
    \n
    \n );\n};\n\nexport default Billet;\n","import React, { useCallback } from 'react';\nimport Tooltip from 'Components/Tooltip';\nimport { Field, FieldInputProps, FieldMetaState } from 'react-final-form';\nimport { FieldCheckbox } from 'Components/FormFields';\nimport UICheckbox from 'Components/UIComponents/UICheckbox';\nimport FormError from 'Components/UIComponents/FormError';\nimport { signatureTypesPreferences } from 'Utils/validation';\nimport Billet from './Billet';\nimport { selectUser, selectUserPlan } from 'Utils/selectors';\nimport { useSelector } from 'react-redux';\nimport { PlanTypes } from 'Interfaces/Billing';\nimport { SignerAccessCodesPreferences } from 'Interfaces/User';\nimport { ContentPosition } from 'Components/Tooltip/TooltipBlock';\n\ntype onPlanTypeCheckSuccess = (...args: any) => void;\n\ninterface PreferencesFieldsProps {\n disabled?: boolean;\n openUpgradeModal: () => void;\n}\n\nconst PreferencesFields = ({\n disabled = false,\n openUpgradeModal,\n}: PreferencesFieldsProps) => {\n const userPlan = useSelector(selectUserPlan);\n const user = useSelector(selectUser);\n\n const handleBusinessPlanCheck = useCallback(\n (onSuccess: onPlanTypeCheckSuccess) => (...args) => {\n if (userPlan.type !== PlanTypes.BUSINESS && !user.teamId) {\n return openUpgradeModal();\n }\n\n onSuccess && onSuccess(...args);\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [openUpgradeModal, userPlan.type],\n );\n\n return (\n
    \n
    \n
    \n

    Document Preferences

    \n {disabled && }\n
    \n
    \n
    \n
    \n

    Available signature types

    \n \n Signature types that will be accepted on the signature requests you send.\n \n
    \n
    \n {\n const isError =\n meta.error || (meta.submitError && !meta.dirtySinceLastSubmit);\n\n return (\n
    \n
    \n
    \n \n input.onChange({\n ...input.value,\n isDrawnSignaturesAvailable: !input.value\n .isDrawnSignaturesAvailable,\n }),\n )}\n />\n
    \n
    \n \n input.onChange({\n ...input.value,\n isUploadedSignaturesAvailable: !input.value\n .isUploadedSignaturesAvailable,\n }),\n )}\n />\n
    \n
    \n \n input.onChange({\n ...input.value,\n isTypedSignaturesAvailable: !input.value\n .isTypedSignaturesAvailable,\n }),\n )}\n />\n
    \n
    \n {isError && }\n
    \n );\n }}\n validate={signatureTypesPreferences}\n />\n
    \n
    \n
    \n

    \n
    \n

    Enable Signer Security Access

    \n \n Enable this options to require signers to enter a custom access code before\n being able to view and sign the document.\n \n
    \n

    \n ;\n meta: FieldMetaState;\n }) => {\n const isError =\n meta.error || (meta.submitError && !meta.dirtySinceLastSubmit);\n return (\n
    \n
    \n
    \n \n input.onChange({\n ...input.value,\n enableDocumentCodeAccess: !input.value.enableDocumentCodeAccess,\n }),\n )}\n />\n
    \n
    \n \n input.onChange({\n ...input.value,\n enableTemplateCodeAccess: !input.value.enableTemplateCodeAccess,\n }),\n )}\n />\n
    \n
    \n \n input.onChange({\n ...input.value,\n enableFormRequestCodeAccess: !input.value\n .enableFormRequestCodeAccess,\n }),\n )}\n />\n
    \n
    \n {isError && }\n
    \n );\n }}\n />\n
    \n
    \n

    \n
    \n

    Independent Audit Trail

    \n \n The Independent Audit Trail will let you have two certified files with the\n eSignature Information.\n \n
    \n

    \n (\n \n )}\n />\n
    \n
    \n

    \n
    \n

    Allow signers to download original document

    \n \n Enable this option to allow signers to download original document from the\n email with a signature request.\n \n
    \n

    \n (\n \n )}\n />\n
    \n
    \n

    \n
    \n

    Independent Requests

    \n \n Enable this option to send signing requests by email with teammate name at\n header instead of company name.\n \n
    \n

    \n (\n \n )}\n />\n
    \n
    \n );\n};\n\nexport default PreferencesFields;\n","import React, { useCallback, useMemo, useState } from 'react';\nimport classNames from 'classnames';\nimport UIModal from 'Components/UIComponents/UIModal';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport UISelect from 'Components/UIComponents/UISelect';\nimport { GetReportByEmailPayload } from 'Interfaces/Document';\nimport Toast from 'Services/Toast';\nimport { START_YEAR } from 'Utils/constants';\n\nexport interface ReportPeriodModalProps {\n onConfirm: (payload: GetReportByEmailPayload) => Promise;\n onClose: () => void;\n}\n\nfunction ReportPeriodModal({ onConfirm, onClose }: ReportPeriodModalProps) {\n const isMobile = useIsMobile();\n const [year, setYear] = useState();\n\n const years = useMemo(() => {\n const currentYear = new Date().getFullYear();\n const array: { value: number; label: string }[] = [];\n\n for (let index = START_YEAR; index <= currentYear; index++) {\n array.push({ value: index, label: `${index}` });\n }\n\n return array;\n }, []);\n\n const handleConfirmSelectedYear = useCallback(async () => {\n if (year) {\n try {\n await onConfirm({ year });\n onClose();\n } catch (err) {\n Toast.error(err.message);\n }\n }\n }, [onClose, onConfirm, year]);\n\n return (\n \n
    \n
    \n
    \n
    \n Access Your Document Report\n
    \n
    \n Please specify the timeframe you want the report to cover.\n
    \n
    \n
    \n setYear(value)}\n options={years}\n placeholder=\"Select Reporting Period\"\n className=\"documentReportModal__selectYear\"\n contentWrapperClassName=\"documentReportModal__selectYear-contentWrapper\"\n />\n
    \n
    \n \n
    \n
    \n
    \n
    \n );\n}\n\nexport default ReportPeriodModal;\n","import React, { useCallback } from 'react';\nimport Billet from './Billet';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport { useSelector } from 'react-redux';\nimport { selectUser, selectUserPlan } from 'Utils/selectors';\nimport { PlanTypes } from 'Interfaces/Billing';\nimport { useModal } from 'react-modal-hook';\nimport ReportPeriodModal from './modals/ReportPeriodModal';\nimport useReportByEmailGet from 'Hooks/Document/useReportByEmailGet';\nimport { GetReportByEmailPayload } from 'Interfaces/Document';\nimport ConfirmModal from 'Components/ConfirmModal';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport classNames from 'classnames';\nimport { UserRoles } from 'Interfaces/User';\n\ntype onPlanTypeCheckSuccess = (...args: any) => void;\n\ninterface ReportFieldsProps {\n disabled?: boolean;\n openUpgradeModal: () => void;\n}\n\nconst ReportFields = ({ disabled = false, openUpgradeModal }: ReportFieldsProps) => {\n const isMobile = useIsMobile();\n const userPlan = useSelector(selectUserPlan);\n const user = useSelector(selectUser);\n const [getReportByEmail] = useReportByEmailGet();\n\n const [openSuccessModal, closeSuccessModal] = useModal(\n () => (\n \n
    \n

    Report is on the way!

    \n
    \n

    \n Thank you for requesting a report of your signed documents. The report, based on\n the selected period, is currently being generated and will be sent to your\n registered email address shortly. Please check your inbox (and spam folder, just\n in case) in a few minutes.\n

    \n \n ),\n [],\n );\n\n const handleGetReportByEmail = useCallback(\n async (payload: GetReportByEmailPayload) => {\n await getReportByEmail(payload);\n openSuccessModal();\n },\n [getReportByEmail, openSuccessModal],\n );\n\n const [openReportPeriodModal, closeReportPeriodModal] = useModal(\n () => (\n \n ),\n [],\n );\n\n const handleBusinessPlanCheck = useCallback(\n (onSuccess: onPlanTypeCheckSuccess) => (...args) => {\n if (userPlan.type !== PlanTypes.BUSINESS && !user.teamId) {\n return openUpgradeModal();\n }\n\n onSuccess && onSuccess(...args);\n },\n [openUpgradeModal, userPlan.type],\n );\n\n return (\n
    \n
    \n
    \n

    Report

    \n {disabled && }\n
    \n
    \n openReportPeriodModal())}\n disabled={user.role !== UserRoles.OWNER}\n />\n
    \n );\n};\n\nexport default ReportFields;\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { GetReportByEmailPayload } from 'Interfaces/Document';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction(async (payload: GetReportByEmailPayload) =>\n $actions.document.getReportByEmail(dispatch, payload),\n );\n};\n","import classNames from 'classnames';\nimport { ActionStepBar, ActionStepBarMobile } from 'Components/ActionStepBar';\nimport { FieldTextArea, FieldTextInput } from 'Components/FormFields';\nimport FieldDatePicker from 'Components/FormFields/FieldDatePicker';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport UIDatePicker from 'Components/UIComponents/UIDatePicker';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport { PlanTypes } from 'Interfaces/Billing';\nimport { Document, DocumentTypes, SignActionLabel } from 'Interfaces/Document';\nimport { Billet } from 'Pages/Settings/Company/components';\nimport React, { useCallback, useMemo } from 'react';\nimport { Field } from 'react-final-form';\nimport { useSelector } from 'react-redux';\nimport { composeValidators } from 'Utils/functions';\nimport { selectUser, selectUserPlan } from 'Utils/selectors';\nimport {\n maxLength100,\n notOnlySpaces,\n titleNotUrlProtocol,\n required,\n messageNotUrlProtocol,\n} from 'Utils/validation';\n\ninterface FinishStepProps {\n buttonTitle?: string;\n isLoading?: boolean;\n isBaseOnTemplate?: boolean;\n onChooseAction: (step: number) => void;\n document?: Document;\n onUpdateFinishFields: ({ title, message, expirationDate }) => void;\n title: string | undefined;\n setTitle: React.Dispatch>;\n message: string | undefined | null;\n setMessage: React.Dispatch>;\n expirationDate: Date | undefined;\n setExpirationDate: React.Dispatch>;\n isBreadcrumbsBan: boolean;\n}\n\nfunction getActionType(type?: DocumentTypes) {\n switch (type) {\n case DocumentTypes.ME_AND_OTHER:\n return SignActionLabel.SIGN_AND_SEND;\n case DocumentTypes.OTHERS:\n return SignActionLabel.SEND;\n default:\n return SignActionLabel.SIGN_DOCUMENT;\n }\n}\n\nconst FinishStep = ({\n buttonTitle = 'Finish',\n isLoading,\n isBaseOnTemplate,\n onChooseAction,\n document,\n onUpdateFinishFields,\n title,\n setTitle,\n message,\n setMessage,\n expirationDate,\n setExpirationDate,\n isBreadcrumbsBan,\n}: FinishStepProps) => {\n const user = useSelector(selectUser);\n const userPlan = useSelector(selectUserPlan);\n const isMobile = useIsMobile();\n\n const handleChangeAction = useCallback(\n step => {\n if (\n document?.title !== title ||\n document?.message !== message ||\n document?.expirationDate !== expirationDate\n ) {\n onUpdateFinishFields({ title, message, expirationDate });\n }\n onChooseAction(step);\n },\n [document, expirationDate, message, onChooseAction, onUpdateFinishFields, title],\n );\n\n const handleChangeTitleOrMessage = (value, name) => {\n switch (name) {\n case 'title':\n setTitle(value);\n break;\n case 'message':\n value = value || null;\n setMessage(value);\n break;\n }\n return value;\n };\n\n const handleChangeDateFilter = useCallback(\n (date: Date) => {\n if (date) {\n setExpirationDate(date);\n } else {\n setExpirationDate(undefined);\n }\n },\n [setExpirationDate],\n );\n\n const handleCancelDateFilter = useCallback(() => {\n setExpirationDate(undefined);\n }, [setExpirationDate]);\n\n const [isOnlyMeType, isDisableExpirationDatePicker] = useMemo(() => {\n return [\n document?.type === DocumentTypes.ME,\n user.plan.type !== PlanTypes.BUSINESS && !user.teamId,\n ];\n }, [document, user.plan.type, user.teamId]);\n\n const disabledExpirationDates = [{ from: new Date(0), to: new Date() }];\n\n return (\n
    \n {!isBreadcrumbsBan &&\n (isMobile ? (\n \n ) : (\n \n ))}\n
    \n
    Final Step
    \n (\n required,\n notOnlySpaces,\n maxLength100,\n titleNotUrlProtocol,\n )}\n />\n Optional Message

    }\n component={FieldTextArea}\n parse={handleChangeTitleOrMessage}\n placeholder=\"Add an optional message for the document signers.\"\n validate={\n userPlan.type === PlanTypes.FREE && !user.teamId\n ? composeValidators(messageNotUrlProtocol)\n : undefined\n }\n />\n {!isOnlyMeType && !isDisableExpirationDatePicker && (\n Expiration Date

    }\n position=\"right\"\n onDateSelect={handleChangeDateFilter}\n onCancel={handleCancelDateFilter}\n disabledDays={disabledExpirationDates}\n fromMonth={new Date()}\n />\n )}\n
    \n
    \n \n
    \n {!isOnlyMeType && isDisableExpirationDatePicker && (\n \n
    \n \n
    \n Expiration Date

    }\n className={'wizardSignForm__datePicker--disabled'}\n disabled={isDisableExpirationDatePicker}\n />\n
    \n )}\n \n );\n};\n\nexport default FinishStep;\n","import React, { useCallback, useMemo, useState } from 'react';\nimport { FieldRenderProps } from 'react-final-form';\nimport { IntegrationTypes } from 'Interfaces/Integration';\nimport { UIMultiUploader } from 'Components/UIComponents/UIUploader';\nimport { DocumentItem, FileItem } from 'Interfaces/Common';\nimport classNames from 'classnames';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\n\ninterface SingleFileFieldProps extends FieldRenderProps {\n disabled?: boolean;\n files?: DocumentItem[];\n onFileUpload: (file: File) => Promise;\n onUploadCancel?: (fileItem: FileItem) => Promise;\n onUploadSuccess?: () => void;\n onUploadFailure?: (error: string) => void;\n isFileProcessed: boolean;\n submitting: boolean;\n onFileReorder: (orders: FileItem[]) => void;\n disableReorder?: boolean;\n isCleanFileData?: boolean;\n isShowWarning?: boolean;\n disableImportServices?: boolean;\n filesLimit?: number;\n}\n\nfunction SingleFileField({\n input,\n disabled,\n onUploadCancel,\n onFileUpload,\n files,\n isFileProcessed,\n submitting,\n onUploadSuccess = () => {},\n onUploadFailure = () => {},\n onFileReorder,\n disableReorder,\n isCleanFileData,\n isShowWarning,\n disableImportServices,\n filesLimit,\n}: SingleFileFieldProps) {\n const [uploadError, setUploadError] = useState(null);\n const { value, onChange } = input;\n const isMobile = useIsMobile();\n\n const isSomeErrorFile = useMemo(() => files && files.some(file => !!file.errorText), [\n files,\n ]);\n\n const handleFileUpload = useCallback(\n async (file: File) => {\n try {\n onChange(undefined);\n\n await onFileUpload(file);\n\n setUploadError(null);\n onUploadSuccess();\n } catch (error) {\n setUploadError('Failed to upload');\n const e = error as Error;\n onUploadFailure(e.message);\n }\n },\n [onChange, onFileUpload, onUploadFailure, onUploadSuccess],\n );\n\n return (\n
    \n
    \n \n\n {isShowWarning && (\n
    \n

    *

    \n

    \n To keep your email box tidy, Signaturely only attaches documents under 10Mb\n as PDF files to the email sent when they get signed. You will still be able\n to download larger files from the Download link.\n

    \n
    \n )}\n
    \n \n
    \n );\n}\n\nexport default SingleFileField;\n","import React, { useState, useCallback, useMemo } from 'react';\nimport ConfirmModal from 'Components/ConfirmModal';\nimport UISelect from 'Components/UIComponents/UISelect';\nimport { BulkSendSigner, SignerColumnIndexes } from 'Interfaces/Document';\n\ninterface HeadersSelectModalProps {\n headers: string[];\n signerRows: string[][];\n onSignersChange: (signers: BulkSendSigner[]) => void;\n buttonDisabled?: boolean;\n onClose: () => void;\n onConfirm: () => void;\n}\n\nconst HeadersSelectModal = ({\n onSignersChange,\n headers,\n signerRows,\n onConfirm,\n buttonDisabled,\n onClose,\n}: HeadersSelectModalProps) => {\n const [columnIndexes, setColumnIndexes] = useState();\n const selectableColumns = useMemo(\n () =>\n headers\n ? headers.map((column, index) => ({\n value: index,\n label: column,\n }))\n : [],\n [headers],\n );\n\n const handleSelect = useCallback(\n (columnIndexes: SignerColumnIndexes) => {\n setColumnIndexes(columnIndexes);\n const { name, email } = columnIndexes;\n if (name !== undefined && email !== undefined) {\n const signers: BulkSendSigner[] = signerRows.map(row => ({\n name: row[name],\n email: row[email],\n }));\n onSignersChange(signers);\n }\n },\n [onSignersChange, signerRows],\n );\n\n return (\n \n
    \n

    Select name and email columns

    \n

    \n Please map the name and email fields below.\n

    \n
    \n \n {\n handleSelect({ ...columnIndexes, name: value as number | undefined });\n }}\n isClearable={columnIndexes?.name !== undefined}\n />\n
    \n
    \n \n {\n handleSelect({ ...columnIndexes, email: value as number | undefined });\n }}\n isClearable={columnIndexes?.email !== undefined}\n />\n
    \n
    \n \n );\n};\n\nexport default HeadersSelectModal;\n","import React, { useState, useCallback, useMemo } from 'react';\nimport { useSelector } from 'react-redux';\nimport { FormRenderProps, Field } from 'react-final-form';\nimport { Document, DocumentBulkSendValues } from 'Interfaces/Document';\nimport { selectOneRoleTemplates, selectUserPlan } from 'Utils/selectors';\nimport { composeValidators } from 'Utils/functions';\nimport {\n required,\n maxLength100,\n notOnlySpaces,\n titleNotUrlProtocol,\n messageNotUrlProtocol,\n} from 'Utils/validation';\nimport UISelect from 'Components/UIComponents/UISelect';\nimport { FieldTextInput, FieldTextArea } from 'Components/FormFields';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport Arrow from 'Assets/images/icons/angle-arrow.svg';\nimport { useModal, useCsvParse } from 'Hooks/Common';\nimport HeadersSelectModal from './HeadersSelectModal';\nimport { ParsedCsvData } from 'Interfaces/Common';\nimport UIUploader from 'Components/UIComponents/UIUploader';\nimport { PlanTypes } from 'Interfaces/Billing';\n\ninterface BulkSendFieldsProps extends FormRenderProps {\n onTemplateSelect?: (templateId: Document['id'] | undefined) => void;\n rowParsingLimit?: number;\n columnParsingLimit?: number;\n}\n\nconst BulkSendFields = ({\n handleSubmit,\n form,\n hasValidationErrors,\n submitting,\n onTemplateSelect,\n rowParsingLimit,\n columnParsingLimit,\n}: BulkSendFieldsProps) => {\n const templates = useSelector(selectOneRoleTemplates);\n const userPlan = useSelector(selectUserPlan);\n const [parsedFileData, setParsedFileData] = useState();\n const [uploadError, setUploadError] = useState(null);\n const parseFile = useCsvParse();\n const selectableOptions = useMemo(\n () =>\n templates\n ? templates.map(template => ({\n value: template.id,\n label: template.title,\n }))\n : [],\n [templates],\n );\n\n const handleTemplateSelect = useCallback(\n (value?: string | number) => {\n onTemplateSelect && onTemplateSelect(value as string);\n },\n [onTemplateSelect],\n );\n\n const handleSignersChange = useCallback(\n signers => {\n form.change('signers', signers);\n },\n [form],\n );\n\n const handleFileUpload = useCallback(\n async file => {\n try {\n setUploadError(null);\n const parsedFileData = await parseFile(file, rowParsingLimit, columnParsingLimit);\n setParsedFileData(parsedFileData);\n } catch (error) {\n setUploadError(error.message || 'Failed to upload');\n handleSignersChange(undefined);\n setParsedFileData(undefined);\n }\n },\n [columnParsingLimit, handleSignersChange, parseFile, rowParsingLimit],\n );\n\n const handleUploadCancel = useCallback(() => {\n setParsedFileData(undefined);\n setUploadError(null);\n handleSignersChange(undefined);\n }, [handleSignersChange]);\n\n const [showHeadersSelectModal, closeHeadersSelectModal] = useModal(\n () => (\n {\n closeHeadersSelectModal();\n }}\n headers={parsedFileData?.headers as string[]}\n signerRows={parsedFileData?.rows as string[][]}\n onConfirm={async () => {\n await handleSubmit();\n closeHeadersSelectModal();\n }}\n buttonDisabled={submitting || hasValidationErrors}\n onSignersChange={handleSignersChange}\n />\n ),\n [parsedFileData, hasValidationErrors, submitting, handleSignersChange],\n );\n\n return (\n
    \n
    \n

    \n Choose the template you would like to sign.\n

    \n
    \n Template must have only one signer with preparer.\n
    \n (\n \n )}\n validate={required}\n />\n
    \n
    \n

    Upload CSV

    \n
    \n Send a signature request to a group of people all at once. Just upload a CSV\n file with names and email addresses.\n
    \n \n
    \n
    \n {\n if (event.key === 'Enter') event.preventDefault();\n }}\n placeholder=\"Document Title\"\n validate={composeValidators(\n required,\n notOnlySpaces,\n maxLength100,\n titleNotUrlProtocol,\n )}\n />\n \n Message for Signers (Optional)\n

    \n }\n component={FieldTextArea}\n placeholder=\"Add an optional message for signers. \"\n validate={\n userPlan.type === PlanTypes.FREE\n ? composeValidators(messageNotUrlProtocol)\n : undefined\n }\n />\n
    \n\n
    \n \n
    \n
    \n );\n};\n\nexport default BulkSendFields;\n","import { useCallback } from 'react';\nimport { parseCsvByStep } from 'Utils/functions';\n\nexport default () =>\n useCallback(async (file: File, rowLimit?: number, columnLimit?: number) => {\n const data = await parseCsvByStep(file, rowLimit, columnLimit);\n return { headers: data[0], rows: data.slice(1) };\n }, []);\n","import React from 'react';\nimport ConfirmModal from 'Components/ConfirmModal';\nimport { CsvEmailError } from 'Interfaces/Document';\n\ninterface ValidationBulkSendModalProps {\n validationErrors: CsvEmailError[];\n onClose: () => void;\n}\n\nconst ValidationBulkSendModal = ({\n validationErrors,\n onClose,\n}: ValidationBulkSendModalProps) => {\n return (\n \n
    \n
    \n Uploaded CSV has validation errors.\n
    \n

    \n If you want to send it, please check following emails:\n

    \n
      \n {validationErrors.map((error, index) => (\n
    • \n ‒ Row {error.index + 2}: {error.message}\n
    • \n ))}\n
    \n
    \n \n );\n};\n\nexport default ValidationBulkSendModal;\n","import React, { useState, useCallback, useMemo, useEffect } from 'react';\nimport { useSelector } from 'react-redux';\nimport { Form, FormRenderProps } from 'react-final-form';\nimport Toast from 'Services/Toast';\nimport { Document, DocumentBulkSendValues, CsvEmailError } from 'Interfaces/Document';\nimport {\n useAllDocumentsGet,\n useDocumentBulkSend,\n DocumentValidators,\n} from 'Hooks/Document';\nimport { selectDocument, selectUser } from 'Utils/selectors';\nimport BulkSendFields from './BulkSendFields';\nimport { useModal } from 'Hooks/Common';\nimport ValidationBulkSendModal from './ValidationBulkSendModal';\nimport History from 'Services/History';\nimport { handleCsvFileCrlf, processSubmissionErrors } from 'Utils/functions';\nimport { AuthorizedRoutePaths } from 'Interfaces/RoutePaths';\nimport ConfirmModal from 'Components/ConfirmModal';\n\nconst rowLimit = 101;\nconst columnLimit = 100;\n\ninterface BulkSendFormProps {\n isShowLimitationModal?: boolean;\n setShowLimitationModal?: (flag: boolean) => void;\n}\n\nconst BulkSendForm = ({\n isShowLimitationModal,\n setShowLimitationModal,\n}: BulkSendFormProps) => {\n const { isTrialSubscription } = useSelector(selectUser);\n const [getAllDocuments] = useAllDocumentsGet();\n const [validationErrors, setValidationErrors] = useState([]);\n const [sendDocumentBulk] = useDocumentBulkSend();\n const validateBulkSendValues = DocumentValidators.useBulkSendValidation();\n const [selectedTemplateId, setSelectedTemplateId] = useState<\n Document['id'] | undefined | null\n >();\n\n const selectedTemplate = useSelector(state =>\n selectDocument(state, { documentId: selectedTemplateId }),\n );\n\n const [openValidationModal, closeValidationModal] = useModal(\n () => (\n \n ),\n [validationErrors],\n );\n\n const [openLimitationModal, closeLimitationModal] = useModal(() => {\n const handleCloseLimitationModal = () => {\n setShowLimitationModal && setShowLimitationModal(false);\n closeLimitationModal();\n };\n\n return (\n \n
    \n

    Bulk Send Limitation

    \n
    \n

    \n Hi! Please note, during your trial, Bulk Send is limited to 1 request with 25\n signatures.\n
    \n Full access will be available post-trial.\n

    \n \n );\n }, []);\n\n const handleSubmit = useCallback(\n async (values: DocumentBulkSendValues) => {\n try {\n const bulkSendValues = handleCsvFileCrlf(values);\n const validationErrors = validateBulkSendValues(bulkSendValues);\n\n if (validationErrors.errors.length === 0) {\n await sendDocumentBulk(bulkSendValues);\n Toast.success('Documents successfully created');\n History.push(AuthorizedRoutePaths.DOCUMENTS);\n } else {\n openValidationModal();\n setValidationErrors(validationErrors.errors);\n }\n } catch (error) {\n Toast.handleErrors(error);\n processSubmissionErrors(error);\n }\n },\n [openValidationModal, sendDocumentBulk, validateBulkSendValues],\n );\n\n const handleGetAllDocuments = useCallback(async () => {\n try {\n await getAllDocuments({\n withTeammateTemplates: true,\n });\n } catch (error) {\n Toast.handleErrors(error);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n handleGetAllDocuments();\n }, [handleGetAllDocuments]);\n\n useEffect(() => {\n if (isTrialSubscription && isShowLimitationModal) {\n openLimitationModal();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const initialValues = useMemo(() => {\n return {\n title: selectedTemplate?.title,\n message: selectedTemplate?.message,\n templateId: selectedTemplate?.id,\n } as DocumentBulkSendValues;\n }, [selectedTemplate]);\n\n return (\n
    \n

    \n Get Your Template Signed by Many\n

    \n ) => (\n \n )}\n />\n
    \n );\n};\n\nexport default BulkSendForm;\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { DocumentsAllGetPayload } from 'Interfaces/Document';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload?: DocumentsAllGetPayload) =>\n $actions.document.getAllDocuments(dispatch, payload),\n );\n};\n","import { useDispatch } from 'react-redux';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { $actions } from 'Store';\nimport { DocumentBulkSendValues } from 'Interfaces/Document';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: DocumentBulkSendValues) =>\n $actions.document.sendDocumentBulk(dispatch, payload),\n );\n};\n","import { DocumentItem, FileItem } from 'Interfaces/Common';\nimport {\n Document,\n DocumentFileUploadResponse,\n DocumentTypes,\n DocumentUpdatePayload,\n DocumentValues,\n} from 'Interfaces/Document';\nimport React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { Field, FormRenderProps } from 'react-final-form';\nimport SingleFileField from './SingleFileField';\nimport uuid from 'uuid/v4';\nimport {\n useDocumentConvertionProgressWatcher,\n useDocumentCreate,\n useDocumentDelete,\n useDocumentFileDataClean,\n useDocumentUpload,\n} from 'Hooks/Document';\nimport _ from 'lodash';\nimport Toast from 'Services/Toast';\nimport { isNotEmpty } from 'Utils/functions';\nimport UISelect from 'Components/UIComponents/UISelect';\nimport { tabItems, TabTypes } from './TabItems';\nimport BulkSendForm from 'Components/BulkSendForm';\nimport classNames from 'classnames';\nimport {\n multipleAttachingMailFilesConstaint,\n multipleFilesConstaint,\n} from 'Utils/validation';\n\ninterface UploadFileStepProps extends FormRenderProps {\n document?: Document;\n initialValues: DocumentValues;\n templates?: Document[];\n isLoading?: boolean;\n onDocumentCreate: (id: string) => void;\n onTemplateSelect?: (templateId: Document['id'] | undefined) => void;\n updateDocument: (values: DocumentUpdatePayload) => void;\n isDocumentUpdating: boolean;\n tabType: TabTypes;\n setTabType: (tabType: TabTypes) => void;\n isEditMode: boolean;\n isFileProcessed: boolean | number | undefined;\n setIsFileProcessed: (isFileProcessed: boolean) => void;\n}\n\nexport const UploadFileStep = ({\n values,\n form,\n submitting,\n document,\n templates,\n isLoading,\n onDocumentCreate,\n onTemplateSelect,\n updateDocument,\n isDocumentUpdating,\n tabType,\n setTabType,\n isEditMode,\n isFileProcessed,\n setIsFileProcessed,\n}: UploadFileStepProps) => {\n const [createDocument] = useDocumentCreate();\n const [isConverting, setIsConverting] = useState(false);\n const [\n startWatchDocumentConvertionProgress,\n stopWatchDocumentConvertionProgress,\n ] = useDocumentConvertionProgressWatcher();\n const [cleanFileData, isCleaning] = useDocumentFileDataClean();\n const initialDocumentFiles = useMemo(() => {\n if (document && !values.templateId) {\n const fileItems = document.parts.map(part => ({\n id: part.id,\n token: uuid(),\n filename: part.originalFileName,\n isUploaded: false,\n isFinished: part.filesUploaded,\n order: part.order,\n errorText: part.errorText,\n }));\n\n return _.orderBy(fileItems, 'order');\n }\n\n return [];\n }, [document, values.templateId]);\n const [files, setFiles] = useState(initialDocumentFiles);\n const [tokenInUploading, setTokenInUploading] = useState(null);\n\n const [uploadDocument, cancelUpload, isUploading] = useDocumentUpload();\n const [tabIndex, setTabIndex] = useState(0);\n const [isDisabledTabs, setDisabledTabs] = useState(false);\n const [isShowWarning, setShowWarning] = useState(false);\n const [isShowLimitationModal, setShowLimitationModal] = useState(true);\n\n const selectableOptions = useMemo(\n () =>\n templates\n ? templates.map(template => ({\n value: template.id,\n label: template.title,\n }))\n : [],\n [templates],\n );\n\n const filterFormEmptyLists = useCallback(\n (values: DocumentValues): DocumentValues => ({\n ...values,\n signers: values.signers?.filter((signer, index) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { order, role, ...restSigner } = signer || {};\n\n return (\n signer?.isPreparer ||\n (form.getFieldState(`signers[${index}].email`)?.valid &&\n form.getFieldState(`signers[${index}].name`)?.valid)\n );\n }),\n recipients: values.recipients?.filter(\n (recipient, index) => form.getFieldState(`recipients[${index}]email`)?.valid,\n ),\n }),\n [form],\n );\n\n useEffect(() => {\n if (isConverting && document) {\n setFiles(prev =>\n prev.map(fileItem => {\n const documentPart = document.parts.find(part => part.id === fileItem.id);\n\n if (documentPart?.errorText && !documentPart.pdfMetadata) {\n return {\n ...fileItem,\n errorText: documentPart.errorText,\n };\n }\n\n if (documentPart && documentPart.files && documentPart.pdfMetadata) {\n const nextProgress =\n (documentPart.files?.length / documentPart.pdfMetadata.pages) * 50 + 50;\n\n return {\n ...fileItem,\n progress: nextProgress,\n isFinished: documentPart.filesUploaded ?? nextProgress === 100,\n errorText: documentPart.errorText,\n };\n }\n\n return fileItem;\n }),\n );\n }\n }, [document, isConverting]);\n\n useEffect(() => {\n return () => stopWatchDocumentConvertionProgress();\n }, [stopWatchDocumentConvertionProgress]);\n\n useEffect(() => {\n const isFilesComplete =\n document?.parts.length &&\n document?.parts.every(part => part.filesUploaded || !!part.errorText) &&\n files.every(file => file.isFinished || !!file.errorText);\n\n setIsFileProcessed(isFilesComplete as boolean);\n\n if (isFilesComplete) {\n setIsConverting(false);\n stopWatchDocumentConvertionProgress();\n }\n }, [\n document,\n files,\n isFileProcessed,\n setIsFileProcessed,\n stopWatchDocumentConvertionProgress,\n ]);\n\n const handleUploadCancelAll = useCallback(async () => {\n try {\n if (document) {\n cancelUpload();\n setIsConverting(false);\n setIsFileProcessed(false);\n stopWatchDocumentConvertionProgress();\n\n setFiles([]);\n\n await cleanFileData({\n documentId: document.id,\n });\n }\n } catch (err) {\n Toast.error('Failed to remove files');\n }\n }, [\n cancelUpload,\n cleanFileData,\n document,\n setIsFileProcessed,\n stopWatchDocumentConvertionProgress,\n ]);\n\n const handleUploadError = useCallback(async () => {\n setIsConverting(false);\n setIsFileProcessed(false);\n stopWatchDocumentConvertionProgress();\n setFiles([]);\n }, [setIsFileProcessed, stopWatchDocumentConvertionProgress]);\n\n const handleTemplateSelect = useCallback(\n async (value?: string | number) => {\n onTemplateSelect && onTemplateSelect(value as string | undefined);\n\n if (value) {\n const currentTemplate =\n templates && templates.find(template => template.id === value);\n const templateSigners = _.orderBy(currentTemplate?.signers, 'order', 'asc');\n form.change('signers', templateSigners);\n } else {\n document &&\n updateDocument({\n values: {\n documentId: document.id,\n templateId: null,\n fields: [],\n signers: document.signers.filter(signer => signer.isPreparer),\n type: DocumentTypes.ME,\n },\n });\n }\n await handleUploadCancelAll();\n },\n [document, form, handleUploadCancelAll, onTemplateSelect, templates, updateDocument],\n );\n\n const handleFileUpload = useCallback(\n async (file: File) => {\n const documentFiles = files.map(item => item.file);\n const error = multipleFilesConstaint([...documentFiles, file]);\n const isLimitAttachedMailFiles = multipleAttachingMailFilesConstaint(files, file);\n setDisabledTabs(true);\n\n if (!error) {\n const newFileItem = {\n filename: file.name,\n token: uuid(),\n progress: 10,\n isUploaded: false,\n isFinished: false,\n file,\n };\n setFiles(prev => prev.concat([newFileItem]));\n } else {\n Toast.error(error);\n }\n\n if (isLimitAttachedMailFiles) {\n setShowWarning(isLimitAttachedMailFiles);\n }\n },\n [files],\n );\n\n const uploadDocumentPart = useCallback(\n async (fileItem: DocumentItem) => {\n try {\n if (isUploading || !fileItem.file) {\n return;\n }\n\n let doc = document;\n\n if (!doc) {\n doc = (await createDocument(filterFormEmptyLists(values))) as Document;\n onDocumentCreate(doc.id);\n }\n const uploadResponse = await uploadDocument({\n documentId: doc.id,\n file: fileItem.file,\n });\n\n if (isNotEmpty(uploadResponse) && !isConverting) {\n startWatchDocumentConvertionProgress({ documentId: doc.id });\n setIsConverting(true);\n }\n\n setFiles(prev =>\n prev.map(item => {\n if (item.token !== fileItem.token) {\n return item;\n }\n\n const { documentPart } = uploadResponse as DocumentFileUploadResponse;\n\n return {\n ...item,\n isUploaded: true,\n progress: 50,\n id: documentPart?.id,\n order: documentPart?.order,\n };\n }),\n );\n\n setTokenInUploading(null);\n } catch (err) {\n await handleUploadError();\n Toast.handleErrors(err);\n }\n },\n [\n createDocument,\n document,\n filterFormEmptyLists,\n handleUploadError,\n isConverting,\n isUploading,\n onDocumentCreate,\n startWatchDocumentConvertionProgress,\n uploadDocument,\n values,\n ],\n );\n\n const handleFilesReorder = useCallback(\n async (newOrdered: FileItem[]) => {\n try {\n if (document) {\n setFiles(_.orderBy(newOrdered, 'order'));\n\n const reorderedDocumentParts = document?.parts\n .filter(part =>\n newOrdered.find(newOrderedItem => newOrderedItem.id === part.id),\n )\n .map(part => {\n const orderItem = newOrdered.find(order => order.id === part.id);\n return orderItem ? { id: part.id, order: orderItem.order } : part;\n });\n\n await updateDocument({\n values: {\n parts: reorderedDocumentParts,\n documentId: document.id,\n type: document.type,\n },\n });\n }\n } catch (err) {\n Toast.handleErrors(err);\n }\n },\n [document, updateDocument],\n );\n\n const handleUploadCancel = useCallback(\n async (fileItem: FileItem) => {\n try {\n if (document?.parts?.findIndex(part => part.id === fileItem.id) === -1) {\n return;\n }\n\n if (fileItem.id && document) {\n await cleanFileData({\n documentId: document.id,\n documentPartId: fileItem.id,\n });\n }\n\n const isEmpty = !files.filter(file => file.token !== fileItem.token).length;\n\n if (isEmpty) {\n setIsConverting(false);\n setIsFileProcessed(false);\n stopWatchDocumentConvertionProgress();\n }\n\n setFiles(prev => prev.filter(file => file.token !== fileItem.token));\n } catch (error) {\n Toast.error('Failed to remove file');\n }\n },\n [\n cleanFileData,\n document,\n files,\n setIsFileProcessed,\n stopWatchDocumentConvertionProgress,\n ],\n );\n\n const showTabContent = useCallback(() => {\n switch (tabType) {\n case TabTypes.UPLOAD_FILE: {\n return (\n <>\n \n

    Choose Template

    \n (\n 0}\n contentWrapperClassName={\n selectableOptions.length > 0\n ? 'uiSelect__search-contentWrapper'\n : undefined\n }\n isSearchable={selectableOptions.length > 0 ? true : false}\n searchInputPlaceholder={'Search for Templates...'}\n searchWrapperClassName={\n selectableOptions.length > 0\n ? 'uiSelect__search-searchWrapper'\n : undefined\n }\n />\n )}\n />\n \n );\n }\n case TabTypes.BULK_SEND: {\n return (\n \n );\n }\n default:\n return null;\n }\n }, [\n files,\n handleFileUpload,\n handleFilesReorder,\n handleTemplateSelect,\n handleUploadCancel,\n isCleaning,\n isConverting,\n isDocumentUpdating,\n isFileProcessed,\n isLoading,\n isShowLimitationModal,\n isShowWarning,\n isUploading,\n selectableOptions,\n submitting,\n tabType,\n values.templateId,\n ]);\n\n const handleSetTab = useCallback(\n (index, type) => {\n setTabIndex(index);\n setTabType(type);\n onTemplateSelect && onTemplateSelect(undefined);\n },\n [onTemplateSelect, setTabType],\n );\n\n useEffect(() => {\n const nextUploadItem = files.find(file => !file.isUploaded && !file.isFinished);\n\n if (!tokenInUploading && nextUploadItem) {\n setTokenInUploading(nextUploadItem.token);\n uploadDocumentPart(nextUploadItem);\n }\n }, [files, tokenInUploading, uploadDocumentPart]);\n\n useEffect(() => {\n if (document && document.parts.length === 0 && files.length === 0) {\n setDisabledTabs(false);\n }\n }, [document, files]);\n\n return (\n
    \n {document && isEditMode ? (\n <>\n
    \n
    \n
    Upload File
    \n
    \n
    \n \n ) : (\n <>\n
    \n
      \n {tabItems.map((item, index) => {\n const { title, type } = item;\n\n return (\n {\n handleSetTab(index, type);\n }}\n >\n {title}\n \n );\n })}\n
    \n
    \n \n )}\n {showTabContent()}\n
    \n );\n};\n","import classNames from 'classnames';\nimport { FieldTextInput } from 'Components/FormFields';\nimport SignersArray from 'Components/FormFields/SignersArray';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport { ExecuteAction } from 'Hooks/Common/useAsyncAction';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport {\n useDocumentCreateByExistTemplate,\n useDocumentUpdateByExistTemplate,\n} from 'Hooks/Document';\nimport {\n Document,\n DocumentTypes,\n DocumentUpdatePayload,\n DocumentValues,\n} from 'Interfaces/Document';\nimport React, { useCallback, useEffect, useState } from 'react';\nimport { Field, FormRenderProps } from 'react-final-form';\nimport { FieldArray } from 'react-final-form-arrays';\nimport { useSelector } from 'react-redux';\nimport Toast from 'Services/Toast';\nimport { callActionAsync, composeValidators } from 'Utils/functions';\nimport { selectActiveTemplates } from 'Utils/selectors';\nimport { email, notOnlySpaces, required } from 'Utils/validation';\nimport FinishStep from './FinishStep';\nimport { TabTypes } from './TabItems';\nimport { UploadFileStep } from './UploadFileStep';\n\ninterface WizardSignFormValuesProps {\n currentStep: number;\n isBreadcrumbsBan: boolean;\n renderProps: FormRenderProps;\n document?: Document;\n setDocumentId: React.Dispatch>;\n isTemplatesLoading: boolean;\n setSelectedTemplateId: React.Dispatch>;\n updateDocument: ExecuteAction>;\n isUpdatingDocument: boolean;\n tabType: TabTypes;\n handleSetTabType: (tabType: TabTypes) => void;\n isEditMode: boolean;\n selectedTemplate: Document | undefined;\n handleSubmitForm: () => void;\n isUploadedFile: boolean | 0 | undefined;\n getFinalStepButtonTitle(documentType: DocumentTypes): any;\n formattedInitialValues: DocumentValues;\n isSendingDocument: boolean;\n handleChooseActionStep: (step: number) => void;\n handleUpdateDocument: (values: any) => Promise;\n documentId: string | undefined;\n showInteractModal: () => void;\n setFirstCurrentStep: () => void;\n}\n\nconst WizardSignFormValues = ({\n currentStep,\n isBreadcrumbsBan,\n renderProps,\n document,\n setDocumentId,\n isTemplatesLoading,\n setSelectedTemplateId,\n updateDocument,\n isUpdatingDocument,\n tabType,\n handleSetTabType,\n isEditMode,\n selectedTemplate,\n handleSubmitForm,\n isUploadedFile,\n getFinalStepButtonTitle,\n formattedInitialValues,\n isSendingDocument,\n handleChooseActionStep,\n handleUpdateDocument,\n documentId,\n showInteractModal,\n setFirstCurrentStep,\n}: WizardSignFormValuesProps) => {\n const [fileSubmitting, setFileSubmitting] = useState(false);\n\n const [title, setTitle] = useState(document?.title);\n const [message, setMessage] = useState(document?.message);\n const [expirationDate, setExpirationDate] = useState(\n document?.expirationDate,\n );\n\n const templates = useSelector(selectActiveTemplates);\n\n const isMobile = useIsMobile();\n\n const { values, form } = renderProps;\n\n const [isFileProcessed, setIsFileProcessed] = useState(\n document?.parts?.length && !!document?.parts.every(part => part.filesUploaded),\n );\n\n useEffect(() => {\n if (!values.templateId) return;\n formattedInitialValues.title =\n title || templates.find(template => template.id === values.templateId)?.title;\n formattedInitialValues.message =\n message || templates.find(template => template.id === values.templateId)?.message;\n formattedInitialValues.expirationDate = expirationDate;\n }, [\n expirationDate,\n formattedInitialValues.expirationDate,\n formattedInitialValues.message,\n formattedInitialValues.title,\n message,\n templates,\n title,\n values.templateId,\n ]);\n\n const [createDocumentByExistTemplate] = useDocumentCreateByExistTemplate();\n const [updateDocumentByExistTemplate] = useDocumentUpdateByExistTemplate();\n\n const handleTemplateEditPrepare = useCallback(\n async (values: DocumentValues) => {\n if (form.getState().hasValidationErrors || form.getState().hasSubmitErrors) {\n return form.submit();\n }\n\n if (!documentId) {\n const document = (await createDocumentByExistTemplate({\n ...values,\n })) as Document;\n form.change('signers', document.signers);\n form.change('fields', document.fields);\n setDocumentId(document.id);\n } else {\n const updatedDocument = (await updateDocumentByExistTemplate({\n ...values,\n id: documentId as string,\n })) as Document;\n\n form.change('signers', updatedDocument.signers);\n form.change('fields', updatedDocument.fields);\n setDocumentId(updatedDocument.id);\n }\n\n return showInteractModal();\n },\n [\n createDocumentByExistTemplate,\n documentId,\n form,\n setDocumentId,\n showInteractModal,\n updateDocumentByExistTemplate,\n ],\n );\n\n const handleTemplateEdit = useCallback(async () => {\n try {\n await callActionAsync(handleTemplateEditPrepare, values, setFileSubmitting);\n setFirstCurrentStep();\n } catch (error) {\n Toast.handleErrors(error);\n }\n }, [handleTemplateEditPrepare, setFirstCurrentStep, values]);\n\n const handleSetSelectedTemplate = useCallback(\n (templateId: Document['id'] | undefined) => {\n setSelectedTemplateId(templateId);\n\n if (templateId) {\n const currentTemplate =\n templates && templates.find(template => template.id === templateId);\n\n setTitle(currentTemplate?.title);\n setMessage(currentTemplate?.message);\n }\n },\n [setSelectedTemplateId, templates],\n );\n\n return (\n \n {currentStep < 3 && (\n
    \n \n {selectedTemplate && (\n <>\n (\n \n !!fields.length && fields.length > 2 && !selectedTemplate\n }\n renderFields={name => (\n <>\n (required, notOnlySpaces)}\n />\n (required, email)}\n />\n \n )}\n />\n )}\n />\n \n )}\n {tabType === TabTypes.UPLOAD_FILE && (\n \n \n {selectedTemplate && (\n \n )}\n
    \n )}\n \n )}\n {currentStep === 3 && (\n \n )}\n \n );\n};\n\nexport default WizardSignFormValues;\n","import { useAsyncAction } from 'Hooks/Common';\nimport { DocumentValues } from 'Interfaces/Document';\nimport { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((values: DocumentValues) =>\n $actions.document.updateDocumentByExistTemplate(dispatch, { values }),\n );\n};\n","import { SuccessSendModal } from 'Components/DocumentForm';\nimport InteractModal from 'Components/Interact/InteractModal';\nimport arrayMutators from 'final-form-arrays';\nimport {\n useAllTemplatesGet,\n useAllTemplatesGetCancel,\n useDocumentCreate,\n useDocumentUpdate,\n} from 'Hooks/Document';\nimport { useDocumentSendOut } from 'Hooks/DocumentSign';\nimport {\n Document,\n DocumentTypes,\n DocumentValues,\n FinalStepButtonTitle,\n Signer,\n} from 'Interfaces/Document';\nimport * as _ from 'lodash';\nimport React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { Form, FormRenderProps } from 'react-final-form';\nimport { useModal } from 'react-modal-hook';\nimport { useSelector } from 'react-redux';\nimport Toast from 'Services/Toast';\nimport { processSubmissionErrors } from 'Utils/functions';\nimport { selectDocument } from 'Utils/selectors';\n\nimport { RecursivePartial } from 'Interfaces/Common';\n\nimport { TabTypes } from './TabItems';\nimport WizardSignFormValues from './WizardSignFormValues';\nimport { useCurrentUserGet } from 'Hooks/User';\nimport { isEmpty } from 'lodash';\n\nfunction getFinalStepButtonTitle(documentType: DocumentTypes) {\n switch (documentType) {\n case DocumentTypes.ME:\n return FinalStepButtonTitle.SIGN_DOCUMENT;\n case DocumentTypes.ME_AND_OTHER:\n return FinalStepButtonTitle.SIGN_AND_SEND;\n case DocumentTypes.OTHERS:\n return FinalStepButtonTitle.SEND;\n }\n}\n\ninterface WizardSignFormProps {\n initialValues: DocumentValues;\n initialStep?: number;\n isEditMode: boolean;\n}\n\nconst WizardSignForm = ({\n initialValues,\n initialStep = 1,\n isEditMode,\n}: WizardSignFormProps) => {\n const [currentStep, setCurrentStep] = useState(initialStep);\n const [isBreadcrumbsBan, setIsBreadcrumbsBan] = useState(false);\n const [isTemplateNotEdited, setIsTemplateNotEdited] = useState(false);\n const [sendDocument, isSendingDocument] = useDocumentSendOut();\n const [updateDocument, isUpdatingDocument] = useDocumentUpdate();\n const [createDocument] = useDocumentCreate();\n const [getAllTemplates, isTemplatesLoading] = useAllTemplatesGet();\n const cancelAllTemplatesLoading = useAllTemplatesGetCancel();\n const [getCurrentUser] = useCurrentUserGet();\n\n const [documentId, setDocumentId] = useState(\n initialValues.id,\n );\n const document = useSelector(state => selectDocument(state, { documentId }));\n\n const isUploadedFile = useMemo(\n () =>\n document &&\n document.parts.length &&\n document.parts.every(part => part.filesUploaded),\n [document],\n );\n const [tabType, setTabType] = useState(TabTypes.UPLOAD_FILE);\n const [isDisableInteractTooltip, disableInteractTooltip] = useState(false);\n\n const [selectedTemplateId, setSelectedTemplateId] = useState<\n Document['id'] | undefined | null\n >(initialValues.templateId);\n\n const selectedTemplate = useSelector(state =>\n selectDocument(state, { documentId: selectedTemplateId }),\n );\n\n const handleGetAllTemplates = useCallback(async () => {\n try {\n await getAllTemplates({\n withTeammateTemplates: true,\n });\n } catch (error) {\n Toast.handleErrors(error);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n handleGetAllTemplates();\n return () => cancelAllTemplatesLoading();\n }, [cancelAllTemplatesLoading, handleGetAllTemplates]);\n\n const [openSuccessModal, closeSuccessModal] = useModal(\n () => (\n \n ),\n [document],\n );\n\n const mergeSigners = useCallback(\n (signers: Signer[], documentSigners: Signer[]): RecursivePartial[] =>\n signers.map((signer, index) => ({\n ...documentSigners[index],\n role: signer.role,\n order: signer.order,\n })),\n [],\n );\n\n const formattedInitialValues = useMemo(() => {\n const documentSigners = ((document?.signers.length || 0) >=\n (initialValues.signers?.length || 0)\n ? document?.signers\n : initialValues.signers) as Signer[];\n const recipients = initialValues?.recipients\n ? initialValues?.recipients\n : document?.recipients;\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { fields, ...restDocument } = document || {};\n const { signers: templateSigners } = selectedTemplate || {};\n const mergedSigners =\n templateSigners && templateSigners.length > 0\n ? mergeSigners(\n _.orderBy(templateSigners, 'order', 'asc'), //because in some cases, template's signers is not ordered by default\n _.orderBy(documentSigners, 'order', 'asc'),\n )\n : documentSigners;\n\n return {\n ...initialValues,\n ...restDocument,\n signers: _.orderBy(mergedSigners, 'order', 'asc'),\n isOrdered: selectedTemplate\n ? selectedTemplate.isOrdered\n : document?.isOrdered || initialValues.isOrdered,\n templateId: selectedTemplate?.id,\n type: selectedTemplate ? DocumentTypes.OTHERS : initialValues.type,\n recipients,\n title: document?.title,\n message: selectedTemplate ? selectedTemplate.message : document?.message,\n } as DocumentValues;\n }, [document, initialValues, mergeSigners, selectedTemplate]);\n\n const [showInteractModal, closeInteractModal] = useModal(() => {\n const handleCloseModal = () => {\n closeInteractModal();\n };\n\n const handleSaveDocument = () => {\n closeInteractModal();\n };\n\n const handleInteractChooseActionStep = (step: number) => {\n setCurrentStep(step - 1);\n if (step === 1) {\n handleCloseModal();\n }\n };\n\n return (\n {\n setCurrentStep(prev => prev + 1);\n }}\n onChooseStep={handleInteractChooseActionStep}\n disableTooltip={disableInteractTooltip}\n isDisableTooltip={isDisableInteractTooltip}\n isChooseActionDisabled={!!selectedTemplate}\n />\n );\n }, [currentStep, documentId, isUpdatingDocument, selectedTemplate, document]);\n\n const onSubmit = useCallback(\n async ({ type, ...values }: any) => {\n try {\n let scopedDocument = document;\n const expirationDate = values.expirationDate\n ? (values.expirationDate as Date).toISOString()\n : undefined;\n\n if (scopedDocument) {\n scopedDocument = (await updateDocument({\n values: {\n ...values,\n templateId: isTemplateNotEdited ? values.templateId : null,\n documentId: documentId,\n type: isTemplateNotEdited ? type : undefined,\n expirationDate,\n },\n })) as Document;\n } else {\n scopedDocument = (await createDocument({\n ...values,\n type,\n expirationDate,\n })) as Document;\n setDocumentId(scopedDocument.id);\n }\n\n await sendDocument({ documentId: scopedDocument.id });\n\n return openSuccessModal();\n } catch (error) {\n Toast.handleErrors(error);\n\n return processSubmissionErrors(error);\n }\n },\n [\n createDocument,\n document,\n documentId,\n openSuccessModal,\n sendDocument,\n updateDocument,\n isTemplateNotEdited,\n ],\n );\n\n const handleOpenInteract = useCallback(async () => {\n await getCurrentUser(undefined);\n setCurrentStep(1);\n showInteractModal();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [showInteractModal]);\n\n const handleSubmitForm = useCallback(() => {\n if (selectedTemplate) {\n setCurrentStep(3);\n setIsTemplateNotEdited(true);\n setIsBreadcrumbsBan(true);\n } else {\n handleOpenInteract();\n setIsBreadcrumbsBan(false);\n }\n }, [handleOpenInteract, selectedTemplate]);\n\n const handleChooseActionStep = useCallback(\n (step: number) => {\n setCurrentStep(step - 1);\n\n if (step > 1 && step < 4) {\n showInteractModal();\n }\n },\n [showInteractModal],\n );\n\n const setFirstCurrentStep = () => {\n setCurrentStep(1);\n };\n\n const handleSetTabType = useCallback((tabType: TabTypes) => {\n setTabType(tabType);\n }, []);\n\n const handleUpdateDocument = useCallback(\n async values => {\n await updateDocument({\n values: {\n ...values,\n documentId: documentId,\n },\n });\n },\n [documentId, updateDocument],\n );\n\n useEffect(() => {\n if (isEditMode && !selectedTemplate && !selectedTemplateId && isUploadedFile) {\n handleOpenInteract();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n ) => (\n \n )}\n />\n );\n};\n\nexport default WizardSignForm;\n","import React, { useEffect, useMemo, useState } from 'react';\nimport useWootricSurvey from 'Hooks/Common/useWootricSurvey';\nimport { useSelector } from 'react-redux';\nimport { User } from 'Interfaces/User';\nimport { selectDocument, selectShowTrialSuccessPage, selectUser } from 'Utils/selectors';\nimport WizardSignForm from 'Components/WizardSignForm';\nimport { DocumentTypes, Document } from 'Interfaces/Document';\nimport { RouteChildrenProps, useLocation } from 'react-router-dom';\nimport { useDocumentGuard } from 'Hooks/Document';\nimport UISpinner from 'Components/UIComponents/UISpinner';\nimport History from 'Services/History';\nimport { AuthorizedRoutePaths } from 'Interfaces/RoutePaths';\n\nconst getSignersMinLength = (type: DocumentTypes) => {\n switch (type) {\n case DocumentTypes.TEMPLATE:\n case DocumentTypes.FORM_REQUEST:\n case DocumentTypes.ME: {\n return 1;\n }\n case DocumentTypes.OTHERS:\n case DocumentTypes.ME_AND_OTHER: {\n return 2;\n }\n }\n};\n\ninterface DocumentRouteParams {\n documentId: Document['id'];\n}\n\ninterface DashboardLocationContext {\n showTrialSuccessPage?: boolean;\n}\n\nconst Dashboard = ({ match }: RouteChildrenProps) => {\n const location = useLocation();\n\n const { email, createdAt }: User = useSelector(selectUser);\n const showTrialSuccessPage =\n useSelector(selectShowTrialSuccessPage) || location?.state?.showTrialSuccessPage;\n\n useWootricSurvey(email as string, createdAt as Date);\n const documentId = useMemo(() => match?.params.documentId, [match]);\n\n const [isEditMode, setIsEditMode] = useState(!!documentId);\n\n const document = useSelector(state => selectDocument(state, { documentId }));\n const isCheckingDocument = useDocumentGuard({\n documentId,\n });\n\n const initialValues = useMemo(() => {\n if (document) {\n const { fields, ...restDocument } = document;\n\n return {\n ...restDocument,\n signers:\n document.signers.length < getSignersMinLength(document.type)\n ? [...document.signers, { order: document.signers.length }]\n : document.signers,\n recipients: document.recipients,\n };\n }\n\n return {\n type: DocumentTypes.ME,\n signers: [\n {\n name: 'Me (Now)',\n email: email,\n order: -1,\n isPreparer: true,\n },\n ],\n };\n }, [document, email]);\n\n useEffect(() => {\n if (showTrialSuccessPage) {\n History.push(AuthorizedRoutePaths.TRIAL_SUCCESS, { successRequired: true });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n if (isCheckingDocument) {\n return ;\n }\n\n return (\n
    \n \n
    \n );\n};\n\nexport default Dashboard;\n","import React, { useCallback } from 'react';\nimport History from 'Services/History';\n\nimport UIButton from 'Components/UIComponents/UIButton';\nimport UIModal from 'Components/UIComponents/UIModal';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport classNames from 'classnames';\nimport { AuthorizedRoutePaths } from 'Interfaces/RoutePaths';\n\nexport interface UpgradeModalProps {\n children: React.ReactChild | React.ReactChild[];\n title?: string;\n onClose: () => void;\n onUpgradeClick?: () => void;\n cancelComponent?: React.FunctionComponent;\n}\n\nconst UpgradeModal = ({\n onClose,\n children,\n title,\n onUpgradeClick,\n cancelComponent: CancelComponent,\n}: UpgradeModalProps) => {\n const isMobile = useIsMobile();\n\n const handleUpgrade = useCallback(() => {\n if (onUpgradeClick) {\n onUpgradeClick();\n } else {\n History.push(AuthorizedRoutePaths.SETTINGS_BILLING_PLAN);\n }\n }, [onUpgradeClick]);\n\n return (\n \n
    \n
    \n

    \n {title || 'Please upgrade your Signaturely account!'}\n

    \n

    {children}

    \n
    \n \n {CancelComponent && }\n
    \n \n );\n};\n\nexport default UpgradeModal;\n","import { BaseModalProps } from 'Components/UIComponents/interfaces/UIModal';\nimport { PlanTypes } from 'Interfaces/Billing';\nimport React from 'react';\nimport { useSelector } from 'react-redux';\nimport { selectUserPlan } from 'Utils/selectors';\nimport UpgradeModal from './UpgradeModal';\n\nconst TemplateUpgradeModal = ({ onClose }: BaseModalProps) => {\n const { type: planType } = useSelector(selectUserPlan);\n return (\n \n {planType === PlanTypes.FREE ? (\n <>\n You're on the free plan which doesn't include templates.\n
    \n Please click below to upgrade your account to access templates.\n \n ) : (\n <>\n You're on the Personal plan which includes one template.\n
    \n Please upgrade to the Business plan for unlimited templates.\n \n )}\n \n );\n};\n\nexport default TemplateUpgradeModal;\n","import React from 'react';\nimport { useSelector } from 'react-redux';\nimport { selectUser } from 'Utils/selectors';\nimport { DocumentTypes } from 'Interfaces/Document';\n\nimport SignForm from 'Components/SignForm';\n\nfunction OnlyOthers() {\n const { email } = useSelector(selectUser);\n\n return (\n \n );\n}\n\nexport default OnlyOthers;\n","import React, { useCallback, useState } from 'react';\nimport lodash from 'lodash';\nimport UITextInput from 'Components/UIComponents/UITextInput';\n\ninterface DebounceInputProps {\n placeholder: string;\n onChange: (value) => void;\n icon?: string;\n}\n\nconst debounce = lodash.debounce((func, value) => {\n func(value);\n}, 1000);\n\nconst DebounceInput = ({ placeholder, onChange, icon }: DebounceInputProps) => {\n const [value, setValue] = useState('');\n\n const handleChangeValue = useCallback(\n (event: React.ChangeEvent) => {\n setValue(event.target.value);\n debounce(onChange, event.target.value);\n },\n [onChange],\n );\n\n return (\n \n );\n};\n\nexport default DebounceInput;\n","import IconSelectArrow from 'Assets/images/icons/select-arrow-icon.svg';\nimport CloseIcon from 'Assets/images/icons/select-cross-icon.svg';\nimport React from 'react';\nimport Select from 'react-select';\nimport { ReactSVG } from 'react-svg';\n\ntype MultiValue = readonly T[];\n\nexport interface UIMultiSelectProps {\n options: Array<{ value: string; label: string }>;\n filterOption?: (\n option: { value: string; label: string },\n inputValue: string,\n ) => boolean;\n onChange: (\n newValue: MultiValue<{ value: string; label: string }>,\n actionMeta: any,\n ) => void;\n isLoading?: boolean;\n placeholder?: string;\n closeMenuOnSelect?: boolean;\n}\n\nfunction UIMultiSelect({\n options,\n filterOption,\n onChange,\n isLoading,\n placeholder,\n closeMenuOnSelect = false,\n}: UIMultiSelectProps) {\n const ArrowIcon = ({ innerRef, innerProps }: any) => {\n return (\n
    \n {\n // const [firstPathElement] = [...svg.querySelectorAll('path')];\n // firstPathElement.setAttribute('stroke', '#d7e3e7');\n // firstPathElement.setAttribute('transition', 'all 0.2s ease');\n // }}\n //\n // style={{\n // transition: 'all 0.2s ease',\n // transform: selectProps.menuIsOpen ? 'rotate(-180deg)' : 'none',\n // }}\n {...innerProps}\n />\n
    \n );\n };\n\n const CrossIcon = ({ innerRef, innerProps }: any) => {\n return (\n
    \n {\n // const [firstPathElement] = [...svg.querySelectorAll('path')];\n // firstPathElement.setAttribute('stroke', '#d7e3e7');\n // firstPathElement.setAttribute('transition', 'all 0.2s ease');\n // }}\n {...innerProps}\n />\n
    \n );\n };\n\n const IndicatorSeparator = () => <>;\n\n return (\n \n );\n}\n\nexport default UIMultiSelect;\n","import { Document, Signer } from './Document';\n\nexport enum SignatureRequestStatuses {\n AWAITING_OTHERS = 'awaiting_others',\n AWAITING_YOU = 'awaiting_you',\n SIGNED = 'signed',\n COMPLETED = 'completed',\n DECLINED = 'declined',\n EXPIRED = 'expired',\n}\n\nexport const SignatureRequestStatuseLabels = {\n awaiting_others: 'AWAITING OTHERS',\n awaiting_you: 'AWAITING YOU',\n signed: 'SIGNED',\n completed: 'COMPLETED',\n declined: 'DECLINED',\n expired: 'EXPIRED',\n};\n\nexport interface SignatureRequest {\n id: string;\n documentId: Document['id'];\n signerId: Signer['id'];\n status: SignatureRequestStatuses;\n documents?: Document;\n}\n\nexport interface SigntureRequestsDeletePayload {\n signatureRequestIds: string[];\n}\n","import { NormalizedEntity } from './Common';\nimport { GridItem } from './Grid';\nimport { User } from './User';\n\nexport enum FolderTypes {\n TEMPLATE = 'template',\n DOCUMENT = 'document',\n SIGNATURE_REQUEST = 'signature_request',\n}\n\nexport interface Folder {\n id: string;\n title: string;\n parentId: Folder['id'];\n userId: User['id'];\n createdAt: string;\n permissions: User['id'][];\n user: User;\n type?: FolderTypes;\n deletedAt?: string;\n}\n\nexport interface FolderCreatePayload {\n title: string;\n parentId?: Folder['id'];\n type?: FolderTypes;\n}\n\nexport interface FolderUpdatePayload {\n folderId: string;\n title?: string;\n parentId?: Folder['id'];\n}\n\nexport interface FolderChangePermissionsPayload {\n gridId: string;\n memberIds: User['id'][];\n}\nexport interface FoldersDeletePayload {\n folderIds: Folder['id'][];\n}\n\nexport interface FolderInfo {\n id: Folder['id'];\n documentsCount: number;\n foldersCount: number;\n}\n\nexport interface FolderIdPayload {\n id: Folder['id'] | undefined;\n}\n\nexport interface FoldersData {\n folders: NormalizedEntity;\n}\n\nexport interface OpenedFolder\n extends Pick,\n Pick {\n id: string | undefined;\n}\n","import React from 'react';\nimport DebounceInput from 'Components/DebounceInput';\nimport IconSearch from 'Assets/images/icons/search.svg';\nimport UISelect from 'Components/UIComponents/UISelect';\nimport UIDatePicker from 'Components/UIComponents/UIDatePicker';\nimport { RangeModifier } from 'react-day-picker';\nimport UIMultiSelect from 'Components/UIComponents/UIMultiSelect';\nimport useTeamMembersGet from 'Hooks/Team/useTeamMembersGet';\nimport { DocumentStatuses, SearchTypeEnum } from 'Interfaces/Document';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport { SignatureRequestStatuses } from 'Interfaces/SignatureRequest';\nimport { isNotEmpty } from 'Utils/functions';\nimport { useCallback, useEffect, useState } from 'react';\nimport { MultiValue } from 'react-select';\n\ninterface DocumentSearchProps {\n changeDocumentNameFilter: (value: string | string[]) => void;\n handleChangeFilterStatus: (value?: string | number) => void;\n handleChangeDateFilter: (value: any) => void;\n handleCancelDateFilter: () => void;\n setSearchType?: (searchType: SearchTypeEnum | undefined) => void;\n selectedDates?: RangeModifier;\n searchType: SearchTypeEnum | undefined;\n status?: DocumentStatuses | SignatureRequestStatuses;\n isSignatureRequestPage?: boolean;\n setSignatureRequestStatus?: (status: SignatureRequestStatuses | undefined) => void;\n hideElements?: boolean;\n}\n\nconst searchTypeOptions = [\n { value: SearchTypeEnum.DOCUMENTS, label: 'Documents' },\n { value: SearchTypeEnum.SIGNERS, label: 'Signers' },\n { value: SearchTypeEnum.CREATORS, label: 'Creators' },\n];\n\nconst statusFilterOptions = [\n { value: 'all', label: 'All' },\n { value: 'draft', label: 'Draft' },\n { value: 'completed', label: 'Completed' },\n { value: 'awaiting', label: 'Awaiting' },\n { value: 'declined', label: 'Declined' },\n { value: 'expired', label: 'Expired' },\n];\n\nconst signatureRequestStatusFilterOptions = [\n { value: 'all', label: 'All' },\n { value: 'awaiting_others', label: 'Awaiting others' },\n { value: 'awaiting_you', label: 'Awaiting you' },\n { value: 'signed', label: 'Signed' },\n { value: 'completed', label: 'Completed' },\n { value: 'declined', label: 'Declined' },\n { value: 'expired', label: 'Expired' },\n];\n\nexport const DocumentSearch = ({\n changeDocumentNameFilter,\n handleChangeFilterStatus,\n handleChangeDateFilter,\n handleCancelDateFilter,\n setSearchType,\n selectedDates,\n searchType,\n status,\n isSignatureRequestPage,\n setSignatureRequestStatus,\n hideElements = false,\n}: DocumentSearchProps) => {\n const isMobile = useIsMobile();\n\n const handleMultiSelectOnChange = (\n data: MultiValue<{ value: string; label: string }>,\n ) => {\n changeDocumentNameFilter(data.map(value => value.value));\n };\n const [getTeamMembers, isLoading] = useTeamMembersGet();\n const [teamMemberValues, setTeamMemberValues] = useState<\n Array<{ value: string; label: string }>\n >([]);\n\n const handleGetTeamMembersOptions = useCallback(async () => {\n const teamMembers = await getTeamMembers({});\n setTeamMemberValues(\n isNotEmpty(teamMembers)\n ? Object.values(teamMembers.teamMembers).map(teamMember => ({\n value: teamMember.id,\n label: teamMember.name ?? teamMember.email ?? '',\n }))\n : [],\n );\n }, [getTeamMembers]);\n\n useEffect(() => {\n handleGetTeamMembersOptions();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const filterOption = (\n option: {\n value: string;\n label: string;\n },\n inputValue: string,\n ) => {\n return option.label.toLowerCase().includes(inputValue.trim().toLowerCase());\n };\n\n return (\n <>\n {!isMobile ? (\n
    \n
    \n {!isSignatureRequestPage && (\n
    \n setSearchType && setSearchType(value)}\n options={searchTypeOptions}\n placeholder=\"Search type\"\n />\n
    \n )}\n
    \n {searchType != SearchTypeEnum.CREATORS ? (\n \n ) : (\n \n )}\n
    \n
    \n
    \n {!hideElements && (\n
    \n {\n value &&\n setSignatureRequestStatus &&\n setSignatureRequestStatus(\n SignatureRequestStatuses[value.toUpperCase()],\n );\n }\n : handleChangeFilterStatus\n }\n options={\n isSignatureRequestPage\n ? signatureRequestStatusFilterOptions\n : statusFilterOptions\n }\n placeholder=\"Status: All\"\n />\n
    \n )}\n
    \n \n
    \n
    \n
    \n ) : (\n
    \n {!isSignatureRequestPage && (\n
    \n setSearchType && setSearchType(value)}\n options={searchTypeOptions}\n placeholder=\"Search type\"\n />\n
    \n )}\n
    \n {searchType != SearchTypeEnum.CREATORS ? (\n \n ) : (\n \n )}\n
    \n {!hideElements && (\n
    \n {\n value &&\n setSignatureRequestStatus &&\n setSignatureRequestStatus(\n SignatureRequestStatuses[value.toUpperCase()],\n );\n }\n : handleChangeFilterStatus\n }\n options={\n isSignatureRequestPage\n ? signatureRequestStatusFilterOptions\n : statusFilterOptions\n }\n placeholder=\"Status: All\"\n />\n
    \n )}\n
    \n \n
    \n
    \n )}\n \n );\n};\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { GridGetPayload } from 'Interfaces/Grid';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: GridGetPayload) =>\n $actions.grid.getGrid(dispatch, payload),\n );\n};\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { GridItemsDeletePayload } from 'Interfaces/Grid';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: GridItemsDeletePayload) =>\n $actions.grid.deleteGridItems(dispatch, payload),\n );\n};\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { GridItemsDeletePayload } from 'Interfaces/Grid';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: GridItemsDeletePayload) =>\n $actions.grid.moveToTrashGridItems(dispatch, payload),\n );\n};\n","import React, { useState, useCallback, useEffect, useMemo } from 'react';\nimport arrayMutators from 'final-form-arrays';\nimport { Form, FormRenderProps } from 'react-final-form';\nimport { FieldArray } from 'react-final-form-arrays';\nimport { ReactSVG } from 'react-svg';\nimport Toast from 'Services/Toast';\nimport { useDocumentShareUrlGet, useDocumentShare } from 'Hooks/DocumentSign';\nimport { isNotEmpty, processSubmissionErrors } from 'Utils/functions';\nimport { Document, DocumentSharePayload } from 'Interfaces/Document';\n\nimport EmailRecipientsArray from 'Components/FormFields/EmailRecipientsArray';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport UITextInput from 'Components/UIComponents/UITextInput';\nimport UISpinner from 'Components/UIComponents/UISpinner';\n\nimport IconCopy from 'Assets/images/icons/copy-icon.svg';\n\ninterface ShareModalProps {\n documentId: Document['id'];\n onSuccess?: () => void;\n}\n\nconst ShareModal = ({ documentId, onSuccess }: ShareModalProps) => {\n const [isCopied, setIsCopied] = useState(false);\n const [shareUrl, setShareUrl] = useState();\n const [getDocumentShareUrl, isGettingShareUrl] = useDocumentShareUrlGet();\n const [shareDocument] = useDocumentShare();\n const initialValues = useMemo(() => ({ documentId, recipients: [{ email: '' }] }), [\n documentId,\n ]);\n\n const handleDocumentShare = useCallback(async (values: DocumentSharePayload) => {\n try {\n await shareDocument(values);\n\n onSuccess && onSuccess();\n\n Toast.success('Document successfully sended to specified email(s).');\n } catch (err) {\n Toast.handleErrors(err);\n\n return processSubmissionErrors(err);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handleDocumentShareUrlGet = useCallback(async (documentId: Document['id']) => {\n try {\n const response = await getDocumentShareUrl({ documentId });\n\n if (isNotEmpty(response)) {\n setShareUrl(response.result);\n }\n } catch (err) {\n Toast.handleErrors(err);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handleShareUrlCopy = useCallback(async () => {\n try {\n if (!shareUrl) return;\n\n await navigator.clipboard.writeText(shareUrl);\n\n setIsCopied(true);\n } catch (err) {\n Toast.handleErrors(err);\n }\n }, [shareUrl]);\n\n useEffect(() => {\n handleDocumentShareUrlGet(documentId);\n }, [handleDocumentShareUrlGet, documentId]);\n\n useEffect(() => {\n if (!isCopied) return;\n\n const timer = setTimeout(() => setIsCopied(false), 1000);\n\n return () => clearTimeout(timer);\n }, [isCopied]);\n\n return (\n
    \n
    \n

    Share this Document

    \n

    \n Share this document with additional viewers to allow them to download the signed\n document.\n

    \n
    \n ) => (\n
    \n \n
    Or
    \n

    \n\n \n {isGettingShareUrl && (\n \n )}\n \n {shareUrl && (\n
    \n \n \n {!isCopied ? 'COPY' : 'COPIED'}\n \n
    \n )}\n \n \n \n )}\n />\n
    \n );\n};\n\nexport default ShareModal;\n","import { useDispatch } from 'react-redux';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { $actions } from 'Store';\nimport { DocumentIdPayload } from 'Interfaces/Document';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: DocumentIdPayload) =>\n $actions.documentSign.getDocumentShareUrl(dispatch, payload),\n );\n};\n","import { useDispatch } from 'react-redux';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { $actions } from 'Store';\nimport { DocumentSharePayload } from 'Interfaces/Document';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: DocumentSharePayload) =>\n $actions.documentSign.shareDocument(dispatch, payload),\n );\n};\n","import classNames from 'classnames';\nimport Avatar from 'Components/Avatar';\nimport { AvatarUrl } from 'Interfaces/User';\nimport React from 'react';\n\ninterface SignerItemLabelProps {\n avatarUrl: AvatarUrl;\n name: string;\n email: string;\n isSelected?: boolean;\n}\n\nconst SignerItemLabel = ({\n avatarUrl,\n name,\n email,\n isSelected,\n}: SignerItemLabelProps) => {\n return (\n
    \n \n \n {name}\n {email}\n
    \n \n );\n};\n\nexport default SignerItemLabel;\n","import React, { useCallback, useMemo, useState } from 'react';\nimport * as _ from 'lodash';\nimport { useModal, useSelectableItem } from 'Hooks/Common';\nimport { useRemindersSend } from 'Hooks/DocumentSign';\nimport Toast from 'Services/Toast';\nimport { Signer, Document } from 'Interfaces/Document';\nimport UICheckbox from 'Components/UIComponents/UICheckbox';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport { useSignerAvatars } from 'Hooks/User';\nimport SignerItemLabel from '../../SignerItemLabel';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport classNames from 'classnames';\nimport UpgradeModal from '../../../../../Components/UpgradeModal';\nimport { RequestErrorTypes } from '../../../../../Interfaces/Common';\n\ninterface ReminderModalProps {\n signersOptions: Signer[];\n documentId: Document['id'];\n onClose: () => void;\n isSignersOrdered?: boolean;\n}\n\nconst ReminderModal = ({\n signersOptions,\n onClose,\n documentId,\n isSignersOrdered = false,\n}: ReminderModalProps) => {\n const [sendReminders, isLoading] = useRemindersSend();\n const [userAvatars] = useSignerAvatars(documentId);\n const isMobile = useIsMobile();\n const orderedSigners = useMemo(() => _.orderBy(signersOptions, 'order', 'asc'), [\n signersOptions,\n ]);\n const firstUnfinishedSigner = useMemo(() => {\n if (!isSignersOrdered) return null;\n\n return orderedSigners.find(signer => !signer.isFinished && !signer.isDeclined);\n }, [orderedSigners, isSignersOrdered]);\n const [selectableSigners, toggleSignerSelection, selectedSigners] = useSelectableItem(\n orderedSigners,\n 'id',\n );\n\n const [showUpgradeModal, hideUpgradeModal] = useModal(() => {\n return (\n (\n
    \n Nevermind\n
    \n )}\n >\n Free Users can only send 2 reminders per document.
    \n Please upgrade your plan if you need to send more reminders.\n \n );\n });\n\n const handleRemindersSend = useCallback(async () => {\n try {\n const selectedSignersIds = selectedSigners.map(signer => signer.id);\n\n await sendReminders({ signersIds: selectedSignersIds, documentId });\n onClose();\n Toast.success('Reminder(s) has been sent');\n } catch (error) {\n console.log(error);\n if (\n error.type === RequestErrorTypes.QUOTA_EXCEEDED &&\n error.message === 'Upgrade to Personal plan'\n ) {\n return showUpgradeModal();\n }\n\n Toast.handleErrors(error);\n }\n }, [selectedSigners, sendReminders, documentId, onClose, showUpgradeModal]);\n\n return (\n
    \n
    \n

    Send Reminder

    \n

    \n Choose the signers to send an email reminder to complete the document signature.\n

    \n
    \n
    \n {selectableSigners.map(selectableSigner => (\n toggleSignerSelection(selectableSigner.id)}\n key={selectableSigner.id}\n className=\"reminderModal__optionItem\"\n type=\"button\"\n >\n \n \n \n ))}\n
    \n \n
    \n );\n};\n\nexport default ReminderModal;\n","import { useDispatch } from 'react-redux';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { $actions } from 'Store';\nimport { RemindersSendPayload } from 'Interfaces/Document';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: RemindersSendPayload) =>\n $actions.documentSign.sendReminders(dispatch, payload),\n );\n};\n","import React, { useMemo } from 'react';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport UIModal from 'Components/UIComponents/UIModal';\nimport { useSigningUrl } from 'Hooks/DocumentSign';\nimport { useSignerAvatars } from 'Hooks/User';\nimport { Signer, Document } from 'Interfaces/Document';\nimport SignerItemLabel from '../../SignerItemLabel';\nimport * as _ from 'lodash';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport classNames from 'classnames';\nimport CopyClipboardIcon from 'Assets/images/icons/download-icon.svg';\n\ninterface SigningLinkModalProps {\n documentId: Document['id'];\n signers: Signer[];\n onClose: () => void;\n isSignersOrdered?: boolean;\n}\n\nconst SigningLinkModal = ({\n onClose,\n signers,\n documentId,\n isSignersOrdered = false,\n}: SigningLinkModalProps) => {\n const [userAvatars] = useSignerAvatars(documentId);\n const [getSigningUrl, isLoading] = useSigningUrl();\n const isMobile = useIsMobile();\n\n const orderedSigners = useMemo(() => _.orderBy(signers, 'order', 'asc'), [signers]);\n\n const firstUnfinishedSigner = useMemo(() => {\n if (!isSignersOrdered) return null;\n\n return orderedSigners.find(signer => !signer.isFinished);\n }, [isSignersOrdered, orderedSigners]);\n\n return (\n \n
    \n
    \n

    Generate signing link

    \n

    \n Generate signing links for this document and send it to signers to allow them\n sign the document.\n

    \n
    \n
    \n
    \n {signers.map(signer => (\n
    \n \n
    \n getSigningUrl(documentId, signer.userId)}\n title={!isMobile ? 'Get signing link' : ''}\n rightIcon={isMobile ? CopyClipboardIcon : undefined}\n priority=\"secondary\"\n isLoading={isLoading}\n disabled={\n isLoading ||\n (isSignersOrdered && firstUnfinishedSigner?.id !== signer.id)\n }\n />\n
    \n
    \n ))}\n
    \n
    \n
    \n
    \n );\n};\n\nexport default SigningLinkModal;\n","import { NormalizedEntity } from 'Interfaces/Common';\nimport { SigningUrlPayload } from 'Interfaces/Document';\nimport { useCallback, useState } from 'react';\nimport Toast from 'Services/Toast';\nimport { isNotEmpty } from 'Utils/functions';\nimport { useSigningUrlGet } from '.';\n\nexport default () => {\n const [getSigningUrl, isLoading] = useSigningUrlGet();\n const [signingUrls, setSigningUrls] = useState<\n NormalizedEntity | {}\n >({});\n\n const handleCopyInClipboard = useCallback(async signingUrl => {\n try {\n await navigator.clipboard.writeText(signingUrl);\n Toast.success('Copied in clipboard');\n } catch (err) {\n Toast.error('Cannot copy to clipboard. Please try again.');\n }\n }, []);\n\n const handleGetSigningUrl = useCallback(\n async (documentId, userId) => {\n try {\n if (documentId && userId) {\n if (signingUrls[userId]) {\n await handleCopyInClipboard(signingUrls[userId].signingUrl);\n return;\n }\n\n const response = await getSigningUrl({ documentId, userId });\n\n if (!isNotEmpty(response)) {\n return Toast.error('Something went wrong. Please, try again.');\n }\n\n setSigningUrls({ ...signingUrls, [userId]: response });\n\n setTimeout(() => {\n handleCopyInClipboard(response.signingUrl);\n }, 0);\n }\n } catch (err) {\n Toast.handleErrors(err);\n }\n },\n [getSigningUrl, handleCopyInClipboard, signingUrls],\n );\n\n return [handleGetSigningUrl, isLoading] as const;\n};\n","import React from 'react';\nimport FieldTextInput from 'Components/FormFields/FieldTextInput';\nimport { Form, Field } from 'react-final-form';\nimport {\n required,\n maxLength100,\n notOnlySpaces,\n titleNotUrlProtocol,\n} from 'Utils/validation';\nimport { OnSubmitReturnType } from 'Interfaces/FinalForm';\nimport { composeValidators } from 'Utils/functions';\n\ninterface RenameTitleFormProps {\n documentTitle: string;\n onSubmit: ({ title: string }) => OnSubmitReturnType;\n}\nconst EditableTitle = ({ documentTitle, onSubmit }: RenameTitleFormProps) => {\n return (\n (\n
    \n (\n required,\n notOnlySpaces,\n maxLength100,\n titleNotUrlProtocol,\n )}\n />\n \n )}\n />\n );\n};\nexport default EditableTitle;\n","import React, { useEffect, useState, useRef } from 'react';\nimport useDropdown from 'use-dropdown';\nimport { ReactSVG } from 'react-svg';\nimport classNames from 'classnames';\nimport IconSelectArrow from 'Assets/images/icons/select-arrow-icon.svg';\nimport IconArrowCircle from 'Assets/images/icons/arrow-circle.svg';\nimport IconCancel from 'Assets/images/icons/cancel.svg';\nimport { findOffsetParent } from 'Utils/functions';\nimport { Signer } from 'Interfaces/Document';\n\ninterface DropDownOption {\n icon: string;\n name: string;\n onClick: () => void;\n}\n\ninterface DropDownOptionsInterface {\n signers: Signer[];\n anchorClassName: string;\n}\n\nconst DropDownSigners = ({ signers, anchorClassName }: DropDownOptionsInterface) => {\n const [containerRef, isOpen, open, close] = useDropdown();\n const [isPlaceOnTop, setIsPlaceOnTop] = useState(false);\n const dropdownListRef = useRef(null);\n const toggleDropdown = () => {\n if (isOpen) {\n close();\n } else {\n open();\n }\n };\n useEffect(() => {\n const { anchor, elementsPath } = findOffsetParent(\n containerRef.current,\n offsetParent => !!offsetParent?.classList.contains(anchorClassName),\n );\n const containerHeight = anchor?.clientHeight || 0;\n const { offsetTop } = containerRef.current;\n const offsetsSum = elementsPath.reduce(\n (accum, element) => accum + element.offsetTop,\n 0,\n );\n const { clientHeight: dropdownListHeight } =\n dropdownListRef.current || ({} as HTMLDivElement);\n\n setIsPlaceOnTop(containerHeight < dropdownListHeight + offsetTop + offsetsSum);\n }, [containerRef, isOpen, anchorClassName]);\n\n return (\n
    \n \n {isOpen && (\n \n
    \n
    \n
    Name
    \n Email\n
    \n
    \n {signers.map(signer => (\n
    \n
    \n
    \n {signer.name}\n
    \n
    {signer.email}
    \n\n {signer.isFinished ? (\n \n ) : (\n ''\n )}\n {signer.isDeclined ? (\n \n ) : (\n ''\n )}\n
    \n
    \n ))}\n
    \n )}\n \n );\n};\n\nexport default DropDownSigners;\n","import React from 'react';\nimport classNames from 'classnames';\nimport { Document, DocumentStatuses } from 'Interfaces/Document';\nimport { formatDate, formatDocumentName } from 'Utils/formatters';\nimport EditableTitle from './EditableTitle';\nimport DropDownOptionsMobile from './DropDownOptionsMobile';\n\ninterface DocumentItemMobileViewProps {\n document: Document;\n isActiveEditForm: boolean;\n options: any;\n className?: string;\n handleUpdateDocument: (value: any) => void;\n}\n\nconst DocumentItemMobileView = ({\n document,\n options,\n className,\n isActiveEditForm,\n handleUpdateDocument,\n}: DocumentItemMobileViewProps) => {\n return (\n
    \n
    \n
    \n {isActiveEditForm ? (\n \n ) : (\n formatDocumentName(document.title, 'document')\n )}\n
    \n
    \n {document.createdAt && formatDate(document.createdAt)}\n
    \n
    \n \n \n {document.status === DocumentStatuses.PREPARING\n ? 'processing'\n : document.status}\n \n
    \n
    \n
    \n
    \n {document.status !== DocumentStatuses.PREPARING && (\n \n )}\n
    \n \n );\n};\n\nexport default DocumentItemMobileView;\n","import { Document, DocumentStatuses } from 'Interfaces/Document';\nimport { GridItem } from 'Interfaces/Grid';\nimport { useCallback } from 'react';\nimport { formatDateToHumanString } from 'Utils/formatters';\n\nexport default () => {\n const documentSeparatedFileKeyExtractor = useCallback((grid: GridItem) => {\n if (!grid.documents) {\n throw new Error('Selected items must be documents');\n }\n\n const document = grid.documents;\n return document.status === DocumentStatuses.COMPLETED &&\n document.resultDocumentPdfFileKey\n ? [\n {\n fileKey: document.resultDocumentPdfFileKey,\n fileName: `${document.title} (${formatDateToHumanString(\n document.createdAt,\n )}).pdf`,\n itemName: document.title,\n chunkIndex: grid.chunkIndex,\n },\n ]\n : [{}];\n }, []);\n\n const documentSeparatedFileKeyExtractorForDocument = useCallback(\n (document: Document) => {\n let fileKey: string | null;\n\n if (document.status === DocumentStatuses.COMPLETED) {\n fileKey = document.resultDocumentPdfFileKey;\n } else {\n if (document.pdfFileKey) {\n fileKey = document.pdfFileKey;\n } else {\n if (document.parts.length) {\n return document.parts\n .filter(part => part.filesUploaded)\n .map(part => ({\n fileKey: part.pdfFileKey,\n fileName: `${part.originalFileName.replace(\n /\\.[^/.]+$/,\n '',\n )} (${formatDateToHumanString(document.createdAt)}).pdf`,\n itemName: document.title,\n }));\n } else {\n return [];\n }\n }\n }\n\n return [\n {\n fileKey,\n fileName: `${document.title} (${formatDateToHumanString(\n document.createdAt,\n )}).pdf`,\n itemName: document.title,\n },\n ];\n },\n [],\n );\n\n const documentSeparatedFileKeyExtractorForDocumentActivities = useCallback(\n (document: Document) => {\n let fileKey: string | null;\n\n if (document.status === DocumentStatuses.COMPLETED) {\n fileKey = document.resultActivitiesPdfFileKey;\n } else {\n if (document.pdfFileKey) {\n fileKey = document.pdfFileKey;\n } else {\n if (document.parts.length) {\n return document.parts\n .filter(part => part.filesUploaded)\n .map(part => ({\n fileKey: part.pdfFileKey,\n fileName: `${part.originalFileName.replace(\n /\\.[^/.]+$/,\n '',\n )} (${formatDateToHumanString(document.createdAt)}).pdf`,\n itemName: document.title,\n }));\n } else {\n return [];\n }\n }\n }\n\n return [\n {\n fileKey,\n fileName: `${document.title}-activities (${formatDateToHumanString(\n document.createdAt,\n )}).pdf`,\n itemName: document.title,\n },\n ];\n },\n [],\n );\n\n return [\n documentSeparatedFileKeyExtractor,\n documentSeparatedFileKeyExtractorForDocument,\n documentSeparatedFileKeyExtractorForDocumentActivities,\n ] as const;\n};\n","import React, { useCallback, useMemo } from 'react';\nimport classNames from 'classnames';\nimport { useModal, useDownloadFiles } from 'Hooks/Common';\nimport {\n useDocumentDownload,\n useDocumentRevert,\n useDocumentToggleNotification,\n} from 'Hooks/Document';\nimport {\n Document,\n DocumentDownloadTypes,\n DocumentStatuses,\n DocumentTypes,\n} from 'Interfaces/Document';\nimport Toast from 'Services/Toast';\nimport HistoryService from 'Services/History';\nimport { formatDate, formatDocumentName } from 'Utils/formatters';\n\nimport UIModal from 'Components/UIComponents/UIModal';\nimport UICheckbox from 'Components/UIComponents/UICheckbox';\nimport { ShareModal, ReminderModal, SigningLinkModal } from './modals';\nimport EditableTitle from './EditableTitle';\n\nimport IconPencil from 'Assets/images/icons/pencil.svg';\nimport IconEye from 'Assets/images/icons/eye-icon.svg';\nimport SignIcon from 'Assets/images/icons/sign-icon.svg';\nimport IconShare from 'Assets/images/icons/share-icon.svg';\nimport IconDocWithPencil from 'Assets/images/icons/doc-pencil-icon.svg';\nimport IconActivity from 'Assets/images/icons/activity-icon.svg';\nimport KeyIcon from 'Assets/images/icons/key-icon.svg';\nimport CopyIcon from 'Assets/images/icons/copy-icon.svg';\nimport IconDocument from 'Assets/images/icons/document-icon.svg';\nimport IconFolder from 'Assets/images/icons/folder-icon2.svg';\nimport DownloadIcon from 'Assets/images/icons/download-icon.svg';\nimport DeleteIcon from 'Assets/images/icons/remove-icon.svg';\nimport ActivityIcon from 'Assets/images/icons/activity-icon.svg';\nimport ConfirmModal from 'Components/ConfirmModal';\nimport { useSelector } from 'react-redux';\nimport { selectUser } from 'Utils/selectors';\nimport { User, UserRoles } from 'Interfaces/User';\nimport DropDownSigners from './DropDownSigners';\nimport DocumentItemMobileView from './DocumentItemMobileView';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport DeleteModal from 'Components/DeleteModal';\nimport NotificationIcon from 'Assets/images/icons/notification-bell.svg';\nimport Avatar from 'Components/Avatar';\nimport DocumentSeparatedFileKeyExtractor from 'Pages/Documents/DocumentSeparatedFileKeyExtractor';\nimport { AuthorizedRoutePaths } from 'Interfaces/RoutePaths';\n\ninterface DocumentItemProps {\n document: Document;\n grid: any;\n className?: string;\n isSelected?: boolean;\n toggleSelect: () => void;\n onDownload?: (id: Document['id']) => void;\n onDelete?: (id: Document['id']) => void;\n onDeleteDocument: (documentId: Document['id']) => void;\n onUpdateDocument: (title: string, documentId: string, type: DocumentTypes) => void;\n openMoveToFolderModal: () => void;\n setSelectedEntitiesIds: (entitiesIds) => void;\n setRenamingDocumentId: (documentId: Document['id'] | undefined) => void;\n isSetRenamingDocumentId: boolean;\n}\n\nconst DocumentItem = ({\n document,\n grid,\n className,\n isSelected,\n toggleSelect = () => {},\n onDownload,\n onDeleteDocument,\n onUpdateDocument,\n openMoveToFolderModal,\n setSelectedEntitiesIds,\n setRenamingDocumentId,\n isSetRenamingDocumentId,\n}: DocumentItemProps) => {\n const [toggleDocumentNotification] = useDocumentToggleNotification();\n const [revertDocument, isReverting] = useDocumentRevert();\n const [downloadDocument, isDownloadingDocument] = useDocumentDownload();\n const [\n _,\n documentSeparatedFileKeyExtractorForDocument,\n documentSeparatedFileKeyExtractorForDocumentActivities,\n ] = DocumentSeparatedFileKeyExtractor();\n\n const [downloadSeparatedDocument, isDownloadingDocuments] = useDownloadFiles({\n fileExtractors: [\n documentSeparatedFileKeyExtractorForDocument,\n documentSeparatedFileKeyExtractorForDocumentActivities,\n ],\n name: `${document.title}`,\n });\n const isMobile = useIsMobile();\n const { id: userId, role: userRole }: User = useSelector(selectUser);\n const remindableSigners = useMemo(\n () => (document.signers ? document.signers.filter(signer => !signer.isPreparer) : []),\n [document],\n );\n\n const filteredSigners = document.signers\n ? document.signers.filter(signer => {\n if (!signer.isPreparer || document.type === DocumentTypes.ME) return signer;\n })\n : [];\n\n const handleClickDocumentRename = useCallback(() => {\n setRenamingDocumentId(document.id);\n }, [document.id, setRenamingDocumentId]);\n\n const navigateToPreview = useCallback(\n (anchor?: string) => {\n HistoryService.push(\n [\n `${AuthorizedRoutePaths.DOCUMENTS}/${document.id}/preview`,\n !!anchor && `#${anchor}`,\n ]\n .filter(Boolean)\n .join(''),\n );\n },\n [document.id],\n );\n\n const [openShareModal, closeShareModal] = useModal(() => (\n \n \n \n ));\n\n const [openReminderModal, closeReminderModal] = useModal(() => (\n \n \n \n ));\n\n const [openSigningLinkModal, closeSigningLinkModal] = useModal(\n () => (\n !signer.isFinished && !signer.isDeclined)\n : remindableSigners.filter(signer => !signer.isFinished)\n }\n onClose={closeSigningLinkModal}\n isSignersOrdered={document.isOrdered}\n />\n ),\n [document],\n );\n\n const navigateToDocumentEdit = useCallback(() => {\n HistoryService.push(`${AuthorizedRoutePaths.DOCUMENTS}/${document.id}/edit`);\n }, [document.id]);\n\n const handleDocumentRevert = useCallback(async () => {\n try {\n await revertDocument({ documentId: document.id });\n\n navigateToDocumentEdit();\n } catch (error) {\n Toast.handleErrors(error);\n }\n }, [document.id, revertDocument, navigateToDocumentEdit]);\n\n const handleDocumentDelete = useCallback(() => {\n onDeleteDocument(document.id);\n }, [document.id, onDeleteDocument]);\n\n const [openRevertModal, closeRevertModal] = useModal(\n () => (\n {\n if (!isReverting) closeRevertModal();\n }}\n onCancel={closeRevertModal}\n onConfirm={handleDocumentRevert}\n confirmText=\"Revert to Draft\"\n confirmButtonProps={{\n disabled: isReverting,\n isLoading: isReverting,\n }}\n cancelButtonProps={{\n disabled: isReverting,\n }}\n className={classNames('documents__revertModal', { mobile: isMobile })}\n hideCloseIcon\n >\n
    \n

    Edit & Resend document

    \n
    \n

    \n The document would be reverted to draft first, you could edit and resend it\n then.\n
    \n Are you sure you want to revert that document to draft?\n

    \n \n ),\n [isReverting],\n );\n\n const [showDeleteModal, hideDeleteModal, isDeleteModalOpen] = useModal(\n () => (\n {\n handleDocumentDelete();\n hideDeleteModal();\n }}\n className={classNames('documents__deleteWrapper', { mobile: isMobile })}\n >\n
    \n
    \n Are you sure want to delete this document?\n
    \n

    \n Deleting this document will move it to the trash, and you can restore files\n there.\n

    \n
    \n \n ),\n [handleDocumentDelete],\n );\n\n const handleEditAndResend = useCallback(() => {\n if (document.status === DocumentStatuses.DRAFT) {\n return navigateToDocumentEdit();\n }\n\n return openRevertModal();\n }, [navigateToDocumentEdit, openRevertModal, document.status]);\n\n const handleCopyCodeAccess = useCallback(async () => {\n try {\n if (document.codeAccess) {\n await navigator.clipboard.writeText(document.codeAccess);\n Toast.success('Copied to clipboard');\n }\n } catch (err) {\n Toast.handleErrors(err);\n }\n }, [document.codeAccess]);\n\n const handleChangeNotificationStatus = useCallback(async () => {\n try {\n await toggleDocumentNotification({\n grid,\n disableReminders: !document.disableReminders,\n });\n Toast.success(\n `Notifications were ${document.disableReminders ? 'enabled' : 'disabled'}`,\n );\n } catch (err) {\n Toast.handleErrors(err);\n }\n }, [toggleDocumentNotification, grid, document.disableReminders]);\n\n const handleDownload = useCallback(async () => {\n try {\n await downloadDocument({ documentId: document.id });\n } catch (err) {\n Toast.handleErrors(err, { toastId: 'download_error' });\n }\n }, [downloadDocument, document]);\n\n const handleSeparatedDocumentDownload = useCallback(async () => {\n try {\n if (document?.id && document.resultDocumentPdfFileKey) {\n await downloadSeparatedDocument([document]);\n }\n } catch (err) {\n Toast.handleErrors(err, { toastId: 'separated_download_error' });\n }\n }, [document, downloadSeparatedDocument]);\n\n const handleMoveToClick = useCallback(() => {\n setSelectedEntitiesIds([document.id]);\n openMoveToFolderModal();\n }, [document, openMoveToFolderModal, setSelectedEntitiesIds]);\n\n const isHiddenDocumentOwnerOption = useMemo(\n () => document.userId !== userId && userRole === UserRoles.USER,\n [document.userId, userId, userRole],\n );\n\n const isHiddenTeamOption = useMemo(\n () =>\n document.userId !== userId &&\n userRole !== UserRoles.OWNER &&\n userRole !== UserRoles.ADMIN,\n [userRole, userId, document],\n );\n\n const isHiddenDeleteButton = useMemo(\n () =>\n document.status === DocumentStatuses.PREPARING ||\n (userRole !== UserRoles.OWNER &&\n userRole !== UserRoles.ADMIN &&\n document?.userId !== userId),\n [document, userId, userRole],\n );\n\n const isHiddenDeclinedDocumentOption = useMemo(\n () => document.status === DocumentStatuses.DECLINED && document.isOrdered,\n [document.isOrdered, document.status],\n );\n\n const options = useMemo(() => {\n const options = [\n {\n name: 'Download',\n icon: DownloadIcon,\n onClick:\n document.downloadType === DocumentDownloadTypes.MERGED\n ? handleDownload\n : handleSeparatedDocumentDownload,\n hidden: document.status !== DocumentStatuses.COMPLETED,\n },\n {\n name: 'Rename',\n icon: IconPencil,\n onClick: handleClickDocumentRename,\n hidden: document.status !== DocumentStatuses.DRAFT || document.userId !== userId,\n },\n {\n name: 'Preview',\n icon: IconEye,\n onClick: navigateToPreview,\n hidden:\n !document.parts ||\n (!document.parts.every(part => part.filesUploaded) && !document.templateId) ||\n document.status === DocumentStatuses.DRAFT,\n },\n {\n name: 'Move to',\n icon: IconFolder,\n onClick: handleMoveToClick,\n hidden:\n userRole !== UserRoles.OWNER &&\n userRole !== UserRoles.ADMIN &&\n document?.userId !== userId,\n },\n {\n name: 'Share',\n icon: IconShare,\n onClick: openShareModal,\n hidden: isHiddenDocumentOwnerOption,\n },\n {\n name: 'Edit & Resend',\n icon: IconDocWithPencil,\n onClick: handleEditAndResend,\n hidden:\n document.userId !== userId || document.status === DocumentStatuses.COMPLETED,\n },\n {\n name: 'Send Reminder',\n icon: SignIcon,\n onClick: openReminderModal,\n hidden:\n isHiddenDeclinedDocumentOption ||\n [\n DocumentStatuses.COMPLETED,\n DocumentStatuses.DRAFT,\n DocumentStatuses.EXPIRED,\n ].includes(document.status),\n },\n {\n name: 'Activity',\n icon: IconActivity,\n onClick: () => navigateToPreview('document-activity'),\n },\n {\n name: 'Copy Access Code',\n icon: KeyIcon,\n onClick: handleCopyCodeAccess,\n hidden: isHiddenDocumentOwnerOption || !document.codeAccess,\n },\n {\n name: 'Generate signing link',\n icon: CopyIcon,\n onClick: openSigningLinkModal,\n hidden:\n isHiddenTeamOption ||\n isHiddenDeclinedDocumentOption ||\n ![DocumentStatuses.AWAITING, DocumentStatuses.DECLINED].includes(\n document.status,\n ),\n },\n {\n name: document.disableReminders ? 'Enable reminders' : 'Disable reminders',\n icon: NotificationIcon,\n onClick: handleChangeNotificationStatus,\n hidden: document.status !== DocumentStatuses.AWAITING,\n },\n {\n name: 'Delete',\n icon: DeleteIcon,\n onClick: showDeleteModal,\n hidden: isHiddenDeleteButton,\n className: 'red',\n classNameText: 'documents__dropdownOption--red',\n classNameIcon: 'documents__dropdownOption--red-icon',\n },\n ];\n\n return options.filter(option => !option.hidden);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n navigateToPreview,\n document,\n navigateToDocumentEdit,\n openReminderModal,\n handleClickDocumentRename,\n ]);\n\n const handleUpdateDocument = ({ title }) => {\n onUpdateDocument(title, document.id, document.type);\n setRenamingDocumentId(undefined);\n };\n\n return isMobile ? (\n \n ) : (\n
    \n
    \n {!isHiddenTeamOption && (\n \n )}\n
    \n
    \n {document.downloadType === DocumentDownloadTypes.SEPARATED ? (\n <>\n \n \n \n ) : (\n \n )}\n {isSetRenamingDocumentId ? (\n \n ) : (\n

    \n {formatDocumentName(document.title, 'document')}\n

    \n )}\n {document.deletedAt ? (\n
    \n DELETED\n
    \n ) : (\n \n \n {document.status === DocumentStatuses.PREPARING\n ? 'processing'\n : document.status}\n \n
    \n )}\n
    \n
    \n {document.createdAt && formatDate(document.createdAt)}\n
    \n
    \n \n \n \n 30\n ? formatDocumentName(document.user.name, 'document')\n : ''\n }\n >\n {document.user.name ? formatDocumentName(document.user.name, 'document') : ''}\n

    \n
    \n
    \n {document.status !== (DocumentStatuses.PREPARING && DocumentStatuses.DRAFT) && (\n \n )}\n
    \n \n );\n};\n\nexport default DocumentItem;\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { FolderCreatePayload } from 'Interfaces/Folder';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((values: FolderCreatePayload) =>\n $actions.folder.createFolder(dispatch, values),\n );\n};\n","import React from 'react';\nimport useDropdown from 'use-dropdown';\nimport { ReactSVG } from 'react-svg';\nimport classNames from 'classnames';\n\nimport RemoveIcon from 'Assets/images/icons/remove-icon.svg';\nimport IconFolder from 'Assets/images/icons/folder-icon2.svg';\nimport IconSelectArrow from 'Assets/images/icons/select-arrow-icon.svg';\nimport DownloadIcon from 'Assets/images/icons/download-icon.svg';\n\nexport enum GridActionTypes {\n MOVE_TO = 'moveTo',\n DELETE = 'delete',\n DOWNLOAD = 'download',\n}\n\nconst iconsByActionType = {\n [GridActionTypes.MOVE_TO]: IconFolder,\n [GridActionTypes.DELETE]: RemoveIcon,\n [GridActionTypes.DOWNLOAD]: DownloadIcon,\n};\n\nexport interface GridActionOption {\n type: GridActionTypes;\n title?: string;\n icon?: string;\n className?: string;\n onClick?: () => void;\n}\n\ninterface GridActionsDropdownProps {\n options: GridActionOption[];\n}\n\nconst GridActionsDropdown = ({ options = [] }: GridActionsDropdownProps) => {\n const [containerRef, isOpen, open, close] = useDropdown();\n const toggleDropdown = () => {\n if (isOpen) {\n close();\n } else {\n open();\n }\n };\n\n return (\n
    \n \n
    \n \n Select options\n \n
    \n
    \n \n {isOpen && options.length && (\n
    \n {options.map((option, index) => (\n
    \n \n \n

    {option.title}

    \n
    \n
    \n ))}\n \n )}\n \n );\n};\n\nexport default GridActionsDropdown;\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { Folder } from 'Interfaces/Folder';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: Folder['id']) =>\n $actions.folder.getFolderInfo(dispatch, payload),\n );\n};\n","import React, { useEffect } from 'react';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport ConfirmModal from 'Components/ConfirmModal';\nimport { Folder, FolderTypes } from 'Interfaces/Folder';\nimport { useFolderInfoGet } from 'Hooks/Folders';\nimport { selectFolderInfo } from 'Utils/selectors';\nimport { useSelector } from 'react-redux';\n\nconst getItemsTypeByFolderType = {\n [FolderTypes.DOCUMENT]: 'documents',\n [FolderTypes.TEMPLATE]: 'templates',\n [FolderTypes.SIGNATURE_REQUEST]: 'signature requests',\n};\n\ninterface DeleteFolderModalProps {\n onCancel: () => void;\n onConfirm: () => void;\n folderId: Folder['id'];\n folderType?: Folder['type'];\n}\n\nconst DeleteFolderModal = ({\n onConfirm,\n onCancel,\n folderId,\n folderType,\n}: DeleteFolderModalProps) => {\n const [getFolderInfo] = useFolderInfoGet();\n const folderInfo = useSelector(state => selectFolderInfo(state, { folderId }));\n\n useEffect(() => {\n getFolderInfo(folderId);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n (\n \n )}\n cancelComponent={() => (\n
    \n Don't Delete\n
    \n )}\n className=\"folders__deleteWrapper\"\n >\n
    \n
    Are you sure want to delete this folder?
    \n

    \n It contains {folderInfo && folderInfo.foldersCount} folders and{' '}\n \n {folderInfo && folderInfo.documentsCount}{' '}\n {folderType\n ? getItemsTypeByFolderType[folderType]\n : getItemsTypeByFolderType[FolderTypes.DOCUMENT]}\n \n , if you delete this folder you will delete the folders and documents inside\n

    \n
    \n \n );\n};\n\nexport default DeleteFolderModal;\n","import React from 'react';\nimport { ReactSVG } from 'react-svg';\nimport { Folder } from 'Interfaces/Folder';\nimport { GridItem } from 'Interfaces/Grid';\nimport DropDownOptionsMobile from '../DocumentItem/DropDownOptionsMobile';\nimport IconFolder from 'Assets/images/icons/folder-icon2.svg';\nimport EditableTitle from '../DocumentItem/EditableTitle';\nimport { formatDate, formatFolderName } from 'Utils/formatters';\n\ninterface FolderItemMobileViewProps {\n folder: Folder;\n grid: GridItem;\n isActiveEditForm: boolean;\n options: any[];\n handleOpenFolder: ({ title, id, permissions }) => void;\n handleUpdateFolder: ({ title }) => void;\n}\n\nexport const FolderItemMobileView = ({\n folder,\n grid,\n isActiveEditForm,\n handleOpenFolder,\n handleUpdateFolder,\n options,\n}: FolderItemMobileViewProps) => {\n return (\n
    \n \n handleOpenFolder({\n title: folder.title,\n id: folder.id,\n permissions: grid.permissions,\n })\n }\n >\n \n {isActiveEditForm ? (\n \n ) : (\n formatFolderName(folder?.title || '')\n )}\n
    \n
    \n {!!options.length && (\n \n )}\n
    \n \n );\n};\n","import React, { useEffect } from 'react';\nimport * as _ from 'lodash';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport ConfirmModal from 'Components/ConfirmModal';\nimport { Folder } from 'Interfaces/Folder';\nimport { useFolderInfoGet } from 'Hooks/Folders';\nimport { selectFolderInfo } from 'Utils/selectors';\nimport { useSelector } from 'react-redux';\n\ninterface PermanentlyDeleteFolderModalProps {\n onCancel: () => void;\n onConfirm: () => void;\n folderId: Folder['id'];\n}\n\nconst PermanentlyDeleteFolderModal = ({\n onConfirm,\n onCancel,\n folderId,\n}: PermanentlyDeleteFolderModalProps) => {\n const [getFolderInfo] = useFolderInfoGet();\n const folderInfo = useSelector(state => selectFolderInfo(state, { folderId }));\n\n useEffect(() => {\n getFolderInfo(folderId);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n (\n \n )}\n cancelComponent={() => (\n
    \n Don't Delete\n
    \n )}\n className=\"folders__deleteWrapper\"\n >\n
    \n
    \n Are you sure want to permanently delete this folder?\n
    \n

    \n If you permanently delete this folder you won't be able to restore it.\n

    \n
    \n \n );\n};\n\nexport default PermanentlyDeleteFolderModal;\n","import React, { useCallback, useMemo } from 'react';\nimport classNames from 'classnames';\nimport { daysToDate, formatDate, formatFolderName } from 'Utils/formatters';\nimport UICheckbox from 'Components/UIComponents/UICheckbox';\nimport IconPencil from 'Assets/images/icons/pencil.svg';\nimport IconRemove from 'Assets/images/icons/remove-icon.svg';\nimport IconFolder from 'Assets/images/icons/folder-icon2.svg';\nimport LockIcon from 'Assets/images/icons/lock.svg';\nimport { ReactSVG } from 'react-svg';\nimport EditableTitle from '../DocumentItem/EditableTitle';\nimport { useModal } from 'Hooks/Common';\nimport DeleteFolderModal from './modals/DeleteFolderModal';\nimport { Folder, FolderTypes } from 'Interfaces/Folder';\nimport { GridItem } from 'Interfaces/Grid';\nimport { useSelector } from 'react-redux';\nimport { selectUser } from 'Utils/selectors';\nimport { UserRoles } from 'Interfaces/User';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport { FolderItemMobileView } from './FolderItemMobileView';\nimport Avatar from 'Components/Avatar';\nimport PermanentlyDeleteFolderModal from './modals/PermanentlyDeleteFolderModal';\n\ninterface FolderItemProps {\n folder: Folder;\n grid: GridItem;\n toggleSelect: () => void;\n isSelected?: boolean;\n onUpdateFolder: (title, folderId) => void;\n onDeleteFolder: (folderId: Folder['id'], permanently?: boolean) => void;\n openChangePermissionsModal: (folder?: GridItem) => void;\n openMoveToFolderModal: (showWarning?: boolean) => void;\n setSelectedEntitiesIds: (entitiesIds) => void;\n handleOpenFolder: ({ title, id, permissions }) => void;\n setRenamingFolderId: (folderId: Folder['id'] | undefined) => void;\n isSetRenamingFolderId: boolean;\n}\n\nconst FolderItem = ({\n folder,\n grid,\n toggleSelect,\n isSelected,\n onUpdateFolder,\n onDeleteFolder,\n openChangePermissionsModal,\n openMoveToFolderModal,\n setSelectedEntitiesIds,\n handleOpenFolder,\n setRenamingFolderId,\n isSetRenamingFolderId,\n}: FolderItemProps) => {\n const user = useSelector(selectUser);\n const isMobile = useIsMobile();\n const isNotSignatureRequestFolder = useMemo(\n () => folder.type !== FolderTypes.SIGNATURE_REQUEST,\n [folder.type],\n );\n\n const [showDeleteModal, hideDeleteModal] = useModal(\n () =>\n !folder.deletedAt ? (\n {\n onDeleteFolder(folder?.id || '');\n hideDeleteModal();\n }}\n onCancel={hideDeleteModal}\n folderId={folder?.id || ''}\n folderType={folder.type}\n />\n ) : (\n {\n onDeleteFolder(folder?.id || '', !!folder?.deletedAt);\n hideDeleteModal();\n }}\n onCancel={hideDeleteModal}\n folderId={folder?.id || ''}\n />\n ),\n [],\n );\n\n const handleClickFolderRename = useCallback(() => {\n setRenamingFolderId(folder.id);\n }, [folder.id, setRenamingFolderId]);\n\n const handleMoveToClick = useCallback(() => {\n setSelectedEntitiesIds([folder?.id]);\n openMoveToFolderModal(true);\n }, [folder, openMoveToFolderModal, setSelectedEntitiesIds]);\n\n const handleUpdatePermissionsClick = useCallback(() => {\n openChangePermissionsModal(grid);\n }, [grid, openChangePermissionsModal]);\n\n const options = useMemo(() => {\n const options = [\n {\n name: 'Rename',\n icon: IconPencil,\n onClick: handleClickFolderRename,\n hidden:\n (user.role !== UserRoles.OWNER &&\n user.role !== UserRoles.ADMIN &&\n folder?.userId !== user.id) ||\n folder.deletedAt,\n },\n {\n name: 'Change Permissions',\n icon: LockIcon,\n onClick: handleUpdatePermissionsClick,\n hidden:\n (user.role !== UserRoles.OWNER &&\n user.role !== UserRoles.ADMIN &&\n folder?.userId !== user.id) ||\n folder.deletedAt,\n },\n {\n name: 'Move to',\n icon: IconFolder,\n onClick: handleMoveToClick,\n hidden:\n user.role !== UserRoles.OWNER &&\n user.role !== UserRoles.ADMIN &&\n folder?.userId !== user.id,\n },\n {\n name: !folder.deletedAt ? 'Delete' : 'Delete Permanently',\n icon: IconRemove,\n onClick: showDeleteModal,\n hidden:\n user.role !== UserRoles.OWNER &&\n user.role !== UserRoles.ADMIN &&\n folder?.userId !== user.id,\n classNameText: 'documents__dropdownOption--red',\n classNameIcon: 'documents__dropdownOption--red-icon',\n },\n ];\n\n return options.filter(option => !option.hidden);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const daysRemaining = useMemo(() => {\n if (folder.deletedAt) {\n const deletedDate = new Date(Date.parse(folder.deletedAt));\n deletedDate.setDate(deletedDate.getDate() + 30);\n return daysToDate(new Date(deletedDate).toDateString());\n }\n }, [folder.deletedAt]);\n\n const handleUpdateFolder = ({ title }) => {\n onUpdateFolder(title, folder?.id);\n setRenamingFolderId(undefined);\n };\n\n return isMobile ? (\n \n ) : (\n \n
    \n \n
    \n \n handleOpenFolder({\n title: folder.title,\n id: folder.id,\n permissions: grid.permissions,\n })\n }\n >\n \n {isSetRenamingFolderId ? (\n \n ) : (\n

    \n {formatFolderName(folder?.title || '')}\n

    \n )}\n \n {!folder.deletedAt ? (\n
    \n {isNotSignatureRequestFolder &&\n folder?.createdAt &&\n formatDate(folder.createdAt)}\n
    \n ) : (\n
    \n {daysRemaining &&\n `${daysRemaining} ${daysRemaining === 1 ? 'Day' : 'Days'} Remaining`}\n
    \n )}\n\n
    \n {isNotSignatureRequestFolder && (\n \n \n \n )}\n {isNotSignatureRequestFolder && folder.user.name\n ? formatFolderName(folder.user.name || '')\n : ''}\n
    \n {folder.type === FolderTypes.DOCUMENT ? (\n
    \n ) : null}\n
    \n );\n};\n\nexport default FolderItem;\n","import React, { useCallback, useMemo } from 'react';\nimport * as _ from 'lodash';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport { Field, Form } from 'react-final-form';\nimport { maxLength100, required } from 'Utils/validation';\nimport { FieldTextInput } from 'Components/FormFields';\nimport { composeValidators } from 'Utils/functions';\nimport { FolderCreatePayload } from 'Interfaces/Folder';\n\ninterface CreateFolderModalProps {\n onClose: () => void;\n onSubmit: (values: FolderCreatePayload) => void;\n isLoading: boolean;\n}\n\nconst CreateFolderModal = ({ onClose, onSubmit, isLoading }: CreateFolderModalProps) => {\n const handleCreateFolder = (values: any) => {\n onSubmit(values);\n onClose();\n };\n return (\n
    \n
    \n

    Create Folder

    \n

    \n
    \n\n {\n return (\n
    \n (required, maxLength100)}\n />\n
    \n \n
    \n Cancel\n
    \n
    \n \n );\n }}\n />\n
    \n );\n};\n\nexport default CreateFolderModal;\n","import Avatar from 'Components/Avatar';\nimport UICheckbox from 'Components/UIComponents/UICheckbox';\nimport { TeamMember } from 'Interfaces/Team';\nimport React from 'react';\nimport { FieldRenderProps } from 'react-final-form';\n\ninterface FolderPermissionsMemberItem {\n member: TeamMember;\n renderProps: FieldRenderProps;\n disabled: boolean;\n}\n\nconst FolderPermissionsMemberItem = ({\n member,\n renderProps,\n disabled,\n}: FolderPermissionsMemberItem) => {\n return (\n
    \n
    \n renderProps.input.onChange(!renderProps.input.checked)}\n check={renderProps.input.checked || false}\n disabled={disabled}\n />\n \n
    {member.name}
    \n
    \n
    \n );\n};\n\nexport default FolderPermissionsMemberItem;\n","import React, { useCallback } from 'react';\nimport { Field, Form } from 'react-final-form';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport { FolderChangePermissionsPayload } from 'Interfaces/Folder';\nimport { useSelector } from 'react-redux';\nimport { selectTeamMembers, selectUser } from 'Utils/selectors';\nimport { UserRoles } from 'Interfaces/User';\nimport FolderPermissionsMemberItem from 'Components/FolderPermissionsMemberItem/FolderPermissionsMemberItem';\nimport { GridItem } from 'Interfaces/Grid';\nimport { TeamMember } from 'Interfaces/Team';\n\ninterface ChangePermissionsModalProps {\n grid?: GridItem;\n parentPermissions: any[];\n onClose: () => void;\n onSubmit: (values: FolderChangePermissionsPayload) => void;\n isLoading: boolean;\n}\n\nconst ChangePermissionsModal = ({\n grid,\n onClose,\n parentPermissions,\n onSubmit,\n isLoading,\n}: ChangePermissionsModalProps) => {\n const teamMembers = useSelector(selectTeamMembers);\n const user = useSelector(selectUser);\n\n const handleChangePermissions = (values: any) => {\n const memberIds = [] as TeamMember['id'][];\n for (const key in values) {\n if (values[key]) {\n memberIds.push(key);\n }\n }\n onSubmit({ gridId: grid?.id || '', memberIds: memberIds });\n };\n\n const isCheckboxDisabled = useCallback(\n (member: TeamMember) => {\n if (\n member.role === UserRoles.OWNER ||\n (parentPermissions.length && !parentPermissions.includes(member.id))\n ) {\n return true;\n }\n\n return (\n user.role !== UserRoles.OWNER &&\n (member.role === UserRoles.ADMIN || user.id === member.id)\n );\n },\n [parentPermissions, user.id, user.role],\n );\n\n return (\n
    \n
    \n

    Folder permissions

    \n

    \n
    \n\n {\n return (\n
    \n {teamMembers.length ? (\n teamMembers.map(member => (\n permission.userId === member.id,\n )\n }\n type=\"checkbox\"\n name={`${member.id}`}\n placeholder=\"New Folder Name\"\n >\n {props => (\n \n )}\n \n ))\n ) : (\n
    \n You do not have any teammates yet.\n
    \n )}\n
    \n \n
    \n Cancel\n
    \n
    \n \n );\n }}\n />\n
    \n );\n};\n\nexport default ChangePermissionsModal;\n","import React, { useEffect, useState } from 'react';\nimport classNames from 'classnames';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport { ReactSVG } from 'react-svg';\nimport * as _ from 'lodash';\nimport IconCreateFolder from 'Assets/images/icons/create-folder-icon.svg';\nimport IconFolder from 'Assets/images/icons/folder-icon2.svg';\nimport SkipDotsIcon from 'Assets/images/icons/skip-dots.svg';\nimport { Folder, FolderTypes } from 'Interfaces/Folder';\nimport { useFoldersGet } from 'Hooks/Folders';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { selectFoldersByType } from 'Utils/selectors';\nimport { setCurrentFolderId } from 'Store/ducks/grid/actionCreators';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\n\ninterface MoveToFolderModalProps {\n onClose: () => void;\n onSubmit: () => void;\n isLoading: boolean;\n setSelectedFolder: (folderId: Folder['id'] | undefined) => void;\n selectedFolder: Folder['id'] | undefined;\n openCreateFolderModal: () => void;\n selectedEntitiesIds: Folder['id'][] | undefined;\n initialFolderId?: Folder['id'];\n initialOpenedFolders?: { id: string | undefined; title: string }[];\n foldersType: FolderTypes;\n showWarning: boolean;\n}\n\nconst MoveToFolderModal = ({\n onSubmit,\n setSelectedFolder,\n selectedFolder,\n openCreateFolderModal,\n selectedEntitiesIds,\n initialFolderId,\n initialOpenedFolders,\n foldersType,\n showWarning,\n}: MoveToFolderModalProps) => {\n const [getFolders] = useFoldersGet();\n const folders = useSelector(selectFoldersByType(foldersType));\n const availableFolders = folders.filter(folder => !folder.deletedAt);\n\n const [openedFolders, setOpenedFolders] = useState(\n initialOpenedFolders || [{ title: 'Documents', id: undefined }],\n );\n const [isFoldersListDisplayed, setFoldersListDisplayed] = useState(false);\n const dispatch = useDispatch();\n // eslint-disable-next-line no-undef\n const isMobile = useIsMobile();\n\n const handleOpenFolder = ({ title, id }) => {\n dispatch(setCurrentFolderId({ id }));\n let foldersArray;\n const index = _.findIndex(openedFolders, function(o) {\n return o.id == id;\n });\n\n if (index >= 0) {\n foldersArray = _.take(openedFolders, index + 1);\n getFolders({ id });\n } else {\n foldersArray = _.concat(openedFolders, [{ title, id }]);\n getFolders({ id });\n }\n setOpenedFolders(foldersArray);\n };\n\n useEffect(() => {\n getFolders({ id: initialFolderId });\n setSelectedFolder(openedFolders[openedFolders.length - 1].id);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n
    \n
    \n

    Move to folder

    \n {showWarning && (\n

    \n Warning: if the creator of a folder doesn't have permissions to the\n folder you are moving it to, he will get permissions to that folder. If you\n want the creator to not have access to it, you can change the creator's\n permissions to the folder you are moving before moving it.\n

    \n )}\n
    \n
    \n
    \n
    \n {openedFolders.length > 2 ? (\n <>\n {\n handleOpenFolder({\n title: openedFolders[0].title,\n id: openedFolders[0].id,\n });\n setSelectedFolder(openedFolders[0].id);\n }}\n className=\"moveToFolderModal__breadcrumbsItem\"\n >\n

    {openedFolders[0].title}

    \n
    \n
    \n setFoldersListDisplayed(!isFoldersListDisplayed)}\n >\n \"...\"\n {isFoldersListDisplayed && (\n
    \n {openedFolders\n .filter(\n (_, index) => index > 0 && index < openedFolders.length - 1,\n )\n .map(folder => (\n {\n handleOpenFolder({\n title: folder.title,\n id: folder.id,\n });\n setSelectedFolder(folder.id);\n }}\n >\n
    \n \n

    {folder.title}

    \n
    \n
    \n ))}\n
    \n )}\n
    \n
    \n {\n handleOpenFolder({\n title: openedFolders[openedFolders.length - 1].title,\n id: openedFolders[openedFolders.length - 1].id,\n });\n setSelectedFolder(openedFolders[openedFolders.length - 1].id);\n }}\n className=\"moveToFolderModal__breadcrumbsItem\"\n >\n

    {openedFolders[openedFolders.length - 1].title}

    \n
    \n \n ) : (\n openedFolders.map(folder => {\n return (\n {\n handleOpenFolder({ title: folder.title, id: folder.id });\n setSelectedFolder(folder.id);\n }}\n className=\"moveToFolderModal__breadcrumbsItem\"\n >\n

    {folder.title}

    \n \n );\n })\n )}\n \n \n {availableFolders.map(folder => {\n if (!selectedEntitiesIds?.includes(folder.id))\n return (\n {\n setSelectedFolder(folder.id);\n }}\n onDoubleClick={() => {\n setSelectedFolder(folder.id);\n handleOpenFolder({ title: folder.title, id: folder.id });\n }}\n className={classNames('moveToFolderModal__itemWrapper', {\n 'moveToFolderModal__itemWrapper-hover': selectedFolder === folder.id,\n })}\n >\n
    \n \n

    {folder.title}

    \n
    \n \n );\n })}\n \n
    \n
    \n \n
    \n \n
    \n \n );\n};\n\nexport default MoveToFolderModal;\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { FolderIdPayload } from 'Interfaces/Folder';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: FolderIdPayload) =>\n $actions.folder.getFolder(dispatch, payload),\n );\n};\n","import EmptyTable from 'Components/EmptyTable';\nimport React, { useCallback, useMemo } from 'react';\nimport History from 'Services/History';\nimport { DocumentStatuses } from 'Interfaces/Document';\nimport useTemplateCreate from 'Hooks/Document/useTemplateCreate';\nimport { AuthorizedRoutePaths } from 'Interfaces/RoutePaths';\nimport EmptySignatureRequestsTable from 'Pages/SignatureRequests/SignatureRequestsScreen/components/SignatureRequestItem/EmptySignatureRequestsTable';\nimport EmptyTrashTable from 'Pages/Trash/TrashScreen/components/TrashItem/EmptyTrashTable';\n\nexport enum GridEmptyTableType {\n DOCUMENT = 'document',\n TEMPLATE = 'template',\n SIGNATURE_REQUEST = 'signature_request',\n TRASH = 'trash',\n}\n\ninterface GridEmptyTableProps {\n isSetSearchFilter: boolean;\n}\n\nconst GridEmptyTable = ({ isSetSearchFilter }: GridEmptyTableProps) => {\n const handlePathnameInclude = useCallback(\n text => History.location.pathname.includes(text),\n [],\n );\n\n const { emptyTableType, templateType } = useMemo(() => {\n if (handlePathnameInclude('templates/api')) {\n return {\n emptyTableType: GridEmptyTableType.TEMPLATE,\n templateType: DocumentStatuses.API,\n };\n }\n if (handlePathnameInclude('templates/active')) {\n return {\n emptyTableType: GridEmptyTableType.TEMPLATE,\n templateType: DocumentStatuses.ACTIVE,\n };\n }\n if (handlePathnameInclude('documents/received')) {\n return { emptyTableType: GridEmptyTableType.SIGNATURE_REQUEST };\n }\n if (handlePathnameInclude('documents/trash')) {\n return { emptyTableType: GridEmptyTableType.TRASH };\n }\n return { emptyTableType: GridEmptyTableType.DOCUMENT };\n }, [handlePathnameInclude]);\n\n const [handleTemplateCreateClick] = useTemplateCreate(templateType);\n\n const emptyTemplatesTableProps = useMemo(() => {\n return isSetSearchFilter\n ? {\n buttonText: 'Create Template',\n headerText: 'No matches found for your current search.',\n description: '',\n }\n : {\n buttonText: 'Create Template',\n headerText: \"You don't have any templates yet.\",\n description:\n 'Create your first template to save time when repeating the same signature documents.',\n };\n }, [isSetSearchFilter]);\n\n const emptyDocumentsTableProps = useMemo(() => {\n return isSetSearchFilter\n ? {\n buttonText: 'Create Document',\n headerText: 'No matches found for your current search.',\n description: '',\n }\n : {\n buttonText: 'Create Document',\n headerText: \"You don't have any documents yet.\",\n description: 'Start uploading documents for signing and they will appear here.',\n };\n }, [isSetSearchFilter]);\n\n const emptySignatureRequestsTableProps = useMemo(() => {\n return isSetSearchFilter\n ? {\n headerText: 'No matches found for your current search.',\n description: '',\n }\n : {\n headerText: \"You don't have any received documents yet.\",\n description: 'You will see documents other users sent you to sign here.',\n };\n }, [isSetSearchFilter]);\n\n const emptyTrashTableProps = useMemo(() => {\n return {\n headerText: isSetSearchFilter\n ? 'No matches found for your current search.'\n : \"You don't have any deleted documents yet.\",\n };\n }, [isSetSearchFilter]);\n\n switch (emptyTableType) {\n case GridEmptyTableType.TEMPLATE: {\n return (\n
    \n {\n handleTemplateCreateClick && handleTemplateCreateClick();\n }}\n />\n
    \n );\n }\n case GridEmptyTableType.SIGNATURE_REQUEST: {\n return (\n
    \n \n
    \n );\n }\n case GridEmptyTableType.TRASH: {\n return (\n
    \n \n
    \n );\n }\n default: {\n return (\n
    \n {\n History.push(AuthorizedRoutePaths.SIGN);\n }}\n iconClassName=\"empty-table__icon--document\"\n />\n
    \n );\n }\n }\n};\n\nexport default GridEmptyTable;\n","import { OpenedFolder } from 'Interfaces/Folder';\nimport React, { useCallback, useState } from 'react';\nimport { ReactSVG } from 'react-svg';\nimport IconFolder from 'Assets/images/icons/folder-icon2.svg';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport classNames from 'classnames';\n\ninterface GridPathProps {\n openedFolders: OpenedFolder[];\n handleOpenFolder: (value: any) => void;\n}\n\nconst GridPath = ({ openedFolders, handleOpenFolder }: GridPathProps) => {\n const [isHiddenFoldersDisplayed, setHiddenFolderDisplayed] = useState(false);\n const isMobile = useIsMobile();\n\n const renderHiddenFolders = useCallback(() => {\n const hiddenFolders = openedFolders.filter(\n (_, index) => index > 0 && index < openedFolders.length - 1,\n );\n\n return (\n \n {hiddenFolders.map(folder => (\n {\n handleOpenFolder({\n title: folder.title,\n id: folder.id,\n permissions: folder.permissions,\n });\n }}\n >\n \n \n

    {folder.title}

    \n \n \n ))}\n \n );\n }, [handleOpenFolder, isMobile, openedFolders]);\n\n if (openedFolders.length > 2) {\n const firstFolder = openedFolders[0];\n const lastFolder = openedFolders[openedFolders.length - 1];\n\n return (\n
    \n {\n handleOpenFolder({\n title: firstFolder.title,\n id: firstFolder.id,\n permissions: firstFolder.permissions,\n });\n }}\n className={classNames('tableControls__path--item', { mobile: isMobile })}\n >\n

    {firstFolder.title}

    \n
    \n setHiddenFolderDisplayed(!isHiddenFoldersDisplayed)}\n >\n
    ...
    \n {isHiddenFoldersDisplayed && renderHiddenFolders()}\n \n {\n handleOpenFolder({\n title: lastFolder.title,\n id: lastFolder.id,\n permissions: lastFolder.permissions,\n });\n }}\n className={classNames('tableControls__path--item', { mobile: isMobile })}\n >\n

    {lastFolder.title}

    \n \n \n );\n }\n\n return (\n
    \n {openedFolders.length > 1 &&\n openedFolders.map(folder => {\n return (\n {\n handleOpenFolder({\n title: folder.title,\n id: folder.id,\n permissions: folder.permissions,\n });\n }}\n className=\"tableControls__path--item\"\n >\n {folder.title}\n
    \n );\n })}\n \n );\n};\n\nexport default GridPath;\n","import React from 'react';\nimport FieldTextInput from 'Components/FormFields/FieldTextInput';\nimport { Form, Field } from 'react-final-form';\nimport { required, maxLength100, notOnlySpaces } from 'Utils/validation';\nimport { OnSubmitReturnType } from 'Interfaces/FinalForm';\nimport { composeValidators } from 'Utils/functions';\n\ninterface RenameTitleFormProps {\n templateTitle: string;\n onSubmit: ({ title: string }) => OnSubmitReturnType;\n}\nconst EditableTitle = ({ templateTitle, onSubmit }: RenameTitleFormProps) => {\n return (\n (\n
    \n (required, notOnlySpaces, maxLength100)}\n />\n \n )}\n />\n );\n};\nexport default EditableTitle;\n","import React from 'react';\nimport { formatDate, formatDocumentName } from 'Utils/formatters';\nimport { Document, DocumentStatuses } from 'Interfaces/Document';\nimport { User } from 'Interfaces/User';\nimport DropDownOptions from 'Components/DropDownOptions';\nimport EditableTitle from './EditableTitle';\n\ninterface TemplateItemMobileViewProps {\n template: Document;\n userId: User['id'];\n options: any;\n isActiveEditForm: boolean;\n handleUpdateTemplate: (value: any) => void;\n}\n\nconst TemplateItemMobileView = ({\n template,\n userId,\n options,\n isActiveEditForm,\n handleUpdateTemplate,\n}: TemplateItemMobileViewProps) => {\n return (\n
    \n
    \n
    \n {isActiveEditForm ? (\n \n ) : (\n formatDocumentName(template.title, 'template')\n )}\n
    \n
    \n {template.createdAt && formatDate(template.createdAt)}\n
    \n
    \n \n \n {template.status === DocumentStatuses.ACTIVE ? 'Live' : template.status}\n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n );\n};\n\nexport default TemplateItemMobileView;\n","import React, { useCallback, useMemo, useState } from 'react';\nimport { useSelector } from 'react-redux';\nimport classNames from 'classnames';\n\nimport Toast from 'Services/Toast';\nimport HistoryService from 'Services/History';\n\nimport { Document, DocumentStatuses, DocumentTypes } from 'Interfaces/Document';\nimport { RequestErrorTypes } from 'Interfaces/Common';\nimport { User, UserRoles } from 'Interfaces/User';\n\nimport { useTemplateAddToApi, useTemplateRemoveFromApi } from 'Hooks/Document';\nimport { useModal } from 'Hooks/Common';\n\nimport { formatDate, formatDocumentName } from 'Utils/formatters';\nimport {\n selectApiPlan,\n selectApiSubscriptionInfo,\n selectApiTemplatesCount,\n selectCommonTemplatesCount,\n selectUser,\n selectUserPlan,\n} from 'Utils/selectors';\n\nimport { TemplateUpgradeModal } from 'Components/UpgradeModal';\nimport UICheckbox from 'Components/UIComponents/UICheckbox';\nimport DropDownOptions from 'Components/DropDownOptions';\nimport ConfirmModal from 'Components/ConfirmModal';\n\nimport IntegrationsIcon from 'Assets/images/icons/integrations-icon.svg';\nimport IconDocWithPencil from 'Assets/images/icons/doc-pencil-icon.svg';\nimport CopyIcon from 'Assets/images/icons/copy-icon.svg';\nimport IconRemove from 'Assets/images/icons/remove-icon.svg';\nimport PencilIcon from 'Assets/images/icons/pencil.svg';\nimport IconFolder from 'Assets/images/icons/folder-icon2.svg';\nimport KeyIcon from 'Assets/images/icons/key-icon.svg';\n\nimport EditableTitle from './EditableTitle';\nimport { ApiPlanTypes, PlanTypes } from 'Interfaces/Billing';\nimport TemplateItemMobileView from './TemplateItemMobileView';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport DeleteModal from 'Components/DeleteModal';\nimport Avatar from 'Components/Avatar';\nimport { AuthorizedRoutePaths } from 'Interfaces/RoutePaths';\n\ninterface TemplateItemProps {\n template: Document;\n className?: string;\n isSelected?: boolean;\n toggleSelect?: () => void;\n onDelete?: (templateIds?: Document['id'][]) => void;\n onDeleteTemplate?: (templateId: Document['id'], permanently?: boolean) => void;\n onUpdateTemplate: (title: string, documentId: string, type: DocumentTypes) => void;\n onTemplateCopy?: (templateId: Document['id']) => void;\n openMoveToFolderModal?: () => void;\n setSelectedEntitiesIds?: (entitiesIds) => void;\n setRenamingTemplateId: (templateId: Document['id'] | undefined) => void;\n isSetRenamingTemplateId: boolean;\n}\n\nconst TemplateItem = ({\n template,\n className,\n isSelected,\n toggleSelect = () => {},\n onDelete,\n onDeleteTemplate,\n onTemplateCopy,\n onUpdateTemplate,\n openMoveToFolderModal,\n setSelectedEntitiesIds,\n setRenamingTemplateId,\n isSetRenamingTemplateId,\n}: TemplateItemProps) => {\n const { id: userId, role: userRole, plan, teamId }: User = useSelector(selectUser);\n const apiSubscription = useSelector(selectApiSubscriptionInfo);\n const isMobile = useIsMobile();\n\n const [addTemplateToApi] = useTemplateAddToApi();\n const [removeTemplateFromApi] = useTemplateRemoveFromApi();\n\n const [openUpgradeModal, closeUpgradeModal] = useModal(\n () => ,\n [],\n );\n\n const userPlan = useSelector(selectUserPlan);\n const user = useSelector(selectUser) as User;\n const apiPlan = useSelector(selectApiPlan);\n\n const apiTemplatesCount = useSelector(selectApiTemplatesCount);\n const commonTemplatesCount = useSelector(selectCommonTemplatesCount);\n\n const handleClickRenameTemplate = useCallback(() => {\n setRenamingTemplateId(template.id);\n }, [setRenamingTemplateId, template.id]);\n\n const navigateToTemplateEdit = useCallback(() => {\n if (\n !user.teamId &&\n (userPlan.type === PlanTypes.FREE ||\n (userPlan.type == PlanTypes.PERSONAL && commonTemplatesCount >= 1))\n ) {\n if (apiTemplatesCount >= apiPlan.templateLimit && apiPlan.templateLimit !== -1) {\n HistoryService.push(`${AuthorizedRoutePaths.TEMPLATES}/${template.id}/edit`);\n } else {\n HistoryService.push(\n `${AuthorizedRoutePaths.TEMPLATES}/${template.id}/edit?status=api`,\n );\n }\n } else {\n HistoryService.push(`${AuthorizedRoutePaths.TEMPLATES}/${template.id}/edit`);\n }\n }, [\n apiPlan.templateLimit,\n apiTemplatesCount,\n commonTemplatesCount,\n template.id,\n user.teamId,\n userPlan.type,\n ]);\n\n const handleMoveToClick = useCallback(() => {\n if (setSelectedEntitiesIds) {\n setSelectedEntitiesIds([template.id]);\n }\n if (openMoveToFolderModal) {\n openMoveToFolderModal();\n }\n }, [template, openMoveToFolderModal, setSelectedEntitiesIds]);\n\n const handleTemplateCopy = useCallback(async () => {\n try {\n onTemplateCopy && (await onTemplateCopy(template.id));\n Toast.success('Template successfully duplicated!');\n } catch (error) {\n if (error.type === RequestErrorTypes.QUOTA_EXCEEDED) {\n return openUpgradeModal();\n }\n\n Toast.handleErrors(error);\n }\n }, [onTemplateCopy, template.id, openUpgradeModal]);\n\n const handleUpdateTemplate = useCallback(\n async ({ title }) => {\n try {\n onUpdateTemplate(title, template.id, template.type);\n setRenamingTemplateId(undefined);\n } catch (error) {\n Toast.handleErrors(error);\n }\n },\n [onUpdateTemplate, template.id, template.type, setRenamingTemplateId],\n );\n\n const handleTemplateAddToApi = useCallback(async () => {\n try {\n await addTemplateToApi({ documentId: template.id });\n Toast.success('Template successfully added to API!');\n } catch (error) {\n Toast.handleErrors(error);\n }\n }, [addTemplateToApi, template.id]);\n\n const handleTemplateRemoveFromApi = useCallback(async () => {\n try {\n await removeTemplateFromApi({ documentId: template.id });\n Toast.success('Template successfully removed from API!');\n } catch (error) {\n if (error.type === RequestErrorTypes.QUOTA_EXCEEDED) {\n return openUpgradeModal();\n }\n }\n }, [openUpgradeModal, removeTemplateFromApi, template.id]);\n\n const handleCopyCodeAccess = useCallback(async () => {\n try {\n if (template.codeAccess) {\n await navigator.clipboard.writeText(template.codeAccess);\n Toast.success('Copied to clipboard');\n }\n } catch (err) {\n Toast.handleErrors(err);\n }\n }, [template.codeAccess]);\n\n const handleDelete = useCallback(() => {\n onDeleteTemplate && onDeleteTemplate(template.id, true);\n }, [onDeleteTemplate, template.id]);\n\n const [openTemplateCopyModal, closeTemplateCopyModal] = useModal(() => (\n {\n handleTemplateCopy();\n closeTemplateCopyModal();\n }}\n onCancel={closeTemplateCopyModal}\n >\n
    \n
    \n Are you sure want to duplicate this template?\n
    \n
    \n \n ));\n\n const [showDeleteModal, hideDeleteModal, isDeleteModalOpen] = useModal(\n () => (\n {\n handleDelete();\n hideDeleteModal();\n }}\n className=\"documents__deleteWrapper\"\n >\n
    \n
    \n Are you sure want to delete this template?\n
    \n

    \n Deleting this template will completely remove it. This cannot be undone.\n

    \n
    \n \n ),\n [handleDelete],\n );\n\n const isHiddenTeamOption = useMemo(\n () =>\n template.userId !== userId &&\n userRole !== UserRoles.OWNER &&\n userRole !== UserRoles.ADMIN,\n [userRole, userId, template],\n );\n\n const options = useMemo(() => {\n const options = [\n {\n name: 'Rename',\n icon: PencilIcon,\n onClick: handleClickRenameTemplate,\n hidden: template.status !== DocumentStatuses.DRAFT || template.userId !== userId,\n },\n {\n name: 'Duplicate',\n icon: CopyIcon,\n onClick: openTemplateCopyModal,\n },\n {\n name: 'Move to',\n icon: IconFolder,\n onClick: handleMoveToClick,\n hidden: isHiddenTeamOption,\n },\n {\n name: 'Edit',\n icon: IconDocWithPencil,\n onClick: navigateToTemplateEdit,\n hidden: template.userId !== userId,\n },\n {\n name: 'Add to API',\n icon: IntegrationsIcon,\n onClick: handleTemplateAddToApi,\n hidden:\n template.status !== DocumentStatuses.ACTIVE ||\n template.userId !== userId ||\n !apiSubscription,\n },\n {\n name: 'Remove from API',\n icon: IntegrationsIcon,\n onClick: handleTemplateRemoveFromApi,\n hidden: template.status !== DocumentStatuses.API || template.userId !== userId,\n },\n {\n name: 'Copy Access Code',\n icon: KeyIcon,\n onClick: handleCopyCodeAccess,\n hidden:\n (plan.type === PlanTypes.FREE && !teamId) ||\n !template.codeAccess ||\n !!template.deletedAt,\n },\n {\n name: 'Delete',\n icon: IconRemove,\n onClick: showDeleteModal,\n className: 'red',\n classNameText: 'documents__dropdownOption--red',\n iconClassName: 'documents__dropdownOption--red-icon',\n },\n ];\n\n return options.filter(option => !option.hidden);\n }, [\n apiSubscription,\n handleClickRenameTemplate,\n handleCopyCodeAccess,\n handleMoveToClick,\n handleTemplateAddToApi,\n handleTemplateRemoveFromApi,\n isHiddenTeamOption,\n navigateToTemplateEdit,\n openTemplateCopyModal,\n plan,\n showDeleteModal,\n teamId,\n template,\n userId,\n ]);\n\n return isMobile ? (\n \n ) : (\n \n
    \n {!isHiddenTeamOption && (\n \n )}\n
    \n
    \n {isSetRenamingTemplateId ? (\n \n ) : (\n

    \n {formatDocumentName(template.title, 'template')}\n

    \n )}\n\n \n \n {template.status === DocumentStatuses.ACTIVE ? 'Live' : template.status}\n \n
    \n \n
    \n {template.createdAt && formatDate(template.createdAt)}\n
    \n
    \n \n \n \n {template.user.name ? formatDocumentName(template.user.name, 'document') : ''}\n
    \n \n );\n};\n\nexport default TemplateItem;\n","import React, { useCallback } from 'react';\nimport { BaseModalProps } from 'Components/UIComponents/interfaces/UIModal';\nimport { ApiPlanTypes } from 'Interfaces/Billing';\nimport { useSelector } from 'react-redux';\nimport { selectApiPlan, selectLtdTier } from 'Utils/selectors';\nimport UpgradeModal from './UpgradeModal';\nimport History from 'Services/History';\nimport { AuthorizedRoutePaths } from 'Interfaces/RoutePaths';\nimport { isNotEmpty } from 'Utils/functions';\n\nconst ApiTemplateUpgradeModal = ({ onClose }: BaseModalProps) => {\n const { type: planType, templateLimit, name: planName } = useSelector(selectApiPlan);\n const handleUpgradeClick = useCallback(() => {\n History.push(`${AuthorizedRoutePaths.SETTINGS_API}#api-billing__title`);\n }, []);\n const ltdTier = useSelector(selectLtdTier);\n\n return (\n \n {planType === ApiPlanTypes.FREE ? (\n <>\n You're on the free API plan which includes only one template.\n
    \n Please click below to upgrade your account to access more templates.\n \n ) : (\n <>\n You're on {planName} which includes only{' '}\n {templateLimit +\n (isNotEmpty(ltdTier) && planType !== ApiPlanTypes.LTD_API_PLAN\n ? ltdTier?.apiPlan?.templateLimit\n : 0)}{' '}\n templates.\n
    \n Please click below to upgrade your account to access more templates.\n \n )}\n \n );\n};\n\nexport default ApiTemplateUpgradeModal;\n","import React from 'react';\nimport { useSelector } from 'react-redux';\nimport { selectApiPlan } from 'Utils/selectors';\nimport { useModal } from './index';\nimport ApiTemplateUpgradeModal from 'Components/UpgradeModal/ApiTemplateUpgradeModal';\n\nexport default () => {\n const apiPlan = useSelector(selectApiPlan);\n\n const [openApiUpgradeModal, closeApiUpgradeModal] = useModal(\n () => ,\n [apiPlan],\n );\n\n return [openApiUpgradeModal, closeApiUpgradeModal];\n};\n","import { useCallback } from 'react';\nimport { useSelector } from 'react-redux';\nimport History from 'Services/History';\nimport { DocumentStatuses } from 'Interfaces/Document';\nimport { PlanTypes } from 'Interfaces/Billing';\nimport {\n selectApiPlan,\n selectApiTemplatesCount,\n selectCommonTemplatesCount,\n selectUser,\n selectUserPlan,\n} from 'Utils/selectors';\nimport { User } from 'Interfaces/User';\nimport useUpgradeModal from 'Hooks/Common/useUpgradeModal';\nimport useApiUpgradeModal from 'Hooks/Common/useApiUpgradeModal';\nimport { AuthorizedRoutePaths } from 'Interfaces/RoutePaths';\n\nexport default (type?: DocumentStatuses) => {\n const userPlan = useSelector(selectUserPlan);\n const user = useSelector(selectUser) as User;\n const apiPlan = useSelector(selectApiPlan);\n const apiTemplatesCount = useSelector(selectApiTemplatesCount);\n const commonTemplatesCount = useSelector(selectCommonTemplatesCount);\n\n const [openUpgradeModal] = useUpgradeModal();\n const [openApiUpgradeModal] = useApiUpgradeModal();\n\n const navigateToCreateTemplate = useCallback(() => {\n if (type === DocumentStatuses.ACTIVE) {\n if (\n !user.teamId &&\n (userPlan.type === PlanTypes.FREE ||\n (userPlan.type == PlanTypes.PERSONAL && commonTemplatesCount >= 1))\n ) {\n openUpgradeModal();\n } else {\n History.push(AuthorizedRoutePaths.TEMPLATES_CREATE);\n }\n } else {\n if (apiTemplatesCount >= apiPlan.templateLimit && apiPlan.templateLimit !== -1) {\n openApiUpgradeModal();\n } else {\n History.push(`${AuthorizedRoutePaths.TEMPLATES_CREATE}?status=api`);\n }\n }\n }, [\n apiPlan.templateLimit,\n apiTemplatesCount,\n commonTemplatesCount,\n openApiUpgradeModal,\n openUpgradeModal,\n type,\n user.teamId,\n userPlan.type,\n ]);\n\n return [navigateToCreateTemplate];\n};\n","import React from 'react';\nimport { useSelector } from 'react-redux';\nimport { useModal } from './index';\nimport { TemplateUpgradeModal } from 'Components/UpgradeModal';\nimport { selectUserPlan } from 'Utils/selectors';\n\nexport default () => {\n const userPlan = useSelector(selectUserPlan);\n\n const [openUpgradeModal, closeUpgradeModal] = useModal(\n () => ,\n [userPlan],\n );\n\n return [openUpgradeModal, closeUpgradeModal];\n};\n","import React from 'react';\nimport classnames from 'classnames';\nimport DocumentsIcon from 'Assets/images/icons/documents-icon.svg';\nimport { ReactSVG } from 'react-svg';\n\ninterface EmptySignatureRequestsTableProps {\n headerText: string;\n description?: string;\n icon?: string;\n iconClassName?: string;\n}\n\nconst EmptySignatureRequestsTable = ({\n headerText,\n description,\n icon = DocumentsIcon,\n iconClassName,\n}: EmptySignatureRequestsTableProps) => {\n return (\n
    \n
    \n
    \n \n
    \n
    {headerText}
    \n
    {description}
    \n
    \n
    \n );\n};\n\nexport default EmptySignatureRequestsTable;\n","import React from 'react';\nimport classnames from 'classnames';\nimport DocumentsIcon from 'Assets/images/icons/documents-icon.svg';\nimport { ReactSVG } from 'react-svg';\n\ninterface EmptyTrashTableProps {\n headerText: string;\n description?: string;\n icon?: string;\n iconClassName?: string;\n}\n\nconst EmptyTrashTable = ({\n headerText,\n description,\n icon = DocumentsIcon,\n iconClassName,\n}: EmptyTrashTableProps) => {\n return (\n
    \n
    \n
    \n \n
    \n
    {headerText}
    \n
    {description}
    \n
    \n
    \n );\n};\n\nexport default EmptyTrashTable;\n","import React from 'react';\nimport classNames from 'classnames';\nimport { Document, DocumentStatuses } from 'Interfaces/Document';\nimport { formatDate, formatDocumentName } from 'Utils/formatters';\nimport DropDownOptionsMobile from 'Pages/Documents/components/DocumentItem/DropDownOptionsMobile';\nimport { SignatureRequestStatuseLabels } from 'Interfaces/SignatureRequest';\n\ninterface SignatureRequestItemMobileViewProps {\n document: Document;\n grid: any;\n options: any;\n className?: string;\n}\n\nconst SignatureRequestItemMobileView = ({\n document,\n grid,\n options,\n className,\n}: SignatureRequestItemMobileViewProps) => {\n return (\n
    \n
    \n
    \n {formatDocumentName(document.title, 'document')}\n
    \n
    \n {document.createdAt && formatDate(document.createdAt)}\n
    \n
    \n \n \n {SignatureRequestStatuseLabels[grid.signatureRequests.status]}\n \n
    \n
    \n
    \n
    \n {document.status !== DocumentStatuses.PREPARING && (\n \n )}\n
    \n \n );\n};\n\nexport default SignatureRequestItemMobileView;\n","import React, { useCallback, useMemo } from 'react';\nimport classNames from 'classnames';\nimport { Document, DocumentDownloadTypes, DocumentStatuses } from 'Interfaces/Document';\nimport { formatDate, formatDocumentName } from 'Utils/formatters';\nimport UICheckbox from 'Components/UIComponents/UICheckbox';\nimport IconDocument from 'Assets/images/icons/document-icon.svg';\nimport { useSelector } from 'react-redux';\nimport { selectUser } from 'Utils/selectors';\nimport { User } from 'Interfaces/User';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport Avatar from 'Components/Avatar';\nimport IconEye from 'Assets/images/icons/eye-icon.svg';\nimport SignIcon from 'Assets/images/icons/sign-icon.svg';\nimport IconActivity from 'Assets/images/icons/activity-icon.svg';\nimport IconFolder from 'Assets/images/icons/folder-icon2.svg';\nimport DownloadIcon from 'Assets/images/icons/download-icon.svg';\nimport DeleteIcon from 'Assets/images/icons/remove-icon.svg';\nimport ActivityIcon from 'Assets/images/icons/activity-icon.svg';\nimport {\n SignatureRequestStatuseLabels,\n SignatureRequestStatuses,\n} from 'Interfaces/SignatureRequest';\nimport SignatureRequestItemMobileView from './SignatureRequestItemMobileView';\nimport { useDocumentDownload } from 'Hooks/Document';\nimport DeleteModal from 'Components/DeleteModal';\nimport { useModal } from 'react-modal-hook';\nimport Toast from 'Services/Toast';\nimport { isNotEmpty } from 'Utils/functions';\nimport { useSigningUrlGet } from 'Hooks/DocumentSign';\nimport HistoryService from 'Services/History';\nimport { AuthorizedRoutePaths } from 'Interfaces/RoutePaths';\n\ninterface SignatureRequestItemProps {\n document: Document;\n grid: any;\n className?: string;\n isSelected?: boolean;\n toggleSelect: () => void;\n onDeleteSignatureRequest: (documentId: Document['id']) => void;\n openMoveToFolderModal: () => void;\n setSelectedEntitiesIds: (entitiesIds) => void;\n}\n\nconst SignatureRequestItem = ({\n document,\n grid,\n className,\n isSelected,\n toggleSelect = () => {},\n onDeleteSignatureRequest,\n openMoveToFolderModal,\n setSelectedEntitiesIds,\n}: SignatureRequestItemProps) => {\n const isMobile = useIsMobile();\n const { id: userId, role: userRole }: User = useSelector(selectUser);\n const [downloadDocument, isDownloadingDocument] = useDocumentDownload();\n const [getSigningUrl, isLoading] = useSigningUrlGet();\n\n const navigateToPreview = useCallback(\n (anchor?: string) => {\n HistoryService.push(\n [\n `${AuthorizedRoutePaths.DOCUMENTS}/${document.id}/preview`,\n !!anchor && `#${anchor}`,\n ]\n .filter(Boolean)\n .join(''),\n );\n },\n [document.id],\n );\n\n const signDocument = useCallback(async () => {\n try {\n const response = await getSigningUrl({ documentId: document.id, userId: userId });\n if (!isNotEmpty(response)) {\n return Toast.error('Something went wrong. Please, try again.');\n }\n window.open(response.signingUrl, '_blank');\n } catch (error) {\n Toast.handleErrors(error);\n }\n }, [document.id, getSigningUrl, userId]);\n\n const handleSignatureRequestDelete = useCallback(() => {\n onDeleteSignatureRequest(grid.entityId);\n }, [grid.entityId, onDeleteSignatureRequest]);\n\n const [showDeleteModal, hideDeleteModal] = useModal(\n () => (\n {\n handleSignatureRequestDelete();\n hideDeleteModal();\n }}\n className={classNames('documents__deleteWrapper', { mobile: isMobile })}\n >\n
    \n
    \n Are you sure want to delete this signature request?\n
    \n

    \n Deleting this signature request will completely remove it. This cannot be\n undone.\n

    \n
    \n \n ),\n [handleSignatureRequestDelete],\n );\n\n const handleDownload = useCallback(async () => {\n try {\n await downloadDocument({ documentId: document.id });\n } catch (err) {\n Toast.handleErrors(err);\n }\n }, [downloadDocument, document]);\n\n const handleMoveToClick = useCallback(() => {\n setSelectedEntitiesIds([grid.signatureRequests?.id]);\n openMoveToFolderModal();\n }, [grid.signatureRequests, openMoveToFolderModal, setSelectedEntitiesIds]);\n\n const options = useMemo(() => {\n const options = [\n {\n name: 'Preview',\n icon: IconEye,\n onClick: navigateToPreview,\n hidden: document.status !== DocumentStatuses.COMPLETED,\n },\n {\n name: 'Sign',\n icon: SignIcon,\n onClick: signDocument,\n hidden:\n ![DocumentStatuses.AWAITING, DocumentStatuses.DECLINED].includes(\n document.status,\n ) ||\n ![\n SignatureRequestStatuses.AWAITING_YOU,\n SignatureRequestStatuses.DECLINED,\n ].includes(grid.signatureRequests.status) ||\n (grid.signatureRequests.status === SignatureRequestStatuses.DECLINED &&\n document.isOrdered),\n },\n {\n name: 'Download',\n icon: DownloadIcon,\n onClick: handleDownload,\n hidden: document.status !== DocumentStatuses.COMPLETED,\n },\n {\n name: 'Move to',\n icon: IconFolder,\n onClick: handleMoveToClick,\n },\n {\n name: 'Activity',\n icon: IconActivity,\n onClick: () => navigateToPreview('document-activity'),\n hidden: document.status !== DocumentStatuses.COMPLETED,\n },\n {\n name: 'Delete',\n icon: DeleteIcon,\n onClick: showDeleteModal,\n className: 'documents__dropdownOption--red',\n classNameText: 'documents__dropdownOption--red',\n iconClassName: 'documents__dropdownOption--red-icon',\n classNameIcon: 'documents__dropdownOption--red-icon',\n },\n ];\n\n return options.filter(option => !option.hidden);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [navigateToPreview, document]);\n\n return isMobile ? (\n \n ) : (\n \n
    \n \n
    \n
    \n {document.downloadType === DocumentDownloadTypes.SEPARATED ? (\n <>\n \n \n \n ) : (\n \n )}\n

    \n {formatDocumentName(document.title, 'document')}\n

    \n \n \n {SignatureRequestStatuseLabels[grid.signatureRequests.status]}\n \n
    \n \n
    \n {document.createdAt && formatDate(document.createdAt)}\n
    \n
    \n \n \n \n {document.user.name ? formatDocumentName(document.user.name, 'document') : ''}\n
    \n \n );\n};\n\nexport default SignatureRequestItem;\n","import React from 'react';\nimport classNames from 'classnames';\nimport { Document, DocumentStatuses } from 'Interfaces/Document';\nimport { formatDate, formatDocumentName } from 'Utils/formatters';\nimport EditableTitle from 'Pages/Documents/components/DocumentItem/EditableTitle';\nimport DropDownOptionsMobile from 'Pages/Documents/components/DocumentItem/DropDownOptionsMobile';\n\ninterface TrashItemMobileViewProps {\n document: Document;\n isActiveEditForm: boolean;\n options: any;\n className?: string;\n handleUpdateDocument: (value: any) => void;\n}\n\nconst TrashItemMobileView = ({\n document,\n options,\n className,\n isActiveEditForm,\n handleUpdateDocument,\n}: TrashItemMobileViewProps) => {\n return (\n
    \n
    \n
    \n {isActiveEditForm ? (\n \n ) : (\n formatDocumentName(document.title, 'document')\n )}\n
    \n
    \n {document.createdAt && formatDate(document.createdAt)}\n
    \n
    \n \n DELETED\n
    \n
    \n
    \n
    \n {document.status !== DocumentStatuses.PREPARING && (\n \n )}\n
    \n \n );\n};\n\nexport default TrashItemMobileView;\n","import React, { useCallback, useMemo } from 'react';\nimport classNames from 'classnames';\nimport { useModal } from 'Hooks/Common';\nimport {\n Document,\n DocumentDownloadTypes,\n DocumentStatuses,\n DocumentTypes,\n} from 'Interfaces/Document';\nimport { daysToDate, formatDocumentName } from 'Utils/formatters';\n\nimport UICheckbox from 'Components/UIComponents/UICheckbox';\nimport IconDocument from 'Assets/images/icons/document-icon.svg';\nimport IconFolder from 'Assets/images/icons/folder-icon2.svg';\nimport DeleteIcon from 'Assets/images/icons/remove-icon.svg';\nimport ActivityIcon from 'Assets/images/icons/activity-icon.svg';\nimport { useSelector } from 'react-redux';\nimport { selectUser } from 'Utils/selectors';\nimport { User, UserRoles } from 'Interfaces/User';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport DeleteModal from 'Components/DeleteModal';\nimport Avatar from 'Components/Avatar';\nimport TrashItemMobileView from './TrashItemMobileView';\n\ninterface TrashItemProps {\n document: Document;\n className?: string;\n isSelected?: boolean;\n toggleSelect: () => void;\n onDelete?: (id: Document['id']) => void;\n onDeleteDocument: (documentId: Document['id']) => void;\n onUpdateDocument: (title: string, documentId: string, type: DocumentTypes) => void;\n openMoveToFolderModal: () => void;\n setSelectedEntitiesIds: (entitiesIds) => void;\n setRenamingDocumentId: (documentId: Document['id'] | undefined) => void;\n isSetRenamingDocumentId: boolean;\n}\n\nconst TrashItem = ({\n document,\n className,\n isSelected,\n toggleSelect = () => {},\n onDeleteDocument,\n onUpdateDocument,\n openMoveToFolderModal,\n setSelectedEntitiesIds,\n setRenamingDocumentId,\n isSetRenamingDocumentId,\n}: TrashItemProps) => {\n const isMobile = useIsMobile();\n const { id: userId, role: userRole }: User = useSelector(selectUser);\n\n const handleDocumentDelete = useCallback(() => {\n onDeleteDocument(document.id);\n }, [document.id, onDeleteDocument]);\n\n const [showDeleteModal, hideDeleteModal, isDeleteModalOpen] = useModal(\n () => (\n {\n handleDocumentDelete();\n hideDeleteModal();\n }}\n className={classNames('documents__deleteWrapper', { mobile: isMobile })}\n cancelTitle={\"Don't Delete\"}\n >\n
    \n
    \n Are you sure want to permanently delete this document?\n
    \n

    \n If you permanently delete this folder you won't be able to restore it.\n

    \n
    \n \n ),\n [handleDocumentDelete],\n );\n\n const handleMoveToClick = useCallback(() => {\n setSelectedEntitiesIds([document.id]);\n openMoveToFolderModal();\n }, [document, openMoveToFolderModal, setSelectedEntitiesIds]);\n\n const isHiddenTeamOption = useMemo(\n () =>\n document.userId !== userId &&\n userRole !== UserRoles.OWNER &&\n userRole !== UserRoles.ADMIN,\n [userRole, userId, document],\n );\n\n const isHiddenDeleteButton = useMemo(\n () =>\n document.status === DocumentStatuses.PREPARING ||\n (userRole !== UserRoles.OWNER &&\n userRole !== UserRoles.ADMIN &&\n document?.userId !== userId),\n [document, userId, userRole],\n );\n\n const options = useMemo(() => {\n const options = [\n {\n name: 'Move to',\n icon: IconFolder,\n onClick: handleMoveToClick,\n hidden:\n userRole !== UserRoles.OWNER &&\n userRole !== UserRoles.ADMIN &&\n document?.userId !== userId,\n },\n {\n name: 'Delete Permanently',\n icon: DeleteIcon,\n onClick: showDeleteModal,\n hidden: isHiddenDeleteButton,\n className: 'red',\n classNameText: 'documents__dropdownOption--red',\n classNameIcon: 'documents__dropdownOption--red-icon',\n },\n ];\n\n return options.filter(option => !option.hidden);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [document]);\n\n const daysRemaining = useMemo(() => {\n if (document.deletedAt) {\n const deletedDate = new Date(Date.parse(document.deletedAt));\n deletedDate.setDate(deletedDate.getDate() + 30);\n const remainingDays = daysToDate(new Date(deletedDate).toDateString());\n return remainingDays && remainingDays > 0 ? remainingDays : 0;\n }\n }, [document.deletedAt]);\n\n const handleUpdateDocument = ({ title }) => {\n onUpdateDocument(title, document.id, document.type);\n setRenamingDocumentId(undefined);\n };\n\n return isMobile ? (\n \n ) : (\n
    \n
    \n {!isHiddenTeamOption && (\n \n )}\n
    \n
    \n {document.downloadType === DocumentDownloadTypes.SEPARATED ? (\n <>\n \n \n \n ) : (\n \n )}\n

    \n {formatDocumentName(document.title, 'document')}\n

    \n
    \n DELETED\n
    \n
    \n
    \n {daysRemaining &&\n `${daysRemaining} ${daysRemaining === 1 ? 'Day' : 'Days'} Remaining`}\n
    \n
    \n \n \n \n 30\n ? formatDocumentName(document.user.name, 'document')\n : ''\n }\n >\n {document.user.name ? formatDocumentName(document.user.name, 'document') : ''}\n

    \n
    \n
    \n );\n};\n\nexport default TrashItem;\n","import React from 'react';\nimport { useDispatch } from 'react-redux';\nimport History from 'Services/History';\nimport { GridEntityType, GridItem, SelectableGridItems } from 'Interfaces/Grid';\nimport EmptyTable from 'Components/EmptyTable';\nimport UISpinner from 'Components/UIComponents/UISpinner';\nimport DocumentItem from './DocumentItem';\nimport FolderItem from './FolderItem/FolderItem';\nimport { DocumentTypes } from 'Interfaces/Document';\nimport { setCurrentFolderId } from 'Store/ducks/grid/actionCreators';\nimport { GridPath } from './GridPath';\nimport { OpenedFolder } from 'Interfaces/Folder';\nimport TemplateItem from 'Pages/Templates/TemplatesScreen/components/TemplateItem';\nimport GridEmptyTable from './GridEmptyTable';\nimport SignatureRequestItem from 'Pages/SignatureRequests/SignatureRequestsScreen/components/SignatureRequestItem/SignatureRequestItem';\nimport { AuthorizedRoutePaths } from 'Interfaces/RoutePaths';\nimport TrashItem from 'Pages/Trash/TrashScreen/components/TrashItem/TrashItem';\n\ninterface GridMobileProps {\n pageNumber: number;\n itemsLimit: number;\n itemsCount: number;\n totalItems: number;\n grids: SelectableGridItems[];\n isLoading: boolean;\n folderId?: string;\n openedFolders: OpenedFolder[];\n openCreateFolderModal: () => void;\n openFolderPermissionsModal: () => void;\n openMoveToFolderModal: (showWarning?: boolean) => void;\n handleFolderUpdate: (title: string, folderId: string) => void;\n handleFolderDelete: (folderId: string) => void;\n handleDocumentUpdate: (title: string, documentId: string, type: DocumentTypes) => void;\n handleDocumentDelete: (documentId: string) => void;\n setGridToChangePermission: (grid?: GridItem) => void;\n setSelectedEntitiesIds: (entityIds: string[]) => void;\n handleOpenFolder: (option: any) => void;\n handleTemplateCopy: (templateId: string) => void;\n handleTemplateCreateClick?: () => void;\n handleSignatureRequestDelete: (signatureRequestId: string) => void;\n rootFolderName?: string;\n setRenamingItemId: (documentId: string | undefined) => void;\n renamingItemId: string | undefined;\n isSetSearchFilter: boolean;\n isTrash: boolean;\n onEmptyTrash: () => void;\n}\n\nexport const GridMobile = ({\n pageNumber,\n itemsLimit,\n itemsCount,\n totalItems,\n grids,\n isLoading,\n folderId,\n openedFolders,\n openCreateFolderModal,\n openFolderPermissionsModal,\n openMoveToFolderModal,\n handleDocumentDelete,\n handleDocumentUpdate,\n handleFolderDelete,\n handleFolderUpdate,\n setGridToChangePermission,\n setSelectedEntitiesIds,\n handleOpenFolder,\n handleTemplateCopy,\n handleTemplateCreateClick,\n handleSignatureRequestDelete,\n rootFolderName,\n setRenamingItemId,\n renamingItemId,\n isSetSearchFilter,\n isTrash,\n onEmptyTrash,\n}: GridMobileProps) => {\n const dispatch = useDispatch();\n\n return (\n
    \n
    \n
    \n

    \n {`${pageNumber * itemsLimit + 1}-${pageNumber * itemsLimit +\n (itemsCount || itemsLimit)}`}\n  of \n {totalItems}\n  results\n

    \n
    \n
    \n
    \n {isTrash ? (\n \n ) : (\n {\n dispatch(setCurrentFolderId({ id: folderId }));\n openCreateFolderModal();\n }}\n >\n Create Folder\n \n )}\n
    \n
    \n
    \n
    \n \n
    \n {grids.length === 0 && !isLoading ? (\n \n ) : (\n
    \n
    \n
    \n
    \n {rootFolderName}\n
    \n
    \n {isLoading ? (\n \n ) : grids.length ? (\n grids.map(grid => {\n const { isSelected } = grid;\n\n if (grid.entityType === GridEntityType.FOLDER && grid.folders) {\n return (\n {}}\n isSelected={isSelected}\n onUpdateFolder={handleFolderUpdate}\n onDeleteFolder={handleFolderDelete}\n openChangePermissionsModal={grid => {\n openFolderPermissionsModal();\n setGridToChangePermission(grid);\n }}\n openMoveToFolderModal={openMoveToFolderModal}\n setSelectedEntitiesIds={setSelectedEntitiesIds}\n handleOpenFolder={handleOpenFolder}\n isSetRenamingFolderId={renamingItemId === grid.folders.id}\n setRenamingFolderId={setRenamingItemId}\n />\n );\n }\n\n if (grid.entityType === GridEntityType.DOCUMENT && grid.documents) {\n return grid.documents.type === DocumentTypes.TEMPLATE ? (\n \n setSelectedEntitiesIds(entitiesIds)\n }\n isSetRenamingTemplateId={renamingItemId === grid.documents.id}\n setRenamingTemplateId={setRenamingItemId}\n />\n ) : isTrash && grid.documents.deletedAt ? (\n {}}\n isSelected={isSelected}\n onUpdateDocument={handleDocumentUpdate}\n onDeleteDocument={handleDocumentDelete}\n openMoveToFolderModal={openMoveToFolderModal}\n setSelectedEntitiesIds={entitiesIds =>\n setSelectedEntitiesIds(entitiesIds)\n }\n isSetRenamingDocumentId={renamingItemId === grid.documents.id}\n setRenamingDocumentId={setRenamingItemId}\n />\n ) : (\n {}}\n isSelected={isSelected}\n onUpdateDocument={handleDocumentUpdate}\n onDeleteDocument={handleDocumentDelete}\n openMoveToFolderModal={openMoveToFolderModal}\n setSelectedEntitiesIds={setSelectedEntitiesIds}\n isSetRenamingDocumentId={renamingItemId === grid.documents.id}\n setRenamingDocumentId={setRenamingItemId}\n />\n );\n }\n\n if (grid.entityType === GridEntityType.SIGNATURE_REQUEST) {\n return (\n grid.signatureRequests?.documents && (\n {}}\n isSelected={isSelected}\n onDeleteSignatureRequest={handleSignatureRequestDelete}\n openMoveToFolderModal={openMoveToFolderModal}\n setSelectedEntitiesIds={setSelectedEntitiesIds}\n />\n )\n );\n }\n })\n ) : (\n {\n History.push(AuthorizedRoutePaths.SIGN);\n }}\n iconClassName=\"empty-table__icon--document\"\n buttonText=\"Create Document\"\n headerText=\"You don't have any documents yet.\"\n description=\"Start uploading documents for signing and they will appear here.\"\n />\n )}\n
    \n
    \n )}\n
    \n );\n};\n","import React, { useEffect, useState, useRef } from 'react';\nimport useDropdown from 'use-dropdown';\nimport { ReactSVG } from 'react-svg';\nimport classNames from 'classnames';\nimport IconSelectArrow from 'Assets/images/icons/select-arrow-icon.svg';\nimport { findOffsetParent } from 'Utils/functions';\n\ninterface DropDownOption {\n icon: string;\n name: string;\n onClick: () => void;\n classNameText?: string;\n classNameIcon?: string;\n}\n\ninterface DropDownOptionsInterface {\n options: DropDownOption[];\n anchorClassName: string;\n}\n\nconst DropDownOptions = ({ options, anchorClassName }: DropDownOptionsInterface) => {\n const [containerRef, isOpen, open, close] = useDropdown();\n const [isPlaceOnTop, setIsPlaceOnTop] = useState(false);\n const dropdownListRef = useRef(null);\n const toggleDropdown = () => {\n if (isOpen) {\n close();\n } else {\n open();\n }\n };\n useEffect(() => {\n const { anchor, elementsPath } = findOffsetParent(\n containerRef.current,\n offsetParent => !!offsetParent?.classList.contains(anchorClassName),\n );\n const containerHeight = anchor?.clientHeight || 0;\n const { offsetTop } = containerRef.current;\n const offsetsSum = elementsPath.reduce(\n (accum, element) => accum + element.offsetTop,\n 0,\n );\n const { clientHeight: dropdownListHeight } =\n dropdownListRef.current || ({} as HTMLDivElement);\n\n setIsPlaceOnTop(containerHeight < dropdownListHeight + offsetTop + offsetsSum);\n }, [containerRef, isOpen, anchorClassName]);\n\n return (\n
    \n \n {isOpen && (\n \n {options.map(option => (\n {\n option.onClick();\n close();\n }}\n >\n \n \n {option.name}\n
    \n \n ))}\n \n )}\n \n );\n};\n\nexport default DropDownOptions;\n","import React, { useCallback, useMemo, useState } from 'react';\nimport classNames from 'classnames';\nimport { useDownloadFiles, useModal } from 'Hooks/Common';\nimport {\n useDocumentDownload,\n useDocumentRevert,\n useDocumentToggleNotification,\n} from 'Hooks/Document';\nimport {\n Document,\n DocumentDownloadTypes,\n DocumentStatuses,\n DocumentTypes,\n} from 'Interfaces/Document';\nimport Toast from 'Services/Toast';\nimport HistoryService from 'Services/History';\n\nimport UIModal from 'Components/UIComponents/UIModal';\nimport DropDownOptions from './DropDownOptions';\nimport { ShareModal, ReminderModal, SigningLinkModal } from './modals';\n\nimport IconPencil from 'Assets/images/icons/pencil.svg';\nimport IconEye from 'Assets/images/icons/eye-icon.svg';\nimport SignIcon from 'Assets/images/icons/sign-icon.svg';\nimport IconShare from 'Assets/images/icons/share-icon.svg';\nimport IconDocWithPencil from 'Assets/images/icons/doc-pencil-icon.svg';\nimport IconActivity from 'Assets/images/icons/activity-icon.svg';\nimport KeyIcon from 'Assets/images/icons/key-icon.svg';\nimport CopyIcon from 'Assets/images/icons/copy-icon.svg';\nimport IconFolder from 'Assets/images/icons/folder-icon2.svg';\nimport DeleteIcon from 'Assets/images/icons/remove-icon.svg';\nimport DownloadIcon from 'Assets/images/icons/download-icon.svg';\nimport ConfirmModal from 'Components/ConfirmModal';\nimport { useSelector } from 'react-redux';\nimport { selectUser } from 'Utils/selectors';\nimport { User, UserRoles } from 'Interfaces/User';\nimport DocumentItemMobileView from './DocumentItemMobileView';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport DeleteModal from 'Components/DeleteModal';\nimport NotificationIcon from 'Assets/images/icons/notification-bell.svg';\nimport DocumentSeparatedFileKeyExtractor from 'Pages/Documents/DocumentSeparatedFileKeyExtractor';\nimport { AuthorizedRoutePaths } from 'Interfaces/RoutePaths';\n\ninterface DocumentItemActionsProps {\n document: Document;\n grid: any;\n className?: string;\n isSelected?: boolean;\n toggleSelect: () => void;\n onDownload?: (id: Document['id']) => void;\n onDelete?: (id: Document['id']) => void;\n onDeleteDocument: (documentId: Document['id'], permanently?: boolean) => void;\n onUpdateDocument: (title: string, documentId: string, type: DocumentTypes) => void;\n openMoveToFolderModal: () => void;\n setSelectedEntitiesIds: (entitiesIds) => void;\n setRenamingDocumentId: (documentId: Document['id'] | undefined) => void;\n}\n\nconst DocumentItemActions = ({\n document,\n grid,\n className,\n isSelected,\n toggleSelect = () => {},\n onDownload,\n onDeleteDocument,\n onUpdateDocument,\n openMoveToFolderModal,\n setSelectedEntitiesIds,\n setRenamingDocumentId,\n}: DocumentItemActionsProps) => {\n const [isActiveEditForm, setIsEditFormActive] = useState(false);\n const [toggleDocumentNotification] = useDocumentToggleNotification();\n const [revertDocument, isReverting] = useDocumentRevert();\n const [downloadDocument, isDownloadingDocument] = useDocumentDownload();\n const [\n _,\n documentSeparatedFileKeyExtractorForDocument,\n documentSeparatedFileKeyExtractorForDocumentActivities,\n ] = DocumentSeparatedFileKeyExtractor();\n\n const [downloadSeparatedDocument, isDownloadingDocuments] = useDownloadFiles({\n fileExtractors: [\n documentSeparatedFileKeyExtractorForDocument,\n documentSeparatedFileKeyExtractorForDocumentActivities,\n ],\n name: `${document.title}`,\n });\n const isMobile = useIsMobile();\n const { id: userId, role: userRole }: User = useSelector(selectUser);\n const remindableSigners = useMemo(\n () => (document.signers ? document.signers.filter(signer => !signer.isPreparer) : []),\n [document],\n );\n\n const handleClickDocumentRename = useCallback(() => {\n setRenamingDocumentId(document.id);\n }, [document.id, setRenamingDocumentId]);\n\n const navigateToPreview = useCallback(\n (anchor?: string) => {\n HistoryService.push(\n [\n `${AuthorizedRoutePaths.DOCUMENTS}/${document.id}/preview`,\n !!anchor && `#${anchor}`,\n ]\n .filter(Boolean)\n .join(''),\n );\n },\n [document.id],\n );\n\n const [openShareModal, closeShareModal] = useModal(() => (\n \n \n \n ));\n\n const [openReminderModal, closeReminderModal] = useModal(() => (\n \n \n \n ));\n\n const [openSigningLinkModal, closeSigningLinkModal] = useModal(\n () => (\n !signer.isFinished && !signer.isDeclined)\n : remindableSigners.filter(signer => !signer.isFinished)\n }\n onClose={closeSigningLinkModal}\n isSignersOrdered={document.isOrdered}\n />\n ),\n [document],\n );\n\n const navigateToDocumentEdit = useCallback(() => {\n HistoryService.push(`${AuthorizedRoutePaths.DOCUMENTS}/${document.id}/edit`);\n }, [document.id]);\n\n const handleDocumentRevert = useCallback(async () => {\n try {\n await revertDocument({ documentId: document.id });\n\n navigateToDocumentEdit();\n } catch (error) {\n Toast.handleErrors(error);\n }\n }, [document.id, revertDocument, navigateToDocumentEdit]);\n\n const handleDocumentDelete = useCallback(() => {\n onDeleteDocument(document.id);\n }, [document.id, onDeleteDocument]);\n\n const [openRevertModal, closeRevertModal] = useModal(\n () => (\n {\n if (!isReverting) closeRevertModal();\n }}\n onCancel={closeRevertModal}\n onConfirm={handleDocumentRevert}\n confirmText=\"Revert to Draft\"\n confirmButtonProps={{\n disabled: isReverting,\n isLoading: isReverting,\n }}\n cancelButtonProps={{\n disabled: isReverting,\n }}\n className={classNames('documents__revertModal', { mobile: isMobile })}\n hideCloseIcon\n >\n
    \n

    Edit & Resend document

    \n
    \n

    \n The document would be reverted to draft first, you could edit and resend it\n then.\n
    \n Are you sure you want to revert that document to draft?\n

    \n \n ),\n [isReverting],\n );\n\n const [showDeleteModal, hideDeleteModal, isDeleteModalOpen] = useModal(\n () => (\n {\n handleDocumentDelete();\n hideDeleteModal();\n }}\n className={classNames('documents__deleteWrapper', { mobile: isMobile })}\n >\n
    \n
    \n Are you sure want to delete this document?\n
    \n

    \n Deleting this document will move it to the trash, and you can restore files\n there.\n

    \n
    \n \n ),\n [handleDocumentDelete],\n );\n\n const handleEditAndResend = useCallback(() => {\n if (document.status === DocumentStatuses.DRAFT) {\n return navigateToDocumentEdit();\n }\n\n return openRevertModal();\n }, [navigateToDocumentEdit, openRevertModal, document.status]);\n\n const handleCopyCodeAccess = useCallback(async () => {\n try {\n if (document.codeAccess) {\n await navigator.clipboard.writeText(document.codeAccess);\n Toast.success('Copied to clipboard');\n }\n } catch (err) {\n Toast.handleErrors(err);\n }\n }, [document.codeAccess]);\n\n const handleChangeNotificationStatus = useCallback(async () => {\n try {\n await toggleDocumentNotification({\n grid,\n disableReminders: !document.disableReminders,\n });\n Toast.success(\n `Notifications were ${document.disableReminders ? 'enabled' : 'disabled'}`,\n );\n } catch (err) {\n Toast.handleErrors(err);\n }\n }, [toggleDocumentNotification, grid, document.disableReminders]);\n\n const handleDownload = useCallback(async () => {\n try {\n await downloadDocument({ documentId: document.id });\n } catch (err) {\n Toast.handleErrors(err, { toastId: 'download_error' });\n }\n }, [downloadDocument, document]);\n\n const handleSeparatedDocumentDownload = useCallback(async () => {\n try {\n if (document?.id && document.resultDocumentPdfFileKey) {\n await downloadSeparatedDocument([document]);\n }\n } catch (err) {\n Toast.handleErrors(err, { toastId: 'separated_download_error' });\n }\n }, [document, downloadSeparatedDocument]);\n\n const handleMoveToClick = useCallback(() => {\n setSelectedEntitiesIds([document.id]);\n openMoveToFolderModal();\n }, [document, openMoveToFolderModal, setSelectedEntitiesIds]);\n\n const isHiddenDocumentOwnerOption = useMemo(\n () => document.userId !== userId && userRole === UserRoles.USER,\n [document.userId, userId, userRole],\n );\n\n const isHiddenTeamOption = useMemo(\n () =>\n document.userId !== userId &&\n userRole !== UserRoles.OWNER &&\n userRole !== UserRoles.ADMIN,\n [userRole, userId, document],\n );\n\n const isHiddenDeleteButton = useMemo(\n () =>\n document.status === DocumentStatuses.PREPARING ||\n (userRole !== UserRoles.OWNER &&\n userRole !== UserRoles.ADMIN &&\n document?.userId !== userId),\n [document, userId, userRole],\n );\n\n const isHiddenDeclinedDocumentOption = useMemo(\n () => document.status === DocumentStatuses.DECLINED && document.isOrdered,\n [document.isOrdered, document.status],\n );\n\n const options = useMemo(() => {\n const options = [\n {\n name: 'Download',\n icon: DownloadIcon,\n onClick:\n document.downloadType === DocumentDownloadTypes.MERGED\n ? handleDownload\n : handleSeparatedDocumentDownload,\n hidden: document.status !== DocumentStatuses.COMPLETED,\n },\n {\n name: 'Rename',\n icon: IconPencil,\n onClick: handleClickDocumentRename,\n hidden: document.status !== DocumentStatuses.DRAFT || document.userId !== userId,\n },\n {\n name: 'Preview',\n icon: IconEye,\n onClick: navigateToPreview,\n hidden:\n !document.parts ||\n (!document.parts.every(part => part.filesUploaded) && !document.templateId) ||\n document.status === DocumentStatuses.DRAFT,\n },\n {\n name: 'Move to',\n icon: IconFolder,\n onClick: handleMoveToClick,\n hidden:\n userRole !== UserRoles.OWNER &&\n userRole !== UserRoles.ADMIN &&\n document?.userId !== userId,\n },\n {\n name: 'Share',\n icon: IconShare,\n onClick: openShareModal,\n hidden:\n isHiddenDocumentOwnerOption || document.status !== DocumentStatuses.COMPLETED,\n },\n {\n name: 'Edit & Resend',\n icon: IconDocWithPencil,\n onClick: handleEditAndResend,\n hidden:\n document.userId !== userId || document.status === DocumentStatuses.COMPLETED,\n },\n {\n name: 'Send Reminder',\n icon: SignIcon,\n onClick: openReminderModal,\n hidden:\n isHiddenDeclinedDocumentOption ||\n [\n DocumentStatuses.COMPLETED,\n DocumentStatuses.DRAFT,\n DocumentStatuses.EXPIRED,\n ].includes(document.status),\n },\n {\n name: 'Activity',\n icon: IconActivity,\n onClick: () => navigateToPreview('document-activity'),\n },\n {\n name: 'Copy Access Code',\n icon: KeyIcon,\n onClick: handleCopyCodeAccess,\n hidden: isHiddenDocumentOwnerOption || !document.codeAccess,\n },\n {\n name: 'Generate signing link',\n icon: CopyIcon,\n onClick: openSigningLinkModal,\n hidden:\n isHiddenTeamOption ||\n isHiddenDeclinedDocumentOption ||\n ![DocumentStatuses.AWAITING, DocumentStatuses.DECLINED].includes(\n document.status,\n ),\n },\n {\n name: document.disableReminders ? 'Enable reminders' : 'Disable reminders',\n icon: NotificationIcon,\n onClick: handleChangeNotificationStatus,\n hidden: document.status !== DocumentStatuses.AWAITING,\n },\n {\n name: 'Delete',\n icon: DeleteIcon,\n onClick: showDeleteModal,\n hidden: isHiddenDeleteButton,\n className: 'red',\n classNameText: 'documents__dropdownOption--red',\n classNameIcon: 'documents__dropdownOption--red-icon',\n },\n ];\n\n return options.filter(option => !option.hidden);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n navigateToPreview,\n document,\n navigateToDocumentEdit,\n openReminderModal,\n handleClickDocumentRename,\n ]);\n\n const handleUpdateDocument = ({ title }) => {\n onUpdateDocument(title, document.id, document.type);\n setRenamingDocumentId(undefined);\n };\n\n return isMobile ? (\n \n ) : (\n \n
    \n {document.status !== DocumentStatuses.PREPARING && (\n \n )}\n
    \n \n );\n};\n\nexport default DocumentItemActions;\n","import React, { useCallback, useMemo, useState } from 'react';\nimport classNames from 'classnames';\nimport DropDownOptions from '../DocumentItem/DropDownOptions';\nimport IconPencil from 'Assets/images/icons/pencil.svg';\nimport IconRemove from 'Assets/images/icons/remove-icon.svg';\nimport IconFolder from 'Assets/images/icons/folder-icon2.svg';\nimport LockIcon from 'Assets/images/icons/lock.svg';\nimport { useModal } from 'Hooks/Common';\nimport DeleteFolderModal from './modals/DeleteFolderModal';\nimport { Folder, FolderTypes } from 'Interfaces/Folder';\nimport { GridItem } from 'Interfaces/Grid';\nimport { useSelector } from 'react-redux';\nimport { selectUser } from 'Utils/selectors';\nimport { UserRoles } from 'Interfaces/User';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport { FolderItemMobileView } from './FolderItemMobileView';\nimport PermanentlyDeleteFolderModal from './modals/PermanentlyDeleteFolderModal';\n\ninterface FolderItemActionsProps {\n folder: Folder;\n grid: GridItem;\n toggleSelect: () => void;\n isSelected?: boolean;\n onUpdateFolder: (title, folderId) => void;\n onDeleteFolder: (folderId: Folder['id'], permanently?: boolean) => void;\n openChangePermissionsModal: (folder?: GridItem) => void;\n openMoveToFolderModal: (showWarning?: boolean) => void;\n setSelectedEntitiesIds: (entitiesIds) => void;\n handleOpenFolder: ({ title, id, permissions }) => void;\n setRenamingFolderId: (folderId: Folder['id'] | undefined) => void;\n}\n\nconst FolderItemActions = ({\n folder,\n grid,\n toggleSelect,\n isSelected,\n onUpdateFolder,\n onDeleteFolder,\n openChangePermissionsModal,\n openMoveToFolderModal,\n setSelectedEntitiesIds,\n handleOpenFolder,\n setRenamingFolderId,\n}: FolderItemActionsProps) => {\n const user = useSelector(selectUser);\n const [isActiveEditForm, setIsEditFormActive] = useState(false);\n const isMobile = useIsMobile();\n\n const [showDeleteModal, hideDeleteModal] = useModal(\n () =>\n !folder.deletedAt ? (\n {\n onDeleteFolder(folder?.id || '');\n hideDeleteModal();\n }}\n onCancel={hideDeleteModal}\n folderId={folder?.id || ''}\n folderType={folder.type}\n />\n ) : (\n {\n onDeleteFolder(folder?.id || '', !!folder?.deletedAt);\n hideDeleteModal();\n }}\n onCancel={hideDeleteModal}\n folderId={folder?.id || ''}\n />\n ),\n [],\n );\n\n const handleClickFolderRename = useCallback(() => {\n setRenamingFolderId(folder.id);\n }, [folder.id, setRenamingFolderId]);\n\n const handleMoveToClick = useCallback(() => {\n setSelectedEntitiesIds([folder?.id]);\n openMoveToFolderModal(true);\n }, [folder, openMoveToFolderModal, setSelectedEntitiesIds]);\n\n const handleUpdatePermissionsClick = useCallback(() => {\n openChangePermissionsModal(grid);\n }, [grid, openChangePermissionsModal]);\n\n const options = useMemo(() => {\n const options = [\n {\n name: 'Rename',\n icon: IconPencil,\n onClick: handleClickFolderRename,\n hidden:\n (user.role !== UserRoles.OWNER &&\n user.role !== UserRoles.ADMIN &&\n folder?.userId !== user.id) ||\n folder.deletedAt,\n },\n {\n name: 'Change Permissions',\n icon: LockIcon,\n onClick: handleUpdatePermissionsClick,\n hidden:\n (user.role !== UserRoles.OWNER &&\n user.role !== UserRoles.ADMIN &&\n folder?.userId !== user.id) ||\n folder?.type === FolderTypes.SIGNATURE_REQUEST ||\n folder.deletedAt,\n },\n {\n name: 'Move to',\n icon: IconFolder,\n onClick: handleMoveToClick,\n hidden:\n user.role !== UserRoles.OWNER &&\n user.role !== UserRoles.ADMIN &&\n folder?.userId !== user.id,\n },\n {\n name: !folder.deletedAt ? 'Delete' : 'Delete Permanently',\n icon: IconRemove,\n onClick: showDeleteModal,\n hidden:\n user.role !== UserRoles.OWNER &&\n user.role !== UserRoles.ADMIN &&\n folder?.userId !== user.id,\n classNameText: 'documents__dropdownOption--red',\n classNameIcon: 'documents__dropdownOption--red-icon',\n },\n ];\n\n return options.filter(option => !option.hidden);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handleUpdateFolder = ({ title }) => {\n onUpdateFolder(title, folder?.id);\n setRenamingFolderId(undefined);\n };\n\n return isMobile ? (\n \n ) : (\n
    \n
    \n {!!options.length && (\n \n )}\n
    \n
    \n );\n};\n\nexport default FolderItemActions;\n","import React, { useCallback, useMemo, useState } from 'react';\nimport { useSelector } from 'react-redux';\nimport classNames from 'classnames';\n\nimport Toast from 'Services/Toast';\nimport HistoryService from 'Services/History';\n\nimport { Document, DocumentStatuses, DocumentTypes } from 'Interfaces/Document';\nimport { RequestErrorTypes } from 'Interfaces/Common';\nimport { User, UserRoles } from 'Interfaces/User';\n\nimport { useTemplateAddToApi, useTemplateRemoveFromApi } from 'Hooks/Document';\nimport { useModal } from 'Hooks/Common';\n\nimport {\n selectApiPlan,\n selectApiSubscriptionInfo,\n selectApiTemplatesCount,\n selectCommonTemplatesCount,\n selectUser,\n selectUserPlan,\n} from 'Utils/selectors';\n\nimport { TemplateUpgradeModal } from 'Components/UpgradeModal';\nimport DropDownOptions from 'Components/DropDownOptions';\nimport ConfirmModal from 'Components/ConfirmModal';\n\nimport IntegrationsIcon from 'Assets/images/icons/integrations-icon.svg';\nimport IconDocWithPencil from 'Assets/images/icons/doc-pencil-icon.svg';\nimport CopyIcon from 'Assets/images/icons/copy-icon.svg';\nimport IconRemove from 'Assets/images/icons/remove-icon.svg';\nimport PencilIcon from 'Assets/images/icons/pencil.svg';\nimport IconFolder from 'Assets/images/icons/folder-icon2.svg';\nimport KeyIcon from 'Assets/images/icons/key-icon.svg';\n\nimport { PlanTypes } from 'Interfaces/Billing';\nimport TemplateItemMobileView from './TemplateItemMobileView';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport DeleteModal from 'Components/DeleteModal';\nimport { AuthorizedRoutePaths } from 'Interfaces/RoutePaths';\nimport useApiUpgradeModal from 'Hooks/Common/useApiUpgradeModal';\n\ninterface TemplateItemActionsProps {\n template: Document;\n className?: string;\n isSelected?: boolean;\n toggleSelect?: () => void;\n onDelete?: (templateIds?: Document['id'][]) => void;\n onDeleteTemplate?: (templateId: Document['id'], permanently?: boolean) => void;\n onUpdateTemplate: (title: string, documentId: string, type: DocumentTypes) => void;\n onTemplateCopy?: (templateId: Document['id']) => void;\n openMoveToFolderModal?: () => void;\n setSelectedEntitiesIds?: (entitiesIds) => void;\n setRenamingTemplateId: (templateId: Document['id'] | undefined) => void;\n}\n\nconst TemplateItemActions = ({\n template,\n className,\n isSelected,\n toggleSelect = () => {},\n onDelete,\n onDeleteTemplate,\n onTemplateCopy,\n onUpdateTemplate,\n openMoveToFolderModal,\n setSelectedEntitiesIds,\n setRenamingTemplateId,\n}: TemplateItemActionsProps) => {\n const [isActiveEditForm, setIsEditFormActive] = useState(false);\n const { id: userId, role: userRole, plan, teamId }: User = useSelector(selectUser);\n const apiSubscription = useSelector(selectApiSubscriptionInfo);\n const isMobile = useIsMobile();\n\n const [addTemplateToApi] = useTemplateAddToApi();\n const [removeTemplateFromApi] = useTemplateRemoveFromApi();\n\n const [openUpgradeModal, closeUpgradeModal] = useModal(\n () => ,\n [],\n );\n\n const [openApiUpgradeModal, closeApiUpgradeModal] = useApiUpgradeModal();\n\n const userPlan = useSelector(selectUserPlan);\n const user = useSelector(selectUser) as User;\n const apiPlan = useSelector(selectApiPlan);\n const apiTemplatesCount = useSelector(selectApiTemplatesCount);\n const commonTemplatesCount = useSelector(selectCommonTemplatesCount);\n\n const handleClickRenameTemplate = useCallback(() => {\n setRenamingTemplateId(template.id);\n }, [setRenamingTemplateId, template.id]);\n\n const navigateToTemplateEdit = useCallback(() => {\n if (\n !user.teamId &&\n (userPlan.type === PlanTypes.FREE ||\n (userPlan.type == PlanTypes.PERSONAL && commonTemplatesCount >= 1))\n ) {\n if (apiTemplatesCount >= apiPlan.templateLimit && apiPlan.templateLimit !== -1) {\n HistoryService.push(`${AuthorizedRoutePaths.TEMPLATES}/${template.id}/edit`);\n } else {\n HistoryService.push(\n `${AuthorizedRoutePaths.TEMPLATES}/${template.id}/edit?status=api`,\n );\n }\n } else {\n HistoryService.push(`${AuthorizedRoutePaths.TEMPLATES}/${template.id}/edit`);\n }\n }, [\n apiPlan.templateLimit,\n apiTemplatesCount,\n commonTemplatesCount,\n template.id,\n user.teamId,\n userPlan.type,\n ]);\n\n const handleMoveToClick = useCallback(() => {\n if (setSelectedEntitiesIds) {\n setSelectedEntitiesIds([template.id]);\n }\n if (openMoveToFolderModal) {\n openMoveToFolderModal();\n }\n }, [template, openMoveToFolderModal, setSelectedEntitiesIds]);\n\n const handleTemplateCopy = useCallback(async () => {\n try {\n onTemplateCopy && (await onTemplateCopy(template.id));\n Toast.success('Template successfully duplicated!');\n } catch (error) {\n if (error.type === RequestErrorTypes.QUOTA_EXCEEDED) {\n return template.status === DocumentStatuses.API\n ? openApiUpgradeModal()\n : openUpgradeModal();\n }\n\n Toast.handleErrors(error);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [onTemplateCopy, template.id, openUpgradeModal]);\n\n const handleUpdateTemplate = useCallback(\n async ({ title }) => {\n try {\n onUpdateTemplate(title, template.id, template.type);\n setRenamingTemplateId(undefined);\n } catch (error) {\n Toast.handleErrors(error);\n }\n },\n [onUpdateTemplate, template.id, template.type, setRenamingTemplateId],\n );\n\n const handleTemplateAddToApi = useCallback(async () => {\n try {\n await addTemplateToApi({ documentId: template.id });\n Toast.success('Template successfully added to API!');\n } catch (error) {\n Toast.handleErrors(error);\n }\n }, [addTemplateToApi, template.id]);\n\n const handleTemplateRemoveFromApi = useCallback(async () => {\n try {\n await removeTemplateFromApi({ documentId: template.id });\n Toast.success('Template successfully removed from API!');\n } catch (error) {\n if (error.type === RequestErrorTypes.QUOTA_EXCEEDED) {\n return openUpgradeModal();\n }\n }\n }, [openUpgradeModal, removeTemplateFromApi, template.id]);\n\n const handleCopyCodeAccess = useCallback(async () => {\n try {\n if (template.codeAccess) {\n await navigator.clipboard.writeText(template.codeAccess);\n Toast.success('Copied to clipboard');\n }\n } catch (err) {\n Toast.handleErrors(err);\n }\n }, [template.codeAccess]);\n\n const handleDelete = useCallback(() => {\n onDeleteTemplate && onDeleteTemplate(template.id, true);\n }, [onDeleteTemplate, template.id]);\n\n const [openTemplateCopyModal, closeTemplateCopyModal] = useModal(() => (\n {\n handleTemplateCopy();\n closeTemplateCopyModal();\n }}\n onCancel={closeTemplateCopyModal}\n >\n
    \n
    \n Are you sure want to duplicate this template?\n
    \n
    \n \n ));\n\n const [showDeleteModal, hideDeleteModal, isDeleteModalOpen] = useModal(\n () => (\n {\n handleDelete();\n hideDeleteModal();\n }}\n className=\"documents__deleteWrapper\"\n >\n
    \n
    \n Are you sure want to delete this template?\n
    \n

    \n Deleting this template will completely remove it. This cannot be undone.\n

    \n
    \n \n ),\n [handleDelete],\n );\n\n const isHiddenTeamOption = useMemo(\n () =>\n template.userId !== userId &&\n userRole !== UserRoles.OWNER &&\n userRole !== UserRoles.ADMIN,\n [userRole, userId, template],\n );\n\n const options = useMemo(() => {\n const options = [\n {\n name: 'Rename',\n icon: PencilIcon,\n onClick: handleClickRenameTemplate,\n hidden: template.status !== DocumentStatuses.DRAFT || template.userId !== userId,\n },\n {\n name: 'Duplicate',\n icon: CopyIcon,\n onClick: openTemplateCopyModal,\n },\n {\n name: 'Move to',\n icon: IconFolder,\n onClick: handleMoveToClick,\n hidden: isHiddenTeamOption,\n },\n {\n name: 'Edit',\n icon: IconDocWithPencil,\n onClick: navigateToTemplateEdit,\n hidden: template.userId !== userId,\n },\n {\n name: 'Add to API',\n icon: IntegrationsIcon,\n onClick: handleTemplateAddToApi,\n hidden:\n template.status !== DocumentStatuses.ACTIVE ||\n template.userId !== userId ||\n !apiSubscription,\n },\n {\n name: 'Remove from API',\n icon: IntegrationsIcon,\n onClick: handleTemplateRemoveFromApi,\n hidden: template.status !== DocumentStatuses.API || template.userId !== userId,\n },\n {\n name: 'Copy Access Code',\n icon: KeyIcon,\n onClick: handleCopyCodeAccess,\n hidden:\n (plan.type === PlanTypes.FREE && !teamId) ||\n !template.codeAccess ||\n !!template.deletedAt,\n },\n {\n name: 'Delete',\n icon: IconRemove,\n onClick: showDeleteModal,\n className: 'red',\n classNameText: 'documents__dropdownOption--red',\n iconClassName: 'documents__dropdownOption--red-icon',\n hidden: isHiddenTeamOption,\n },\n ];\n\n return options.filter(option => !option.hidden);\n }, [\n apiSubscription,\n handleClickRenameTemplate,\n handleCopyCodeAccess,\n handleMoveToClick,\n handleTemplateAddToApi,\n handleTemplateRemoveFromApi,\n isHiddenTeamOption,\n navigateToTemplateEdit,\n openTemplateCopyModal,\n plan,\n showDeleteModal,\n teamId,\n template,\n userId,\n ]);\n\n return isMobile ? (\n \n ) : (\n \n
    \n
    \n \n
    \n
    \n \n );\n};\n\nexport default TemplateItemActions;\n","import React, { useCallback, useMemo } from 'react';\nimport classNames from 'classnames';\nimport { useDownloadFiles, useModal } from 'Hooks/Common';\nimport { useDocumentDownload } from 'Hooks/Document';\nimport { Document, DocumentDownloadTypes, DocumentStatuses } from 'Interfaces/Document';\nimport Toast from 'Services/Toast';\nimport HistoryService from 'Services/History';\n\nimport IconEye from 'Assets/images/icons/eye-icon.svg';\nimport SignIcon from 'Assets/images/icons/sign-icon.svg';\nimport IconActivity from 'Assets/images/icons/activity-icon.svg';\nimport IconFolder from 'Assets/images/icons/folder-icon2.svg';\nimport DownloadIcon from 'Assets/images/icons/download-icon.svg';\nimport DeleteIcon from 'Assets/images/icons/remove-icon.svg';\nimport { useSelector } from 'react-redux';\nimport { selectUser } from 'Utils/selectors';\nimport { User } from 'Interfaces/User';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport DeleteModal from 'Components/DeleteModal';\nimport { useSigningUrlGet } from 'Hooks/DocumentSign';\n\nimport DropDownOptions from 'Components/DropDownOptions';\nimport { isNotEmpty } from 'Utils/functions';\nimport { SignatureRequestStatuses } from 'Interfaces/SignatureRequest';\nimport DocumentSeparatedFileKeyExtractor from 'Pages/Documents/DocumentSeparatedFileKeyExtractor';\nimport { AuthorizedRoutePaths } from 'Interfaces/RoutePaths';\n\ninterface SignatureRequestItemActionsProps {\n document: Document;\n grid: any;\n className?: string;\n onDeleteSignatureRequest: (documentId: Document['id']) => void;\n openMoveToFolderModal: () => void;\n setSelectedEntitiesIds: (entitiesIds) => void;\n}\n\nconst SignatureRequestItemActions = ({\n document,\n grid,\n className,\n onDeleteSignatureRequest,\n openMoveToFolderModal,\n setSelectedEntitiesIds,\n}: SignatureRequestItemActionsProps) => {\n const [downloadDocument, isDownloadingDocument] = useDocumentDownload();\n const isMobile = useIsMobile();\n const { id: userId, role: userRole }: User = useSelector(selectUser);\n const [getSigningUrl, isLoading] = useSigningUrlGet();\n\n const [\n _,\n documentSeparatedFileKeyExtractorForDocument,\n documentSeparatedFileKeyExtractorForDocumentActivities,\n ] = DocumentSeparatedFileKeyExtractor();\n\n const [downloadSeparatedDocument, isDownloadingDocuments] = useDownloadFiles({\n fileExtractors: [\n documentSeparatedFileKeyExtractorForDocument,\n documentSeparatedFileKeyExtractorForDocumentActivities,\n ],\n name: `${document.title}`,\n });\n\n const navigateToPreview = useCallback(\n (anchor?: string) => {\n HistoryService.push(\n [\n `${AuthorizedRoutePaths.DOCUMENTS}/${document.id}/preview`,\n !!anchor && `#${anchor}`,\n ]\n .filter(Boolean)\n .join(''),\n );\n },\n [document],\n );\n\n const signDocument = useCallback(async () => {\n try {\n const response = await getSigningUrl({ documentId: document.id, userId: userId });\n if (!isNotEmpty(response)) {\n return Toast.error('Something went wrong. Please, try again.');\n }\n window.open(response.signingUrl, '_blank');\n } catch (error) {\n Toast.handleErrors(error);\n }\n }, [document, getSigningUrl, userId]);\n\n const handleSignatureRequestDelete = useCallback(() => {\n onDeleteSignatureRequest(grid.entityId);\n }, [grid.entityId, onDeleteSignatureRequest]);\n\n const [showDeleteModal, hideDeleteModal, isDeleteModalOpen] = useModal(\n () => (\n {\n handleSignatureRequestDelete();\n hideDeleteModal();\n }}\n className={classNames('documents__deleteWrapper', { mobile: isMobile })}\n >\n
    \n
    \n Are you sure want to delete this signature request?\n
    \n

    \n Deleting this signature request will completely remove it. This cannot be\n undone.\n

    \n
    \n \n ),\n [handleSignatureRequestDelete],\n );\n\n const handleDownload = useCallback(async () => {\n try {\n await downloadDocument({ documentId: document.id });\n } catch (err) {\n Toast.handleErrors(err);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [downloadDocument]);\n\n const handleSeparatedDocumentDownload = useCallback(async () => {\n try {\n if (document?.id && document.resultDocumentPdfFileKey) {\n await downloadSeparatedDocument([document]);\n }\n } catch (err) {\n Toast.handleErrors(err);\n }\n }, [document, downloadSeparatedDocument]);\n\n const handleMoveToClick = useCallback(() => {\n setSelectedEntitiesIds([grid.signatureRequests?.id]);\n openMoveToFolderModal();\n }, [grid, openMoveToFolderModal, setSelectedEntitiesIds]);\n\n const options = useMemo(() => {\n const options = [\n {\n name: 'Preview',\n icon: IconEye,\n onClick: navigateToPreview,\n hidden: document.status !== DocumentStatuses.COMPLETED,\n },\n {\n name: 'Sign',\n icon: SignIcon,\n onClick: signDocument,\n hidden:\n ![DocumentStatuses.AWAITING, DocumentStatuses.DECLINED].includes(\n document.status,\n ) ||\n ![\n SignatureRequestStatuses.AWAITING_YOU,\n SignatureRequestStatuses.DECLINED,\n ].includes(grid.signatureRequests.status) ||\n (grid.signatureRequests.status === SignatureRequestStatuses.DECLINED &&\n document.isOrdered),\n },\n {\n name: 'Download',\n icon: DownloadIcon,\n onClick:\n document.downloadType === DocumentDownloadTypes.MERGED\n ? handleDownload\n : handleSeparatedDocumentDownload,\n hidden: document.status !== DocumentStatuses.COMPLETED,\n },\n {\n name: 'Move to',\n icon: IconFolder,\n onClick: handleMoveToClick,\n },\n {\n name: 'Activity',\n icon: IconActivity,\n onClick: () => navigateToPreview('document-activity'),\n hidden: document.status !== DocumentStatuses.COMPLETED,\n },\n {\n name: 'Delete',\n icon: DeleteIcon,\n onClick: showDeleteModal,\n className: 'documents__dropdownOption--red',\n iconClassName: 'documents__dropdownOption--red-icon',\n },\n ];\n\n return options.filter(option => !option.hidden);\n }, [\n document.downloadType,\n document.status,\n grid.signatureRequests.status,\n handleDownload,\n handleMoveToClick,\n handleSeparatedDocumentDownload,\n navigateToPreview,\n showDeleteModal,\n signDocument,\n ]);\n\n return (\n \n
    \n {document.status !== DocumentStatuses.PREPARING && (\n \n )}\n
    \n \n );\n};\n\nexport default SignatureRequestItemActions;\n","import React, { useCallback, useMemo } from 'react';\nimport classNames from 'classnames';\nimport { useModal } from 'Hooks/Common';\nimport { Document, DocumentStatuses, DocumentTypes } from 'Interfaces/Document';\n\nimport IconFolder from 'Assets/images/icons/folder-icon2.svg';\nimport DeleteIcon from 'Assets/images/icons/remove-icon.svg';\nimport { useSelector } from 'react-redux';\nimport { selectUser } from 'Utils/selectors';\nimport { User, UserRoles } from 'Interfaces/User';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport DeleteModal from 'Components/DeleteModal';\nimport TrashItemMobileView from './TrashItemMobileView';\nimport DropDownOptions from 'Pages/Documents/components/DocumentItem/DropDownOptions';\n\ninterface TrashItemActionsProps {\n document: Document;\n className?: string;\n onDelete?: (id: Document['id']) => void;\n onDeleteDocument: (documentId: Document['id'], permanently?: boolean) => void;\n onUpdateDocument: (title: string, documentId: string, type: DocumentTypes) => void;\n openMoveToFolderModal: () => void;\n setSelectedEntitiesIds: (entitiesIds) => void;\n setRenamingDocumentId: (documentId: Document['id'] | undefined) => void;\n}\n\nconst TrashItemActions = ({\n document,\n className,\n onDeleteDocument,\n onUpdateDocument,\n openMoveToFolderModal,\n setSelectedEntitiesIds,\n setRenamingDocumentId,\n}: TrashItemActionsProps) => {\n const isMobile = useIsMobile();\n const { id: userId, role: userRole }: User = useSelector(selectUser);\n\n const handleDocumentDelete = useCallback(() => {\n onDeleteDocument(document.id, true);\n }, [document.id, onDeleteDocument]);\n\n const [showDeleteModal, hideDeleteModal, isDeleteModalOpen] = useModal(\n () => (\n {\n handleDocumentDelete();\n hideDeleteModal();\n }}\n className={classNames('documents__deleteWrapper', { mobile: isMobile })}\n cancelTitle={\"Don't Delete\"}\n >\n
    \n
    \n Are you sure want to permanently delete this document?\n
    \n

    \n If you permanently delete this folder you won't be able to restore it.\n

    \n
    \n \n ),\n [handleDocumentDelete],\n );\n\n const handleMoveToClick = useCallback(() => {\n setSelectedEntitiesIds([document.id]);\n openMoveToFolderModal();\n }, [document, openMoveToFolderModal, setSelectedEntitiesIds]);\n\n const isHiddenDeleteButton = useMemo(\n () =>\n document.status === DocumentStatuses.PREPARING ||\n (userRole !== UserRoles.OWNER &&\n userRole !== UserRoles.ADMIN &&\n document?.userId !== userId),\n [document, userId, userRole],\n );\n\n const options = useMemo(() => {\n const options = [\n {\n name: 'Move to',\n icon: IconFolder,\n onClick: handleMoveToClick,\n hidden:\n userRole !== UserRoles.OWNER &&\n userRole !== UserRoles.ADMIN &&\n document?.userId !== userId,\n },\n {\n name: 'Delete Permanently',\n icon: DeleteIcon,\n onClick: () => {\n showDeleteModal();\n },\n hidden: isHiddenDeleteButton,\n className: 'red',\n classNameText: 'documents__dropdownOption--red',\n classNameIcon: 'documents__dropdownOption--red-icon',\n },\n ];\n\n return options.filter(option => !option.hidden);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [document]);\n\n const handleUpdateDocument = ({ title }) => {\n onUpdateDocument(title, document.id, document.type);\n setRenamingDocumentId(undefined);\n };\n\n return isMobile ? (\n \n ) : (\n \n
    \n {document.status !== DocumentStatuses.PREPARING && (\n \n )}\n
    \n \n );\n};\n\nexport default TrashItemActions;\n","import React, { useCallback, useMemo, useState } from 'react';\nimport { ReactSVG } from 'react-svg';\nimport * as _ from 'lodash';\nimport History from 'Services/History';\nimport { Document, DocumentStatuses, DocumentTypes } from 'Interfaces/Document';\nimport {\n OrderingDirection,\n SelectableItem,\n TablePaginationProps,\n} from 'Interfaces/Common';\nimport IconSort from 'Assets/images/icons/sort.svg';\nimport DocumentItem from './DocumentItem';\nimport UISpinner from '../../../Components/UIComponents/UISpinner';\nimport FolderItem from './FolderItem/FolderItem';\nimport { useModal } from 'Hooks/Common';\nimport CreateFolderModal from './FolderItem/modals/CreateFolderModal';\nimport ChangePermissionsModal from './FolderItem/modals/ChangePermissionsModal';\nimport UIModal from 'Components/UIComponents/UIModal';\nimport { useFolderCreate, useFoldersDelete, useFolderUpdate } from 'Hooks/Folders';\nimport {\n Folder,\n FolderChangePermissionsPayload,\n FolderTypes,\n OpenedFolder,\n} from 'Interfaces/Folder';\nimport Toast from 'Services/Toast';\nimport { useDocumentCopy, useDocumentDelete, useDocumentUpdate } from 'Hooks/Document';\nimport MoveToFolderModal from './modals/MoveToFolderModal';\nimport { GridEntityType, GridItem, SelectableGridItems } from 'Interfaces/Grid';\nimport GridActionsDropdown, { GridActionTypes } from './GridActionsDropdown';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { setCurrentFolderId } from 'Store/ducks/grid/actionCreators';\nimport { useGridItemsMoveToTrash, useGridItemsUpdate, useTrashEmpty } from 'Hooks/Grid';\nimport useFolderChangePermissions from 'Hooks/Folders/useFolderChangePermissions';\nimport useTeamMembersGet from 'Hooks/Team/useTeamMembersGet';\nimport UICheckbox from 'Components/UIComponents/UICheckbox';\nimport { GridPath } from './GridPath';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport { GridMobile } from './GridMobile';\nimport classNames from 'classnames';\nimport { User, UserRoles } from 'Interfaces/User';\nimport DocumentItemActions from './DocumentItem/DocumentItemActions';\nimport FolderItemActions from './FolderItem/FolderItemActions';\nimport { selectUser } from 'Utils/selectors';\nimport TemplateItem from '../../Templates/TemplatesScreen/components/TemplateItem';\nimport TemplateItemActions from 'Pages/Templates/TemplatesScreen/components/TemplateItem/TemplateItemActions';\nimport GridEmptyTable from './GridEmptyTable';\nimport SignatureRequestItem from 'Pages/SignatureRequests/SignatureRequestsScreen/components/SignatureRequestItem/SignatureRequestItem';\nimport SignatureRequestItemActions from 'Pages/SignatureRequests/SignatureRequestsScreen/components/SignatureRequestItem/SignatureRequestItemActions';\nimport { SignatureRequest } from 'Interfaces/SignatureRequest';\nimport useSignatureRequestDelete from 'Hooks/SignatureRequest/useSignatureRequestDelete';\nimport TrashItemActions from 'Pages/Trash/TrashScreen/components/TrashItem/TrashItemActions';\nimport TrashItem from 'Pages/Trash/TrashScreen/components/TrashItem/TrashItem';\nimport DeleteModal from 'Components/DeleteModal';\n\ninterface GridProps {\n grids: SelectableGridItems[];\n paginationProps?: TablePaginationProps;\n toggleItemSelection: (documentId: string | string[]) => void;\n requestOrdering: (key: string) => void;\n openDeleteModal: () => void;\n onDownload: () => void;\n isLoading: boolean;\n isDownloading?: boolean;\n handleGetGrid: () => void;\n setPageNumber: (pageNumber: number) => void;\n selectedItems: SelectableItem[];\n setFolderId: (folderId: Folder['id']) => void;\n folderId: Folder['id'] | undefined;\n clearSelection: () => void;\n rootFolderName?: string;\n isSetSearchFilter: boolean;\n}\n\ninterface AllSelectedItem {\n [pageNumber: string]: boolean;\n}\n\nconst defaultPaginationProps: TablePaginationProps = {\n pageCount: 0,\n pageNumber: 0,\n itemsCount: 0,\n itemsLimit: 0,\n totalItems: 0,\n};\n\nfunction Grid({\n grids,\n paginationProps = defaultPaginationProps,\n toggleItemSelection,\n isLoading,\n requestOrdering,\n openDeleteModal,\n onDownload,\n handleGetGrid,\n setPageNumber,\n selectedItems,\n setFolderId,\n folderId,\n clearSelection,\n rootFolderName = 'Documents',\n isSetSearchFilter,\n}: GridProps) {\n const { pageNumber, itemsCount, itemsLimit, totalItems } = paginationProps;\n const [getTeamMembers, isFetchLoading] = useTeamMembersGet();\n const [changePermissions, isLoadingChangePermissions] = useFolderChangePermissions();\n const [createFolder, isLoadingCreateFolder] = useFolderCreate();\n const [updateFolder] = useFolderUpdate();\n const [deleteFolder] = useFoldersDelete();\n const [updateGridItems] = useGridItemsUpdate();\n const [updateDocument] = useDocumentUpdate();\n const [deleteDocument] = useDocumentDelete();\n const [deleteSignatureRequests] = useSignatureRequestDelete();\n const [copyTemplate] = useDocumentCopy();\n const [gridToChangePermission, setGridToChangePermission] = useState();\n const [selectedFolder, setSelectedFolder] = useState();\n const [selectedEntitiesIds, setSelectedEntitiesIds] = useState([]);\n const [isShowWarning, setIsShowWarning] = useState(false);\n const [openedFolders, setOpenedFolders] = useState([\n { title: rootFolderName, id: undefined, permissions: [] },\n ]);\n const [allSelected, setAllSelected] = useState({});\n const isAllSelectedChecked = useMemo(() => allSelected[paginationProps.pageNumber], [\n allSelected,\n paginationProps.pageNumber,\n ]);\n const isMobile = useIsMobile();\n const user: User = useSelector(selectUser);\n const [moveToTrash] = useGridItemsMoveToTrash();\n const [emptyTrash] = useTrashEmpty();\n\n const dispatch = useDispatch();\n\n const isTemplate = useMemo(() => History.location.pathname.includes('templates'), []);\n const isSignatureRequest = useMemo(\n () => History.location.pathname.includes('documents/received'),\n [],\n );\n const isTrash = useMemo(\n () => History.location.pathname.includes('documents/trash'),\n [],\n );\n\n const getFolderType = useCallback(() => {\n if (isTemplate) {\n return FolderTypes.TEMPLATE;\n }\n if (isSignatureRequest) {\n return FolderTypes.SIGNATURE_REQUEST;\n }\n return FolderTypes.DOCUMENT;\n }, [isSignatureRequest, isTemplate]);\n\n const handleOpenFolder = useCallback(\n ({ title, id, permissions }) => {\n setOpenedFolders(prev => {\n const index = _.findIndex(openedFolders, folder => folder.id == id);\n return index >= 0\n ? prev.slice(0, index + 1)\n : prev.concat({ title, id, permissions });\n });\n\n setFolderId(id);\n setPageNumber(0);\n },\n [openedFolders, setFolderId, setPageNumber],\n );\n\n const handleCreateFolder = async ({ title }) => {\n try {\n await createFolder({\n title,\n parentId: selectedFolder || folderId,\n type: getFolderType(),\n });\n setPageNumber(0);\n handleGetGrid();\n Toast.success('Folder created!');\n } catch (error) {\n Toast.handleErrors(error);\n }\n };\n\n const handleTemplateCopy = useCallback(\n async (templateId: Document['id']) => {\n await copyTemplate({ documentId: templateId });\n handleGetGrid();\n },\n [copyTemplate, handleGetGrid],\n );\n\n const handleFolderUpdate = async (title, folderId) => {\n try {\n await updateFolder({ title, folderId });\n handleGetGrid();\n Toast.success('Folder successfully updated!');\n } catch (error) {\n Toast.handleErrors(error);\n }\n };\n\n const handleFolderDelete = async (folderId: Folder['id'], permanently = false) => {\n try {\n if (permanently) {\n await deleteFolder([folderId]);\n } else {\n await moveToTrash({ entityIds: [folderId] });\n }\n handleGetGrid();\n Toast.success('Folder deleted successfully.');\n } catch (error) {\n Toast.handleErrors(error);\n }\n };\n\n const handleDocumentDelete = async (\n documentId: Document['id'],\n permanently = false,\n ) => {\n try {\n if (permanently) {\n await deleteDocument({ documentId });\n } else {\n await moveToTrash({ entityIds: [documentId] });\n }\n await handleGetGrid();\n setPageNumber(0);\n isTemplate\n ? Toast.success('Template deleted successfully.')\n : Toast.success('Document deleted successfully.');\n } catch (error) {\n Toast.handleErrors(error);\n }\n };\n\n const handleSignatureRequestDelete = async (\n signatureRequestId: SignatureRequest['id'],\n ) => {\n try {\n await deleteSignatureRequests([signatureRequestId]);\n await handleGetGrid();\n setPageNumber(0);\n isSignatureRequest\n ? Toast.success('Signature request deleted successfully.')\n : Toast.success('Document deleted successfully.');\n } catch (error) {\n Toast.handleErrors(error);\n }\n };\n\n const handleDocumentUpdate = async (title, documentId, type) => {\n try {\n await updateDocument({ values: { title, documentId, type } });\n handleGetGrid();\n isTemplate\n ? Toast.success('Template successfully updated!')\n : Toast.success('Document successfully updated!');\n } catch (error) {\n Toast.handleErrors(error);\n }\n };\n\n const [showCreateFolderModal, hideCreateFolderModal] = useModal(\n () => (\n \n {\n handleCreateFolder({ title });\n }}\n isLoading={isLoadingCreateFolder}\n />\n \n ),\n [handleCreateFolder],\n );\n\n const openCreateFolderModal = useCallback(() => {\n showCreateFolderModal();\n }, [showCreateFolderModal]);\n\n const handlePermissionsUpdate = async (payload: FolderChangePermissionsPayload) => {\n try {\n await changePermissions(payload);\n clearSelection();\n handleGetGrid();\n Toast.success('Permissions successfully changed!');\n } catch (error) {\n Toast.handleErrors(error);\n }\n };\n\n const [showChangePermissionsModal, hideChangePermissionsModal] = useModal(\n () => (\n {\n hideChangePermissionsModal();\n }}\n className=\"documents__reminderModal\"\n >\n {\n hideChangePermissionsModal();\n }}\n onSubmit={values => {\n handlePermissionsUpdate(values);\n hideChangePermissionsModal();\n }}\n isLoading={isLoadingChangePermissions}\n />\n \n ),\n [handlePermissionsUpdate],\n );\n\n const openFolderPermissionsModal = async () => {\n try {\n await getTeamMembers({\n orderingKey: 'role',\n orderingDirection: OrderingDirection.DESC.toUpperCase(),\n });\n showChangePermissionsModal();\n } catch (error) {\n Toast.handleErrors(error);\n }\n };\n\n const handleMoveTo = async () => {\n try {\n await updateGridItems({\n entityIds: selectedEntitiesIds,\n parentId: selectedFolder,\n });\n clearSelection();\n handleGetGrid();\n Toast.success('Files successfully moved!');\n } catch (error) {\n Toast.handleErrors(error);\n }\n };\n\n const [showMoveToFolderModal, hideMoveToFolderModal] = useModal(\n () => (\n {\n hideMoveToFolderModal();\n setSelectedFolder(undefined);\n }}\n className=\"\"\n >\n {\n hideMoveToFolderModal();\n setSelectedFolder(undefined);\n }}\n onSubmit={() => {\n handleMoveTo();\n hideMoveToFolderModal();\n setSelectedFolder(undefined);\n }}\n isLoading={isLoadingCreateFolder}\n setSelectedFolder={folderId => setSelectedFolder(folderId)}\n selectedFolder={selectedFolder}\n selectedEntitiesIds={selectedEntitiesIds}\n openCreateFolderModal={openCreateFolderModal}\n showWarning={isShowWarning}\n initialFolderId={!isTrash ? folderId : undefined}\n initialOpenedFolders={!isTrash ? openedFolders : [openedFolders[0]]}\n foldersType={getFolderType()}\n />\n \n ),\n [selectedFolder, selectedEntitiesIds, isShowWarning],\n );\n\n const openMoveToFolderModal = useCallback(\n (showWarning?: boolean) => {\n setIsShowWarning(!!showWarning);\n showMoveToFolderModal();\n },\n [showMoveToFolderModal],\n );\n\n const dropdownOptions = useMemo(\n () => [\n {\n type: GridActionTypes.DOWNLOAD,\n title: 'Download',\n onClick: onDownload,\n hidden:\n !!selectedItems.find(\n item =>\n item.entityType === GridEntityType.FOLDER ||\n item.documents?.status !== DocumentStatuses.COMPLETED,\n ) ||\n isTemplate ||\n isTrash,\n },\n {\n type: GridActionTypes.MOVE_TO,\n title: 'Move to',\n onClick: () => {\n openMoveToFolderModal(\n selectedItems.some(grid => grid.entityType === GridEntityType.FOLDER),\n );\n setSelectedEntitiesIds(selectedItems.map(grid => grid.entityId));\n },\n },\n {\n type: GridActionTypes.DELETE,\n title: 'Delete',\n onClick: openDeleteModal,\n },\n ],\n [\n isTemplate,\n isTrash,\n onDownload,\n openDeleteModal,\n openMoveToFolderModal,\n selectedItems,\n ],\n );\n\n const handleSelectGridItem = useCallback(\n (grid: GridItem) => {\n toggleItemSelection(grid.entityId);\n isAllSelectedChecked &&\n setAllSelected(prev => ({ ...prev, [paginationProps.pageNumber]: false }));\n },\n [isAllSelectedChecked, paginationProps.pageNumber, toggleItemSelection],\n );\n\n const handleSelectAll = useCallback(() => {\n const isAllToggledAlready =\n !isAllSelectedChecked &&\n grids.every(grid => selectedItems.find(item => item.id === grid.id));\n let gridIds;\n if (user.role === UserRoles.USER) {\n gridIds = grids\n .filter(grid => {\n if (grid.documents) {\n return grid.documents.userId === user.id;\n } else if (grid.folders) {\n return grid.folders.userId === user.id;\n }\n return false;\n })\n .map(grid => grid.entityId);\n } else {\n gridIds = grids.map(grid => grid.entityId);\n }\n\n !isAllToggledAlready && toggleItemSelection(gridIds);\n const prevValue = !!allSelected[paginationProps.pageNumber];\n setAllSelected(prev => ({ ...prev, [paginationProps.pageNumber]: !prevValue }));\n }, [\n user,\n allSelected,\n grids,\n isAllSelectedChecked,\n paginationProps.pageNumber,\n selectedItems,\n toggleItemSelection,\n ]);\n\n const handleEmptyTrash = useCallback(async () => {\n try {\n await emptyTrash(undefined);\n await handleGetGrid();\n setPageNumber(0);\n Toast.success('Trash has been emptied!');\n } catch (error) {\n Toast.handleErrors(error);\n }\n }, [emptyTrash, handleGetGrid, setPageNumber]);\n\n const [showEmptyTrashModal, hideEmptyTrashModal] = useModal(\n () => (\n {\n handleEmptyTrash();\n hideEmptyTrashModal();\n }}\n className={classNames('documents__deleteWrapper', { mobile: isMobile })}\n deleteTitle={'Empty trash'}\n cancelTitle={'Cancel'}\n >\n
    \n
    Confirm Trash Emptying
    \n

    \n Are you certain you wish to empty the trash? Doing so will permanently erase\n all items from your account, and this action is irreversible.\n

    \n
    \n \n ),\n [handleDocumentDelete],\n );\n\n const [renamingItemId, setRenamingItemId] = useState();\n\n return isMobile ? (\n \n ) : (\n
    \n
    \n
    \n \n

    \n {`${pageNumber * itemsLimit + 1}-${pageNumber * itemsLimit +\n (itemsCount || itemsLimit)}`}\n  of \n {totalItems}\n  results\n

    \n
    \n
    \n
    \n {selectedItems.length > 0 && (\n
    \n
    \n ({selectedItems.length})\n
    \n files selected\n !option.hidden)}\n />\n
    \n )}\n
    \n
    \n {isTrash ? (\n \n Empty Trash\n \n ) : (\n {\n dispatch(setCurrentFolderId({ id: folderId }));\n openCreateFolderModal();\n }}\n >\n Create Folder\n \n )}\n
    \n
    \n
    \n {grids.length === 0 && !isLoading ? (\n \n ) : (\n
    \n \n \n
    \n \n
    \n \n requestOrdering('title')}\n >\n TITLE\n \n \n
    \n
    \n requestOrdering('createdAt')}\n >\n {isSignatureRequest ? (\n DATE RECEIVED\n ) : isTrash ? (\n DATE\n ) : (\n DATE CREATED\n )}\n \n \n
    \n
    \n requestOrdering('name')}\n >\n {isSignatureRequest ? SENT BY : CREATED BY}\n \n \n
    \n {isTemplate || isSignatureRequest || isTrash ? null : (\n
    \n SIGNED BY\n
    \n )}\n
    \n {isLoading ? (\n \n ) : (\n
      \n {grids.map(grid => {\n const { isSelected } = grid;\n\n return (\n grid.entityId && (\n
      \n {grid.entityType === GridEntityType.FOLDER && grid.folders && (\n
    • \n handleSelectGridItem(grid)}\n isSelected={isSelected}\n onUpdateFolder={handleFolderUpdate}\n onDeleteFolder={handleFolderDelete}\n openChangePermissionsModal={grid => {\n openFolderPermissionsModal();\n setGridToChangePermission(grid);\n }}\n openMoveToFolderModal={openMoveToFolderModal}\n setSelectedEntitiesIds={setSelectedEntitiesIds}\n handleOpenFolder={handleOpenFolder}\n isSetRenamingFolderId={renamingItemId === grid.folders.id}\n setRenamingFolderId={setRenamingItemId}\n />\n
    • \n )}\n\n {grid.entityType === GridEntityType.DOCUMENT && grid.documents && (\n \n {grid.documents.type === DocumentTypes.TEMPLATE ? (\n \n grid.documents && toggleItemSelection(grid.documents.id)\n }\n isSelected={isSelected}\n onDeleteTemplate={handleDocumentDelete}\n onUpdateTemplate={handleDocumentUpdate}\n onTemplateCopy={handleTemplateCopy}\n openMoveToFolderModal={openMoveToFolderModal}\n setSelectedEntitiesIds={entitiesIds =>\n setSelectedEntitiesIds(entitiesIds)\n }\n isSetRenamingTemplateId={\n renamingItemId === grid.documents.id\n }\n setRenamingTemplateId={setRenamingItemId}\n />\n ) : isTrash && grid.documents.deletedAt ? (\n handleSelectGridItem(grid)}\n isSelected={isSelected}\n onUpdateDocument={handleDocumentUpdate}\n onDeleteDocument={handleDocumentDelete}\n openMoveToFolderModal={openMoveToFolderModal}\n setSelectedEntitiesIds={entitiesIds =>\n setSelectedEntitiesIds(entitiesIds)\n }\n isSetRenamingDocumentId={\n renamingItemId === grid.documents.id\n }\n setRenamingDocumentId={setRenamingItemId}\n />\n ) : (\n handleSelectGridItem(grid)}\n isSelected={isSelected}\n onUpdateDocument={handleDocumentUpdate}\n onDeleteDocument={handleDocumentDelete}\n openMoveToFolderModal={openMoveToFolderModal}\n setSelectedEntitiesIds={entitiesIds =>\n setSelectedEntitiesIds(entitiesIds)\n }\n isSetRenamingDocumentId={\n renamingItemId === grid.documents.id\n }\n setRenamingDocumentId={setRenamingItemId}\n />\n )}\n \n )}\n {grid.entityType === GridEntityType.SIGNATURE_REQUEST &&\n grid.signatureRequests?.documents && (\n \n {\n handleSelectGridItem(grid)}\n isSelected={isSelected}\n onDeleteSignatureRequest={handleSignatureRequestDelete}\n openMoveToFolderModal={openMoveToFolderModal}\n setSelectedEntitiesIds={setSelectedEntitiesIds}\n />\n }\n \n )}\n
      \n )\n );\n })}\n
    \n )}\n \n
    \n
    \n
    ACTIONS
    \n
    \n
      \n {grids.map(grid => {\n const { isSelected } = grid;\n\n return (\n grid.entityId && (\n
      \n {grid.entityType === GridEntityType.FOLDER && grid.folders && (\n
    • \n handleSelectGridItem(grid)}\n isSelected={isSelected}\n onUpdateFolder={handleFolderUpdate}\n onDeleteFolder={handleFolderDelete}\n openChangePermissionsModal={grid => {\n openFolderPermissionsModal();\n setGridToChangePermission(grid);\n }}\n openMoveToFolderModal={openMoveToFolderModal}\n setSelectedEntitiesIds={setSelectedEntitiesIds}\n handleOpenFolder={handleOpenFolder}\n setRenamingFolderId={setRenamingItemId}\n />\n
    • \n )}\n\n {grid.entityType === GridEntityType.DOCUMENT && grid.documents && (\n
    • \n {grid.documents.type === DocumentTypes.TEMPLATE ? (\n \n grid.documents && toggleItemSelection(grid.documents.id)\n }\n isSelected={isSelected}\n onDeleteTemplate={handleDocumentDelete}\n onUpdateTemplate={handleDocumentUpdate}\n onTemplateCopy={handleTemplateCopy}\n openMoveToFolderModal={openMoveToFolderModal}\n setSelectedEntitiesIds={entitiesIds =>\n setSelectedEntitiesIds(entitiesIds)\n }\n setRenamingTemplateId={setRenamingItemId}\n />\n ) : isTrash && grid.documents.deletedAt ? (\n \n setSelectedEntitiesIds(entitiesIds)\n }\n setRenamingDocumentId={setRenamingItemId}\n />\n ) : (\n handleSelectGridItem(grid)}\n isSelected={isSelected}\n onUpdateDocument={handleDocumentUpdate}\n onDeleteDocument={handleDocumentDelete}\n openMoveToFolderModal={openMoveToFolderModal}\n setSelectedEntitiesIds={entitiesIds =>\n setSelectedEntitiesIds(entitiesIds)\n }\n setRenamingDocumentId={setRenamingItemId}\n />\n )}\n
    • \n )}\n {grid.entityType === GridEntityType.SIGNATURE_REQUEST &&\n grid.signatureRequests?.documents && (\n \n {\n \n }\n \n )}\n
      \n )\n );\n })}\n
    \n
    \n \n )}\n \n );\n}\n\nexport default Grid;\n","import { useAsyncAction } from 'Hooks/Common';\nimport { FolderChangePermissionsPayload } from 'Interfaces/Folder';\nimport { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((values: FolderChangePermissionsPayload) =>\n $actions.folder.changePermissions(dispatch, values),\n );\n};\n","import { useDispatch } from 'react-redux';\nimport { FolderUpdatePayload } from 'Interfaces/Folder';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((values: FolderUpdatePayload) =>\n $actions.folder.updateFolder(dispatch, values),\n );\n};\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { Folder } from 'Interfaces/Folder';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((folderIds: Folder['id'][]) =>\n $actions.folder.deleteFolders(dispatch, { folderIds }),\n );\n};\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { GridUpdatePayload } from 'Interfaces/Grid';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((values: GridUpdatePayload) =>\n $actions.grid.updateGrid(dispatch, values),\n );\n};\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { SignatureRequest } from 'Interfaces/SignatureRequest';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((signatureRequestIds: SignatureRequest['id'][]) =>\n $actions.signatureRequest.deleteSignatureRequests(dispatch, { signatureRequestIds }),\n );\n};\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction(() => $actions.grid.emptyTrash(dispatch));\n};\n","import { Document, DocumentStatuses } from 'Interfaces/Document';\nimport { GridItem } from 'Interfaces/Grid';\nimport { useCallback } from 'react';\nimport { formatDateToHumanString } from 'Utils/formatters';\n\nexport default () => {\n const documentFileKeyExtractorForGrid = useCallback((grid?: GridItem) => {\n if (!grid?.documents) {\n throw new Error('Selected items must be documents');\n }\n\n const document = grid.documents;\n\n let fileKey: string | null;\n\n if (document.status === DocumentStatuses.COMPLETED) {\n fileKey = document.resultPdfFileKey;\n } else {\n if (document.pdfFileKey) {\n fileKey = document.pdfFileKey;\n } else {\n if (document.parts.length) {\n return document.parts\n .filter(part => part.filesUploaded)\n .map(part => ({\n fileKey: part.pdfFileKey,\n fileName: `${part.originalFileName.replace(\n /\\.[^/.]+$/,\n '',\n )} (${formatDateToHumanString(document.createdAt)}).pdf`,\n itemName: document.title,\n chunkIndex: grid.chunkIndex,\n }));\n } else {\n return [];\n }\n }\n }\n\n return [\n {\n fileKey,\n fileName: `${document.title} (${formatDateToHumanString(\n document.createdAt,\n )}).pdf`,\n itemName: document.title,\n chunkIndex: grid.chunkIndex,\n },\n ];\n }, []);\n\n const documentFileKeyExtractorForDocument = useCallback((document: Document) => {\n let fileKey: string | null;\n\n if (document.status === DocumentStatuses.COMPLETED) {\n fileKey = document.resultPdfFileKey;\n } else {\n if (document.pdfFileKey) {\n fileKey = document.pdfFileKey;\n } else {\n if (document.parts.length) {\n return document.parts\n .filter(part => part.filesUploaded)\n .map(part => ({\n fileKey: part.pdfFileKey,\n fileName: `${part.originalFileName.replace(\n /\\.[^/.]+$/,\n '',\n )} (${formatDateToHumanString(document.createdAt)}).pdf`,\n itemName: document.title,\n }));\n } else {\n return [];\n }\n }\n }\n\n return [\n {\n fileKey,\n fileName: `${document.title} (${formatDateToHumanString(\n document.createdAt,\n )}).pdf`,\n itemName: document.title,\n },\n ];\n }, []);\n\n const documentFileKeyExtractorForSeparatedDocument = useCallback(\n (document: Document) => {\n let fileKey: string | null;\n\n if (document.status === DocumentStatuses.COMPLETED) {\n fileKey = document.resultDocumentPdfFileKey;\n } else {\n if (document.pdfFileKey) {\n fileKey = document.pdfFileKey;\n } else {\n if (document.parts.length) {\n return document.parts\n .filter(part => part.filesUploaded)\n .map(part => ({\n fileKey: part.pdfFileKey,\n fileName: `${part.originalFileName.replace(\n /\\.[^/.]+$/,\n '',\n )} (${formatDateToHumanString(document.createdAt)}).pdf`,\n itemName: document.title,\n }));\n } else {\n return [];\n }\n }\n }\n\n return [\n {\n fileKey,\n fileName: `${document.title} (${formatDateToHumanString(\n document.createdAt,\n )}).pdf`,\n itemName: document.title,\n },\n ];\n },\n [],\n );\n\n return [\n documentFileKeyExtractorForGrid,\n documentFileKeyExtractorForDocument,\n documentFileKeyExtractorForSeparatedDocument,\n ] as const;\n};\n","import { DocumentStatuses } from 'Interfaces/Document';\nimport { GridItem } from 'Interfaces/Grid';\nimport { useCallback } from 'react';\nimport { formatDateToHumanString } from 'Utils/formatters';\n\nexport default () => {\n const documentActivitiesFileKeyExtractor = useCallback((grid: GridItem) => {\n if (!grid.documents) {\n throw new Error('Selected items must be documents');\n }\n\n const document = grid.documents;\n return document.status === DocumentStatuses.COMPLETED &&\n document.resultActivitiesPdfFileKey\n ? [\n {\n fileKey: document.resultActivitiesPdfFileKey,\n fileName: `${document.title}_activities (${formatDateToHumanString(\n document.createdAt,\n )}).pdf`,\n itemName: document.title,\n chunkIndex: grid.chunkIndex,\n },\n ]\n : [{}];\n }, []);\n\n return [documentActivitiesFileKeyExtractor];\n};\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { SelectableItem } from 'Interfaces/Common';\nimport { GridItem } from 'Interfaces/Grid';\nimport DocumentFileKeyExtractor from 'Pages/Documents/DocumentFileKeyExtractor';\nimport DocumentSeparatedFileKeyExtractor from 'Pages/Documents/DocumentSeparatedFileKeyExtractor';\nimport DocumentActivitiesFileKeyExtractor from 'Pages/Documents/DocumentActivitiesFileKeyExtractor';\nimport { useBulkDownloadFiles } from 'Hooks/Common';\nimport * as _ from 'lodash';\nimport classNames from 'classnames';\nimport { ReactSVG } from 'react-svg';\nimport IconArrowCircle from 'Assets/images/icons/arrow-circle.svg';\nimport UIProgressBar from 'Components/UIComponents/UIProgressBar';\nimport { ZIP_ARCHIVE_DOCUMENT_COUNT } from 'Utils/constants';\n\ninterface DownloadModalProps {\n onClose: () => void;\n selectedItems: SelectableItem[];\n}\n\nexport interface DownloadChunksInterface {\n index: number;\n name: string;\n chunk: SelectableItem[];\n isFinished: boolean;\n percentage?: number;\n}\n\nconst DownloadModal = ({ onClose, selectedItems }: DownloadModalProps) => {\n const [documentFileKeyExtractorForGrid] = DocumentFileKeyExtractor();\n const [documentSeparatedFileKeyExtractor] = DocumentSeparatedFileKeyExtractor();\n const [documentActivitiesFileKeyExtractor] = DocumentActivitiesFileKeyExtractor();\n\n const initialChunks: DownloadChunksInterface[] = useMemo(\n () =>\n _.chunk(selectedItems, ZIP_ARCHIVE_DOCUMENT_COUNT).map((chunk, index) => {\n const name = index === 0 ? `signaturely.zip` : `signaturely (${index}).zip`;\n return { index, name, chunk, isFinished: false };\n }) as DownloadChunksInterface[],\n [selectedItems],\n );\n\n const [chunks, setChunks] = useState(initialChunks);\n\n const handleSetChunks = useCallback(\n (percentageInput: number, chunkIndex: number) => {\n setChunks(\n chunks.map(chunk => {\n if (chunk.index === chunkIndex) {\n chunk.percentage = percentageInput;\n\n if (percentageInput === 100) {\n chunk.isFinished = true;\n }\n }\n\n return chunk;\n }),\n );\n },\n [chunks],\n );\n\n const downloadDocuments = useBulkDownloadFiles({\n fileExtractors: [\n documentFileKeyExtractorForGrid,\n documentSeparatedFileKeyExtractor,\n documentActivitiesFileKeyExtractor,\n ],\n setChunks: handleSetChunks,\n });\n\n const handleDownload = useCallback(async () => {\n for (const item of chunks) {\n item.chunk.map(gridItem => (gridItem.chunkIndex = item.index));\n await downloadDocuments(item.chunk);\n }\n }, [chunks, downloadDocuments]);\n\n useEffect(() => {\n handleDownload();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n
    \n
    \n

    Download Progress

    \n

    Download starts automatically.

    \n
    \n
    \n
      \n {chunks.map(item => {\n return (\n
    • \n

      {item.name}

      \n {!item.isFinished ? (\n \n ) : (\n \n )}\n
    • \n );\n })}\n
    \n
    \n
    \n
    \n Cancel\n
    \n
    \n
    \n );\n};\n\nexport default DownloadModal;\n","import { useCallback } from 'react';\nimport { saveAs } from 'file-saver';\nimport JSZip from 'jszip';\nimport JSZipUtils from 'jszip-utils';\nimport { isEmpty } from 'lodash';\nimport { $actions } from 'Store/ducks';\nimport { useDispatch } from 'react-redux';\nimport Toast from 'Services/Toast';\nimport { SignedUrlResponse } from 'Interfaces/Common';\nimport parsePath from 'path-parse';\nimport { formatFileName } from 'Utils/formatters';\nimport { chunk } from 'lodash';\n\ninterface FileInfo {\n fileKey?: string | null | undefined;\n fileName?: string | null | undefined;\n itemName?: string | null | undefined;\n chunkIndex?: number | null | undefined;\n}\n\ntype FileExtractor = (item: TItem) => FileInfo[];\n\ninterface DownloadPayload {\n fileExtractors: FileExtractor[];\n name?: string;\n hash?: string | null;\n setChunks: (percentage: number, chunkIndex: number) => void;\n}\n\nexport default ({\n fileExtractors,\n name,\n hash,\n setChunks,\n}: DownloadPayload) => {\n const dispatch = useDispatch();\n const wait = (ms: number) => new Promise(resolve => setTimeout(resolve, ms));\n\n const downloadFiles = useCallback(\n async (items: TItem[]) => {\n const zip = new JSZip();\n\n const filesInfoArray: FileInfo[] = [];\n items.forEach(item =>\n fileExtractors.forEach(fileExtractor =>\n filesInfoArray.push(...fileExtractor(item)),\n ),\n );\n const filesCounter = filesInfoArray.filter(filesInfo => !!filesInfo.fileKey).length;\n\n const currentDate = new Date();\n const date = new Date(\n currentDate.getTime() - currentDate.getTimezoneOffset() * 60000,\n );\n\n let chunkCounter = 0;\n\n for (const filesInfoChunk of chunk(filesInfoArray, 3)) {\n await wait(1000);\n await Promise.all(\n filesInfoChunk.map(async fileInfo => {\n const { fileKey, fileName, itemName } = fileInfo;\n try {\n if (!fileKey || !fileName || !itemName) return null;\n const documentId = parsePath(fileKey).name;\n\n const { result: signedUrl } = hash\n ? ((await $actions.user.getSignedGetUrlHash(dispatch, {\n key: fileKey,\n hash,\n documentId,\n })) as SignedUrlResponse)\n : ((await $actions.user.getSignedGetUrl(dispatch, {\n key: fileKey,\n })) as SignedUrlResponse);\n const data = await JSZipUtils.getBinaryContent(signedUrl);\n\n chunkCounter++;\n\n setChunks((100 / filesCounter) * chunkCounter, fileInfo.chunkIndex ?? 0);\n zip.file(`${documentId}/${formatFileName(fileName)}`, data, { date });\n } catch (e) {\n Toast.error(`File from ${itemName} not found`);\n }\n }),\n );\n }\n\n if (!isEmpty(zip.files)) {\n try {\n const blob = await zip.generateAsync({ type: 'blob' });\n saveAs(blob, name ? `${name}.zip` : 'signaturely.zip');\n Toast.success('Files successfully downloaded!');\n } catch (error) {\n Toast.error(error.message);\n }\n } else {\n Toast.error('No files to download');\n }\n },\n [fileExtractors, hash, dispatch, setChunks, name],\n );\n\n return downloadFiles;\n};\n","import React, { useCallback, useEffect, useState, useMemo } from 'react';\nimport { useSelector } from 'react-redux';\nimport { RouteChildrenProps } from 'react-router-dom';\nimport { RangeModifier } from 'react-day-picker';\nimport {\n usePagination,\n useSelectableItem,\n useDataOrdering,\n useModal,\n} from 'Hooks/Common';\nimport { selectGrid, selectGridPaginationData } from 'Utils/selectors';\nimport Toast from 'Services/Toast';\nimport { DocumentStatuses, DocumentTypes, SearchTypeEnum } from 'Interfaces/Document';\nimport History from 'Services/History';\nimport {\n formatDateStringToEndDay,\n formatDateStringToStartDay,\n formatDateToIsoString,\n} from 'Utils/formatters';\nimport { OrderingDirection } from 'Interfaces/Common';\nimport UIPaginator from 'Components/UIComponents/UIPaginator';\nimport DeleteModal from 'Components/DeleteModal';\nimport { DocumentSearch } from './components/DocumentSearch';\nimport { useGridGet } from 'Hooks/Grid';\nimport Grid from './components/Grid';\nimport { Folder } from 'Interfaces/Folder';\nimport { GridEntityType } from 'Interfaces/Grid';\nimport { AuthorizedRoutePaths } from 'Interfaces/RoutePaths';\nimport useGridItemsMoveToTrash from 'Hooks/Grid/useGridItemsMoveToTrash';\nimport ConfirmModal from 'Components/ConfirmModal';\nimport DownloadModal from './components/modals/DownloadModal';\nimport UIModal from 'Components/UIComponents/UIModal';\nimport { ZIP_ARCHIVE_DOCUMENT_COUNT } from 'Utils/constants';\n\ntype selectedPage = { selected: number };\n\ntype statusType = { status: DocumentStatuses };\n\nconst validStatuses: DocumentStatuses[] = [\n DocumentStatuses.DRAFT,\n DocumentStatuses.AWAITING,\n DocumentStatuses.COMPLETED,\n DocumentStatuses.PREPARING,\n DocumentStatuses.DECLINED,\n DocumentStatuses.EXPIRED,\n];\n\nconst voidedStatuses: DocumentStatuses[] = [\n DocumentStatuses.DECLINED,\n DocumentStatuses.EXPIRED,\n];\n\nconst DocumentsScreen = ({ match }: RouteChildrenProps) => {\n const [getGrid, isFetching] = useGridGet();\n const [moveToTrash] = useGridItemsMoveToTrash();\n const [paginationProps, setPageNumber] = usePagination({\n paginationSelector: selectGridPaginationData,\n });\n const grid = useSelector(selectGrid);\n const [folderId, setFolderId] = useState(undefined);\n\n const status = match?.params.status;\n const [selectedDates, setSelectedDates] = useState();\n const [selectedShowType] = useState('all');\n\n const { requestOrdering, orderingConfig } = useDataOrdering(grid, {\n key: 'createdAt',\n direction: OrderingDirection.DESC,\n });\n\n const [searchType, setSearchType] = useState(\n SearchTypeEnum.DOCUMENTS,\n );\n\n const [\n selectableGridItems,\n toggleItemSelection,\n selectedItems,\n clearSelection,\n ] = useSelectableItem(grid, 'entityId');\n const [documentNameFilter, setDocumentNameFilter] = useState('');\n\n const isSetSearchFilter = useMemo(\n () => !!documentNameFilter || !!status || !!selectedDates,\n [documentNameFilter, selectedDates, status],\n );\n\n const [showExtraDownloadModal, closeExtraDownloadModal] = useModal(() => {\n const handleCloseModal = () => {\n closeExtraDownloadModal();\n clearSelection();\n };\n\n return (\n \n \n \n );\n }, [selectedItems]);\n\n const [showExtraDownloadConfirmModal, closeExtraDownloadConfirmModal] = useModal(\n () => (\n {\n closeExtraDownloadConfirmModal();\n }}\n onCancel={closeExtraDownloadConfirmModal}\n onConfirm={() => {\n closeExtraDownloadConfirmModal();\n showExtraDownloadModal();\n }}\n confirmText=\"Download\"\n hideCloseIcon\n >\n
    \n

    Download documents

    \n
    \n

    \n You have selected {selectedItems.length} documents.\n
    \n {Math.ceil(selectedItems.length / ZIP_ARCHIVE_DOCUMENT_COUNT)} ZIP files will be\n downloaded.\n
    \n Would you like to continue downloading?\n

    \n \n ),\n [selectedItems],\n );\n\n const handleDownloads = useCallback(async () => {\n selectedItems.length > ZIP_ARCHIVE_DOCUMENT_COUNT\n ? showExtraDownloadConfirmModal()\n : showExtraDownloadModal();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedItems]);\n\n const handleChangeFilterStatus = useCallback((value?: string | number) => {\n if (value === 'all') {\n History.push(AuthorizedRoutePaths.DOCUMENTS);\n } else {\n History.push(`${AuthorizedRoutePaths.DOCUMENTS}/${value}`);\n }\n }, []);\n\n const changeDocumentNameFilter = useCallback(\n (value: string | string[]) => {\n setPageNumber(0);\n setDocumentNameFilter(value);\n },\n [setPageNumber],\n );\n\n const handleGetGrid = useCallback(async () => {\n const { from, to } = selectedDates || {};\n const { key, direction } = orderingConfig;\n const orderingDirection = direction.toString().toUpperCase();\n try {\n if (\n status &&\n !validStatuses.includes(status) &&\n status !== DocumentStatuses.VOIDED\n ) {\n return History.push(AuthorizedRoutePaths.DOCUMENTS);\n }\n\n const currentStatus = status\n ? status === DocumentStatuses.VOIDED\n ? voidedStatuses\n : [status]\n : validStatuses;\n\n await getGrid({\n type: [DocumentTypes.ME, DocumentTypes.ME_AND_OTHER, DocumentTypes.OTHERS],\n page: paginationProps.pageNumber + 1,\n limit: paginationProps.itemsLimit,\n status: currentStatus,\n searchTerm: documentNameFilter,\n dateFrom: formatDateToIsoString(from),\n dateTo: formatDateToIsoString(to),\n orderingKey: key,\n orderingDirection,\n showType: selectedShowType,\n searchType,\n folderId,\n deleted: false,\n });\n } catch (err) {\n Toast.handleErrors(err);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n paginationProps.itemsLimit,\n paginationProps.pageNumber,\n status,\n documentNameFilter,\n selectedDates,\n orderingConfig,\n selectedShowType,\n folderId,\n ]);\n\n const handleDeleteGrids = useCallback(async () => {\n const entityIds = selectedItems.map(item => item.entityId);\n try {\n await moveToTrash({ entityIds });\n\n if (paginationProps.pageNumber !== 0) {\n setPageNumber(0);\n }\n\n clearSelection();\n Toast.success('Documents deleted successfully.');\n await handleGetGrid();\n } catch (error) {\n Toast.handleErrors(error);\n }\n }, [\n selectedItems,\n moveToTrash,\n paginationProps.pageNumber,\n clearSelection,\n handleGetGrid,\n setPageNumber,\n ]);\n\n const renderDeleteModalMessage = useCallback(() => {\n if (selectedItems.every(item => item.entityType === GridEntityType.DOCUMENT)) {\n return (\n
    \n
    \n {`\n Are you sure want to delete\n ${selectedItems.length > 1 ? 'these documents' : 'this document'}\n `}\n
    \n

    \n {`Deleting ${\n selectedItems.length > 1 ? 'these documents' : 'this document'\n } will move ${\n selectedItems.length > 1 ? 'them' : 'it'\n } to the trash, and you can restore files there.`}\n

    \n
    \n );\n }\n\n if (selectedItems.every(item => item.entityType === GridEntityType.FOLDER)) {\n return (\n
    \n
    \n {`\n Are you sure want to delete\n ${selectedItems.length > 1 ? 'these folders' : 'this folder'}\n `}\n
    \n

    \n {`Deleting ${\n selectedItems.length > 1 ? 'these folder' : 'this folders'\n } will move ${\n selectedItems.length > 1 ? 'them' : 'it'\n } and all documents inside to the trash, and you can restore files there.`}\n

    \n
    \n );\n }\n\n return (\n
    \n
    \n Are you sure want to delete these documents and folders\n
    \n

    \n Deleting these folders and all documents inside will move them to the trash, and\n you can restore files there.\n

    \n
    \n );\n }, [selectedItems]);\n\n const [showDeleteModal, hideDeleteModal] = useModal(\n () => (\n {\n handleDeleteGrids();\n hideDeleteModal();\n }}\n className=\"documents__deleteWrapper\"\n >\n {renderDeleteModalMessage()}\n \n ),\n [handleDeleteGrids],\n );\n\n const openDeleteModal = useCallback(() => {\n if (selectedItems.length) {\n showDeleteModal();\n }\n }, [selectedItems, showDeleteModal]);\n\n const handleChangeDateFilter = useCallback(\n ({ from, to }) => {\n if (from && to) {\n setSelectedDates({\n from: formatDateStringToStartDay(from),\n to: formatDateStringToEndDay(to),\n });\n } else {\n setSelectedDates(undefined);\n }\n\n setPageNumber(0);\n },\n [setPageNumber],\n );\n\n const handleCancelDateFilter = useCallback(() => {\n setSelectedDates(undefined);\n }, []);\n\n useEffect(() => {\n return () => setPageNumber(0);\n }, [setPageNumber, status]);\n\n const handleChangePage = (page: selectedPage) => {\n setPageNumber(page.selected);\n };\n\n useEffect(() => {\n handleGetGrid();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [handleGetGrid]);\n\n return (\n
    \n
    \n

    Documents

    \n

    \n Browse all past, active and draft documents uploaded to your Signaturely\n account.\n

    \n
    \n \n \n {paginationProps.pageCount > 1 && (\n \n )}\n
    \n );\n};\n\nexport default DocumentsScreen;\n","import React, { useMemo, useCallback, useEffect } from 'react';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport { RouteChildrenProps } from 'react-router-dom';\nimport History from 'Services/History';\nimport { useAccessTokenInit } from 'Hooks/Auth';\nimport { useSigningRemindersUnlink } from 'Hooks/DocumentSign';\nimport Toast from 'Services/Toast';\nimport { UnauthorizedRoutePaths } from 'Interfaces/RoutePaths';\n\ninterface PageParams {\n signerId: string;\n}\n\nconst UnlinkRemindersPage = ({ location, match }: RouteChildrenProps) => {\n const [initAccessToken, finishInitAccessToken] = useAccessTokenInit();\n const [unlinkReminders, isLoading] = useSigningRemindersUnlink();\n\n const { signToken, signerId } = useMemo(() => {\n const searchParams = new URLSearchParams(location.search);\n const signerId = match?.params.signerId;\n\n return {\n signToken: searchParams.get('accessToken'),\n signerId,\n };\n }, [location.search, match]);\n\n const navigateToRoot = useCallback(() => {\n History.replace(UnauthorizedRoutePaths.BASE_PATH);\n }, []);\n\n const handleUnlinkReminders = useCallback(\n async (signerId: string) => {\n try {\n await unlinkReminders({ signerId });\n Toast.success('Reminders stopped.');\n } catch (error) {\n navigateToRoot();\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [],\n );\n\n useEffect(() => {\n if (!signToken || !signerId) {\n return navigateToRoot();\n }\n\n initAccessToken({ token: signToken });\n handleUnlinkReminders(signerId);\n\n return () => finishInitAccessToken();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [handleUnlinkReminders, navigateToRoot, signToken]);\n\n return (\n
    \n
    \n

    \n You have been unlinked from reminders for the document\n

    \n
    \n \n
    \n
    \n
    \n );\n};\n\nexport default UnlinkRemindersPage;\n","import { useCallback } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { rootActions } from 'Store';\nimport { TokenPayload } from 'Interfaces/User';\n\ninterface InitAccessToken {\n (payload: TokenPayload): void;\n}\n\ninterface FinishInitAccessToken {\n (): void;\n}\n\nexport default () => {\n const dispatch = useDispatch();\n\n const initAccessToken: InitAccessToken = useCallback(\n (payload: TokenPayload) => {\n dispatch(rootActions.user.initAccessToken(payload));\n },\n [dispatch],\n );\n\n const finishInitAccessToken: FinishInitAccessToken = useCallback(() => {\n dispatch(rootActions.user.finishInitAccessToken());\n }, [dispatch]);\n\n return [initAccessToken, finishInitAccessToken] as const;\n};\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { SigningRemindersUnlinkPayload } from 'Interfaces/Document';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: SigningRemindersUnlinkPayload) =>\n $actions.documentSign.unlinkSigningReminders(dispatch, payload),\n );\n};\n","import React, { useCallback, useEffect, useState, useMemo } from 'react';\nimport { useSelector } from 'react-redux';\nimport { RouteChildrenProps } from 'react-router-dom';\nimport { RangeModifier } from 'react-day-picker';\nimport {\n usePagination,\n useSelectableItem,\n useDataOrdering,\n useModal,\n} from 'Hooks/Common';\nimport { selectGrid, selectGridPaginationData } from 'Utils/selectors';\nimport Toast from 'Services/Toast';\nimport { DocumentStatuses, SearchTypeEnum } from 'Interfaces/Document';\nimport {\n formatDateStringToEndDay,\n formatDateStringToStartDay,\n formatDateToIsoString,\n} from 'Utils/formatters';\nimport { OrderingDirection } from 'Interfaces/Common';\nimport UIPaginator from 'Components/UIComponents/UIPaginator';\nimport DeleteModal from 'Components/DeleteModal';\nimport { DocumentSearch } from 'Pages/Documents/components/DocumentSearch';\nimport { useGridForSignatureRequestsGet, useGridItemsDelete } from 'Hooks/Grid';\nimport Grid from 'Pages/Documents/components/Grid';\nimport { Folder } from 'Interfaces/Folder';\nimport { GridEntityType } from 'Interfaces/Grid';\nimport { SignatureRequestStatuses } from 'Interfaces/SignatureRequest';\nimport UIModal from 'Components/UIComponents/UIModal';\nimport DownloadModal from 'Pages/Documents/components/modals/DownloadModal';\nimport ConfirmModal from 'Components/ConfirmModal';\nimport { ZIP_ARCHIVE_DOCUMENT_COUNT } from 'Utils/constants';\n\ntype selectedPage = { selected: number };\n\ntype statusType = { status: DocumentStatuses };\n\nconst validSignatureRequestStatuses: SignatureRequestStatuses[] = [\n SignatureRequestStatuses.AWAITING_OTHERS,\n SignatureRequestStatuses.AWAITING_YOU,\n SignatureRequestStatuses.COMPLETED,\n SignatureRequestStatuses.SIGNED,\n SignatureRequestStatuses.DECLINED,\n SignatureRequestStatuses.EXPIRED,\n];\n\nconst SignatureRequestsScreen = ({ match }: RouteChildrenProps) => {\n const [getGridForSignatureRequests, isFetching] = useGridForSignatureRequestsGet();\n const [deleteGrids] = useGridItemsDelete();\n const [paginationProps, setPageNumber] = usePagination({\n paginationSelector: selectGridPaginationData,\n });\n\n const grid = useSelector(selectGrid);\n const [folderId, setFolderId] = useState(undefined);\n\n const [selectedDates, setSelectedDates] = useState();\n\n const { requestOrdering, orderingConfig } = useDataOrdering(grid, {\n key: 'createdAt',\n direction: OrderingDirection.DESC,\n });\n\n const [searchType] = useState(SearchTypeEnum.DOCUMENTS);\n\n const [\n selectableGridItems,\n toggleItemSelection,\n selectedItems,\n clearSelection,\n ] = useSelectableItem(grid, 'entityId');\n const [documentNameFilter, setDocumentNameFilter] = useState('');\n const [signatureRequestStatus, setSignatureRequestStatus] = useState<\n SignatureRequestStatuses\n >();\n\n const isSetSearchFilter = useMemo(\n () => !!documentNameFilter || !!signatureRequestStatus || !!selectedDates,\n [documentNameFilter, selectedDates, signatureRequestStatus],\n );\n\n const [showExtraDownloadModal, closeExtraDownloadModal] = useModal(() => {\n const handleCloseModal = () => {\n closeExtraDownloadModal();\n clearSelection();\n };\n\n return (\n \n \n \n );\n }, [selectedItems]);\n\n const [showExtraDownloadConfirmModal, closeExtraDownloadConfirmModal] = useModal(\n () => (\n {\n closeExtraDownloadConfirmModal();\n }}\n onCancel={closeExtraDownloadConfirmModal}\n onConfirm={() => {\n closeExtraDownloadConfirmModal();\n showExtraDownloadModal();\n }}\n confirmText=\"Download\"\n hideCloseIcon\n >\n
    \n

    Download documents

    \n
    \n

    \n You have selected {selectedItems.length} documents.\n
    \n {Math.ceil(selectedItems.length / ZIP_ARCHIVE_DOCUMENT_COUNT)} ZIP files will be\n downloaded.\n
    \n Would you like to continue downloading?\n

    \n \n ),\n [selectedItems],\n );\n\n const handleDownloads = useCallback(async () => {\n selectedItems.length > ZIP_ARCHIVE_DOCUMENT_COUNT\n ? showExtraDownloadConfirmModal()\n : showExtraDownloadModal();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedItems]);\n\n const changeDocumentNameFilter = useCallback(\n (value: string | string[]) => {\n setPageNumber(0);\n setDocumentNameFilter(value);\n },\n [setPageNumber],\n );\n\n const handleGetGrid = useCallback(\n async () => {\n const { from, to } = selectedDates || {};\n const { key, direction } = orderingConfig;\n const orderingDirection = direction.toString().toUpperCase();\n try {\n await getGridForSignatureRequests({\n page: paginationProps.pageNumber + 1,\n limit: paginationProps.itemsLimit,\n searchTerm: documentNameFilter,\n dateFrom: formatDateToIsoString(from),\n dateTo: formatDateToIsoString(to),\n orderingKey: key,\n orderingDirection,\n searchType,\n folderId,\n signatureRequestStatus: signatureRequestStatus\n ? [signatureRequestStatus]\n : validSignatureRequestStatuses,\n });\n } catch (err) {\n Toast.handleErrors(err);\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n paginationProps.itemsLimit,\n paginationProps.pageNumber,\n documentNameFilter,\n selectedDates,\n orderingConfig,\n folderId,\n signatureRequestStatus,\n ],\n );\n\n const handleChangeFilterStatus = useCallback(\n async (value?: string | number) => {\n if (value) {\n const status: SignatureRequestStatuses =\n SignatureRequestStatuses[String(value).toUpperCase()];\n await setSignatureRequestStatus(status);\n setPageNumber(0);\n await handleGetGrid();\n }\n },\n [handleGetGrid, setPageNumber],\n );\n\n const handleDeleteGrids = useCallback(async () => {\n try {\n const entityIds = selectedItems.map(item => item.entityId);\n await deleteGrids({ entityIds });\n if (paginationProps.pageNumber !== 0) {\n setPageNumber(0);\n }\n clearSelection();\n Toast.success('Signature requests deleted successfully.');\n await handleGetGrid();\n } catch (error) {\n Toast.handleErrors(error);\n }\n }, [\n clearSelection,\n deleteGrids,\n handleGetGrid,\n paginationProps.pageNumber,\n selectedItems,\n setPageNumber,\n ]);\n\n const renderDeleteModalMessage = useCallback(() => {\n if (\n selectedItems.every(item => item.entityType === GridEntityType.SIGNATURE_REQUEST)\n ) {\n return (\n
    \n
    \n {`\n Are you sure want to delete\n ${\n selectedItems.length > 1\n ? 'these signature requests'\n : 'this signature request'\n }\n `}\n
    \n

    \n {`Deleting ${\n selectedItems.length > 1\n ? 'these signature requests'\n : 'this signature request'\n } will completely remove ${\n selectedItems.length > 1 ? 'them' : 'it'\n } from your account. This action cannot be undone.`}\n

    \n
    \n );\n }\n\n if (selectedItems.every(item => item.entityType === GridEntityType.FOLDER)) {\n return (\n
    \n
    \n {`\n Are you sure want to delete\n ${selectedItems.length > 1 ? 'these folders' : 'this folder'}\n `}\n
    \n

    \n {`Deleting ${\n selectedItems.length > 1 ? 'these folder' : 'this folders'\n } will completely remove ${\n selectedItems.length > 1 ? 'them' : 'it'\n } and all documents inside from your account. This action cannot be undone.`}\n

    \n
    \n );\n }\n\n return (\n
    \n
    \n Are you sure want to delete these signature requests and folders\n
    \n

    \n Deleting these folders will completely remove them and all signature requests\n inside from your account. This action cannot be undone.\n

    \n
    \n );\n }, [selectedItems]);\n\n const [showDeleteModal, hideDeleteModal] = useModal(\n () => (\n {\n handleDeleteGrids();\n hideDeleteModal();\n }}\n className=\"documents__deleteWrapper\"\n >\n {renderDeleteModalMessage()}\n \n ),\n [handleDeleteGrids],\n );\n\n const openDeleteModal = useCallback(() => {\n if (selectedItems.length) {\n showDeleteModal();\n }\n }, [selectedItems, showDeleteModal]);\n\n const handleChangeDateFilter = useCallback(\n ({ from, to }) => {\n if (from && to) {\n setSelectedDates({\n from: formatDateStringToStartDay(from),\n to: formatDateStringToEndDay(to),\n });\n } else {\n setSelectedDates(undefined);\n }\n\n setPageNumber(0);\n },\n [setPageNumber],\n );\n\n const handleCancelDateFilter = useCallback(() => {\n setSelectedDates(undefined);\n }, []);\n\n useEffect(() => {\n return () => setPageNumber(0);\n }, [setPageNumber]);\n\n const handleChangePage = (page: selectedPage) => {\n setPageNumber(page.selected);\n };\n\n useEffect(() => {\n handleGetGrid();\n }, [handleGetGrid]);\n\n const handleSetSignatureRequestStatus = useCallback(\n (status?: SignatureRequestStatuses) => {\n setSignatureRequestStatus(status);\n setPageNumber(0);\n },\n [setPageNumber],\n );\n\n return (\n
    \n
    \n

    Documents Received

    \n

    \n Browse the documents sent by others for you to sign.\n

    \n
    \n \n \n {paginationProps.pageCount > 1 && (\n \n )}\n
    \n );\n};\n\nexport default SignatureRequestsScreen;\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { GridGetForSignatureRequestsPayload } from 'Interfaces/Grid';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: GridGetForSignatureRequestsPayload) =>\n $actions.grid.getGridForSignatureRequests(dispatch, payload),\n );\n};\n","import React, { useCallback, useEffect, useState, useMemo } from 'react';\nimport { RangeModifier } from 'react-day-picker';\nimport { useSelector } from 'react-redux';\nimport { selectGrid, selectGridPaginationData, selectTemplates } from 'Utils/selectors';\nimport Toast from 'Services/Toast';\nimport {\n useDataOrdering,\n useDownloadFiles,\n useModal,\n usePagination,\n useSelectableItem,\n} from 'Hooks/Common';\nimport { OrderingDirection } from 'Interfaces/Common';\nimport DeleteModal from 'Components/DeleteModal';\nimport {\n formatDateStringToEndDay,\n formatDateStringToStartDay,\n formatDateToIsoString,\n} from 'Utils/formatters';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport History from 'Services/History';\nimport IconSearch from 'Assets/images/icons/search.svg';\nimport UIDatePicker from 'Components/UIComponents/UIDatePicker';\nimport UIPaginator from 'Components/UIComponents/UIPaginator';\nimport DebounceInput from 'Components/DebounceInput';\nimport { DocumentStatuses, DocumentTypes, SearchTypeEnum } from 'Interfaces/Document';\nimport { useApiSubscriptionGet } from 'Hooks/Billing';\nimport UISelect from 'Components/UIComponents/UISelect';\nimport { RouteChildrenProps } from 'react-router-dom';\nimport { useGridGet, useGridItemsDelete } from 'Hooks/Grid';\nimport { Folder } from 'Interfaces/Folder';\nimport Grid from 'Pages/Documents/components/Grid';\nimport { GridEntityType, GridItem } from 'Interfaces/Grid';\nimport DocumentFileKeyExtractor from 'Pages/Documents/DocumentFileKeyExtractor';\nimport DocumentActivitiesFileKeyExtractor from 'Pages/Documents/DocumentActivitiesFileKeyExtractor';\nimport useTemplateCreate from 'Hooks/Document/useTemplateCreate';\nimport { AuthorizedRoutePaths } from 'Interfaces/RoutePaths';\n\ntype SelectedPage = { selected: number };\n\ntype TemplateTypes = DocumentStatuses.API | DocumentStatuses.ACTIVE;\n\ntype StatusType = { status: DocumentStatuses; type: TemplateTypes };\n\nconst validStatuses: DocumentStatuses[] = [\n DocumentStatuses.API,\n DocumentStatuses.DRAFT,\n DocumentStatuses.ACTIVE,\n];\n\nconst TemplatesScreen = ({ match }: RouteChildrenProps) => {\n const [getGrid, isFetching] = useGridGet();\n const [deleteGrids] = useGridItemsDelete();\n const [getApiSubscription, isApiSubscriptionLoading] = useApiSubscriptionGet();\n const [paginationProps, setPageNumber] = usePagination({\n paginationSelector: selectGridPaginationData,\n });\n const [selectedDates, setSelectedDates] = useState();\n\n const grid = useSelector(selectGrid);\n const [folderId, setFolderId] = useState(undefined);\n\n const { type, status } = match?.params || {};\n const templates = useSelector(selectTemplates);\n const [selectedShowType] = useState('all');\n\n const { requestOrdering, orderingConfig } = useDataOrdering(templates, {\n key: 'createdAt',\n direction: OrderingDirection.DESC,\n });\n\n const [searchType, setSearchType] = useState(\n SearchTypeEnum.DOCUMENTS,\n );\n\n const statusFilterOptions = useMemo(\n () => [\n { value: 'all', label: 'All' },\n { value: 'draft', label: 'Draft' },\n type === DocumentStatuses.API\n ? { value: 'api', label: 'API' }\n : { value: 'active', label: 'Live' },\n ],\n [type],\n );\n\n const [templateNameFilter, setTemplateNameFilter] = useState('');\n\n const changeTemplateNameFilter = useCallback((value: string) => {\n setTemplateNameFilter(value);\n }, []);\n\n const [\n selectableGridItems,\n toggleItemSelection,\n selectedItems,\n clearSelection,\n ] = useSelectableItem(grid, 'entityId');\n const [documentFileKeyExtractorForGrid] = DocumentFileKeyExtractor();\n const [documentActivitiesFileKeyExtractor] = DocumentActivitiesFileKeyExtractor();\n\n const [downloadDocuments, isDownloadingDocuments] = useDownloadFiles({\n fileExtractors: [documentFileKeyExtractorForGrid, documentActivitiesFileKeyExtractor],\n });\n\n const isSetSearchFilter = useMemo(\n () => !!templateNameFilter || !!status || !!selectedDates,\n [selectedDates, status, templateNameFilter],\n );\n\n const handleDownloads = useCallback(async () => {\n await downloadDocuments(selectedItems);\n clearSelection();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedItems]);\n\n const handleGetGrid = useCallback(async () => {\n const { from, to } = selectedDates || {};\n const { key, direction } = orderingConfig;\n const orderingDirection = direction.toString().toUpperCase();\n try {\n if (status && !validStatuses.includes(status)) {\n return History.push(AuthorizedRoutePaths.TEMPLATES);\n }\n\n let statuses;\n if (!status) {\n if (type) {\n statuses = [type, DocumentStatuses.DRAFT];\n } else {\n statuses = validStatuses;\n }\n } else {\n statuses = [status];\n }\n\n await getGrid({\n type: [DocumentTypes.TEMPLATE],\n page: paginationProps.pageNumber + 1,\n limit: paginationProps.itemsLimit,\n status: statuses,\n searchTerm: templateNameFilter,\n dateFrom: formatDateToIsoString(from),\n dateTo: formatDateToIsoString(to),\n orderingKey: key,\n orderingDirection,\n showType: selectedShowType,\n searchType,\n folderId,\n });\n } catch (err) {\n Toast.handleErrors(err);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n paginationProps.itemsLimit,\n paginationProps.pageNumber,\n status,\n templateNameFilter,\n selectedDates,\n orderingConfig,\n selectedShowType,\n folderId,\n ]);\n\n const handleChangeFilterStatus = useCallback(\n (value?: string | number) => {\n if (value === 'all') {\n History.push(`${AuthorizedRoutePaths.TEMPLATES}/${type}`);\n } else {\n History.push(`${AuthorizedRoutePaths.TEMPLATES}/${type}/${value}`);\n }\n },\n [type],\n );\n\n const [handleTemplateCreateClick] = useTemplateCreate(type);\n\n const handleChangeDateFilter = useCallback(\n ({ from, to }) => {\n if (from && to) {\n setSelectedDates({\n from: formatDateStringToStartDay(from),\n to: formatDateStringToEndDay(to),\n });\n } else {\n setSelectedDates(undefined);\n }\n\n setPageNumber(0);\n },\n [setPageNumber],\n );\n\n const handleCancelDateFilter = useCallback(() => {\n setSelectedDates(undefined);\n }, []);\n\n const handleChangePage = (page: SelectedPage) => {\n setPageNumber(page.selected);\n };\n\n const handleApiSubscriptionGet = useCallback(async () => {\n try {\n await getApiSubscription(undefined);\n } catch (error) {\n Toast.handleErrors(error);\n }\n }, [getApiSubscription]);\n\n useEffect(() => {\n handleGetGrid();\n handleApiSubscriptionGet();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [handleGetGrid]);\n\n const handleDeleteGrids = useCallback(async () => {\n const entityIds = selectedItems.map(item => item.entityId);\n try {\n await deleteGrids({ entityIds });\n\n if (paginationProps.pageNumber !== 0) {\n setPageNumber(0);\n }\n\n clearSelection();\n Toast.success('Documents deleted successfully.');\n await handleGetGrid();\n } catch (error) {\n Toast.handleErrors(error);\n }\n }, [\n selectedItems,\n deleteGrids,\n paginationProps.pageNumber,\n clearSelection,\n handleGetGrid,\n setPageNumber,\n ]);\n\n const renderDeleteModalMessage = useCallback(() => {\n if (selectedItems.every(item => item.entityType === GridEntityType.DOCUMENT)) {\n return (\n
    \n
    \n {`\n Are you sure want to delete\n ${selectedItems.length > 1 ? 'these templates' : 'this template'}\n `}\n
    \n

    \n {`Deleting ${\n selectedItems.length > 1 ? 'these templates' : 'this template'\n } will completely remove ${\n selectedItems.length > 1 ? 'them' : 'it'\n } from your account. This action cannot be undone.`}\n

    \n
    \n );\n }\n\n if (selectedItems.every(item => item.entityType === GridEntityType.FOLDER)) {\n return (\n
    \n
    \n {`\n Are you sure want to delete\n ${selectedItems.length > 1 ? 'these folders' : 'this folder'}\n `}\n
    \n

    \n {`Deleting ${\n selectedItems.length > 1 ? 'these folder' : 'this folders'\n } will completely remove ${\n selectedItems.length > 1 ? 'them' : 'it'\n } and all templates inside from your account. This action cannot be undone.`}\n

    \n
    \n );\n }\n\n return (\n
    \n
    \n Are you sure want to delete these templates and folders\n
    \n

    \n Deleting these folders will completely remove them and all templates inside from\n your account. This action cannot be undone.\n

    \n
    \n );\n }, [selectedItems]);\n\n const [showDeleteModal, hideDeleteModal] = useModal(\n () => (\n {\n handleDeleteGrids();\n hideDeleteModal();\n }}\n className=\"documents__deleteWrapper\"\n >\n {renderDeleteModalMessage()}\n \n ),\n [handleDeleteGrids],\n );\n\n const openDeleteModal = useCallback(() => {\n if (selectedItems.length) {\n showDeleteModal();\n }\n }, [selectedItems, showDeleteModal]);\n\n return (\n
    \n
    \n
    \n

    \n {type === DocumentStatuses.API ? 'API Templates' : 'Templates'}\n

    \n \n
    \n

    \n {type === DocumentStatuses.ACTIVE\n ? 'Templates are reusable documents that you send often. Create a template once to allow you to send your documents faster.'\n : 'API Templates will let you create automated Signature requests on the API. Create a template to get started on the API'}\n

    \n
    \n
    \n
    \n \n
    \n\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n {paginationProps.pageCount > 1 && (\n \n )}\n
    \n );\n};\n\nexport default TemplatesScreen;\n","import React, { useCallback, useMemo, useState } from 'react';\nimport { useSelector } from 'react-redux';\nimport arrayMutators from 'final-form-arrays';\nimport { Form, FormRenderProps } from 'react-final-form';\nimport _ from 'lodash';\nimport { useModal } from 'Hooks/Common';\nimport { selectDocument } from 'Utils/selectors';\nimport {\n DocumentValidators,\n useDocumentCreate,\n useDocumentUpdate,\n useTemplateActivate,\n useTemplateMerge,\n} from 'Hooks/Document';\nimport Toast from 'Services/Toast';\nimport History from 'Services/History';\nimport { processSubmissionErrors } from 'Utils/functions';\nimport { Document, DocumentStatuses, DocumentValues } from 'Interfaces/Document';\n\nimport { DocumentForm, SuccessSendModal, ValidationModal } from 'Components/DocumentForm';\nimport { TemplateUpgradeModal } from 'Components/UpgradeModal';\nimport { RequestErrorTypes } from 'Interfaces/Common';\nimport ApiTemplateUpgradeModal from 'Components/UpgradeModal/ApiTemplateUpgradeModal';\nimport { AuthorizedRoutePaths } from 'Interfaces/RoutePaths';\n\ninterface TemplateFormProps {\n initialValues: DocumentValues;\n sourceTemplateId?: Document['id'];\n}\n\nconst TemplateForm = ({ initialValues, sourceTemplateId }: TemplateFormProps) => {\n const [validationErrors, setValidationErrors] = useState([]);\n const [createDocument] = useDocumentCreate();\n const [documentId, setDocumentId] = useState(\n initialValues.id,\n );\n const [updateDocument] = useDocumentUpdate();\n const [activateTemplate] = useTemplateActivate();\n const [mergeTemplate] = useTemplateMerge();\n const validateDocument = DocumentValidators.useDocumentValidation();\n\n const document = useSelector(state => selectDocument(state, { documentId }));\n\n const isReplica = useMemo(\n () => sourceTemplateId && sourceTemplateId !== initialValues.id,\n [initialValues.id, sourceTemplateId],\n );\n const { headerText, description, submitButtonTitle } = useMemo(\n () =>\n isReplica\n ? {\n headerText: 'Template has validation errors',\n description: 'Please check requirements below and try again',\n submitButtonTitle: 'Update Template',\n }\n : {\n headerText: 'Template saved.',\n description:\n 'If you want to activate it, please ensure the template meets the requirements below',\n submitButtonTitle: initialValues.id ? 'Update Template' : 'Create Template',\n },\n [initialValues.id, isReplica],\n );\n\n const navigateToTemplates = useCallback(\n (isApiTemplate?: boolean) => {\n let status;\n if (isReplica) {\n status = initialValues.isApiTemplate\n ? DocumentStatuses.API\n : DocumentStatuses.ACTIVE;\n } else if (isApiTemplate) {\n status = isApiTemplate ? DocumentStatuses.API : DocumentStatuses.ACTIVE;\n } else {\n status = document?.status;\n }\n\n return History.push(`${AuthorizedRoutePaths.TEMPLATES}/${status}`);\n },\n [initialValues.isApiTemplate, isReplica, document],\n );\n\n const [openValidationModal, closeValidationModal] = useModal(\n () => (\n \n ),\n [validationErrors],\n );\n const [openSuccessModal, closeSuccessModal] = useModal(\n () => (\n {\n closeSuccessModal();\n navigateToTemplates();\n }}\n onConfirm={() => {\n closeSuccessModal();\n navigateToTemplates();\n }}\n document={document as Document}\n />\n ),\n [document],\n );\n const [openUpgradeModal, closeUpgradeModal] = useModal(\n () => ,\n [],\n );\n\n const [openApiUpgradeModal, closeApiUpgradeModal] = useModal(\n () => ,\n [],\n );\n\n const onSubmit = useCallback(\n async (values: DocumentValues) => {\n try {\n let scopedDocument = document;\n if (scopedDocument) {\n scopedDocument = (await updateDocument({\n values: {\n ...values,\n documentId: scopedDocument.id,\n },\n })) as Document;\n } else {\n scopedDocument = (await createDocument(values)) as Document;\n setDocumentId(scopedDocument.id);\n }\n\n const documentValidationErrors = validateDocument(scopedDocument);\n\n if (documentValidationErrors.length) {\n openValidationModal();\n\n return setValidationErrors(documentValidationErrors);\n }\n\n if (sourceTemplateId && isReplica) {\n await mergeTemplate({ sourceTemplateId, templateId: scopedDocument.id });\n Toast.success('Template saved');\n\n return navigateToTemplates(values.isApiTemplate);\n }\n\n await activateTemplate({\n documentId: scopedDocument.id,\n status: values.isApiTemplate ? DocumentStatuses.API : undefined,\n });\n\n return openSuccessModal();\n } catch (error) {\n if (error.type === RequestErrorTypes.QUOTA_EXCEEDED) {\n return values.isApiTemplate ? openApiUpgradeModal() : openUpgradeModal();\n }\n\n Toast.handleErrors(error);\n\n return processSubmissionErrors(error);\n }\n },\n [\n document,\n validateDocument,\n sourceTemplateId,\n isReplica,\n activateTemplate,\n openSuccessModal,\n updateDocument,\n createDocument,\n openValidationModal,\n mergeTemplate,\n navigateToTemplates,\n openUpgradeModal,\n openApiUpgradeModal,\n ],\n );\n\n const formattedInitialValues = useMemo(() => {\n const documentSigners =\n (document?.signers.length || 0) >= (initialValues.signers?.length || 0)\n ? document?.signers\n : initialValues.signers;\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { fields, ...restDocument } = document || {};\n return {\n ...initialValues,\n ...restDocument,\n signers: _.orderBy(documentSigners, 'order', 'asc'),\n } as DocumentValues;\n }, [initialValues, document]);\n\n return (\n
    \n

    Create New Template

    \n ) => (\n \n )}\n />\n
    \n );\n};\n\nexport default TemplateForm;\n","import React, { useEffect } from 'react';\nimport { DocumentTypes, DocumentStatuses } from 'Interfaces/Document';\nimport TemplateForm from 'Components/TemplateForm';\nimport { useSelector } from 'react-redux';\nimport { selectUserPlan } from 'Utils/selectors';\nimport { PlanTypes } from 'Interfaces/Billing';\nimport Templates from '../TemplatesScreen/components/Templates';\nimport { RouteChildrenProps } from 'react-router-dom';\n\nfunction TemplateCreate({ location }: RouteChildrenProps) {\n const userPlan = useSelector(selectUserPlan);\n\n useEffect(() => {\n if (\n userPlan.type === PlanTypes.FREE ||\n (userPlan.type == PlanTypes.PERSONAL && Templates.length >= 1)\n ) {\n //History.push('/settings/billing/plan');\n }\n }, [userPlan.type]);\n\n const searchParams = new URLSearchParams(location.search);\n const activationStatus = searchParams.get('status') as DocumentStatuses | null;\n\n const isApiTemplate = activationStatus === DocumentStatuses.API;\n\n return (\n \n );\n}\n\nexport default TemplateCreate;\n","import React, { useCallback, useState } from 'react';\nimport { Document, DocumentStatuses } from 'Interfaces/Document';\nimport { RouteChildrenProps } from 'react-router-dom';\nimport { useSelector } from 'react-redux';\nimport History from 'Services/History';\nimport { selectDocument } from 'Utils/selectors';\n\nimport UISpinner from 'Components/UIComponents/UISpinner';\nimport { useDocumentGuard, useTemplateReplicate } from 'Hooks/Document';\nimport Toast from 'Services/Toast';\nimport TemplateForm from 'Components/TemplateForm';\nimport { AuthorizedRoutePaths } from 'Interfaces/RoutePaths';\n\ninterface TemplateRouteParams {\n templateId: Document['id'];\n}\n\nconst TemplateEdit = ({ match }: RouteChildrenProps) => {\n const sourceTemplateId = match?.params.templateId || '';\n const [replicateTemplate, isReplicateLoading] = useTemplateReplicate();\n const [templateId, setTemplateId] = useState();\n const template = useSelector(state =>\n selectDocument(state, { documentId: templateId }),\n );\n const sourceTemplate = useSelector(state =>\n selectDocument(state, { documentId: sourceTemplateId }),\n );\n\n const handleTemplateCheckFailure = useCallback(() => {\n History.replace(AuthorizedRoutePaths.TEMPLATES);\n }, []);\n\n const handleTemplateCheckSuccess = useCallback(\n async (template: Document) => {\n try {\n let updatingTemplate = template;\n\n if (template.status !== DocumentStatuses.DRAFT) {\n updatingTemplate = (await replicateTemplate({\n documentId: sourceTemplateId,\n })) as Document;\n }\n\n setTemplateId(updatingTemplate.id);\n } catch (error) {\n Toast.handleErrors(error);\n handleTemplateCheckFailure();\n }\n },\n [handleTemplateCheckFailure, replicateTemplate, sourceTemplateId],\n );\n\n const isCheckingTemplate = useDocumentGuard({\n documentId: sourceTemplateId,\n onFailure: handleTemplateCheckFailure,\n onSuccess: handleTemplateCheckSuccess,\n });\n\n if (isCheckingTemplate || isReplicateLoading) {\n return ;\n }\n\n if (!template) return null;\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { fields, ...restTemplate } = template;\n\n const isApiTemplate = sourceTemplate?.status === DocumentStatuses.API;\n\n const initialValues = {\n ...restTemplate,\n isApiTemplate,\n };\n\n return (\n \n );\n};\n\nexport default TemplateEdit;\n","import * as _ from 'lodash';\nimport React, { useCallback, useEffect, useState } from 'react';\nimport { useSelector } from 'react-redux';\nimport UIModal from 'Components/UIComponents/UIModal';\nimport { selectUser } from 'Utils/selectors';\n\ninterface LogoPreviewModalProps {\n onCloseModal: () => void;\n logoUrl: string;\n logoFile?: File | null;\n}\n\nexport const getFirstCapital = (string?: string) => {\n return _.capitalize(string)?.charAt(0);\n};\n\nexport const getInitials = (name?: string) => {\n const [firstName, lastName] = name?.split(' ') || [];\n\n return [firstName, lastName].map(namePart => getFirstCapital(namePart)).join('');\n};\n\nconst LogoPreviewModal = ({ onCloseModal, logoUrl, logoFile }: LogoPreviewModalProps) => {\n const [fileDataUrl, setFileDataUrl] = useState();\n const {\n avatarUrl: companyOwnerAvatar,\n email: companyOwnerEmail,\n name: companyOwnerName,\n } = useSelector(selectUser);\n\n const companyOwnerInitials =\n getInitials(companyOwnerName) || getFirstCapital(companyOwnerName);\n\n const loadImage = useCallback(() => {\n if (logoFile) {\n const fr = new FileReader();\n fr.onloadend = () => {\n setFileDataUrl(fr.result as string);\n };\n fr.readAsDataURL(logoFile as Blob);\n } else {\n setFileDataUrl(logoUrl);\n }\n }, [logoFile, logoUrl]);\n\n useEffect(() => {\n loadImage();\n }, [loadImage]);\n\n return (\n \n
    \n \n
    \n
    \n {companyOwnerAvatar ? (\n \n ) : (\n
    \n
    {companyOwnerInitials}
    \n
    \n )}\n
    \n {companyOwnerName} (\n \n {companyOwnerEmail}\n \n )
    has requested your signature\n
    \n \n
    \n Standard NDA\n
    \n
    \n Message:\n
    \n
    \n Lorem ipsum dolor sit amet, consectetur adipiscing elit. Montes, tincidunt\n duis sit convallis egestas cum. Consectetur lorem porttitor turpis ipsum\n nulla tortor netus. Vulputate vitae pellentesque orci tortor.\n
    \n \n View document\n \n
    \n
    \n
    \n Warning:  To prevent others from accessing your document,\n please do not forward this email.\n
    \n
    \n
    \n
    \n \n \n Powered by{' '}\n \n Signaturely\n \n \n \n
    \n
    \n
    \n \n );\n};\n\nexport default LogoPreviewModal;\n","import React, { useState, useCallback } from 'react';\nimport { FieldRenderProps } from 'react-final-form';\n\nimport UIUploader from 'Components/UIComponents/UIUploader';\nimport CircleSuccessIcon from 'Assets/images/icons/circle-success.svg';\nimport { ReactSVG } from 'react-svg';\nimport useModal from 'Hooks/Common/useModal';\nimport LogoPreviewModal from './components/LogoPreviewModal';\nimport { BASE_ASSETS_URL } from 'Utils/constants';\n\ninterface LogoFieldProps extends FieldRenderProps {\n onUpload: (file: File) => void;\n onUploadFailure: (error: any) => void;\n onUploadCancel: () => void;\n isFinished: boolean;\n isCropCancelled?: boolean;\n companyLogoName?: string | null;\n companyLogoKey?: string | null;\n disabled?: boolean;\n logoFile?: File | null;\n}\n\nconst acceptableFormats = ['.jpg', '.png', '.bmp', '.jpeg'].join(',');\nfunction LogoField({\n onUpload,\n onUploadFailure,\n onUploadCancel,\n companyLogoName,\n companyLogoKey,\n isFinished,\n isCropCancelled,\n disabled = false,\n logoFile,\n}: LogoFieldProps) {\n const [uploadError, setUploadError] = useState(null);\n\n const handleFileUpload = useCallback(\n async (file: File) => {\n try {\n setUploadError(null);\n await onUpload(file);\n } catch (error) {\n setUploadError('Failed to upload');\n onUploadFailure(error);\n }\n },\n [onUpload, onUploadFailure],\n );\n\n const [showPreviewModal, hidePreviewModal] = useModal(() => {\n const logoUrl = `${BASE_ASSETS_URL}${companyLogoKey}`;\n return (\n \n );\n }, [companyLogoKey, logoFile]);\n\n const handlePreviewClick = useCallback(\n e => {\n e.preventDefault();\n showPreviewModal();\n },\n [showPreviewModal],\n );\n\n const handleCancel = (e?) => {\n if (e) e.preventDefault();\n if (!isCropCancelled) onUploadCancel();\n };\n\n return isFinished ? (\n <>\n
    Company logo
    \n
    \n {\n svg.setAttribute('width', '24px');\n svg.setAttribute('height', '24px');\n }}\n />\n

    \n Your logo has been uploaded successfully\n

    \n
    \n \n Preview logo\n \n \n Replace logo\n \n
    \n
    \n \n ) : (\n \n );\n}\n\nexport default LogoField;\n","import UIModal from 'Components/UIComponents/UIModal';\nimport React, { useCallback, useEffect, useState } from 'react';\nimport { Cropper } from 'react-cropper';\nimport 'cropperjs/dist/cropper.css';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport { base64ToFile } from 'Utils/functions';\n\ninterface CropModalProps {\n file: File | null;\n onSubmit: (file: File) => void;\n onClose: () => void;\n onCancel?: () => void;\n aspectRatio: number;\n}\n\nconst CropModal = ({\n file,\n onSubmit,\n onClose,\n aspectRatio,\n onCancel,\n}: CropModalProps) => {\n const [imageUrl, setImageUrl] = useState('');\n const [cropper, setCropper] = useState();\n\n useEffect(() => {\n if (file) {\n const url = URL.createObjectURL(file);\n setImageUrl(url);\n }\n }, [file]);\n\n const handleSaveCroppedImage = useCallback(() => {\n if (cropper !== undefined && file) {\n const resultFile = base64ToFile(cropper.getCroppedCanvas().toDataURL(), file.name);\n onSubmit(resultFile);\n onClose();\n }\n }, [cropper, file, onClose, onSubmit]);\n\n return (\n \n
    \n
    \n To crop an image, select the desired area and click the "Save" button\n
    \n
    \n {\n setCropper(instance);\n }}\n aspectRatio={aspectRatio}\n />\n
    \n
    \n \n \n
    \n
    \n
    \n );\n};\n\nexport default CropModal;\n","import React from 'react';\nimport classNames from 'classnames';\nimport { composeValidators } from 'Utils/functions';\nimport { notOnlySpaces, urlProtocol } from 'Utils/validation';\nimport { FieldTextInput, FieldTextArea } from 'Components/FormFields';\nimport { Field } from 'react-final-form';\nimport UICheckbox from 'Components/UIComponents/UICheckbox';\nimport Billet from './Billet';\nimport { LogoField } from './LogoField';\n\ninterface BrandingFieldsMobileViewProps {\n disabled: boolean;\n handleBusinessPlanCheck;\n handleFileUpload;\n handleUploadCancel;\n handleFileUploadFailure;\n companyLogoName;\n isLogoProcessed;\n companyLogoFormValue;\n isCropCancelled;\n isPageFieldEnabled;\n handleCheckboxClick;\n logoFile;\n}\n\nconst BrandingFieldsMobileView = ({\n disabled,\n handleBusinessPlanCheck,\n handleFileUpload,\n handleUploadCancel,\n handleFileUploadFailure,\n companyLogoName,\n isLogoProcessed,\n companyLogoFormValue,\n isCropCancelled,\n isPageFieldEnabled,\n handleCheckboxClick,\n logoFile,\n}: BrandingFieldsMobileViewProps) => {\n return (\n
    \n
    \n
    \n

    Branding

    \n {disabled && }\n
    \n
    \n
    \n \n \n
    \n

    \n We recommend using a transparent PNG image, with a resolution of 280 x 50px.\n

    \n
    \n
    \n
    \n value || null}\n onFocus={handleBusinessPlanCheck}\n validate={composeValidators(notOnlySpaces)}\n />\n
    \n
    \n value || null}\n component={FieldTextInput}\n onFocus={handleBusinessPlanCheck}\n validate={notOnlySpaces}\n format={value => value && value.trim()}\n formatOnBlur\n />\n
    \n
    \n value || null}\n onFocus={handleBusinessPlanCheck}\n component={FieldTextArea}\n />\n
    \n
    \n
    \n \n Redirection Page\n \n
    \n \n Redirect users to this custom thank you page.\n

    \n value || null}\n component={FieldTextInput}\n onFocus={handleBusinessPlanCheck}\n disabled={!isPageFieldEnabled}\n validate={urlProtocol}\n />\n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n );\n};\n\nexport default BrandingFieldsMobileView;\n","import React, { useCallback, useState } from 'react';\nimport uuid from 'uuid/v4';\nimport { FormApi } from 'final-form';\nimport parsePath from 'path-parse';\nimport { Company, User } from 'Interfaces/User';\nimport Toast from 'Services/Toast';\nimport classNames from 'classnames';\nimport UpgradeDropdown from './UpgradeDropdown';\nimport { composeValidators, resizeFile } from 'Utils/functions';\nimport { notOnlySpaces, urlProtocol } from 'Utils/validation';\nimport { FieldTextInput, FieldTextArea } from 'Components/FormFields';\nimport { Field } from 'react-final-form';\nimport UICheckbox from 'Components/UIComponents/UICheckbox';\nimport Billet from './Billet';\nimport { LogoField } from './LogoField';\nimport { useSelector } from 'react-redux';\nimport { selectUser, selectUserPlan } from 'Utils/selectors';\n\nimport { PlanTypes } from 'Interfaces/Billing';\nimport CropModal from 'Components/CropModal';\nimport { useModal } from 'Hooks/Common';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport BrandingFieldsMobileView from './BrandingFieldsMobileView';\n\ninterface BrandingFieldsProps {\n isDropdownOpen: boolean;\n form: FormApi;\n setIsDropdownOpen: (value: boolean) => void;\n handleUpgradeClick: () => void;\n disabled?: boolean;\n logoFile?: File | null;\n setLogoFile: (file: File | null) => void;\n openUpgradeModal: () => void;\n initialRedirectionPage?: string | null;\n}\n\nconst LOGO_ASPECT_RATIO = 5.6;\n\nconst BrandingFields = ({\n isDropdownOpen,\n form,\n setIsDropdownOpen,\n logoFile,\n setLogoFile,\n handleUpgradeClick,\n openUpgradeModal,\n initialRedirectionPage,\n disabled = false,\n}: BrandingFieldsProps) => {\n const isMobile = useIsMobile();\n const [isPageFieldEnabled, setIsPageFieldEnabled] = useState(\n !!initialRedirectionPage,\n );\n const userPlan = useSelector(selectUserPlan);\n const user = useSelector(selectUser);\n const [isLogoProcessed, setIsLogoProcessed] = useState(false);\n const { id: userId, companyLogoKey }: User = useSelector(selectUser);\n\n const [logo, setLogo] = useState(null);\n const [isCropCancelled, setIsCropCancelled] = useState(false);\n\n const companyLogoFormValue = form.getFieldState('companyLogoKey')?.value;\n const companyLogoName = companyLogoKey && parsePath(companyLogoKey).name;\n\n const handleBusinessPlanCheck = useCallback(() => {\n if (userPlan.type !== PlanTypes.BUSINESS && !user.teamId) {\n openUpgradeModal();\n return false;\n }\n\n return true;\n }, [openUpgradeModal, userPlan.type]);\n\n const handleCloseDropdown = useCallback(() => {\n setIsDropdownOpen(false);\n }, [setIsDropdownOpen]);\n\n const handleCheckboxClick = useCallback(() => {\n const isBusiness = handleBusinessPlanCheck();\n\n if (!isBusiness) return;\n\n if (isPageFieldEnabled) {\n form.change('redirectionPage', null);\n }\n\n setIsPageFieldEnabled(!isPageFieldEnabled);\n }, [form, handleBusinessPlanCheck, isPageFieldEnabled]);\n\n const handleUploadCancel = useCallback(async () => {\n try {\n form.change('companyLogoKey', null);\n setLogoFile(null);\n } catch (error) {\n Toast.handleErrors(error);\n }\n setIsLogoProcessed(false);\n }, [form, setLogoFile]);\n\n const handleUploadLogo = useCallback(\n async (file: File) => {\n try {\n if (disabled) {\n return setIsDropdownOpen(true);\n }\n\n const fileExt = file.name && parsePath(file.name).ext;\n\n const logoId = uuid();\n const key = `users/${userId}/profile/${logoId}${fileExt}`;\n form.change('companyLogoKey', key);\n\n const resizedFile = await resizeFile(file, 280, 50, 'File format is not correct');\n\n setLogoFile(resizedFile);\n } catch (error) {\n Toast.handleErrors(error);\n }\n setIsLogoProcessed(false);\n },\n [disabled, form, setIsDropdownOpen, setLogoFile, userId],\n );\n\n const handleFileUploadFailure = useCallback(\n error => {\n setLogoFile(null);\n Toast.handleErrors(error);\n },\n [setLogoFile],\n );\n\n const [openCropModal, closeCropModal] = useModal(\n () => (\n {\n closeCropModal();\n setIsCropCancelled(true);\n }}\n aspectRatio={LOGO_ASPECT_RATIO}\n />\n ),\n [logo],\n );\n\n const handleFileUpload = useCallback(\n (file: File) => {\n setIsCropCancelled(false);\n setLogo(file);\n openCropModal();\n },\n [openCropModal],\n );\n\n return isMobile ? (\n \n ) : (\n
    \n
    \n
    \n

    Branding

    \n {disabled && }\n
    \n {isDropdownOpen && (\n \n )}\n
    \n \n \n \n
    \n

    \n We recommend using a transparent PNG image, with a resolution of 280 x 50px.\n

    \n
    \n
    \n
    \n value || null}\n onFocus={handleBusinessPlanCheck}\n validate={composeValidators(notOnlySpaces)}\n />\n
    \n
    \n value || null}\n component={FieldTextInput}\n onFocus={handleBusinessPlanCheck}\n validate={notOnlySpaces}\n format={value => value && value.trim()}\n formatOnBlur\n />\n
    \n
    \n
    \n
    \n value || null}\n onFocus={handleBusinessPlanCheck}\n component={FieldTextArea}\n />\n
    \n
    \n
    \n \n Redirection Page\n \n
    \n \n Redirect users to this custom thank you page.\n

    \n value || null}\n component={FieldTextInput}\n onFocus={handleBusinessPlanCheck}\n disabled={!isPageFieldEnabled}\n validate={urlProtocol}\n />\n
    \n \n
    \n
    \n
    \n
    \n \n \n );\n};\n\nexport default BrandingFields;\n","import React, { useState, useCallback, useMemo } from 'react';\nimport { Form, FormRenderProps } from 'react-final-form';\nimport { useDispatch, useSelector } from 'react-redux';\nimport History from 'Services/History';\nimport { redirectToBilling } from 'Store/ducks/company/actionCreators';\nimport { PlanTypes, PlanDetails } from 'Interfaces/Billing';\nimport { selectCompanyData, selectUser, selectUserPlan } from 'Utils/selectors';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport { PreferencesFields, ReportFields } from './components';\nimport BrandingFields from './components/BrandingFields';\nimport Toast from 'Services/Toast';\nimport { Company } from 'Interfaces/User';\nimport useCompanyInfoUpdate from 'Hooks/User/useCompanyInfoUpdate';\nimport { useModal } from 'Hooks/Common';\nimport UpgradeModal from 'Components/UpgradeModal';\nimport { useCompanyLogoPut, useSignedPutAssetUrl } from 'Hooks/User';\nimport { SignedUrlResponse, UploadStatuses } from 'Interfaces/Common';\nimport { resizeFile } from 'Utils/functions';\nimport { AuthorizedRoutePaths } from 'Interfaces/RoutePaths';\n\nconst CompanyPage = () => {\n const [isDropdownOpen, setIsDropdownOpen] = useState(false);\n const user = useSelector(selectUser);\n const initialCompanyData = useSelector(selectCompanyData);\n const [updateCompanyInfo, isUpdateLoading] = useCompanyInfoUpdate();\n const [logoFile, setLogoFile] = useState();\n const userPlan: PlanDetails = useSelector(selectUserPlan);\n const dispatch = useDispatch();\n\n const [getSignedPutAssetUrl] = useSignedPutAssetUrl();\n const [putCompanyLogo] = useCompanyLogoPut();\n\n const isBusinessPlan = useMemo(\n () => userPlan.type === PlanTypes.BUSINESS || user.teamId,\n [userPlan.type, user.teamId],\n );\n\n const [showUpgradeModal, hideUpgradeModal] = useModal(() => {\n return (\n \n Please upgrade to the Business plan to enable business branding and company\n settings.\n \n );\n });\n\n const handleFileUpload = useCallback(\n async (file: File, key: string) => {\n const { result: putUrl } = (await getSignedPutAssetUrl({\n key,\n })) as SignedUrlResponse;\n const resizedFile = await resizeFile(file, 280, 50, 'File format is not correct');\n const uploadStatus = await putCompanyLogo({ file: resizedFile, url: putUrl });\n\n if (uploadStatus === UploadStatuses.UPLOADED) {\n return true;\n } else {\n throw new Error('Uploading has been unsuccessful');\n }\n },\n [getSignedPutAssetUrl, putCompanyLogo],\n );\n\n const handleSubmitForm = useCallback(\n async (values: Company) => {\n try {\n if (userPlan.type === PlanTypes.FREE && !user.teamId) {\n return setIsDropdownOpen(true);\n }\n if (logoFile && values.companyLogoKey) {\n await handleFileUpload(logoFile, values.companyLogoKey);\n }\n\n await updateCompanyInfo(values);\n\n Toast.success('Company information successfully saved');\n } catch (error) {\n Toast.handleErrors(error);\n }\n },\n [handleFileUpload, logoFile, updateCompanyInfo, userPlan.type, user.teamId],\n );\n\n const handleUpgradeClick = useCallback(() => {\n dispatch(redirectToBilling(true));\n History.push(AuthorizedRoutePaths.SETTINGS_BILLING_PLAN);\n }, [dispatch]);\n\n return (\n
    \n ) => (\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n )}\n />\n
    \n );\n};\n\nexport default CompanyPage;\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { Company } from 'Interfaces/User';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction(async (payload: Company) =>\n $actions.user.updateCompanyInfo(dispatch, payload),\n );\n};\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store';\nimport { FilePutPayload } from 'Services/AWS';\nimport { useFileUpload } from 'Hooks/Common';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useFileUpload>(\n payload => $actions.user.putCompanyLogo(dispatch, payload),\n );\n};\n","import React from 'react';\nimport { Field, Form } from 'react-final-form';\nimport ReCAPTCHA from 'react-google-recaptcha';\nimport { MaskedTextInput } from 'Components/FormFields';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport { phoneNumberLength, required } from 'Utils/validation';\nimport { phoneNumberMaskedProps, phoneCodeMaskedProps } from 'Utils/formatters';\nimport { composeValidators } from 'Utils/functions';\nimport { REACT_APP_GOOGLE_RECAPTCHA_SITEKEY } from 'Utils/constants';\n\nexport interface PhoneVerificationFieldMobileViewProps {\n handleVerify;\n}\n\nconst PhoneVerificationFieldMobileView = ({\n handleVerify,\n}: PhoneVerificationFieldMobileViewProps) => {\n return (\n (\n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n (\n \n )}\n />\n
    \n
    \n \n
    \n

    \n There may be carrier's fees for this SMS service.\n

    \n
    \n )}\n />\n );\n};\n\nexport default PhoneVerificationFieldMobileView;\n","import React, { useCallback } from 'react';\nimport { Field, Form } from 'react-final-form';\nimport { MaskedTextInput } from 'Components/FormFields';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport { phoneNumberLength, required } from 'Utils/validation';\nimport { phoneNumberMaskedProps, phoneCodeMaskedProps } from 'Utils/formatters';\nimport { composeValidators } from 'Utils/functions';\nimport ReCAPTCHA from 'react-google-recaptcha';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport PhoneVerificationFieldMobileView from './PhoneVerificationFieldMobileView';\nimport { REACT_APP_GOOGLE_RECAPTCHA_SITEKEY } from 'Utils/constants';\n\nexport interface PhoneVerificationFieldProps {\n onNumberSend: (param: { phone: string; recaptcha: string }) => void;\n isLoading?: boolean;\n}\n\nconst PhoneVerificationField = ({ onNumberSend }: PhoneVerificationFieldProps) => {\n const isMobile = useIsMobile();\n const handleVerify = useCallback(\n async values => {\n await onNumberSend({\n phone: `${values.code}${values.number}`,\n recaptcha: values.recaptcha,\n });\n },\n [onNumberSend],\n );\n\n return isMobile ? (\n \n ) : (\n (\n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n (\n \n )}\n />\n
    \n
    \n \n
    \n

    \n There may be carrier's fees for this SMS service.\n

    \n
    \n )}\n />\n );\n};\n\nexport default PhoneVerificationField;\n","import React from 'react';\nimport { Field } from 'react-final-form';\nimport { FieldCheckbox } from 'Components/FormFields';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport classNames from 'classnames';\n\nconst NotificationsFields = () => {\n const isMobile = useIsMobile();\n return (\n
    \n

    Notifications

    \n
    \n

    \n Signaturely Notifications\n

    \n \n
    \n \n

    \n Send me an email notification...\n

    \n \n \n \n {/* */}\n \n \n \n
    \n \n

    \n Send a PDF copy of the Document when the Document is Completed ...\n

    \n \n \n \n \n );\n};\n\nexport default NotificationsFields;\n","import classNames from 'classnames';\nimport AccountAvatar from 'Components/AccountAvatar';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport React, { useRef } from 'react';\nimport Toast from 'Services/Toast';\nimport { lessThan40MB } from 'Utils/validation';\n\ninterface AvatarFieldProps {\n disabled: boolean;\n isHasAvatarUrl: boolean;\n onUpload: (file: File) => void;\n onDelete: () => void;\n}\n\nconst acceptableFormats = ['.jpg', '.png', '.bmp', '.jpeg'].join(',');\n\nexport const AvatarField = ({\n onUpload,\n onDelete,\n disabled,\n isHasAvatarUrl,\n}: AvatarFieldProps) => {\n const fileUploader = useRef(null);\n const isMobile = useIsMobile();\n\n const handleOpenUploadWindow = () => {\n fileUploader.current && fileUploader.current.click();\n };\n\n const handleFileUpload = event => {\n const fileMeta = event.target.files[0];\n\n if (!fileMeta) return;\n\n const sizeError = lessThan40MB(fileMeta.size);\n\n if (sizeError) {\n return Toast.error(sizeError);\n }\n try {\n onUpload(fileMeta);\n } catch (err) {\n return Toast.error(err);\n } finally {\n if (fileUploader.current) {\n fileUploader.current.value = '';\n }\n }\n };\n\n return (\n
    \n \n
    \n
    Update your profile picture
    \n
    \n \n \n
    \n
    \n \n
    \n );\n};\n","import React, { useState } from 'react';\nimport { Field } from 'react-final-form';\nimport { FieldTextInput } from 'Components/FormFields';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport { email as emailValidator, required } from 'Utils/validation';\nimport { toLowerCaseAndRemoveEmptyCharacters } from 'Utils/formatters';\nimport { composeValidators } from 'Utils/functions';\nimport { useModal } from 'Hooks/Common';\nimport UIModal from 'Components/UIComponents/UIModal';\nimport { AnyObject } from 'final-form';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport classNames from 'classnames';\nimport ReCAPTCHA from 'react-google-recaptcha';\nimport { REACT_APP_GOOGLE_RECAPTCHA_SITEKEY } from 'Utils/constants';\nimport ConfirmModal from 'Components/ConfirmModal';\nimport { ReactSVG } from 'react-svg';\nimport LockIcon from 'Assets/images/icons/lock.svg';\n\ninterface ChangeEmailFieldsProps {\n handleSubmit: () => Promise | undefined;\n isDisabled: boolean;\n isFieldDisabled: boolean;\n emailValue?: string;\n isAppSumo: boolean;\n form;\n}\n\nconst ChangeEmailFields = ({\n handleSubmit,\n isDisabled,\n isFieldDisabled,\n emailValue,\n isAppSumo,\n form,\n}: ChangeEmailFieldsProps) => {\n const isMobile = useIsMobile();\n const [captchaKey, setCaptchaKey] = useState();\n\n const [showModal, closeModal] = useModal(() => {\n return (\n {\n form.change('recaptcha', undefined);\n setCaptchaKey(undefined);\n closeModal();\n }}\n >\n \n
    You’re about to update your email
    \n
    \n We’ll send you a confirmation email to your new email address at \n {emailValue}\n
    \n
    \n {\n setCaptchaKey(e);\n form.change('recaptcha', e);\n }}\n />\n
    \n
    \n {\n await handleSubmit();\n form.change('recaptcha', undefined);\n setCaptchaKey(undefined);\n }}\n />\n
    \n {\n form.change('recaptcha', undefined);\n setCaptchaKey(undefined);\n return closeModal();\n }}\n >\n No, cancel\n \n \n
    \n );\n }, [handleSubmit, captchaKey]);\n\n const [showSupportModal, closeSupportModal] = useModal(() => {\n return (\n \n \n
    Name and Email Address Update
    \n
    \n To update your name or email address, please contact our support team at \n support@signaturely.com. This process helps us prevent unauthorized\n account changes.\n
    \n \n \n );\n }, [handleSubmit, captchaKey]);\n\n return (\n
    \n \n (required, emailValidator)}\n />\n {isAppSumo && (\n \n )}\n
    \n
    \n {\n isAppSumo ? showSupportModal() : showModal();\n }}\n disabled={isDisabled}\n ariaDisabled={isAppSumo}\n />\n
    \n \n );\n};\n\nexport default ChangeEmailFields;\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { UpdateEmailPayload } from 'Interfaces/Profile';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction(async (payload: UpdateEmailPayload) =>\n $actions.user.updateEmail(dispatch, payload),\n );\n};\n","import React from 'react';\nimport { Form } from 'react-final-form';\nimport { UpdateEmailPayload } from 'Interfaces/Profile';\nimport { useSelector } from 'react-redux';\nimport { selectUser } from 'Utils/selectors';\nimport ChangeEmailFields from './ChangeEmailFields';\nimport useEmailUpdate from 'Hooks/User/useEmailUpdate';\nimport Toast from 'Services/Toast';\n\nexport interface ChangeEmailFormFieldProps {\n isUser: boolean;\n isAppSumo: boolean;\n}\n\nconst ChangeEmailForm = ({ isUser, isAppSumo }: ChangeEmailFormFieldProps) => {\n const { email } = useSelector(selectUser);\n const [updateEmail, isEmailUpdating] = useEmailUpdate();\n\n const handleUpdateEmail = async (values: UpdateEmailPayload) => {\n try {\n await updateEmail(values);\n\n Toast.success('Check your new email to confirm it');\n } catch (err) {\n Toast.handleErrors(err);\n }\n };\n\n return (\n (\n \n )}\n />\n );\n};\n\nexport default ChangeEmailForm;\n","import React from 'react';\nimport { Field } from 'react-final-form';\nimport { composeValidators } from 'Utils/functions';\nimport { required, password, confirmPassword, name } from 'Utils/validation';\nimport { FieldTextInput } from 'Components/FormFields';\nimport { AvatarField } from './AvatarField';\nimport ChangeEmailForm from './ChangeEmailForm';\nimport classNames from 'classnames';\nimport { ReactSVG } from 'react-svg';\nimport LockIcon from 'Assets/images/icons/lock.svg';\n\ninterface PersonalFieldsMobileViewProps {\n isUser: boolean;\n isReadOnlyField: boolean;\n setReadOnlyField;\n handleFileUpload;\n handleAvatarDelete;\n isAvatarUploading: boolean;\n avatarUrl;\n isAppSumo: boolean;\n}\n\nconst PersonalFieldsMobileView = ({\n isUser,\n isReadOnlyField,\n setReadOnlyField,\n handleFileUpload,\n handleAvatarDelete,\n isAvatarUploading,\n avatarUrl,\n isAppSumo = false,\n}: PersonalFieldsMobileViewProps) => {\n return (\n
    \n

    Personal Information

    \n
    \n \n (required, name)}\n format={value => value && value.trim()}\n disabled={isAppSumo}\n formatOnBlur\n />\n {isAppSumo && (\n \n )}\n
    \n \n
    \n (password)}\n readOnly={isReadOnlyField}\n onFocus={() => setReadOnlyField(false)}\n />\n
    \n
    \n (confirmPassword)}\n />\n
    \n
    \n
    \n
    \n \n
    \n

    \n We recommend uploading an avatar image with a resolution of 128x128 px.\n

    \n
    \n
    \n
    \n \n );\n};\n\nexport default PersonalFieldsMobileView;\n","import React, { useCallback, useState } from 'react';\nimport uuid from 'uuid/v4';\nimport parsePath from 'path-parse';\nimport { Field } from 'react-final-form';\nimport { SignedUrlResponse, UploadStatuses } from 'Interfaces/Common';\nimport { composeValidators, resizeFile } from 'Utils/functions';\nimport { required, password, confirmPassword, name } from 'Utils/validation';\nimport { FieldTextInput } from 'Components/FormFields';\nimport { AvatarField } from './AvatarField';\nimport { useAvatarPut, useSignedPutAssetUrl } from 'Hooks/User';\nimport Toast from 'Services/Toast';\nimport { ProfileInfoPayload, UpdateEmailPayload } from 'Interfaces/Profile';\nimport { useModal } from 'Hooks/Common';\nimport CropModal from 'Components/CropModal';\nimport ChangeEmailForm from './ChangeEmailForm';\nimport useEmailUpdate from 'Hooks/User/useEmailUpdate';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport PersonalFieldsMobileView from './PersonalFieldsMobileView';\nimport { useSelector } from 'react-redux';\nimport { selectUser } from 'Utils/selectors';\nimport classNames from 'classnames';\nimport { ReactSVG } from 'react-svg';\nimport LockIcon from 'Assets/images/icons/lock.svg';\n\ninterface PersonalFieldsProps {\n isUser: boolean;\n userId: string;\n avatarUrl: string | null;\n updateProfileInfo: (entry: ProfileInfoPayload) => void;\n}\n\nconst PersonalFields = ({\n isUser,\n avatarUrl,\n userId,\n updateProfileInfo,\n}: PersonalFieldsProps) => {\n const isMobile = useIsMobile();\n const { appSumoStatus } = useSelector(selectUser);\n const [getSignedPutAssetUrl] = useSignedPutAssetUrl();\n const [putAvatar, cancelUpload, isAvatarUploading] = useAvatarPut();\n const [updateEmail, isEmailUpdating] = useEmailUpdate();\n const [avatar, setAvatar] = useState(null);\n const isAppSumo = !!appSumoStatus;\n\n const [isReadOnlyField, setReadOnlyField] = useState(true);\n\n const handleAvatarUploadCancel = useCallback(async () => {\n try {\n if (avatarUrl) {\n await updateProfileInfo({ avatarUrl: null });\n }\n } catch (error) {\n Toast.handleErrors(error);\n } finally {\n cancelUpload();\n }\n }, [avatarUrl, cancelUpload, updateProfileInfo]);\n\n const handleAvatarUpload = useCallback(\n async (file: File) => {\n handleAvatarUploadCancel();\n\n const fileExt = parsePath(file.name).ext;\n const avatarId = uuid();\n const key = `users/${userId}/profile/${avatarId}${fileExt}`;\n\n const { result: putUrl } = (await getSignedPutAssetUrl({\n key,\n })) as SignedUrlResponse;\n\n const resizedFile = await resizeFile(file, 128, 128, 'File format is not correct');\n\n const uploadStatus = await putAvatar({ file: resizedFile, url: putUrl });\n\n if (uploadStatus === UploadStatuses.UPLOADED) {\n await updateProfileInfo({ avatarUrl: key });\n Toast.success('New picture has been uploaded');\n }\n },\n [\n getSignedPutAssetUrl,\n handleAvatarUploadCancel,\n putAvatar,\n updateProfileInfo,\n userId,\n ],\n );\n\n const handleUpdateEmail = async (values: UpdateEmailPayload) => {\n try {\n await updateEmail(values);\n } catch (err) {\n Toast.handleErrors(err);\n }\n };\n\n const handleAvatarDelete = useCallback(async () => {\n try {\n await updateProfileInfo({ avatarUrl: null });\n } catch (err) {\n Toast.success('Picture has been removed');\n }\n }, [updateProfileInfo]);\n\n const [openCropModal, closeCropModal] = useModal(\n () => (\n \n ),\n [avatar],\n );\n\n const handleFileUpload = useCallback(\n (file: File) => {\n setAvatar(file);\n openCropModal();\n },\n [openCropModal],\n );\n\n return isMobile ? (\n \n ) : (\n
    \n

    Personal Information

    \n
    \n \n (required, name)}\n format={value => value && value.trim()}\n disabled={isAppSumo}\n formatOnBlur\n />\n {isAppSumo && }\n
    \n
    \n \n
    \n
    \n (password)}\n readOnly={isReadOnlyField}\n onFocus={() => setReadOnlyField(false)}\n />\n
    \n
    \n (confirmPassword)}\n />\n
    \n
    \n
    \n
    \n \n
    \n

    \n We recommend uploading an avatar image with a resolution of 128x128 px.\n

    \n
    \n
    \n
    \n \n );\n};\n\nexport default PersonalFields;\n","import { useFileUpload } from 'Hooks/Common';\nimport { useDispatch } from 'react-redux';\nimport { FilePutPayload } from 'Services/AWS';\nimport { $actions } from 'Store';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useFileUpload>(\n payload => $actions.user.putAvatar(dispatch, payload),\n );\n};\n","export const timezones = [\n {\n value: -12,\n label: '(UTC -12:00) Eniwetok, Kwajalein',\n },\n {\n value: -11,\n label: '(UTC -11:00) Midway Island, Samoa',\n },\n {\n value: -10,\n label: '(UTC -10:00) Hawaii',\n },\n {\n value: -9,\n label: '(UTC -9:00) Alaska',\n },\n {\n value: -8,\n label: '(UTC -8:00) Pacific Time (US & Canada)',\n },\n {\n value: -7,\n label: '(UTC -7:00) Mountain Time (US & Canada)',\n },\n {\n value: -6,\n label: '(UTC -6:00) Central Time (US & Canada), Mexico City',\n },\n {\n value: -5,\n label: '(UTC -5:00) Eastern Time (US & Canada), Bogota, Lima',\n },\n {\n value: -4,\n label: '(UTC -4:00) Atlantic Time (Canada), Caracas, La Paz',\n },\n {\n value: -3.5,\n label: '(UTC -3:30) Newfoundland',\n },\n {\n value: -3,\n label: '(UTC -3:00) Brazil, Buenos Aires, Georgetown',\n },\n {\n value: -2,\n label: '(UTC -2:00) Mid-Atlantic',\n },\n {\n value: -1,\n label: '(UTC -1:00) Azores, Cape Verde Islands',\n },\n {\n value: 0,\n label: '(UTC) Western Europe Time, London, Lisbon, Casablanca',\n },\n {\n value: 1,\n label: '(UTC +1:00) Brussels, Copenhagen, Madrid, Paris',\n },\n {\n value: 2,\n label: '(UTC +2:00) Kaliningrad, South Africa',\n },\n {\n value: 3,\n label: '(UTC +3:00) Baghdad, Riyadh, Moscow, St. Petersburg',\n },\n {\n value: 3.5,\n label: '(UTC +3:30) Tehran',\n },\n {\n value: 4,\n label: '(UTC +4:00) Abu Dhabi, Muscat, Baku, Tbilisi',\n },\n {\n value: 4.5,\n label: '(UTC +4:30) Kabul',\n },\n {\n value: 5,\n label: '(UTC +5:00) Ekaterinburg, Islamabad, Karachi, Tashkent',\n },\n {\n value: 5.5,\n label: '(UTC +5:30) Bombay, Calcutta, Madras, New Delhi',\n },\n {\n value: 5.75,\n label: '(UTC +5:45) Kathmandu',\n },\n {\n value: 6,\n label: '(UTC +6:00) Almaty, Dhaka, Colombo',\n },\n {\n value: 7,\n label: '(UTC +7:00) Bangkok, Hanoi, Jakarta',\n },\n {\n value: 8,\n label: '(UTC +8:00) Beijing, Perth, Singapore, Hong Kong',\n },\n {\n value: 9,\n label: '(UTC +9:00) Tokyo, Seoul, Osaka, Sapporo, Yakutsk',\n },\n {\n value: 9.5,\n label: '(UTC +9:30) Adelaide, Darwin',\n },\n {\n value: 10,\n label: '(UTC +10:00) Eastern Australia, Guam, Vladivostok',\n },\n {\n value: 11,\n label: '(UTC +11:00) Magadan, Solomon Islands, New Caledonia',\n },\n {\n value: 12,\n label: '(UTC +12:00) Auckland, Wellington, Fiji, Kamchatka',\n },\n];\n","import React from 'react';\nimport { Field } from 'react-final-form';\nimport { FieldSelect, FieldCheckbox } from 'Components/FormFields';\nimport { SelectableOption } from 'Interfaces/Common';\nimport { DateFormats } from 'Interfaces/User';\nimport { timezones } from 'Utils/timezones';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport classNames from 'classnames';\n\nconst dateFormatOptions: SelectableOption[] = [\n { label: 'DD / MM / YYYY', value: DateFormats.DD_MM_YYYY },\n { label: 'MM / DD / YYYY', value: DateFormats.MM_DD_YYYY },\n { label: 'YYYY / MM / DD', value: DateFormats.YYYY_MM_DD },\n { label: 'MM / DD / YY', value: DateFormats.MM_DD_YY },\n { label: 'DD / MM / YY', value: DateFormats.DD_MM_YY },\n];\n\nconst PreferencesFields = () => {\n const isMobile = useIsMobile();\n return (\n
    \n

    Preferences

    \n
    \n \n \n
    \n {/* TODO: Implement later */}\n {/*
    \n

    Import Contacts

    \n
    \n \n
    \n

    \n You have \n {contractsCount}\n  contacts.\n

    \n
    */}\n {/*
    \n

    \n Document Preferences\n

    \n \n
    \n
    \n

    \n Document Security\n

    \n \n
    */}\n
    \n );\n};\n\nexport default PreferencesFields;\n","import React, { useCallback, useEffect } from 'react';\nimport UIModal from 'Components/UIComponents/UIModal';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport classNames from 'classnames';\nimport { useSelector } from 'react-redux';\nimport { selectSubscriptionInfo, selectUser } from 'Utils/selectors';\nimport { isNotEmpty } from 'Utils/functions';\nimport { usePlanChange, useSubscriptionDataGet } from 'Hooks/Billing';\nimport { Plan, PlanDurations, PlanTypes } from 'Interfaces/Billing';\nimport { UserRoles } from 'Interfaces/User';\nimport Toast from 'Services/Toast';\nimport { AuthorizedRoutePaths } from 'Interfaces/RoutePaths';\n\nfunction getDeleteAccountModalTitle(plan: Plan, isTeammate) {\n const deletePlanTypes = {\n [PlanTypes.FREE]: 'Free',\n [PlanTypes.PERSONAL]: 'Personal',\n [PlanTypes.BUSINESS]: 'Business',\n };\n\n if (isTeammate) {\n return 'Are you sure you want to delete your Signaturely account?';\n }\n\n return `Are you sure you want to delete your Signaturely ${\n deletePlanTypes[plan.type]\n } account?`;\n}\n\ninterface GetDeleteAccountModalTextParams {\n planType: PlanTypes;\n isCanceled: boolean;\n endPeriodDate: Date;\n isTeammate: boolean;\n isAppSumo: boolean;\n}\n\nfunction getDeleteAccountModalText(params: GetDeleteAccountModalTextParams) {\n if (params.isTeammate) {\n return (\n
    \n We cannot complete your documents if you delete your account. We will transfer all\n your completed documents and Live templates to your team owner, and your team will\n lose access to all your other documents. We will change your live templates to\n drafts before transferring them to your team owner.\n
    \n );\n }\n\n if (params.planType === PlanTypes.FREE) {\n return (\n
    \n Your documents cannot be completed if you delete your account. Once you delete\n your account, your billing information will be deleted. We will not renew\n your \n API plan if you have one.\n
    \n );\n }\n\n if (params.planType === PlanTypes.PERSONAL && params.isCanceled) {\n return (\n
    \n Your Signaturely Personal account is valid until \n {params.endPeriodDate.toDateString()}. We cannot complete your documents if you\n delete your account. We suggest you downgrade to a \n Signaturely Free account. Once\n you delete your account, your billing information will be deleted. We will not\n renew your \n API plan if you have one.\n
    \n );\n }\n\n if (params.planType === PlanTypes.PERSONAL && !params.isCanceled) {\n return (\n
    \n Your Signaturely Personal account is valid until \n {params.endPeriodDate.toDateString()}. We cannot complete your documents if you\n delete your account. We suggest you downgrade to a \n Signaturely Free account. Once\n you delete your account, your billing information will be deleted. If you have\n one, we will not renew your subscription and your \n API plan.\n
    \n );\n }\n\n if (params.planType === PlanTypes.BUSINESS && params.isCanceled) {\n return (\n
    \n Your Signaturely Business account is valid until \n {params.endPeriodDate.toDateString()}. We cannot complete awaiting documents if\n you delete your account. Once you delete your account, we will delete your billing\n information. We will not renew your subscription and your \n API plan if you have one. \n The deletion of your team is irreversible, and you will only get\n access to completed documents and templates of your teammates if you sign up with\n the same email you use now. We will transfer to you from your teammates only Live\n templates, and we will change them to drafts.\n {!params.isAppSumo && (\n <>\n {' '}\n You can keep your access to the completed documents and transferred templates\n of your team and your documents if you downgrade to a \n Free or Personal account.\n \n )}\n
    \n );\n }\n\n if (params.planType === PlanTypes.BUSINESS && !params.isCanceled) {\n return (\n
    \n Your Signaturely Business account is valid until \n {params.endPeriodDate.toDateString()}. We cannot complete your documents if you\n delete your account. Once you delete your account, we will delete your billing\n information. We will not renew your{' '}\n API plan if you have one.{' '}\n The deletion of your team is irreversible, and you will only get\n access to completed documents and templates of your teammates if you sign up with\n the same email you use now. We will transfer to you from your teammates only Live\n templates, and we will change them to drafts.\n {!params.isAppSumo && (\n <>\n {' '}\n You can keep your access to the completed documents and transferred templates\n of your team and your documents if you downgrade to a \n Free or Personal account.\n \n )}\n
    \n );\n }\n}\n\ninterface DeleteAccountModalProps {\n onClose: () => void;\n onDeleteAccount: () => void;\n isLoading?: boolean;\n}\n\nconst DeleteAccountModal = ({\n onClose,\n onDeleteAccount,\n isLoading,\n}: DeleteAccountModalProps) => {\n const isMobile = useIsMobile();\n const user = useSelector(selectUser);\n const [getSubscriptionData] = useSubscriptionDataGet();\n const subscriptionInfo = useSelector(selectSubscriptionInfo);\n const [changePlan, isChangePlanLoading] = usePlanChange();\n\n const handleDowngradeToFreePlan = useCallback(async () => {\n if (user.plan.type === PlanTypes.FREE || !subscriptionInfo?.neverExpires) {\n return;\n }\n\n await changePlan({ type: PlanTypes.FREE, duration: PlanDurations.MONTHLY });\n\n Toast.success(\n `Your account will be downgraded on ${new Date(\n subscriptionInfo?.nextBillingDate,\n ).toDateString()}`,\n );\n\n onClose();\n }, [changePlan, onClose, subscriptionInfo, user.plan.type]);\n\n const handleDeleteAccount = useCallback(() => {\n onClose();\n onDeleteAccount();\n }, [onClose, onDeleteAccount]);\n\n useEffect(() => {\n !isNotEmpty(subscriptionInfo) && getSubscriptionData(undefined);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n \n
    \n
    \n {getDeleteAccountModalTitle(\n user.plan,\n user.teamId && user.role !== UserRoles.OWNER,\n )}\n
    \n
    \n {getDeleteAccountModalText({\n planType: user?.plan.type,\n isCanceled: !subscriptionInfo?.neverExpires,\n isTeammate: !!user?.teamId && user?.role !== UserRoles.OWNER,\n endPeriodDate: new Date(subscriptionInfo?.nextBillingDate),\n isAppSumo: !!user?.appSumoStatus,\n })}\n
    \n
    \n \n
    \n {subscriptionInfo?.neverExpires && (\n \n )}\n
    \n Delete my account\n
    \n
    \n
    \n );\n};\n\nexport default DeleteAccountModal;\n","import { RecaptchaPayload } from './Auth';\nimport { UserNotifications, DateFormats } from './User';\n\nexport enum DeletionSteps {\n START_DELETION,\n DOWNGRADE_TO_FREE,\n FINAL_DELETION,\n}\n\nexport enum CodeScopeType {\n VERIFY = 'verify',\n DISABLE = 'disable',\n}\n\nexport interface ProfileInfo extends UserNotifications {\n name: string;\n timezone: string;\n avatarUrl: string | null;\n billingDetails: string | null;\n password: string;\n passwordConfirmation: string;\n dateFormat: DateFormats;\n phone: {\n code: string;\n number: string;\n };\n}\n\nexport type ProfileInfoPayload = Partial;\n\nexport type UpdateEmailPayload = RecaptchaPayload & {\n email: string;\n};\n\nexport interface PhonePayload {\n phone: string;\n}\n\nexport interface PhoneCodePayload {\n code: number;\n}\n\nexport interface CodePayload {\n code: string;\n}\n\nexport type PhoneVerifyPayload = PhonePayload & PhoneCodePayload;\n\nexport interface CodeGeneratePayload extends PhonePayload, RecaptchaPayload {\n scope: CodeScopeType;\n}\n","import React, { useMemo } from 'react';\nimport { Form, Field, FormRenderProps } from 'react-final-form';\nimport arrayMutators from 'final-form-arrays';\nimport FieldTextInput from 'Components/FormFields/FieldTextInput';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport { OnSubmitReturnType } from 'Interfaces/FinalForm';\nimport UISpinner from 'Components/UIComponents/UISpinner';\nimport classnames from 'classnames';\nimport { CodePayload } from 'Interfaces/Profile';\nimport { TwoFactorTypes } from 'Interfaces/Auth';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\n\ntype TwoFactorFormValues = CodePayload & { twoFactorType?: TwoFactorFormValues };\n\ninterface TwoFactorFormProps {\n onSubmit: (values: TwoFactorFormValues) => OnSubmitReturnType;\n isLoading?: boolean;\n formClassName?: string;\n twoFactorType?: TwoFactorTypes;\n title?: string;\n imageSrc?: string;\n}\n\nfunction TwoFactorForm({\n onSubmit,\n isLoading,\n formClassName,\n twoFactorType,\n title,\n imageSrc,\n}: TwoFactorFormProps) {\n const isMobile = useIsMobile();\n const { type, description, header, placeholder } = useMemo(\n () =>\n twoFactorType === TwoFactorTypes.TWILLIO\n ? {\n placeholder: '1234',\n header: 'SMS 2-Factor Authentication',\n type: 'SMS',\n description:\n 'An SMS with a verification code was sent to the number indicated in the profile.',\n }\n : {\n placeholder: '1235678',\n header: 'Google Authenticator 2-Factor',\n type: 'Google Authenticator',\n description:\n 'Type in the code from your Google Authenticator application on your device',\n },\n [twoFactorType],\n );\n\n return (\n ) => {\n return (\n
    \n

    {header}

    \n \n
    \n {title || `To confirm this action, enter the code from ${type}`}\n
    \n {imageSrc && }\n
    {description}
    \n \n
    \n {submitting ? (\n \n ) : (\n \n )}\n
    \n \n
    \n );\n }}\n />\n );\n}\n\nexport default TwoFactorForm;\n","import React, { useCallback, useState } from 'react';\nimport ReCAPTCHA from 'react-google-recaptcha';\nimport { REACT_APP_GOOGLE_RECAPTCHA_SITEKEY } from 'Utils/constants';\nimport UIButton from '../../../../Components/UIComponents/UIButton';\nimport { CodeScopeType } from '../../../../Interfaces/Profile';\n\nexport interface PhoneVerificationUnsubscribeProps {\n phoneNumber?: string | null;\n handleCodeGenerate: (\n param: { phone: string; recaptcha: string },\n scope: CodeScopeType,\n ) => void;\n isLoading: boolean;\n}\n\nconst PhoneVerificationUnsubscribe = ({\n handleCodeGenerate,\n phoneNumber,\n isLoading,\n}: PhoneVerificationUnsubscribeProps) => {\n const [captchaKey, setCaptchaKey] = useState();\n\n const handleDisablingCodeGenerate = useCallback(async () => {\n if (captchaKey && phoneNumber) {\n await handleCodeGenerate(\n { phone: phoneNumber, recaptcha: captchaKey },\n CodeScopeType.DISABLE,\n );\n }\n }, [phoneNumber, handleCodeGenerate, captchaKey]);\n\n return (\n <>\n setCaptchaKey(e)}\n />\n
    \n \n
    \n \n Change Authentication Number\n \n \n );\n};\n\nexport default PhoneVerificationUnsubscribe;\n","import React, { useState, useCallback } from 'react';\nimport { Form } from 'react-final-form';\nimport classNames from 'classnames';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport { useModal } from 'Hooks/Common';\nimport {\n DeleteAccountModal,\n PersonalFields,\n PreferencesFields,\n NotificationsFields,\n PhoneVerificationField,\n} from './components';\nimport { ProfileInfo, CodeScopeType } from 'Interfaces/Profile';\nimport Toast from 'Services/Toast';\nimport { useSelector } from 'react-redux';\nimport { selectProfileInfo, selectUser } from 'Utils/selectors';\nimport {\n useAccountDelete,\n useProfileInfoUpdate,\n useTwillio2fa,\n useGoogleAuthenticator,\n} from 'Hooks/User';\nimport { useLogout } from 'Hooks/Auth';\nimport UIModal from 'Components/UIComponents/UIModal';\nimport TwoFactorForm from 'Pages/Auth/TwoFactor/components/TwoFactorForm';\nimport { User, UserRoles } from 'Interfaces/User';\nimport { TwoFactorTypes } from 'Interfaces/Auth';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport PhoneVerificationUnsubscribe from './components/PhoneVerificationUnsubscribe';\n\nconst Profile = () => {\n const isMobile = useIsMobile();\n const [qrCode, setQrCode] = useState();\n const [updateProfileInfo] = useProfileInfoUpdate();\n const [\n generateCode,\n verifyPhone,\n disableTwillio2fa,\n isTwillioLoading,\n ] = useTwillio2fa();\n const [\n enableGoogleAuthenticator,\n verifyGoogleCode,\n disableGoogleAuthenticator,\n isGoogleAuthenticatorLoading,\n ] = useGoogleAuthenticator();\n\n const [phoneToVerify, setPhoneToVerify] = useState();\n const [logout] = useLogout();\n const [deleteAccount, isDeleteLoading] = useAccountDelete();\n const profileInitialValues = useSelector(selectProfileInfo);\n const {\n id,\n role,\n isTwillio2fa,\n isGoogle2fa,\n phoneNumber,\n avatarUrl,\n }: User = useSelector(selectUser);\n\n const handlAccounteDelete = useCallback(async () => {\n try {\n await deleteAccount(undefined);\n Toast.success('Account Deleted.');\n logout(null);\n } catch (error) {\n Toast.handleErrors(error);\n }\n }, [deleteAccount, logout]);\n\n const [showDeleteModal, closeDeleteModal] = useModal(\n () => (\n \n ),\n [isDeleteLoading],\n );\n\n const handleSubmit = useCallback(\n async (values: ProfileInfo) => {\n try {\n const { phone, ...restValues } = values;\n await updateProfileInfo(restValues);\n Toast.success('Profile information updated.');\n } catch (error) {\n Toast.handleErrors(error);\n }\n },\n [updateProfileInfo],\n );\n\n const handlePhoneVerify = useCallback(\n async (code: number) => {\n try {\n await verifyPhone({ phone: phoneToVerify as string, code });\n Toast.success('Phone number is verified');\n } catch (error) {\n Toast.handleErrors(error);\n }\n },\n [phoneToVerify, verifyPhone],\n );\n\n const handleTwillioDisable = useCallback(\n async code => {\n try {\n await disableTwillio2fa({ code });\n Toast.success('Two factor authorization disabled');\n } catch (error) {\n Toast.handleErrors(error);\n }\n },\n [disableTwillio2fa],\n );\n\n const [showVerifyModal, closeVerifyModal] = useModal(\n () => (\n \n {\n const phoneCode = parseInt(code, 10);\n\n if (isTwillio2fa) {\n handleTwillioDisable(phoneCode);\n } else {\n handlePhoneVerify(phoneCode);\n }\n\n closeVerifyModal();\n }}\n />\n \n ),\n [handlePhoneVerify],\n );\n\n const [showGoogleAuthenticatorModal, closeGoogleAuthenticatorModal] = useModal(\n () => (\n \n {\n try {\n if (isGoogle2fa) {\n await disableGoogleAuthenticator({ code });\n\n Toast.success('Google Authenticator authorization disabled');\n } else {\n await verifyGoogleCode({ code });\n\n Toast.success('Google Authenticator successfully verified');\n }\n\n setQrCode(undefined);\n closeGoogleAuthenticatorModal();\n } catch (error) {\n Toast.handleErrors(error);\n }\n }}\n />\n \n ),\n [handlePhoneVerify, qrCode, isGoogle2fa],\n );\n\n const handleGoogleAuthenticator = useCallback(async () => {\n try {\n if (!isGoogle2fa) {\n const imageFile = await enableGoogleAuthenticator(undefined);\n const fileURL = URL.createObjectURL(imageFile);\n setQrCode(fileURL);\n }\n\n showGoogleAuthenticatorModal();\n } catch (error) {\n Toast.handleErrors(error);\n }\n }, [enableGoogleAuthenticator, isGoogle2fa, showGoogleAuthenticatorModal]);\n\n const handleCodeGenerate = useCallback(\n async ({ phone, recaptcha }, scope: CodeScopeType = CodeScopeType.VERIFY) => {\n try {\n await generateCode({ recaptcha, phone, scope });\n setPhoneToVerify(phone);\n showVerifyModal();\n } catch (error) {\n Toast.handleErrors(error);\n }\n },\n [generateCode, showVerifyModal],\n );\n\n return (\n
    \n (\n
    \n \n \n \n\n \n \n

    \n 2-Factor Authentication\n

    \n

    \n Add an extra layer of security to your account by requiring a\n verification code when signing in.\n

    \n
    \n

    \n SMS 2-Factor Authenthicator\n

    \n {isTwillio2fa ? (\n \n ) : (\n \n )}\n
    \n
    \n \n
    \n

    \n Google Authenticator\n

    \n

    \n Generate 2FA codes directly in your Google Authenthicator app.\n

    \n
    \n \n
    \n
    \n
    \n

    \n Delete Account\n

    \n
    \n \n
    \n

    \n If you would like to remove all your data from the Signaturely servers,\n
    \n please proceed with this action. This action is not reversible.\n

    \n
    \n
    \n \n
    \n \n )}\n />\n \n );\n};\n\nexport default Profile;\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store';\nimport { useAsyncAction } from 'Hooks/Common';\nimport {\n PhoneCodePayload,\n CodeGeneratePayload,\n PhoneVerifyPayload,\n} from 'Interfaces/Profile';\n\nexport default () => {\n const dispatch = useDispatch();\n\n const [disable, isDisableLoading] = useAsyncAction(async (payload: PhoneCodePayload) =>\n $actions.user.disableTwillio2fa(dispatch, payload),\n );\n\n const [enable, isEnableLoading] = useAsyncAction((payload: CodeGeneratePayload) =>\n $actions.user.generateCode(dispatch, payload),\n );\n\n const [verify, isVerifyLoading] = useAsyncAction((payload: PhoneVerifyPayload) =>\n $actions.user.verifyPhone(dispatch, payload),\n );\n\n return [\n enable,\n verify,\n disable,\n isDisableLoading || isEnableLoading || isVerifyLoading,\n ] as const;\n};\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { CodePayload } from 'Interfaces/Profile';\n\nexport default () => {\n const dispatch = useDispatch();\n\n const [disable, isDisableLoading] = useAsyncAction((payload: CodePayload) =>\n $actions.user.disableGoogleAuthenticator(dispatch, payload),\n );\n\n const [enable, isEnableLoading] = useAsyncAction(() =>\n $actions.user.enableGoogleAuthenticator(dispatch),\n );\n\n const [verify, isVerifyLoading] = useAsyncAction((payload: CodePayload) =>\n $actions.user.verifyGoogleCode(dispatch, payload),\n );\n\n return [\n enable,\n verify,\n disable,\n isDisableLoading || isEnableLoading || isVerifyLoading,\n ] as const;\n};\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction(() => $actions.user.deleteAccount(dispatch));\n};\n","import React, { useCallback } from 'react';\nimport { FieldTextInput } from 'Components/FormFields';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport { useApiKeyCreate } from 'Hooks/ApiKeys';\nimport { Field, Form } from 'react-final-form';\nimport Toast from 'Services/Toast';\nimport { isNotEmpty } from 'Utils/functions';\nimport { required } from 'Utils/validation';\n\ninterface ApiKeyCreateContentProps {\n onApiKeyGenerate: (apiKey: string) => void;\n}\n\nconst ApiKeyCreateContent = ({ onApiKeyGenerate }: ApiKeyCreateContentProps) => {\n const [createApiKey, isLoading] = useApiKeyCreate();\n\n const handleSubmit = useCallback(\n async values => {\n try {\n const result = await createApiKey(values);\n\n if (isNotEmpty(result)) {\n onApiKeyGenerate(result.key);\n }\n } catch (error) {\n Toast.handleErrors(error);\n }\n },\n [createApiKey, onApiKeyGenerate],\n );\n\n return (\n
    \n
    Create your API
    \n
    \n Type a API Key name that you will remember so you can identify it to monitor\n future usage.\n
    \n (\n
    \n
    \n \n
    \n \n \n )}\n />\n
    \n );\n};\n\nexport default ApiKeyCreateContent;\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { ApiKeyCreatePayload } from 'Interfaces/ApiKey';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: ApiKeyCreatePayload) =>\n $actions.apiKey.createApiKey(dispatch, payload),\n );\n};\n","import React, { useCallback } from 'react';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport Toast from 'Services/Toast';\n\ninterface ApiKeyShowContentProps {\n apiKey: string;\n}\n\nconst ApiKeyShowContent = ({ apiKey }: ApiKeyShowContentProps) => {\n const handleApKeyCopy = useCallback(async () => {\n try {\n await navigator.clipboard.writeText(apiKey);\n Toast.success('API key successfully copied to clipboard');\n } catch (error) {\n Toast.handleErrors(error);\n }\n }, [apiKey]);\n\n return (\n
    \n
    \n You’ve created your API\n
    \n
    \n Copy the API key below to start using it to make requests to the Signaturely API.\n
    \n
    {apiKey}
    \n \n
    \n );\n};\n\nexport default ApiKeyShowContent;\n","import { BaseModalProps } from 'Components/UIComponents/interfaces/UIModal';\nimport UIModal from 'Components/UIComponents/UIModal';\nimport React, { useCallback, useState } from 'react';\nimport ApiKeyCreateContent from './ApiKeyCreateContent';\nimport ApiKeyShowContent from './ApiKeyShowContent';\n\ninterface ApiKeyModalProps extends BaseModalProps {\n onSuccessGenerate: () => void;\n}\n\nconst ApiKeyModal = ({ onClose, onSuccessGenerate }: ApiKeyModalProps) => {\n const [apiKey, setApiKey] = useState();\n\n const handleApiKeySuccessGenerate = useCallback(\n (apiKey: string) => {\n setApiKey(apiKey);\n onSuccessGenerate();\n },\n [onSuccessGenerate],\n );\n\n return (\n \n {apiKey ? (\n \n ) : (\n \n )}\n \n );\n};\n\nexport default ApiKeyModal;\n","import classNames from 'classnames';\nimport DropDownOptions from 'Components/DropDownOptions';\nimport { ApiKey } from 'Interfaces/ApiKey';\nimport React from 'react';\nimport { formatDate } from 'Utils/formatters';\n\ninterface ApiKeyItemMobile {\n apiKey: ApiKey;\n options: any[];\n className?: string;\n}\n\nconst ApiKeyItemMobile = ({ apiKey, options, className }: ApiKeyItemMobile) => {\n return (\n
    \n
    \n
    \n
    \n {apiKey.name}\n
    \n
    \n {apiKey.prefix}\n
    \n
    \n {apiKey.createdAt && formatDate(apiKey.createdAt)}\n
    \n
    \n {apiKey.requests}\n
    \n
    \n
    \n \n
    \n
    \n
    \n );\n};\n\nexport default ApiKeyItemMobile;\n","import React, { useCallback, useMemo } from 'react';\nimport classNames from 'classnames';\nimport { formatDate } from 'Utils/formatters';\nimport DropDownOptions from 'Components/DropDownOptions';\nimport IconRemove from 'Assets/images/icons/remove-icon.svg';\nimport IconPencil from 'Assets/images/icons/pencil.svg';\nimport CrossInCircle from 'Assets/images/icons/cross-in-circle.svg';\nimport { ApiKey } from 'Interfaces/ApiKey';\nimport { useApiKeyDelete, useApiKeyRecover, useApiKeyRevoke } from 'Hooks/ApiKeys';\nimport Toast from 'Services/Toast';\nimport DeleteModal from 'Components/DeleteModal';\nimport { useModal } from 'Hooks/Common';\nimport History from 'Services/History';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport ApiKeyItemMobile from './ApiKeyItemMobile';\nimport { AuthorizedRoutePaths } from 'Interfaces/RoutePaths';\ninterface ApiKeyItemProps {\n apiKey: ApiKey;\n className?: string;\n onDeleteSuccess?: (id: ApiKey['id']) => void;\n}\n\nconst ApiKeyItem = ({ apiKey, className, onDeleteSuccess }: ApiKeyItemProps) => {\n const isMobile = useIsMobile();\n const [revokeApiKey] = useApiKeyRevoke();\n const [deleteApiKey] = useApiKeyDelete();\n const [recoverApiKey] = useApiKeyRecover();\n\n const handleApiKeyRevoke = useCallback(async () => {\n try {\n await revokeApiKey(apiKey.id);\n Toast.success('API key successfully revoked');\n } catch (error) {\n Toast.handleErrors(error);\n }\n }, [apiKey.id, revokeApiKey]);\n\n const handleApiKeyDelete = useCallback(async () => {\n try {\n await deleteApiKey(apiKey.id);\n onDeleteSuccess?.(apiKey.id);\n Toast.success('API key successfully deleted');\n } catch (error) {\n Toast.handleErrors(error);\n }\n }, [apiKey.id, deleteApiKey, onDeleteSuccess]);\n\n const handleApiKeyRecover = useCallback(async () => {\n try {\n await recoverApiKey(apiKey.id);\n Toast.success('API key successfully recovered');\n } catch (error) {\n Toast.handleErrors(error);\n }\n }, [apiKey.id, recoverApiKey]);\n\n const [showDeleteModal, hideDeleteModal] = useModal(\n () => (\n {\n handleApiKeyDelete();\n hideDeleteModal();\n }}\n className=\"documents__deleteWrapper\"\n >\n
    \n
    Are you sure want to delete API key?
    \n

    \n Deleting this API key will completely remove it. This cannot be undone.\n

    \n
    \n \n ),\n [handleApiKeyDelete],\n );\n\n const options = useMemo(() => {\n const options = [\n {\n name: 'View History',\n icon: IconPencil,\n onClick: () =>\n History.push(\n `${AuthorizedRoutePaths.SETTINGS_API}/${apiKey.id}/request_history`,\n ),\n hidden: !apiKey.requests,\n },\n {\n name: 'Revoke',\n icon: CrossInCircle,\n onClick: handleApiKeyRevoke,\n hidden: Boolean(apiKey.deletedAt),\n },\n {\n name: 'Recover',\n icon: CrossInCircle,\n onClick: handleApiKeyRecover,\n hidden: !apiKey.deletedAt,\n },\n {\n name: 'Delete',\n icon: IconRemove,\n className: 'tableControls__control--red',\n iconClassName: 'apiKeys__delete-icon',\n onClick: showDeleteModal,\n },\n ];\n\n return options.filter(option => !option.hidden);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [apiKey.deletedAt]);\n\n return isMobile ? (\n \n ) : (\n
    \n
    \n {apiKey.name}\n
    \n
    \n {apiKey.prefix}\n
    \n
    \n {apiKey.createdAt && formatDate(apiKey.createdAt)}\n
    \n
    \n {apiKey.requests}\n
    \n\n
    \n \n
    \n
    \n );\n};\n\nexport default ApiKeyItem;\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { ApiKey } from 'Interfaces/ApiKey';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: ApiKey['id']) =>\n $actions.apiKey.revokeApiKey(dispatch, payload),\n );\n};\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { ApiKey } from 'Interfaces/ApiKey';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: ApiKey['id']) =>\n $actions.apiKey.deleteApiKey(dispatch, payload),\n );\n};\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { ApiKey } from 'Interfaces/ApiKey';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: ApiKey['id']) =>\n $actions.apiKey.recoverApiKey(dispatch, payload),\n );\n};\n","import React from 'react';\nimport { ReactSVG } from 'react-svg';\nimport { TablePaginationProps } from 'Interfaces/Common';\nimport EmptyTable from 'Components/EmptyTable';\nimport IconSort from 'Assets/images/icons/sort.svg';\nimport ApiIcon from 'Assets/images/icons/api-icon.svg';\nimport ApiKeyItem from './ApiKeyItem';\nimport { ApiKey } from 'Interfaces/ApiKey';\nimport UISpinner from 'Components/UIComponents/UISpinner';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\n\ninterface ApiKeysListProps {\n apiKeys: ApiKey[];\n paginationProps?: TablePaginationProps;\n requestOrdering: (key: string) => void;\n isLoading: boolean;\n createApiKey: () => void;\n onApiKeyDelete: (id: ApiKey['id']) => void;\n setPageNumber: (pageNumber: number) => void;\n}\n\nconst defaultPaginationProps: TablePaginationProps = {\n pageCount: 0,\n pageNumber: 0,\n itemsCount: 0,\n itemsLimit: 0,\n totalItems: 0,\n};\n\nfunction ApiKeysList({\n apiKeys,\n paginationProps = defaultPaginationProps,\n isLoading,\n requestOrdering,\n onApiKeyDelete,\n createApiKey,\n setPageNumber,\n}: ApiKeysListProps) {\n const { pageNumber, itemsCount, itemsLimit, totalItems } = paginationProps;\n const isMobile = useIsMobile();\n\n if (apiKeys.length === 0 && !isLoading)\n return (\n
    \n \n
    \n );\n\n return (\n
    \n
    \n

    \n {`${pageNumber * itemsLimit + 1}-${pageNumber * itemsLimit +\n (itemsCount || itemsLimit)}`}\n  of \n {totalItems}\n  results\n

    \n
    \n
    \n
    \n {isMobile ? (\n
    API KEYS
    \n ) : (\n
    \n
    \n {\n setPageNumber(0);\n requestOrdering('name');\n }}\n >\n NAME\n \n \n
    \n
    \n {\n setPageNumber(0);\n requestOrdering('prefix');\n }}\n >\n PREFIX\n \n \n
    \n
    \n {\n setPageNumber(0);\n requestOrdering('createdAt');\n }}\n >\n DATE CREATED\n \n \n
    \n
    \n REQUESTS\n
    \n
    ACTION
    \n
    \n )}\n {isLoading ? (\n \n ) : (\n apiKeys.map(apiKey => {\n return (\n \n );\n })\n )}\n
    \n
    \n
    \n );\n}\n\nexport default ApiKeysList;\n","import {\n PaginationParams,\n OrderingParams,\n NormalizedEntity,\n PaginationData,\n} from './Common';\n\nexport enum RequestTypes {\n SIGN_REQUEST = 'sign_request',\n GET_RECENT_DOCUMENT = 'get_recent_document',\n WEBHOOK_SUBSCRIBE = 'webhook_subscribe',\n WEBHOOK_UNSUBSCRIBE = 'webhook_unsubscribe',\n GET_DOCUMENTS = 'get_documents',\n GET_DOCUMENT_SIGNERS = 'get_document_signers',\n GET_USER = 'get_user',\n}\n\nexport const requestTypeDescription = {\n [RequestTypes.SIGN_REQUEST]: 'Signature Request',\n [RequestTypes.GET_RECENT_DOCUMENT]: 'Get Recent Document',\n [RequestTypes.WEBHOOK_SUBSCRIBE]: 'Webhook Subscribe',\n [RequestTypes.WEBHOOK_UNSUBSCRIBE]: 'Webhook Unsubscribe',\n [RequestTypes.GET_DOCUMENTS]: 'Get Documents',\n [RequestTypes.GET_DOCUMENT_SIGNERS]: 'Get Document Signers',\n [RequestTypes.GET_USER]: 'Get User',\n};\n\nexport interface RequestHistoryItem {\n id: string;\n createdAt: string;\n origin: string;\n apiKeyId: string;\n type: RequestTypes;\n}\n\nexport interface RequestHistoryGetPayload extends PaginationParams, OrderingParams {\n apiKeyId: string;\n}\n\nexport interface RequestHistoryData {\n requestHistory: NormalizedEntity;\n paginationData: PaginationData;\n}\n","import React from 'react';\nimport classNames from 'classnames';\n\ninterface RadioButtonProps {\n isActive?: boolean;\n onClick?: () => void;\n}\nconst RadioButton = ({ onClick, isActive }: RadioButtonProps) => {\n return (\n \n );\n};\n\nexport default RadioButton;\n","import React from 'react';\nimport classNames from 'classnames';\nimport RadioButton from './RadioButton';\n\ninterface DurationSwitcherProps {\n isActive?: boolean;\n onClick: () => void;\n discountText?: string;\n text: string;\n}\n\nconst DurationSwitcher = ({\n isActive,\n onClick,\n discountText,\n text,\n}: DurationSwitcherProps) => {\n return (\n \n
    \n \n
    \n
    {text}
    \n {discountText && (\n
    \n
    {discountText}
    \n
    \n )}\n \n );\n};\n\nexport default DurationSwitcher;\n","import React from 'react';\nimport { ReactSVG } from 'react-svg';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport {\n ApiPlanItem,\n ApiPlanTypes,\n PlanDurations,\n PlanDurationAcronims,\n} from 'Interfaces/Billing';\nimport ArrowCircleIcon from 'Assets/images/icons/arrow-circle.svg';\n\ninterface ApiPlanCardProps {\n item: ApiPlanItem;\n onUpgrade: (type: ApiPlanTypes, duration: PlanDurations) => void;\n buttonText: string;\n templatesUsed?: number;\n requestsUsed?: number;\n testRequestsMonthlyUsed?: number;\n isCurrent?: boolean;\n presentRequestUsage: boolean;\n presentTestRequestUsage: boolean;\n presentTemplateUsage: boolean;\n isLoading?: boolean;\n handleRenew: () => void;\n isRecuringStoped?: boolean;\n isTitaniumCustom?: boolean;\n}\n\nconst ApiPlanCard = ({\n item: { content, duration, title, price, type },\n requestsUsed,\n testRequestsMonthlyUsed,\n templatesUsed,\n buttonText,\n isCurrent,\n presentRequestUsage = true,\n presentTestRequestUsage = true,\n presentTemplateUsage = true,\n onUpgrade,\n isLoading,\n handleRenew,\n isRecuringStoped,\n isTitaniumCustom,\n}: ApiPlanCardProps) => {\n return (\n
    \n
    \n
    \n
    {title}
    \n
    \n {price}\n \n /{PlanDurationAcronims[duration]}\n \n
    \n
    \n
    \n {content.map((contentItem, index) => (\n
    \n \n {contentItem}\n
    \n ))}\n
    \n
    \n {isCurrent ? (\n <>\n {isRecuringStoped ? (\n \n Renew\n
    \n ) : (\n
    \n Current plan\n
    \n )}\n \n ) : (\n onUpgrade(type, duration)}\n disabled={isLoading || isTitaniumCustom}\n isLoading={isLoading}\n />\n )}\n
    \n {presentRequestUsage && (\n
    \n {requestsUsed}\n \n  API Signature Request left this month\n \n
    \n )}\n {presentTestRequestUsage && (\n
    \n {testRequestsMonthlyUsed}\n \n  Test API Signature Request left this month\n \n
    \n )}\n {presentTemplateUsage && (\n
    \n {templatesUsed}\n  Templates used\n
    \n )}\n
    \n \n );\n};\n\nexport default ApiPlanCard;\n","import { useCardGet, useSetupCheckoutCreate } from 'Hooks/Billing';\nimport React, { useCallback, useEffect } from 'react';\nimport Toast from 'Services/Toast';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport classNames from 'classnames';\nimport { useSelector } from 'react-redux';\nimport { selectCardFormValues } from 'Utils/selectors';\nimport { isNotEmpty } from 'Utils/functions';\nimport { useNewTabOpen } from 'Hooks/Common';\n\nexport interface CardFormProps {\n cardType?: string;\n isNotHidden?: boolean;\n buttonText?: string;\n handleCardAttach?: (cardToken: string) => void;\n extraButtonRenderProps?: () => React.ReactNode;\n disableButton?: boolean;\n}\n\nconst CardForm = ({ disableButton }: CardFormProps) => {\n const card = useSelector(selectCardFormValues);\n const [getCard, isGettingCard] = useCardGet();\n const [createCheckout, isCreatingCheckout] = useSetupCheckoutCreate();\n const [openNewTab] = useNewTabOpen();\n\n const handleCardGet = useCallback(async () => {\n try {\n await getCard(undefined);\n } catch (error) {\n Toast.handleErrors(error);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n handleCardGet();\n }, [handleCardGet]);\n\n const handleCardCreate = useCallback(async () => {\n try {\n const response = await createCheckout(undefined);\n\n if (isNotEmpty(response)) {\n openNewTab(response.checkoutUrl);\n }\n } catch (error) {\n Toast.handleErrors(error);\n }\n }, [createCheckout, openNewTab]);\n\n return (\n
    \n
    \n
    Current Card:
    \n {card ? (\n
    \n {card?.number}\n {card?.expirationDate}\n
    \n ) : (\n
    \n No attached card\n
    \n )}\n
    \n {!disableButton && (\n \n )}\n
    \n );\n};\n\nexport default CardForm;\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction(() => $actions.billing.creatSetupCheckoutSession(dispatch));\n};\n","import React from 'react';\nimport { ReactSVG } from 'react-svg';\nimport ArrowIcon from 'Assets/images/icons/select-arrow-icon.svg';\nimport classNames from 'classnames';\n\ninterface ArrowButtonProps {\n onClick?: (event: React.MouseEvent) => void;\n orientation: 'left' | 'right';\n}\n\nconst ArrowButton = (props: ArrowButtonProps) => {\n const { onClick, orientation } = props;\n\n return (\n \n \n \n );\n};\n\nexport default ArrowButton;\n","import React, { ReactNode, useMemo } from 'react';\nimport ReactSlider from 'react-slick';\nimport 'slick-carousel/slick/slick.css';\nimport 'slick-carousel/slick/slick-theme.css';\n\nimport ArrowButton from './components/Arrow';\n\ninterface SliderProps {\n children: ReactNode;\n hideArrows?: boolean;\n}\n\nconst settings = {\n dots: true,\n infinite: true,\n speed: 500,\n slidesToShow: 1,\n slidesToScroll: 1,\n};\n\nconst arrowsSettings = {\n nextArrow: ,\n prevArrow: ,\n};\n\nconst Slider = ({ children, hideArrows = false }: SliderProps) => {\n const sliderSettings = useMemo(\n () => (hideArrows ? settings : { ...settings, ...arrowsSettings }),\n [hideArrows],\n );\n return (\n
    \n {children}\n
    \n );\n};\n\nexport default Slider;\n","import React, { useCallback, useEffect, useState } from 'react';\nimport {\n PlanDurations,\n ApiPlan,\n ApiPlanChangePayload,\n InvoiceTypes,\n Coupon,\n ApiPlanTypes,\n ApiSubscription,\n PlanChangePayload,\n} from 'Interfaces/Billing';\nimport DurationSwitcher from 'Components/DurationSwitcher';\nimport {\n apiPlanItems,\n apiPlanPriorityByDuration,\n nonPayedPlansDescription,\n} from './constants';\nimport ApiPlanCard from 'Components/ApiPlanCard';\nimport {\n BillingDetails,\n InvoiceTable,\n PromoCodeModal,\n} from 'Pages/Settings/Billing/components';\nimport { useInvoicesGet, useCardGet } from 'Hooks/Billing';\nimport { useSelector } from 'react-redux';\nimport {\n selectApiPlan,\n selectApiSubscriptionInfo,\n selectBillingData,\n selectCardFormValues,\n selectInvoices,\n selectInvoicesPaginationData,\n selectUser,\n} from 'Utils/selectors';\nimport Toast from 'Services/Toast';\nimport { useDataOrdering, useModal, usePagination } from 'Hooks/Common';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport CardForm from 'Components/CardForm';\nimport History from 'Services/History';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport Slider from 'Components/Slider';\nimport { isNotEmpty } from 'Utils/functions';\nimport classNames from 'classnames';\nimport useApiPlanChange from 'Hooks/Billing/useApiPlanChange';\nimport DowngradePlanModal from 'Pages/Settings/Billing/components/DowngradePlanModal';\nimport { PlanChangeModal } from 'Components/PlanChangeModal';\nimport { AuthorizedRoutePaths } from 'Interfaces/RoutePaths';\nimport { OrderingDirection } from 'Interfaces/Common';\n\nconst ApiPlansSection = () => {\n const isMobile = useIsMobile();\n const user = useSelector(selectUser);\n const billing = useSelector(selectBillingData);\n\n const [getInvoices, isInvoicesLoading] = useInvoicesGet();\n const [changeApiPlan, isApiPlanChanging] = useApiPlanChange();\n const [getCard] = useCardGet();\n const userApiSubscription = useSelector(selectApiSubscriptionInfo);\n const userApiPlan = useSelector(selectApiPlan);\n const invoices = useSelector(selectInvoices);\n const [appliedCoupon, setAppliedCoupon] = useState();\n const cardInitialValues = useSelector(selectCardFormValues);\n\n const [selectedPlanDuration, setSelectedPlanDuration] = useState(\n (userApiPlan.duration != PlanDurations.FOREVER && userApiPlan.duration) ||\n PlanDurations.MONTHLY,\n );\n const [planToChange, setPlanToUpgrade] = useState({\n type: ApiPlanTypes.FREE,\n duration: PlanDurations.MONTHLY,\n title: 'Free',\n });\n const { requestOrdering, orderingConfig } = useDataOrdering(invoices, {\n key: 'createdAt',\n direction: OrderingDirection.DESC,\n });\n const [paginationProps, setPageNumber] = usePagination({\n paginationSelector: selectInvoicesPaginationData,\n itemsLimit: 5,\n });\n\n const isAppSumo =\n userApiPlan.type === ApiPlanTypes.APPSUMO_FULL ||\n userApiPlan.type === ApiPlanTypes.APPSUMO_STANDARD;\n\n const isLtd = !!user.ltdTierId && userApiPlan.type === ApiPlanTypes.LTD_API_PLAN;\n\n const isTitaniumCustom =\n userApiPlan.type == ApiPlanTypes.TITANIUM &&\n userApiPlan.duration == PlanDurations.FOREVER;\n\n const isAppSumoOrFree = isAppSumo || isLtd || userApiPlan.type === ApiPlanTypes.FREE;\n\n const currentPlanItems = apiPlanItems[selectedPlanDuration];\n\n const userApiPlanPriority =\n apiPlanPriorityByDuration[userApiPlan.duration][userApiPlan.type];\n\n const handleInvoicesGet = useCallback(async () => {\n try {\n await getInvoices({\n types: [InvoiceTypes.API],\n page: paginationProps.pageNumber + 1,\n limit: paginationProps.itemsLimit,\n orderingKey: orderingConfig.key,\n orderingDirection: orderingConfig.direction.toUpperCase(),\n });\n } catch (error) {\n Toast.handleErrors(error);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [paginationProps.itemsLimit, paginationProps.pageNumber, orderingConfig]);\n\n const handleCardGet = useCallback(async () => {\n try {\n await getCard(undefined);\n } catch (error) {\n Toast.handleErrors(error);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handleChangePlan = useCallback(\n async (payload: PlanChangePayload) => {\n try {\n const response = await changeApiPlan({\n couponId: appliedCoupon?.id,\n ...payload,\n } as ApiPlanChangePayload);\n\n if (isNotEmpty(response)) {\n Toast.success('Api plan have been upgraded');\n }\n } catch (error) {\n Toast.handleErrors(error);\n }\n },\n [appliedCoupon, changeApiPlan],\n );\n\n const handleUpdateCoupon = useCallback(coupon => setAppliedCoupon(coupon), []);\n const handleClearCoupon = useCallback(() => setAppliedCoupon(undefined), []);\n\n const [showPromoCodeModal, hidePromoCodeModal] = useModal(\n () => (\n \n ),\n [planToChange],\n );\n\n const handleRenewPlan = useCallback(async () => {\n try {\n await changeApiPlan({ type: userApiPlan.type, duration: userApiPlan.duration });\n Toast.success('Api plan has been renew');\n } catch (err) {\n Toast.handleErrors(err);\n }\n }, [changeApiPlan, userApiPlan.duration, userApiPlan.type]);\n\n const [showDowngradePlanModal, hideDowngradePlanModal] = useModal(\n () => (\n {\n await handleChangePlan({\n type: planToChange.type,\n duration: planToChange.duration,\n });\n hideDowngradePlanModal();\n }}\n />\n ),\n [planToChange, handleChangePlan, userApiSubscription],\n );\n\n const handlePlanDurationChange = useCallback(\n (duration: PlanDurations) => {\n duration != PlanDurations.FOREVER && setSelectedPlanDuration(duration);\n setPlanToUpgrade({\n ...planToChange,\n duration,\n });\n },\n [planToChange],\n );\n\n const [showChangeApiPlanModal, hideChangePlanModal] = useModal(\n () => (\n \n ),\n [userApiPlan, planToChange, changeApiPlan, isApiPlanChanging],\n );\n\n const checkIfDowngrade = useCallback(\n (type: ApiPlanTypes, duration: PlanDurations) => {\n if (type === ApiPlanTypes.FREE) {\n return true;\n }\n\n if (userApiPlan.type === ApiPlanTypes.TITANIUM && type !== ApiPlanTypes.TITANIUM) {\n return true;\n }\n\n if (userApiPlan.type === ApiPlanTypes.PLATINUM && type === ApiPlanTypes.GOLD) {\n return true;\n }\n\n if (\n userApiPlan.duration === PlanDurations.ANNUALLY &&\n duration !== PlanDurations.ANNUALLY\n ) {\n return true;\n }\n },\n [userApiPlan.duration, userApiPlan.type],\n );\n\n const openModal = useCallback(\n async newPlan => {\n return checkIfDowngrade(newPlan.type, newPlan.duration)\n ? showDowngradePlanModal()\n : showChangeApiPlanModal();\n },\n [checkIfDowngrade, showChangeApiPlanModal, showDowngradePlanModal],\n );\n\n const handleUpgradeApiPlanClick = useCallback(\n async newPlan => {\n setPlanToUpgrade({\n type: newPlan.type,\n duration: newPlan.duration,\n title: newPlan.title,\n });\n\n openModal(newPlan);\n },\n [openModal],\n );\n\n useEffect(() => {\n handleCardGet();\n handleInvoicesGet();\n }, [handleCardGet, handleInvoicesGet]);\n\n return (\n
    \n
    \n
    \n Choose your Signaturely API plan\n
    \n
    \n
    \n setSelectedPlanDuration(PlanDurations.MONTHLY)}\n />\n
    \n
    \n setSelectedPlanDuration(PlanDurations.ANNUALLY)}\n />\n
    \n
    \n
    \n
    \n
    \n {!isMobile ? (\n <>\n {currentPlanItems.map(item => {\n const isCurrent =\n userApiPlanPriority ===\n apiPlanPriorityByDuration[item.duration][item.type];\n return (\n handleUpgradeApiPlanClick(item)}\n buttonText={`${\n userApiPlanPriority >\n apiPlanPriorityByDuration[item.duration][item.type]\n ? 'Select'\n : 'Upgrade'\n }`}\n testRequestsMonthlyUsed={\n userApiPlan.requestLimit -\n (userApiSubscription?.testRequestsMonthlyUsed || 0)\n }\n requestsUsed={\n (userApiSubscription?.requestLimit || userApiPlan.requestLimit) -\n (userApiSubscription?.requestsMonthlyUsed || 0)\n }\n templatesUsed={userApiSubscription?.templatesCount}\n isTitaniumCustom={isTitaniumCustom}\n />\n );\n })}\n \n ) : (\n \n {currentPlanItems.map(item => {\n const isCurrent =\n userApiPlanPriority ===\n apiPlanPriorityByDuration[item.duration][item.type];\n return (\n handleUpgradeApiPlanClick(item)}\n buttonText={`${\n userApiPlanPriority >\n apiPlanPriorityByDuration[item.duration][item.type]\n ? 'Select'\n : 'Upgrade'\n }`}\n testRequestsMonthlyUsed={\n userApiPlan.requestLimit -\n (userApiSubscription?.testRequestsMonthlyUsed || 0)\n }\n requestsUsed={\n (userApiSubscription?.requestLimit || userApiPlan.requestLimit) -\n (userApiSubscription?.requestsMonthlyUsed || 0)\n }\n templatesUsed={userApiSubscription?.templatesCount}\n isTitaniumCustom={isTitaniumCustom}\n />\n );\n })}\n \n )}\n
    \n {(isAppSumoOrFree || isTitaniumCustom) && (\n
    \n \n

    \n You are currently in the{' '}\n {isLtd ? `${userApiPlan.name}` : `${userApiPlan.name} plan`}\n

    \n
    \n {isTitaniumCustom ? (\n <>\n This plan includes all Titanium Plan features but has a limited number\n of API Signature Requests with an indefinite validity. You have\n {userApiSubscription?.requestLimit} API Signature Requests\n left. If you want more API Requests or want to switch to another plan,\n please contact us. Note that if you switch to another plan, your API\n Requests will be lost.\n \n ) : (\n nonPayedPlansDescription[userApiPlan.type]\n )}\n
    \n
    \n {isAppSumo && (\n {\n History.push(AuthorizedRoutePaths.SETTINGS_BILLING);\n }}\n title=\"View AppSumo Plan\"\n />\n )}\n
    \n )}\n
    \n
    \n \n

    Card Details

    \n \n
    \n \n \n \n \n );\n};\n\nexport default ApiPlansSection;\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { ApiPlanChangePayload } from 'Interfaces/Billing';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: ApiPlanChangePayload) =>\n $actions.billing.changeApiPlan(dispatch, payload),\n );\n};\n","import UIButton from 'Components/UIComponents/UIButton';\nimport { useApiKeysGet } from 'Hooks/ApiKeys';\nimport { useDataOrdering, useModal, usePagination } from 'Hooks/Common';\nimport { OrderingDirection } from 'Interfaces/Common';\nimport React, { useCallback, useEffect } from 'react';\nimport { useSelector } from 'react-redux';\nimport Toast from 'Services/Toast';\nimport {\n selectApiKeys,\n selectApiKeysPaginationData,\n selectApiSubscriptionInfo,\n} from 'Utils/selectors';\nimport ApiKeyModal from './components/ApiKeyModal/ApiKeyModal';\nimport ApiKeysList from './components/ApiKeysList';\nimport UIPaginator from 'Components/UIComponents/UIPaginator';\nimport ApiPlansSection from 'Components/ApiPlansSection';\nimport { useApiSubscriptionGet } from 'Hooks/Billing';\nimport UISpinner from 'Components/UIComponents/UISpinner';\n\ntype selectedPage = { selected: number };\n\nconst Api = () => {\n const [getApiKeys, isApiKeysLoading] = useApiKeysGet();\n const [getApiSubscription, isGettingApiDataLoading] = useApiSubscriptionGet();\n const [paginationProps, setPageNumber] = usePagination({\n paginationSelector: selectApiKeysPaginationData,\n });\n\n const subscriptionData = useSelector(selectApiSubscriptionInfo);\n const apiKeys = useSelector(selectApiKeys);\n const { requestOrdering, orderingConfig } = useDataOrdering(apiKeys, {\n key: 'createdAt',\n direction: OrderingDirection.DESC,\n });\n\n const handleChangePage = (page: selectedPage) => {\n setPageNumber(page.selected);\n };\n\n const handleGetApiKeys = useCallback(async () => {\n const { key, direction } = orderingConfig;\n const orderingDirection = direction.toString().toUpperCase();\n try {\n getApiKeys({\n limit: paginationProps.itemsLimit,\n page: paginationProps.pageNumber + 1,\n orderingKey: key,\n orderingDirection,\n });\n } catch (error) {\n Toast.handleErrors(error);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [paginationProps.itemsLimit, paginationProps.pageNumber, orderingConfig]);\n\n const handleGetApiKeysFromFirstPage = useCallback(async () => {\n const { key, direction } = orderingConfig;\n const orderingDirection = direction.toString().toUpperCase();\n try {\n getApiKeys({\n limit: paginationProps.itemsLimit,\n page: 1,\n orderingKey: key,\n orderingDirection,\n });\n\n if (paginationProps.pageNumber !== 0) setPageNumber(0);\n } catch (error) {\n Toast.handleErrors(error);\n }\n }, [\n getApiKeys,\n orderingConfig,\n paginationProps.itemsLimit,\n paginationProps.pageNumber,\n setPageNumber,\n ]);\n\n const handleApiSubscriptionGet = useCallback(async () => {\n try {\n await getApiSubscription(undefined);\n } catch (error) {\n Toast.handleErrors(error);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const [openGenerateApiKeyModal, closeGenerateApiKeyModal] = useModal(\n () => (\n \n ),\n [],\n );\n\n useEffect(() => {\n return () => setPageNumber(0);\n }, [setPageNumber]);\n\n useEffect(() => {\n handleApiSubscriptionGet();\n }, [handleApiSubscriptionGet]);\n\n useEffect(() => {\n handleGetApiKeys();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [handleGetApiKeys]);\n\n return (\n
    \n {isGettingApiDataLoading ? (\n
    \n \n
    \n ) : (\n <>\n {subscriptionData && (\n
    \n
    \n
    \n

    Api Keys

    \n
    \n
    \n \n
    \n
    \n \n {paginationProps.pageCount > 1 && (\n \n )}\n
    \n )}\n \n \n )}\n
    \n );\n};\n\nexport default Api;\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { ApiKeysGetPayload } from 'Interfaces/ApiKey';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: ApiKeysGetPayload) =>\n $actions.apiKey.getApiKeys(dispatch, payload),\n );\n};\n","import React, { useMemo } from 'react';\nimport { useSelector } from 'react-redux';\nimport { useModal } from 'react-modal-hook';\nimport {\n RequisiteActionsDropdown,\n RequisiteItem,\n RequisiteDeleteModal,\n RequisiteModal,\n} from 'Components/RequisiteComponents';\nimport {\n RequisiteActionOption,\n RequisiteActionTypes,\n} from 'Components/RequisiteComponents/RequisiteActionsDropdown';\nimport { Requisite } from 'Interfaces/Requisite';\nimport { selectRequisite } from 'Utils/selectors';\nimport UIModal from 'Components/UIComponents/UIModal';\n\ninterface SignatureItemProps {\n signatureItem: Requisite;\n}\n\nexport const SignatureItem = ({ signatureItem }: SignatureItemProps) => {\n const siblingRequisite = useSelector(state =>\n selectRequisite(state, { requisiteId: signatureItem.siblingId }),\n );\n\n const [showDeleteModal, closeDeleteModal] = useModal(\n () => (\n \n ),\n [signatureItem],\n );\n\n const [showEditModal, closeRequisiteModal] = useModal(\n () => (\n \n \n \n ),\n [signatureItem],\n );\n\n const dropdownOptions = useMemo(\n () =>\n [\n {\n type: RequisiteActionTypes.EDIT,\n title: 'Edit',\n onClick: showEditModal,\n },\n {\n type: RequisiteActionTypes.DELETE,\n title: 'Delete',\n onClick: showDeleteModal,\n },\n ] as RequisiteActionOption[],\n [showEditModal, showDeleteModal],\n );\n\n return (\n
  • \n \n \n
  • \n );\n};\n\nexport default SignatureItem;\n","import React, { useCallback, useEffect } from 'react';\nimport { useModal } from 'Hooks/Common';\nimport { RequisiteModal } from 'Components/RequisiteComponents';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport SignatureItem from './SignatureItem';\nimport Toast from 'Services/Toast';\nimport { useRequisitesGet } from 'Hooks/Requisite';\nimport { useSelector } from 'react-redux';\nimport { selectSignatures } from 'Utils/selectors';\nimport UIModal from 'Components/UIComponents/UIModal';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport classNames from 'classnames';\n\nconst SignaturePage = () => {\n const [getRequisites] = useRequisitesGet();\n const signatures = useSelector(selectSignatures);\n const isMobile = useIsMobile();\n\n const handleGetRequisites = useCallback(async () => {\n try {\n await getRequisites(undefined);\n } catch (error) {\n Toast.handleErrors(error);\n }\n }, [getRequisites]);\n\n useEffect(() => {\n handleGetRequisites();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const [showRequisiteModal, closeRequisiteModal] = useModal(() => (\n \n \n \n ));\n\n return (\n
    \n

    Saved Signatures

    \n
      \n {signatures.map(signature => (\n \n ))}\n
    \n
    \n \n
    \n
    \n );\n};\n\nexport default SignaturePage;\n","import React from 'react';\nimport classNames from 'classnames';\nimport { formatDate, getHourFromDateString } from 'Utils/formatters';\nimport { RequestHistoryItem, requestTypeDescription } from 'Interfaces/RequestsHistory';\n\ninterface RequestHistoryItemItemProps {\n requestHistoryItem: RequestHistoryItem;\n className?: string;\n onDeleteSuccess?: (id: RequestHistoryItem['id']) => void;\n}\n\nconst RequestHistoryItemItem = ({\n requestHistoryItem,\n className,\n}: RequestHistoryItemItemProps) => {\n return (\n
    \n
    \n {requestTypeDescription[requestHistoryItem.type]}\n
    \n
    \n {requestHistoryItem.createdAt && formatDate(requestHistoryItem.createdAt)}\n
    \n
    \n {requestHistoryItem.createdAt &&\n getHourFromDateString(requestHistoryItem.createdAt)}\n
    \n
    \n {requestHistoryItem.origin}\n
    \n
    \n );\n};\n\nexport default RequestHistoryItemItem;\n","import React from 'react';\nimport { ReactSVG } from 'react-svg';\nimport { TablePaginationProps } from 'Interfaces/Common';\nimport EmptyTable from 'Components/EmptyTable';\nimport IconSort from 'Assets/images/icons/sort.svg';\nimport RequestHistoryTableItem from './RequestHistoryTableItem';\nimport UISpinner from 'Components/UIComponents/UISpinner';\nimport { RequestHistoryItem } from 'Interfaces/RequestsHistory';\nimport History from 'Services/History';\nimport { AuthorizedRoutePaths } from 'Interfaces/RoutePaths';\n\ninterface RequestHistoryProps {\n requestHistory: RequestHistoryItem[];\n paginationProps?: TablePaginationProps;\n requestOrdering: (key: string) => void;\n isLoading: boolean;\n}\n\nconst defaultPaginationProps: TablePaginationProps = {\n pageCount: 0,\n pageNumber: 0,\n itemsCount: 0,\n itemsLimit: 0,\n totalItems: 0,\n};\n\nfunction RequestHistoryList({\n requestHistory,\n paginationProps = defaultPaginationProps,\n isLoading,\n requestOrdering,\n}: RequestHistoryProps) {\n const { pageNumber, itemsCount, itemsLimit, totalItems } = paginationProps;\n\n if (requestHistory.length === 0 && !isLoading)\n return (\n
    \n History.push(AuthorizedRoutePaths.SETTINGS_API)}\n iconClassName=\"empty-table__icon--document\"\n buttonText=\"Back to api settings\"\n headerText=\"There is no request history\"\n />\n
    \n );\n\n return (\n
    \n
    \n

    \n {`${pageNumber * itemsLimit + 1}-${pageNumber * itemsLimit +\n (itemsCount || itemsLimit)}`}\n  of \n {totalItems}\n  results\n

    \n
    \n
    \n
    \n
    \n
    \n requestOrdering('type')}\n >\n TYPE\n \n \n
    \n
    \n requestOrdering('createdAt')}\n >\n DATE\n \n \n
    \n
    \n HOUR\n
    \n
    \n requestOrdering('origin')}\n >\n ORIGIN\n \n \n
    \n
    \n {isLoading ? (\n \n ) : (\n requestHistory.map(requestHistoryItem => {\n return (\n \n );\n })\n )}\n
    \n
    \n
    \n );\n}\n\nexport default RequestHistoryList;\n","import { useDataOrdering, usePagination } from 'Hooks/Common';\nimport { OrderingDirection } from 'Interfaces/Common';\nimport React, { useCallback, useEffect, useMemo } from 'react';\nimport { useSelector } from 'react-redux';\nimport { RouteChildrenProps } from 'react-router';\nimport Toast from 'Services/Toast';\nimport {\n selectRequestHistory,\n selectRequestHistoryPaginationData,\n} from 'Utils/selectors';\nimport RequestHistoryList from './components/RequestHistoryList';\nimport UIPaginator from 'Components/UIComponents/UIPaginator';\nimport { ApiKey } from 'Interfaces/ApiKey';\nimport History from 'Services/History';\nimport { useRequestHistoryGet } from 'Hooks/RequestHistory';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport { AuthorizedRoutePaths } from 'Interfaces/RoutePaths';\n\ntype selectedPage = { selected: number };\n\ninterface ApiKeyParams {\n apiKeyId: ApiKey['id'];\n}\n\nconst RequestHistory = ({ match }: RouteChildrenProps) => {\n const apiKeyId = useMemo(() => match?.params.apiKeyId, [match]);\n\n const [getRequestHistory, isRequestHistoryLoading] = useRequestHistoryGet();\n const [paginationProps, setPageNumber] = usePagination({\n paginationSelector: selectRequestHistoryPaginationData,\n });\n const requestHistory = useSelector(selectRequestHistory);\n const { requestOrdering, orderingConfig } = useDataOrdering(requestHistory, {\n key: 'createdAt',\n direction: OrderingDirection.DESC,\n });\n\n const handleChangePage = (page: selectedPage) => {\n setPageNumber(page.selected);\n };\n\n const handleGetRequestHistory = useCallback(async () => {\n if (!apiKeyId) {\n History.push(AuthorizedRoutePaths.BASE_PATH);\n return;\n }\n\n const { key, direction } = orderingConfig;\n const orderingDirection = direction.toString().toUpperCase();\n try {\n getRequestHistory({\n limit: paginationProps.itemsLimit,\n page: paginationProps.pageNumber + 1,\n orderingKey: key,\n orderingDirection,\n apiKeyId,\n });\n } catch (error) {\n Toast.handleErrors(error);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [paginationProps.itemsLimit, paginationProps.pageNumber, orderingConfig]);\n\n useEffect(() => {\n return () => setPageNumber(0);\n }, [setPageNumber]);\n\n useEffect(() => {\n handleGetRequestHistory();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [handleGetRequestHistory]);\n\n return (\n
    \n
    \n
    \n

    Request History

    \n
    \n History.push(AuthorizedRoutePaths.SETTINGS_API)}\n title=\"Back\"\n />\n
    \n \n {paginationProps.pageCount > 1 && (\n \n )}\n
    \n );\n};\n\nexport default RequestHistory;\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { RequestHistoryGetPayload } from 'Interfaces/RequestsHistory';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: RequestHistoryGetPayload) =>\n $actions.requestHistory.getRequestHistory(dispatch, payload),\n );\n};\n","import React, { useCallback, useState } from 'react';\nimport UIModal from 'Components/UIComponents/UIModal';\nimport { Plan, PlanDurations, PlanTypes } from 'Interfaces/Billing';\nimport * as _ from 'lodash';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport { DataLayerAnalytics } from 'Services/Integrations';\nimport Toast from 'Services/Toast';\nimport { isNotEmpty } from 'Utils/functions';\nimport {\n useLtdPlanDurationChange,\n useLatestInvoiceGet,\n useSubscriptionDataGet,\n} from 'Hooks/Billing';\n\ninterface LtdDowngradePlanProps {\n onClose: () => void;\n nextBillingDate: Date;\n}\n\nconst LtdDowngradePlanModal = ({ onClose, nextBillingDate }: LtdDowngradePlanProps) => {\n const [getLatestInvoice] = useLatestInvoiceGet();\n const [getSubscriptionData] = useSubscriptionDataGet();\n const [planToChange, setPlanToUpgrade] = useState({\n type: PlanTypes.BUSINESS,\n duration: PlanDurations.MONTHLY,\n title: 'Business',\n });\n const [\n changeLtdPlanDuration,\n isChangeLtdPlanDurationLoading,\n ] = useLtdPlanDurationChange();\n\n const handleChangePlan = useCallback(async () => {\n try {\n await changeLtdPlanDuration({ duration: planToChange.duration });\n\n const latestInvoice = await getLatestInvoice(undefined);\n\n if (isNotEmpty(latestInvoice)) {\n DataLayerAnalytics.fireSubscriptionEvent(\n `${planToChange.type} ${planToChange.duration}`,\n latestInvoice.transactionId,\n );\n }\n\n Toast.success('Plan has been successfully changed.');\n await getSubscriptionData(undefined);\n onClose();\n } catch (error) {\n Toast.handleErrors(error);\n }\n }, [\n changeLtdPlanDuration,\n getLatestInvoice,\n getSubscriptionData,\n onClose,\n planToChange.duration,\n planToChange.type,\n ]);\n\n return (\n \n
    \n
    \n Downgrade to {_.capitalize(planToChange.type)}{' '}\n {_.capitalize(planToChange.duration)} Plan\n
    \n
    \n We will downgrade your plan at the next billing date (\n {nextBillingDate.toDateString()})\n
    \n
    \n \n
    \n
    \n
    \n );\n};\n\nexport default LtdDowngradePlanModal;\n","import React, { useCallback, useEffect, useMemo } from 'react';\nimport classNames from 'classnames';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport History from 'Services/History';\nimport {\n SubscriptionInfo,\n PlanDurations,\n PlanDetails,\n AppSumoStatus,\n PlanTypes,\n} from 'Interfaces/Billing';\nimport { isNotEmpty } from 'Utils/functions';\nimport { capitalize } from 'lodash';\nimport { convertToMoneyFormat, subscriptionPlanNames } from './SubscriptionInfoBlock';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport { AuthorizedRoutePaths } from 'Interfaces/RoutePaths';\nimport { useSelector } from 'react-redux';\nimport { selectCardFormValues, selectTeamMembers, selectUserPlan } from 'Utils/selectors';\nimport useTeamMembersGet from 'Hooks/Team/useTeamMembersGet';\nimport { OrderingDirection } from 'Interfaces/Common';\nimport { useModal } from 'react-modal-hook';\nimport LtdUpgradePlanModal from './modals/LtdUpgradePlanModal';\nimport AppSumoDowngradePlanModal from './modals/AppSumoDowngradePlanModal';\nimport Toast from 'Services/Toast';\nimport { useLtdPlanDurationChange, useSubscriptionDataGet } from 'Hooks/Billing';\nimport { APPSUMO_STANDARD_TEAM_LIMIT } from 'Utils/constants';\n\ninterface SubscriptionInfoMobileProps {\n subscriptionInfo: SubscriptionInfo;\n plan: PlanDetails;\n appSumoStatus: AppSumoStatus;\n isFreezed?: boolean;\n}\n\nconst SubscriptionInfoBlock = ({\n subscriptionInfo,\n plan,\n appSumoStatus,\n isFreezed: pastDue,\n}: SubscriptionInfoMobileProps) => {\n const isMobile = useIsMobile();\n const [getTeamMembers, isFetchLoading] = useTeamMembersGet();\n const [\n changeLtdPlanDuration,\n isChangeLtdPlanDurationLoading,\n ] = useLtdPlanDurationChange();\n const [getSubscriptionData] = useSubscriptionDataGet();\n const teamMembers = useSelector(selectTeamMembers);\n const cardInitialValues = useSelector(selectCardFormValues);\n const userPlan = useSelector(selectUserPlan);\n\n const [assignedTeamMembers, additionalTeamMembers] = useMemo(() => {\n const assignedTeamMembers =\n teamMembers.length <= APPSUMO_STANDARD_TEAM_LIMIT\n ? teamMembers.length\n : APPSUMO_STANDARD_TEAM_LIMIT;\n const additionalTeamMembers =\n teamMembers.length > APPSUMO_STANDARD_TEAM_LIMIT\n ? teamMembers.length - APPSUMO_STANDARD_TEAM_LIMIT\n : 0;\n\n return [assignedTeamMembers, additionalTeamMembers];\n }, [teamMembers]);\n\n const [showLtdUpgradePlanModal, hideLtdUpgradePlanModal] = useModal(\n () => (\n \n ),\n [userPlan, cardInitialValues],\n );\n\n const [showAppSumoDowngradePlanModal, hideAppSumoDowngradePlanModal] = useModal(\n () => (\n \n ),\n [subscriptionInfo],\n );\n\n const handleRenewPlan = useCallback(async () => {\n try {\n await changeLtdPlanDuration({ duration: userPlan.duration });\n await getSubscriptionData(undefined);\n Toast.success('Plan has been renew');\n } catch (err) {\n Toast.handleErrors(err);\n }\n }, [changeLtdPlanDuration, getSubscriptionData, userPlan.duration]);\n\n const showAppSumoModalByDuration = useCallback(() => {\n if (isNotEmpty(subscriptionInfo) && !subscriptionInfo.neverExpires) {\n handleRenewPlan();\n } else if (userPlan.duration === PlanDurations.ANNUALLY) {\n showAppSumoDowngradePlanModal();\n } else {\n showLtdUpgradePlanModal();\n }\n }, [\n handleRenewPlan,\n showAppSumoDowngradePlanModal,\n showLtdUpgradePlanModal,\n subscriptionInfo,\n userPlan.duration,\n ]);\n\n const handleUpgradeClick = useCallback(() => {\n if (appSumoStatus === AppSumoStatus.FULL) {\n History.push(AuthorizedRoutePaths.SETTINGS_API);\n } else {\n History.push(AuthorizedRoutePaths.SETTINGS_BILLING_PLAN);\n }\n }, [appSumoStatus]);\n const {\n userQuantity,\n amount,\n discountQuantity,\n discountAmount,\n discountPercent,\n } = subscriptionInfo;\n const isSubscribed = isNotEmpty(subscriptionInfo);\n\n const {\n price,\n totalDiscount,\n totalPrice,\n billingDurationType,\n totalDurationType,\n } = useMemo(() => {\n const price = userQuantity * amount;\n const totalDiscount = discountQuantity ? discountQuantity * discountAmount : 0;\n\n return {\n price: convertToMoneyFormat(price),\n totalDiscount: convertToMoneyFormat(totalDiscount),\n totalPrice: convertToMoneyFormat(price - totalDiscount),\n billingDurationType: plan.duration ? `(Billed ${capitalize(plan.duration)})` : '',\n totalDurationType: plan.duration === PlanDurations.ANNUALLY ? 'Year' : 'Month',\n };\n }, [userQuantity, amount, discountQuantity, discountAmount, plan]);\n\n const getUpdateButtonTitle = useCallback(() => {\n if (isNotEmpty(subscriptionInfo) && !subscriptionInfo.neverExpires)\n return 'Renew Plan';\n\n if (plan.type === PlanTypes.BUSINESS) return 'Edit Plan';\n\n if (appSumoStatus === AppSumoStatus.FULL) return 'Upgrade API';\n\n return 'Upgrade Plan';\n }, [appSumoStatus, plan.type, subscriptionInfo]);\n\n const getAppSumoUpdateButtonTitle = useCallback(() => {\n if (isNotEmpty(subscriptionInfo) && !subscriptionInfo.neverExpires)\n return 'Renew Plan';\n\n if (\n appSumoStatus === AppSumoStatus.STANDARD &&\n userPlan.duration !== PlanDurations.ANNUALLY\n )\n return 'Upgrade Plan';\n\n return 'Downgrade';\n }, [appSumoStatus, subscriptionInfo, userPlan.duration]);\n\n const getNextInvoiceTitle = useCallback(() => {\n const dateString = new Date(subscriptionInfo.nextBillingDate).toDateString();\n\n if (!subscriptionInfo.neverExpires) {\n return `Your plan will end on ${dateString}`;\n }\n\n return `Your next payment is due on ${dateString}`;\n }, [subscriptionInfo.neverExpires, subscriptionInfo.nextBillingDate]);\n\n useEffect(() => {\n getTeamMembers({\n orderingKey: 'role',\n orderingDirection: OrderingDirection.DESC.toUpperCase(),\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n \n \n \n
    \n

    \n Your plan {!appSumoStatus && billingDurationType}\n

    \n

    \n {appSumoStatus === AppSumoStatus.STANDARD\n ? 'AppSumo 1 code'\n : appSumoStatus === AppSumoStatus.FULL\n ? 'AppSumo 2 code'\n : subscriptionPlanNames[plan.type]}\n

    \n
    \n {(!isMobile || !isSubscribed) && !appSumoStatus && (\n
    \n \n
    \n )}\n {appSumoStatus && isSubscribed && (\n
    \n \n
    \n )}\n \n {isSubscribed && (\n <>\n
    \n
    \n {appSumoStatus ? '3 LTD' : `${userQuantity} ${capitalize(plan.type)}`}{' '}\n Users  \n \n ({appSumoStatus ? assignedTeamMembers : userQuantity} assigned)\n \n
    \n
    \n ${appSumoStatus ? 0 : price} USD\n
    \n
    \n {appSumoStatus && (\n
    \n
    \n {additionalTeamMembers} Additional User\n
    \n
    \n ${price ? price : 0} USD\n
    \n
    \n )}\n {!!discountQuantity && (\n
    \n
    \n {discountPercent ? `${discountPercent}% OFF ` : ''}\n Discount\n
    \n
    \n -${totalDiscount} USD\n
    \n
    \n )}\n \n )}\n \n {isSubscribed && (\n <>\n
    \n
    \n Total per {totalDurationType}\n
    \n
    \n
    \n ${totalPrice} USD\n
    \n
    \n
    \n {isMobile && !appSumoStatus && (\n
    \n \n
    \n )}\n
    \n \n {getNextInvoiceTitle()}\n \n
    \n \n )}\n \n );\n};\n\nexport default SubscriptionInfoBlock;\n","import React, { useCallback } from 'react';\nimport { useChargeRetry } from 'Hooks/Billing';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport Toast from 'Services/Toast';\nimport { useSelector } from 'react-redux';\nimport { selectUser } from 'Utils/selectors';\nimport { User, UserStatuses } from 'Interfaces/User';\n\nconst PastDueForm = () => {\n const [retryCharge, isRetryingCharge] = useChargeRetry();\n const user: User = useSelector(selectUser);\n\n const handleRetryCharge = useCallback(async () => {\n try {\n await retryCharge(undefined);\n Toast.success('Subscription paid');\n } catch (err) {\n Toast.handleErrors(err);\n }\n }, [retryCharge]);\n\n if (user.status !== UserStatuses.FREEZE) {\n return null;\n }\n\n return (\n
    \n
    \n Your current subscription has not been paid; the account has been disabled. Please\n check your payment method.\n
    \n
    \n \n
    \n
    \n );\n};\n\nexport default PastDueForm;\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction(() => $actions.billing.retryCharge(dispatch));\n};\n","import React, { useEffect, useCallback } from 'react';\nimport { useSelector } from 'react-redux';\nimport {\n AppSumoBillingTable,\n BillingDetails,\n InvoiceTable,\n LifeTimeDealInfoBlock,\n} from '../../components';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport {\n useSubscriptionDataGet,\n usePlansGet,\n usePlanChange,\n useInvoicesGet,\n useBillingPortalCreate,\n} from 'Hooks/Billing';\nimport Toast from 'Services/Toast';\nimport {\n selectInvoices,\n selectInvoicesPaginationData,\n selectSubscriptionInfo,\n selectUser,\n selectUserPlan,\n} from 'Utils/selectors';\nimport { PlanTypes, PlanDurations, InvoiceTypes } from 'Interfaces/Billing';\nimport ConfirmModal from 'Components/ConfirmModal';\nimport {\n useDataOrdering,\n useModal,\n useNewTabOpen,\n usePagination,\n useUrlParamsGet,\n} from 'Hooks/Common';\nimport { User, UserStatuses } from 'Interfaces/User';\nimport CardForm from 'Components/CardForm';\nimport SubscriptionInfoBlockMobile from '../../components/SubscriptionInfoBlockMobile';\nimport classNames from 'classnames';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport { PastDueForm } from 'Components/PastDueForm';\nimport { isNotEmpty } from 'Utils/functions';\nimport History from 'Services/History';\nimport { AuthorizedRoutePaths } from 'Interfaces/RoutePaths';\nimport { OrderingDirection } from 'Interfaces/Common';\n\ntype selectedPage = { selected: number };\n\nconst BillingMainScreen = () => {\n const [getInvoices, isInvoicesLoading] = useInvoicesGet();\n const userPlan = useSelector(selectUserPlan);\n const { appSumoStatus, status, ...user }: User = useSelector(selectUser);\n const [getPlans] = usePlansGet();\n const [changePlan, isChangingPlan] = usePlanChange();\n const [getSubscriptionData, isGettingSubscriptionData] = useSubscriptionDataGet();\n const [createBillingPortal, isCreatingBillingPortal] = useBillingPortalCreate();\n const subscriptionInfo = useSelector(selectSubscriptionInfo);\n const invoices = useSelector(selectInvoices);\n const isMobile = useIsMobile();\n const [openNewTab] = useNewTabOpen();\n const urlParams = useUrlParamsGet();\n const { requestOrdering, orderingConfig } = useDataOrdering(invoices, {\n key: 'createdAt',\n direction: OrderingDirection.DESC,\n });\n const [paginationProps, setPageNumber] = usePagination({\n paginationSelector: selectInvoicesPaginationData,\n itemsLimit: 5,\n });\n\n useEffect(() => {\n if (urlParams.success_payment) {\n History.push(AuthorizedRoutePaths.SETTINGS_BILLING);\n Toast.success('Payment was successful');\n }\n }, [urlParams]);\n\n const handleSubscriptionDataGet = useCallback(async () => {\n try {\n await getSubscriptionData(undefined);\n } catch (error) {\n Toast.handleErrors(error);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handleSubscriptionCancel = useCallback(async () => {\n try {\n await changePlan({\n type: PlanTypes.FREE,\n duration: PlanDurations.MONTHLY,\n });\n await handleSubscriptionDataGet();\n } catch (error) {\n Toast.handleErrors(error);\n }\n }, [changePlan, handleSubscriptionDataGet]);\n\n const handlePlansGet = useCallback(async () => {\n try {\n await getPlans(undefined);\n } catch (error) {\n Toast.handleErrors(error);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handleInvoicesGet = useCallback(async () => {\n try {\n await getInvoices({\n types: user.ltdTierId\n ? [InvoiceTypes.DEFAULT, InvoiceTypes.LTD]\n : [InvoiceTypes.DEFAULT],\n page: paginationProps.pageNumber + 1,\n limit: paginationProps.itemsLimit,\n orderingKey: orderingConfig.key,\n orderingDirection: orderingConfig.direction.toUpperCase(),\n });\n } catch (error) {\n Toast.handleErrors(error);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [paginationProps.itemsLimit, paginationProps.pageNumber, orderingConfig]);\n\n const [showSubscriptionCancelModal, hideSubscriptionCancelModal] = useModal(\n () => (\n {\n await handleSubscriptionCancel();\n hideSubscriptionCancelModal();\n },\n title: 'Cancel Subscription',\n }}\n onCancel={hideSubscriptionCancelModal}\n >\n
    \n
    Cancel Subscription
    \n
    \n Do you want to cancel subscription?\n
    \n
    \n \n ),\n [handleSubscriptionCancel, isChangingPlan, isGettingSubscriptionData],\n );\n\n useEffect(() => {\n handlePlansGet();\n handleInvoicesGet();\n handleSubscriptionDataGet();\n }, [handleInvoicesGet, handlePlansGet, handleSubscriptionDataGet]);\n\n const handleOpenBillingPortal = useCallback(async () => {\n try {\n const response = await createBillingPortal(undefined);\n\n if (isNotEmpty(response)) {\n openNewTab(response.checkoutUrl);\n }\n } catch (err) {\n Toast.handleErrors(err);\n }\n }, [createBillingPortal, openNewTab]);\n\n return (\n
    \n
    \n

    Card Details

    \n \n \n
    \n \n \n
    \n \n {user.ltdTierId ? (\n
    \n \n
    \n ) : (\n
    \n \n
    \n )}\n {appSumoStatus && (\n
    \n \n
    \n )}\n
    \n
    \n \n
    \n
    \n
    \n \n \n
    \n {!appSumoStatus && (\n
    \n
    Cancel subscription
    \n
    \n

    \n If you want to cancel subscription, please do it here.\n

    \n
    \n \n
    \n )}\n \n );\n};\n\nexport default BillingMainScreen;\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction(() => $actions.billing.getPlans(dispatch));\n};\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction(() => $actions.billing.createBillingPortal(dispatch));\n};\n","import { useMemo } from 'react';\nimport History from 'Services/History';\n\ninterface URLParams {\n [key: string]: string;\n}\n\nexport default () => {\n const urlParams = useMemo(() => {\n const params = {};\n\n const searchString = History.location.search.slice(1);\n searchString.split('&').forEach(paramStr => {\n const [key, value] = paramStr.split('=');\n params[key] = value;\n });\n\n return params;\n }, []);\n\n return urlParams as URLParams;\n};\n","import React from 'react';\nimport 'react-toggle/style.css';\nimport { AppSumoBillingTable } from '../../components';\n\nconst AppSumoActiveScreen = () => {\n return (\n
    \n \n
    \n );\n};\n\nexport default AppSumoActiveScreen;\n","import React, { useState, useCallback, useEffect, useMemo } from 'react';\nimport { useSelector } from 'react-redux';\nimport { ReactSVG } from 'react-svg';\nimport 'react-toggle/style.css';\nimport { useLtdTiersGet } from 'Hooks/Billing';\nimport { selectUser } from 'Utils/selectors';\nimport { LtdTier } from 'Interfaces/Billing';\nimport {\n LtdOptionNames,\n LtdOptions,\n PlanFieldTypes,\n additionalLtdOptions,\n tierNumberById,\n} from './planTableItems';\n\nimport UIButton from 'Components/UIComponents/UIButton';\nimport { LifeTimeDealSlider, LifeTimeDealTableMobileView } from '../../components';\n\nimport ArrowCircleIcon from 'Assets/images/icons/arrow-circle.svg';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport { isNotEmpty } from 'Utils/functions';\nimport UISpinner from 'Components/UIComponents/UISpinner';\nimport History from 'Services/History';\nimport classNames from 'classnames';\nimport { AuthorizedRoutePaths } from 'Interfaces/RoutePaths';\nimport { planTypeToName } from 'Utils/formatters';\n\nconst renderCell = (\n type: PlanFieldTypes,\n value: JSX.Element | string | number | boolean,\n) =>\n type === PlanFieldTypes.BOOLEAN && value ? (\n \n ) : (\n value\n );\n\nconst LifeTimeDealScreen = () => {\n const user = useSelector(selectUser);\n\n const isMobile = useIsMobile();\n const [getLtdTiers, isGettingLtdTiers] = useLtdTiersGet();\n\n const [currentDisplayedTier, setCurrentDisplayedTier] = useState(\n user.ltdTierId,\n );\n const [tiers, setTiers] = useState();\n\n const fullTiersOptions = useMemo(() => {\n return tiers?.map(tier => {\n const info = additionalLtdOptions.map(item => {\n if (item.name === LtdOptionNames.USERS) {\n return {\n ...item,\n value: tier.teammatesLimit === -1 ? 'Unlimited' : tier.teammatesLimit,\n };\n }\n\n if (item.name === LtdOptionNames.API_REQUESTS) {\n return {\n ...item,\n value: tier.apiPlan.requestLimit,\n };\n }\n\n if (item.name === LtdOptionNames.BULK_SEND_REQUESTS) {\n return {\n ...item,\n value: tier.bulkSendLimit,\n };\n }\n\n if (item.name === LtdOptionNames.FORMS) {\n return {\n ...item,\n value: tier.formsLimit,\n };\n }\n\n if (item.name === LtdOptionNames.PLAN) {\n return {\n ...item,\n value: planTypeToName[tier.planType],\n };\n }\n\n if (item.name === LtdOptionNames.PRICING) {\n return {\n ...item,\n value: `$${tier.price}`,\n };\n }\n\n return item;\n });\n\n return info as LtdOptions[];\n });\n }, [tiers]);\n\n const handleUpgradeTier = useCallback((newTierId: LtdTier['id']) => {\n History.push(`${AuthorizedRoutePaths.LTD_UPGRADE}`, {\n newTierId,\n });\n }, []);\n\n const handleGetLtdTiers = useCallback(async () => {\n const tiers = await getLtdTiers(undefined);\n\n if (isNotEmpty(tiers)) {\n setTiers(tiers);\n }\n }, [getLtdTiers]);\n\n useEffect(() => {\n handleGetLtdTiers();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n if (isGettingLtdTiers || !tiers) {\n return (\n \n );\n }\n\n return (\n
    \n {!isMobile ? (\n
    \n
    \n
    \n
    \n
    \n
    \n {tiers.map(tier => (\n \n
    {tier.name}
    \n
    \n ))}\n
    \n
    \n {additionalLtdOptions?.map((option, index) => (\n
    \n
    \n {option.name}\n
    \n {fullTiersOptions?.map((item, itemIndex) => {\n return (\n \n {renderCell(item[index].type, item[index].value)}\n
    \n );\n })}\n
    \n ))}\n
    \n
    \n {tiers.map((tier, index) => {\n return tierNumberById[tier.id] === tierNumberById[user.ltdTierId] ? (\n \n
    Current Plan
    \n
    \n ) : (\n \n
    \n {\n handleUpgradeTier(tier.id);\n }}\n priority=\"primary\"\n disabled={\n tierNumberById[tier.id] < tierNumberById[user.ltdTierId]\n }\n />\n
    \n
    \n );\n })}\n
    \n
    \n \n \n ) : (\n <>\n setCurrentDisplayedTier(tierId)}\n />\n
    \n
    \n
    \n \n
    \n
    \n
    \n \n )}\n \n );\n};\n\nexport default LifeTimeDealScreen;\n","import React from 'react';\nimport { useSelector } from 'react-redux';\nimport { selectUser } from 'Utils/selectors';\nimport AppSumoActiveScreen from '../AppSumoActiveScreen';\nimport BillingDefaultPlanScreen from '../BillingDefaultPlanScreen';\nimport { User } from 'Interfaces/User';\nimport LifeTimeDealScreen from '../LifeTimeDealScreen';\n\nconst BillingPlan = () => {\n const { appSumoStatus, ltdTierId }: User = useSelector(selectUser);\n\n if (appSumoStatus) {\n return ;\n }\n\n if (ltdTierId) {\n return ;\n }\n\n return ;\n};\n\nexport default BillingPlan;\n","import { DocumentActivityTypes } from 'Interfaces/Document';\nimport CreatedIcon from 'Assets/images/activityTypeIcons/created-icon.svg';\nimport UpdatedIcon from 'Assets/images/activityTypeIcons/updated-icon.svg';\nimport SendIcon from 'Assets/images/activityTypeIcons/sent-icon.svg';\nimport ViewIcon from 'Assets/images/activityTypeIcons/viewed-icon.svg';\nimport SignIcon from 'Assets/images/activityTypeIcons/signed-icon.svg';\nimport CompleteIcon from 'Assets/images/activityTypeIcons/completed-icon.svg';\nimport RevertedIcon from 'Assets/images/activityTypeIcons/reverted-icon.svg';\nimport DeclinedIcon from 'Assets/images/activityTypeIcons/declined-icon.svg';\nimport ExpiredIcon from 'Assets/images/activityTypeIcons/expired-icon.svg';\n\nexport const documentActivityContentByType = {\n [DocumentActivityTypes.CREATE]: {\n icon: CreatedIcon,\n title: 'CREATED',\n },\n [DocumentActivityTypes.UPDATE]: {\n icon: UpdatedIcon,\n title: 'UPDATED',\n },\n [DocumentActivityTypes.SEND]: {\n icon: SendIcon,\n title: 'SENT',\n },\n [DocumentActivityTypes.VIEW]: {\n icon: ViewIcon,\n title: 'VIEWED',\n },\n [DocumentActivityTypes.SIGN]: {\n icon: SignIcon,\n title: 'SIGNED',\n },\n [DocumentActivityTypes.COMPLETE]: {\n icon: CompleteIcon,\n title: 'COMPLETED',\n },\n [DocumentActivityTypes.REVERT]: {\n icon: RevertedIcon,\n title: 'REVERTED',\n },\n [DocumentActivityTypes.DECLINE]: {\n icon: DeclinedIcon,\n title: 'DECLINED',\n },\n [DocumentActivityTypes.EXPIRE]: {\n icon: ExpiredIcon,\n title: 'EXPIRED',\n },\n [DocumentActivityTypes.NOT_SIGN]: {\n icon: DeclinedIcon,\n title: 'NOT SIGN',\n },\n};\n","import React from 'react';\nimport dayjs from 'dayjs';\nimport { DocumentActivity, DocumentActivityTypes } from 'Interfaces/Document';\nimport { useSelector } from 'react-redux';\nimport { selectUser } from 'Utils/selectors';\nimport { User } from 'Interfaces/User';\nimport { documentActivityContentByType } from '../constants';\n\ninterface DocumentActivityItemProps {\n documentActivity: DocumentActivity;\n}\n\nconst DocumentActivityItem = ({ documentActivity }: DocumentActivityItemProps) => {\n const user: User = useSelector(selectUser);\n const { type, signers, sourceIP, createdAt } = documentActivity;\n const { icon, title } = documentActivityContentByType[type];\n\n return (\n
  • \n
    \n {type}\n
    \n
    \n
    \n

    {title} At:

    \n

    \n {dayjs(createdAt).format('MMM DD, YYYY')}\n

    \n

    \n {dayjs(createdAt).format('HH:mm:ss [UTC]Z')}\n

    \n
    \n
    \n
    \n
      \n {signers &&\n !!signers.length &&\n signers.map(signer => (\n \n

      \n {signer.name && (\n <>\n {signer.name} \n {user.email === signer.email && (\n \n (you) \n \n )}\n \n | \n \n \n )}\n \n {signer.email}\n \n

      \n \n ))}\n {type === DocumentActivityTypes.COMPLETE && (\n
    • \n

      \n Document Completed\n

      \n
    • \n )}\n {type === DocumentActivityTypes.REVERT && (\n
    • \n

      \n Document Reverted to Draft\n

      \n
    • \n )}\n {type === DocumentActivityTypes.CREATE && (\n
    • \n

      \n Document Created\n

      \n
    • \n )}\n {type === DocumentActivityTypes.UPDATE && (\n
    • \n

      \n Document Updated\n

      \n
    • \n )}\n {type === DocumentActivityTypes.EXPIRE && (\n
    • \n

      \n Document Expired\n

      \n
    • \n )}\n {!!sourceIP && (\n
    • \n

      \n From IP: \n \n {sourceIP}\n \n

      \n
    • \n )}\n
    \n
    \n
  • \n );\n};\n\nexport default DocumentActivityItem;\n","import React from 'react';\nimport dayjs from 'dayjs';\nimport { DocumentActivity, DocumentActivityTypes } from 'Interfaces/Document';\nimport { useSelector } from 'react-redux';\nimport { selectUser } from 'Utils/selectors';\nimport { User } from 'Interfaces/User';\nimport { documentActivityContentByType } from '../constants';\n\ninterface DocumentActivityItemProps {\n documentActivity: DocumentActivity;\n}\n\nconst DocumentActivityItem = ({ documentActivity }: DocumentActivityItemProps) => {\n const user: User = useSelector(selectUser);\n const { type, signers, sourceIP, createdAt } = documentActivity;\n const { icon, title } = documentActivityContentByType[type];\n\n return (\n
  • \n
    \n
    \n {type}\n
    \n
    \n
    \n

    \n {title} At:\n

    \n

    \n {dayjs(createdAt).format('MMM DD, YYYY')}\n

    \n

    \n {dayjs(createdAt).format('HH:mm:ss [UTC]Z')}\n

    \n
    \n
    \n
    \n
    \n
      \n {signers &&\n !!signers.length &&\n signers.map(signer => (\n \n

      \n {signer.name && (\n <>\n {signer.name} \n {user.email === signer.email && (\n \n (you) \n \n )}\n \n | \n \n \n )}\n \n {signer.email}\n \n

      \n \n ))}\n {type === DocumentActivityTypes.COMPLETE && (\n
    • \n

      \n Document Completed\n

      \n
    • \n )}\n {type === DocumentActivityTypes.REVERT && (\n
    • \n

      \n Document Reverted to Draft\n

      \n
    • \n )}\n {type === DocumentActivityTypes.CREATE && (\n
    • \n

      \n Document Created\n

      \n
    • \n )}\n {type === DocumentActivityTypes.UPDATE && (\n
    • \n

      \n Document Updated\n

      \n
    • \n )}\n {type === DocumentActivityTypes.EXPIRE && (\n
    • \n

      \n Document Expired\n

      \n
    • \n )}\n {!!sourceIP && (\n
    • \n

      \n From IP: \n \n {sourceIP}\n \n

      \n
    • \n )}\n
    \n
    \n
  • \n );\n};\n\nexport default DocumentActivityItem;\n","import React from 'react';\nimport { ReactSVG } from 'react-svg';\nimport classNames from 'classnames';\nimport { makeStyles } from '@material-ui/styles';\nimport UISpinner from 'Components/UIComponents/UISpinner';\n\ninterface HeaderButtonProps {\n title?: string;\n icon: string;\n iconType?: 'stroke' | 'fill';\n onClick: () => Promise | void;\n disabled?: boolean;\n isLoading?: boolean;\n isMobile?: boolean;\n}\n\nconst useSpinnerClasses = makeStyles(() => ({\n wrapper: {\n borderRadius: '3px',\n },\n}));\n\nconst HeaderButton = ({\n title,\n icon,\n onClick,\n isLoading = false,\n disabled = false,\n iconType = 'stroke',\n isMobile,\n}: HeaderButtonProps) => {\n const spinnerClasses = useSpinnerClasses();\n\n return (\n \n {isLoading && (\n \n )}\n \n {title}\n \n );\n};\n\nexport default HeaderButton;\n","import React from 'react';\nimport UISpinner from 'Components/UIComponents/UISpinner';\nimport DocumentActivityItemMobile from './DocumentActivityItemMobile';\nimport { DocumentActivity } from 'Interfaces/Document';\nimport DownloadIcon from 'Assets/images/icons/doc-download-icon.svg';\nimport HeaderButton from './HeaderButton';\n\ninterface DocumentActivityListMobileViewProps {\n isLoadingDocumentActivities: boolean;\n canDownloadActivities: boolean;\n documentActivities: DocumentActivity[];\n handleDocumentActivitiesDownload: () => Promise;\n}\n\nconst DocumentActivityListMobileView = ({\n isLoadingDocumentActivities,\n documentActivities,\n canDownloadActivities,\n handleDocumentActivitiesDownload,\n}: DocumentActivityListMobileViewProps) => {\n return (\n
    \n
    \n

    \n Document Activity\n {canDownloadActivities && (\n \n )}\n

    \n
    \n {isLoadingDocumentActivities ? (\n \n ) : (\n <>\n {documentActivities.length ? (\n <>\n
    \n
    Activity
    \n
    \n
      \n {documentActivities.map(documentActivity => {\n return (\n \n );\n })}\n
    \n \n ) : (\n
    \n \n There is no activities for this document yet.\n \n
    \n )}\n \n )}\n
    \n
    \n
    \n );\n};\n\nexport default DocumentActivityListMobileView;\n","import React, { useState, useEffect, useCallback, useMemo } from 'react';\nimport { useLocation } from 'react-router';\nimport { useDocumentActivitiesGet } from 'Hooks/Document';\nimport Toast from 'Services/Toast';\nimport { isNotEmpty } from 'Utils/functions';\nimport { Document, DocumentActivity } from 'Interfaces/Document';\nimport DownloadIcon from 'Assets/images/icons/doc-download-icon.svg';\nimport SignIcon from 'Assets/images/icons/sign-icon.svg';\nimport UISpinner from 'Components/UIComponents/UISpinner';\nimport DocumentActivityItem from './DocumentActivityItem';\nimport DocumentActivityListMobileView from './DocumentActivityListMobileView';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport HeaderButton from './HeaderButton';\n\ninterface DocumentActivityListProps {\n documentId: Document['id'];\n canDownloadActivities: boolean;\n handleDocumentActivitiesDownload: () => Promise;\n isDownloading: boolean;\n isDocumentCompleted: boolean;\n}\n\nconst DocumentActivityList = ({\n documentId,\n canDownloadActivities,\n handleDocumentActivitiesDownload,\n isDownloading,\n isDocumentCompleted,\n}: DocumentActivityListProps) => {\n const location = useLocation();\n const [getDocumentActivities, isLoadingDocumentActivities] = useDocumentActivitiesGet();\n const [documentActivities, setDocumentActivities] = useState([]);\n const isMobile = useIsMobile();\n\n const isDownloadingEnable = useMemo(() => canDownloadActivities, [\n canDownloadActivities,\n ]);\n\n const handleDocumentActivitiesGet = useCallback(async documentId => {\n try {\n const activities = await getDocumentActivities({ documentId });\n\n if (isNotEmpty(activities)) {\n setDocumentActivities(activities);\n }\n } catch (error) {\n Toast.handleErrors(error);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n handleDocumentActivitiesGet(documentId);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [documentId]);\n\n useEffect(() => {\n if (location.hash) {\n const targetId = location.hash.substr(1);\n const targetElement = document.getElementById(targetId);\n\n targetElement &&\n targetElement.scrollIntoView({\n behavior: 'smooth',\n block: 'start',\n inline: 'start',\n });\n }\n }, [location.hash]);\n\n return isMobile ? (\n \n ) : (\n
    \n
    \n

    \n Document Activity\n {isDocumentCompleted && isDownloadingEnable && (\n \n )}\n

    \n
    \n {isLoadingDocumentActivities ? (\n \n ) : (\n <>\n {documentActivities.length ? (\n <>\n
    \n
    \n
    \n

    Date

    \n
    \n
    \n

    \n Actions\n

    \n
    \n
    \n
      \n {documentActivities.map(documentActivity => {\n return (\n \n );\n })}\n
    \n \n ) : (\n
    \n \n There is no activities for this document yet.\n \n
    \n )}\n \n )}\n
    \n
    \n
    \n );\n};\n\nexport default DocumentActivityList;\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { DocumentIdPayload } from 'Interfaces/Document';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: DocumentIdPayload) =>\n $actions.document.getDocumentActivities(dispatch, payload),\n );\n};\n","import { useAttachmentDownload } from 'Hooks/Common';\nimport { DocumentActivitiesDownloadPayload } from 'Interfaces/Document';\nimport { useCallback } from 'react';\nimport { isNotEmpty } from 'Utils/functions';\nimport useDocumentActivitiesDownloadUrlGet from './useDocumentActivitiesDownloadUrlGet';\n\ninterface DownloadDocumentActivities {\n (payload: DocumentActivitiesDownloadPayload): Promise;\n}\n\nexport default () => {\n const [\n getDocumentActivitiesDownloadUrl,\n isGettingDocumentActivitiesDownloadUrl,\n ] = useDocumentActivitiesDownloadUrlGet();\n const [downloadAttachment, isReady] = useAttachmentDownload();\n\n const downloadDocumentActivities = useCallback(\n async (payload: DocumentActivitiesDownloadPayload) => {\n const signedUrlResponse = await getDocumentActivitiesDownloadUrl(payload);\n\n if (isNotEmpty(signedUrlResponse)) {\n return downloadAttachment(signedUrlResponse.result);\n }\n\n throw new Error('Could not download document');\n },\n [downloadAttachment, getDocumentActivitiesDownloadUrl],\n ) as DownloadDocumentActivities;\n\n return [\n downloadDocumentActivities,\n isGettingDocumentActivitiesDownloadUrl,\n isReady,\n ] as const;\n};\n","import { useAsyncAction } from 'Hooks/Common';\nimport { DocumentActivitiesDownloadPayload } from 'Interfaces/Document';\nimport { useDispatch } from 'react-redux';\nimport { $actions } from 'Store';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: DocumentActivitiesDownloadPayload) =>\n $actions.document.getDocumentActivitiesDownloadUrl(dispatch, payload),\n );\n};\n","import { useCallback } from 'react';\nimport { useAttachmentDownload } from 'Hooks/Common';\nimport { DocumentSeparateSignPayload } from 'Interfaces/Document';\nimport { isNotEmpty } from 'Utils/functions';\nimport useDocumentSeparateDownloadUrlGet from './useDocumentSeparateDownloadUrlGet';\n\ninterface DownloadDocument {\n (payload: DocumentSeparateSignPayload): Promise;\n}\n\nexport default () => {\n const [\n getSeparateDocumentDownloadUrl,\n isGettingSeparateDocumentDownloadUrl,\n ] = useDocumentSeparateDownloadUrlGet();\n const [downloadAttachment, isReady] = useAttachmentDownload();\n\n const downloadDocument = useCallback(\n async (payload: DocumentSeparateSignPayload) => {\n const signedUrlResponse = await getSeparateDocumentDownloadUrl(payload);\n\n if (isNotEmpty(signedUrlResponse)) {\n return downloadAttachment(signedUrlResponse.result);\n }\n\n throw new Error('Could not download document');\n },\n [downloadAttachment, getSeparateDocumentDownloadUrl],\n ) as DownloadDocument;\n\n return [downloadDocument, isGettingSeparateDocumentDownloadUrl, isReady] as const;\n};\n","import { useAsyncAction } from 'Hooks/Common';\nimport { $actions } from 'Store';\nimport { useDispatch } from 'react-redux';\nimport { DocumentSeparateSignPayload } from 'Interfaces/Document';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: DocumentSeparateSignPayload) =>\n $actions.document.getSeparateDocumentDownloadUrl(dispatch, payload),\n );\n};\n","import React, { useEffect, useCallback, useState, useRef, useMemo } from 'react';\nimport { RouteChildrenProps } from 'react-router-dom';\nimport { useSelector } from 'react-redux';\nimport History from 'Services/History';\nimport Toast from 'Services/Toast';\nimport { Document, DocumentDownloadTypes, DocumentStatuses } from 'Interfaces/Document';\nimport { DocumentField } from 'Interfaces/DocumentFields';\nimport {\n useDocumentInteractInit,\n useDocumentGuard,\n useDocumentPrint,\n useDocumentDownload,\n} from 'Hooks/Document';\nimport { useDocumentFieldUpdateLocally } from 'Hooks/DocumentFields';\nimport { selectDocumentFields, selectDocument } from 'Utils/selectors';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport UISpinner from 'Components/UIComponents/UISpinner';\nimport FieldItem from 'Components/Interact/components/FieldItem';\nimport DownloadIcon from 'Assets/images/icons/doc-download-icon.svg';\nimport PrintIcon from 'Assets/images/icons/print-icon.svg';\nimport DocumentActivityList from './components/DocumentActivityList';\nimport { DocumentPreviewPage } from 'Components/DocumentPage';\nimport HeaderButton from './components/HeaderButton';\nimport classNames from 'classnames';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport useDocumentActivitiesDownload from 'Hooks/Document/useDocumentActivitiesDownload';\nimport useGetPdfMetadataFromDocumentPart from 'Hooks/Document/useGetPdfMetadataFromDocumentPart';\nimport DocumentFileKeyExtractor from 'Pages/Documents/DocumentFileKeyExtractor';\nimport { useDownloadFiles, useIsTablet } from 'Hooks/Common';\nimport useDocumentSeparateSign from 'Hooks/Document/useDocumentSeparateSign';\nimport useDocumentSeparateDownload from 'Hooks/Document/useDocumentSeparateDownload';\nimport useDocumentActivitiesSeparateSign from 'Hooks/Document/useDocumentActivitiesSeparateSign';\nimport { AuthorizedRoutePaths } from 'Interfaces/RoutePaths';\nimport { Document as PDFDocument, pdfjs } from 'react-pdf';\nimport ScaleDropDown from 'Components/Interact/components/ScaleDropDown';\n\ninterface DocumentParams {\n documentId: Document['id'];\n}\n\nconst sizes = {\n pageContainerWidth: window.innerWidth < 768 ? window.innerWidth : 955,\n pageMarginBottom: 20,\n};\n\nconst DocumentPreview = ({ match }: RouteChildrenProps) => {\n const isMobile = useIsMobile();\n const isTablet = useIsTablet();\n\n const documentId = useMemo(() => match?.params.documentId, [match]);\n const currentDocument = useSelector(state => selectDocument(state, { documentId }));\n const [_, documentFileKeyExtractorForDocument] = DocumentFileKeyExtractor();\n const [downloadDocuments, isDownloadingDocuments] = useDownloadFiles({\n fileExtractors: [documentFileKeyExtractorForDocument],\n });\n const isDownloadEnable = useMemo(\n () =>\n !!currentDocument &&\n (!!currentDocument?.resultPdfFileKey ||\n currentDocument.parts.filter(x => x.filesUploaded).length > 0),\n [currentDocument],\n );\n const isPrintEnable = useMemo(\n () =>\n currentDocument?.status !== DocumentStatuses.DRAFT &&\n (!!currentDocument?.resultPdfFileKey ||\n !!currentDocument?.resultDocumentPdfFileKey),\n [currentDocument],\n );\n\n const [signSeparateDocument, isSigningSeparateDocument] = useDocumentSeparateSign();\n const [downloadSeparateDocument] = useDocumentSeparateDownload();\n const [\n signSeparateDocumentActivities,\n isSigningSeparateDocumentActivities,\n ] = useDocumentActivitiesSeparateSign();\n const [downloadDocumentActivities] = useDocumentActivitiesDownload();\n const [downloadDocument, isDownloadingDocument] = useDocumentDownload();\n const [printPdf, isPdfLoading] = useDocumentPrint(currentDocument as Document);\n const [\n initDocumentInteract,\n isDocumentInteractInitializing,\n ] = useDocumentInteractInit();\n const documentFields: DocumentField[] = useSelector(selectDocumentFields);\n\n const [pdfUrl, setPdfUrl] = useState();\n\n const [pages, setPages] = useState<{ [key: string]: number }>({});\n let countOfPages = 0;\n\n const mainRef = useRef(null);\n const pagesContainerRef = useRef(null);\n const getPdfMetadata = useGetPdfMetadataFromDocumentPart(currentDocument as Document);\n const pdfMeta = useMemo(\n () =>\n currentDocument?.pdfMetadata ? currentDocument?.pdfMetadata : getPdfMetadata(),\n [currentDocument, getPdfMetadata],\n );\n const isDownloadActivitiesEnable = useMemo(() => {\n return (\n !!documentId &&\n currentDocument?.status === DocumentStatuses.COMPLETED &&\n !!currentDocument?.resultActivitiesPdfFileKey &&\n currentDocument?.downloadType === DocumentDownloadTypes.SEPARATED\n );\n }, [documentId, currentDocument, !!currentDocument?.resultActivitiesPdfFileKey]);\n\n const greaterWidthMetadata = useMemo(() => {\n return Object.values(pdfMeta).reduce(\n (greaterWidth, pageMetadata) => {\n return greaterWidth.width < pageMetadata.width ? pageMetadata : greaterWidth;\n },\n { width: 0 },\n );\n }, [pdfMeta]);\n\n const contentWidth = pagesContainerRef.current?.clientWidth || 0;\n\n const [documentScale, setDocumentScale] = useState(1);\n const [pagesInLoadingCount, setPagesInLoadingCount] = useState(0);\n\n const [offset, setOffset] = useState(0);\n\n const [scaleCoefficient, setScaleCoefficient] = useState(\n isMobile || isTablet ? 0.5 : 1,\n );\n\n const onScaleChange = (scale: number) => {\n setScaleCoefficient(scale);\n };\n\n const updateDocumentFieldLocally = useDocumentFieldUpdateLocally();\n\n const handleDocumentNotFound = useCallback(() => {\n Toast.error('Document does not exist', { toastId: 'document_not_found_error' });\n History.push(AuthorizedRoutePaths.DOCUMENTS);\n }, []);\n\n const handleSeparateDocumentDownload = useCallback(async () => {\n try {\n if (currentDocument?.id) {\n await downloadSeparateDocument({ documentId: currentDocument.id });\n }\n } catch (err) {\n Toast.handleErrors(err, { toastId: 'separated_download_error' });\n }\n }, [currentDocument, downloadSeparateDocument]);\n\n const handleDocumentDownload = useCallback(async () => {\n try {\n if (currentDocument?.id && currentDocument.resultPdfFileKey) {\n await downloadDocument({ documentId: currentDocument.id });\n } else if (currentDocument && isDownloadEnable) {\n await downloadDocuments([currentDocument]);\n }\n } catch (err) {\n Toast.handleErrors(err, { toastId: 'download_error' });\n }\n }, [currentDocument, isDownloadEnable, downloadDocument, downloadDocuments]);\n\n const isCheckingDocument = useDocumentGuard({\n documentId,\n onFailure: handleDocumentNotFound,\n });\n\n useEffect(() => {\n if (greaterWidthMetadata) {\n setDocumentScale(sizes.pageContainerWidth / greaterWidthMetadata.width);\n }\n }, [greaterWidthMetadata]);\n\n const handleGetConvertedDocument = useCallback(\n async (currentDocument: Document) => {\n try {\n const [pdfUrls] = await initDocumentInteract({ document: currentDocument });\n\n setPdfUrl(pdfUrls);\n } catch (error) {\n Toast.handleErrors(error);\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [],\n );\n\n const handleDocumentActivitiesDownload = useCallback(async () => {\n try {\n if (documentId) {\n await downloadDocumentActivities({ documentId });\n }\n } catch (error) {\n Toast.handleErrors(error, { toastId: 'activities_download_error' });\n }\n }, [documentId, downloadDocumentActivities]);\n\n useEffect(() => {\n if (currentDocument) {\n handleGetConvertedDocument(currentDocument);\n }\n }, [handleGetConvertedDocument, currentDocument]);\n\n const calculateDocumentFieldStyles = useCallback(\n (documentField: DocumentField) => {\n const pageOffset =\n (greaterWidthMetadata.width - pdfMeta[documentField.pageNumber].width) / 2;\n\n const updatedField = {\n ...documentField,\n style: {\n ...documentField.style,\n width: documentField.width as number,\n height: documentField.height as number,\n maxWidth: pdfMeta[documentField.pageNumber].width,\n maxHeight: pdfMeta[documentField.pageNumber].height,\n left: documentField.coordinateX + pageOffset,\n top: documentField.coordinateY,\n fontFamily: documentField.fontFamily || undefined,\n fontSize: documentField.fontSize ? documentField.fontSize : undefined,\n },\n };\n\n updateDocumentFieldLocally(updatedField);\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [updateDocumentFieldLocally, pagesContainerRef.current],\n );\n\n const handlePdfLoadSuccess = useCallback(\n (pdfDocumentProxy: pdfjs.PDFDocumentProxy, fileUrl: string) => {\n setPages(prev => {\n prev[fileUrl] = pdfDocumentProxy.numPages;\n return prev;\n });\n\n setPagesInLoadingCount(prev => prev + 1);\n },\n [],\n );\n\n useEffect(() => {\n if (pagesContainerRef.current) {\n documentFields.forEach(calculateDocumentFieldStyles);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [pagesContainerRef.current, calculateDocumentFieldStyles]);\n\n const initialDocumentWidth = greaterWidthMetadata.width * documentScale;\n\n useEffect(() => {\n const scrollBarWidth = scaleCoefficient < 1 ? initialDocumentWidth - contentWidth : 0;\n\n const offset =\n (initialDocumentWidth - initialDocumentWidth * scaleCoefficient - scrollBarWidth) /\n 2;\n\n const resultOffset = offset > 0 ? offset : 0;\n\n setOffset(resultOffset);\n }, [contentWidth, initialDocumentWidth, scaleCoefficient]);\n\n if (isCheckingDocument) {\n return ;\n }\n\n return (\n
    \n \n \n \n {isMobile && isDownloadEnable ? (\n
    \n
    \n {isDownloadEnable &&\n currentDocument?.status === DocumentStatuses.COMPLETED && (\n \n )}\n
    \n
    \n ) : (\n <>\n

    Document Preview

    \n
    \n \n
    \n
    \n
    \n {isDownloadEnable &&\n currentDocument?.status === DocumentStatuses.COMPLETED && (\n \n )}\n {isPrintEnable && (\n \n )}\n
    \n History.push(AuthorizedRoutePaths.DOCUMENTS)}\n />\n
    \n \n )}\n \n {isDocumentInteractInitializing ? (\n
    \n \n
    \n ) : (\n \n = 1\n ? greaterWidthMetadata.width * documentScale * scaleCoefficient\n : undefined,\n }}\n >\n {pdfUrl &&\n pdfUrl.map((file, index) => (\n handlePdfLoadSuccess(proxy, file)}\n externalLinkTarget={'_blank'}\n >\n {Object.keys(pages).length === pdfUrl.length ? (\n Array.from({ length: pages[file] }, (_, i) => i + 1).map(\n (pageNumber, pageIndex) => (\n \n {currentDocument?.status !== DocumentStatuses.COMPLETED &&\n documentFields\n .filter(field => field.pageNumber === countOfPages)\n .map(field => (\n {}}\n isResizable={false}\n />\n ))}\n \n ),\n )\n ) : (\n <>\n Loading PDF..\n
    \n \n )}\n \n ))}\n
    \n \n )}\n \n \n {documentId && (\n \n )}\n \n );\n};\n\nexport default DocumentPreview;\n","import { useAsyncAction } from 'Hooks/Common';\nimport { $actions } from 'Store';\nimport { useDispatch } from 'react-redux';\nimport { DocumentSeparateSignPayload } from 'Interfaces/Document';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: DocumentSeparateSignPayload) =>\n $actions.document.signSeparateDocument(dispatch, payload),\n );\n};\n","import { useAsyncAction } from 'Hooks/Common';\nimport { $actions } from 'Store';\nimport { useDispatch } from 'react-redux';\nimport { DocumentSeparateSignPayload } from 'Interfaces/Document';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: DocumentSeparateSignPayload) =>\n $actions.document.signSeparateDocumentActivities(dispatch, payload),\n );\n};\n","import { useCallback, useState, useEffect } from 'react';\nimport { SignedUrlResponse } from 'Interfaces/Common';\nimport { Document, DocumentDownloadTypes, DocumentStatuses } from 'Interfaces/Document';\nimport { useSignedGetUrl } from 'Hooks/User';\nimport { useDownloadFileByUrl } from 'Hooks/Requisite';\nimport { usePrint } from 'Hooks/Common';\n\ninterface PrintDocument {\n (): void;\n}\n\nexport default (documentItem: Document) => {\n const [getSignedGetUrl] = useSignedGetUrl();\n const [isDocumentUpdated, setIsDocumentUpdated] = useState(false);\n const [pdfUrl, setPdfUrl] = useState();\n const [downloadFile, isDownloading] = useDownloadFileByUrl();\n const printFile = usePrint();\n\n useEffect(() => {\n setIsDocumentUpdated(true);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [documentItem]);\n\n const handleGetUrl = useCallback(async (): Promise => {\n if (isDocumentUpdated) {\n const documentFileKey = (documentItem.status === DocumentStatuses.COMPLETED\n ? documentItem.downloadType === DocumentDownloadTypes.MERGED\n ? documentItem.resultPdfFileKey\n : documentItem.resultDocumentPdfFileKey\n : documentItem.pdfFileKey) as string;\n\n const signedUrl = (await getSignedGetUrl({\n key: documentFileKey,\n })) as SignedUrlResponse;\n\n const file = await downloadFile(signedUrl.result);\n\n const url = URL.createObjectURL(new Blob([file], { type: 'application/pdf' }));\n\n setPdfUrl(URL.createObjectURL(new Blob([file], { type: 'application/pdf' })));\n setIsDocumentUpdated(false);\n return url;\n }\n\n return pdfUrl as string;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [documentItem, downloadFile, isDocumentUpdated, pdfUrl]);\n\n const handlePrintFile = useCallback(async () => {\n const url = await handleGetUrl();\n\n printFile(url);\n }, [handleGetUrl, printFile]);\n\n return [handlePrintFile, isDownloading] as [PrintDocument, boolean];\n};\n","import UIButton from 'Components/UIComponents/UIButton';\nimport { AppSumoStatus, PlanTypes } from 'Interfaces/Billing';\nimport { SelectableItem } from 'Interfaces/Common';\nimport { TeamMember } from 'Interfaces/Team';\nimport { User, UserRoles } from 'Interfaces/User';\nimport { Billet } from 'Pages/Settings/Company/components';\nimport React from 'react';\nimport { TeamMembersList } from './components';\n\ninterface TeamScreenMobileViewProps {\n user: User;\n teamMembers: SelectableItem[];\n isLoading: boolean;\n isBusiness: boolean;\n isSubscriptionDataLoading: boolean;\n isDeleteModalOpen: boolean;\n openDeleteModal: () => void;\n onAddTeamMember: () => void;\n toggleItemSelection?: (teamMemberId: string) => void;\n}\n\nexport const TeamScreenMobileView = ({\n user,\n teamMembers,\n isLoading,\n isBusiness,\n isSubscriptionDataLoading,\n isDeleteModalOpen,\n onAddTeamMember,\n openDeleteModal,\n toggleItemSelection,\n}: TeamScreenMobileViewProps) => {\n return (\n
    \n
    \n
    \n
    \n

    Team

    \n {!isBusiness && }\n
    \n
    \n Add your team members to your Signaturely account to allow them to request\n signatures, create documents, and much more.\n
    \n
    \n
    \n
    \n \n
    \n \n {user.appSumoStatus === AppSumoStatus.STANDARD && (\n
    \n Your current lifetime deal includes 3 users. If you require more seats, they can\n be added through our subscription plans.\n
    \n )}\n
    \n );\n};\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { useSelector } from 'react-redux';\nimport {\n selectTeamMembers,\n selectUser,\n selectSubscriptionInfo,\n selectLtdTier,\n} from 'Utils/selectors';\nimport { useSelectableItem, useModal, useDataOrdering } from 'Hooks/Common';\nimport useTeamMembersGet from 'Hooks/Team/useTeamMembersGet';\nimport useTeamMembersDelete from 'Hooks/Team/useTeamMembersDelete';\nimport useTeamMembersAdd from 'Hooks/Team/useTeamMembersAdd';\nimport { useCardGet, useLtdTierGet, useSubscriptionDataGet } from 'Hooks/Billing';\nimport Toast from 'Services/Toast';\nimport { TeamMembersAddPayload } from 'Interfaces/Team';\nimport { UserRoles, User } from 'Interfaces/User';\nimport { AppSumoStatus, LtdTypes, PlanTypes } from 'Interfaces/Billing';\nimport { OrderingDirection } from 'Interfaces/Common';\n\nimport UIButton from 'Components/UIComponents/UIButton';\nimport UIModal from 'Components/UIComponents/UIModal';\nimport { DeleteTeammateModal, TeamMembersAddModal, TeamMembersList } from './components';\nimport AdditionalTeamMembersAddModal from './components/AdditionalTeamMembersAddModal';\nimport { Billet } from 'Pages/Settings/Company/components';\nimport { TeamScreenMobileView } from './TeamScreenMobileView';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport LtdUpgradePlanModal from 'Pages/Settings/Billing/components/modals/LtdUpgradePlanModal';\nimport { isNotEmpty } from 'Utils/functions';\nimport { useCurrentUserGet } from 'Hooks/User';\nimport { APPSUMO_STANDARD_TEAM_LIMIT } from 'Utils/constants';\n\nconst TeamScreen = () => {\n const user: User = useSelector(selectUser);\n const subscriptionInfo = useSelector(selectSubscriptionInfo);\n const ltdTier = useSelector(selectLtdTier);\n const [getSubscriptionData, isSubscriptionDataLoading] = useSubscriptionDataGet();\n const [getTeamMembers, isFetchLoading] = useTeamMembersGet();\n const [deleteTeamMembers, isDeleteLoading] = useTeamMembersDelete();\n const [addTeamMembers] = useTeamMembersAdd();\n const [getLtdTier] = useLtdTierGet();\n const teamMembers = useSelector(selectTeamMembers);\n const [selectableTeamMembers, toggleItemSelection, selectedItems] = useSelectableItem(\n teamMembers,\n 'id',\n );\n const [getCard, isGettingCard] = useCardGet();\n const [getCurrentUser] = useCurrentUserGet();\n\n const isMobile = useIsMobile();\n const [futureTeamMembers, setFutureTeamMembers] = useState();\n\n const [teamLimit, ltdType] = useMemo(() => {\n if (isNotEmpty(ltdTier)) {\n const teamLimit =\n ltdTier.teammatesLimit === -1 ? undefined : ltdTier.teammatesLimit;\n return [teamLimit, LtdTypes.TIER];\n }\n\n if (user.appSumoStatus === AppSumoStatus.STANDARD) {\n return [APPSUMO_STANDARD_TEAM_LIMIT, LtdTypes.APPSUMO];\n }\n\n return [undefined, LtdTypes.NONE];\n }, [ltdTier, user.appSumoStatus]);\n\n const { requestOrdering, orderingConfig } = useDataOrdering(teamMembers, {\n key: 'role',\n direction: OrderingDirection.DESC,\n });\n\n const handleSubscriptionInfoGet = useCallback(async () => {\n try {\n await getSubscriptionData(undefined);\n } catch (error) {\n Toast.handleErrors(error);\n }\n }, [getSubscriptionData]);\n\n const handleTeamMembersGet = useCallback(async () => {\n try {\n const { key, direction } = orderingConfig;\n\n await getTeamMembers({\n orderingKey: key,\n orderingDirection: direction.toUpperCase(),\n });\n } catch (error) {\n Toast.handleErrors(error);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [orderingConfig]);\n\n const handleDeleteTeamMembers = useCallback(async () => {\n const teamMembersIds = selectedItems.map(item => item.id);\n try {\n await deleteTeamMembers(teamMembersIds);\n\n Toast.success('Team member deleted successfully');\n } catch (error) {\n Toast.handleErrors(error);\n }\n }, [selectedItems, deleteTeamMembers]);\n\n const [showDeleteModal, hideDeleteModal, isDeleteModalOpen] = useModal(\n () => (\n \n ),\n [handleDeleteTeamMembers],\n );\n\n const handleAddAppSumoTeamMembersSubmit = useCallback(async () => {\n try {\n if (futureTeamMembers) {\n await addTeamMembers(futureTeamMembers);\n Toast.success('Invites sent successfully');\n }\n } catch (error) {\n Toast.handleErrors(error);\n }\n }, [addTeamMembers, futureTeamMembers]);\n\n const [showLtdUpgradePlanModal, hideLtdUpgradePlanModal] = useModal(\n () => (\n \n ),\n [handleAddAppSumoTeamMembersSubmit],\n );\n\n const [showPlanUpgradeModal, hidePlanUpgradeModal] = useModal(\n () => (\n \n setFutureTeamMembers(values)\n }\n showBillingModal={showLtdUpgradePlanModal}\n teamLimit={teamLimit}\n ltdType={ltdType}\n />\n ),\n [subscriptionInfo, user.plan],\n );\n\n const handleAddTeamMembersSubmit = useCallback(\n async (values: TeamMembersAddPayload) => {\n try {\n if (\n teamLimit &&\n ltdType !== LtdTypes.NONE &&\n !isNotEmpty(subscriptionInfo) &&\n values.members.length > teamLimit\n ) {\n await addTeamMembers({ members: values.members.slice(0, teamLimit) });\n Toast.success(`Invites sent successfully for ${teamLimit} first team members`);\n setFutureTeamMembers({ members: values.members.slice(teamLimit) });\n showLtdUpgradePlanModal();\n } else {\n await addTeamMembers(values);\n Toast.success('Invites sent successfully');\n }\n } catch (error) {\n Toast.handleErrors(error);\n }\n },\n [addTeamMembers, ltdType, showLtdUpgradePlanModal, subscriptionInfo, teamLimit],\n );\n\n const [showAddMemberModal, hideAddMemberModal] = useModal(\n () => (\n \n \n \n ),\n [subscriptionInfo, user.plan],\n );\n\n const handleTeamMembersAdd = useCallback(async () => {\n const currentUser = (await getCurrentUser(undefined)) as User;\n\n if (\n ltdType !== LtdTypes.NONE &&\n teamLimit &&\n teamMembers.length >= teamLimit &&\n !currentUser.subscriptionId\n ) {\n showPlanUpgradeModal();\n } else {\n showAddMemberModal();\n }\n }, [\n getCurrentUser,\n ltdType,\n showAddMemberModal,\n showPlanUpgradeModal,\n teamLimit,\n teamMembers.length,\n ]);\n\n const handleGetLtdTier = useCallback(async () => {\n await getLtdTier({ ltdId: user.ltdTierId });\n }, [getLtdTier, user.ltdTierId]);\n\n useEffect(() => {\n handleTeamMembersGet();\n handleSubscriptionInfoGet();\n handleGetLtdTier();\n getCard(undefined);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [handleTeamMembersGet]);\n\n const openDeleteModal = useCallback(() => {\n if (selectedItems.length) {\n showDeleteModal();\n }\n }, [selectedItems.length, showDeleteModal]);\n\n return isMobile ? (\n \n ) : (\n
    \n
    \n
    \n
    \n

    Team

    \n {user.plan.type !== PlanTypes.BUSINESS && !user.teamId && (\n \n )}\n
    \n
    \n Add your team members to your Signaturely account to allow them to request\n signatures, create documents, and much more.\n
    \n
    \n
    \n \n
    \n
    \n \n {[LtdTypes.APPSUMO, LtdTypes.TIER].includes(ltdType) && (\n
    \n Your current lifetime deal includes {teamLimit} users. If you require more\n seats, they can be added through our subscription plans.\n
    \n )}\n
    \n );\n};\n\nexport default TeamScreen;\n","import UIButton from 'Components/UIComponents/UIButton';\nimport { useInviteAccepting, useTeamJoin } from 'Hooks/Team';\nimport { AuthorizedRoutePaths } from 'Interfaces/RoutePaths';\nimport History from 'Services/History';\nimport { DataLayerAnalytics } from 'Services/Integrations';\nimport Toast from 'Services/Toast';\nimport jwt_decode from 'jwt-decode';\nimport React, { useCallback, useEffect, useMemo } from 'react';\nimport { RouteChildrenProps } from 'react-router-dom';\n\ninterface PageParams {\n teamId: string;\n}\n\nconst InviteAcceptPage = ({ location, match }: RouteChildrenProps) => {\n const [initInviteAccepting, finishInviteAccepting] = useInviteAccepting();\n const [acceptInvite, isLoading] = useTeamJoin();\n\n const { signToken, teamId } = useMemo(() => {\n const searchParams = new URLSearchParams(location.search);\n const teamId = match?.params.teamId;\n\n return {\n signToken: searchParams.get('invitationToken'),\n teamId,\n };\n }, [location.search, match]);\n\n const navigateToRoot = useCallback(() => {\n History.replace(AuthorizedRoutePaths.BASE_PATH);\n }, []);\n\n const handleInviteAccept = useCallback(\n async (teamId: string, userId: string) => {\n try {\n await acceptInvite({ teamId });\n DataLayerAnalytics.fireConfirmedRegistrationEvent(userId);\n Toast.success('Invite accepted.');\n } catch (error) {\n Toast.error(\n error.message ??\n 'Unable to upgrade subscription. Please contact the team owner.',\n );\n navigateToRoot();\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [],\n );\n\n useEffect(() => {\n if (!signToken || !teamId) {\n return navigateToRoot();\n }\n\n const parsedToken: any = jwt_decode(signToken);\n\n initInviteAccepting({ token: signToken });\n handleInviteAccept(teamId, parsedToken.sub);\n\n return () => finishInviteAccepting();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [finishInviteAccepting, initInviteAccepting, navigateToRoot, signToken]);\n\n return (\n
    \n
    \n

    You have been joined to team

    \n
    \n \n
    \n
    \n
    \n );\n};\n\nexport default InviteAcceptPage;\n","import { useCallback } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { rootActions } from 'Store';\nimport { TokenPayload } from 'Interfaces/User';\n\ninterface InitInviteAccepting {\n (payload: TokenPayload): void;\n}\n\ninterface FinishInviteAccepting {\n (): void;\n}\n\nexport default () => {\n const dispatch = useDispatch();\n\n const initInviteAccepting: InitInviteAccepting = useCallback(\n (payload: TokenPayload) => {\n dispatch(rootActions.team.initInviteAccepting(payload));\n },\n [dispatch],\n );\n\n const finishInviteAccepting: FinishInviteAccepting = useCallback(() => {\n dispatch(rootActions.team.finishInviteAccepting());\n }, [dispatch]);\n\n return [initInviteAccepting, finishInviteAccepting] as const;\n};\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { TeamIdPayload } from 'Interfaces/Team';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: TeamIdPayload) =>\n $actions.team.acceptInvite(dispatch, payload),\n );\n};\n","import React from 'react';\nimport EmptyTable from 'Components/EmptyTable';\nimport History from 'Services/History';\nimport TeamIcon from 'Assets/images/icons/team-empty-icon.svg';\nimport { UnauthorizedRoutePaths } from 'Interfaces/RoutePaths';\n\nconst ForbiddenAccessTable = () => (\n {\n History.push(UnauthorizedRoutePaths.BASE_PATH);\n }}\n headerText=\"Oops! You don’t have access.\"\n description=\"Your account is part of a Signaturely team account. Please contact with your team administrator to perform updates on these settings.\"\n />\n);\n\nexport default ForbiddenAccessTable;\n","import SignIcon from 'Assets/images/icons/sign-icon.svg';\nimport DocumentsIcon from 'Assets/images/icons/documents-icon.svg';\nimport TemplatesIcon from 'Assets/images/icons/templates-icon.svg';\nimport TeamIcon from 'Assets/images/icons/team-icon.svg';\nimport SettingsIcon from 'Assets/images/icons/settings-icon.svg';\nimport IntegrationsIcon from 'Assets/images/icons/integrations-icon.svg';\nimport FormsIcon from 'Assets/images/icons/forms-icon.svg';\nimport { AuthorizedRoutePaths } from 'Interfaces/RoutePaths';\n\ninterface SubLink {\n subPath: string;\n freePlanSubPath?: string;\n label: string;\n status?: string;\n externalUrl?: string;\n}\n\ninterface SideBarItem {\n path: string;\n classNameMod: string;\n label: string;\n icon: string;\n subLinks: SubLink[];\n iconClassName?: string;\n}\n\nexport const sidebarItems: SideBarItem[] = [\n {\n path: AuthorizedRoutePaths.SIGN,\n classNameMod: 'stroke',\n label: 'Sign',\n icon: SignIcon,\n subLinks: [],\n },\n {\n path: AuthorizedRoutePaths.DOCUMENTS,\n classNameMod: 'fill',\n label: 'Documents',\n icon: DocumentsIcon,\n subLinks: [\n {\n subPath: `${AuthorizedRoutePaths.DOCUMENTS}/completed`,\n label: 'Completed',\n status: 'completed',\n },\n {\n subPath: `${AuthorizedRoutePaths.DOCUMENTS}/awaiting`,\n label: 'Awaiting Signature',\n status: 'awaiting',\n },\n {\n subPath: `${AuthorizedRoutePaths.DOCUMENTS}/voided`,\n label: 'Voided',\n status: 'declined',\n },\n {\n subPath: `${AuthorizedRoutePaths.DOCUMENTS}/draft`,\n label: 'Draft',\n status: 'draft',\n },\n {\n subPath: `${AuthorizedRoutePaths.DOCUMENTS}/received`,\n label: 'Received',\n status: 'received',\n },\n {\n subPath: `${AuthorizedRoutePaths.DOCUMENTS}/trash`,\n label: 'Trash',\n status: 'trash',\n },\n ],\n },\n {\n path: `${AuthorizedRoutePaths.TEMPLATES}/active`,\n classNameMod: 'fill',\n label: 'Templates',\n icon: TemplatesIcon,\n subLinks: [\n {\n subPath: `${AuthorizedRoutePaths.TEMPLATES}/create`,\n label: 'Create Template',\n },\n {\n subPath: `${AuthorizedRoutePaths.TEMPLATES}/active`,\n label: 'Templates View',\n },\n {\n subPath: `${AuthorizedRoutePaths.TEMPLATES}/api`,\n label: 'API Templates',\n },\n ],\n },\n {\n path: AuthorizedRoutePaths.FORM_REQUESTS,\n classNameMod: 'stroke',\n label: 'Forms',\n icon: FormsIcon,\n subLinks: [\n {\n subPath: `${AuthorizedRoutePaths.FORM_REQUESTS}/active`,\n label: 'Live',\n status: 'completed',\n },\n {\n subPath: `${AuthorizedRoutePaths.FORM_REQUESTS}/draft`,\n label: 'Draft',\n status: 'draft',\n },\n ],\n },\n {\n path: AuthorizedRoutePaths.TEAM,\n classNameMod: 'stroke',\n label: 'Team',\n icon: TeamIcon,\n subLinks: [\n {\n subPath: `${AuthorizedRoutePaths.TEAM}/add-member`,\n label: 'Member view',\n },\n ],\n },\n {\n path: AuthorizedRoutePaths.INTEGRATIONS,\n classNameMod: 'stroke',\n label: 'Integrations',\n icon: IntegrationsIcon,\n subLinks: [],\n },\n {\n path: AuthorizedRoutePaths.SETTINGS,\n classNameMod: 'fill',\n label: 'Settings',\n icon: SettingsIcon,\n subLinks: [\n {\n subPath: AuthorizedRoutePaths.SETTINGS_COMPANY,\n label: 'Company',\n },\n {\n subPath: AuthorizedRoutePaths.SETTINGS_PROFILE,\n label: 'Profile',\n },\n /* {\n subPath: '/settings/api',\n label: 'API',\n }, */\n {\n subPath: AuthorizedRoutePaths.SETTINGS_EDIT_SIGNATURE,\n label: 'Edit Signature',\n },\n {\n subPath: AuthorizedRoutePaths.SETTINGS_BILLING,\n freePlanSubPath: AuthorizedRoutePaths.SETTINGS_BILLING_PLAN,\n label: 'Billing',\n },\n {\n subPath: '',\n label: 'Feedback',\n externalUrl: 'https://feedback.signaturely.com/',\n },\n {\n subPath: '',\n label: 'Share & Earn',\n externalUrl: 'https://refer.signaturely.com/',\n },\n ],\n },\n];\n","import React from 'react';\nimport { Accordion, AccordionItem } from 'react-sanfona';\nimport { ReactSVG } from 'react-svg';\nimport { NavLink } from 'react-router-dom';\nimport { Location } from 'history';\nimport { sidebarItems } from './SidebarItems';\nimport SelectIcon from 'Assets/images/icons/select-arrow-icon.svg';\nimport { useSelector } from 'react-redux';\nimport { selectUserPlan } from 'Utils/selectors';\nimport { PlanTypes } from 'Interfaces/Billing';\nimport classNames from 'classnames';\n\nexport interface SidebarProps {\n location: Location;\n}\n\nfunction Sidebar({ location }: SidebarProps) {\n const userPlan = useSelector(selectUserPlan);\n\n return (\n
    \n \n {sidebarItems.map((item, index) => {\n const { path, classNameMod, label, icon, subLinks, iconClassName } = item;\n const { pathname } = location;\n const isExpanded =\n pathname.startsWith(path) || subLinks.find(i => i.subPath === pathname);\n const isSubLinks = subLinks.length > 0;\n\n return (\n \n
    \n \n {label}\n
    \n {isSubLinks && (\n \n )}\n \n }\n expanded={isExpanded}\n titleClassName=\"sidebar__item-title\"\n className=\"sidebar__item\"\n expandedClassName=\"sidebar__item--expanded\"\n >\n {!!subLinks.length && (\n
    \n {subLinks.map((item, index) => {\n const { subPath, label, status, externalUrl, freePlanSubPath } = item;\n const path =\n (userPlan.type === PlanTypes.FREE && freePlanSubPath) || subPath;\n const className = `sidebar__item-link ${\n status\n ? `sidebar__item-link-status sidebar__item-link-status--${status}`\n : ''\n }`;\n return externalUrl ? (\n \n {label}\n \n ) : (\n \n {label}\n \n );\n })}\n
    \n )}\n \n );\n })}\n
    \n
    \n );\n}\n\nexport default Sidebar;\n","import React from 'react';\nimport { WrapperProps } from 'Interfaces/Common';\n\nimport Sidebar from 'Components/Sidebar';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport classNames from 'classnames';\n\nconst SidebarSubLayout = ({ location, children }: WrapperProps) => {\n const isMobile = useIsMobile();\n\n return (\n
    \n {!isMobile && (\n
    \n \n
    \n )}\n
    {children}
    \n
    \n );\n};\n\nexport default SidebarSubLayout;\n","import React from 'react';\nimport { WrapperProps } from 'Interfaces/Common';\n\nexport const DocumentPreviewSubLayout = ({ children }: WrapperProps) => {\n return
    {children}
    ;\n};\n","import { useEffect } from 'react';\nimport { useLocation } from 'react-router-dom';\n\nexport default function ScrollToTop() {\n const { pathname } = useLocation();\n\n useEffect(() => {\n window.scrollTo(0, 0);\n }, [pathname]);\n\n return null;\n}\n","import { useEffect } from 'react';\nimport { UPVOTY_PUBLIC_KEY } from 'Utils/constants';\n\nexport default (email: string, name: string, id: string) => {\n useEffect(() => {\n if (!email || !name || !id) return;\n\n // Beacon\n const beacon = document.createElement('script');\n beacon.type = 'text/javascript';\n beacon.id = 'upvoty-beacon';\n beacon.async = true;\n\n beacon.src = 'https://signaturely.upvoty.com/javascript/upvoty.embed.js';\n beacon.onload = function() {\n //@ts-ignore\n // eslint-disable-next-line no-undef\n const upvoty = window.upvoty;\n\n const settings = {\n user: {\n id,\n name,\n email,\n },\n baseUrl: 'feedback.signaturely.com',\n publicKey: UPVOTY_PUBLIC_KEY,\n };\n\n upvoty.init('identify', settings);\n };\n if (document.getElementById('upvoty-beacon') == null) {\n document.body.appendChild(beacon);\n }\n }, [email, id, name]);\n};\n","import { BingTrackerType } from './interfaces';\n\nclass BingTracker implements BingTrackerType {\n fireRegistrationEvent = () => {\n try {\n //@ts-ignore\n // eslint-disable-next-line no-undef\n window.uetq = window.uetq || [];\n //@ts-ignore\n // eslint-disable-next-line no-undef\n window.uetq.push('event', 'Form filled', {\n event_category: 'Form submission',\n event_label: 'Signup',\n });\n } catch (error) {\n console.log(error);\n }\n };\n\n firePageChangeEvent = (path: string) => {\n try {\n //@ts-ignore\n // eslint-disable-next-line no-undef\n window.uetq = window.uetq || [];\n //@ts-ignore\n // eslint-disable-next-line no-undef\n window.uetq.push('event', 'page_view', { page_path: path });\n } catch (error) {\n console.log(error);\n }\n };\n}\n\nexport default new BingTracker();\n","import { useEffect } from 'react';\nimport { useLocation } from 'react-router-dom';\nimport Bing from 'Services/Integrations/Analytics/Bing';\n\nexport const PageTracker = () => {\n const { pathname } = useLocation();\n\n useEffect(() => {\n Bing.firePageChangeEvent(pathname);\n }, [pathname]);\n return null;\n};\n\nexport default PageTracker;\n","import React, { useMemo, useState, useCallback, useEffect } from 'react';\nimport UIModal from 'Components/UIComponents/UIModal';\nimport { Signer, Document } from 'Interfaces/Document';\nimport * as _ from 'lodash';\nimport { ReactSVG } from 'react-svg';\nimport UITextInput from 'Components/UIComponents/UITextInput';\nimport Toast from 'Services/Toast';\nimport IconCopy from 'Assets/images/icons/copy-icon.svg';\n\ninterface SigningLinkModalProps {\n onClose: () => void;\n link: string;\n title: string;\n subtitle: string;\n}\n\nconst ShareFormModal = ({ onClose, link, title, subtitle }: SigningLinkModalProps) => {\n const [isCopied, setIsCopied] = useState(false);\n\n const handleShareUrlCopy = useCallback(async () => {\n try {\n if (!link) return;\n\n await navigator.clipboard.writeText(link);\n\n setIsCopied(true);\n } catch (err) {\n Toast.handleErrors(err);\n }\n }, [link]);\n\n return (\n \n
    \n
    \n

    {title}

    \n

    {subtitle}

    \n
    \n\n
    \n \n \n
    \n \n \n {!isCopied ? 'COPY' : 'COPIED'}\n \n
    \n \n \n
    \n
    \n );\n};\n\nexport default ShareFormModal;\n","import React from 'react';\nimport * as _ from 'lodash';\nimport DownloadIcon from 'Assets/images/icons/download-icon.svg';\nimport IconRemove from 'Assets/images/icons/remove-icon.svg';\nimport { ReactSVG } from 'react-svg';\nimport IconEye from 'Assets/images/icons/eye-icon.svg';\nimport IconKey from 'Assets/images/icons/key-icon.svg';\nimport { Document } from 'Interfaces/Document';\n\ninterface SubmittedContractsMobileViewProps {\n contracts: any[];\n handleDocumentDownload: (documentId: string) => void;\n handleCopyCodeAccess: (document: Document) => void;\n navigateToPreview: (documentId: string) => void;\n openDeleteModal: (documentId: string) => void;\n}\n\nconst SubmittedContractsMobileView = ({\n contracts,\n handleDocumentDownload,\n handleCopyCodeAccess,\n navigateToPreview,\n openDeleteModal,\n}: SubmittedContractsMobileViewProps) => {\n return (\n
    \n
    \n
    \n
    \n NAME\n
    \n
    \n ACTIONS\n
    \n
    \n\n {contracts.map(contract => {\n return (\n
    \n
    \n
    \n
    \n

    {contract.name}

    \n
    \n
    \n {contract.email}\n
    \n
    \n \n \n {contract.document.status}\n \n
    \n
    \n
    \n
    \n
    \n
    \n handleDocumentDownload(contract.document.id)}\n >\n \n
    \n navigateToPreview(contract.document.id)}\n >\n \n
    \n {contract.document.codeAccess && (\n handleCopyCodeAccess(contract.document)}\n >\n \n
    \n )}\n openDeleteModal(contract.document.id)}\n className=\"tableControls__control tableControls__control--red\"\n >\n \n \n
    \n \n \n );\n })}\n \n \n );\n};\n\nexport default SubmittedContractsMobileView;\n","import React, { useMemo, useState, useCallback, useEffect } from 'react';\nimport { useSelector } from 'react-redux';\nimport UIModal from 'Components/UIComponents/UIModal';\nimport { Document, DocumentStatuses } from 'Interfaces/Document';\nimport * as _ from 'lodash';\nimport UISpinner from 'Components/UIComponents/UISpinner';\nimport { useDocumentsDelete, useFormRequestGetContracts } from 'Hooks/Document';\nimport { selectFormRequestsContracts } from 'Utils/selectors';\nimport EmptyTable from 'Components/EmptyTable';\nimport DownloadIcon from 'Assets/images/icons/download-icon.svg';\nimport IconRemove from 'Assets/images/icons/remove-icon.svg';\nimport Toast from 'Services/Toast';\nimport { useDocumentDownload } from 'Hooks/Document';\nimport { ReactSVG } from 'react-svg';\nimport DeleteModal from 'Components/DeleteModal';\nimport { useModal } from 'Hooks/Common';\nimport IconEye from 'Assets/images/icons/eye-icon.svg';\nimport IconKey from 'Assets/images/icons/key-icon.svg';\nimport HistoryService from 'Services/History';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport classNames from 'classnames';\nimport SubmittedContractsMobileView from './SubmittedContractsMobileView';\nimport { AuthorizedRoutePaths } from 'Interfaces/RoutePaths';\n\ninterface SigningLinkModalProps {\n documentId: Document['id'];\n onClose: () => void;\n}\n\nconst SubmittedContractsModal = ({ onClose, documentId }: SigningLinkModalProps) => {\n const [getFormRequestContracts, isGettingContracts] = useFormRequestGetContracts();\n const [deleteDocuments, isDeleteLoading] = useDocumentsDelete();\n const [deleteDocumentId, setDeleteDocumentId] = useState('');\n const isMobile = useIsMobile();\n\n const contracts = useSelector(selectFormRequestsContracts);\n\n const [downloadDocument, isDownloadingDocument] = useDocumentDownload();\n\n const handleDocumentDownload = useCallback(\n async documentId => {\n try {\n await downloadDocument({ documentId });\n } catch (err) {\n Toast.handleErrors(err);\n }\n },\n [downloadDocument],\n );\n\n const handleDeleteDocuments = async () => {\n await deleteDocuments([deleteDocumentId]);\n getFormRequestContracts({ documentId });\n };\n\n const [showDeleteModal, hideDeleteModal, isDeleteModalOpen] = useModal(\n () => (\n {\n handleDeleteDocuments();\n hideDeleteModal();\n }}\n className=\"documents__deleteWrapper\"\n >\n
    \n
    \n Are you sure want to delete this document?\n
    \n

    \n Deleting this document will completely remove it. This cannot be undone.\n

    \n
    \n \n ),\n [handleDeleteDocuments],\n );\n\n const openDeleteModal = (documentId: string) => {\n setDeleteDocumentId(documentId);\n showDeleteModal();\n };\n\n const navigateToPreview = useCallback(documentId => {\n HistoryService.push(`${AuthorizedRoutePaths.DOCUMENTS}/${documentId}/preview`);\n }, []);\n useEffect(() => {\n getFormRequestContracts({ documentId });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handleCopyCodeAccess = useCallback(async (document: Document) => {\n try {\n if (document.codeAccess) {\n await navigator.clipboard.writeText(document.codeAccess);\n Toast.success('Copied to clipboard');\n }\n } catch (err) {\n Toast.handleErrors(err);\n }\n }, []);\n\n return (\n \n
    \n
    \n

    Submitted Contracts

    \n

    \n
    \n\n {isGettingContracts && (\n
    \n \n
    \n )}\n {contracts.length === 0 && !isGettingContracts && (\n
    \n \n
    \n )}\n {!!contracts.length &&\n !isGettingContracts &&\n (isMobile ? (\n \n ) : (\n
    \n
    \n
    \n
    \n SIGNER NAME\n
    \n
    EMAIL
    \n
    STATUS
    \n
    \n ACTIONS\n
    \n
    \n\n {contracts.map(contract => {\n return (\n
    \n
    \n
    \n

    {contract.name}

    \n
    \n
    \n
    \n {contract.email}\n
    \n
    \n \n \n {contract.document.status}\n \n
    \n
    \n
    \n
    \n \n contract.document.status === DocumentStatuses.COMPLETED &&\n handleDocumentDownload(contract.document.id)\n }\n >\n \n
    \n navigateToPreview(contract.document.id)}\n >\n \n
    \n {contract.document.codeAccess && (\n handleCopyCodeAccess(contract.document)}\n >\n \n
    \n )}\n openDeleteModal(contract.document.id)}\n className=\"tableControls__control tableControls__control--red\"\n >\n \n \n
    \n
    \n \n );\n })}\n \n \n ))}\n \n \n );\n};\n\nexport default SubmittedContractsModal;\n","import { useAsyncAction } from 'Hooks/Common';\nimport { $actions } from 'Store';\nimport { useDispatch } from 'react-redux';\nimport { ContractsPayload } from 'Interfaces/Contract';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: ContractsPayload) =>\n $actions.contracts.getFormRequestContracts(dispatch, payload),\n );\n};\n","import React from 'react';\nimport FieldTextInput from 'Components/FormFields/FieldTextInput';\nimport { Form, Field } from 'react-final-form';\nimport { required, maxLength100, notOnlySpaces } from 'Utils/validation';\nimport { OnSubmitReturnType } from 'Interfaces/FinalForm';\nimport { composeValidators } from 'Utils/functions';\n\ninterface RenameTitleFormProps {\n templateTitle: string;\n onSubmit: ({ title: string }) => OnSubmitReturnType;\n}\nconst EditableTitle = ({ templateTitle, onSubmit }: RenameTitleFormProps) => {\n return (\n (\n
    \n (required, notOnlySpaces, maxLength100)}\n />\n \n )}\n />\n );\n};\nexport default EditableTitle;\n","import React, { useCallback, useState } from 'react';\nimport classNames from 'classnames';\nimport Toast from 'Services/Toast';\nimport { formatDate, formatDocumentName } from 'Utils/formatters';\nimport { useDocumentUpdate } from 'Hooks/Document';\nimport { Document, DocumentStatuses } from 'Interfaces/Document';\nimport DropDownOptions from 'Components/DropDownOptions';\nimport EditableTitle from './EditableTitle';\n\ninterface TemplateItemProps {\n template: Document;\n className?: string;\n options: any;\n}\n\nconst FormRequestItemMobile = ({ template, className, options }: TemplateItemProps) => {\n const [isActiveEditForm, setIsEditFormActive] = useState(false);\n\n const [updateTemplate] = useDocumentUpdate();\n\n const handleUpdateTemplate = useCallback(\n async ({ title }) => {\n try {\n await updateTemplate({\n values: {\n title,\n type: template.type,\n documentId: template.id,\n },\n });\n Toast.success('Template successfully updated!');\n setIsEditFormActive(false);\n } catch (error) {\n Toast.handleErrors(error);\n }\n },\n [updateTemplate, template.type, template.id],\n );\n\n return (\n
    \n
    \n
    \n {isActiveEditForm ? (\n \n ) : (\n formatDocumentName(template.title, 'template')\n )}\n
    \n
    \n {template.createdAt && formatDate(template.createdAt)}\n
    \n
    \n \n \n {template.status === DocumentStatuses.ACTIVE\n ? template.deletedAt\n ? 'disabled'\n : 'live'\n : template.status}\n \n
    \n
    \n
    \n
    \n {template.status !== DocumentStatuses.PREPARING && (\n \n )}\n
    \n \n );\n};\n\nexport default FormRequestItemMobile;\n","import React, { useCallback, useState, useMemo } from 'react';\nimport classNames from 'classnames';\nimport UICheckbox from 'Components/UIComponents/UICheckbox';\nimport Toast from 'Services/Toast';\nimport HistoryService from 'Services/History';\nimport { formatDate, formatDocumentName } from 'Utils/formatters';\nimport { useDocumentUpdate, useDocumentCopy, useDocumentDelete } from 'Hooks/Document';\nimport { Document, DocumentStatuses } from 'Interfaces/Document';\nimport { useModal } from 'Hooks/Common';\nimport ConfirmModal from 'Components/ConfirmModal';\nimport CopyIcon from 'Assets/images/icons/copy-icon.svg';\nimport IconDocWithPencil from 'Assets/images/icons/doc-pencil-icon.svg';\nimport { RequestErrorTypes } from 'Interfaces/Common';\nimport { TemplateUpgradeModal } from 'Components/UpgradeModal';\nimport { useSelector } from 'react-redux';\nimport { selectUser } from 'Utils/selectors';\nimport { User } from 'Interfaces/User';\n\nimport IconPencil from 'Assets/images/icons/pencil.svg';\nimport RemovePencil from 'Assets/images/icons/remove-icon.svg';\nimport IconShare from 'Assets/images/icons/share-icon.svg';\nimport IconPause from 'Assets/images/icons/pause.svg';\nimport IconPlay from 'Assets/images/icons/play.svg';\nimport IconUser from 'Assets/images/icons/user.svg';\nimport KeyIcon from 'Assets/images/icons/key-icon.svg';\nimport DropDownOptions from 'Components/DropDownOptions';\nimport ShareFormModal from 'Pages/FormRequests/FormRequestsScreen/components/modal/ShareFormModal';\nimport SubmittedContractsModal from 'Pages/FormRequests/FormRequestsScreen/components/modal/SubmittedContractsModal';\nimport EditableTitle from './EditableTitle';\nimport { TemplateCreate } from 'Pages/Templates';\nimport { FRONTEND_URL } from 'Utils/constants';\nimport useFormRequestDisable from 'Hooks/Document/useFormRequestDisable';\nimport useFormRequestEnable from 'Hooks/Document/useFormRequestEnable';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport FormRequestItemMobile from './FormRequestItemMobile';\nimport DeleteModal from 'Components/DeleteModal';\nimport { AuthorizedRoutePaths } from 'Interfaces/RoutePaths';\nimport { PlanTypes } from 'Interfaces/Billing';\n\ninterface TemplateItemProps {\n template: Document;\n className?: string;\n isSelected?: boolean;\n toggleSelect: () => void;\n handleGetForms: () => void;\n}\n\nconst FormRequestItem = ({\n template,\n className,\n isSelected,\n toggleSelect = () => {},\n handleGetForms,\n}: TemplateItemProps) => {\n const [isActiveEditForm, setIsEditFormActive] = useState(false);\n const { id: userId, plan, teamId }: User = useSelector(selectUser);\n\n const [updateTemplate] = useDocumentUpdate();\n const [disableForm] = useFormRequestDisable();\n const [enableForm] = useFormRequestEnable();\n const isMobile = useIsMobile();\n const [copyTemplate] = useDocumentCopy();\n const link = `${FRONTEND_URL}/form-requests/${template.id}/send`;\n const [deleteForm] = useDocumentDelete();\n\n const [openUpgradeModal, closeUpgradeModal] = useModal(\n () => ,\n [],\n );\n\n const handleClickRenameTemplate = useCallback(() => {\n setIsEditFormActive(true);\n }, []);\n\n const navigateToTemplateEdit = useCallback(() => {\n HistoryService.push(`${AuthorizedRoutePaths.FORM_REQUESTS}/${template.id}/edit`);\n }, [template.id]);\n\n const handleTemplateCopy = useCallback(async () => {\n try {\n await copyTemplate({ documentId: template.id });\n Toast.success('Form successfully duplicated!');\n } catch (error) {\n if (error.type === RequestErrorTypes.QUOTA_EXCEEDED) {\n return openUpgradeModal();\n }\n\n Toast.handleErrors(error);\n }\n }, [copyTemplate, template.id, openUpgradeModal]);\n\n const handleUpdateTemplate = useCallback(\n async ({ title }) => {\n try {\n await updateTemplate({\n values: {\n title,\n type: template.type,\n documentId: template.id,\n },\n });\n Toast.success('Form successfully updated!');\n setIsEditFormActive(false);\n } catch (error) {\n Toast.handleErrors(error);\n }\n },\n [updateTemplate, template.type, template.id],\n );\n\n const handleDisableForm = async () => {\n try {\n await disableForm({ documentId: template.id });\n Toast.success('Form successfully disabled!');\n } catch (error) {\n Toast.handleErrors(error);\n }\n };\n\n const handleEnableForm = async () => {\n try {\n await enableForm({ documentId: template.id });\n Toast.success('Form successfully enabled!');\n } catch (error) {\n Toast.handleErrors(error);\n }\n };\n const [openTemplateCopyModal, closeTemplateCopyModal] = useModal(() => (\n {\n handleTemplateCopy();\n closeTemplateCopyModal();\n }}\n onCancel={closeTemplateCopyModal}\n >\n
    \n
    \n Are you sure want to duplicate this form?\n
    \n
    \n \n ));\n\n const [openSigningLinkModal, closeSigningLinkModal] = useModal(\n () => (\n \n ),\n [template],\n );\n\n const [openRegisteredUsersModal, closeRegisteredUsersModal] = useModal(\n () => (\n \n ),\n [template],\n );\n\n const handleDeleteForm = useCallback(async () => {\n try {\n await deleteForm({ documentId: template.id });\n Toast.success('Form deleted successfully.');\n await handleGetForms();\n } catch (error) {\n Toast.handleErrors(error);\n }\n }, [deleteForm, handleGetForms, template.id]);\n\n const handleCopyCodeAccess = useCallback(async () => {\n try {\n if (template.codeAccess) {\n await navigator.clipboard.writeText(template.codeAccess);\n Toast.success('Copied to clipboard');\n }\n } catch (err) {\n Toast.handleErrors(err);\n }\n }, [template.codeAccess]);\n\n const [showDeleteModal, hideDeleteModal, isDeleteModalOpen] = useModal(\n () => (\n {\n handleDeleteForm();\n hideDeleteModal();\n }}\n className=\"documents__deleteWrapper\"\n >\n
    \n
    \n Are you sure want to delete this form?\n
    \n

    \n Deleting this form will completely remove it. This cannot be undone.\n

    \n
    \n \n ),\n [handleDeleteForm],\n );\n\n const options = useMemo(() => {\n const options = [\n {\n name: 'Rename',\n icon: IconPencil,\n onClick: handleClickRenameTemplate,\n hidden: template.status !== DocumentStatuses.DRAFT || template.userId !== userId,\n },\n {\n name: 'Edit',\n icon: IconDocWithPencil,\n onClick: navigateToTemplateEdit,\n hidden: !!template.deletedAt || template.userId !== userId,\n },\n {\n name: 'Share',\n icon: IconShare,\n onClick: openSigningLinkModal,\n hidden:\n (plan.type === PlanTypes.FREE && !teamId) ||\n template.status === DocumentStatuses.DRAFT ||\n !!template.deletedAt,\n },\n {\n name: 'Duplicate',\n icon: CopyIcon,\n onClick: openTemplateCopyModal,\n hidden: !!template.deletedAt || template.userId !== userId,\n },\n {\n name: 'Copy Access Code',\n icon: KeyIcon,\n onClick: handleCopyCodeAccess,\n hidden:\n (plan.type === PlanTypes.FREE && !teamId) ||\n !template.codeAccess ||\n !!template.deletedAt,\n },\n {\n name: 'Registered Users',\n icon: IconUser,\n onClick: openRegisteredUsersModal,\n },\n {\n name: 'Disable Form',\n icon: IconPause,\n onClick: handleDisableForm,\n hidden:\n !!template.deletedAt ||\n template.userId !== userId ||\n template.status === DocumentStatuses.DRAFT,\n },\n {\n name: 'Enable Form',\n icon: IconPlay,\n onClick: handleEnableForm,\n hidden: !template.deletedAt || template.userId !== userId,\n },\n {\n name: 'Delete Form',\n icon: RemovePencil,\n onClick: showDeleteModal,\n className: 'red',\n classNameText: 'documents__dropdownOption--red',\n iconClassName: 'documents__dropdownOption--red-icon',\n },\n ];\n\n return options.filter(option => !option.hidden);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [TemplateCreate, handleClickRenameTemplate, template]);\n\n return isMobile ? (\n \n ) : (\n
    \n
    \n \n
    \n
    \n {isActiveEditForm ? (\n \n ) : (\n formatDocumentName(template.title, 'template')\n )}\n
    \n
    \n {template.createdAt && formatDate(template.createdAt)}\n
    \n
    \n \n \n {template.status === DocumentStatuses.ACTIVE\n ? template.deletedAt\n ? 'disabled'\n : 'live'\n : template.status}\n \n
    \n
    \n
    \n {template.status !== DocumentStatuses.PREPARING && (\n \n )}\n
    \n \n );\n};\n\nexport default FormRequestItem;\n","import { useDispatch } from 'react-redux';\nimport { DocumentIdPayload } from 'Interfaces/Document';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((values: DocumentIdPayload) =>\n $actions.document.disableForm(dispatch, values),\n );\n};\n","import { useDispatch } from 'react-redux';\nimport { DocumentIdPayload } from 'Interfaces/Document';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((values: DocumentIdPayload) =>\n $actions.document.enableForm(dispatch, values),\n );\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport { TablePaginationProps } from 'Interfaces/Common';\nimport UISpinner from 'Components/UIComponents/UISpinner';\nimport { SelectableDocument } from 'Interfaces/Document';\nimport FormRequestItem from './FormRequestItem';\nimport { Document } from 'Interfaces/Document';\n\ninterface TemplatesProps {\n templates: SelectableDocument[];\n paginationProps: TablePaginationProps;\n toggleItemSelection: (templateId: string) => void;\n isLoading: boolean;\n isDeleteModalOpen: boolean;\n handleFormDelete: (formIds: Document['id'][]) => void;\n handleGetForms: () => void;\n}\n\nconst defaultPaginationProps: TablePaginationProps = {\n pageCount: 0,\n pageNumber: 0,\n itemsCount: 0,\n itemsLimit: 0,\n totalItems: 0,\n};\n\nfunction FormRequestsMobile({\n templates,\n paginationProps = defaultPaginationProps,\n toggleItemSelection,\n isLoading,\n isDeleteModalOpen,\n handleFormDelete,\n handleGetForms,\n}: TemplatesProps) {\n const { pageNumber, itemsCount, itemsLimit, totalItems } = paginationProps;\n\n return (\n
    \n
    \n

    \n {`${pageNumber * itemsLimit + 1}-${pageNumber * itemsLimit + itemsCount}`}\n  of \n {totalItems}\n  results\n

    \n
    \n\n
    \n
    \n
    Forms
    \n {isLoading ? (\n \n ) : (\n templates.map(template => {\n const { isSelected } = template;\n\n return (\n toggleItemSelection(template.id)}\n isSelected={isSelected}\n className={classNames({\n 'table__dataRow--delete': isDeleteModalOpen && isSelected,\n 'table__dataRow--inactive': isDeleteModalOpen && !isSelected,\n })}\n handleGetForms={handleGetForms}\n />\n );\n })\n )}\n
    \n
    \n
    \n );\n}\n\nexport default FormRequestsMobile;\n","import React from 'react';\nimport { ReactSVG } from 'react-svg';\nimport classNames from 'classnames';\n\nimport IconRemove from 'Assets/images/icons/remove-icon.svg';\nimport IconSort from 'Assets/images/icons/sort.svg';\n\nimport { TablePaginationProps } from 'Interfaces/Common';\nimport UISpinner from 'Components/UIComponents/UISpinner';\nimport { SelectableDocument } from 'Interfaces/Document';\nimport FormRequestItem from './FormRequestItem';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport FormRequestsMobile from './FormRequestsMobile';\nimport { Document } from 'Interfaces/Document';\n\ninterface FromRequestsProps {\n templates: SelectableDocument[];\n paginationProps: TablePaginationProps;\n toggleItemSelection: (templateId: string) => void;\n isLoading: boolean;\n requestOrdering: (key: string) => void;\n isDeleteModalOpen: boolean;\n openDeleteModal: () => void;\n onTemplateCreateClick: () => void;\n handleFormDelete: (formIds: Document['id'][]) => void;\n handleGetForms: () => void;\n}\n\nconst defaultPaginationProps: TablePaginationProps = {\n pageCount: 0,\n pageNumber: 0,\n itemsCount: 0,\n itemsLimit: 0,\n totalItems: 0,\n};\n\nfunction FromRequests({\n templates,\n paginationProps = defaultPaginationProps,\n openDeleteModal,\n toggleItemSelection,\n isLoading,\n requestOrdering,\n isDeleteModalOpen,\n handleFormDelete,\n handleGetForms,\n}: FromRequestsProps) {\n const { pageNumber, itemsCount, itemsLimit, totalItems } = paginationProps;\n const isMobile = useIsMobile();\n\n return isMobile ? (\n \n ) : (\n
    \n
    \n

    \n {`${pageNumber * itemsLimit + 1}-${pageNumber * itemsLimit + itemsCount}`}\n  of \n {totalItems}\n  results\n

    \n
    \n \n \n Delete\n \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n requestOrdering('title')}\n >\n TITLE\n \n \n
    \n
    \n requestOrdering('createdAt')}\n >\n DATE\n \n \n
    \n
    \n requestOrdering('status')}\n >\n STATUS\n \n \n
    \n
    ACTIONS
    \n
    \n {isLoading ? (\n \n ) : (\n templates.map(template => {\n const { isSelected } = template;\n\n return (\n toggleItemSelection(template.id)}\n isSelected={isSelected}\n className={classNames({\n 'table__dataRow--delete': isDeleteModalOpen && isSelected,\n 'table__dataRow--inactive': isDeleteModalOpen && !isSelected,\n })}\n handleGetForms={handleGetForms}\n />\n );\n })\n )}\n
    \n
    \n
    \n );\n}\n\nexport default FromRequests;\n","import React, { useEffect, useCallback, useState, useMemo } from 'react';\nimport { RangeModifier } from 'react-day-picker';\nimport { useSelector } from 'react-redux';\nimport { RouteChildrenProps } from 'react-router-dom';\nimport {\n selectFormRequests,\n selectDocumentsPaginationData,\n selectUserPlan,\n selectUser,\n} from 'Utils/selectors';\nimport FormRequests from 'Pages/FormRequests/FormRequestsScreen/components/FormRequests';\nimport Toast from 'Services/Toast';\nimport {\n useDataOrdering,\n useModal,\n usePagination,\n useSelectableItem,\n} from 'Hooks/Common';\nimport { OrderingDirection } from 'Interfaces/Common';\nimport DeleteModal from 'Components/DeleteModal';\nimport {\n formatDateStringToEndDay,\n formatDateStringToStartDay,\n formatDateToIsoString,\n} from 'Utils/formatters';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport History from 'Services/History';\nimport IconSearch from 'Assets/images/icons/search.svg';\nimport UIDatePicker from 'Components/UIComponents/UIDatePicker';\nimport UIPaginator from 'Components/UIComponents/UIPaginator';\nimport UISelect from 'Components/UIComponents/UISelect';\nimport DebounceInput from 'Components/DebounceInput';\nimport { useFormRequestsGet, useDocumentsDelete } from 'Hooks/Document';\nimport { DocumentStatuses } from 'Interfaces/Document';\nimport { PlanTypes } from 'Interfaces/Billing';\nimport { TemplateUpgradeModal } from 'Components/UpgradeModal';\nimport { User, UserRoles } from 'Interfaces/User';\nimport { Billet } from 'Pages/Settings/Company/components';\nimport { useSubscriptionDataGet } from 'Hooks/Billing';\nimport EmptyTable from 'Components/EmptyTable';\nimport { Document } from 'Interfaces/Document';\nimport { AuthorizedRoutePaths } from 'Interfaces/RoutePaths';\n\ntype selectedPage = { selected: number };\n\ntype statusType = { status: DocumentStatuses };\n\nconst statusFilterOptions = [\n { value: 'all', label: 'All' },\n { value: 'draft', label: 'Draft' },\n { value: 'active', label: 'Live' },\n];\n\nconst validStatuses: DocumentStatuses[] = [\n DocumentStatuses.DRAFT,\n DocumentStatuses.ACTIVE,\n];\nconst FormRequestsScreen = ({ match }: RouteChildrenProps) => {\n const userPlan = useSelector(selectUserPlan);\n const user = useSelector(selectUser) as User;\n const [getFormRequests, isFetchLoading] = useFormRequestsGet();\n const [deleteTemplates, isDeleteLoading] = useDocumentsDelete();\n const [paginationProps, setPageNumber] = usePagination({\n paginationSelector: selectDocumentsPaginationData,\n });\n const [selectedDates, setSelectedDates] = useState();\n const [getSubscriptionData, isSubscriptionDataLoading] = useSubscriptionDataGet();\n\n const forms = useSelector(selectFormRequests);\n const status = match?.params.status;\n\n const { requestOrdering, orderingConfig } = useDataOrdering(forms, {\n key: 'createdAt',\n direction: OrderingDirection.DESC,\n });\n\n const [selectableTemplates, toggleItemSelection, selectedItems] = useSelectableItem(\n forms,\n 'id',\n );\n\n const [templateNameFilter, setTemplateNameFilter] = useState('');\n\n const changeTemplateNameFilter = useCallback((value: string) => {\n setTemplateNameFilter(value);\n }, []);\n\n const handleDeleteTemplates = useCallback(\n async (formIds?: Document['id'][]) => {\n const { from, to } = selectedDates || {};\n const { key, direction } = orderingConfig;\n const orderingDirection = direction.toString().toUpperCase();\n formIds = formIds || selectedItems.map(item => item.id);\n try {\n await deleteTemplates(formIds);\n await getFormRequests({\n page: 1,\n limit: paginationProps.itemsLimit,\n searchTerm: templateNameFilter,\n status: [DocumentStatuses.DRAFT, DocumentStatuses.ACTIVE],\n dateFrom: formatDateToIsoString(from),\n dateTo: formatDateToIsoString(to),\n orderingKey: key,\n orderingDirection,\n });\n if (paginationProps.pageNumber !== 0) setPageNumber(0);\n Toast.success('Forms deleted successfully.');\n } catch (error) {\n Toast.handleErrors(error);\n }\n },\n [\n deleteTemplates,\n getFormRequests,\n selectedDates,\n orderingConfig,\n selectedItems,\n paginationProps.itemsLimit,\n paginationProps.pageNumber,\n setPageNumber,\n templateNameFilter,\n ],\n );\n\n const [openUpgradeModal, closeUpgradeModal] = useModal(\n () => ,\n [userPlan],\n );\n\n const handleTemplateCreateClick = useCallback(() => {\n if (\n !user.teamId &&\n (userPlan.type === PlanTypes.FREE ||\n userPlan.type == PlanTypes.PERSONAL ||\n !user.teamId)\n ) {\n openUpgradeModal();\n } else {\n History.push(AuthorizedRoutePaths.FORM_REQUESTS_CREATE);\n }\n }, [openUpgradeModal, user.teamId, userPlan.type]);\n\n const handleChangeDateFilter = useCallback(\n ({ from, to }) => {\n if (from && to) {\n setSelectedDates({\n from: formatDateStringToStartDay(from),\n to: formatDateStringToEndDay(to),\n });\n } else {\n setSelectedDates(undefined);\n }\n\n setPageNumber(0);\n },\n [setPageNumber],\n );\n\n const handleCancelDateFilter = useCallback(() => {\n setSelectedDates(undefined);\n }, []);\n\n const handleChangePage = (page: selectedPage) => {\n setPageNumber(page.selected);\n };\n\n const handleGetTemplates = useCallback(async () => {\n const { from, to } = selectedDates || {};\n const { key, direction } = orderingConfig;\n const orderingDirection = direction.toString().toUpperCase();\n\n try {\n await getFormRequests({\n page: paginationProps.pageNumber + 1,\n limit: paginationProps.itemsLimit,\n searchTerm: templateNameFilter,\n dateFrom: formatDateToIsoString(from),\n dateTo: formatDateToIsoString(to),\n status: status ? [status] : validStatuses,\n orderingKey: key,\n orderingDirection,\n });\n } catch (error) {\n Toast.handleErrors(error);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n paginationProps.itemsLimit,\n paginationProps.pageNumber,\n selectedDates,\n orderingConfig,\n templateNameFilter,\n ]);\n\n useEffect(() => {\n handleGetTemplates();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [handleGetTemplates]);\n\n const [showDeleteModal, hideDeleteModal, isDeleteModalOpen] = useModal(\n () => (\n {\n handleDeleteTemplates();\n hideDeleteModal();\n }}\n className=\"documents__deleteWrapper\"\n >\n
    \n
    \n Are you sure want to delete this form?\n
    \n

    \n Deleting this form will completely remove it. This cannot be undone.\n

    \n
    \n \n ),\n [handleDeleteTemplates],\n );\n\n const openDeleteModal = useCallback(() => {\n if (selectedItems.length) {\n showDeleteModal();\n }\n }, [selectedItems, showDeleteModal]);\n\n const handleChangeFilterStatus = useCallback((value?: string | number) => {\n if (value === 'all') {\n History.push(AuthorizedRoutePaths.FORM_REQUESTS);\n } else {\n History.push(`${AuthorizedRoutePaths.FORM_REQUESTS}/${value}`);\n }\n }, []);\n\n const isBusinessPlan = useMemo(() => {\n return !!user.plan.type && user.plan.type === PlanTypes.BUSINESS;\n }, [user.plan.type]);\n\n const isTableEmpty = useMemo(() => {\n return forms.length === 0;\n }, [forms.length]);\n\n const isAvailablePlan = useMemo(() => {\n return !isBusinessPlan && !user.teamId;\n }, [isBusinessPlan, user.teamId]);\n\n const isSetSearchFilter = useMemo(() => {\n return !!templateNameFilter || !!status || !!selectedDates;\n }, [selectedDates, status, templateNameFilter]);\n\n const emptyTableProps = useMemo(() => {\n return isAvailablePlan\n ? {\n buttonText: 'Upgrade to Business',\n headerText: 'Start creating forms!',\n description: 'Upgrade to business to add forms to your account',\n }\n : isSetSearchFilter\n ? {\n buttonText: 'Create Form',\n headerText: 'No matches found for your current search.',\n description: '',\n }\n : {\n buttonText: 'Create Form',\n headerText: \"You don't have any forms yet.\",\n description:\n 'Create your first form to save time when repeating the same signature documents.',\n };\n }, [isAvailablePlan, isSetSearchFilter]);\n\n return (\n
    \n
    \n
    \n {isAvailablePlan ? (\n
    \n

    Forms

    \n \n
    \n ) : (\n <>\n
    \n

    Forms

    \n
    \n \n \n )}\n
    \n

    \n Forms are reusable documents that you send often. Create a form once to allow\n you to send your documents faster.\n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n\n {isTableEmpty ? (\n
    \n \n
    \n ) : (\n <>\n
    \n\n \n \n )}\n {paginationProps.pageCount > 1 && (\n \n )}\n
    \n );\n};\n\nexport default FormRequestsScreen;\n","import { useAsyncAction } from 'Hooks/Common';\nimport { FormRequestsGetPayload } from 'Interfaces/Document';\nimport { $actions } from 'Store/ducks';\nimport { useDispatch } from 'react-redux';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: FormRequestsGetPayload) =>\n $actions.document.getFormRequests(dispatch, payload),\n );\n};\n","import React, { useMemo, useCallback, useState } from 'react';\nimport { useSelector } from 'react-redux';\nimport arrayMutators from 'final-form-arrays';\nimport { Form, FormRenderProps } from 'react-final-form';\nimport _ from 'lodash';\nimport { useModal } from 'Hooks/Common';\nimport { selectDocument } from 'Utils/selectors';\nimport {\n useDocumentCreate,\n useDocumentUpdate,\n DocumentValidators,\n useTemplateActivate,\n useTemplateMerge,\n} from 'Hooks/Document';\nimport Toast from 'Services/Toast';\nimport History from 'Services/History';\nimport { processSubmissionErrors } from 'Utils/functions';\nimport { DocumentValues, Document } from 'Interfaces/Document';\n\nimport { DocumentForm, SuccessSendModal, ValidationModal } from 'Components/DocumentForm';\nimport { TemplateUpgradeModal } from 'Components/UpgradeModal';\nimport { RequestErrorTypes } from 'Interfaces/Common';\nimport { AuthorizedRoutePaths } from 'Interfaces/RoutePaths';\n\ninterface TemplateFormProps {\n initialValues: DocumentValues;\n sourceTemplateId?: Document['id'];\n}\n\nconst FormRequestForm = ({ initialValues, sourceTemplateId }: TemplateFormProps) => {\n const [validationErrors, setValidationErrors] = useState([]);\n const [createDocument] = useDocumentCreate();\n const [documentId, setDocumentId] = useState(\n initialValues.id,\n );\n const [updateDocument] = useDocumentUpdate();\n const [activateTemplate] = useTemplateActivate();\n const [mergeTemplate] = useTemplateMerge();\n const validateDocument = DocumentValidators.useDocumentValidation();\n\n const document = useSelector(state => selectDocument(state, { documentId }));\n\n const isReplica = useMemo(\n () => sourceTemplateId && sourceTemplateId !== initialValues.id,\n [initialValues.id, sourceTemplateId],\n );\n const { headerText, description, submitButtonTitle } = useMemo(\n () =>\n isReplica\n ? {\n headerText: 'Form has validation errors',\n description: 'Please check requirements below and try again',\n submitButtonTitle: 'Update Form',\n }\n : {\n headerText: 'Form saved.',\n description:\n 'If you want to activate it, please ensure the form meets the requirements below',\n submitButtonTitle: initialValues.id ? 'Update Form' : 'Create Form',\n },\n [initialValues.id, isReplica],\n );\n\n const [openValidationModal, closeValidationModal] = useModal(\n () => (\n \n ),\n [validationErrors],\n );\n const [openSuccessModal, closeSuccessModal] = useModal(\n () => (\n {\n closeSuccessModal();\n History.push(AuthorizedRoutePaths.FORM_REQUESTS);\n }}\n onConfirm={() => {\n closeSuccessModal();\n History.push(AuthorizedRoutePaths.FORM_REQUESTS);\n }}\n document={document as Document}\n />\n ),\n [document],\n );\n const [openUpgradeModal, closeUpgradeModal] = useModal(\n () => ,\n [],\n );\n\n const onSubmit = useCallback(\n async (values: DocumentValues) => {\n try {\n let scopedDocument = document;\n if (scopedDocument) {\n scopedDocument = (await updateDocument({\n values: {\n ...values,\n documentId: scopedDocument.id,\n },\n })) as Document;\n } else {\n scopedDocument = (await createDocument(values)) as Document;\n setDocumentId(scopedDocument.id);\n }\n\n const documentValidationErrors = validateDocument(scopedDocument);\n\n if (documentValidationErrors.length) {\n openValidationModal();\n\n return setValidationErrors(documentValidationErrors);\n }\n\n if (sourceTemplateId && isReplica) {\n await mergeTemplate({ sourceTemplateId, templateId: scopedDocument.id });\n Toast.success('Form saved');\n\n return History.push(AuthorizedRoutePaths.FORM_REQUESTS);\n }\n\n await activateTemplate({ documentId: scopedDocument.id });\n\n return openSuccessModal();\n } catch (error) {\n if (error.type === RequestErrorTypes.QUOTA_EXCEEDED) {\n return openUpgradeModal();\n }\n\n Toast.handleErrors(error);\n\n return processSubmissionErrors(error);\n }\n },\n [\n document,\n validateDocument,\n sourceTemplateId,\n isReplica,\n openSuccessModal,\n updateDocument,\n createDocument,\n openValidationModal,\n mergeTemplate,\n activateTemplate,\n openUpgradeModal,\n ],\n );\n\n const formattedInitialValues = useMemo(() => {\n const documentSigners =\n (document?.signers.length || 0) >= (initialValues.signers?.length || 0)\n ? document?.signers\n : initialValues.signers;\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { fields, ...restDocument } = document || {};\n return {\n ...initialValues,\n ...restDocument,\n signers: _.orderBy(documentSigners, 'order', 'asc'),\n } as DocumentValues;\n }, [initialValues, document]);\n\n return (\n
    \n

    \n {initialValues.id ? 'Update Form' : 'Create New Form'}\n

    \n ) => (\n \n )}\n />\n
    \n );\n};\n\nexport default FormRequestForm;\n","import React, { useEffect } from 'react';\nimport { DocumentTypes, DocumentStatuses } from 'Interfaces/Document';\nimport { useSelector } from 'react-redux';\nimport { selectUser, selectUserPlan } from 'Utils/selectors';\nimport { PlanTypes } from 'Interfaces/Billing';\nimport FormRequestForm from 'Components/FormRequestsForm';\nimport History from 'Services/History';\nimport { User } from 'Interfaces/User';\nimport { AuthorizedRoutePaths } from 'Interfaces/RoutePaths';\n\nfunction FormRequestCreate() {\n const userPlan = useSelector(selectUserPlan);\n const user = useSelector(selectUser) as User;\n\n useEffect(() => {\n if (userPlan.type !== PlanTypes.BUSINESS && !user.teamId) {\n History.push(AuthorizedRoutePaths.SETTINGS_BILLING_PLAN);\n }\n }, [user.teamId, userPlan.type]);\n\n return (\n \n );\n}\n\nexport default FormRequestCreate;\n","import React, { useCallback, useState } from 'react';\nimport { Document, DocumentStatuses } from 'Interfaces/Document';\nimport { RouteChildrenProps } from 'react-router-dom';\nimport { useSelector } from 'react-redux';\nimport History from 'Services/History';\nimport { selectDocument } from 'Utils/selectors';\n\nimport UISpinner from 'Components/UIComponents/UISpinner';\nimport { useTemplateReplicate, useDocumentGuard } from 'Hooks/Document';\nimport Toast from 'Services/Toast';\nimport FormRequestForm from 'Components/FormRequestsForm';\nimport { AuthorizedRoutePaths } from 'Interfaces/RoutePaths';\n\ninterface TemplateRouteParams {\n formRequestId: Document['id'];\n}\n\nconst FormRequestEdit = ({ match }: RouteChildrenProps) => {\n const sourceTemplateId = match?.params.formRequestId || '';\n const [replicateTemplate, isReplicateLoading] = useTemplateReplicate();\n const [templateId, setTemplateId] = useState();\n const template = useSelector(state =>\n selectDocument(state, { documentId: templateId }),\n );\n\n const handleTemplateCheckFailure = useCallback(() => {\n History.replace(AuthorizedRoutePaths.FORM_REQUESTS);\n }, []);\n\n const handleTemplateCheckSuccess = useCallback(\n async (template: Document) => {\n try {\n let updatingTemplate = template;\n\n if (template.status !== DocumentStatuses.DRAFT) {\n updatingTemplate = (await replicateTemplate({\n documentId: sourceTemplateId,\n })) as Document;\n }\n\n setTemplateId(updatingTemplate.id);\n } catch (error) {\n Toast.handleErrors(error);\n handleTemplateCheckFailure();\n }\n },\n [handleTemplateCheckFailure, replicateTemplate, sourceTemplateId],\n );\n\n const isCheckingTemplate = useDocumentGuard({\n documentId: sourceTemplateId,\n onFailure: handleTemplateCheckFailure,\n onSuccess: handleTemplateCheckSuccess,\n });\n\n if (isCheckingTemplate || isReplicateLoading) {\n return ;\n }\n\n if (!template) return null;\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { fields, ...restTemplate } = template;\n\n return (\n \n );\n};\n\nexport default FormRequestEdit;\n","import React, { useCallback, useEffect, useMemo } from 'react';\nimport { ReactSVG } from 'react-svg';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport PresentIcon from 'Assets/images/icons/present.svg';\nimport UISpinner from 'Components/UIComponents/UISpinner';\nimport { usePlanUpsell, useUpsellAllowedCheck } from 'Hooks/Billing';\nimport History from 'Services/History';\nimport Toast from 'Services/Toast';\nimport { useSelector } from 'react-redux';\nimport { selectUser } from 'Utils/selectors';\nimport { AuthorizedRoutePaths } from 'Interfaces/RoutePaths';\nimport {\n DefaultUpsellDiscount,\n PlanDurations,\n defaultPlanPrices,\n getTotalPrice,\n} from 'Interfaces/Billing';\n\nconst Upsell = () => {\n const user = useSelector(selectUser);\n const [upsellPlan, isPlanUpselling] = usePlanUpsell();\n const [checkUpsellAllowed, isCheckingUpsellAllowed] = useUpsellAllowedCheck();\n\n const [monthlyUpsellPrice, annuallyUpsellPrice] = useMemo(\n () => [\n getTotalPrice(\n defaultPlanPrices[user.plan.type][PlanDurations.MONTHLY],\n DefaultUpsellDiscount,\n ),\n getTotalPrice(\n defaultPlanPrices[user.plan.type][PlanDurations.ANNUALLY],\n DefaultUpsellDiscount,\n ) * 12,\n ],\n [user],\n );\n\n const handleRedirect = useCallback(\n () => History.push(AuthorizedRoutePaths.SETTINGS_BILLING),\n [],\n );\n\n const handleUpsell = useCallback(async () => {\n try {\n await upsellPlan(undefined);\n Toast.success('Plan has upgraded');\n handleRedirect();\n } catch (err) {\n Toast.handleErrors(err);\n }\n }, [handleRedirect, upsellPlan]);\n\n const handleUpsellAllowedCheck = useCallback(async () => {\n try {\n await checkUpsellAllowed(undefined);\n } catch (err) {\n handleRedirect();\n }\n }, [checkUpsellAllowed, handleRedirect]);\n\n useEffect(() => {\n handleUpsellAllowedCheck();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n if (isCheckingUpsellAllowed) {\n return (\n \n );\n }\n\n return (\n
    \n
    \n
    \n \n
    \n
    \n
    WAIT! Special one-time offer
    \n
    \n

    \n To thank you for choosing Signaturely, we would like to\n
    \n offer you 30% off for paying annually.\n

    \n

    \n Instead of paying ${defaultPlanPrices[user.plan.type][PlanDurations.MONTHLY]}\n /month, you would pay only\n
    \n \n ${monthlyUpsellPrice}/month billed annually ($\n {annuallyUpsellPrice}).\n \n

    \n
    \n
    \n \n
    \n No thanks\n
    \n
    \n
    \n );\n};\n\nexport default Upsell;\n","import React from 'react';\nimport { Redirect, useLocation } from 'react-router-dom';\nimport StorageService from 'Services/Storage';\nimport {\n AuthorizedRoutePaths,\n RoutePaths,\n UnauthorizedRoutePaths,\n} from 'Interfaces/RoutePaths';\nimport { WORKFLOW_PREFIX } from 'Utils/constants';\n\nconst customRedirectionMap = new Map([\n [AuthorizedRoutePaths.REDEEM_LTD_CODE, UnauthorizedRoutePaths.SIGN_UP_LTD],\n]);\n\ninterface CustomRedirectProps {\n to: string;\n isAuth?: boolean;\n}\n\nconst CustomRedirect = ({ to, isAuth }: CustomRedirectProps) => {\n const location = useLocation();\n let redirectRoute = to;\n\n if (!isAuth && location?.pathname && location?.pathname !== RoutePaths.BASE_PATH) {\n const pathName = location.pathname;\n const route = pathName.slice(WORKFLOW_PREFIX.length, pathName.length);\n StorageService.setRedirectRoutePath(route);\n }\n\n if (isAuth) {\n redirectRoute = StorageService.getRedirectRoutePath()\n ? `${WORKFLOW_PREFIX}${StorageService.getRedirectRoutePath()}`\n : to;\n StorageService.removeRedirectRoutePath();\n }\n\n const customRedirectionPath = customRedirectionMap.get(location.pathname);\n\n if (customRedirectionPath) {\n redirectRoute = customRedirectionPath;\n }\n\n return ;\n};\n\nexport default CustomRedirect;\n","import React, { useCallback, useEffect, useState, useMemo } from 'react';\nimport { useSelector } from 'react-redux';\nimport { RouteChildrenProps } from 'react-router-dom';\nimport { RangeModifier } from 'react-day-picker';\nimport {\n usePagination,\n useSelectableItem,\n useDataOrdering,\n useModal,\n useDownloadFiles,\n} from 'Hooks/Common';\nimport { selectGrid, selectGridPaginationData } from 'Utils/selectors';\nimport Toast from 'Services/Toast';\nimport { DocumentStatuses, DocumentTypes, SearchTypeEnum } from 'Interfaces/Document';\nimport History from 'Services/History';\nimport {\n formatDateStringToEndDay,\n formatDateStringToStartDay,\n formatDateToIsoString,\n} from 'Utils/formatters';\nimport { OrderingDirection } from 'Interfaces/Common';\nimport UIPaginator from 'Components/UIComponents/UIPaginator';\nimport DeleteModal from 'Components/DeleteModal';\nimport { DocumentSearch } from 'Pages/Documents/components/DocumentSearch';\nimport { useGridGet, useGridItemsDelete } from 'Hooks/Grid';\nimport Grid from 'Pages/Documents/components/Grid';\nimport { Folder } from 'Interfaces/Folder';\nimport { GridEntityType, GridItem } from 'Interfaces/Grid';\nimport DocumentFileKeyExtractor from 'Pages/Documents/DocumentFileKeyExtractor';\nimport DocumentActivitiesFileKeyExtractor from 'Pages/Documents/DocumentActivitiesFileKeyExtractor';\nimport DocumentSeparatedFileKeyExtractor from 'Pages/Documents/DocumentSeparatedFileKeyExtractor';\nimport { AuthorizedRoutePaths } from 'Interfaces/RoutePaths';\n\ntype selectedPage = { selected: number };\n\ntype statusType = { status: DocumentStatuses };\n\nconst validStatuses: DocumentStatuses[] = [\n DocumentStatuses.DRAFT,\n DocumentStatuses.AWAITING,\n DocumentStatuses.COMPLETED,\n DocumentStatuses.PREPARING,\n DocumentStatuses.DECLINED,\n DocumentStatuses.EXPIRED,\n];\n\nconst TrashScreen = ({ match }: RouteChildrenProps) => {\n const [getGrid, isFetching] = useGridGet();\n const [deleteGrids] = useGridItemsDelete();\n const [paginationProps, setPageNumber] = usePagination({\n paginationSelector: selectGridPaginationData,\n });\n const grid = useSelector(selectGrid);\n const [folderId, setFolderId] = useState(undefined);\n\n const status = match?.params.status;\n const [selectedDates, setSelectedDates] = useState();\n const [selectedShowType] = useState('all');\n\n const { requestOrdering, orderingConfig } = useDataOrdering(grid, {\n key: 'createdAt',\n direction: OrderingDirection.DESC,\n });\n\n const [searchType, setSearchType] = useState(\n SearchTypeEnum.DOCUMENTS,\n );\n\n const [\n selectableGridItems,\n toggleItemSelection,\n selectedItems,\n clearSelection,\n ] = useSelectableItem(grid, 'entityId');\n const [documentNameFilter, setDocumentNameFilter] = useState('');\n const [documentFileKeyExtractorForGrid] = DocumentFileKeyExtractor();\n const [documentSeparatedFileKeyExtractor] = DocumentSeparatedFileKeyExtractor();\n const [documentActivitiesFileKeyExtractor] = DocumentActivitiesFileKeyExtractor();\n\n const [downloadDocuments, isDownloadingDocuments] = useDownloadFiles({\n fileExtractors: [\n documentFileKeyExtractorForGrid,\n documentSeparatedFileKeyExtractor,\n documentActivitiesFileKeyExtractor,\n ],\n });\n\n const isSetSearchFilter = useMemo(\n () => !!documentNameFilter || !!status || !!selectedDates,\n [documentNameFilter, selectedDates, status],\n );\n\n const handleDownloads = useCallback(async () => {\n await downloadDocuments(selectedItems);\n clearSelection();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedItems]);\n\n const handleChangeFilterStatus = useCallback((value?: string | number) => {\n if (value === 'all') {\n History.push(AuthorizedRoutePaths.DOCUMENTS);\n } else {\n History.push(`${AuthorizedRoutePaths.DOCUMENTS}/${value}`);\n }\n }, []);\n\n const changeDocumentNameFilter = useCallback(\n (value: string | string[]) => {\n setPageNumber(0);\n setDocumentNameFilter(value);\n },\n [setPageNumber],\n );\n\n const handleGetGrid = useCallback(async () => {\n const { from, to } = selectedDates || {};\n const { key, direction } = orderingConfig;\n const orderingDirection = direction.toString().toUpperCase();\n try {\n if (status && !validStatuses.includes(status)) {\n return History.push(AuthorizedRoutePaths.DOCUMENTS);\n }\n await getGrid({\n type: [DocumentTypes.ME, DocumentTypes.ME_AND_OTHER, DocumentTypes.OTHERS],\n page: paginationProps.pageNumber + 1,\n limit: paginationProps.itemsLimit,\n status: status ? [status] : validStatuses,\n searchTerm: documentNameFilter,\n dateFrom: formatDateToIsoString(from),\n dateTo: formatDateToIsoString(to),\n orderingKey: key,\n orderingDirection,\n showType: selectedShowType,\n searchType,\n folderId,\n deleted: true,\n });\n } catch (err) {\n Toast.handleErrors(err);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n paginationProps.itemsLimit,\n paginationProps.pageNumber,\n status,\n documentNameFilter,\n selectedDates,\n orderingConfig,\n selectedShowType,\n folderId,\n ]);\n\n const handleDeleteGrids = useCallback(async () => {\n const entityIds = selectedItems.map(item => item.entityId);\n try {\n await deleteGrids({ entityIds });\n\n if (paginationProps.pageNumber !== 0) {\n setPageNumber(0);\n }\n\n clearSelection();\n Toast.success('Documents deleted successfully.');\n await handleGetGrid();\n } catch (error) {\n Toast.handleErrors(error);\n }\n }, [\n selectedItems,\n deleteGrids,\n paginationProps.pageNumber,\n clearSelection,\n handleGetGrid,\n setPageNumber,\n ]);\n\n const renderDeleteModalMessage = useCallback(() => {\n if (selectedItems.every(item => item.entityType === GridEntityType.DOCUMENT)) {\n return (\n
    \n
    \n {`\n Are you sure want to delete\n ${selectedItems.length > 1 ? 'these documents' : 'this document'}\n `}\n
    \n

    \n {`Deleting ${\n selectedItems.length > 1 ? 'these documents' : 'this document'\n } will completely remove ${\n selectedItems.length > 1 ? 'them' : 'it'\n } from your account. This action cannot be undone.`}\n

    \n
    \n );\n }\n\n if (selectedItems.every(item => item.entityType === GridEntityType.FOLDER)) {\n return (\n
    \n
    \n {`\n Are you sure want to delete\n ${selectedItems.length > 1 ? 'these folders' : 'this folder'}\n `}\n
    \n

    \n {`Deleting ${\n selectedItems.length > 1 ? 'these folder' : 'this folders'\n } will completely remove ${\n selectedItems.length > 1 ? 'them' : 'it'\n } and all documents inside from your account. This action cannot be undone.`}\n

    \n
    \n );\n }\n\n return (\n
    \n
    \n Are you sure want to delete these documents and folders\n
    \n

    \n Deleting these folders will completely remove them and all documents inside from\n your account. This action cannot be undone.\n

    \n
    \n );\n }, [selectedItems]);\n\n const [showDeleteModal, hideDeleteModal] = useModal(\n () => (\n {\n handleDeleteGrids();\n hideDeleteModal();\n }}\n className=\"documents__deleteWrapper\"\n >\n {renderDeleteModalMessage()}\n \n ),\n [handleDeleteGrids],\n );\n\n const openDeleteModal = useCallback(() => {\n if (selectedItems.length) {\n showDeleteModal();\n }\n }, [selectedItems, showDeleteModal]);\n\n const handleChangeDateFilter = useCallback(\n ({ from, to }) => {\n if (from && to) {\n setSelectedDates({\n from: formatDateStringToStartDay(from),\n to: formatDateStringToEndDay(to),\n });\n } else {\n setSelectedDates(undefined);\n }\n\n setPageNumber(0);\n },\n [setPageNumber],\n );\n\n const handleCancelDateFilter = useCallback(() => {\n setSelectedDates(undefined);\n }, []);\n\n useEffect(() => {\n return () => setPageNumber(0);\n }, [setPageNumber, status]);\n\n const handleChangePage = (page: selectedPage) => {\n setPageNumber(page.selected);\n };\n\n useEffect(() => {\n handleGetGrid();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [handleGetGrid]);\n\n return (\n
    \n
    \n

    Trash

    \n

    \n The Trash folder stores deleted documents temporarily. You can restore files\n within 30 days, after which they will be permanently deleted. Review the\n contents regularly to avoid losing important documents.\n

    \n
    \n \n \n {paginationProps.pageCount > 1 && (\n \n )}\n
    \n );\n};\n\nexport default TrashScreen;\n","import React from 'react';\nimport { WrapperProps } from 'Interfaces/Common';\n\nfunction TrialGetWrapper({ children }: WrapperProps) {\n return (\n
    \n
    {children}
    \n
    \n );\n}\n\nexport default TrialGetWrapper;\n","import React from 'react';\nimport { ReactSVG } from 'react-svg';\nimport check from 'Assets/images/icons/check-v2.svg';\nimport {\n PlanDurations,\n PlanTypes,\n defaultPlanPrices,\n discountByDuration,\n discountPlanPrices,\n} from 'Interfaces/Billing';\nimport { IS_BLACK_FRIDAY, IS_END_OF_YEAR } from 'Utils/constants';\nimport { isAvailablePlanForSale } from 'Utils/functions';\n\nconst features = [\n 'Unlimited signature requests',\n 'Unlimited reusable templates',\n 'Google Drive integration',\n 'Dropbox integration',\n 'One Drive integration',\n 'Box integration',\n 'Notifications and reminders',\n 'Audit log and history',\n 'Team management',\n 'Custom business branding',\n];\n\nexport const PlanSection = () => {\n const defaultPrice = defaultPlanPrices[PlanTypes.BUSINESS][PlanDurations.MONTHLY];\n const discountPrice = discountPlanPrices[PlanTypes.BUSINESS][PlanDurations.MONTHLY];\n const isSomeSale = IS_BLACK_FRIDAY || IS_END_OF_YEAR;\n\n const isAvailablePlan = isAvailablePlanForSale(\n PlanTypes.BUSINESS,\n PlanDurations.MONTHLY,\n );\n\n const discount = discountByDuration[PlanDurations.MONTHLY];\n\n return (\n
    \n

    Your plan

    \n {isSomeSale && isAvailablePlan ? (\n
    \n
    \n

    \n 7-day free trial, now ${`${discountPrice}`}/month\n

    \n

    \n {`$${defaultPrice},`}\n

    \n
    \n

    {`${discount}% OFF`}

    \n
    \n ) : (\n
    \n

    \n 7-day free trial, then ${defaultPrice}/month\n

    \n
    \n )}\n

    All Features Included:

    \n
      \n {features.map(feature => (\n
    • \n \n \n {' '}\n {feature}\n
    • \n ))}\n
    \n
    \n );\n};\n","import React, { useCallback, useState } from 'react';\nimport { ReactSVG } from 'react-svg';\nimport classNames from 'classnames';\nimport SelectIcon from 'Assets/images/icons/select-arrow-icon.svg';\nimport { Coupon, PlanDurations, PlanTypes } from 'Interfaces/Billing';\nimport { PromoCodeField } from 'Pages/Settings/Billing/components';\n\nconst planTitles = {\n [PlanTypes.BUSINESS]: {\n [PlanDurations.MONTHLY]: 'Business',\n [PlanDurations.ANNUALLY]: 'Business Annually',\n },\n [PlanTypes.PERSONAL]: {\n [PlanDurations.MONTHLY]: 'Personal',\n [PlanDurations.ANNUALLY]: 'Personal Annually',\n },\n};\n\nexport interface CouponDropDownProps {\n placeholder: string;\n disabled?: boolean;\n onUpdateCoupon: (coupon?: Coupon) => void;\n isOpen: boolean;\n onSetOpen: (state: boolean) => void;\n buttonTitle?: string;\n}\n\nfunction CouponDropDown({\n placeholder,\n disabled = false,\n onUpdateCoupon,\n isOpen,\n onSetOpen,\n buttonTitle,\n}: CouponDropDownProps) {\n const [inputText, setInputText] = useState('');\n const toggleDropdown = useCallback(() => {\n if (disabled) return;\n\n if (isOpen) {\n onSetOpen(false);\n } else {\n onSetOpen(true);\n }\n }, [disabled, isOpen, onSetOpen]);\n\n return (\n
    \n \n
    \n

    \n {placeholder}\n

    \n
    \n \n
    \n {isOpen && (\n \n \n
    \n )}\n \n );\n}\n\nexport default CouponDropDown;\n","import React, { useCallback, useState } from 'react';\nimport {\n CardCvcElement,\n CardExpiryElement,\n CardNumberElement,\n} from '@stripe/react-stripe-js';\nimport { FieldTextInput, MaskedTextInput } from 'Components/FormFields';\nimport { Field, Form, FormRenderProps } from 'react-final-form';\nimport { postalCodeMask } from 'Utils/formatters';\nimport ClearableTextInput from 'Components/FormFields/ClearableTextInput';\nimport { composeValidators } from 'Utils/functions';\nimport { postalCode, required, name } from 'Utils/validation';\nimport arrayMutators from 'final-form-arrays';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport { CardFormValues, Coupon, PlanDurations, PlanTypes } from 'Interfaces/Billing';\nimport { useCardAttach, useCreateCard, usePlanChange } from 'Hooks/Billing';\nimport Toast from 'Services/Toast';\nimport CouponDropDown from './CouponDropDown';\nimport classNames from 'classnames';\n\ninterface FormValues extends CardFormValues {\n address: string;\n city: string;\n state: string;\n}\n\nexport const BillingInfo = () => {\n const createCard = useCreateCard();\n const [attachCard, isAttachingCard] = useCardAttach();\n const [changePlan, isChangingPlan] = usePlanChange();\n const [appliedCoupon, setAppliedCoupon] = useState();\n const [isOpenCouponDropDown, setOpenCouponDropDown] = useState(false);\n\n const onSubmit = useCallback(\n async (values: FormValues) => {\n try {\n const token = await createCard(values);\n token && (await attachCard(token));\n\n Toast.success('Card attached');\n\n await changePlan({\n type: PlanTypes.BUSINESS,\n duration: PlanDurations.MONTHLY,\n couponId: appliedCoupon && appliedCoupon.id,\n trial: true,\n });\n\n Toast.success('Your trial period has started');\n } catch (error) {\n Toast.handleErrors(error);\n }\n },\n [appliedCoupon, attachCard, changePlan, createCard],\n );\n\n const handleSetOpenCouponDropDown = useCallback((state: boolean) => {\n setOpenCouponDropDown(state);\n }, []);\n\n return (\n
    \n

    \n Billing Information\n

    \n ) => {\n return (\n
    \n
    \n
    \n (required, name)}\n className=\"form__field--m24\"\n inputClassName=\"form__input--fsBig\"\n />\n
    \n\n
    \n \n
    \n
    \n \n
    \n
    \n
    \n\n
    \n
    \n \n \n
    \n
    \n \n
    \n
    \n
    \n \n \n
    \n
    \n \n
    \n
    \n
    \n\n
    \n (required, postalCode)}\n inputClassName=\"form__input--fsBig\"\n />\n
    \n
    \n
    \n setAppliedCoupon(coupon)}\n placeholder={'Coupon (Optional)'}\n isOpen={isOpenCouponDropDown}\n onSetOpen={handleSetOpenCouponDropDown}\n buttonTitle={\n appliedCoupon ? `-${appliedCoupon.percentOff}% added` : 'Apply now'\n }\n />\n \n \n \n \n \n );\n }}\n />\n \n );\n};\n","import classNames from 'classnames';\nimport { TooltipBlock } from 'Components/Tooltip';\nimport React from 'react';\n\ninterface HoverTooltipProps {\n children: React.ReactNode;\n position?: 'bottom' | 'top' | 'topRight';\n}\n\nexport const HoverTooltip = ({ children, position = 'bottom' }: HoverTooltipProps) => {\n return (\n
    \n \n {children}\n

    \n
    \n );\n};\n","import classNames from 'classnames';\nimport React, { ReactElement } from 'react';\nimport { ReactSVG } from 'react-svg';\nimport checkIcon from 'Assets/images/icons/check-in-circle.svg';\nimport unlockIcon from 'Assets/images/icons/unlock-icon.svg';\nimport bellIcon from 'Assets/images/icons/bell-icon.svg';\nimport starIcon from 'Assets/images/icons/star-icon-v2.svg';\nimport { HoverTooltip } from 'Components/HoverTooltip/HoverTooltip';\nimport AlertIcon from 'Assets/images/icons/alert-icon.svg';\nimport dayjs from 'dayjs';\nimport * as advancedFormat from 'dayjs/plugin/advancedFormat';\nimport {\n PlanDurations,\n PlanTypes,\n defaultPlanPrices,\n discountPlanPrices,\n} from 'Interfaces/Billing';\nimport { isAvailablePlanForSale } from 'Utils/functions';\nimport { IS_BLACK_FRIDAY, IS_END_OF_YEAR } from 'Utils/constants';\ndayjs.extend(advancedFormat.default);\n\nconst defaultPrice = defaultPlanPrices[PlanTypes.BUSINESS][PlanDurations.MONTHLY];\nconst discountPrice = discountPlanPrices[PlanTypes.BUSINESS][PlanDurations.MONTHLY];\nconst isSomeSale = IS_BLACK_FRIDAY || IS_END_OF_YEAR;\n\nconst isAvailablePlan = isAvailablePlanForSale(PlanTypes.BUSINESS, PlanDurations.MONTHLY);\n\ninterface Step {\n title: string;\n description: string;\n icon: string;\n tooltipInfo?: ReactElement;\n tooltipPosition?: 'top' | 'bottom' | 'topRight';\n}\n\nconst steps: Step[] = [\n {\n title: 'Create An Account',\n description: 'You successfully created your free account',\n icon: checkIcon,\n },\n {\n title: 'Today: Get instant access',\n description:\n 'Sign documents by yourself or send for signature. Unlimited # of documents.',\n icon: unlockIcon,\n },\n {\n title: 'Day 4: free Trial reminder',\n description:\n \"We'll send you an email/notification 3-days before billing. Cancel anytime\",\n icon: bellIcon,\n tooltipInfo: (\n

    \n You won't be billed anything until the end of your trial period -{' '}\n \n {dayjs(new Date())\n .add(7, 'day')\n .format('MMM Do')}\n \n . You can cancel your subscription free of charge any time during the trial with\n just four simple clicks on your billing details.\n

    \n ),\n tooltipPosition: 'top',\n },\n {\n title: 'Day 7: free Trial ends',\n description: `You will be billed for the Business monthly plan ($${\n isSomeSale && isAvailablePlan ? discountPrice : defaultPrice\n }/mo) on ${dayjs(new Date())\n .add(7, 'day')\n .format('MMM DD')}`,\n icon: starIcon,\n tooltipInfo: (\n

    \n You can change your subscription plan any time during the trial on your{' '}\n Subscription section{' '}\n

    \n ),\n tooltipPosition: 'topRight',\n },\n];\n\ninterface StepProps {\n title: string;\n description: string;\n isLastStep?: boolean;\n isFirstStep?: boolean;\n icon: string;\n tooltipInfo?: ReactElement;\n tooltipPosition?: 'top' | 'bottom' | 'topRight';\n}\n\nconst Step = ({\n title,\n description,\n isLastStep,\n isFirstStep,\n icon,\n tooltipInfo,\n tooltipPosition,\n}: StepProps) => {\n return (\n \n \n \n \n
    \n \n {title}\n \n

    \n {description}\n {tooltipInfo && (\n \n \n {tooltipInfo}\n \n )}\n

    \n
    \n \n );\n};\n\nexport const TrialInfo = () => {\n return (\n
    \n

    \n How your free{' '}\n trial works{' '}\n

    \n {steps.map((step, index) => (\n \n ))}\n
    \n );\n};\n","import React, { useCallback, useEffect, useState } from 'react';\nimport {\n CardCvcElement,\n CardExpiryElement,\n CardNumberElement,\n} from '@stripe/react-stripe-js';\nimport { FieldTextInput, MaskedTextInput } from 'Components/FormFields';\nimport { Field, Form, FormRenderProps } from 'react-final-form';\nimport { postalCodeMask } from 'Utils/formatters';\nimport ClearableTextInput from 'Components/FormFields/ClearableTextInput';\nimport { composeValidators, isNotEmpty } from 'Utils/functions';\nimport { postalCode, required, name } from 'Utils/validation';\nimport arrayMutators from 'final-form-arrays';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport { CardFormValues, Coupon, PlanDurations, PlanTypes } from 'Interfaces/Billing';\nimport { useCardAttach, useCardGet, useCreateCard, usePlanChange } from 'Hooks/Billing';\nimport Toast from 'Services/Toast';\nimport CouponDropDown from './CouponDropDown';\nimport classNames from 'classnames';\nimport { useSelector } from 'react-redux';\nimport { selectCardFormValues } from 'Utils/selectors';\nimport CardForm from 'Components/CardForm';\nimport History from 'Services/History';\nimport { AuthorizedRoutePaths } from 'Interfaces/RoutePaths';\n\nexport const PostBillingInfo = () => {\n const card = useSelector(selectCardFormValues);\n const createCard = useCreateCard();\n const [attachCard, isAttachingCard] = useCardAttach();\n const [getCard, isGettingCard] = useCardGet();\n const [changePlan, isChangingPlan] = usePlanChange();\n const [appliedCoupon, setAppliedCoupon] = useState();\n const [isOpenCouponDropDown, setOpenCouponDropDown] = useState(false);\n const [isCurrentCardFlow, setIsCurrentCardFlow] = useState(\n isGettingCard ? true : !!card,\n );\n\n const navigateToBilling = useCallback(() => {\n History.push(AuthorizedRoutePaths.SETTINGS_BILLING_PLAN);\n }, []);\n\n const onSubmit = useCallback(\n async (values: CardFormValues) => {\n try {\n if (!isCurrentCardFlow) {\n const token = await createCard(values);\n token && (await attachCard(token));\n\n Toast.success('New card attached');\n }\n\n await changePlan({\n type: PlanTypes.BUSINESS,\n duration: PlanDurations.MONTHLY,\n couponId: appliedCoupon && appliedCoupon.id,\n trial: true,\n });\n\n History.replace(AuthorizedRoutePaths.TRIAL_SUCCESS, { successRequired: true });\n } catch (error) {\n Toast.handleErrors(error);\n }\n },\n [isCurrentCardFlow, changePlan, appliedCoupon, createCard, attachCard],\n );\n\n const handleSetOpenCouponDropDown = useCallback((state: boolean) => {\n setOpenCouponDropDown(state);\n }, []);\n\n const handleCardGet = useCallback(async () => {\n try {\n const card = await getCard(undefined);\n\n if (isNotEmpty(card)) {\n setIsCurrentCardFlow(true);\n }\n } catch (error) {\n Toast.handleErrors(error);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n handleCardGet();\n }, [handleCardGet]);\n\n const showCurrentCardBlock = useCallback(() => {\n return (\n <>\n {card && (\n \n \n \n )}\n \n );\n }, [card]);\n\n const showNewCardBlock = useCallback(() => {\n return (\n <>\n
    \n (required, name)}\n className=\"form__field--m24\"\n inputClassName=\"form__input--fsBig\"\n />\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n
    \n
    \n
    \n \n \n
    \n
    \n \n
    \n
    \n
    \n\n
    \n (required, postalCode)}\n inputClassName=\"form__input--fsBig\"\n />\n
    \n \n \n \n );\n }, []);\n\n return (\n
    \n

    \n Billing Information\n

    \n ) => {\n return (\n
    \n
    \n {card && (\n setIsCurrentCardFlow(!isCurrentCardFlow)}\n priority=\"secondary\"\n className=\"billing__trial-attach-new-card-button\"\n />\n )}\n {isCurrentCardFlow ? showCurrentCardBlock() : showNewCardBlock()}\n setAppliedCoupon(coupon)}\n placeholder={'Coupon (Optional)'}\n isOpen={isOpenCouponDropDown}\n onSetOpen={handleSetOpenCouponDropDown}\n buttonTitle={\n appliedCoupon ? `-${appliedCoupon.percentOff}% added` : 'Apply now'\n }\n />\n \n \n \n Continue with the Free Plan for Now\n
    \n
    \n \n \n );\n }}\n />\n \n );\n};\n","import React from 'react';\nimport { BillingInfo, PlanSection, TrialInfo, PostBillingInfo } from './components';\nimport { useSelector } from 'react-redux';\nimport { selectUser } from 'Utils/selectors';\n\nexport const SecondStepInfo = () => {\n const { showTrialStep } = useSelector(selectUser);\n return (\n
    \n \n {showTrialStep ? : }\n \n
    \n );\n};\n","import React from 'react';\nimport { ReactSVG } from 'react-svg';\nimport check from 'Assets/images/icons/check-v2.svg';\nimport classNames from 'classnames';\n\ninterface TabProps {\n text: string;\n tubNumber: number;\n isActive?: boolean;\n isNextTab: boolean;\n}\n\nexport const Tab = ({ text, tubNumber, isActive, isNextTab }: TabProps) => {\n return (\n
    \n
    \n \n {isActive || isNextTab ? (\n \n {tubNumber}\n

    \n ) : (\n \n )}\n \n \n {text}\n

    \n
    \n \n
    \n );\n};\n","import React from 'react';\nimport { Tab } from './components';\n\nconst tabs = ['Create an account', 'Activate your trial'];\n\ninterface TabsProps {\n activeTab: 1 | 2;\n}\n\nexport const Tabs = ({ activeTab }: TabsProps) => {\n return (\n
    \n {tabs.map((tab, index) => (\n activeTab}\n isActive={index + 1 === activeTab}\n />\n ))}\n
    \n );\n};\n","import TrialGetWrapper from 'Layouts/TrialGetWrapper';\nimport React, { useCallback, useEffect } from 'react';\nimport { RouteChildrenProps } from 'react-router-dom';\nimport { SecondStepInfo } from './components/SecondStepInfo';\nimport { Tabs } from './components/Tabs';\nimport { ReactSVG } from 'react-svg';\nimport AlertIcon from 'Assets/images/icons/alert-icon.svg';\nimport { HoverTooltip } from 'Components/HoverTooltip/HoverTooltip';\nimport dayjs from 'dayjs';\nimport * as advancedFormat from 'dayjs/plugin/advancedFormat';\nimport History from 'Services/History';\nimport { AuthorizedRoutePaths } from 'Interfaces/RoutePaths';\nimport { useSelector } from 'react-redux';\nimport { selectUser } from 'Utils/selectors';\ndayjs.extend(advancedFormat.default);\n\nconst TrialGetPage = ({ location }: RouteChildrenProps) => {\n const { isTrialUsed } = useSelector(selectUser);\n\n const navigateToRoot = useCallback(() => {\n History.replace(AuthorizedRoutePaths.BASE_PATH);\n }, []);\n\n useEffect(() => {\n if (isTrialUsed) {\n return navigateToRoot();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [navigateToRoot]);\n\n return (\n \n
    \n
    \n \n
    \n

    \n Please add your payment details to{' '}\n \n start the free trial.\n {' '}\n
    \n You can cancel anytime before the free trial ends to avoid being billed.\n \n \n \n You won't be billed anything until the end of your trial period -{' '}\n \n {dayjs(new Date())\n .add(7, 'day')\n .format('MMM Do')}\n \n . You can cancel your subscription free of charge any time during the trial\n with just four simple clicks on your billing details.\n \n \n

    \n \n
    \n
    \n );\n};\n\nexport default TrialGetPage;\n","import React from 'react';\nimport { Form, Field, FormRenderProps } from 'react-final-form';\nimport arrayMutators from 'final-form-arrays';\nimport FieldTextInput from 'Components/FormFields/FieldTextInput';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport { required } from 'Utils/validation';\nimport UISpinner from 'Components/UIComponents/UISpinner';\nimport { LtdCodePayload } from 'Interfaces/Billing';\nimport { OnSubmitReturnType } from 'Interfaces/FinalForm';\n\ninterface LTDActivateCodeFormProps {\n onSubmit: (values: LtdCodePayload) => OnSubmitReturnType;\n isLoading?: boolean;\n isShowFooter?: boolean;\n submitButtonClassName?: string;\n fieldClassName?: string;\n}\n\nfunction LTDActivateCodeForm({\n onSubmit,\n isLoading,\n fieldClassName,\n submitButtonClassName,\n}: LTDActivateCodeFormProps) {\n return (\n ) => (\n
    \n \n
    \n {isLoading ? (\n \n ) : (\n \n )}\n
    \n \n )}\n />\n );\n}\n\nexport default LTDActivateCodeForm;\n","import React from 'react';\nimport classNames from 'classnames';\nimport { LtdTier } from 'Interfaces/Billing';\nimport { planTypeToName } from 'Utils/formatters';\n\ninterface TierInfoProps {\n tier: LtdTier;\n billetText?: string;\n wrapperClassName?: string;\n billetClassName?: string;\n needPricing?: boolean;\n disabled?: boolean;\n}\n\nconst TierInfo = ({\n tier,\n billetText,\n wrapperClassName,\n billetClassName,\n needPricing = false,\n disabled = false,\n}: TierInfoProps) => {\n return (\n
    \n
    \n
    \n

    {tier.name}

    \n \n {billetText ? billetText : `$${tier.price}`}\n
    \n
    \n
    \n
    \n

    Plan

    \n \n {planTypeToName[tier.planType]}\n

    \n
    \n
    \n

    Users

    \n \n {tier.teammatesLimit === -1 ? 'Unlimited' : tier.teammatesLimit}\n

    \n
    \n
    \n

    API Requests

    \n \n {tier.apiPlan.requestLimit}\n

    \n
    \n {needPricing && (\n
    \n

    Pricing

    \n \n ${tier.price}\n

    \n
    \n )}\n
    \n
    \n \n );\n};\n\nexport default TierInfo;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\n\ndeclare let paypal: any;\nconst PaypalButton = paypal.Buttons.driver('react', { React, ReactDOM });\n\ninterface PaymentBlockProps {\n openStripeCheckout: () => void;\n createPaypalOrder: () => void;\n approvePaypalPayment: (data, actions) => void;\n paymentButtonText?: string;\n footerContainerClassName?: string;\n policyClassName?: string;\n submitting?: boolean;\n}\n\nconst PaymenBlock = ({\n openStripeCheckout,\n createPaypalOrder,\n approvePaypalPayment,\n paymentButtonText = 'Buy with Credit Card',\n footerContainerClassName,\n policyClassName,\n submitting,\n}: PaymentBlockProps) => {\n const isMobile = useIsMobile();\n\n return (\n
    \n \n
    OR
    \n\n \n\n
    \n \n By clicking the "{paymentButtonText}" button or PayPal checkout\n button, I agree to the \n \n Terms of Use, \n \n \n Electronic Signature Disclosure and Consent\n \n  and \n \n Privacy Policy.\n \n
    \n
    \n \n );\n};\n\nexport default PaymenBlock;\n","import React from 'react';\nimport classNames from 'classnames';\nimport UIModal from 'Components/UIComponents/UIModal';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport { TierInfo } from '../components';\nimport { LtdTier } from 'Interfaces/Billing';\n\ninterface RedeemCodeModalProps {\n tier?: LtdTier;\n onClose: () => void;\n onConfirm: () => void;\n isLoading?: boolean;\n}\n\nconst RedeemCodeModal = ({\n tier,\n onClose,\n onConfirm,\n isLoading,\n}: RedeemCodeModalProps) => {\n const isMobile = useIsMobile();\n\n if (!tier) return null;\n\n return (\n \n
    \n
    \n

    Activate License

    \n

    \n Review the information below before proceeding.\n

    \n
    \n \n \n \n
    \n \n );\n};\n\nexport default RedeemCodeModal;\n","import React, { useCallback, useState } from 'react';\nimport { useModal } from 'Hooks/Common';\nimport { LTDActivateCodeForm } from 'Components/LifeTimeDeal/LTDActivateCodeForm';\nimport RedeemCodeModal from 'Components/LifeTimeDeal/LTDActivateCodeForm/RedeemCodeModal';\nimport History from 'Services/History';\nimport { AuthorizedRoutePaths } from 'Interfaces/RoutePaths';\nimport { LtdTier } from 'Interfaces/Billing';\nimport classNames from 'classnames';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport { useLtdCodeRedeem, useLtdCodeValidate } from 'Hooks/Billing';\nimport { isNotEmpty } from 'Utils/functions';\nimport Toast from 'Services/Toast';\n\nconst LifeTimeDealActivateCode = () => {\n const isMobile = useIsMobile();\n const [validateLtdCode, isValidateLtdCode] = useLtdCodeValidate();\n const [redeemLtdCode, isRedeemLtdCode] = useLtdCodeRedeem();\n\n const [ltdCode, setLtdCode] = useState();\n const [tier, setTier] = useState();\n\n const handleRedeemCode = useCallback(async () => {\n try {\n if (ltdCode) {\n await redeemLtdCode({ code: ltdCode });\n History.push(AuthorizedRoutePaths.SETTINGS_BILLING);\n }\n } catch (error) {\n return Toast.handleErrors(error);\n }\n }, [ltdCode, redeemLtdCode]);\n\n const [openRedeemCodeModal, closeRedeemCodeModal] = useModal(\n () => (\n \n ),\n [tier],\n );\n\n const handleCheckCode = useCallback(\n async values => {\n try {\n const response = await validateLtdCode({ code: values.code });\n\n if (!isNotEmpty(response)) {\n return Toast.error('Something went wrong. Please try again.');\n }\n\n setLtdCode(values.code);\n setTier(response);\n openRedeemCodeModal();\n } catch (error) {\n return Toast.handleErrors(error);\n }\n },\n [openRedeemCodeModal, validateLtdCode],\n );\n\n return (\n
    \n
    \n

    Activate your lifetime license

    \n
    Enter the license key to redeem your license
    \n \n
    \n
    \n );\n};\n\nexport default LifeTimeDealActivateCode;\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { LtdCodePayload } from 'Interfaces/Billing';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: LtdCodePayload) =>\n $actions.billing.validateLtdCode(dispatch, payload),\n );\n};\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { LtdCodePayload } from 'Interfaces/Billing';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: LtdCodePayload) =>\n $actions.billing.redeemLtdCode(dispatch, payload),\n );\n};\n","import React, { useCallback, useEffect, useState } from 'react';\nimport History from 'Services/History';\nimport { StaticContext } from 'react-router';\nimport { AuthorizedRoutePaths } from 'Interfaces/RoutePaths';\nimport { PaymentBlock, TierInfo } from 'Components/LifeTimeDeal/components';\nimport { LtdCheckoutUpgradeResponse, LtdTier } from 'Interfaces/Billing';\nimport { RouteComponentProps } from 'react-router-dom';\nimport { usePaymentCheckoutUpgrade, usePaypalOrderCapture } from 'Hooks/Billing';\nimport { isNotEmpty } from 'Utils/functions';\nimport Toast from 'Services/Toast';\nimport UISpinner from 'Components/UIComponents/UISpinner';\nimport {\n LtdTiersIds,\n tierNumberById,\n} from 'Pages/Settings/Billing/screens/LifeTimeDealScreen/planTableItems';\nimport { selectUser } from 'Utils/selectors';\nimport { useSelector } from 'react-redux';\nimport classNames from 'classnames';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\n\ninterface LifeTimeDealUpgradeProps {\n newTierId: LtdTier['id'];\n}\n\nconst LifeTimeDealUpgrade = ({\n location,\n}: RouteComponentProps<{}, StaticContext, LifeTimeDealUpgradeProps>) => {\n const [\n upgradeLtdPaymentCheckout,\n isUpgradeLtdPaymentCheckout,\n ] = usePaymentCheckoutUpgrade();\n const [capturePaypalOrder, isCapturePaypalOrder] = usePaypalOrderCapture();\n const isMobile = useIsMobile();\n\n const [showCheckoutButton, setShowCheckoutButton] = useState(false);\n const [checkoutResponse, setCheckoutResponse] = useState();\n\n const ltdId = location.state?.newTierId;\n const currentUser = useSelector(selectUser);\n\n const handleOpenStripeCheckout = useCallback(async () => {\n if (checkoutResponse?.stripeCheckoutUrl)\n window.location.replace(checkoutResponse.stripeCheckoutUrl);\n }, [checkoutResponse]);\n\n const handleOpenPaypalCheckout = useCallback(async () => {\n if (checkoutResponse?.paypalOrderId) {\n await capturePaypalOrder({ orderId: checkoutResponse.paypalOrderId });\n History.push(`${AuthorizedRoutePaths.LTD_UPGRADE_SUCCESS}?tierId=${ltdId}`);\n }\n }, [capturePaypalOrder, checkoutResponse, ltdId]);\n\n const handleGetUpgradeCheckout = useCallback(async () => {\n if (ltdId) {\n const response = await upgradeLtdPaymentCheckout({\n ltdId,\n successUrl: `${window.location.origin}${AuthorizedRoutePaths.LTD_UPGRADE_SUCCESS}?tierId=${ltdId}`,\n cancelUrl: `${window.location.href}`,\n });\n\n if (!isNotEmpty(response)) {\n return Toast.error('Something went wrong. Please try again.');\n }\n\n setCheckoutResponse(response);\n\n setShowCheckoutButton(true);\n }\n }, [ltdId, upgradeLtdPaymentCheckout]);\n\n useEffect(() => {\n if (\n !ltdId ||\n !(ltdId && Object.values(LtdTiersIds).includes(ltdId as LtdTiersIds)) ||\n tierNumberById[ltdId] <= tierNumberById[currentUser.ltdTierId]\n ) {\n History.push(AuthorizedRoutePaths.SETTINGS_BILLING_PLAN);\n } else {\n handleGetUpgradeCheckout();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [currentUser.ltdTierId, ltdId]);\n\n return isUpgradeLtdPaymentCheckout || !checkoutResponse ? (\n \n ) : (\n
    \n

    \n Upgrading from {checkoutResponse.currentTier.name} to{' '}\n {checkoutResponse.newTier.name}\n

    \n

    \n Review the new features you'll get after the upgrade.\n

    \n \n \n \n {!isMobile && (\n
    \n
    \n
    \n )}\n \n
    \n

    Total to pay

    \n

    \n ${checkoutResponse.total}\n

    \n
    \n
    \n \n {showCheckoutButton && (\n checkoutResponse.paypalOrderId}\n approvePaypalPayment={handleOpenPaypalCheckout}\n paymentButtonText=\"Purchase now\"\n footerContainerClassName=\"lifeTimeDeal__common-button__checkout-container\"\n policyClassName=\"lifeTimeDeal__common-button__checkout-policy\"\n />\n )}\n \n );\n};\n\nexport default LifeTimeDealUpgrade;\n","import { useDispatch } from 'react-redux';\nimport { $actions } from 'Store/ducks';\nimport { useAsyncAction } from 'Hooks/Common';\nimport { LtdPaymentCheckoutPayload } from 'Interfaces/Billing';\n\nexport default () => {\n const dispatch = useDispatch();\n\n return useAsyncAction((payload: LtdPaymentCheckoutPayload) =>\n $actions.billing.upgradeLtdPaymentCheckout(dispatch, payload),\n );\n};\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { ReactSVG } from 'react-svg';\nimport classNames from 'classnames';\nimport History from 'Services/History';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport CircleSuccessIcon from 'Assets/images/icons/circle-success.svg';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport { AuthorizedRoutePaths } from 'Interfaces/RoutePaths';\nimport { LtdTier } from 'Interfaces/Billing';\nimport { LtdTiersIds } from 'Pages/Settings/Billing/screens/LifeTimeDealScreen/planTableItems';\nimport { TierInfo } from 'Components/LifeTimeDeal/components';\nimport { useLtdTierGet } from 'Hooks/Billing';\nimport { isNotEmpty } from 'Utils/functions';\nimport Toast from 'Services/Toast';\nimport UISpinner from 'Components/UIComponents/UISpinner';\nimport { RouteComponentProps } from 'react-router-dom';\n\ntype tierIdType = { tierId: LtdTier['id'] };\n\nconst LifeTimeDealSuccessPaymentPage = ({\n location,\n}: RouteComponentProps) => {\n const isMobile = useIsMobile();\n const [getLtdTier, isGettingLtdTier] = useLtdTierGet();\n const [tier, setTier] = useState();\n\n const ltdId = useMemo(() => {\n const searchParams = new URLSearchParams(location.search);\n return searchParams.get('tierId') || undefined;\n }, [location.search]);\n\n const navigateToRoot = useCallback(async () => {\n History.push(AuthorizedRoutePaths.BASE_PATH);\n }, []);\n\n const handleGetLtdTier = useCallback(async () => {\n if (ltdId) {\n const response = await getLtdTier({ ltdId });\n\n if (!isNotEmpty(response)) {\n return Toast.error('Something went wrong. Please try again.');\n }\n\n setTier(response);\n }\n }, [getLtdTier, ltdId]);\n\n const handleReloadPage = useCallback(() => {\n const reloadCount = Number(sessionStorage.getItem('reloadCount'));\n if (reloadCount < 1) {\n sessionStorage.setItem('reloadCount', String(reloadCount + 1));\n window.location.reload();\n } else {\n sessionStorage.removeItem('reloadCount');\n }\n }, []);\n\n useEffect(() => {\n handleGetLtdTier();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if (!ltdId || !(ltdId && Object.values(LtdTiersIds).includes(ltdId as LtdTiersIds))) {\n History.push(AuthorizedRoutePaths.BASE_PATH);\n }\n }, [ltdId]);\n\n useEffect(() => {\n handleReloadPage();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n if (isGettingLtdTier || !tier) {\n return (\n \n );\n }\n\n return (\n \n \n \n
    \n

    Payment succeeded!

    \n

    \n Please check your inbox for an email with lifetime license key from\n Signaturely. If you can't find it, please check the SPAM folder.\n

    \n
    \n \n \n \n \n );\n};\n\nexport default LifeTimeDealSuccessPaymentPage;\n","import React from 'react';\nimport { Link } from 'react-router-dom';\nimport { WrapperProps } from 'Interfaces/Common';\n\nimport Logo from 'Assets/images/logo.svg';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport classNames from 'classnames';\nimport BlackFridayBanner from 'Components/Header/BlackFridayBanner';\nimport { UnauthorizedRoutePaths } from 'Interfaces/RoutePaths';\nimport EndOfYearBanner from 'Components/Header/EndOfYearBanner';\nimport { CURRENT_YEAR } from 'Utils/constants';\n\nfunction LifeTimeDealWrapper({ children }: WrapperProps) {\n const isMobile = useIsMobile();\n\n return (\n
    \n \n \n
    \n \n \"Signaturely\"\n \n
    \n
    \n
    \n
    {children}
    \n
    \n
    \n
    \n © {CURRENT_YEAR} Signaturely | \n \n Terms and Conditions\n \n
    \n
    \n );\n}\n\nexport default LifeTimeDealWrapper;\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { ReactSVG } from 'react-svg';\nimport classNames from 'classnames';\nimport History from 'Services/History';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport CircleSuccessIcon from 'Assets/images/icons/circle-success.svg';\nimport useIsMobile from 'Hooks/Common/useIsMobile';\nimport { AuthorizedRoutePaths } from 'Interfaces/RoutePaths';\nimport { LtdTier } from 'Interfaces/Billing';\nimport { LtdTiersIds } from 'Pages/Settings/Billing/screens/LifeTimeDealScreen/planTableItems';\nimport { TierInfo } from 'Components/LifeTimeDeal/components';\nimport { useCurrentUserGet } from 'Hooks/User';\nimport { useLtdTierGet } from 'Hooks/Billing';\nimport { isNotEmpty } from 'Utils/functions';\nimport Toast from 'Services/Toast';\nimport UISpinner from 'Components/UIComponents/UISpinner';\nimport { RouteComponentProps } from 'react-router-dom';\n\ntype tierIdType = { tierId: LtdTier['id'] };\n\nconst LifeTimeDealSuccessPaymentPage = ({\n location,\n}: RouteComponentProps) => {\n const isMobile = useIsMobile();\n const [getCurrentUser] = useCurrentUserGet();\n const [getLtdTier, isGettingLtdTier] = useLtdTierGet();\n const [tier, setTier] = useState();\n\n const ltdId = useMemo(() => {\n const searchParams = new URLSearchParams(location.search);\n return searchParams.get('tierId') || undefined;\n }, [location.search]);\n\n const navigateToRoot = useCallback(async () => {\n await getCurrentUser(undefined);\n History.push(AuthorizedRoutePaths.BASE_PATH);\n }, [getCurrentUser]);\n\n const handleGetLtdTier = useCallback(async () => {\n if (ltdId) {\n const response = await getLtdTier({ ltdId });\n\n if (!isNotEmpty(response)) {\n return Toast.error('Something went wrong. Please try again.');\n }\n\n setTier(response);\n }\n }, [getLtdTier, ltdId]);\n\n const handleReloadPage = useCallback(() => {\n const reloadCount = Number(sessionStorage.getItem('reloadCount'));\n if (reloadCount < 1) {\n sessionStorage.setItem('reloadCount', String(reloadCount + 1));\n window.location.reload();\n } else {\n sessionStorage.removeItem('reloadCount');\n }\n }, []);\n\n useEffect(() => {\n handleGetLtdTier();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if (!ltdId || !(ltdId && Object.values(LtdTiersIds).includes(ltdId as LtdTiersIds))) {\n History.push(AuthorizedRoutePaths.BASE_PATH);\n }\n }, [ltdId]);\n\n useEffect(() => {\n handleReloadPage();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n if (isGettingLtdTier || !tier) {\n return (\n \n );\n }\n\n return (\n \n \n \n
    \n

    Upgrade successful!

    \n

    \n Your account has been upgraded to {tier.name}. Now, you have access to the\n following new features:\n

    \n
    \n \n \n \n \n );\n};\n\nexport default LifeTimeDealSuccessPaymentPage;\n","import React, { useEffect } from 'react';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport { discountPlanPrices, PlanDurations, PlanTypes } from 'Interfaces/Billing';\nimport dayjs from 'dayjs';\nimport { formatDateToStringForTrialInfo } from 'Utils/formatters';\nimport History from 'Services/History';\nimport { AuthorizedRoutePaths } from 'Interfaces/RoutePaths';\nimport { DataLayerAnalytics } from 'Services/Integrations';\nimport { User } from 'Interfaces/User';\nimport { useSelector } from 'react-redux';\nimport { selectShowTrialSuccessPage, selectUser } from 'Utils/selectors';\nimport TrialGetWrapper from 'Layouts/TrialGetWrapper';\nimport { useLocation } from 'react-router-dom';\nimport { useShowTrialSuccessPageClear } from 'Hooks/Auth';\n\ninterface TrialSuccessProps {\n successRequired?: boolean;\n}\n\nfunction TrialSuccess() {\n const location = useLocation();\n\n const [clearShowTrialSuccessPage] = useShowTrialSuccessPageClear();\n const { id }: User = useSelector(selectUser);\n\n if (!location?.state?.successRequired) History.push(AuthorizedRoutePaths.BASE_PATH);\n\n const price = discountPlanPrices[PlanTypes.BUSINESS][PlanDurations.MONTHLY];\n const nextBillingDate = dayjs(new Date())\n .add(7, 'day')\n .format('MMMM D, YYYY');\n\n const handleLearnMore = () => {\n History.replace(AuthorizedRoutePaths.SETTINGS_BILLING);\n };\n\n const handleContinue = () => {\n History.replace(AuthorizedRoutePaths.BASE_PATH);\n };\n\n useEffect(() => {\n DataLayerAnalytics.fireTrialSignUpEvent(id);\n clearShowTrialSuccessPage();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n \n
    \n
    \n

    \n Thank you for signing up for our 7-day free trial!\n

    \n

    \n We're excited to have you onboard. As a reminder, your trial will\n automatically transition to a full subscription for ${price}/month on{' '}\n {formatDateToStringForTrialInfo(nextBillingDate)}. If you'd like\n to continue enjoying our service without interruption, no action is needed. If\n you have any questions or would like to learn more about your subscription,\n we're here to help.\n

    \n \n
    \n Continue\n
    \n
    \n
    \n
    \n );\n}\n\nexport default TrialSuccess;\n","import { useCallback } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { rootActions } from 'Store';\n\ninterface ClearShowTrialSuccessPage {\n (): void;\n}\n\nexport default () => {\n const dispatch = useDispatch();\n\n const clearShowTrialSuccessPage: ClearShowTrialSuccessPage = useCallback(() => {\n dispatch(rootActions.user.clearShowTrialSuccessPage());\n }, [dispatch]);\n\n return [clearShowTrialSuccessPage] as const;\n};\n","import React, { useEffect, useMemo } from 'react';\nimport { Switch, Router, Redirect } from 'react-router-dom';\nimport History from 'Services/History';\n\nimport AuthenticatedWrapper from 'Layouts/AuthenticatedWrapper';\nimport SimplifiedWrapper from 'Layouts/SimplifiedWrapper';\nimport SettingsWrapper from 'Layouts/SettingsWrapper';\nimport * as Sign from 'Pages/Sign';\nimport Documents from 'Pages/Documents';\nimport * as SignatureRequests from 'Pages/SignatureRequests';\nimport * as Templates from 'Pages/Templates';\nimport * as Settings from 'Pages/Settings';\nimport * as Integrations from 'Pages/Integrations';\nimport * as DocumentPreview from 'Pages/DocumentPreview';\nimport * as TeamPages from 'Pages/Team';\nimport Route from './Route';\nimport { User, UserRoles } from 'Interfaces/User';\nimport ForbiddenAccessTable from 'Components/ForbiddenAccessTable';\nimport { useSelector } from 'react-redux';\nimport { selectUser } from 'Utils/selectors';\nimport SidebarSubLayout from 'Layouts/sublayouts/SidebarSubLayout';\nimport { DocumentPreviewSubLayout } from 'Layouts/sublayouts/DocumentPreviewSubLayout';\nimport ScrollToTop from 'Components/ScrollToPop';\nimport useUpvotySurvey from 'Hooks/Common/useUpvotySurvey';\nimport PageTracker from 'Components/PageTracker';\nimport FormRequestsScreen from 'Pages/FormRequests/FormRequestsScreen';\nimport FormRequestCreate from 'Pages/FormRequests/FormRequestCreate';\nimport FormRequestEdit from 'Pages/FormRequests/FormRequestEdit';\nimport { useGoogleClientIdUpdate } from 'Hooks/User';\nimport { Upsell } from 'Pages/Upsell';\nimport CustomRedirect from './CustomRedirect';\nimport { AuthorizedRoutePaths } from 'Interfaces/RoutePaths';\nimport * as Trash from 'Pages/Trash';\nimport TrialGetPage from 'Pages/Auth/SignUp/TrialGetPage';\nimport { BaseRoutes } from '.';\nimport { LifeTimeDealActivateCode, LifeTimeDealUpgrade } from 'Pages/LifeTimeDeal';\nimport LifeTimeDealWrapper from 'Layouts/LifeTimeDealWrapper';\nimport LifeTimeDealSuccessUpgradePage from 'Pages/LifeTimeDeal/LifeTimeDealSuccessUpgradePage';\nimport { TrialSuccess } from 'Pages/Auth/TrialSuccess';\n\nconst AuthorizedRoutes = () => {\n const { role, email, name, id, clientId }: User = useSelector(selectUser);\n const isOwner = useMemo(() => role === UserRoles.OWNER, [role]);\n const isAdmin = useMemo(() => role === UserRoles.ADMIN, [role]);\n const [updateGoogleClientId] = useGoogleClientIdUpdate();\n\n useEffect(() => {\n if (!clientId) {\n updateGoogleClientId(undefined);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useUpvotySurvey(email as string, name as string, id);\n\n return (\n \n \n \n \n {BaseRoutes()}\n \n \n \n \n \n \n \n \n \n \n \n \n \n }\n />\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default AuthorizedRoutes;\n","import React from 'react';\nimport { Link } from 'react-router-dom';\nimport className from 'classnames';\nimport { WrapperProps } from 'Interfaces/Common';\nimport UIButton from 'Components/UIComponents/UIButton';\nimport Footer from 'Components/Footer';\n\nimport Logo from 'Assets/images/logo.svg';\nimport LogoMobile from 'Assets/images/logoMobile.svg';\n\ninterface GuestWrapperProps extends WrapperProps {\n isShowFooter?: boolean;\n isShowHeaderBorder?: boolean;\n}\n\nexport const GuestWrapper = ({\n children,\n isShowFooter = false,\n isShowHeaderBorder = false,\n}: GuestWrapperProps) => {\n return (\n
    \n \n
    \n
    \n \n \"Signaturely\"\n \n
    \n
    \n \n \"Signaturely\"\n \n
    \n
    \n

    \n eSign documents easily from your
    \n computer, tablet or phone.\n

    \n
    \n
    \n
    \n {children}\n {isShowFooter &&